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
@@ -8,8 +8,8 @@ import * as i3 from '@ngneat/transloco';
8
8
  import { TranslocoModule } from '@ngneat/transloco';
9
9
 
10
10
  class NotFoundComponent {
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: NotFoundComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NotFoundComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
13
13
  <svg
14
14
  viewBox="0 0 960 540"
15
15
  xmlns="http://www.w3.org/2000/svg"
@@ -34,7 +34,7 @@ class NotFoundComponent {
34
34
  </div>
35
35
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: NotFoundComponent, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotFoundComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{
40
40
  standalone: true,
@@ -67,8 +67,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
67
67
  }] });
68
68
 
69
69
  class ForbiddenComponent {
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ForbiddenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ForbiddenComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ForbiddenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ForbiddenComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
72
72
  <ng-container *transloco="let t">
73
73
  <svg
74
74
  viewBox="0 0 960 540"
@@ -95,7 +95,7 @@ class ForbiddenComponent {
95
95
  </ng-container>
96
96
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ForbiddenComponent, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ForbiddenComponent, decorators: [{
99
99
  type: Component,
100
100
  args: [{
101
101
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"aril-boot-pages.mjs","sources":["../../projects/aril/boot/pages/src/notFound.component.ts","../../projects/aril/boot/pages/src/forbidden.component.ts","../../projects/aril/boot/pages/aril-boot-pages.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\timports: [ButtonModule, RouterModule],\r\n\ttemplate: `\r\n\t\t<svg\r\n\t\t\tviewBox=\"0 0 960 540\"\r\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n\t\t\tversion=\"1.1\"\r\n\t\t\tclass=\"min-h-screen min-w-screen fixed left-0\"\r\n\t\t\tstyle=\"bottom:-10rem\"\r\n\t\t\tpreserveAspectRatio=\"none\">\r\n\t\t\t<rect x=\"0\" y=\"0\" width=\"960\" height=\"540\" fill=\"var(--surface-ground)\"></rect>\r\n\t\t\t<path\r\n\t\t\t\td=\"M0 331L26.7 321C53.3 311 106.7 291 160 291C213.3 291 266.7 311 320 329.5C373.3 348 426.7 365 480 373.2C533.3 381.3 586.7 380.7 640 373.8C693.3 367 746.7 354 800 341.2C853.3 328.3 906.7 315.7 933.3 309.3L960 303L960 541L933.3 541C906.7 541 853.3 541 800 541C746.7 541 693.3 541 640 541C586.7 541 533.3 541 480 541C426.7 541 373.3 541 320 541C266.7 541 213.3 541 160 541C106.7 541 53.3 541 26.7 541L0 541Z\"\r\n\t\t\t\tfill=\"var(--primary-color)\"\r\n\t\t\t\tstroke-linecap=\"round\"\r\n\t\t\t\tstroke-linejoin=\"miter\"></path>\r\n\t\t</svg>\r\n\t\t<div class=\"px-5 min-h-screen flex justify-content-center align-items-center\">\r\n\t\t\t<div class=\"z-1 text-center\">\r\n\t\t\t\t<div class=\"text-900 font-bold text-8xl mb-4\">Oops!</div>\r\n\t\t\t\t<p class=\"line-height-3 mt-0 mb-5 text-700 text-xl font-medium\">Sayfa Bulunamadı</p>\r\n\t\t\t\t<p-button routerLink=\"/\" styleClass=\"p-button-dark font-medium p-button-raised\">Anasayfaya Git</p-button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t`\r\n})\r\nexport class NotFoundComponent {}\r\n","import { Component } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\nimport { TranslocoModule } from '@ngneat/transloco';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\timports: [ButtonModule, RouterModule, TranslocoModule],\r\n\ttemplate: `\r\n\t\t<ng-container *transloco=\"let t\">\r\n\t\t\t<svg\r\n\t\t\t\tviewBox=\"0 0 960 540\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n\t\t\t\tversion=\"1.1\"\r\n\t\t\t\tclass=\"min-h-screen min-w-screen fixed left-0\"\r\n\t\t\t\tstyle=\"bottom:-10rem\"\r\n\t\t\t\tpreserveAspectRatio=\"none\">\r\n\t\t\t\t<rect x=\"0\" y=\"0\" width=\"960\" height=\"540\" fill=\"var(--surface-ground)\"></rect>\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M0 331L26.7 321C53.3 311 106.7 291 160 291C213.3 291 266.7 311 320 329.5C373.3 348 426.7 365 480 373.2C533.3 381.3 586.7 380.7 640 373.8C693.3 367 746.7 354 800 341.2C853.3 328.3 906.7 315.7 933.3 309.3L960 303L960 541L933.3 541C906.7 541 853.3 541 800 541C746.7 541 693.3 541 640 541C586.7 541 533.3 541 480 541C426.7 541 373.3 541 320 541C266.7 541 213.3 541 160 541C106.7 541 53.3 541 26.7 541L0 541Z\"\r\n\t\t\t\t\tfill=\"var(--primary-color)\"\r\n\t\t\t\t\tstroke-linecap=\"round\"\r\n\t\t\t\t\tstroke-linejoin=\"miter\"></path>\r\n\t\t\t</svg>\r\n\t\t\t<div class=\"px-5 min-h-screen flex justify-content-center align-items-center\">\r\n\t\t\t\t<div class=\"z-1 text-center\">\r\n\t\t\t\t\t<div class=\"text-900 font-bold text-8xl mb-4\">{{ t('forbidden.title') }}</div>\r\n\t\t\t\t\t<p class=\"line-height-3 mt-0 mb-5 text-700 text-xl font-medium\">{{ t('forbidden.message') }}</p>\r\n\t\t\t\t\t<p-button routerLink=\"/\" styleClass=\"p-button-dark font-medium p-button-raised\">{{ t('forbidden.goHome') }}</p-button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t`\r\n})\r\nexport class ForbiddenComponent {}\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-boot-pages.mjs","sources":["../../projects/aril/boot/pages/src/notFound.component.ts","../../projects/aril/boot/pages/src/forbidden.component.ts","../../projects/aril/boot/pages/aril-boot-pages.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\timports: [ButtonModule, RouterModule],\r\n\ttemplate: `\r\n\t\t<svg\r\n\t\t\tviewBox=\"0 0 960 540\"\r\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n\t\t\tversion=\"1.1\"\r\n\t\t\tclass=\"min-h-screen min-w-screen fixed left-0\"\r\n\t\t\tstyle=\"bottom:-10rem\"\r\n\t\t\tpreserveAspectRatio=\"none\">\r\n\t\t\t<rect x=\"0\" y=\"0\" width=\"960\" height=\"540\" fill=\"var(--surface-ground)\"></rect>\r\n\t\t\t<path\r\n\t\t\t\td=\"M0 331L26.7 321C53.3 311 106.7 291 160 291C213.3 291 266.7 311 320 329.5C373.3 348 426.7 365 480 373.2C533.3 381.3 586.7 380.7 640 373.8C693.3 367 746.7 354 800 341.2C853.3 328.3 906.7 315.7 933.3 309.3L960 303L960 541L933.3 541C906.7 541 853.3 541 800 541C746.7 541 693.3 541 640 541C586.7 541 533.3 541 480 541C426.7 541 373.3 541 320 541C266.7 541 213.3 541 160 541C106.7 541 53.3 541 26.7 541L0 541Z\"\r\n\t\t\t\tfill=\"var(--primary-color)\"\r\n\t\t\t\tstroke-linecap=\"round\"\r\n\t\t\t\tstroke-linejoin=\"miter\"></path>\r\n\t\t</svg>\r\n\t\t<div class=\"px-5 min-h-screen flex justify-content-center align-items-center\">\r\n\t\t\t<div class=\"z-1 text-center\">\r\n\t\t\t\t<div class=\"text-900 font-bold text-8xl mb-4\">Oops!</div>\r\n\t\t\t\t<p class=\"line-height-3 mt-0 mb-5 text-700 text-xl font-medium\">Sayfa Bulunamadı</p>\r\n\t\t\t\t<p-button routerLink=\"/\" styleClass=\"p-button-dark font-medium p-button-raised\">Anasayfaya Git</p-button>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t`\r\n})\r\nexport class NotFoundComponent {}\r\n","import { Component } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { ButtonModule } from 'primeng/button';\r\n\r\nimport { TranslocoModule } from '@ngneat/transloco';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\timports: [ButtonModule, RouterModule, TranslocoModule],\r\n\ttemplate: `\r\n\t\t<ng-container *transloco=\"let t\">\r\n\t\t\t<svg\r\n\t\t\t\tviewBox=\"0 0 960 540\"\r\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\txmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n\t\t\t\tversion=\"1.1\"\r\n\t\t\t\tclass=\"min-h-screen min-w-screen fixed left-0\"\r\n\t\t\t\tstyle=\"bottom:-10rem\"\r\n\t\t\t\tpreserveAspectRatio=\"none\">\r\n\t\t\t\t<rect x=\"0\" y=\"0\" width=\"960\" height=\"540\" fill=\"var(--surface-ground)\"></rect>\r\n\t\t\t\t<path\r\n\t\t\t\t\td=\"M0 331L26.7 321C53.3 311 106.7 291 160 291C213.3 291 266.7 311 320 329.5C373.3 348 426.7 365 480 373.2C533.3 381.3 586.7 380.7 640 373.8C693.3 367 746.7 354 800 341.2C853.3 328.3 906.7 315.7 933.3 309.3L960 303L960 541L933.3 541C906.7 541 853.3 541 800 541C746.7 541 693.3 541 640 541C586.7 541 533.3 541 480 541C426.7 541 373.3 541 320 541C266.7 541 213.3 541 160 541C106.7 541 53.3 541 26.7 541L0 541Z\"\r\n\t\t\t\t\tfill=\"var(--primary-color)\"\r\n\t\t\t\t\tstroke-linecap=\"round\"\r\n\t\t\t\t\tstroke-linejoin=\"miter\"></path>\r\n\t\t\t</svg>\r\n\t\t\t<div class=\"px-5 min-h-screen flex justify-content-center align-items-center\">\r\n\t\t\t\t<div class=\"z-1 text-center\">\r\n\t\t\t\t\t<div class=\"text-900 font-bold text-8xl mb-4\">{{ t('forbidden.title') }}</div>\r\n\t\t\t\t\t<p class=\"line-height-3 mt-0 mb-5 text-700 text-xl font-medium\">{{ t('forbidden.message') }}</p>\r\n\t\t\t\t\t<p-button routerLink=\"/\" styleClass=\"p-button-dark font-medium p-button-raised\">{{ t('forbidden.goHome') }}</p-button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t`\r\n})\r\nexport class ForbiddenComponent {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -66,10 +66,10 @@ class HttpBackendService {
66
66
  constructor(handler) {
67
67
  this.httpClient = new HttpClient(handler);
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: HttpBackendService, deps: [{ token: i1.HttpBackend }], target: i0.ɵɵFactoryTarget.Injectable }); }
70
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: HttpBackendService, providedIn: 'root' }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HttpBackendService, deps: [{ token: i1.HttpBackend }], target: i0.ɵɵFactoryTarget.Injectable }); }
70
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HttpBackendService, providedIn: 'root' }); }
71
71
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: HttpBackendService, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HttpBackendService, decorators: [{
73
73
  type: Injectable,
74
74
  args: [{ providedIn: 'root' }]
75
75
  }], ctorParameters: () => [{ type: i1.HttpBackend }] });
@@ -1 +1 @@
1
- {"version":3,"file":"aril-http.mjs","sources":["../../projects/aril/http/lib/enums.ts","../../projects/aril/http/lib/interfaces.ts","../../projects/aril/http/src/httpBackend.ts","../../projects/aril/http/src/httpClient.ts","../../projects/aril/http/src/serviceRequest.ts","../../projects/aril/http/src/serviceStateMethods.ts","../../projects/aril/http/src/serviceBase.ts","../../projects/aril/http/src/interceptor/accept-language.interceptor.ts","../../projects/aril/http/index.ts","../../projects/aril/http/aril-http.ts"],"sourcesContent":["export enum HTTPMethods {\r\n\tGET = 'GET',\r\n\tGETBYPARAMS = 'GETBYPARAMS',\r\n\tGETBYDYNAMICPATH = 'GETBYDYNAMICPATH',\r\n\tGETBYPARAMSANDDYNAMICPATH = 'GETBYPARAMSANDDYNAMICPATH',\r\n\tPOST = 'POST',\r\n\tPOSTBYPARAMS = 'POSTBYPARAMS',\r\n\tPOSTBYDYNAMICPATH = 'POSTBYDYNAMICPATH',\r\n\tPUT = 'PUT',\r\n\tPUTBYPARAMS = 'PUTBYPARAMS',\r\n\tPUTBYDYNAMICPATH = 'PUTBYDYNAMICPATH',\r\n\tDELETE = 'DELETE',\r\n\tDELETEBYPARAMS = 'DELETEBYPARAMS',\r\n\tDELETEBYDYNAMICPATH = 'DELETEBYDYNAMICPATH'\r\n}\r\nexport enum ProxyTypes {\r\n\tNative,\r\n\tServerSide,\r\n\tClientSide\r\n}\r\nexport enum HTTPStatusCodes {\r\n\tOK = 200,\r\n\tCREATED = 201,\r\n\tACCEPTED = 202,\r\n\tNO_CONTENT = 204,\r\n\tBAD_REQUEST = 400,\r\n\tUNAUTHORIZED = 401,\r\n\tFORBIDDEN = 403,\r\n\tNOT_FOUND = 404,\r\n\tINTERNAL_SERVER_ERROR = 500\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\n/* eslint-disable @typescript-eslint/ban-types */\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { ProxyTypes } from './enums';\r\n\r\nexport interface ServiceCallStates {\r\n\tserviceCalled: boolean;\r\n\twaitingForResponse: boolean;\r\n\tresponseIsRecieved: boolean;\r\n\tserviceCallFailed: boolean;\r\n}\r\n\r\nexport type ServiceCallStateMap<T> = {\r\n\t[K in keyof T]?: T[K] extends Function ? ServiceCallStates : never;\r\n};\r\n\r\nexport class ErrorResponse {\r\n\terror: HttpErrorResponse | undefined;\r\n\r\n\tconstructor(err: HttpErrorResponse | undefined) {\r\n\t\tthis.error = err;\r\n\t}\r\n}\r\n\r\nexport class ServiceResponse<T> extends ErrorResponse {\r\n\trequest: any;\r\n\tresponse: T;\r\n\tproxy: ProxyTypes;\r\n\tstatusCode?: number;\r\n\r\n\tconstructor(request: any, response: T, proxy: ProxyTypes, statusCode?: number) {\r\n\t\tsuper(undefined);\r\n\t\tthis.request = request;\r\n\t\tthis.response = response;\r\n\t\tthis.proxy = proxy;\r\n\t\tthis.statusCode = statusCode;\r\n\t}\r\n}\r\n\r\nexport interface ErrorDetail {\r\n\tfieldName: string;\r\n\treason: string;\r\n\tdescription: string;\r\n}\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n// WithoutInterceptorHttpClient\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpBackendService {\r\n\tpublic httpClient: HttpClient;\r\n\r\n\tconstructor(handler: HttpBackend) {\r\n\t\tthis.httpClient = new HttpClient(handler);\r\n\t}\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injector, inject } from '@angular/core';\r\n\r\nimport { MessageService } from 'primeng/api';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\n\r\nimport { ServiceCallStateMap } from '../lib/interfaces';\r\n\r\nexport abstract class RestClient {\r\n\tprivate readonly httpClient = inject(HttpClient);\r\n\tprivate readonly injector = inject(Injector);\r\n\tprivate readonly messageService = inject(MessageService);\r\n\tprivate readonly translocoService = inject(TranslocoService);\r\n\tprivate readonly keycloak = inject(KeycloakService);\r\n\r\n\tabstract states: ServiceCallStateMap<any>;\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nimport { Interfaces } from 'aril/util/lib';\r\n\r\nimport { HTTPMethods } from '../lib/enums';\r\n\r\nexport function getRequest(httpMethod: HTTPMethods, args: any[]): HttpParams | Interfaces.MapStringAny | undefined {\r\n\tif (!args.length) return undefined;\r\n\r\n\tswitch (httpMethod) {\r\n\t\tcase HTTPMethods.PUT:\r\n\t\t\treturn args[1];\r\n\t\tcase HTTPMethods.POSTBYPARAMS:\r\n\t\tcase HTTPMethods.GETBYPARAMS:\r\n\t\tcase HTTPMethods.GETBYPARAMSANDDYNAMICPATH:\r\n\t\tcase HTTPMethods.DELETEBYPARAMS:\r\n\t\t\tconst dto = httpMethod === HTTPMethods.POSTBYPARAMS ? args[0].queryParams : args[0];\r\n\t\t\tlet queryParams = new HttpParams();\r\n\r\n\t\t\tfor (const [key, value] of Object.entries(dto)) {\r\n\t\t\t\tqueryParams = queryParams.append(key, value as any);\r\n\t\t\t}\r\n\r\n\t\t\treturn queryParams;\r\n\t\tdefault:\r\n\t\t\treturn args[0];\r\n\t}\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\r\n\r\nimport { MessageService } from 'primeng/api';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\n\r\nimport { ErrorDetail, ServiceCallStateMap } from '../lib/interfaces';\r\n\r\nexport const callState = (states: ServiceCallStateMap<any>, serviceName: any): void => {\r\n\tstates[serviceName] = {\r\n\t\tserviceCalled: true,\r\n\t\twaitingForResponse: true,\r\n\t\tresponseIsRecieved: false,\r\n\t\tserviceCallFailed: false\r\n\t};\r\n};\r\n\r\n// İstek iptal/teardown olduğunda (finalize) waitingForResponse'u temizler. Normal akış\r\n// (success/warning/error) state'i zaten güncellediyse no-op — yalnızca takılı kalan true'yu düşürür.\r\nexport const clearWaitingState = (states: ServiceCallStateMap<any>, serviceName: any): void => {\r\n\tconst current = states[serviceName];\r\n\tif (current?.waitingForResponse) {\r\n\t\tstates[serviceName] = { ...current, waitingForResponse: false };\r\n\t}\r\n};\r\n\r\nexport const successState = (\r\n\tstates: ServiceCallStateMap<any>,\r\n\tserviceName: any,\r\n\ttranslocoService: TranslocoService,\r\n\tmessageService: MessageService,\r\n\tmessage?: { success?: string; error?: string; ignoredStatusCodes?: HttpStatusCode[] },\r\n\tresponse?: any\r\n): void => {\r\n\tstates[serviceName] = {\r\n\t\tserviceCalled: true,\r\n\t\twaitingForResponse: false,\r\n\t\tresponseIsRecieved: true,\r\n\t\tserviceCallFailed: false\r\n\t};\r\n\r\n\tif (message?.success) {\r\n\t\tmessageService.add({\r\n\t\t\tkey: 'toast-root',\r\n\t\t\tseverity: 'success',\r\n\t\t\tsummary: getTranslatedMessage(<string>message.success, translocoService, response)\r\n\t\t});\r\n\t}\r\n};\r\n\r\nexport const errorState = async (\r\n\tstates: ServiceCallStateMap<any>,\r\n\tserviceName: any,\r\n\terror: HttpErrorResponse,\r\n\ttranslocoService: TranslocoService,\r\n\tmessageService: MessageService,\r\n\tkeycloakService: KeycloakService,\r\n\tmessage?: { success?: string; error?: string; ignoredStatusCodes?: HttpStatusCode[] }\r\n) => {\r\n\tstates[serviceName] = {\r\n\t\tserviceCalled: true,\r\n\t\twaitingForResponse: false,\r\n\t\tresponseIsRecieved: true,\r\n\t\tserviceCallFailed: true\r\n\t};\r\n\r\n\tlet httpError: string;\r\n\r\n\tswitch (error.status) {\r\n\t\tcase 400:\r\n\t\t\thttpError = 'Hatalı İstek';\r\n\t\t\tbreak;\r\n\t\tcase 401:\r\n\t\t\thttpError = 'Yetkisiz Erişim';\r\n\t\t\tawait keycloakService.login({ redirectUri: window.location.href });\r\n\t\t\tbreak;\r\n\t\tcase 403:\r\n\t\t\thttpError = 'Erişim Engellendi';\r\n\t\t\tif (keycloakService.isTokenExpired()) await keycloakService.login({ redirectUri: window.location.href });\r\n\t\t\tbreak;\r\n\t\tcase 404:\r\n\t\t\thttpError = 'Kaynak Bulunamadı';\r\n\t\t\tbreak;\r\n\t\tcase 405:\r\n\t\t\thttpError = 'İzin Verilmeyen Metod';\r\n\t\t\tbreak;\r\n\t\tcase 406:\r\n\t\t\thttpError = 'Kabul Edilemez Başlık';\r\n\t\t\tbreak;\r\n\t\tcase 408:\r\n\t\t\thttpError = 'Zaman Aşımı';\r\n\t\t\tbreak;\r\n\t\tcase 409:\r\n\t\t\thttpError = 'Çakışma';\r\n\t\t\tbreak;\r\n\t\tcase 500:\r\n\t\t\thttpError = 'Sunucu Hatası';\r\n\t\t\tbreak;\r\n\t\tcase 501:\r\n\t\t\thttpError = 'Sunucu Yapılandırma Hatası';\r\n\t\t\tbreak;\r\n\t\tcase 502:\r\n\t\t\thttpError = 'Geçersiz Ağ Geçidi';\r\n\t\t\tbreak;\r\n\t\tcase 503:\r\n\t\t\thttpError = 'Sunucu Hizmet Vermiyor';\r\n\t\t\tbreak;\r\n\t\tcase 504:\r\n\t\t\thttpError = 'Ağ Geçidi Zaman Aşımı';\r\n\t\t\tbreak;\r\n\t\tcase 505:\r\n\t\t\thttpError = 'HTTP Protokol Desteklenmiyor';\r\n\t\t\tbreak;\r\n\t\tcase 511:\r\n\t\t\thttpError = 'Ağ Kimlik Doğrulaması Gerekli';\r\n\t\t\tbreak;\r\n\t\tcase 599:\r\n\t\t\thttpError = 'Ağ Bağlantısı Zaman Aşımı';\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\thttpError = error?.error?.message;\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\tif (!httpError) return;\r\n\r\n\tif (message?.ignoredStatusCodes?.includes(error.status)) return;\r\n\r\n\tif (error.error?.details?.length && Array.isArray(error.error.details)) {\r\n\t\terror.error.details.forEach((detail: ErrorDetail) => {\r\n\t\t\tconst key = 'fields.' + detail.fieldName;\r\n\t\t\tconst translatedField = translocoService.translate(key);\r\n\t\t\tconst text = translatedField === key ? detail.fieldName : translatedField;\r\n\r\n\t\t\tconst detailText = (detail.fieldName ? text + ' - ' : '') + detail.reason;\r\n\r\n\t\t\tmessageService.add({\r\n\t\t\t\tkey: 'toast-root',\r\n\t\t\t\tseverity: 'error',\r\n\t\t\t\tsummary: error?.error?.message,\r\n\t\t\t\tdetail: detailText\r\n\t\t\t});\r\n\t\t});\r\n\t} else {\r\n\t\tmessageService.add({\r\n\t\t\tkey: 'toast-root',\r\n\t\t\tseverity: 'error',\r\n\t\t\tsummary: httpError,\r\n\t\t\tdetail: error?.error?.message\r\n\t\t});\r\n\t}\r\n\r\n\tif (message?.error) {\r\n\t\tmessageService.add({\r\n\t\t\tkey: 'toast-root',\r\n\t\t\tseverity: 'error',\r\n\t\t\tsummary: error?.error?.message || getTranslatedMessage(message.error, translocoService)\r\n\t\t});\r\n\t}\r\n};\r\n\r\nexport const warningState = (\r\n\tstates: ServiceCallStateMap<any>,\r\n\tserviceName: any,\r\n\tresponse: any,\r\n\tmessageService: MessageService\r\n): void => {\r\n\tstates[serviceName] = {\r\n\t\tserviceCalled: true,\r\n\t\twaitingForResponse: false,\r\n\t\tresponseIsRecieved: true,\r\n\t\tserviceCallFailed: true\r\n\t};\r\n\r\n\tif (response?.details && Array.isArray(response.details) && response.details.length > 0) {\r\n\t\tresponse.details.forEach((detail: ErrorDetail) => {\r\n\t\t\tmessageService.add({\r\n\t\t\t\tkey: 'toast-root',\r\n\t\t\t\tseverity: 'warn',\r\n\t\t\t\tsummary: response?.message,\r\n\t\t\t\tdetail: (detail.fieldName !== null ? detail.fieldName + ' - ' : '') + detail.reason\r\n\t\t\t});\r\n\t\t});\r\n\t} else {\r\n\t\tmessageService.add({\r\n\t\t\tkey: 'toast-root',\r\n\t\t\tseverity: 'warn',\r\n\t\t\tdetail: response?.message\r\n\t\t});\r\n\t}\r\n};\r\n\r\nconst getTranslatedMessage = (messageCode: string, translocoService: TranslocoService, response?: any): string => {\r\n\tconst translateObject = translocoService.getTranslation().get(translocoService.getActiveLang());\r\n\tlet translatedMessage = translateObject?.[messageCode] ?? messageCode;\r\n\r\n\tconst paramStartSymbol = '{{';\r\n\tconst paramEndSymbol = '}}';\r\n\r\n\tif (response && translatedMessage.includes(paramStartSymbol) && translatedMessage.includes(paramEndSymbol)) {\r\n\t\tdo {\r\n\t\t\tlet paramStartIndex = translatedMessage.indexOf(paramStartSymbol);\r\n\t\t\tlet paramEndIndex = translatedMessage.indexOf(paramEndSymbol);\r\n\t\t\tlet paramKey = translatedMessage.slice(paramStartIndex + paramStartSymbol.length, paramEndIndex);\r\n\r\n\t\t\t// Splitting the key to get nested object values\r\n\t\t\tlet paramKeyList = paramKey.split('.');\r\n\t\t\tlet paramValue;\r\n\r\n\t\t\tfor (let key of paramKeyList) {\r\n\t\t\t\tparamValue = paramValue ? paramValue[key] : response[key];\r\n\t\t\t}\r\n\r\n\t\t\tlet replacePattern = `${paramStartSymbol}${paramKey}${paramEndSymbol}`;\r\n\t\t\ttranslatedMessage = translatedMessage.replace(replacePattern, paramValue);\r\n\t\t} while (translatedMessage.includes(paramStartSymbol));\r\n\t}\r\n\r\n\treturn translatedMessage;\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpClient, HttpErrorResponse, HttpParams, HttpStatusCode } from '@angular/common/http';\r\nimport { runInInjectionContext } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, finalize, map, tap } 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 { HTTPMethods, HTTPStatusCodes, ProxyTypes } from '../lib/enums';\r\nimport { ErrorResponse, ServiceCallStateMap, ServiceResponse } from '../lib/interfaces';\r\nimport { getRequest } from './serviceRequest';\r\nimport { callState, clearWaitingState, errorState, successState, warningState } from './serviceStateMethods';\r\n\r\nexport function ServiceCall(\r\n\thttpMethod: HTTPMethods,\r\n\tproxy: ProxyTypes,\r\n\tserviceURL: string,\r\n\tmessage?: { success?: string; error?: string; ignoredStatusCodes?: HttpStatusCode[] },\r\n\tremoteAPI?: Apps,\r\n\tisMockAPI = false\r\n): MethodDecorator {\r\n\treturn function (serviceClass: object, serviceName: string | symbol, descriptor: PropertyDescriptor) {\r\n\t\t// const originalFunction = descriptor.value;\r\n\r\n\t\tdescriptor.value = function (...args: any[]) {\r\n\t\t\treturn runInInjectionContext((<any>this).injector, () => {\r\n\t\t\t\tconst httpClient: HttpClient = (<any>this).httpClient;\r\n\r\n\t\t\t\tlet api = '';\r\n\t\t\t\tif (isMockAPI) api = <string>remoteAPI;\r\n\t\t\t\telse if (remoteAPI) {\r\n\t\t\t\t\tconst url = new URL(API_CONFIGS.api);\r\n\t\t\t\t\tapi = url.origin + '/' + API_CONFIGS.prefixMap[remoteAPI];\r\n\t\t\t\t} else api = API_CONFIGS.api;\r\n\r\n\t\t\t\tconst endPoint = api + '/' + serviceURL;\r\n\t\t\t\tconst request = getRequest(httpMethod, args);\r\n\t\t\t\tconst states: ServiceCallStateMap<any> = (<any>this).states;\r\n\r\n\t\t\t\tcallState(states, serviceName);\r\n\r\n\t\t\t\tlet observable: Observable<any> = new Observable<any>();\r\n\t\t\t\tlet getDynamicServiceUrl: string;\r\n\r\n\t\t\t\tswitch (httpMethod) {\r\n\t\t\t\t\tcase HTTPMethods.GET:\r\n\t\t\t\t\t\tlet getReq = args.length ? '/' + args[0] : '';\r\n\t\t\t\t\t\tobservable = httpClient.get<any>(endPoint + getReq, {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.GETBYPARAMS:\r\n\t\t\t\t\t\tobservable = httpClient.get<any>(endPoint, { params: request as HttpParams, observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.GETBYDYNAMICPATH:\r\n\t\t\t\t\t\tgetDynamicServiceUrl = serviceURL;\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tgetDynamicServiceUrl = getDynamicServiceUrl.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobservable = httpClient.get<any>(api + '/' + getDynamicServiceUrl, {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.GETBYPARAMSANDDYNAMICPATH:\r\n\t\t\t\t\t\tlet getParams = {};\r\n\t\t\t\t\t\tlet getDynamicServiceUrlWithParams = serviceURL;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tif (typeof arg === 'object') getParams = arg;\r\n\t\t\t\t\t\t\telse getDynamicServiceUrlWithParams = getDynamicServiceUrlWithParams.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tobservable = httpClient.get<any>(api + '/' + getDynamicServiceUrlWithParams, {\r\n\t\t\t\t\t\t\tparams: getParams as HttpParams,\r\n\t\t\t\t\t\t\tobserve: 'response',\r\n\t\t\t\t\t\t\tresponseType: 'json'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.POST:\r\n\t\t\t\t\t\tobservable = httpClient.post<any>(endPoint, args[0], {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.POSTBYPARAMS:\r\n\t\t\t\t\t\tobservable = httpClient.post<any>(endPoint, args[0].body, { params: request, observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.POSTBYDYNAMICPATH:\r\n\t\t\t\t\t\tlet body = {};\r\n\t\t\t\t\t\tlet dynamicServiceUrl = serviceURL;\r\n\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tif (typeof arg === 'object') body = arg;\r\n\t\t\t\t\t\t\telse dynamicServiceUrl = dynamicServiceUrl.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobservable = httpClient.post<any>(api + '/' + dynamicServiceUrl, body, { observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.PUT:\r\n\t\t\t\t\t\tobservable = httpClient.put<any>(endPoint + '/' + args[0], request, { observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.PUTBYPARAMS:\r\n\t\t\t\t\t\tobservable = httpClient.put<any>(endPoint, args[0], { observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase HTTPMethods.PUTBYDYNAMICPATH:\r\n\t\t\t\t\t\tlet putBody = {};\r\n\t\t\t\t\t\tlet putDynamicServiceUrl = serviceURL;\r\n\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tif (typeof arg === 'object') putBody = arg;\r\n\t\t\t\t\t\t\telse putDynamicServiceUrl = putDynamicServiceUrl.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobservable = httpClient.put<any>(api + '/' + putDynamicServiceUrl, putBody, {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.DELETE:\r\n\t\t\t\t\t\tobservable = httpClient.delete<any>(endPoint + '/' + args[0], {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.DELETEBYPARAMS:\r\n\t\t\t\t\t\tobservable = httpClient.delete<any>(endPoint, { params: request as HttpParams, observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.DELETEBYDYNAMICPATH:\r\n\t\t\t\t\t\tlet deleteParams = {};\r\n\t\t\t\t\t\tlet deleteDynamicServiceUrl = serviceURL;\r\n\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tif (typeof arg === 'object') deleteParams = arg;\r\n\t\t\t\t\t\t\telse deleteDynamicServiceUrl = deleteDynamicServiceUrl.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tobservable = httpClient.delete<any>(api + '/' + deleteDynamicServiceUrl, {\r\n\t\t\t\t\t\t\tparams: deleteParams,\r\n\t\t\t\t\t\t\tobserve: 'response',\r\n\t\t\t\t\t\t\tresponseType: 'json'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tobservable = observable.pipe(\r\n\t\t\t\t\tmap((response) => new ServiceResponse(request, response?.body, proxy, response?.status)),\r\n\t\t\t\t\ttap((serviceRes) => {\r\n\t\t\t\t\t\tif (serviceRes?.statusCode === HTTPStatusCodes.NO_CONTENT) {\r\n\t\t\t\t\t\t\t(<any>this).messageService.add({\r\n\t\t\t\t\t\t\t\tkey: 'toast-root',\r\n\t\t\t\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\t\t\t\tsummary: (<any>this).translocoService.translate('messages.successMessageHeader'),\r\n\t\t\t\t\t\t\t\tdetail: (<any>this).translocoService.translate('messages.successMessage')\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else if (serviceRes.response.type === 'ValidationWarningException') {\r\n\t\t\t\t\t\t\twarningState(states, serviceName, serviceRes.response, (<any>this).messageService);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsuccessState(\r\n\t\t\t\t\t\t\t\tstates,\r\n\t\t\t\t\t\t\t\tserviceName,\r\n\t\t\t\t\t\t\t\t(<any>this).translocoService,\r\n\t\t\t\t\t\t\t\t(<any>this).messageService,\r\n\t\t\t\t\t\t\t\tmessage,\r\n\t\t\t\t\t\t\t\tserviceRes\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tcatchError((error: HttpErrorResponse) => {\r\n\t\t\t\t\t\terrorState(\r\n\t\t\t\t\t\t\tstates,\r\n\t\t\t\t\t\t\tserviceName,\r\n\t\t\t\t\t\t\terror,\r\n\t\t\t\t\t\t\t(<any>this).translocoService,\r\n\t\t\t\t\t\t\t(<any>this).messageService,\r\n\t\t\t\t\t\t\t(<any>this).keycloak,\r\n\t\t\t\t\t\t\tmessage\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treturn of(new ErrorResponse(error));\r\n\t\t\t\t\t}),\r\n\t\t\t\t\ttakeUntilDestroyed(),\r\n\t\t\t\t\tfinalize(() => clearWaitingState(states, serviceName))\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn observable;\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n}\r\n","import { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\r\nimport { inject } from '@angular/core';\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nconst DEFAULT_LANGUAGE = 'tr' as const;\r\nconst STORAGE_KEY = 'lang' as const;\r\n\r\nconst resolveLanguage = (translocoService: TranslocoService | null): string => {\r\n return (\r\n translocoService?.getActiveLang?.() ||\r\n localStorage.getItem(STORAGE_KEY) ||\r\n translocoService?.getDefaultLang?.() ||\r\n DEFAULT_LANGUAGE\r\n );\r\n};\r\n\r\nexport const acceptLanguageInterceptor: HttpInterceptorFn = (\r\n req: HttpRequest<unknown>,\r\n next: HttpHandlerFn\r\n) => {\r\n const translocoService = inject(TranslocoService, { optional: true }) ?? null;\r\n const language = resolveLanguage(translocoService);\r\n\r\n const updatedReq = req.clone({\r\n setHeaders: {\r\n 'Accept-Language': language\r\n }\r\n });\r\n\r\n return next(updatedReq);\r\n};\r\n\r\n","/* lib */\r\nexport * from './lib/enums';\r\nexport * from './lib/interfaces';\r\n\r\n/* src */\r\nexport * from './src/httpBackend';\r\nexport * from './src/httpClient';\r\nexport * from './src/serviceBase';\r\nexport * from './src/serviceStateMethods';\r\n\r\n/* interceptor */\r\nexport * from './src/interceptor/accept-language.interceptor';\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-http.mjs","sources":["../../projects/aril/http/lib/enums.ts","../../projects/aril/http/lib/interfaces.ts","../../projects/aril/http/src/httpBackend.ts","../../projects/aril/http/src/httpClient.ts","../../projects/aril/http/src/serviceRequest.ts","../../projects/aril/http/src/serviceStateMethods.ts","../../projects/aril/http/src/serviceBase.ts","../../projects/aril/http/src/interceptor/accept-language.interceptor.ts","../../projects/aril/http/index.ts","../../projects/aril/http/aril-http.ts"],"sourcesContent":["export enum HTTPMethods {\r\n\tGET = 'GET',\r\n\tGETBYPARAMS = 'GETBYPARAMS',\r\n\tGETBYDYNAMICPATH = 'GETBYDYNAMICPATH',\r\n\tGETBYPARAMSANDDYNAMICPATH = 'GETBYPARAMSANDDYNAMICPATH',\r\n\tPOST = 'POST',\r\n\tPOSTBYPARAMS = 'POSTBYPARAMS',\r\n\tPOSTBYDYNAMICPATH = 'POSTBYDYNAMICPATH',\r\n\tPUT = 'PUT',\r\n\tPUTBYPARAMS = 'PUTBYPARAMS',\r\n\tPUTBYDYNAMICPATH = 'PUTBYDYNAMICPATH',\r\n\tDELETE = 'DELETE',\r\n\tDELETEBYPARAMS = 'DELETEBYPARAMS',\r\n\tDELETEBYDYNAMICPATH = 'DELETEBYDYNAMICPATH'\r\n}\r\nexport enum ProxyTypes {\r\n\tNative,\r\n\tServerSide,\r\n\tClientSide\r\n}\r\nexport enum HTTPStatusCodes {\r\n\tOK = 200,\r\n\tCREATED = 201,\r\n\tACCEPTED = 202,\r\n\tNO_CONTENT = 204,\r\n\tBAD_REQUEST = 400,\r\n\tUNAUTHORIZED = 401,\r\n\tFORBIDDEN = 403,\r\n\tNOT_FOUND = 404,\r\n\tINTERNAL_SERVER_ERROR = 500\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\n/* eslint-disable @typescript-eslint/ban-types */\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { ProxyTypes } from './enums';\r\n\r\nexport interface ServiceCallStates {\r\n\tserviceCalled: boolean;\r\n\twaitingForResponse: boolean;\r\n\tresponseIsRecieved: boolean;\r\n\tserviceCallFailed: boolean;\r\n}\r\n\r\nexport type ServiceCallStateMap<T> = {\r\n\t[K in keyof T]?: T[K] extends Function ? ServiceCallStates : never;\r\n};\r\n\r\nexport class ErrorResponse {\r\n\terror: HttpErrorResponse | undefined;\r\n\r\n\tconstructor(err: HttpErrorResponse | undefined) {\r\n\t\tthis.error = err;\r\n\t}\r\n}\r\n\r\nexport class ServiceResponse<T> extends ErrorResponse {\r\n\trequest: any;\r\n\tresponse: T;\r\n\tproxy: ProxyTypes;\r\n\tstatusCode?: number;\r\n\r\n\tconstructor(request: any, response: T, proxy: ProxyTypes, statusCode?: number) {\r\n\t\tsuper(undefined);\r\n\t\tthis.request = request;\r\n\t\tthis.response = response;\r\n\t\tthis.proxy = proxy;\r\n\t\tthis.statusCode = statusCode;\r\n\t}\r\n}\r\n\r\nexport interface ErrorDetail {\r\n\tfieldName: string;\r\n\treason: string;\r\n\tdescription: string;\r\n}\r\n","import { HttpBackend, HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n// WithoutInterceptorHttpClient\r\n@Injectable({ providedIn: 'root' })\r\nexport class HttpBackendService {\r\n\tpublic httpClient: HttpClient;\r\n\r\n\tconstructor(handler: HttpBackend) {\r\n\t\tthis.httpClient = new HttpClient(handler);\r\n\t}\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injector, inject } from '@angular/core';\r\n\r\nimport { MessageService } from 'primeng/api';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\n\r\nimport { ServiceCallStateMap } from '../lib/interfaces';\r\n\r\nexport abstract class RestClient {\r\n\tprivate readonly httpClient = inject(HttpClient);\r\n\tprivate readonly injector = inject(Injector);\r\n\tprivate readonly messageService = inject(MessageService);\r\n\tprivate readonly translocoService = inject(TranslocoService);\r\n\tprivate readonly keycloak = inject(KeycloakService);\r\n\r\n\tabstract states: ServiceCallStateMap<any>;\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nimport { Interfaces } from 'aril/util/lib';\r\n\r\nimport { HTTPMethods } from '../lib/enums';\r\n\r\nexport function getRequest(httpMethod: HTTPMethods, args: any[]): HttpParams | Interfaces.MapStringAny | undefined {\r\n\tif (!args.length) return undefined;\r\n\r\n\tswitch (httpMethod) {\r\n\t\tcase HTTPMethods.PUT:\r\n\t\t\treturn args[1];\r\n\t\tcase HTTPMethods.POSTBYPARAMS:\r\n\t\tcase HTTPMethods.GETBYPARAMS:\r\n\t\tcase HTTPMethods.GETBYPARAMSANDDYNAMICPATH:\r\n\t\tcase HTTPMethods.DELETEBYPARAMS:\r\n\t\t\tconst dto = httpMethod === HTTPMethods.POSTBYPARAMS ? args[0].queryParams : args[0];\r\n\t\t\tlet queryParams = new HttpParams();\r\n\r\n\t\t\tfor (const [key, value] of Object.entries(dto)) {\r\n\t\t\t\tqueryParams = queryParams.append(key, value as any);\r\n\t\t\t}\r\n\r\n\t\t\treturn queryParams;\r\n\t\tdefault:\r\n\t\t\treturn args[0];\r\n\t}\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpErrorResponse, HttpStatusCode } from '@angular/common/http';\r\n\r\nimport { MessageService } from 'primeng/api';\r\n\r\nimport { TranslocoService } from '@ngneat/transloco';\r\nimport { KeycloakService } from 'keycloak-angular';\r\n\r\nimport { ErrorDetail, ServiceCallStateMap } from '../lib/interfaces';\r\n\r\nexport const callState = (states: ServiceCallStateMap<any>, serviceName: any): void => {\r\n\tstates[serviceName] = {\r\n\t\tserviceCalled: true,\r\n\t\twaitingForResponse: true,\r\n\t\tresponseIsRecieved: false,\r\n\t\tserviceCallFailed: false\r\n\t};\r\n};\r\n\r\n// İstek iptal/teardown olduğunda (finalize) waitingForResponse'u temizler. Normal akış\r\n// (success/warning/error) state'i zaten güncellediyse no-op — yalnızca takılı kalan true'yu düşürür.\r\nexport const clearWaitingState = (states: ServiceCallStateMap<any>, serviceName: any): void => {\r\n\tconst current = states[serviceName];\r\n\tif (current?.waitingForResponse) {\r\n\t\tstates[serviceName] = { ...current, waitingForResponse: false };\r\n\t}\r\n};\r\n\r\nexport const successState = (\r\n\tstates: ServiceCallStateMap<any>,\r\n\tserviceName: any,\r\n\ttranslocoService: TranslocoService,\r\n\tmessageService: MessageService,\r\n\tmessage?: { success?: string; error?: string; ignoredStatusCodes?: HttpStatusCode[] },\r\n\tresponse?: any\r\n): void => {\r\n\tstates[serviceName] = {\r\n\t\tserviceCalled: true,\r\n\t\twaitingForResponse: false,\r\n\t\tresponseIsRecieved: true,\r\n\t\tserviceCallFailed: false\r\n\t};\r\n\r\n\tif (message?.success) {\r\n\t\tmessageService.add({\r\n\t\t\tkey: 'toast-root',\r\n\t\t\tseverity: 'success',\r\n\t\t\tsummary: getTranslatedMessage(<string>message.success, translocoService, response)\r\n\t\t});\r\n\t}\r\n};\r\n\r\nexport const errorState = async (\r\n\tstates: ServiceCallStateMap<any>,\r\n\tserviceName: any,\r\n\terror: HttpErrorResponse,\r\n\ttranslocoService: TranslocoService,\r\n\tmessageService: MessageService,\r\n\tkeycloakService: KeycloakService,\r\n\tmessage?: { success?: string; error?: string; ignoredStatusCodes?: HttpStatusCode[] }\r\n) => {\r\n\tstates[serviceName] = {\r\n\t\tserviceCalled: true,\r\n\t\twaitingForResponse: false,\r\n\t\tresponseIsRecieved: true,\r\n\t\tserviceCallFailed: true\r\n\t};\r\n\r\n\tlet httpError: string;\r\n\r\n\tswitch (error.status) {\r\n\t\tcase 400:\r\n\t\t\thttpError = 'Hatalı İstek';\r\n\t\t\tbreak;\r\n\t\tcase 401:\r\n\t\t\thttpError = 'Yetkisiz Erişim';\r\n\t\t\tawait keycloakService.login({ redirectUri: window.location.href });\r\n\t\t\tbreak;\r\n\t\tcase 403:\r\n\t\t\thttpError = 'Erişim Engellendi';\r\n\t\t\tif (keycloakService.isTokenExpired()) await keycloakService.login({ redirectUri: window.location.href });\r\n\t\t\tbreak;\r\n\t\tcase 404:\r\n\t\t\thttpError = 'Kaynak Bulunamadı';\r\n\t\t\tbreak;\r\n\t\tcase 405:\r\n\t\t\thttpError = 'İzin Verilmeyen Metod';\r\n\t\t\tbreak;\r\n\t\tcase 406:\r\n\t\t\thttpError = 'Kabul Edilemez Başlık';\r\n\t\t\tbreak;\r\n\t\tcase 408:\r\n\t\t\thttpError = 'Zaman Aşımı';\r\n\t\t\tbreak;\r\n\t\tcase 409:\r\n\t\t\thttpError = 'Çakışma';\r\n\t\t\tbreak;\r\n\t\tcase 500:\r\n\t\t\thttpError = 'Sunucu Hatası';\r\n\t\t\tbreak;\r\n\t\tcase 501:\r\n\t\t\thttpError = 'Sunucu Yapılandırma Hatası';\r\n\t\t\tbreak;\r\n\t\tcase 502:\r\n\t\t\thttpError = 'Geçersiz Ağ Geçidi';\r\n\t\t\tbreak;\r\n\t\tcase 503:\r\n\t\t\thttpError = 'Sunucu Hizmet Vermiyor';\r\n\t\t\tbreak;\r\n\t\tcase 504:\r\n\t\t\thttpError = 'Ağ Geçidi Zaman Aşımı';\r\n\t\t\tbreak;\r\n\t\tcase 505:\r\n\t\t\thttpError = 'HTTP Protokol Desteklenmiyor';\r\n\t\t\tbreak;\r\n\t\tcase 511:\r\n\t\t\thttpError = 'Ağ Kimlik Doğrulaması Gerekli';\r\n\t\t\tbreak;\r\n\t\tcase 599:\r\n\t\t\thttpError = 'Ağ Bağlantısı Zaman Aşımı';\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\thttpError = error?.error?.message;\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\tif (!httpError) return;\r\n\r\n\tif (message?.ignoredStatusCodes?.includes(error.status)) return;\r\n\r\n\tif (error.error?.details?.length && Array.isArray(error.error.details)) {\r\n\t\terror.error.details.forEach((detail: ErrorDetail) => {\r\n\t\t\tconst key = 'fields.' + detail.fieldName;\r\n\t\t\tconst translatedField = translocoService.translate(key);\r\n\t\t\tconst text = translatedField === key ? detail.fieldName : translatedField;\r\n\r\n\t\t\tconst detailText = (detail.fieldName ? text + ' - ' : '') + detail.reason;\r\n\r\n\t\t\tmessageService.add({\r\n\t\t\t\tkey: 'toast-root',\r\n\t\t\t\tseverity: 'error',\r\n\t\t\t\tsummary: error?.error?.message,\r\n\t\t\t\tdetail: detailText\r\n\t\t\t});\r\n\t\t});\r\n\t} else {\r\n\t\tmessageService.add({\r\n\t\t\tkey: 'toast-root',\r\n\t\t\tseverity: 'error',\r\n\t\t\tsummary: httpError,\r\n\t\t\tdetail: error?.error?.message\r\n\t\t});\r\n\t}\r\n\r\n\tif (message?.error) {\r\n\t\tmessageService.add({\r\n\t\t\tkey: 'toast-root',\r\n\t\t\tseverity: 'error',\r\n\t\t\tsummary: error?.error?.message || getTranslatedMessage(message.error, translocoService)\r\n\t\t});\r\n\t}\r\n};\r\n\r\nexport const warningState = (\r\n\tstates: ServiceCallStateMap<any>,\r\n\tserviceName: any,\r\n\tresponse: any,\r\n\tmessageService: MessageService\r\n): void => {\r\n\tstates[serviceName] = {\r\n\t\tserviceCalled: true,\r\n\t\twaitingForResponse: false,\r\n\t\tresponseIsRecieved: true,\r\n\t\tserviceCallFailed: true\r\n\t};\r\n\r\n\tif (response?.details && Array.isArray(response.details) && response.details.length > 0) {\r\n\t\tresponse.details.forEach((detail: ErrorDetail) => {\r\n\t\t\tmessageService.add({\r\n\t\t\t\tkey: 'toast-root',\r\n\t\t\t\tseverity: 'warn',\r\n\t\t\t\tsummary: response?.message,\r\n\t\t\t\tdetail: (detail.fieldName !== null ? detail.fieldName + ' - ' : '') + detail.reason\r\n\t\t\t});\r\n\t\t});\r\n\t} else {\r\n\t\tmessageService.add({\r\n\t\t\tkey: 'toast-root',\r\n\t\t\tseverity: 'warn',\r\n\t\t\tdetail: response?.message\r\n\t\t});\r\n\t}\r\n};\r\n\r\nconst getTranslatedMessage = (messageCode: string, translocoService: TranslocoService, response?: any): string => {\r\n\tconst translateObject = translocoService.getTranslation().get(translocoService.getActiveLang());\r\n\tlet translatedMessage = translateObject?.[messageCode] ?? messageCode;\r\n\r\n\tconst paramStartSymbol = '{{';\r\n\tconst paramEndSymbol = '}}';\r\n\r\n\tif (response && translatedMessage.includes(paramStartSymbol) && translatedMessage.includes(paramEndSymbol)) {\r\n\t\tdo {\r\n\t\t\tlet paramStartIndex = translatedMessage.indexOf(paramStartSymbol);\r\n\t\t\tlet paramEndIndex = translatedMessage.indexOf(paramEndSymbol);\r\n\t\t\tlet paramKey = translatedMessage.slice(paramStartIndex + paramStartSymbol.length, paramEndIndex);\r\n\r\n\t\t\t// Splitting the key to get nested object values\r\n\t\t\tlet paramKeyList = paramKey.split('.');\r\n\t\t\tlet paramValue;\r\n\r\n\t\t\tfor (let key of paramKeyList) {\r\n\t\t\t\tparamValue = paramValue ? paramValue[key] : response[key];\r\n\t\t\t}\r\n\r\n\t\t\tlet replacePattern = `${paramStartSymbol}${paramKey}${paramEndSymbol}`;\r\n\t\t\ttranslatedMessage = translatedMessage.replace(replacePattern, paramValue);\r\n\t\t} while (translatedMessage.includes(paramStartSymbol));\r\n\t}\r\n\r\n\treturn translatedMessage;\r\n};\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HttpClient, HttpErrorResponse, HttpParams, HttpStatusCode } from '@angular/common/http';\r\nimport { runInInjectionContext } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, finalize, map, tap } 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 { HTTPMethods, HTTPStatusCodes, ProxyTypes } from '../lib/enums';\r\nimport { ErrorResponse, ServiceCallStateMap, ServiceResponse } from '../lib/interfaces';\r\nimport { getRequest } from './serviceRequest';\r\nimport { callState, clearWaitingState, errorState, successState, warningState } from './serviceStateMethods';\r\n\r\nexport function ServiceCall(\r\n\thttpMethod: HTTPMethods,\r\n\tproxy: ProxyTypes,\r\n\tserviceURL: string,\r\n\tmessage?: { success?: string; error?: string; ignoredStatusCodes?: HttpStatusCode[] },\r\n\tremoteAPI?: Apps,\r\n\tisMockAPI = false\r\n): MethodDecorator {\r\n\treturn function (serviceClass: object, serviceName: string | symbol, descriptor: PropertyDescriptor) {\r\n\t\t// const originalFunction = descriptor.value;\r\n\r\n\t\tdescriptor.value = function (...args: any[]) {\r\n\t\t\treturn runInInjectionContext((<any>this).injector, () => {\r\n\t\t\t\tconst httpClient: HttpClient = (<any>this).httpClient;\r\n\r\n\t\t\t\tlet api = '';\r\n\t\t\t\tif (isMockAPI) api = <string>remoteAPI;\r\n\t\t\t\telse if (remoteAPI) {\r\n\t\t\t\t\tconst url = new URL(API_CONFIGS.api);\r\n\t\t\t\t\tapi = url.origin + '/' + API_CONFIGS.prefixMap[remoteAPI];\r\n\t\t\t\t} else api = API_CONFIGS.api;\r\n\r\n\t\t\t\tconst endPoint = api + '/' + serviceURL;\r\n\t\t\t\tconst request = getRequest(httpMethod, args);\r\n\t\t\t\tconst states: ServiceCallStateMap<any> = (<any>this).states;\r\n\r\n\t\t\t\tcallState(states, serviceName);\r\n\r\n\t\t\t\tlet observable: Observable<any> = new Observable<any>();\r\n\t\t\t\tlet getDynamicServiceUrl: string;\r\n\r\n\t\t\t\tswitch (httpMethod) {\r\n\t\t\t\t\tcase HTTPMethods.GET:\r\n\t\t\t\t\t\tlet getReq = args.length ? '/' + args[0] : '';\r\n\t\t\t\t\t\tobservable = httpClient.get<any>(endPoint + getReq, {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.GETBYPARAMS:\r\n\t\t\t\t\t\tobservable = httpClient.get<any>(endPoint, { params: request as HttpParams, observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.GETBYDYNAMICPATH:\r\n\t\t\t\t\t\tgetDynamicServiceUrl = serviceURL;\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tgetDynamicServiceUrl = getDynamicServiceUrl.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobservable = httpClient.get<any>(api + '/' + getDynamicServiceUrl, {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.GETBYPARAMSANDDYNAMICPATH:\r\n\t\t\t\t\t\tlet getParams = {};\r\n\t\t\t\t\t\tlet getDynamicServiceUrlWithParams = serviceURL;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tif (typeof arg === 'object') getParams = arg;\r\n\t\t\t\t\t\t\telse getDynamicServiceUrlWithParams = getDynamicServiceUrlWithParams.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tobservable = httpClient.get<any>(api + '/' + getDynamicServiceUrlWithParams, {\r\n\t\t\t\t\t\t\tparams: getParams as HttpParams,\r\n\t\t\t\t\t\t\tobserve: 'response',\r\n\t\t\t\t\t\t\tresponseType: 'json'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.POST:\r\n\t\t\t\t\t\tobservable = httpClient.post<any>(endPoint, args[0], {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.POSTBYPARAMS:\r\n\t\t\t\t\t\tobservable = httpClient.post<any>(endPoint, args[0].body, { params: request, observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.POSTBYDYNAMICPATH:\r\n\t\t\t\t\t\tlet body = {};\r\n\t\t\t\t\t\tlet dynamicServiceUrl = serviceURL;\r\n\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tif (typeof arg === 'object') body = arg;\r\n\t\t\t\t\t\t\telse dynamicServiceUrl = dynamicServiceUrl.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobservable = httpClient.post<any>(api + '/' + dynamicServiceUrl, body, { observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.PUT:\r\n\t\t\t\t\t\tobservable = httpClient.put<any>(endPoint + '/' + args[0], request, { observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.PUTBYPARAMS:\r\n\t\t\t\t\t\tobservable = httpClient.put<any>(endPoint, args[0], { observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase HTTPMethods.PUTBYDYNAMICPATH:\r\n\t\t\t\t\t\tlet putBody = {};\r\n\t\t\t\t\t\tlet putDynamicServiceUrl = serviceURL;\r\n\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tif (typeof arg === 'object') putBody = arg;\r\n\t\t\t\t\t\t\telse putDynamicServiceUrl = putDynamicServiceUrl.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tobservable = httpClient.put<any>(api + '/' + putDynamicServiceUrl, putBody, {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.DELETE:\r\n\t\t\t\t\t\tobservable = httpClient.delete<any>(endPoint + '/' + args[0], {observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.DELETEBYPARAMS:\r\n\t\t\t\t\t\tobservable = httpClient.delete<any>(endPoint, { params: request as HttpParams, observe: 'response', responseType: 'json' });\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase HTTPMethods.DELETEBYDYNAMICPATH:\r\n\t\t\t\t\t\tlet deleteParams = {};\r\n\t\t\t\t\t\tlet deleteDynamicServiceUrl = serviceURL;\r\n\r\n\t\t\t\t\t\targs.forEach((arg) => {\r\n\t\t\t\t\t\t\tif (typeof arg === 'object') deleteParams = arg;\r\n\t\t\t\t\t\t\telse deleteDynamicServiceUrl = deleteDynamicServiceUrl.replace('$', arg);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tobservable = httpClient.delete<any>(api + '/' + deleteDynamicServiceUrl, {\r\n\t\t\t\t\t\t\tparams: deleteParams,\r\n\t\t\t\t\t\t\tobserve: 'response',\r\n\t\t\t\t\t\t\tresponseType: 'json'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tobservable = observable.pipe(\r\n\t\t\t\t\tmap((response) => new ServiceResponse(request, response?.body, proxy, response?.status)),\r\n\t\t\t\t\ttap((serviceRes) => {\r\n\t\t\t\t\t\tif (serviceRes?.statusCode === HTTPStatusCodes.NO_CONTENT) {\r\n\t\t\t\t\t\t\t(<any>this).messageService.add({\r\n\t\t\t\t\t\t\t\tkey: 'toast-root',\r\n\t\t\t\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\t\t\t\tsummary: (<any>this).translocoService.translate('messages.successMessageHeader'),\r\n\t\t\t\t\t\t\t\tdetail: (<any>this).translocoService.translate('messages.successMessage')\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else if (serviceRes.response.type === 'ValidationWarningException') {\r\n\t\t\t\t\t\t\twarningState(states, serviceName, serviceRes.response, (<any>this).messageService);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsuccessState(\r\n\t\t\t\t\t\t\t\tstates,\r\n\t\t\t\t\t\t\t\tserviceName,\r\n\t\t\t\t\t\t\t\t(<any>this).translocoService,\r\n\t\t\t\t\t\t\t\t(<any>this).messageService,\r\n\t\t\t\t\t\t\t\tmessage,\r\n\t\t\t\t\t\t\t\tserviceRes\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}),\r\n\t\t\t\t\tcatchError((error: HttpErrorResponse) => {\r\n\t\t\t\t\t\terrorState(\r\n\t\t\t\t\t\t\tstates,\r\n\t\t\t\t\t\t\tserviceName,\r\n\t\t\t\t\t\t\terror,\r\n\t\t\t\t\t\t\t(<any>this).translocoService,\r\n\t\t\t\t\t\t\t(<any>this).messageService,\r\n\t\t\t\t\t\t\t(<any>this).keycloak,\r\n\t\t\t\t\t\t\tmessage\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treturn of(new ErrorResponse(error));\r\n\t\t\t\t\t}),\r\n\t\t\t\t\ttakeUntilDestroyed(),\r\n\t\t\t\t\tfinalize(() => clearWaitingState(states, serviceName))\r\n\t\t\t\t);\r\n\r\n\t\t\t\treturn observable;\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n}\r\n","import { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\r\nimport { inject } from '@angular/core';\r\nimport { TranslocoService } from '@ngneat/transloco';\r\n\r\nconst DEFAULT_LANGUAGE = 'tr' as const;\r\nconst STORAGE_KEY = 'lang' as const;\r\n\r\nconst resolveLanguage = (translocoService: TranslocoService | null): string => {\r\n return (\r\n translocoService?.getActiveLang?.() ||\r\n localStorage.getItem(STORAGE_KEY) ||\r\n translocoService?.getDefaultLang?.() ||\r\n DEFAULT_LANGUAGE\r\n );\r\n};\r\n\r\nexport const acceptLanguageInterceptor: HttpInterceptorFn = (\r\n req: HttpRequest<unknown>,\r\n next: HttpHandlerFn\r\n) => {\r\n const translocoService = inject(TranslocoService, { optional: true }) ?? null;\r\n const language = resolveLanguage(translocoService);\r\n\r\n const updatedReq = req.clone({\r\n setHeaders: {\r\n 'Accept-Language': language\r\n }\r\n });\r\n\r\n return next(updatedReq);\r\n};\r\n\r\n","/* lib */\r\nexport * from './lib/enums';\r\nexport * from './lib/interfaces';\r\n\r\n/* src */\r\nexport * from './src/httpBackend';\r\nexport * from './src/httpClient';\r\nexport * from './src/serviceBase';\r\nexport * from './src/serviceStateMethods';\r\n\r\n/* interceptor */\r\nexport * from './src/interceptor/accept-language.interceptor';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -10,10 +10,10 @@ class TranslocoHttpLoader {
10
10
  getTranslation(lang) {
11
11
  return this.http.get(`./assets/host/i18n/${lang}.json`);
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TranslocoHttpLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
14
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TranslocoHttpLoader, providedIn: 'root' }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslocoHttpLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
14
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslocoHttpLoader, providedIn: 'root' }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TranslocoHttpLoader, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslocoHttpLoader, decorators: [{
17
17
  type: Injectable,
18
18
  args: [{ providedIn: 'root' }]
19
19
  }] });
@@ -51,11 +51,11 @@ const providei18nScope = (scopeName, loader) => {
51
51
  const i18nFolderName = new InjectionToken('i18nFolderName');
52
52
 
53
53
  class i18nModule {
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: i18nModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
55
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.2", ngImport: i0, type: i18nModule, exports: [TranslocoModule] }); }
56
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: i18nModule, providers: [i18nProvider()], imports: [TranslocoModule] }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: i18nModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
55
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: i18nModule, exports: [TranslocoModule] }); }
56
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: i18nModule, providers: [i18nProvider()], imports: [TranslocoModule] }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: i18nModule, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: i18nModule, decorators: [{
59
59
  type: NgModule,
60
60
  args: [{
61
61
  exports: [TranslocoModule],
@@ -1 +1 @@
1
- {"version":3,"file":"aril-i18n.mjs","sources":["../../projects/aril/i18n/src/loader.ts","../../projects/aril/i18n/src/provideI18n.ts","../../projects/aril/i18n/src/provideScope.ts","../../projects/aril/i18n/src/folder-name-token.ts","../../projects/aril/i18n/src/i18n.module.ts","../../projects/aril/i18n/aril-i18n.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\nimport { Translation, TranslocoLoader } from '@ngneat/transloco';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TranslocoHttpLoader implements TranslocoLoader {\r\n\tprivate http = inject(HttpClient);\r\n\r\n\tgetTranslation(lang: string) {\r\n\t\treturn this.http.get<Translation>(`./assets/host/i18n/${lang}.json`);\r\n\t}\r\n}\r\n","import { EnvironmentProviders, isDevMode } from '@angular/core';\r\n\r\nimport { provideTransloco } from '@ngneat/transloco';\r\n\r\nimport { TranslocoHttpLoader } from './loader';\r\n\r\nexport const i18nProvider = (): EnvironmentProviders[] => {\r\n\treturn provideTransloco({\r\n\t\tconfig: {\r\n\t\t\tavailableLangs: ['tr', 'en'],\r\n\t\t\tdefaultLang: 'tr',\r\n\t\t\tfallbackLang: 'tr',\r\n\t\t\treRenderOnLangChange: true,\r\n\t\t\tprodMode: !isDevMode()\r\n\t\t},\r\n\t\tloader: TranslocoHttpLoader\r\n\t});\r\n};\r\n","import { provideTranslocoScope } from '@ngneat/transloco';\r\n\r\nconst languages = ['tr', 'en'];\r\n\r\n/**\r\n * @param loader `(lang: string) => import(`./i18n/${lang}.json`)` to create a relative import to the correct dir\r\n */\r\nfunction i18nLoaderFactory(loader: (lang: string) => Promise<any>) {\r\n\treturn languages.reduce((acc: any, lang) => {\r\n\t\tacc[lang] = () => loader(lang);\r\n\t\treturn acc;\r\n\t}, {});\r\n}\r\n\r\nexport const providei18nScope = (scopeName: string, loader: (lang: string) => Promise<any>) => {\r\n\treturn provideTranslocoScope({\r\n\t\tscope: scopeName,\r\n\t\tloader: i18nLoaderFactory(loader)\r\n\t});\r\n};\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const i18nFolderName = new InjectionToken<string>('i18nFolderName');\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { TranslocoModule } from '@ngneat/transloco';\r\n\r\nimport { i18nProvider } from './provideI18n';\r\n\r\n@NgModule({\r\n\texports: [TranslocoModule],\r\n\tproviders: [i18nProvider()]\r\n})\r\nexport class i18nModule {}\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-i18n.mjs","sources":["../../projects/aril/i18n/src/loader.ts","../../projects/aril/i18n/src/provideI18n.ts","../../projects/aril/i18n/src/provideScope.ts","../../projects/aril/i18n/src/folder-name-token.ts","../../projects/aril/i18n/src/i18n.module.ts","../../projects/aril/i18n/aril-i18n.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\nimport { Translation, TranslocoLoader } from '@ngneat/transloco';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TranslocoHttpLoader implements TranslocoLoader {\r\n\tprivate http = inject(HttpClient);\r\n\r\n\tgetTranslation(lang: string) {\r\n\t\treturn this.http.get<Translation>(`./assets/host/i18n/${lang}.json`);\r\n\t}\r\n}\r\n","import { EnvironmentProviders, isDevMode } from '@angular/core';\r\n\r\nimport { provideTransloco } from '@ngneat/transloco';\r\n\r\nimport { TranslocoHttpLoader } from './loader';\r\n\r\nexport const i18nProvider = (): EnvironmentProviders[] => {\r\n\treturn provideTransloco({\r\n\t\tconfig: {\r\n\t\t\tavailableLangs: ['tr', 'en'],\r\n\t\t\tdefaultLang: 'tr',\r\n\t\t\tfallbackLang: 'tr',\r\n\t\t\treRenderOnLangChange: true,\r\n\t\t\tprodMode: !isDevMode()\r\n\t\t},\r\n\t\tloader: TranslocoHttpLoader\r\n\t});\r\n};\r\n","import { provideTranslocoScope } from '@ngneat/transloco';\r\n\r\nconst languages = ['tr', 'en'];\r\n\r\n/**\r\n * @param loader `(lang: string) => import(`./i18n/${lang}.json`)` to create a relative import to the correct dir\r\n */\r\nfunction i18nLoaderFactory(loader: (lang: string) => Promise<any>) {\r\n\treturn languages.reduce((acc: any, lang) => {\r\n\t\tacc[lang] = () => loader(lang);\r\n\t\treturn acc;\r\n\t}, {});\r\n}\r\n\r\nexport const providei18nScope = (scopeName: string, loader: (lang: string) => Promise<any>) => {\r\n\treturn provideTranslocoScope({\r\n\t\tscope: scopeName,\r\n\t\tloader: i18nLoaderFactory(loader)\r\n\t});\r\n};\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const i18nFolderName = new InjectionToken<string>('i18nFolderName');\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { TranslocoModule } from '@ngneat/transloco';\r\n\r\nimport { i18nProvider } from './provideI18n';\r\n\r\n@NgModule({\r\n\texports: [TranslocoModule],\r\n\tproviders: [i18nProvider()]\r\n})\r\nexport class i18nModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAMa,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;AAES,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AAKjC,IAAA;AAHA,IAAA,cAAc,CAAC,IAAY,EAAA;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAc,CAAA,mBAAA,EAAsB,IAAI,CAAA,KAAA,CAAO,CAAC;IACrE;+GALY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,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,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;;4FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACC3B,MAAM,YAAY,GAAG,MAA6B;AACxD,IAAA,OAAO,gBAAgB,CAAC;AACvB,QAAA,MAAM,EAAE;AACP,YAAA,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5B,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,oBAAoB,EAAE,IAAI;YAC1B,QAAQ,EAAE,CAAC,SAAS;AACpB,SAAA;AACD,QAAA,MAAM,EAAE;AACR,KAAA,CAAC;AACH;;ACfA,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAE9B;;AAEG;AACH,SAAS,iBAAiB,CAAC,MAAsC,EAAA;IAChE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,IAAI,KAAI;QAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;AAC9B,QAAA,OAAO,GAAG;IACX,CAAC,EAAE,EAAE,CAAC;AACP;MAEa,gBAAgB,GAAG,CAAC,SAAiB,EAAE,MAAsC,KAAI;AAC7F,IAAA,OAAO,qBAAqB,CAAC;AAC5B,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,MAAM,EAAE,iBAAiB,CAAC,MAAM;AAChC,KAAA,CAAC;AACH;;MCjBa,cAAc,GAAG,IAAI,cAAc,CAAS,gBAAgB;;MCQ5D,UAAU,CAAA;+GAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,YAHZ,eAAe,CAAA,EAAA,CAAA,CAAA;AAGb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,aAFX,CAAC,YAAY,EAAE,CAAC,YADjB,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAGb,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,eAAe,CAAC;AAC1B,oBAAA,SAAS,EAAE,CAAC,YAAY,EAAE;AAC1B,iBAAA;;;ACTD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"aril-keycloak.mjs","sources":["../../projects/aril/keycloak/src/auth.interceptor.ts","../../projects/aril/keycloak/aril-keycloak.ts"],"sourcesContent":["import { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\r\nimport { inject } from '@angular/core';\r\n\r\nimport { KeycloakBearerInterceptor } from 'keycloak-angular';\r\nimport { fromEvent } from 'rxjs';\r\nimport { filter, switchMap, take } from 'rxjs/operators';\r\n\r\nimport { bridge } from 'aril/boot/bridge';\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { ActivityService, LOGGER_SESSION_HEADER } from 'aril/util/activity';\r\n\r\ntype HostApp = Apps.THOR | Apps.YEAP | Apps.LENA;\r\n\r\nconst HOST_APP_HEADERS: Record<HostApp, Readonly<Record<string, string>>> = {\r\n\t[Apps.THOR]: { 'x-yeap-application': 'thor', 'x-application': 'thor', 'x-module': 'thor-fe' },\r\n\t[Apps.LENA]: { 'x-yeap-application': 'lena', 'x-application': 'lena', 'x-module': 'lena-fe' },\r\n\t[Apps.YEAP]: { 'x-yeap-application': 'yeap', 'x-application': 'yeap', 'x-module': 'yeap-fe' }\r\n};\r\n\r\nconst isHostApp = (value: string | null | undefined): value is HostApp =>\r\n\tvalue === Apps.THOR || value === Apps.LENA || value === Apps.YEAP;\r\n\r\nconst getCsrfToken = (): string | undefined =>\r\n\tdocument.cookie\r\n\t\t.split('; ')\r\n\t\t.find((row) => row.startsWith('csrf_token='))\r\n\t\t?.split('=')[1];\r\n\r\nexport const authInterceptor: HttpInterceptorFn = (req: HttpRequest<unknown>, next: HttpHandlerFn) => {\r\n\tconst activeHost = bridge.activeHost();\r\n\tconst headers = isHostApp(activeHost) ? HOST_APP_HEADERS[activeHost] : {};\r\n\tconst csrfToken = getCsrfToken();\r\n\tconst loggerSessionId = inject(ActivityService).getSessionId();\r\n\r\n\tconst authReq = req.clone({\r\n\t\tsetHeaders: {\r\n\t\t\tcsrf_token: csrfToken ?? '',\r\n\t\t\t...headers,\r\n\t\t\t...(loggerSessionId ? { [LOGGER_SESSION_HEADER]: loggerSessionId } : {})\r\n\t\t}\r\n\t});\r\n\r\n\treturn next(authReq);\r\n};\r\n\r\n/**\r\n * Keycloak token refresh XHR'larının tab inactive iken abort olup `InvalidStateError`\r\n * fırlatmasını önler. `KeycloakBearerInterceptor.intercept` lazy Observable döner —\r\n * subscribe edilmediği sürece side-effect (token refresh) yok. Tab `visibilityState`\r\n * `'hidden'` iken subscribe'ı `visibilitychange → 'visible'` event'ine kadar erteleriz;\r\n * tab tekrar görünür olunca request fresh token ile atılır.\r\n */\r\nexport const keycloakAuthInterceptor: HttpInterceptorFn = (req: HttpRequest<unknown>, next: HttpHandlerFn) => {\r\n\tconst interceptor = inject(KeycloakBearerInterceptor);\r\n\r\n\tif (typeof document === 'undefined' || document.visibilityState === 'visible') {\r\n\t\treturn interceptor.intercept(req, { handle: next });\r\n\t}\r\n\r\n\treturn fromEvent(document, 'visibilitychange').pipe(\r\n\t\tfilter(() => document.visibilityState === 'visible'),\r\n\t\ttake(1),\r\n\t\tswitchMap(() => interceptor.intercept(req, { handle: next }))\r\n\t);\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAaA,MAAM,gBAAgB,GAAsD;AAC3E,IAAA,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;AAC7F,IAAA,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;AAC7F,IAAA,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;CAC7F,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAgC,KAClD,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC;AAEnE,MAAM,YAAY,GAAG,MACpB,QAAQ,CAAC,MAAM;KACb,KAAK,CAAC,IAAI,CAAC;AACX,KAAA,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC7C,MAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAEL,eAAe,GAAsB,CAAC,GAAyB,EAAE,IAAmB,KAAI;AACpG,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;AACvC,IAAA,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AAC1E,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,CAAC;AAE/D,IAAA,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACzB,QAAA,UAAU,EAAE;YACX,UAAU,EAAE,SAAS,IAAI,EAAE;AAC3B,YAAA,GAAG,OAAO;AACV,YAAA,IAAI,eAAe,GAAG,EAAE,CAAC,qBAAqB,GAAG,eAAe,EAAE,GAAG,EAAE;AACvE,SAAA;AACD,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACtB,EAAE;AAEF;;;;;;AAMG;MACU,uBAAuB,GAAsB,CAAC,GAAyB,EAAE,IAAmB,KAAI;AAC5G,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAEtD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE;AAC9E,QAAA,OAAO,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;KACpD;IAED,OAAO,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAClD,MAAM,CAAC,MAAM,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,EACpD,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAC7D,CAAC;AACH;;AChEA;;AAEG;;;;"}
1
+ {"version":3,"file":"aril-keycloak.mjs","sources":["../../projects/aril/keycloak/src/auth.interceptor.ts","../../projects/aril/keycloak/aril-keycloak.ts"],"sourcesContent":["import { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\r\nimport { inject } from '@angular/core';\r\n\r\nimport { KeycloakBearerInterceptor } from 'keycloak-angular';\r\nimport { fromEvent } from 'rxjs';\r\nimport { filter, switchMap, take } from 'rxjs/operators';\r\n\r\nimport { bridge } from 'aril/boot/bridge';\r\nimport { Apps } from 'aril/boot/config/apps';\r\nimport { ActivityService, LOGGER_SESSION_HEADER } from 'aril/util/activity';\r\n\r\ntype HostApp = Apps.THOR | Apps.YEAP | Apps.LENA;\r\n\r\nconst HOST_APP_HEADERS: Record<HostApp, Readonly<Record<string, string>>> = {\r\n\t[Apps.THOR]: { 'x-yeap-application': 'thor', 'x-application': 'thor', 'x-module': 'thor-fe' },\r\n\t[Apps.LENA]: { 'x-yeap-application': 'lena', 'x-application': 'lena', 'x-module': 'lena-fe' },\r\n\t[Apps.YEAP]: { 'x-yeap-application': 'yeap', 'x-application': 'yeap', 'x-module': 'yeap-fe' }\r\n};\r\n\r\nconst isHostApp = (value: string | null | undefined): value is HostApp =>\r\n\tvalue === Apps.THOR || value === Apps.LENA || value === Apps.YEAP;\r\n\r\nconst getCsrfToken = (): string | undefined =>\r\n\tdocument.cookie\r\n\t\t.split('; ')\r\n\t\t.find((row) => row.startsWith('csrf_token='))\r\n\t\t?.split('=')[1];\r\n\r\nexport const authInterceptor: HttpInterceptorFn = (req: HttpRequest<unknown>, next: HttpHandlerFn) => {\r\n\tconst activeHost = bridge.activeHost();\r\n\tconst headers = isHostApp(activeHost) ? HOST_APP_HEADERS[activeHost] : {};\r\n\tconst csrfToken = getCsrfToken();\r\n\tconst loggerSessionId = inject(ActivityService).getSessionId();\r\n\r\n\tconst authReq = req.clone({\r\n\t\tsetHeaders: {\r\n\t\t\tcsrf_token: csrfToken ?? '',\r\n\t\t\t...headers,\r\n\t\t\t...(loggerSessionId ? { [LOGGER_SESSION_HEADER]: loggerSessionId } : {})\r\n\t\t}\r\n\t});\r\n\r\n\treturn next(authReq);\r\n};\r\n\r\n/**\r\n * Keycloak token refresh XHR'larının tab inactive iken abort olup `InvalidStateError`\r\n * fırlatmasını önler. `KeycloakBearerInterceptor.intercept` lazy Observable döner —\r\n * subscribe edilmediği sürece side-effect (token refresh) yok. Tab `visibilityState`\r\n * `'hidden'` iken subscribe'ı `visibilitychange → 'visible'` event'ine kadar erteleriz;\r\n * tab tekrar görünür olunca request fresh token ile atılır.\r\n */\r\nexport const keycloakAuthInterceptor: HttpInterceptorFn = (req: HttpRequest<unknown>, next: HttpHandlerFn) => {\r\n\tconst interceptor = inject(KeycloakBearerInterceptor);\r\n\r\n\tif (typeof document === 'undefined' || document.visibilityState === 'visible') {\r\n\t\treturn interceptor.intercept(req, { handle: next });\r\n\t}\r\n\r\n\treturn fromEvent(document, 'visibilitychange').pipe(\r\n\t\tfilter(() => document.visibilityState === 'visible'),\r\n\t\ttake(1),\r\n\t\tswitchMap(() => interceptor.intercept(req, { handle: next }))\r\n\t);\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAaA,MAAM,gBAAgB,GAAsD;AAC3E,IAAA,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;AAC7F,IAAA,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;AAC7F,IAAA,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS;CAC3F;AAED,MAAM,SAAS,GAAG,CAAC,KAAgC,KAClD,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI;AAElE,MAAM,YAAY,GAAG,MACpB,QAAQ,CAAC;KACP,KAAK,CAAC,IAAI;AACV,KAAA,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;AAC5C,MAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAEJ,eAAe,GAAsB,CAAC,GAAyB,EAAE,IAAmB,KAAI;AACpG,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE;AACtC,IAAA,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAAG,EAAE;AACzE,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;IAChC,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE;AAE9D,IAAA,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;AACzB,QAAA,UAAU,EAAE;YACX,UAAU,EAAE,SAAS,IAAI,EAAE;AAC3B,YAAA,GAAG,OAAO;AACV,YAAA,IAAI,eAAe,GAAG,EAAE,CAAC,qBAAqB,GAAG,eAAe,EAAE,GAAG,EAAE;AACvE;AACD,KAAA,CAAC;AAEF,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC;AACrB;AAEA;;;;;;AAMG;MACU,uBAAuB,GAAsB,CAAC,GAAyB,EAAE,IAAmB,KAAI;AAC5G,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,yBAAyB,CAAC;IAErD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE;AAC9E,QAAA,OAAO,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACpD;IAEA,OAAO,SAAS,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAClD,MAAM,CAAC,MAAM,QAAQ,CAAC,eAAe,KAAK,SAAS,CAAC,EACpD,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAC7D;AACF;;AChEA;;AAEG;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { APP_INITIALIZER, LOCALE_ID } from '@angular/core';
2
2
  import { KeycloakService } from 'keycloak-angular';
3
- import { provideRouter, withComponentInputBinding, withHashLocation, Router } from '@angular/router';
3
+ import { Router, provideRouter, withComponentInputBinding, withHashLocation } from '@angular/router';
4
4
  import { bridge } from 'aril/boot/bridge';
5
5
  import { registerLocaleData } from '@angular/common';
6
6
  import localeEn from '@angular/common/locales/en';
@@ -1 +1 @@
1
- {"version":3,"file":"aril-provider.mjs","sources":["../../projects/aril/provider/src/provideHostKeycloak.ts","../../projects/aril/provider/src/prodiveHost.ts","../../projects/aril/provider/src/prodiveHostRouter.ts","../../projects/aril/provider/src/provideLocaleId.ts","../../projects/aril/provider/aril-provider.ts"],"sourcesContent":["import { APP_INITIALIZER, Provider } from '@angular/core';\r\n\r\nimport { KeycloakService } from 'keycloak-angular';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\n// Covers host bootstrap + Keycloak login redirect + token exchange + slow network buffer.\r\nconst HOST_KEYCLOAK_INIT_TIMEOUT_MS = 30_000;\r\n\r\nexport const provideHostKeycloak = (app: Apps): Provider => {\r\n\treturn [\r\n\t\tKeycloakService,\r\n\t\t{\r\n\t\t\tprovide: APP_INITIALIZER,\r\n\t\t\tuseFactory: (keycloak: KeycloakService) => hostKeycloakInitializer(keycloak, app),\r\n\t\t\tdeps: [KeycloakService],\r\n\t\t\tmulti: true\r\n\t\t}\r\n\t];\r\n};\r\n\r\nexport const hostKeycloakInitializer = (keycloakService: KeycloakService, app: Apps) => () =>\r\n\tnew Promise<void>((resolve, reject) => {\r\n\t\tlet timeoutHandle: ReturnType<typeof setTimeout>;\r\n\r\n\t\tconst eventListener = (event: Event) => {\r\n\t\t\tremoveEventListener(`${app}:init-keycloak`, eventListener);\r\n\t\t\tclearTimeout(timeoutHandle);\r\n\t\t\ttry {\r\n\t\t\t\tObject.assign(keycloakService, (event as CustomEvent).detail as KeycloakService);\r\n\t\t\t\tresolve();\r\n\t\t\t} catch (error) {\r\n\t\t\t\treject(error);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\ttimeoutHandle = setTimeout(() => {\r\n\t\t\tremoveEventListener(`${app}:init-keycloak`, eventListener);\r\n\t\t\treject(\r\n\t\t\t\tnew Error(\r\n\t\t\t\t\t`Host keycloak init for \"${app}\" did not complete within ${HOST_KEYCLOAK_INIT_TIMEOUT_MS}ms — host may not be mounted or the module-ready bridge is broken`\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}, HOST_KEYCLOAK_INIT_TIMEOUT_MS);\r\n\r\n\t\taddEventListener(`${app}:init-keycloak`, eventListener);\r\n\r\n\t\tdispatchEvent(new CustomEvent('module-ready', { detail: app }));\r\n\t});\r\n","import { EnvironmentProviders, Provider } from '@angular/core';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\nimport { provideHostKeycloak } from './provideHostKeycloak';\r\n\r\n/** Host shared keycloak provider'ını döner. */\r\nexport const provideHost = (app: Apps): Array<Provider | EnvironmentProviders> =>\r\n\t[provideHostKeycloak(app)];\r\n","import { Provider } from '@angular/core';\r\nimport {\r\n\tNavigationBehaviorOptions,\r\n\tRouter,\r\n\tUrlTree,\r\n\tprovideRouter,\r\n\twithComponentInputBinding,\r\n\twithHashLocation\r\n} from '@angular/router';\r\n\r\nimport { bridge } from 'aril/boot/bridge';\r\n\r\n/**\r\n * Plugin'lere host Router'ı sağlar — AMA **tab-aware Proxy** ile sarılmış şekilde.\r\n * Plugin'ler genelde `inject(Router)` ile aldıkları Router üzerinden `router.navigate(...)`\r\n * çağırır; bu çağrılar `_tab` state/query taşımadığı için Strategy yanlış handle yönetir\r\n * (tab izolasyonu bozulur, \"(pending)\" Application boot olur, state kaybolur).\r\n *\r\n * Proxy `bridge.activeTabId()` ile aktif tab'ı okuyup `_tab`'i `extras.state`'e ve URL'e\r\n * (UrlTree.queryParams veya string URL) enjekte eder. Tek noktada düzeltme — plugin\r\n * koduna dokunmaya gerek yok.\r\n */\r\n\r\n/** `extras.state._tab` doldurur. Strategy URL queryParams'tan okur (history.state fallback). */\r\nfunction injectStateTabId(extras: NavigationBehaviorOptions | undefined): NavigationBehaviorOptions {\r\n\tconst tabId = bridge.activeTabId();\r\n\tconst next = { ...(extras ?? {}) };\r\n\tif (!tabId) return next;\r\n\tconst existingState = (next.state as Record<string, unknown> | undefined) ?? {};\r\n\tif (typeof existingState['_tab'] !== 'string' || !existingState['_tab']) {\r\n\t\tnext.state = { ...existingState, _tab: tabId };\r\n\t}\r\n\treturn next;\r\n}\r\n\r\n/**\r\n * URL string'ine veya UrlTree'ye `_tab=<tabId>` query param ekler.\r\n * Plugin'ler genelde `router.navigate(commands)` çağırır → Angular Router internal olarak\r\n * `createUrlTree(commands)` + `navigateByUrl(urlTree)` yapar — ama internal `this.navigateByUrl`\r\n * proxy'den geçmez (real Router'ın `this` binding'i). Bu yüzden Plugin code'unda görünen\r\n * \"navigate\" çağrıları aslında proxy'ye `navigateByUrl(UrlTree)` olarak ulaşır.\r\n *\r\n * UrlTree caller için read-only kabul edilir; in-place mutation Router internal cache'lerini\r\n * ve plugin tarafının elindeki referansı bozar. Bu yüzden gelen tree'yi serialize edip\r\n * `_tab`'i string seviyesinde ekledikten sonra `parseUrl` ile **yeni bir UrlTree** üretiriz —\r\n * orijinal referans dokunulmaz kalır.\r\n */\r\nfunction injectTabIntoUrl(router: Router, url: string | UrlTree): string | UrlTree {\r\n\tconst tabId = bridge.activeTabId();\r\n\tif (!tabId) return url;\r\n\tif (typeof url === 'string') {\r\n\t\tif (/[?&]_tab=/.test(url)) return url;\r\n\t\tconst sep = url.includes('?') ? '&' : '?';\r\n\t\treturn `${url}${sep}_tab=${tabId}`;\r\n\t}\r\n\tif (typeof url.queryParams?.['_tab'] === 'string' && url.queryParams['_tab']) return url;\r\n\tconst serialized = router.serializeUrl(url);\r\n\tconst sep = serialized.includes('?') ? '&' : '?';\r\n\treturn router.parseUrl(`${serialized}${sep}_tab=${tabId}`);\r\n}\r\n\r\nfunction createTabAwareRouter(realRouter: Router): Router {\r\n\tconsole.log('[provideHostRouter] tab-aware Router proxy oluşturuldu');\r\n\treturn new Proxy(realRouter, {\r\n\t\tget(target, prop, receiver) {\r\n\t\t\t// `navigate` handler intentionally yok: Angular Router'ın `navigate(commands, extras)`\r\n\t\t\t// internal `this.navigateByUrl(this.createUrlTree(commands))` çağırır — bu internal\r\n\t\t\t// `this` real Router (`bind`ı atomik), proxy'den geçmez. Yani plugin'lerin\r\n\t\t\t// `router.navigate(['/...'])` çağrıları proxy'nin `navigateByUrl` handler'ına ulaşır;\r\n\t\t\t// `navigate` override etsek de tetiklenmez. Tek noktada `navigateByUrl` patch yeterli.\r\n\t\t\tif (prop === 'navigateByUrl') {\r\n\t\t\t\treturn (url: string | UrlTree, extras?: NavigationBehaviorOptions) => {\r\n\t\t\t\t\tconst tabId = bridge.activeTabId();\r\n\t\t\t\t\tconst finalUrl = injectTabIntoUrl(target, url);\r\n\t\t\t\t\tconst enhanced = injectStateTabId(extras);\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t`[provideHostRouter] navigateByUrl url=\"${typeof url === 'string' ? url : '(UrlTree)'}\" ` +\r\n\t\t\t\t\t\t`activeTabId=\"${tabId}\" → finalUrl=\"${typeof finalUrl === 'string' ? finalUrl : '(UrlTree)'}\" ` +\r\n\t\t\t\t\t\t`extras.state=${JSON.stringify(enhanced.state)}`\r\n\t\t\t\t\t);\r\n\t\t\t\t\treturn target.navigateByUrl(finalUrl, enhanced);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\t// receiver=target: getter'lar (Router.url, Router.events vs.) `this`'i gerçek\r\n\t\t\t// Router instance'ı olarak alır. Proxy üzerinden lookup yapmadığımız için\r\n\t\t\t// internal `this.foo()` çağrıları doğrudan real Router'a düşer — recursion\r\n\t\t\t// veya `instanceof Router` kontrolünde sürpriz yok.\r\n\t\t\treturn Reflect.get(target, prop, target);\r\n\t\t}\r\n\t});\r\n}\r\n\r\nexport const provideHostRouter = (): Provider => {\r\n\tif (!bridge.hostRouter) {\r\n\t\tthrow new Error(\r\n\t\t\t'[provideHostRouter] bridge.hostRouter henüz set edilmedi. ' +\r\n\t\t\t'Host shell bootstrap tamamlanmadan MFE/plugin provideHostRouter() çağıramaz.'\r\n\t\t);\r\n\t}\r\n\tconst tabAwareRouter = createTabAwareRouter(bridge.hostRouter);\r\n\treturn [\r\n\t\tprovideRouter([], withComponentInputBinding(), withHashLocation()),\r\n\t\t{ provide: Router, useValue: tabAwareRouter }\r\n\t];\r\n};\r\n","import { registerLocaleData } from '@angular/common';\r\nimport localeEn from '@angular/common/locales/en';\r\nimport localeTr from '@angular/common/locales/tr';\r\nimport { LOCALE_ID, Provider } from '@angular/core';\r\n\r\nregisterLocaleData(localeTr, 'tr');\r\nregisterLocaleData(localeEn, 'en');\r\n\r\nexport const provideLocaleId = (): Provider => ({\r\n\tprovide: LOCALE_ID,\r\n\tuseFactory: () => {\r\n\t\tconst userLang = localStorage.getItem('lang');\r\n\t\tif (userLang) return userLang;\r\n\r\n\t\tconst browserLang = navigator.language?.split('-')[0];\r\n\t\tif (browserLang && ['tr', 'en'].includes(browserLang)) {\r\n\t\t\treturn browserLang;\r\n\t\t}\r\n\r\n\t\treturn 'tr';\r\n\t}\r\n}); ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAMA;AACA,MAAM,6BAA6B,GAAG,KAAM,CAAC;AAEhC,MAAA,mBAAmB,GAAG,CAAC,GAAS,KAAc;IAC1D,OAAO;QACN,eAAe;AACf,QAAA;AACC,YAAA,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,CAAC,QAAyB,KAAK,uBAAuB,CAAC,QAAQ,EAAE,GAAG,CAAC;YACjF,IAAI,EAAE,CAAC,eAAe,CAAC;AACvB,YAAA,KAAK,EAAE,IAAI;AACX,SAAA;KACD,CAAC;AACH,EAAE;MAEW,uBAAuB,GAAG,CAAC,eAAgC,EAAE,GAAS,KAAK,MACvF,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,IAAA,IAAI,aAA4C,CAAC;AAEjD,IAAA,MAAM,aAAa,GAAG,CAAC,KAAY,KAAI;AACtC,QAAA,mBAAmB,CAAC,CAAG,EAAA,GAAG,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC3D,YAAY,CAAC,aAAa,CAAC,CAAC;AAC5B,QAAA,IAAI;YACH,MAAM,CAAC,MAAM,CAAC,eAAe,EAAG,KAAqB,CAAC,MAAyB,CAAC,CAAC;AACjF,YAAA,OAAO,EAAE,CAAC;SACV;QAAC,OAAO,KAAK,EAAE;YACf,MAAM,CAAC,KAAK,CAAC,CAAC;SACd;AACF,KAAC,CAAC;AAEF,IAAA,aAAa,GAAG,UAAU,CAAC,MAAK;AAC/B,QAAA,mBAAmB,CAAC,CAAG,EAAA,GAAG,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAC3D,MAAM,CACL,IAAI,KAAK,CACR,CAAA,wBAAA,EAA2B,GAAG,CAAA,0BAAA,EAA6B,6BAA6B,CAAA,iEAAA,CAAmE,CAC3J,CACD,CAAC;KACF,EAAE,6BAA6B,CAAC,CAAC;AAElC,IAAA,gBAAgB,CAAC,CAAG,EAAA,GAAG,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAExD,IAAA,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;;AC1CF;AACO,MAAM,WAAW,GAAG,CAAC,GAAS,KACpC,CAAC,mBAAmB,CAAC,GAAG,CAAC;;ACI1B;;;;;;;;;AASG;AAEH;AACA,SAAS,gBAAgB,CAAC,MAA6C,EAAA;AACtE,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,EAAE,IAAI,MAAM,IAAI,EAAE,GAAG,CAAC;AACnC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI,CAAC;AACxB,IAAA,MAAM,aAAa,GAAI,IAAI,CAAC,KAA6C,IAAI,EAAE,CAAC;AAChF,IAAA,IAAI,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;QACxE,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;KAC/C;AACD,IAAA,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;;;;;AAWG;AACH,SAAS,gBAAgB,CAAC,MAAc,EAAE,GAAqB,EAAA;AAC9D,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;AACnC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,GAAG,CAAC;AACvB,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC5B,QAAA,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,GAAG,CAAC;AACtC,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AAC1C,QAAA,OAAO,GAAG,GAAG,CAAA,EAAG,GAAG,CAAQ,KAAA,EAAA,KAAK,EAAE,CAAC;KACnC;AACD,IAAA,IAAI,OAAO,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;AAAE,QAAA,OAAO,GAAG,CAAC;IACzF,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AAC5C,IAAA,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;AACjD,IAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAG,EAAA,UAAU,CAAG,EAAA,GAAG,CAAQ,KAAA,EAAA,KAAK,CAAE,CAAA,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB,EAAA;AAC/C,IAAA,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;AACtE,IAAA,OAAO,IAAI,KAAK,CAAC,UAAU,EAAE;AAC5B,QAAA,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAA;;;;;;AAMzB,YAAA,IAAI,IAAI,KAAK,eAAe,EAAE;AAC7B,gBAAA,OAAO,CAAC,GAAqB,EAAE,MAAkC,KAAI;AACpE,oBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;oBACnC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/C,oBAAA,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC1C,oBAAA,OAAO,CAAC,GAAG,CACV,CAA0C,uCAAA,EAAA,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,GAAG,WAAW,CAAI,EAAA,CAAA;AACzF,wBAAA,CAAA,aAAA,EAAgB,KAAK,CAAA,cAAA,EAAiB,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAI,EAAA,CAAA;wBAC/F,CAAgB,aAAA,EAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAE,CAAA,CAChD,CAAC;oBACF,OAAO,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACjD,iBAAC,CAAC;aACF;;;;;YAKD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;SACzC;AACD,KAAA,CAAC,CAAC;AACJ,CAAC;AAEM,MAAM,iBAAiB,GAAG,MAAe;AAC/C,IAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;QACvB,MAAM,IAAI,KAAK,CACd,4DAA4D;AAC5D,YAAA,8EAA8E,CAC9E,CAAC;KACF;IACD,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/D,OAAO;QACN,aAAa,CAAC,EAAE,EAAE,yBAAyB,EAAE,EAAE,gBAAgB,EAAE,CAAC;AAClE,QAAA,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE;KAC7C,CAAC;AACH;;ACnGA,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACnC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAEtB,MAAA,eAAe,GAAG,OAAiB;AAC/C,IAAA,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,MAAK;QAChB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9C,QAAA,IAAI,QAAQ;AAAE,YAAA,OAAO,QAAQ,CAAC;AAE9B,QAAA,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,QAAA,IAAI,WAAW,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACtD,YAAA,OAAO,WAAW,CAAC;SACnB;AAED,QAAA,OAAO,IAAI,CAAC;KACZ;AACD,CAAA;;ACrBD;;AAEG;;;;"}
1
+ {"version":3,"file":"aril-provider.mjs","sources":["../../projects/aril/provider/src/provideHostKeycloak.ts","../../projects/aril/provider/src/prodiveHost.ts","../../projects/aril/provider/src/prodiveHostRouter.ts","../../projects/aril/provider/src/provideLocaleId.ts","../../projects/aril/provider/aril-provider.ts"],"sourcesContent":["import { APP_INITIALIZER, Provider } from '@angular/core';\r\n\r\nimport { KeycloakService } from 'keycloak-angular';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\n// Covers host bootstrap + Keycloak login redirect + token exchange + slow network buffer.\r\nconst HOST_KEYCLOAK_INIT_TIMEOUT_MS = 30_000;\r\n\r\nexport const provideHostKeycloak = (app: Apps): Provider => {\r\n\treturn [\r\n\t\tKeycloakService,\r\n\t\t{\r\n\t\t\tprovide: APP_INITIALIZER,\r\n\t\t\tuseFactory: (keycloak: KeycloakService) => hostKeycloakInitializer(keycloak, app),\r\n\t\t\tdeps: [KeycloakService],\r\n\t\t\tmulti: true\r\n\t\t}\r\n\t];\r\n};\r\n\r\nexport const hostKeycloakInitializer = (keycloakService: KeycloakService, app: Apps) => () =>\r\n\tnew Promise<void>((resolve, reject) => {\r\n\t\tlet timeoutHandle: ReturnType<typeof setTimeout>;\r\n\r\n\t\tconst eventListener = (event: Event) => {\r\n\t\t\tremoveEventListener(`${app}:init-keycloak`, eventListener);\r\n\t\t\tclearTimeout(timeoutHandle);\r\n\t\t\ttry {\r\n\t\t\t\tObject.assign(keycloakService, (event as CustomEvent).detail as KeycloakService);\r\n\t\t\t\tresolve();\r\n\t\t\t} catch (error) {\r\n\t\t\t\treject(error);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\ttimeoutHandle = setTimeout(() => {\r\n\t\t\tremoveEventListener(`${app}:init-keycloak`, eventListener);\r\n\t\t\treject(\r\n\t\t\t\tnew Error(\r\n\t\t\t\t\t`Host keycloak init for \"${app}\" did not complete within ${HOST_KEYCLOAK_INIT_TIMEOUT_MS}ms — host may not be mounted or the module-ready bridge is broken`\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}, HOST_KEYCLOAK_INIT_TIMEOUT_MS);\r\n\r\n\t\taddEventListener(`${app}:init-keycloak`, eventListener);\r\n\r\n\t\tdispatchEvent(new CustomEvent('module-ready', { detail: app }));\r\n\t});\r\n","import { EnvironmentProviders, Provider } from '@angular/core';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\nimport { provideHostKeycloak } from './provideHostKeycloak';\r\n\r\n/** Host shared keycloak provider'ını döner. */\r\nexport const provideHost = (app: Apps): Array<Provider | EnvironmentProviders> =>\r\n\t[provideHostKeycloak(app)];\r\n","import { Provider } from '@angular/core';\r\nimport {\r\n\tNavigationBehaviorOptions,\r\n\tRouter,\r\n\tUrlTree,\r\n\tprovideRouter,\r\n\twithComponentInputBinding,\r\n\twithHashLocation\r\n} from '@angular/router';\r\n\r\nimport { bridge } from 'aril/boot/bridge';\r\n\r\n/**\r\n * Plugin'lere host Router'ı sağlar — AMA **tab-aware Proxy** ile sarılmış şekilde.\r\n * Plugin'ler genelde `inject(Router)` ile aldıkları Router üzerinden `router.navigate(...)`\r\n * çağırır; bu çağrılar `_tab` state/query taşımadığı için Strategy yanlış handle yönetir\r\n * (tab izolasyonu bozulur, \"(pending)\" Application boot olur, state kaybolur).\r\n *\r\n * Proxy `bridge.activeTabId()` ile aktif tab'ı okuyup `_tab`'i `extras.state`'e ve URL'e\r\n * (UrlTree.queryParams veya string URL) enjekte eder. Tek noktada düzeltme — plugin\r\n * koduna dokunmaya gerek yok.\r\n */\r\n\r\n/** `extras.state._tab` doldurur. Strategy URL queryParams'tan okur (history.state fallback). */\r\nfunction injectStateTabId(extras: NavigationBehaviorOptions | undefined): NavigationBehaviorOptions {\r\n\tconst tabId = bridge.activeTabId();\r\n\tconst next = { ...(extras ?? {}) };\r\n\tif (!tabId) return next;\r\n\tconst existingState = (next.state as Record<string, unknown> | undefined) ?? {};\r\n\tif (typeof existingState['_tab'] !== 'string' || !existingState['_tab']) {\r\n\t\tnext.state = { ...existingState, _tab: tabId };\r\n\t}\r\n\treturn next;\r\n}\r\n\r\n/**\r\n * URL string'ine veya UrlTree'ye `_tab=<tabId>` query param ekler.\r\n * Plugin'ler genelde `router.navigate(commands)` çağırır → Angular Router internal olarak\r\n * `createUrlTree(commands)` + `navigateByUrl(urlTree)` yapar — ama internal `this.navigateByUrl`\r\n * proxy'den geçmez (real Router'ın `this` binding'i). Bu yüzden Plugin code'unda görünen\r\n * \"navigate\" çağrıları aslında proxy'ye `navigateByUrl(UrlTree)` olarak ulaşır.\r\n *\r\n * UrlTree caller için read-only kabul edilir; in-place mutation Router internal cache'lerini\r\n * ve plugin tarafının elindeki referansı bozar. Bu yüzden gelen tree'yi serialize edip\r\n * `_tab`'i string seviyesinde ekledikten sonra `parseUrl` ile **yeni bir UrlTree** üretiriz —\r\n * orijinal referans dokunulmaz kalır.\r\n */\r\nfunction injectTabIntoUrl(router: Router, url: string | UrlTree): string | UrlTree {\r\n\tconst tabId = bridge.activeTabId();\r\n\tif (!tabId) return url;\r\n\tif (typeof url === 'string') {\r\n\t\tif (/[?&]_tab=/.test(url)) return url;\r\n\t\tconst sep = url.includes('?') ? '&' : '?';\r\n\t\treturn `${url}${sep}_tab=${tabId}`;\r\n\t}\r\n\tif (typeof url.queryParams?.['_tab'] === 'string' && url.queryParams['_tab']) return url;\r\n\tconst serialized = router.serializeUrl(url);\r\n\tconst sep = serialized.includes('?') ? '&' : '?';\r\n\treturn router.parseUrl(`${serialized}${sep}_tab=${tabId}`);\r\n}\r\n\r\nfunction createTabAwareRouter(realRouter: Router): Router {\r\n\tconsole.log('[provideHostRouter] tab-aware Router proxy oluşturuldu');\r\n\treturn new Proxy(realRouter, {\r\n\t\tget(target, prop, receiver) {\r\n\t\t\t// `navigate` handler intentionally yok: Angular Router'ın `navigate(commands, extras)`\r\n\t\t\t// internal `this.navigateByUrl(this.createUrlTree(commands))` çağırır — bu internal\r\n\t\t\t// `this` real Router (`bind`ı atomik), proxy'den geçmez. Yani plugin'lerin\r\n\t\t\t// `router.navigate(['/...'])` çağrıları proxy'nin `navigateByUrl` handler'ına ulaşır;\r\n\t\t\t// `navigate` override etsek de tetiklenmez. Tek noktada `navigateByUrl` patch yeterli.\r\n\t\t\tif (prop === 'navigateByUrl') {\r\n\t\t\t\treturn (url: string | UrlTree, extras?: NavigationBehaviorOptions) => {\r\n\t\t\t\t\tconst tabId = bridge.activeTabId();\r\n\t\t\t\t\tconst finalUrl = injectTabIntoUrl(target, url);\r\n\t\t\t\t\tconst enhanced = injectStateTabId(extras);\r\n\t\t\t\t\tconsole.log(\r\n\t\t\t\t\t\t`[provideHostRouter] navigateByUrl url=\"${typeof url === 'string' ? url : '(UrlTree)'}\" ` +\r\n\t\t\t\t\t\t`activeTabId=\"${tabId}\" → finalUrl=\"${typeof finalUrl === 'string' ? finalUrl : '(UrlTree)'}\" ` +\r\n\t\t\t\t\t\t`extras.state=${JSON.stringify(enhanced.state)}`\r\n\t\t\t\t\t);\r\n\t\t\t\t\treturn target.navigateByUrl(finalUrl, enhanced);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\t// receiver=target: getter'lar (Router.url, Router.events vs.) `this`'i gerçek\r\n\t\t\t// Router instance'ı olarak alır. Proxy üzerinden lookup yapmadığımız için\r\n\t\t\t// internal `this.foo()` çağrıları doğrudan real Router'a düşer — recursion\r\n\t\t\t// veya `instanceof Router` kontrolünde sürpriz yok.\r\n\t\t\treturn Reflect.get(target, prop, target);\r\n\t\t}\r\n\t});\r\n}\r\n\r\nexport const provideHostRouter = (): Provider => {\r\n\tif (!bridge.hostRouter) {\r\n\t\tthrow new Error(\r\n\t\t\t'[provideHostRouter] bridge.hostRouter henüz set edilmedi. ' +\r\n\t\t\t'Host shell bootstrap tamamlanmadan MFE/plugin provideHostRouter() çağıramaz.'\r\n\t\t);\r\n\t}\r\n\tconst tabAwareRouter = createTabAwareRouter(bridge.hostRouter);\r\n\treturn [\r\n\t\tprovideRouter([], withComponentInputBinding(), withHashLocation()),\r\n\t\t{ provide: Router, useValue: tabAwareRouter }\r\n\t];\r\n};\r\n","import { registerLocaleData } from '@angular/common';\r\nimport localeEn from '@angular/common/locales/en';\r\nimport localeTr from '@angular/common/locales/tr';\r\nimport { LOCALE_ID, Provider } from '@angular/core';\r\n\r\nregisterLocaleData(localeTr, 'tr');\r\nregisterLocaleData(localeEn, 'en');\r\n\r\nexport const provideLocaleId = (): Provider => ({\r\n\tprovide: LOCALE_ID,\r\n\tuseFactory: () => {\r\n\t\tconst userLang = localStorage.getItem('lang');\r\n\t\tif (userLang) return userLang;\r\n\r\n\t\tconst browserLang = navigator.language?.split('-')[0];\r\n\t\tif (browserLang && ['tr', 'en'].includes(browserLang)) {\r\n\t\t\treturn browserLang;\r\n\t\t}\r\n\r\n\t\treturn 'tr';\r\n\t}\r\n}); ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -184,10 +184,10 @@ class SelectionGroupService {
184
184
  isLoading(key) {
185
185
  return this.loading.get(key) ?? false;
186
186
  }
187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectionGroupService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
188
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectionGroupService, providedIn: 'root' }); }
187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionGroupService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
188
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionGroupService, providedIn: 'root' }); }
189
189
  }
190
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectionGroupService, decorators: [{
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SelectionGroupService, decorators: [{
191
191
  type: Injectable,
192
192
  args: [{
193
193
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"aril-selection.mjs","sources":["../../projects/aril/selection/src/selection-group.service.ts","../../projects/aril/selection/aril-selection.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { SelectionGroupDTO, bridge } from 'aril/boot/bridge';\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\n\r\nimport { SelectionGroupVersionDTO, SelectionRequestDTO } from './interfaces';\r\n\r\n// Key başına maksimum ardışık fetch hatası: limit aşılınca o key oturum boyu yeniden denenmez.\r\n// Sınırsız retry'da kalıcı hata veren bir grup (örn. silinmiş grup → 404), diğer grupların her\r\n// başarılı yüklemesinde (map güncellemesi tüm enum computed'larını yeniden çalıştırır) yeniden\r\n// POST edilirdi → istek/console fırtınası.\r\nconst MAX_FETCH_FAILURES = 3;\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class SelectionGroupService {\r\n\t// State cross-MFE paylaşımlı: bridge globalThis-singleton'ında yaşar (bkz. mfe-bridge.ts).\r\n\t// Servis instance'ı MFE/tab başına çoğalsa da tüm okuma/yazma tek bridge state'ine gider.\r\n\tselectionGroups = bridge.selectionGroups;\r\n\r\n\tprivate readonly loading = bridge.selectionLoading;\r\n\tprivate readonly loaded = bridge.selectionLoaded;\r\n\tprivate readonly failures = bridge.selectionFailures;\r\n\r\n\tconstructor(private readonly http: HttpClient) {\r\n\t\t// loadStates + invalidate yalnızca ilk instance'ta (cross-MFE bir kez): tek localStorage\r\n\t\t// yüklemesi, tek `/versions` çağrısı. effect her instance'ta kurulur ama hepsi aynı paylaşılan\r\n\t\t// state'i yazdığından ezme olmaz.\r\n\t\tif (!bridge.selectionInitialized) {\r\n\t\t\tbridge.selectionInitialized = true;\r\n\t\t\tthis.loadStatesFromLocalStorage();\r\n\t\t\tthis.invalidateStaleGroups();\r\n\t\t}\r\n\t}\r\n\r\n\t// localStorage'a slim cache yazar. `effect` YERİNE bilinçli olarak doğrudan çağrılır: signal'i\r\n\t// değiştiren her yer (fetchEnum, invalidateStaleGroups) persist'i açıkça tetikler. NOT: webpack MF\r\n\t// config'iyle `@angular/core` artık singleton shared olduğundan effect-tabanlı persist de çalışırdı;\r\n\t// yine de açık/öngörülebilir olması (effect içinde gizli signal-write + NG0600 riski olmaması) için\r\n\t// doğrudan çağrı tercih edildi.\r\n\tprivate persistToLocalStorage() {\r\n\t\ttry {\r\n\t\t\tconst slim = this.slimForStorage(this.selectionGroups());\r\n\t\t\tlocalStorage.setItem('selection-groups', btoa(encodeURI(JSON.stringify(slim))));\r\n\t\t} catch {\r\n\t\t\t// QuotaExceededError vb. → eski cache'i koru, yeni yazımı sessizce atla.\r\n\t\t}\r\n\t}\r\n\r\n\tprivate loadStatesFromLocalStorage() {\r\n\t\tconst selectionGroups = localStorage.getItem('selection-groups');\r\n\r\n\t\tif (selectionGroups) {\r\n\t\t\ttry {\r\n\t\t\t\tconst decodedData = decodeURI(atob(selectionGroups));\r\n\t\t\t\t// Dynamic gruplar zaten persist edilmiyor (slimForStorage onları atlar) → ekstra\r\n\t\t\t\t// filtre gerekmez; localStorage içeriği yalnızca Fixed gruplardır.\r\n\t\t\t\tconst restored: { [key: string]: SelectionGroupDTO | null } = JSON.parse(decodedData);\r\n\t\t\t\tthis.selectionGroups.set(restored);\r\n\r\n\t\t\t\t// Restore edilen gruplar loaded sayılır: aksi halde koşulsuz fetchEnum çağıran\r\n\t\t\t\t// consumer'lar guard'ı geçip her oturum yeniden çeker (cache faydası kaybolur).\r\n\t\t\t\t// Stale'lik kontrolü invalidateStaleGroups'un işi. null entry'ler (legacy) loaded\r\n\t\t\t\t// işaretlenmez — işaretlenirse o grup bir daha hiç yüklenemezdi.\r\n\t\t\t\tObject.entries(restored).forEach(([key, group]) => {\r\n\t\t\t\t\tif (group) this.loaded.set(key, true);\r\n\t\t\t\t});\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Dynamic grupları atlar + Fixed grupları yalnızca render (value/table/picker/export) ve invalidate\r\n\t// için gerekli alanlara indirger. localStorage'da audit/id/açıklama gibi kullanılmayan alanları tutmaz.\r\n\tprivate slimForStorage(groups: { [key: string]: SelectionGroupDTO | null }): { [key: string]: unknown } {\r\n\t\tconst out: { [key: string]: unknown } = {};\r\n\t\tfor (const [key, group] of Object.entries(groups)) {\r\n\t\t\tif (!group || group.loadStrategy === 'Dynamic') continue;\r\n\t\t\tout[key] = {\r\n\t\t\t\tversion: group.version,\r\n\t\t\t\tselectionItems: (group.selectionItems ?? []).map((it) => ({\r\n\t\t\t\t\tselectionKey: it.selectionKey,\r\n\t\t\t\t\tselectionDisplay: it.selectionDisplay,\r\n\t\t\t\t\tselectionMultiLanguageDisplays: it.selectionMultiLanguageDisplays,\r\n\t\t\t\t\tshowOrder: it.showOrder,\r\n\t\t\t\t\tparentSelectionKey: it.parentSelectionKey\r\n\t\t\t\t}))\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\t// App init'te enum version'larını çekip localStorage'daki stale grupları temizler.\r\n\t// Silinen grup, tüketici component'lerin `if (!selectionGroup) fetchEnum()` guard'ıyla yeniden yüklenir.\r\n\tprivate invalidateStaleGroups() {\r\n\t\t// App-init snapshot: yalnızca localStorage'dan yüklenen gruplar kontrol edilir. Yanıt gelene\r\n\t\t// kadar consumer'ların fetchEnum ile yüklediği taze gruplar taranmaz/silinmez (aksi halde\r\n\t\t// taze grup silinir ve kalıcı per-component fetch guard'ları onu bir daha çekmeyebilir).\r\n\t\tconst keysToCheck = Object.keys(this.selectionGroups());\r\n\t\tif (keysToCheck.length === 0) return;\r\n\r\n\t\tconst hostApi = API_CONFIGS.api.replace(/\\/[^\\/]+\\/v1$/, `/host/v1`);\r\n\r\n\t\tthis.http\r\n\t\t\t.get<SelectionGroupVersionDTO[]>(hostApi + '/selection-group/versions')\r\n\t\t\t.pipe(take(1))\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: (versions) => {\r\n\t\t\t\t\t// Boş/bozuk yanıt güvenlik şeridi: aşağıdaki \"listede olmayanı sil\" kuralı\r\n\t\t\t\t\t// boş listeyle tüm cache'i yanlışlıkla boşaltmasın.\r\n\t\t\t\t\tif (!versions?.length) return;\r\n\r\n\t\t\t\t\tconst latest = new Map(versions.map((v) => [v.groupName, v.version] as [string, number]));\r\n\r\n\t\t\t\t\tlet changed = false;\r\n\t\t\t\t\tconst next = { ...this.selectionGroups() };\r\n\r\n\t\t\t\t\tkeysToCheck.forEach((key) => {\r\n\t\t\t\t\t\tconst group = next[key];\r\n\t\t\t\t\t\tif (!group) return;\r\n\r\n\t\t\t\t\t\tconst separatorIndex = key.indexOf('~');\r\n\t\t\t\t\t\tif (separatorIndex === -1) return;\r\n\r\n\t\t\t\t\t\tconst serverVersion = latest.get(key.substring(0, separatorIndex));\r\n\r\n\t\t\t\t\t\t// serverVersion == null: grup /versions listesinde yok → sunucudan silinmiş /\r\n\t\t\t\t\t\t// yeniden adlandırılmış demektir (endpoint Fixed grupların tam listesini döner)\r\n\t\t\t\t\t\t// → o da evict edilir; kalırsa kaldırılmış enum değerleri süresiz render edilir.\r\n\t\t\t\t\t\tif (serverVersion == null || serverVersion !== group.version) {\r\n\t\t\t\t\t\t\tdelete next[key];\r\n\t\t\t\t\t\t\tthis.loaded.delete(key);\r\n\t\t\t\t\t\t\tthis.failures.delete(key);\r\n\t\t\t\t\t\t\t// Uçuştaki fetch'in flag'i korunur: silinirse ikinci bir consumer guard'ı\r\n\t\t\t\t\t\t\t// geçip duplicate /load atar ve export-overlay'in isLoading poll'ü grubu\r\n\t\t\t\t\t\t\t// beklemeden erken geçer. Yanıt geldiğinde flag'i fetchEnum kendisi yönetir.\r\n\t\t\t\t\t\t\tif (!this.loading.get(key)) {\r\n\t\t\t\t\t\t\t\tthis.loading.delete(key);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (changed) {\r\n\t\t\t\t\t\tthis.selectionGroups.set(next);\r\n\t\t\t\t\t\tthis.persistToLocalStorage();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror: () => {\r\n\t\t\t\t\t// versions endpoint yok/erişilemez: sessizce mevcut cache ile devam.\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tfetchEnum(groupName: string, parentSelectionKey: string = 'ALL') {\r\n\t\tconst key = groupName + '~' + parentSelectionKey;\r\n\r\n\t\tif (this.loaded.get(key) || this.loading.get(key)) return;\r\n\t\tif ((this.failures.get(key) ?? 0) >= MAX_FETCH_FAILURES) return;\r\n\r\n\t\tconst payload: SelectionRequestDTO = {\r\n\t\t\tgroupName,\r\n\t\t\tparentSelectionKey\r\n\t\t};\r\n\r\n\t\tthis.loading.set(key, true);\r\n\t\tthis.loaded.set(key, false);\r\n\r\n\t\tconst hostApi = API_CONFIGS.api.replace(/\\/[^\\/]+\\/v1$/, `/host/v1`);\r\n\r\n\t\tthis.http\r\n\t\t\t.post<SelectionGroupDTO>(hostApi + '/selection-group/load', payload)\r\n\t\t\t.pipe(take(1))\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: (selectionGroup) => {\r\n\t\t\t\t\tthis.loading.set(key, false);\r\n\t\t\t\t\tthis.loaded.set(key, true);\r\n\t\t\t\t\tthis.failures.delete(key);\r\n\r\n\t\t\t\t\tthis.selectionGroups.update((groups) => ({\r\n\t\t\t\t\t\t...groups,\r\n\t\t\t\t\t\t[key]: selectionGroup\r\n\t\t\t\t\t}));\r\n\r\n\t\t\t\t\tthis.persistToLocalStorage();\r\n\t\t\t\t},\r\n\t\t\t\t// HTTP hatasında loading'i sıfırla: aksi halde guard (loaded/loading) bu enum'u\r\n\t\t\t\t// kilitler. loading/loaded bridge'de cross-MFE SHARED olduğundan, tek bir anlık hata\r\n\t\t\t\t// bu enum'u TÜM remote'larda hard-reload'a kadar bir daha çekilemez yapardı. loading=false\r\n\t\t\t\t// → sonraki fetchEnum (component init/retry) yeniden deneyebilir. loaded zaten false kalır.\r\n\t\t\t\t// Deneme sayısı MAX_FETCH_FAILURES ile sınırlı: kalıcı hatada sonsuz retry önlenir.\r\n\t\t\t\terror: () => {\r\n\t\t\t\t\tthis.loading.set(key, false);\r\n\t\t\t\t\tthis.failures.set(key, (this.failures.get(key) ?? 0) + 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\t// key formatı: `groupName~parentSelectionKey` (fetchEnum'daki composite key ile aynı).\r\n\t// Direkt olarak groupName geçilirse Map'te eşleşme olmaz ve her zaman false döner.\r\n\tisLoading(key: string): boolean {\r\n\t\treturn this.loading.get(key) ?? false;\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-selection.mjs","sources":["../../projects/aril/selection/src/selection-group.service.ts","../../projects/aril/selection/aril-selection.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { take } from 'rxjs';\r\n\r\nimport { SelectionGroupDTO, bridge } from 'aril/boot/bridge';\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\n\r\nimport { SelectionGroupVersionDTO, SelectionRequestDTO } from './interfaces';\r\n\r\n// Key başına maksimum ardışık fetch hatası: limit aşılınca o key oturum boyu yeniden denenmez.\r\n// Sınırsız retry'da kalıcı hata veren bir grup (örn. silinmiş grup → 404), diğer grupların her\r\n// başarılı yüklemesinde (map güncellemesi tüm enum computed'larını yeniden çalıştırır) yeniden\r\n// POST edilirdi → istek/console fırtınası.\r\nconst MAX_FETCH_FAILURES = 3;\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class SelectionGroupService {\r\n\t// State cross-MFE paylaşımlı: bridge globalThis-singleton'ında yaşar (bkz. mfe-bridge.ts).\r\n\t// Servis instance'ı MFE/tab başına çoğalsa da tüm okuma/yazma tek bridge state'ine gider.\r\n\tselectionGroups = bridge.selectionGroups;\r\n\r\n\tprivate readonly loading = bridge.selectionLoading;\r\n\tprivate readonly loaded = bridge.selectionLoaded;\r\n\tprivate readonly failures = bridge.selectionFailures;\r\n\r\n\tconstructor(private readonly http: HttpClient) {\r\n\t\t// loadStates + invalidate yalnızca ilk instance'ta (cross-MFE bir kez): tek localStorage\r\n\t\t// yüklemesi, tek `/versions` çağrısı. effect her instance'ta kurulur ama hepsi aynı paylaşılan\r\n\t\t// state'i yazdığından ezme olmaz.\r\n\t\tif (!bridge.selectionInitialized) {\r\n\t\t\tbridge.selectionInitialized = true;\r\n\t\t\tthis.loadStatesFromLocalStorage();\r\n\t\t\tthis.invalidateStaleGroups();\r\n\t\t}\r\n\t}\r\n\r\n\t// localStorage'a slim cache yazar. `effect` YERİNE bilinçli olarak doğrudan çağrılır: signal'i\r\n\t// değiştiren her yer (fetchEnum, invalidateStaleGroups) persist'i açıkça tetikler. NOT: webpack MF\r\n\t// config'iyle `@angular/core` artık singleton shared olduğundan effect-tabanlı persist de çalışırdı;\r\n\t// yine de açık/öngörülebilir olması (effect içinde gizli signal-write + NG0600 riski olmaması) için\r\n\t// doğrudan çağrı tercih edildi.\r\n\tprivate persistToLocalStorage() {\r\n\t\ttry {\r\n\t\t\tconst slim = this.slimForStorage(this.selectionGroups());\r\n\t\t\tlocalStorage.setItem('selection-groups', btoa(encodeURI(JSON.stringify(slim))));\r\n\t\t} catch {\r\n\t\t\t// QuotaExceededError vb. → eski cache'i koru, yeni yazımı sessizce atla.\r\n\t\t}\r\n\t}\r\n\r\n\tprivate loadStatesFromLocalStorage() {\r\n\t\tconst selectionGroups = localStorage.getItem('selection-groups');\r\n\r\n\t\tif (selectionGroups) {\r\n\t\t\ttry {\r\n\t\t\t\tconst decodedData = decodeURI(atob(selectionGroups));\r\n\t\t\t\t// Dynamic gruplar zaten persist edilmiyor (slimForStorage onları atlar) → ekstra\r\n\t\t\t\t// filtre gerekmez; localStorage içeriği yalnızca Fixed gruplardır.\r\n\t\t\t\tconst restored: { [key: string]: SelectionGroupDTO | null } = JSON.parse(decodedData);\r\n\t\t\t\tthis.selectionGroups.set(restored);\r\n\r\n\t\t\t\t// Restore edilen gruplar loaded sayılır: aksi halde koşulsuz fetchEnum çağıran\r\n\t\t\t\t// consumer'lar guard'ı geçip her oturum yeniden çeker (cache faydası kaybolur).\r\n\t\t\t\t// Stale'lik kontrolü invalidateStaleGroups'un işi. null entry'ler (legacy) loaded\r\n\t\t\t\t// işaretlenmez — işaretlenirse o grup bir daha hiç yüklenemezdi.\r\n\t\t\t\tObject.entries(restored).forEach(([key, group]) => {\r\n\t\t\t\t\tif (group) this.loaded.set(key, true);\r\n\t\t\t\t});\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Dynamic grupları atlar + Fixed grupları yalnızca render (value/table/picker/export) ve invalidate\r\n\t// için gerekli alanlara indirger. localStorage'da audit/id/açıklama gibi kullanılmayan alanları tutmaz.\r\n\tprivate slimForStorage(groups: { [key: string]: SelectionGroupDTO | null }): { [key: string]: unknown } {\r\n\t\tconst out: { [key: string]: unknown } = {};\r\n\t\tfor (const [key, group] of Object.entries(groups)) {\r\n\t\t\tif (!group || group.loadStrategy === 'Dynamic') continue;\r\n\t\t\tout[key] = {\r\n\t\t\t\tversion: group.version,\r\n\t\t\t\tselectionItems: (group.selectionItems ?? []).map((it) => ({\r\n\t\t\t\t\tselectionKey: it.selectionKey,\r\n\t\t\t\t\tselectionDisplay: it.selectionDisplay,\r\n\t\t\t\t\tselectionMultiLanguageDisplays: it.selectionMultiLanguageDisplays,\r\n\t\t\t\t\tshowOrder: it.showOrder,\r\n\t\t\t\t\tparentSelectionKey: it.parentSelectionKey\r\n\t\t\t\t}))\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\t// App init'te enum version'larını çekip localStorage'daki stale grupları temizler.\r\n\t// Silinen grup, tüketici component'lerin `if (!selectionGroup) fetchEnum()` guard'ıyla yeniden yüklenir.\r\n\tprivate invalidateStaleGroups() {\r\n\t\t// App-init snapshot: yalnızca localStorage'dan yüklenen gruplar kontrol edilir. Yanıt gelene\r\n\t\t// kadar consumer'ların fetchEnum ile yüklediği taze gruplar taranmaz/silinmez (aksi halde\r\n\t\t// taze grup silinir ve kalıcı per-component fetch guard'ları onu bir daha çekmeyebilir).\r\n\t\tconst keysToCheck = Object.keys(this.selectionGroups());\r\n\t\tif (keysToCheck.length === 0) return;\r\n\r\n\t\tconst hostApi = API_CONFIGS.api.replace(/\\/[^\\/]+\\/v1$/, `/host/v1`);\r\n\r\n\t\tthis.http\r\n\t\t\t.get<SelectionGroupVersionDTO[]>(hostApi + '/selection-group/versions')\r\n\t\t\t.pipe(take(1))\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: (versions) => {\r\n\t\t\t\t\t// Boş/bozuk yanıt güvenlik şeridi: aşağıdaki \"listede olmayanı sil\" kuralı\r\n\t\t\t\t\t// boş listeyle tüm cache'i yanlışlıkla boşaltmasın.\r\n\t\t\t\t\tif (!versions?.length) return;\r\n\r\n\t\t\t\t\tconst latest = new Map(versions.map((v) => [v.groupName, v.version] as [string, number]));\r\n\r\n\t\t\t\t\tlet changed = false;\r\n\t\t\t\t\tconst next = { ...this.selectionGroups() };\r\n\r\n\t\t\t\t\tkeysToCheck.forEach((key) => {\r\n\t\t\t\t\t\tconst group = next[key];\r\n\t\t\t\t\t\tif (!group) return;\r\n\r\n\t\t\t\t\t\tconst separatorIndex = key.indexOf('~');\r\n\t\t\t\t\t\tif (separatorIndex === -1) return;\r\n\r\n\t\t\t\t\t\tconst serverVersion = latest.get(key.substring(0, separatorIndex));\r\n\r\n\t\t\t\t\t\t// serverVersion == null: grup /versions listesinde yok → sunucudan silinmiş /\r\n\t\t\t\t\t\t// yeniden adlandırılmış demektir (endpoint Fixed grupların tam listesini döner)\r\n\t\t\t\t\t\t// → o da evict edilir; kalırsa kaldırılmış enum değerleri süresiz render edilir.\r\n\t\t\t\t\t\tif (serverVersion == null || serverVersion !== group.version) {\r\n\t\t\t\t\t\t\tdelete next[key];\r\n\t\t\t\t\t\t\tthis.loaded.delete(key);\r\n\t\t\t\t\t\t\tthis.failures.delete(key);\r\n\t\t\t\t\t\t\t// Uçuştaki fetch'in flag'i korunur: silinirse ikinci bir consumer guard'ı\r\n\t\t\t\t\t\t\t// geçip duplicate /load atar ve export-overlay'in isLoading poll'ü grubu\r\n\t\t\t\t\t\t\t// beklemeden erken geçer. Yanıt geldiğinde flag'i fetchEnum kendisi yönetir.\r\n\t\t\t\t\t\t\tif (!this.loading.get(key)) {\r\n\t\t\t\t\t\t\t\tthis.loading.delete(key);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tchanged = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (changed) {\r\n\t\t\t\t\t\tthis.selectionGroups.set(next);\r\n\t\t\t\t\t\tthis.persistToLocalStorage();\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror: () => {\r\n\t\t\t\t\t// versions endpoint yok/erişilemez: sessizce mevcut cache ile devam.\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tfetchEnum(groupName: string, parentSelectionKey: string = 'ALL') {\r\n\t\tconst key = groupName + '~' + parentSelectionKey;\r\n\r\n\t\tif (this.loaded.get(key) || this.loading.get(key)) return;\r\n\t\tif ((this.failures.get(key) ?? 0) >= MAX_FETCH_FAILURES) return;\r\n\r\n\t\tconst payload: SelectionRequestDTO = {\r\n\t\t\tgroupName,\r\n\t\t\tparentSelectionKey\r\n\t\t};\r\n\r\n\t\tthis.loading.set(key, true);\r\n\t\tthis.loaded.set(key, false);\r\n\r\n\t\tconst hostApi = API_CONFIGS.api.replace(/\\/[^\\/]+\\/v1$/, `/host/v1`);\r\n\r\n\t\tthis.http\r\n\t\t\t.post<SelectionGroupDTO>(hostApi + '/selection-group/load', payload)\r\n\t\t\t.pipe(take(1))\r\n\t\t\t.subscribe({\r\n\t\t\t\tnext: (selectionGroup) => {\r\n\t\t\t\t\tthis.loading.set(key, false);\r\n\t\t\t\t\tthis.loaded.set(key, true);\r\n\t\t\t\t\tthis.failures.delete(key);\r\n\r\n\t\t\t\t\tthis.selectionGroups.update((groups) => ({\r\n\t\t\t\t\t\t...groups,\r\n\t\t\t\t\t\t[key]: selectionGroup\r\n\t\t\t\t\t}));\r\n\r\n\t\t\t\t\tthis.persistToLocalStorage();\r\n\t\t\t\t},\r\n\t\t\t\t// HTTP hatasında loading'i sıfırla: aksi halde guard (loaded/loading) bu enum'u\r\n\t\t\t\t// kilitler. loading/loaded bridge'de cross-MFE SHARED olduğundan, tek bir anlık hata\r\n\t\t\t\t// bu enum'u TÜM remote'larda hard-reload'a kadar bir daha çekilemez yapardı. loading=false\r\n\t\t\t\t// → sonraki fetchEnum (component init/retry) yeniden deneyebilir. loaded zaten false kalır.\r\n\t\t\t\t// Deneme sayısı MAX_FETCH_FAILURES ile sınırlı: kalıcı hatada sonsuz retry önlenir.\r\n\t\t\t\terror: () => {\r\n\t\t\t\t\tthis.loading.set(key, false);\r\n\t\t\t\t\tthis.failures.set(key, (this.failures.get(key) ?? 0) + 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\t// key formatı: `groupName~parentSelectionKey` (fetchEnum'daki composite key ile aynı).\r\n\t// Direkt olarak groupName geçilirse Map'te eşleşme olmaz ve her zaman false döner.\r\n\tisLoading(key: string): boolean {\r\n\t\treturn this.loading.get(key) ?? false;\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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"}