aril 2.0.1-dev.4 → 2.0.1

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 (192) hide show
  1. package/boot/config/apps/src/interfaces.d.ts +7 -1
  2. package/boot/config/apps/src/route-close.service.d.ts +8 -3
  3. package/boot/config/apps/src/route-permissions.d.ts +2 -2
  4. package/esm2022/boot/config/api/src/interfaces.mjs +3 -2
  5. package/esm2022/boot/config/apps/src/apps.service.mjs +2 -2
  6. package/esm2022/boot/config/apps/src/custom-route-reuse-strategy.class.mjs +4 -4
  7. package/esm2022/boot/config/apps/src/interfaces.mjs +2 -1
  8. package/esm2022/boot/config/apps/src/route-close.service.mjs +11 -4
  9. package/esm2022/boot/config/apps/src/route-permissions.mjs +24 -6
  10. package/esm2022/boot/config/plugins/src/plugins.service.mjs +7 -5
  11. package/esm2022/boot/host/src/bootstrap.mjs +5 -3
  12. package/esm2022/boot/mfe/src/bootstrap.mjs +11 -3
  13. package/esm2022/http/index.mjs +1 -2
  14. package/esm2022/http/src/serviceBase.mjs +4 -4
  15. package/esm2022/http/src/serviceStateMethods.mjs +9 -1
  16. package/esm2022/keycloak/src/auth.interceptor.mjs +5 -2
  17. package/esm2022/selection/aril-selection.mjs +5 -0
  18. package/esm2022/selection/index.mjs +2 -0
  19. package/esm2022/selection/src/interfaces.mjs +2 -0
  20. package/esm2022/selection/src/selection-group.service.mjs +195 -0
  21. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +2 -2
  22. package/esm2022/theme/layout/index.mjs +4 -2
  23. package/esm2022/theme/layout/service/tab-session.service.mjs +1 -1
  24. package/esm2022/ui/button/index.mjs +1 -2
  25. package/esm2022/ui/button/src/button.component.mjs +5 -2
  26. package/esm2022/ui/charts/index.mjs +1 -11
  27. package/esm2022/ui/lib/index.mjs +1 -4
  28. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +9 -5
  29. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +25 -25
  30. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +2 -2
  31. package/esm2022/ui/selectBox/src/select-box.component.mjs +11 -34
  32. package/esm2022/ui/table/src/table.component.mjs +10 -5
  33. package/esm2022/ui/value/src/value.component.mjs +3 -2
  34. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +14 -6
  35. package/esm2022/util/activity/aril-util-activity.mjs +5 -0
  36. package/esm2022/util/activity/index.mjs +4 -0
  37. package/esm2022/util/activity/src/activity.constants.mjs +4 -0
  38. package/esm2022/util/activity/src/activity.service.mjs +218 -0
  39. package/esm2022/util/activity/src/activity.types.mjs +2 -0
  40. package/esm2022/util/block/src/block.mjs +9 -25
  41. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +10 -5
  42. package/fesm2022/{aril-app.component-s14ruALV.mjs → aril-app.component-MjG_tPEe.mjs} +2 -1
  43. package/fesm2022/{aril-app.component-s14ruALV.mjs.map → aril-app.component-MjG_tPEe.mjs.map} +1 -1
  44. package/fesm2022/aril-boot-config-api.mjs +2 -1
  45. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  46. package/fesm2022/aril-boot-config-apps.mjs +36 -12
  47. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  48. package/fesm2022/aril-boot-config-plugins.mjs +6 -4
  49. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  50. package/fesm2022/aril-boot-host.mjs +4 -2
  51. package/fesm2022/aril-boot-host.mjs.map +1 -1
  52. package/fesm2022/{aril-boot-mfe-app.component-oxzMhRXe.mjs → aril-boot-mfe-app.component-DtspQ3J8.mjs} +3 -2
  53. package/fesm2022/{aril-boot-mfe-app.component-oxzMhRXe.mjs.map → aril-boot-mfe-app.component-DtspQ3J8.mjs.map} +1 -1
  54. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-CKOM61xb.mjs → aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs} +12 -4
  55. package/fesm2022/aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs.map +1 -0
  56. package/fesm2022/aril-boot-mfe.mjs +2 -1
  57. package/fesm2022/aril-boot-mfe.mjs.map +1 -1
  58. package/fesm2022/aril-http.mjs +11 -7
  59. package/fesm2022/aril-http.mjs.map +1 -1
  60. package/fesm2022/aril-keycloak.mjs +4 -1
  61. package/fesm2022/aril-keycloak.mjs.map +1 -1
  62. package/fesm2022/aril-selection.mjs +202 -0
  63. package/fesm2022/aril-selection.mjs.map +1 -0
  64. package/fesm2022/aril-theme-layout.mjs +4 -193
  65. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  66. package/fesm2022/aril-ui-business-enumPicker.mjs +14 -6
  67. package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
  68. package/fesm2022/aril-ui-button.mjs +5 -17
  69. package/fesm2022/aril-ui-button.mjs.map +1 -1
  70. package/fesm2022/aril-ui-charts.mjs +4 -1302
  71. package/fesm2022/aril-ui-charts.mjs.map +1 -1
  72. package/fesm2022/aril-ui-lib.mjs +10 -98
  73. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  74. package/fesm2022/aril-ui-multiSelect.mjs +24 -24
  75. package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
  76. package/fesm2022/aril-ui-relativeDateSelector.mjs +1 -1
  77. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
  78. package/fesm2022/aril-ui-selectBox.mjs +10 -33
  79. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  80. package/fesm2022/aril-ui-table.mjs +9 -4
  81. package/fesm2022/aril-ui-table.mjs.map +1 -1
  82. package/fesm2022/aril-ui-value.mjs +2 -1
  83. package/fesm2022/aril-ui-value.mjs.map +1 -1
  84. package/fesm2022/aril-util-activity.mjs +228 -0
  85. package/fesm2022/aril-util-activity.mjs.map +1 -0
  86. package/fesm2022/aril-util-block.mjs +9 -25
  87. package/fesm2022/aril-util-block.mjs.map +1 -1
  88. package/fesm2022/aril-util-pub-sub.mjs +9 -4
  89. package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
  90. package/fesm2022/aril.mjs +14 -5
  91. package/fesm2022/aril.mjs.map +1 -1
  92. package/http/index.d.ts +0 -1
  93. package/http/src/serviceStateMethods.d.ts +1 -0
  94. package/package.json +184 -208
  95. package/scripts/mf-shared.js +47 -47
  96. package/selection/index.d.ts +1 -0
  97. package/selection/src/interfaces.d.ts +8 -0
  98. package/{theme/layout/service → selection/src}/selection-group.service.d.ts +1 -1
  99. package/theme/layout/index.d.ts +1 -1
  100. package/theme/layout/index.ts +3 -1
  101. package/theme/layout/service/tab-session.service.ts +138 -138
  102. package/ui/button/index.d.ts +0 -1
  103. package/ui/button/src/button.component.d.ts +2 -0
  104. package/ui/charts/index.d.ts +0 -10
  105. package/ui/lib/index.d.ts +0 -3
  106. package/ui/lib/src/form/form-error-message.directive.d.ts +4 -3
  107. package/ui/multiSelect/src/multi-select.component.d.ts +4 -5
  108. package/ui/selectBox/src/select-box.component.d.ts +2 -7
  109. package/ui/table/src/table.component.d.ts +3 -2
  110. package/util/activity/index.d.ts +3 -0
  111. package/util/activity/src/activity.constants.d.ts +3 -0
  112. package/util/activity/src/activity.service.d.ts +35 -0
  113. package/util/activity/src/activity.types.d.ts +13 -0
  114. package/util/block/src/block.d.ts +4 -10
  115. package/util/pub-sub/src/pub-sub.service.d.ts +2 -2
  116. package/esm2022/http/src/serviceMockBase.mjs +0 -4
  117. package/esm2022/theme/layout/service/selection-group.service.mjs +0 -195
  118. package/esm2022/ui/button/src/split-button.component.mjs +0 -18
  119. package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +0 -124
  120. package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +0 -164
  121. package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +0 -116
  122. package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +0 -114
  123. package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +0 -100
  124. package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +0 -117
  125. package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +0 -252
  126. package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +0 -89
  127. package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +0 -82
  128. package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +0 -137
  129. package/esm2022/ui/charts/src/theme/theme.mjs +0 -54
  130. package/esm2022/ui/dxEditor/aril-ui-dxEditor.mjs +0 -5
  131. package/esm2022/ui/dxEditor/index.mjs +0 -2
  132. package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +0 -26
  133. package/esm2022/ui/lib/src/form/form-field-builder.mjs +0 -23
  134. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +0 -49
  135. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +0 -25
  136. package/esm2022/ui/overlayPanel/aril-ui-overlayPanel.mjs +0 -5
  137. package/esm2022/ui/overlayPanel/index.mjs +0 -2
  138. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +0 -20
  139. package/esm2022/ui/tooltip/aril-ui-tooltip.mjs +0 -5
  140. package/esm2022/ui/tooltip/index.mjs +0 -2
  141. package/esm2022/ui/tooltip/src/tooltip-component.mjs +0 -23
  142. package/esm2022/ui/treeTable/aril-ui-treeTable.mjs +0 -5
  143. package/esm2022/ui/treeTable/index.mjs +0 -2
  144. package/esm2022/ui/treeTable/src/tree-table.component.mjs +0 -55
  145. package/esm2022/ui-business/operation-types-dialog/aril-ui-business-operation-types-dialog.mjs +0 -5
  146. package/esm2022/ui-business/operation-types-dialog/index.mjs +0 -2
  147. package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +0 -76
  148. package/esm2022/util/unwrap/aril-util-unwrap.mjs +0 -5
  149. package/esm2022/util/unwrap/index.mjs +0 -2
  150. package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +0 -24
  151. package/fesm2022/aril-boot-mfe-aril-boot-mfe-CKOM61xb.mjs.map +0 -1
  152. package/fesm2022/aril-ui-business-operation-types-dialog.mjs +0 -83
  153. package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +0 -1
  154. package/fesm2022/aril-ui-dxEditor.mjs +0 -33
  155. package/fesm2022/aril-ui-dxEditor.mjs.map +0 -1
  156. package/fesm2022/aril-ui-overlayPanel.mjs +0 -27
  157. package/fesm2022/aril-ui-overlayPanel.mjs.map +0 -1
  158. package/fesm2022/aril-ui-tooltip.mjs +0 -30
  159. package/fesm2022/aril-ui-tooltip.mjs.map +0 -1
  160. package/fesm2022/aril-ui-treeTable.mjs +0 -62
  161. package/fesm2022/aril-ui-treeTable.mjs.map +0 -1
  162. package/fesm2022/aril-util-unwrap.mjs +0 -31
  163. package/fesm2022/aril-util-unwrap.mjs.map +0 -1
  164. package/http/src/serviceMockBase.d.ts +0 -6
  165. package/theme/layout/service/selection-group.service.ts +0 -209
  166. package/ui/button/src/split-button.component.d.ts +0 -8
  167. package/ui/charts/src/amCharts/column/column-chart.component.d.ts +0 -25
  168. package/ui/charts/src/amCharts/line/line-chart.component.d.ts +0 -26
  169. package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +0 -24
  170. package/ui/charts/src/highCharts/area/area-chart.component.d.ts +0 -20
  171. package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +0 -26
  172. package/ui/charts/src/highCharts/column/column-chart.component.d.ts +0 -28
  173. package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +0 -32
  174. package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +0 -21
  175. package/ui/charts/src/highCharts/line/line-chart.component.d.ts +0 -21
  176. package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +0 -27
  177. package/ui/charts/src/theme/theme.d.ts +0 -5
  178. package/ui/dxEditor/index.d.ts +0 -1
  179. package/ui/dxEditor/src/dx-editor.component.d.ts +0 -11
  180. package/ui/lib/src/form/form-field-builder.d.ts +0 -8
  181. package/ui/lib/src/input/common-input-validators.service.d.ts +0 -20
  182. package/ui/lib/src/input/input-disabled.directive.d.ts +0 -9
  183. package/ui/overlayPanel/index.d.ts +0 -1
  184. package/ui/overlayPanel/src/overlay-panel.component.d.ts +0 -8
  185. package/ui/tooltip/index.d.ts +0 -1
  186. package/ui/tooltip/src/tooltip-component.d.ts +0 -14
  187. package/ui/treeTable/index.d.ts +0 -1
  188. package/ui/treeTable/src/tree-table.component.d.ts +0 -21
  189. package/ui-business/operation-types-dialog/index.d.ts +0 -1
  190. package/ui-business/operation-types-dialog/src/operation-types-dialog.component.d.ts +0 -28
  191. package/util/unwrap/index.d.ts +0 -1
  192. package/util/unwrap/src/unwrap-tag.directive.d.ts +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-value.mjs","sources":["../../projects/aril/ui/value/src/value.component.ts","../../projects/aril/ui/value/src/value.component.html","../../projects/aril/ui/value/aril-ui-value.ts"],"sourcesContent":["import { CurrencyPipe, DecimalPipe, SlicePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\r\n\r\nimport { MessageService } from 'primeng/api';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { SelectionGroupService } from 'aril/theme/layout';\r\nimport { BadgeComponent } from 'aril/ui/badge';\r\nimport { EnumColorPickerPipe } from 'aril/ui/lib';\r\nimport { DecimalRoundingType } from 'aril/util/lib';\r\nimport { RoundNumberPipe } from 'aril/util/pipes';\r\nimport 'aril/util/primitive-extensions';\r\n\r\ntype ValueTypes =\r\n\t| 'text'\r\n\t| 'number'\r\n\t| 'bool'\r\n\t| 'decimal'\r\n\t| 'big_decimal'\r\n\t| 'date'\r\n\t| 'password'\r\n\t| 'enum'\r\n\t| 'array'\r\n\t| 'isoDate'\r\n\t| 'currency';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-value',\r\n\ttemplateUrl: './value.component.html',\r\n\tstyleUrl: './value.component.scss',\r\n\timports: [\r\n\t\tBadgeComponent,\r\n\t\tTooltipModule,\r\n\t\tTranslocoModule,\r\n\t\tOverlayPanelModule,\r\n\t\tEnumColorPickerPipe,\r\n\t\tSlicePipe,\r\n\t\tDecimalPipe,\r\n\t\tCurrencyPipe,\r\n\t\tRoundNumberPipe\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [DialogService, DecimalPipe]\r\n})\r\nexport class ValueComponent {\r\n\tmodel = input.required<string | number | boolean | any>();\r\n\ttype = input<ValueTypes>('text');\r\n\tformat = input<string>();\r\n\tisClickable = input<boolean>(false);\r\n\tgroupName = input<string>();\r\n\tparentSelectionKey = input<string>('ALL');\r\n\tisTextClamp = input<boolean>(true);\r\n\ttextClampCharacters = input<number>(50);\r\n\tstyle = input<string>();\r\n\tcopyable = input<boolean>(false);\r\n\tshouldShowCopyForClampedText = input<boolean>(false);\r\n\tshowCopyIcon = computed(\r\n\t\t() =>\r\n\t\t\t(!this.shouldShowCopyForClampedText() && this.copyable()) ||\r\n\t\t\t(this.shouldShowCopyForClampedText() && this.model().length > this.textClampCharacters())\r\n\t);\r\n\r\n\t// only for array type\r\n\tarrayTypeDisplayName = input<string>('valueDesc');\r\n\tarrayTypeMaxBadgeCount = input<number>(3);\r\n\r\n\t// only for big_decimal type\r\n\tbigDecimalRoundingMode = input<DecimalRoundingType>();\r\n\tbigDecimalScale = input<number>();\r\n\r\n\tconstructor(\r\n\t\tpublic translocoService: TranslocoService,\r\n\t\tprivate readonly selectionGroupService: SelectionGroupService,\r\n\t\tprivate readonly messageService: MessageService\r\n\t) {\r\n\t\tthis.translocoService.langChanges$.subscribe((lang) => {\r\n\t\t\tthis.langSignal.set(lang);\r\n\t\t});\r\n\t}\r\n\r\n\tlangSignal = signal(this.translocoService.getActiveLang());\r\n\r\n\tgetNumberFormat(): string {\r\n\t\tif (this.type() === 'number') return '1.0-0';\r\n\t\telse if (this.type() === 'decimal') {\r\n\t\t\tconst format = this.format();\r\n\r\n\t\t\tif (!format) return '1.0-3';\r\n\r\n\t\t\t// Eğer format Angular DecimalPipe formatındaysa direkt kullan\r\n\t\t\tif (format && typeof format === 'string' && format.match(/^\\d+\\.\\d+-\\d+$/)) {\r\n\t\t\t\treturn format;\r\n\t\t\t}\r\n\t\t\t// Eğer eski format string'i varsa (örn: #.00) onu çevir\r\n\t\t\tif (format && typeof format === 'string' && format.includes('.')) {\r\n\t\t\t\tconst decimalPlaces = format.split('.')[1].length;\r\n\t\t\t\treturn `1.${decimalPlaces}-${decimalPlaces}`;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\tcolorList = [\r\n\t\t'#1890FF',\r\n\t\t'#FAAD14',\r\n\t\t'#52C41A',\r\n\t\t'#5D6D7E',\r\n\t\t'#FF6B6B',\r\n\t\t'#13C2C2',\r\n\t\t'#58D68D',\r\n\t\t'#722ED1',\r\n\t\t'#85C1E9',\r\n\t\t'#c49e05ff'\r\n\t];\r\n\r\n\tdisplay = computed(() => {\r\n\t\tswitch (this.type()) {\r\n\t\t\tcase 'text':\r\n\t\t\tcase 'number':\r\n\t\t\tcase 'decimal':\r\n\t\t\tcase 'currency':\r\n\t\t\tcase 'big_decimal':\r\n\t\t\t\treturn this.model();\r\n\t\t\tcase 'date':\r\n\t\t\t\treturn (<number>this.model()).longToString(this.format() ?? 'time');\r\n\t\t\tcase 'password':\r\n\t\t\t\treturn (<string>this.model()).replace(/./g, '*');\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type: '\" + this.type() + \"'\");\r\n\t\t\t\treturn '';\r\n\t\t}\r\n\t});\r\n\r\n\tenumSelectionDisplay = computed(() => {\r\n\t\tconst currentLang = this.langSignal();\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(this.groupName()!, this.parentSelectionKey()!);\r\n\t\t\treturn this.model();\r\n\t\t}\r\n\r\n\t\tconst rawModel = this.model();\r\n\t\tconst key =\r\n\t\t\ttypeof rawModel === 'object' && rawModel !== null && 'value' in rawModel ? rawModel.value\r\n\t\t\t: typeof rawModel === 'boolean' ? String(rawModel)\r\n\t\t\t: rawModel;\r\n\r\n\t\tconst selectionItem = selectionGroup.selectionItems.find((t) => t.selectionKey === key) as {\r\n\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\tselectionDisplay?: string;\r\n\t\t};\r\n\r\n\t\tif (!selectionItem) return key;\r\n\r\n\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? key;\r\n\t});\r\n\r\n\tenumBadgeBackgroundColor = computed(() => {\r\n\t\tif (typeof this.model() === 'boolean') {\r\n\t\t\treturn this.model() ? '#22c55e' : '#ef4444'; // true için yeşil, false için kırmızı\r\n\t\t}\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\t\tconst selectionItems = selectionGroup?.selectionItems ?? [];\r\n\r\n\t\tconst selectionItem = selectionItems.find((t) => t.selectionKey === this.model());\r\n\r\n\t\tif (!selectionItem) {\r\n\t\t\treturn '#1890FF';\r\n\t\t} else if (this.colorList[selectionItem.showOrder] !== undefined) {\r\n\t\t\treturn this.colorList[selectionItem.showOrder];\r\n\t\t}\r\n\t\treturn '#A2AFFF';\r\n\t});\r\n\r\n\tgetArrayItemValue(item: any): any {\r\n\t\treturn item[this.arrayTypeDisplayName()];\r\n\t}\r\n\r\n\tisModelArray = computed(() => {\r\n\t\treturn Array.isArray(this.model());\r\n\t});\r\n\r\n\t// Get enum display for array items\r\n\tenumArrayDisplays = computed(() => {\r\n\t\tif (!this.isModelArray() || !Array.isArray(this.model())) return [];\r\n\r\n\t\tconst currentLang = this.langSignal();\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(this.groupName()!, this.parentSelectionKey()!);\r\n\t\t\treturn this.model() as string[];\r\n\t\t}\r\n\r\n\t\treturn this.model().map((item: any) => {\r\n\t\t\tconst key =\r\n\t\t\t\ttypeof item === 'object' && item !== null && 'value' in item ? item.value\r\n\t\t\t\t: typeof item === 'boolean' ? String(item)\r\n\t\t\t\t: item;\r\n\r\n\t\t\tconst selectionItem = selectionGroup.selectionItems.find((t) => t.selectionKey === key) as {\r\n\t\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\t\tselectionDisplay?: string;\r\n\t\t\t};\r\n\r\n\t\t\tif (!selectionItem) return key;\r\n\r\n\t\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? key;\r\n\t\t}) as string[];\r\n\t});\r\n\r\n\t// Get enum background colors for array items\r\n\tenumArrayBackgroundColors = computed(() => {\r\n\t\tif (!this.isModelArray() || !Array.isArray(this.model())) return [];\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\t\tconst selectionItems = selectionGroup?.selectionItems ?? [];\r\n\r\n\t\treturn this.model().map((item: any) => {\r\n\t\t\tif (typeof item === 'boolean') {\r\n\t\t\t\treturn item ? '#22c55e' : '#ef4444';\r\n\t\t\t}\r\n\r\n\t\t\tconst selectionItem = selectionItems.find((t) => t.selectionKey === item);\r\n\r\n\t\t\tif (!selectionItem) {\r\n\t\t\t\treturn '#1890FF';\r\n\t\t\t} else if (this.colorList[selectionItem.showOrder] !== undefined) {\r\n\t\t\t\treturn this.colorList[selectionItem.showOrder];\r\n\t\t\t}\r\n\t\t\treturn '#A2AFFF';\r\n\t\t});\r\n\t});\r\n\r\n\tcopyToClipboard(value: string | undefined) {\r\n\t\tif (!value) return;\r\n\t\tnavigator.clipboard.writeText(value).then(\r\n\t\t\t() => {\r\n\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\tsummary: this.translocoService.translate('messages.successMessageHeader'),\r\n\t\t\t\t\tdetail: this.translocoService.translate('messages.copyToClipboardSuccess'),\r\n\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t(err) => {\r\n\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\tseverity: 'error',\r\n\t\t\t\t\tsummary: this.translocoService.translate('messages.unsuccessfulMessageHeader'),\r\n\t\t\t\t\tdetail: this.translocoService.translate('messages.copyToClipboardError'),\r\n\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n","@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (isModelArray()) {\r\n\t\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t\t@for (display of enumArrayDisplays().slice(0, 2); track display; let i = $index) {\r\n\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t}\r\n\t\t\t\t@if (enumArrayDisplays().length > 2) {\r\n\t\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"enumOp.toggle($event)\"></i>\r\n\r\n\t\t\t\t\t<p-overlayPanel #enumOp class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t\t@for (display of enumArrayDisplays() | slice: 2; track display; let i = $index) {\r\n\t\t\t\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i + 2]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</p-overlayPanel>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span class=\"flex align-items-center gap-2\">\r\n\t\t\t\t@if (showCopyIcon()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\tclass=\"pi pi-copy cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"copyToClipboard(display()?.toString()); $event.stopPropagation()\"\r\n\t\t\t\t\t\tstyle=\"font-size: 1rem; color: green\"></i>\r\n\t\t\t\t}\r\n\t\t\t\t<span\r\n\t\t\t\t\t[pTooltip]=\"\r\n\t\t\t\t\t\ttype() === 'text' && isTextClamp() && display()?.toString().length > textClampCharacters() ?\r\n\t\t\t\t\t\t\tdisplay()?.toString()\r\n\t\t\t\t\t\t:\t''\r\n\t\t\t\t\t\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t[class.text-no-wrap]=\"isTextClamp()\"\r\n\t\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t\t@if (type() === 'number' || type() === 'decimal') {\r\n\t\t\t\t\t\t{{ model() | number: getNumberFormat() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'big_decimal') {\r\n\t\t\t\t\t\t{{ model() | roundNumber: bigDecimalScale() : bigDecimalRoundingMode() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'currency') {\r\n\t\t\t\t\t\t{{ model() | currency: format() ?? 'TRY' : 'symbol' : '1.0-2' }}\r\n\t\t\t\t\t} @else if (type() === 'text' && isTextClamp()) {\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdisplay().length > textClampCharacters() ? display().slice(0, textClampCharacters()) + '...' : display()\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t{{ display() }}\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-ui-value.mjs","sources":["../../projects/aril/ui/value/src/value.component.ts","../../projects/aril/ui/value/src/value.component.html","../../projects/aril/ui/value/aril-ui-value.ts"],"sourcesContent":["import { CurrencyPipe, DecimalPipe, SlicePipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\nimport { MessageService } from 'primeng/api';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\nimport { TranslocoModule, TranslocoService } from '@ngneat/transloco';\r\n\r\nimport { SelectionGroupService } from 'aril/theme/layout';\r\nimport { BadgeComponent } from 'aril/ui/badge';\r\nimport { EnumColorPickerPipe } from 'aril/ui/lib';\r\nimport { DecimalRoundingType } from 'aril/util/lib';\r\nimport { RoundNumberPipe } from 'aril/util/pipes';\r\nimport 'aril/util/primitive-extensions';\r\n\r\ntype ValueTypes =\r\n\t| 'text'\r\n\t| 'number'\r\n\t| 'bool'\r\n\t| 'decimal'\r\n\t| 'big_decimal'\r\n\t| 'date'\r\n\t| 'password'\r\n\t| 'enum'\r\n\t| 'array'\r\n\t| 'isoDate'\r\n\t| 'currency';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-value',\r\n\ttemplateUrl: './value.component.html',\r\n\tstyleUrl: './value.component.scss',\r\n\timports: [\r\n\t\tBadgeComponent,\r\n\t\tTooltipModule,\r\n\t\tTranslocoModule,\r\n\t\tOverlayPanelModule,\r\n\t\tEnumColorPickerPipe,\r\n\t\tSlicePipe,\r\n\t\tDecimalPipe,\r\n\t\tCurrencyPipe,\r\n\t\tRoundNumberPipe\r\n\t],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n\tproviders: [DialogService, DecimalPipe]\r\n})\r\nexport class ValueComponent {\r\n\tmodel = input.required<string | number | boolean | any>();\r\n\ttype = input<ValueTypes>('text');\r\n\tformat = input<string>();\r\n\tisClickable = input<boolean>(false);\r\n\tgroupName = input<string>();\r\n\tparentSelectionKey = input<string>('ALL');\r\n\tisTextClamp = input<boolean>(true);\r\n\ttextClampCharacters = input<number>(50);\r\n\tstyle = input<string>();\r\n\tcopyable = input<boolean>(false);\r\n\tshouldShowCopyForClampedText = input<boolean>(false);\r\n\tshowCopyIcon = computed(\r\n\t\t() =>\r\n\t\t\t(!this.shouldShowCopyForClampedText() && this.copyable()) ||\r\n\t\t\t(this.shouldShowCopyForClampedText() && this.model().length > this.textClampCharacters())\r\n\t);\r\n\r\n\t// only for array type\r\n\tarrayTypeDisplayName = input<string>('valueDesc');\r\n\tarrayTypeMaxBadgeCount = input<number>(3);\r\n\r\n\t// only for big_decimal type\r\n\tbigDecimalRoundingMode = input<DecimalRoundingType>();\r\n\tbigDecimalScale = input<number>();\r\n\r\n\tconstructor(\r\n\t\tpublic translocoService: TranslocoService,\r\n\t\tprivate readonly selectionGroupService: SelectionGroupService,\r\n\t\tprivate readonly messageService: MessageService\r\n\t) {\r\n\t\tthis.translocoService.langChanges$.pipe(takeUntilDestroyed()).subscribe((lang) => {\r\n\t\t\tthis.langSignal.set(lang);\r\n\t\t});\r\n\t}\r\n\r\n\tlangSignal = signal(this.translocoService.getActiveLang());\r\n\r\n\tgetNumberFormat(): string {\r\n\t\tif (this.type() === 'number') return '1.0-0';\r\n\t\telse if (this.type() === 'decimal') {\r\n\t\t\tconst format = this.format();\r\n\r\n\t\t\tif (!format) return '1.0-3';\r\n\r\n\t\t\t// Eğer format Angular DecimalPipe formatındaysa direkt kullan\r\n\t\t\tif (format && typeof format === 'string' && format.match(/^\\d+\\.\\d+-\\d+$/)) {\r\n\t\t\t\treturn format;\r\n\t\t\t}\r\n\t\t\t// Eğer eski format string'i varsa (örn: #.00) onu çevir\r\n\t\t\tif (format && typeof format === 'string' && format.includes('.')) {\r\n\t\t\t\tconst decimalPlaces = format.split('.')[1].length;\r\n\t\t\t\treturn `1.${decimalPlaces}-${decimalPlaces}`;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\tcolorList = [\r\n\t\t'#1890FF',\r\n\t\t'#FAAD14',\r\n\t\t'#52C41A',\r\n\t\t'#5D6D7E',\r\n\t\t'#FF6B6B',\r\n\t\t'#13C2C2',\r\n\t\t'#58D68D',\r\n\t\t'#722ED1',\r\n\t\t'#85C1E9',\r\n\t\t'#c49e05ff'\r\n\t];\r\n\r\n\tdisplay = computed(() => {\r\n\t\tswitch (this.type()) {\r\n\t\t\tcase 'text':\r\n\t\t\tcase 'number':\r\n\t\t\tcase 'decimal':\r\n\t\t\tcase 'currency':\r\n\t\t\tcase 'big_decimal':\r\n\t\t\t\treturn this.model();\r\n\t\t\tcase 'date':\r\n\t\t\t\treturn (<number>this.model()).longToString(this.format() ?? 'time');\r\n\t\t\tcase 'password':\r\n\t\t\t\treturn (<string>this.model()).replace(/./g, '*');\r\n\t\t\tdefault:\r\n\t\t\t\tconsole.error(\"Invalid type: '\" + this.type() + \"'\");\r\n\t\t\t\treturn '';\r\n\t\t}\r\n\t});\r\n\r\n\tenumSelectionDisplay = computed(() => {\r\n\t\tconst currentLang = this.langSignal();\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(this.groupName()!, this.parentSelectionKey()!);\r\n\t\t\treturn this.model();\r\n\t\t}\r\n\r\n\t\tconst rawModel = this.model();\r\n\t\tconst key =\r\n\t\t\ttypeof rawModel === 'object' && rawModel !== null && 'value' in rawModel ? rawModel.value\r\n\t\t\t: typeof rawModel === 'boolean' ? String(rawModel)\r\n\t\t\t: rawModel;\r\n\r\n\t\tconst selectionItem = selectionGroup.selectionItems.find((t) => t.selectionKey === key) as {\r\n\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\tselectionDisplay?: string;\r\n\t\t};\r\n\r\n\t\tif (!selectionItem) return key;\r\n\r\n\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? key;\r\n\t});\r\n\r\n\tenumBadgeBackgroundColor = computed(() => {\r\n\t\tif (typeof this.model() === 'boolean') {\r\n\t\t\treturn this.model() ? '#22c55e' : '#ef4444'; // true için yeşil, false için kırmızı\r\n\t\t}\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\t\tconst selectionItems = selectionGroup?.selectionItems ?? [];\r\n\r\n\t\tconst selectionItem = selectionItems.find((t) => t.selectionKey === this.model());\r\n\r\n\t\tif (!selectionItem) {\r\n\t\t\treturn '#1890FF';\r\n\t\t} else if (this.colorList[selectionItem.showOrder] !== undefined) {\r\n\t\t\treturn this.colorList[selectionItem.showOrder];\r\n\t\t}\r\n\t\treturn '#A2AFFF';\r\n\t});\r\n\r\n\tgetArrayItemValue(item: any): any {\r\n\t\treturn item[this.arrayTypeDisplayName()];\r\n\t}\r\n\r\n\tisModelArray = computed(() => {\r\n\t\treturn Array.isArray(this.model());\r\n\t});\r\n\r\n\t// Get enum display for array items\r\n\tenumArrayDisplays = computed(() => {\r\n\t\tif (!this.isModelArray() || !Array.isArray(this.model())) return [];\r\n\r\n\t\tconst currentLang = this.langSignal();\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\r\n\t\tif (!selectionGroup) {\r\n\t\t\tthis.selectionGroupService.fetchEnum(this.groupName()!, this.parentSelectionKey()!);\r\n\t\t\treturn this.model() as string[];\r\n\t\t}\r\n\r\n\t\treturn this.model().map((item: any) => {\r\n\t\t\tconst key =\r\n\t\t\t\ttypeof item === 'object' && item !== null && 'value' in item ? item.value\r\n\t\t\t\t: typeof item === 'boolean' ? String(item)\r\n\t\t\t\t: item;\r\n\r\n\t\t\tconst selectionItem = selectionGroup.selectionItems.find((t) => t.selectionKey === key) as {\r\n\t\t\t\tselectionMultiLanguageDisplays?: { [lang: string]: string };\r\n\t\t\t\tselectionDisplay?: string;\r\n\t\t\t};\r\n\r\n\t\t\tif (!selectionItem) return key;\r\n\r\n\t\t\treturn selectionItem.selectionMultiLanguageDisplays?.[currentLang] ?? selectionItem.selectionDisplay ?? key;\r\n\t\t}) as string[];\r\n\t});\r\n\r\n\t// Get enum background colors for array items\r\n\tenumArrayBackgroundColors = computed(() => {\r\n\t\tif (!this.isModelArray() || !Array.isArray(this.model())) return [];\r\n\r\n\t\tconst selectionGroup =\r\n\t\t\tthis.selectionGroupService.selectionGroups()[`${this.groupName()!}~${this.parentSelectionKey()!}`];\r\n\t\tconst selectionItems = selectionGroup?.selectionItems ?? [];\r\n\r\n\t\treturn this.model().map((item: any) => {\r\n\t\t\tif (typeof item === 'boolean') {\r\n\t\t\t\treturn item ? '#22c55e' : '#ef4444';\r\n\t\t\t}\r\n\r\n\t\t\tconst selectionItem = selectionItems.find((t) => t.selectionKey === item);\r\n\r\n\t\t\tif (!selectionItem) {\r\n\t\t\t\treturn '#1890FF';\r\n\t\t\t} else if (this.colorList[selectionItem.showOrder] !== undefined) {\r\n\t\t\t\treturn this.colorList[selectionItem.showOrder];\r\n\t\t\t}\r\n\t\t\treturn '#A2AFFF';\r\n\t\t});\r\n\t});\r\n\r\n\tcopyToClipboard(value: string | undefined) {\r\n\t\tif (!value) return;\r\n\t\tnavigator.clipboard.writeText(value).then(\r\n\t\t\t() => {\r\n\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\tseverity: 'success',\r\n\t\t\t\t\tsummary: this.translocoService.translate('messages.successMessageHeader'),\r\n\t\t\t\t\tdetail: this.translocoService.translate('messages.copyToClipboardSuccess'),\r\n\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t(err) => {\r\n\t\t\t\tthis.messageService.add({\r\n\t\t\t\t\tseverity: 'error',\r\n\t\t\t\t\tsummary: this.translocoService.translate('messages.unsuccessfulMessageHeader'),\r\n\t\t\t\t\tdetail: this.translocoService.translate('messages.copyToClipboardError'),\r\n\t\t\t\t\tkey: 'toast-root'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n","@if (model() == undefined || model() == null) {\r\n\t<i\r\n\t\tclass=\"pi pi-minus\"\r\n\t\tstyle=\"color: red\"\r\n\t\t[pTooltip]=\"this.translocoService.translate('validations.noItemToShow')\"></i>\r\n} @else {\r\n\t@if (type() == 'bool') {\r\n\t\t@if (!!model()) {\r\n\t\t\t<i class=\"pi pi-check\" style=\"color: green\"></i>\r\n\t\t} @else {\r\n\t\t\t<i class=\"pi pi-times\" style=\"color: crimson\"></i>\r\n\t\t}\r\n\t} @else if (type() === 'enum') {\r\n\t\t@if (isModelArray()) {\r\n\t\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t\t@for (display of enumArrayDisplays().slice(0, 2); track display; let i = $index) {\r\n\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t}\r\n\t\t\t\t@if (enumArrayDisplays().length > 2) {\r\n\t\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"enumOp.toggle($event)\"></i>\r\n\r\n\t\t\t\t\t<p-overlayPanel #enumOp class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t\t@for (display of enumArrayDisplays() | slice: 2; track display; let i = $index) {\r\n\t\t\t\t\t\t\t\t<aril-badge [background]=\"enumArrayBackgroundColors()[i + 2]\" [value]=\"display\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</p-overlayPanel>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t} @else {\r\n\t\t\t<aril-badge [background]=\"enumBadgeBackgroundColor()\" [value]=\"enumSelectionDisplay()\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t}\r\n\t} @else if (type() === 'array') {\r\n\t\t<div class=\"flex align-items-center gap-1\">\r\n\t\t\t@for (item of model().slice(0, arrayTypeMaxBadgeCount()); track item) {\r\n\t\t\t\t<aril-badge [background]=\"getArrayItemValue(item) || '' | enumColorPicker\" [value]=\"getArrayItemValue(item)\" [textClampCharacters]=\"textClampCharacters()\" />\r\n\t\t\t}\r\n\t\t\t@if (model().length > arrayTypeMaxBadgeCount()) {\r\n\t\t\t\t<i class=\"pi pi-ellipsis-v cursor-pointer\" (click)=\"op.toggle($event)\"></i>\r\n\r\n\t\t\t\t<p-overlayPanel #op class=\"shadow-4\" appendTo=\"body\">\r\n\t\t\t\t\t<div class=\"flex flex-column gap-2 max-w-30rem max-h-20rem pr-3 overflow-y-auto\">\r\n\t\t\t\t\t\t@for (item of model() | slice: arrayTypeMaxBadgeCount(); track item) {\r\n\t\t\t\t\t\t\t<aril-badge\r\n\t\t\t\t\t\t\t\t[background]=\"getArrayItemValue(item) || '' | enumColorPicker\"\r\n\t\t\t\t\t\t\t\t[value]=\"getArrayItemValue(item)\" />\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</p-overlayPanel>\r\n\t\t\t}\r\n\t\t</div>\r\n\t} @else {\r\n\t\t@if (display() == undefined) {\r\n\t\t\t<i\r\n\t\t\t\tclass=\"pi pi-exclamation-circle\"\r\n\t\t\t\tstyle=\"color: red\"\r\n\t\t\t\t[pTooltip]=\"this.translocoService.translate('validations.invalidDataFormat')\">\r\n\t\t\t</i>\r\n\t\t} @else {\r\n\t\t\t<span class=\"flex align-items-center gap-2\">\r\n\t\t\t\t@if (showCopyIcon()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\tclass=\"pi pi-copy cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"copyToClipboard(display()?.toString()); $event.stopPropagation()\"\r\n\t\t\t\t\t\tstyle=\"font-size: 1rem; color: green\"></i>\r\n\t\t\t\t}\r\n\t\t\t\t<span\r\n\t\t\t\t\t[pTooltip]=\"\r\n\t\t\t\t\t\ttype() === 'text' && isTextClamp() && display()?.toString().length > textClampCharacters() ?\r\n\t\t\t\t\t\t\tdisplay()?.toString()\r\n\t\t\t\t\t\t:\t''\r\n\t\t\t\t\t\"\r\n\t\t\t\t\ttooltipPosition=\"top\"\r\n\t\t\t\t\t[class.text-no-wrap]=\"isTextClamp()\"\r\n\t\t\t\t\t[style]=\"isClickable() ? { 'text-decoration': 'underline', color: '#0000EE', cursor: 'pointer' } : ''\">\r\n\t\t\t\t\t@if (type() === 'number' || type() === 'decimal') {\r\n\t\t\t\t\t\t{{ model() | number: getNumberFormat() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'big_decimal') {\r\n\t\t\t\t\t\t{{ model() | roundNumber: bigDecimalScale() : bigDecimalRoundingMode() : 'tr-TR' }}\r\n\t\t\t\t\t} @else if (type() === 'currency') {\r\n\t\t\t\t\t\t{{ model() | currency: format() ?? 'TRY' : 'symbol' : '1.0-2' }}\r\n\t\t\t\t\t} @else if (type() === 'text' && isTextClamp()) {\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdisplay().length > textClampCharacters() ? display().slice(0, textClampCharacters()) + '...' : display()\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t} @else {\r\n\t\t\t\t\t\t{{ display() }}\r\n\t\t\t\t\t}\r\n\t\t\t\t</span>\r\n\t\t\t</span>\r\n\t\t}\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ import { Location } from '@angular/common';
2
+ import * as i0 from '@angular/core';
3
+ import { inject, Injectable } from '@angular/core';
4
+ import { Router, NavigationEnd } from '@angular/router';
5
+ import { KeycloakService, KeycloakEventType } from 'keycloak-angular';
6
+ import { filter } from 'rxjs/operators';
7
+ import { API_CONFIGS } from 'aril/boot/config/api';
8
+ import { Apps } from 'aril/boot/config/apps';
9
+
10
+ const ACTIVITY_ENDPOINT_PATH = 'analytics/track';
11
+ const ACTIVITY_SESSION_MARKER_PREFIX = 'aril.activity.session:';
12
+ const LOGGER_SESSION_HEADER = 'x-aril-logger-session-id';
13
+
14
+ class ActivityService {
15
+ constructor() {
16
+ this.keycloak = inject(KeycloakService);
17
+ // Router/Location optional: MFE shared scope'da bunlar yok (child injector'da yaşıyor).
18
+ // Plugin/Host scope'da var. Null durumunda PAGE_VIEW subscribe'ları no-op olur.
19
+ this.router = inject(Router, { optional: true });
20
+ this.location = inject(Location, { optional: true });
21
+ this.sessionId = null;
22
+ this.username = null;
23
+ this.previousPath = null;
24
+ this.started = false;
25
+ }
26
+ getSessionId() {
27
+ if (this.sessionId)
28
+ return this.sessionId;
29
+ const fresh = this.readSessionIdFromKeycloak();
30
+ if (fresh)
31
+ this.sessionId = fresh;
32
+ return fresh;
33
+ }
34
+ start(options = {}) {
35
+ if (this.started)
36
+ return;
37
+ this.started = true;
38
+ this.captureSessionContext();
39
+ this.subscribeKeycloakRefresh();
40
+ if (this.location) {
41
+ this.location.onUrlChange(() => this.maybeEmitPageView(this.location.path()));
42
+ }
43
+ if (options.shellMode) {
44
+ this.subscribeLifecycleEvents();
45
+ this.subscribeRouterEvents();
46
+ this.handleSessionStart();
47
+ }
48
+ }
49
+ track(event, properties = {}, type = 'CUSTOM') {
50
+ if (!this.started)
51
+ return;
52
+ this.send({ type, event, properties });
53
+ }
54
+ readSessionIdFromKeycloak() {
55
+ const kc = this.keycloak.getKeycloakInstance();
56
+ return kc?.sessionId ?? kc?.tokenParsed?.session_state ?? kc?.tokenParsed?.sid ?? null;
57
+ }
58
+ captureSessionContext() {
59
+ this.sessionId = this.readSessionIdFromKeycloak();
60
+ this.username = this.keycloak.getUsername() ?? null;
61
+ }
62
+ subscribeKeycloakRefresh() {
63
+ this.keycloak.keycloakEvents$.subscribe((event) => {
64
+ if (event.type === KeycloakEventType.OnAuthRefreshSuccess) {
65
+ this.captureSessionContext();
66
+ }
67
+ });
68
+ }
69
+ subscribeLifecycleEvents() {
70
+ this.keycloak.keycloakEvents$.subscribe((event) => {
71
+ if (event.type === KeycloakEventType.OnAuthLogout) {
72
+ this.sendSessionEnd('logout');
73
+ }
74
+ else if (event.type === KeycloakEventType.OnAuthRefreshError) {
75
+ this.sendSessionEnd('refresh_failed');
76
+ }
77
+ });
78
+ }
79
+ subscribeRouterEvents() {
80
+ if (!this.router)
81
+ return;
82
+ this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe((event) => {
83
+ this.maybeEmitPageView(event.urlAfterRedirects);
84
+ });
85
+ }
86
+ maybeEmitPageView(currentUrl) {
87
+ if (currentUrl === this.previousPath)
88
+ return;
89
+ const slot = globalThis;
90
+ const lastUrl = slot['__arilActivityLastPageUrl'];
91
+ const lastAt = slot['__arilActivityLastPageAt'];
92
+ if (lastUrl === currentUrl && lastAt && Date.now() - lastAt < 1000) {
93
+ this.previousPath = currentUrl;
94
+ return;
95
+ }
96
+ const previous = this.previousPath;
97
+ this.previousPath = currentUrl;
98
+ slot['__arilActivityLastPageUrl'] = currentUrl;
99
+ slot['__arilActivityLastPageAt'] = Date.now();
100
+ this.send({
101
+ type: 'PAGE_VIEW',
102
+ event: '',
103
+ page: currentUrl,
104
+ referrer: previous ?? undefined,
105
+ properties: {}
106
+ });
107
+ }
108
+ handleSessionStart() {
109
+ if (!this.sessionId)
110
+ return;
111
+ const currentKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;
112
+ let alreadyMarked = false;
113
+ try {
114
+ alreadyMarked = !!localStorage.getItem(currentKey);
115
+ this.purgeStaleSessionMarkers(currentKey);
116
+ }
117
+ catch {
118
+ /* swallow */
119
+ }
120
+ if (alreadyMarked)
121
+ return;
122
+ try {
123
+ localStorage.setItem(currentKey, Date.now().toString());
124
+ }
125
+ catch {
126
+ /* swallow */
127
+ }
128
+ this.send({
129
+ type: 'SESSION_START',
130
+ event: 'login',
131
+ properties: { userAgent: navigator.userAgent }
132
+ });
133
+ }
134
+ purgeStaleSessionMarkers(keepKey) {
135
+ const stale = [];
136
+ for (let i = 0; i < localStorage.length; i++) {
137
+ const key = localStorage.key(i);
138
+ if (key && key !== keepKey && key.startsWith(ACTIVITY_SESSION_MARKER_PREFIX)) {
139
+ stale.push(key);
140
+ }
141
+ }
142
+ stale.forEach((k) => localStorage.removeItem(k));
143
+ }
144
+ sendSessionEnd(reason) {
145
+ if (!this.sessionId)
146
+ return;
147
+ const markerKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;
148
+ let durationMs = 0;
149
+ try {
150
+ const loginTimestamp = parseInt(localStorage.getItem(markerKey) ?? '0', 10);
151
+ durationMs = loginTimestamp ? Date.now() - loginTimestamp : 0;
152
+ localStorage.removeItem(markerKey);
153
+ }
154
+ catch {
155
+ /* swallow */
156
+ }
157
+ this.send({
158
+ type: 'SESSION_END',
159
+ event: reason,
160
+ properties: { durationMs }
161
+ });
162
+ }
163
+ toAbsoluteUrl(routerPath) {
164
+ if (routerPath.startsWith('http://') || routerPath.startsWith('https://'))
165
+ return routerPath;
166
+ return `${window.location.origin}/#${routerPath}`;
167
+ }
168
+ /**
169
+ * MFE shared scope'unda `Router` ve `Location` null (her ikisi de child injector'da yaşıyor).
170
+ * Bu durumda Angular soyutlamalarına dayanamayız; `window.location.hash`'ten okuruz —
171
+ * browser'ın sahip olduğu güncel URL.
172
+ */
173
+ readCurrentPath() {
174
+ if (this.location)
175
+ return this.location.path();
176
+ if (this.router)
177
+ return this.router.url;
178
+ const hash = window.location.hash;
179
+ return hash.startsWith('#') ? hash.slice(1) : '';
180
+ }
181
+ send(partial) {
182
+ if (!this.sessionId)
183
+ return;
184
+ const baseUrl = API_CONFIGS.getExternalAppEndpoint(Apps.EVENT_GATEWAY);
185
+ if (!baseUrl)
186
+ return;
187
+ const currentPath = partial.page ?? this.readCurrentPath();
188
+ const payload = {
189
+ type: partial.type,
190
+ sessionId: this.sessionId,
191
+ username: this.username ?? '',
192
+ event: partial.event,
193
+ page: this.toAbsoluteUrl(currentPath),
194
+ ip: '',
195
+ referrer: partial.referrer ? this.toAbsoluteUrl(partial.referrer) : `${window.location.origin}/#`,
196
+ traceId: '',
197
+ clientTimestamp: Date.now(),
198
+ properties: partial.properties
199
+ };
200
+ const url = `${baseUrl.replace(/\/$/, '')}/${ACTIVITY_ENDPOINT_PATH}`;
201
+ this.keycloak
202
+ .getToken()
203
+ .then((token) => fetch(url, {
204
+ method: 'POST',
205
+ keepalive: true,
206
+ headers: {
207
+ 'Content-Type': 'application/json',
208
+ [LOGGER_SESSION_HEADER]: this.sessionId,
209
+ ...(token ? { Authorization: `Bearer ${token}` } : {})
210
+ },
211
+ body: JSON.stringify(payload)
212
+ }))
213
+ .catch(() => undefined);
214
+ }
215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ActivityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
216
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ActivityService, providedIn: 'root' }); }
217
+ }
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ActivityService, decorators: [{
219
+ type: Injectable,
220
+ args: [{ providedIn: 'root' }]
221
+ }] });
222
+
223
+ /**
224
+ * Generated bundle index. Do not edit.
225
+ */
226
+
227
+ export { ACTIVITY_ENDPOINT_PATH, ACTIVITY_SESSION_MARKER_PREFIX, ActivityService, LOGGER_SESSION_HEADER };
228
+ //# sourceMappingURL=aril-util-activity.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aril-util-activity.mjs","sources":["../../projects/aril/util/activity/src/activity.constants.ts","../../projects/aril/util/activity/src/activity.service.ts","../../projects/aril/util/activity/aril-util-activity.ts"],"sourcesContent":["export const ACTIVITY_ENDPOINT_PATH = 'analytics/track';\r\nexport const ACTIVITY_SESSION_MARKER_PREFIX = 'aril.activity.session:';\r\nexport const LOGGER_SESSION_HEADER = 'x-aril-logger-session-id';\r\n","import { Location } from '@angular/common';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n\r\nimport { KeycloakEventType, KeycloakService } from 'keycloak-angular';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { API_CONFIGS } from 'aril/boot/config/api';\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\nimport {\r\n\tACTIVITY_ENDPOINT_PATH,\r\n\tACTIVITY_SESSION_MARKER_PREFIX,\r\n\tLOGGER_SESSION_HEADER\r\n} from './activity.constants';\r\nimport { ActivityEvent, ActivityEventType } from './activity.types';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ActivityService {\r\n\tprivate readonly keycloak = inject(KeycloakService);\r\n\t// Router/Location optional: MFE shared scope'da bunlar yok (child injector'da yaşıyor).\r\n\t// Plugin/Host scope'da var. Null durumunda PAGE_VIEW subscribe'ları no-op olur.\r\n\tprivate readonly router = inject(Router, { optional: true });\r\n\tprivate readonly location = inject(Location, { optional: true });\r\n\r\n\tprivate sessionId: string | null = null;\r\n\tprivate username: string | null = null;\r\n\tprivate previousPath: string | null = null;\r\n\tprivate started = false;\r\n\r\n\tgetSessionId(): string | null {\r\n\t\tif (this.sessionId) return this.sessionId;\r\n\t\tconst fresh = this.readSessionIdFromKeycloak();\r\n\t\tif (fresh) this.sessionId = fresh;\r\n\t\treturn fresh;\r\n\t}\r\n\r\n\tstart(options: { shellMode?: boolean } = {}): void {\r\n\t\tif (this.started) return;\r\n\t\tthis.started = true;\r\n\r\n\t\tthis.captureSessionContext();\r\n\t\tthis.subscribeKeycloakRefresh();\r\n\r\n\t\tif (this.location) {\r\n\t\t\tthis.location.onUrlChange(() => this.maybeEmitPageView(this.location!.path()));\r\n\t\t}\r\n\r\n\t\tif (options.shellMode) {\r\n\t\t\tthis.subscribeLifecycleEvents();\r\n\t\t\tthis.subscribeRouterEvents();\r\n\t\t\tthis.handleSessionStart();\r\n\t\t}\r\n\t}\r\n\r\n\ttrack(event: string, properties: Record<string, unknown> = {}, type: ActivityEventType = 'CUSTOM'): void {\r\n\t\tif (!this.started) return;\r\n\t\tthis.send({ type, event, properties });\r\n\t}\r\n\r\n\tprivate readSessionIdFromKeycloak(): string | null {\r\n\t\tconst kc = this.keycloak.getKeycloakInstance() as\r\n\t\t\t| { sessionId?: string; tokenParsed?: { session_state?: string; sid?: string } }\r\n\t\t\t| undefined;\r\n\t\treturn kc?.sessionId ?? kc?.tokenParsed?.session_state ?? kc?.tokenParsed?.sid ?? null;\r\n\t}\r\n\r\n\tprivate captureSessionContext(): void {\r\n\t\tthis.sessionId = this.readSessionIdFromKeycloak();\r\n\t\tthis.username = this.keycloak.getUsername() ?? null;\r\n\t}\r\n\r\n\tprivate subscribeKeycloakRefresh(): void {\r\n\t\tthis.keycloak.keycloakEvents$.subscribe((event) => {\r\n\t\t\tif (event.type === KeycloakEventType.OnAuthRefreshSuccess) {\r\n\t\t\t\tthis.captureSessionContext();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate subscribeLifecycleEvents(): void {\r\n\t\tthis.keycloak.keycloakEvents$.subscribe((event) => {\r\n\t\t\tif (event.type === KeycloakEventType.OnAuthLogout) {\r\n\t\t\t\tthis.sendSessionEnd('logout');\r\n\t\t\t} else if (event.type === KeycloakEventType.OnAuthRefreshError) {\r\n\t\t\t\tthis.sendSessionEnd('refresh_failed');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate subscribeRouterEvents(): void {\r\n\t\tif (!this.router) return;\r\n\t\tthis.router.events.pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd)).subscribe((event) => {\r\n\t\t\tthis.maybeEmitPageView(event.urlAfterRedirects);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate maybeEmitPageView(currentUrl: string): void {\r\n\t\tif (currentUrl === this.previousPath) return;\r\n\r\n\t\tconst slot = globalThis as Record<string, unknown>;\r\n\t\tconst lastUrl = slot['__arilActivityLastPageUrl'] as string | undefined;\r\n\t\tconst lastAt = slot['__arilActivityLastPageAt'] as number | undefined;\r\n\t\tif (lastUrl === currentUrl && lastAt && Date.now() - lastAt < 1000) {\r\n\t\t\tthis.previousPath = currentUrl;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst previous = this.previousPath;\r\n\t\tthis.previousPath = currentUrl;\r\n\t\tslot['__arilActivityLastPageUrl'] = currentUrl;\r\n\t\tslot['__arilActivityLastPageAt'] = Date.now();\r\n\r\n\t\tthis.send({\r\n\t\t\ttype: 'PAGE_VIEW',\r\n\t\t\tevent: '',\r\n\t\t\tpage: currentUrl,\r\n\t\t\treferrer: previous ?? undefined,\r\n\t\t\tproperties: {}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate handleSessionStart(): void {\r\n\t\tif (!this.sessionId) return;\r\n\t\tconst currentKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;\r\n\t\tlet alreadyMarked = false;\r\n\t\ttry {\r\n\t\t\talreadyMarked = !!localStorage.getItem(currentKey);\r\n\t\t\tthis.purgeStaleSessionMarkers(currentKey);\r\n\t\t} catch {\r\n\t\t\t/* swallow */\r\n\t\t}\r\n\t\tif (alreadyMarked) return;\r\n\t\ttry {\r\n\t\t\tlocalStorage.setItem(currentKey, Date.now().toString());\r\n\t\t} catch {\r\n\t\t\t/* swallow */\r\n\t\t}\r\n\t\tthis.send({\r\n\t\t\ttype: 'SESSION_START',\r\n\t\t\tevent: 'login',\r\n\t\t\tproperties: { userAgent: navigator.userAgent }\r\n\t\t});\r\n\t}\r\n\r\n\tprivate purgeStaleSessionMarkers(keepKey: string): void {\r\n\t\tconst stale: string[] = [];\r\n\t\tfor (let i = 0; i < localStorage.length; i++) {\r\n\t\t\tconst key = localStorage.key(i);\r\n\t\t\tif (key && key !== keepKey && key.startsWith(ACTIVITY_SESSION_MARKER_PREFIX)) {\r\n\t\t\t\tstale.push(key);\r\n\t\t\t}\r\n\t\t}\r\n\t\tstale.forEach((k) => localStorage.removeItem(k));\r\n\t}\r\n\r\n\tprivate sendSessionEnd(reason: 'logout' | 'refresh_failed'): void {\r\n\t\tif (!this.sessionId) return;\r\n\t\tconst markerKey = `${ACTIVITY_SESSION_MARKER_PREFIX}${this.sessionId}`;\r\n\t\tlet durationMs = 0;\r\n\t\ttry {\r\n\t\t\tconst loginTimestamp = parseInt(localStorage.getItem(markerKey) ?? '0', 10);\r\n\t\t\tdurationMs = loginTimestamp ? Date.now() - loginTimestamp : 0;\r\n\t\t\tlocalStorage.removeItem(markerKey);\r\n\t\t} catch {\r\n\t\t\t/* swallow */\r\n\t\t}\r\n\t\tthis.send({\r\n\t\t\ttype: 'SESSION_END',\r\n\t\t\tevent: reason,\r\n\t\t\tproperties: { durationMs }\r\n\t\t});\r\n\t}\r\n\r\n\tprivate toAbsoluteUrl(routerPath: string): string {\r\n\t\tif (routerPath.startsWith('http://') || routerPath.startsWith('https://')) return routerPath;\r\n\t\treturn `${window.location.origin}/#${routerPath}`;\r\n\t}\r\n\r\n\t/**\r\n\t * MFE shared scope'unda `Router` ve `Location` null (her ikisi de child injector'da yaşıyor).\r\n\t * Bu durumda Angular soyutlamalarına dayanamayız; `window.location.hash`'ten okuruz —\r\n\t * browser'ın sahip olduğu güncel URL.\r\n\t */\r\n\tprivate readCurrentPath(): string {\r\n\t\tif (this.location) return this.location.path();\r\n\t\tif (this.router) return this.router.url;\r\n\t\tconst hash = window.location.hash;\r\n\t\treturn hash.startsWith('#') ? hash.slice(1) : '';\r\n\t}\r\n\r\n\tprivate send(partial: {\r\n\t\ttype: ActivityEventType;\r\n\t\tevent: string;\r\n\t\tpage?: string;\r\n\t\treferrer?: string;\r\n\t\tproperties: Record<string, unknown>;\r\n\t}): void {\r\n\t\tif (!this.sessionId) return;\r\n\r\n\t\tconst baseUrl = API_CONFIGS.getExternalAppEndpoint(Apps.EVENT_GATEWAY);\r\n\t\tif (!baseUrl) return;\r\n\r\n\t\tconst currentPath = partial.page ?? this.readCurrentPath();\r\n\t\tconst payload: ActivityEvent = {\r\n\t\t\ttype: partial.type,\r\n\t\t\tsessionId: this.sessionId,\r\n\t\t\tusername: this.username ?? '',\r\n\t\t\tevent: partial.event,\r\n\t\t\tpage: this.toAbsoluteUrl(currentPath),\r\n\t\t\tip: '',\r\n\t\t\treferrer: partial.referrer ? this.toAbsoluteUrl(partial.referrer) : `${window.location.origin}/#`,\r\n\t\t\ttraceId: '',\r\n\t\t\tclientTimestamp: Date.now(),\r\n\t\t\tproperties: partial.properties\r\n\t\t};\r\n\r\n\t\tconst url = `${baseUrl.replace(/\\/$/, '')}/${ACTIVITY_ENDPOINT_PATH}`;\r\n\r\n\t\tthis.keycloak\r\n\t\t\t.getToken()\r\n\t\t\t.then((token) =>\r\n\t\t\t\tfetch(url, {\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\tkeepalive: true,\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t'Content-Type': 'application/json',\r\n\t\t\t\t\t\t[LOGGER_SESSION_HEADER]: this.sessionId!,\r\n\t\t\t\t\t\t...(token ? { Authorization: `Bearer ${token}` } : {})\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbody: JSON.stringify(payload)\r\n\t\t\t\t})\r\n\t\t\t)\r\n\t\t\t.catch(() => undefined);\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -22,6 +22,14 @@ class Block {
22
22
  this.target.set(this.getTarget(this.element));
23
23
  this.blockUI = new KTBlockUI(this.target(), this.blockOptions());
24
24
  }
25
+ ngOnDestroy() {
26
+ // KTBlockUI instance'ı KTUtilElementDataStore'da tutuluyor; release overlay'i kaldırır,
27
+ // destroy global store kaydını siler (aksi halde directive yok olsa da DOM bellekte kalır).
28
+ if (this.blockUI) {
29
+ this.blockUI.release();
30
+ this.blockUI.destroy();
31
+ }
32
+ }
25
33
  getTarget(element) {
26
34
  let nativeElement = element.nativeElement;
27
35
  while (nativeElement && !nativeElement.clientWidth)
@@ -38,34 +46,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
38
46
  selector: '[arilBlock]'
39
47
  }]
40
48
  }], ctorParameters: () => [{ type: i0.ElementRef }] });
41
- class BlockPage {
42
- constructor() {
43
- this.arilBlockPage = input.required();
44
- this.blockOptions = input({});
45
- const blockUI = new KTBlockUI(document.body, this.blockOptions());
46
- effect(() => {
47
- if (this.arilBlockPage()) {
48
- blockUI.block();
49
- }
50
- else {
51
- blockUI.release();
52
- }
53
- });
54
- }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BlockPage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
56
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.1.2", type: BlockPage, isStandalone: true, selector: "[arilBlockPage]", inputs: { arilBlockPage: { classPropertyName: "arilBlockPage", publicName: "arilBlockPage", isSignal: true, isRequired: true, transformFunction: null }, blockOptions: { classPropertyName: "blockOptions", publicName: "blockOptions", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
57
- }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BlockPage, decorators: [{
59
- type: Directive,
60
- args: [{
61
- standalone: true,
62
- selector: '[arilBlockPage]'
63
- }]
64
- }], ctorParameters: () => [] });
65
49
 
66
50
  /**
67
51
  * Generated bundle index. Do not edit.
68
52
  */
69
53
 
70
- export { Block, BlockPage };
54
+ export { Block };
71
55
  //# sourceMappingURL=aril-util-block.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aril-util-block.mjs","sources":["../../projects/aril/util/block/src/block.ts","../../projects/aril/util/block/aril-util-block.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, effect, input, signal } from '@angular/core';\r\n\r\ndeclare const KTBlockUI: any;\r\n\r\ninterface BlockOptions {\r\n\tzIndex?: number;\r\n\toverlayClass?: string;\r\n\tmessage?: string;\r\n}\r\n\r\n@Directive({\r\n\tstandalone: true,\r\n\tselector: '[arilBlock]'\r\n})\r\nexport class Block implements AfterViewInit {\r\n\tconstructor(private element: ElementRef) {\r\n\t\teffect(() => {\r\n\t\t\tif (this.target()) {\r\n\t\t\t\tif (this.arilBlock()) {\r\n\t\t\t\t\tthis.blockUI.block();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.blockUI.release();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tarilBlock = input.required<boolean>();\r\n\tblockOptions = input<BlockOptions>({});\r\n\r\n\tblockUI: typeof KTBlockUI;\r\n\ttarget = signal<HTMLElement>(this.element.nativeElement);\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.target.set(this.getTarget(this.element));\r\n\t\tthis.blockUI = new KTBlockUI(this.target(), this.blockOptions());\r\n\t}\r\n\r\n\tgetTarget(element: ElementRef): HTMLElement {\r\n\t\tlet nativeElement = element.nativeElement;\r\n\t\twhile (nativeElement && !nativeElement.clientWidth) nativeElement = nativeElement.children[0];\r\n\t\treturn nativeElement;\r\n\t}\r\n}\r\n\r\n@Directive({\r\n\tstandalone: true,\r\n\tselector: '[arilBlockPage]'\r\n})\r\nexport class BlockPage {\r\n\tconstructor() {\r\n\t\tconst blockUI = new KTBlockUI(document.body, this.blockOptions());\r\n\r\n\t\teffect(() => {\r\n\t\t\tif (this.arilBlockPage()) {\r\n\t\t\t\tblockUI.block();\r\n\t\t\t} else {\r\n\t\t\t\tblockUI.release();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tarilBlockPage = input.required<boolean>();\r\n\tblockOptions = input<BlockOptions>({});\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-util-block.mjs","sources":["../../projects/aril/util/block/src/block.ts","../../projects/aril/util/block/aril-util-block.ts"],"sourcesContent":["import { AfterViewInit, Directive, ElementRef, OnDestroy, effect, input, signal } from '@angular/core';\r\n\r\ndeclare const KTBlockUI: any;\r\n\r\ninterface BlockOptions {\r\n\tzIndex?: number;\r\n\toverlayClass?: string;\r\n\tmessage?: string;\r\n}\r\n\r\n@Directive({\r\n\tstandalone: true,\r\n\tselector: '[arilBlock]'\r\n})\r\nexport class Block implements AfterViewInit, OnDestroy {\r\n\tconstructor(private readonly element: ElementRef) {\r\n\t\teffect(() => {\r\n\t\t\tif (this.target()) {\r\n\t\t\t\tif (this.arilBlock()) {\r\n\t\t\t\t\tthis.blockUI.block();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.blockUI.release();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tarilBlock = input.required<boolean>();\r\n\tblockOptions = input<BlockOptions>({});\r\n\r\n\tblockUI: typeof KTBlockUI;\r\n\ttarget = signal<HTMLElement>(this.element.nativeElement);\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.target.set(this.getTarget(this.element));\r\n\t\tthis.blockUI = new KTBlockUI(this.target(), this.blockOptions());\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\t// KTBlockUI instance'ı KTUtilElementDataStore'da tutuluyor; release overlay'i kaldırır,\r\n\t\t// destroy global store kaydını siler (aksi halde directive yok olsa da DOM bellekte kalır).\r\n\t\tif (this.blockUI) {\r\n\t\t\tthis.blockUI.release();\r\n\t\t\tthis.blockUI.destroy();\r\n\t\t}\r\n\t}\r\n\r\n\tgetTarget(element: ElementRef): HTMLElement {\r\n\t\tlet nativeElement = element.nativeElement;\r\n\t\twhile (nativeElement && !nativeElement.clientWidth) nativeElement = nativeElement.children[0];\r\n\t\treturn nativeElement;\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAca,KAAK,CAAA;AACjB,IAAA,WAAA,CAA6B,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;AAYhD,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAW,CAAC;AACtC,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAe,EAAE,CAAC,CAAC;QAGvC,IAAM,CAAA,MAAA,GAAG,MAAM,CAAc,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAfxD,MAAM,CAAC,MAAK;AACX,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACrB,oBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;iBACrB;qBAAM;AACN,oBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;iBACvB;aACD;AACF,SAAC,CAAC,CAAC;KACH;IAQD,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;KACjE;IAED,WAAW,GAAA;;;AAGV,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACvB;KACD;AAED,IAAA,SAAS,CAAC,OAAmB,EAAA;AAC5B,QAAA,IAAI,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;AAC1C,QAAA,OAAO,aAAa,IAAI,CAAC,aAAa,CAAC,WAAW;AAAE,YAAA,aAAa,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC9F,QAAA,OAAO,aAAa,CAAC;KACrB;8GArCW,KAAK,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAL,KAAK,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBAJjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,aAAa;AACvB,iBAAA,CAAA;;;ACbD;;AAEG;;;;"}
@@ -12,12 +12,17 @@ class PubSubService {
12
12
  dispatchEvent(new CustomEvent(e.name, { detail: e.data }));
13
13
  }
14
14
  subscribe(eventName, listener) {
15
- addEventListener(eventName, (event) => {
15
+ // addEventListener'a kaydedilen wrapper'ı döndür: unSubscribe ancak AYNI referansla kaldırabilir.
16
+ // Eskiden anonim wrapper kaydedilip orijinal listener kaldırılmaya çalışılıyordu; referanslar
17
+ // eşleşmediği için unSubscribe hiçbir zaman çalışmıyordu (kalıcı window listener leak'i).
18
+ const handler = (event) => {
16
19
  listener(event.detail);
17
- });
20
+ };
21
+ addEventListener(eventName, handler);
22
+ return handler;
18
23
  }
19
- unSubscribe(eventName, listener) {
20
- removeEventListener(eventName, listener);
24
+ unSubscribe(eventName, handler) {
25
+ removeEventListener(eventName, handler);
21
26
  }
22
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PubSubService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
28
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PubSubService, providedIn: 'root' }); }
@@ -1 +1 @@
1
- {"version":3,"file":"aril-util-pub-sub.mjs","sources":["../../projects/aril/util/pub-sub/src/pub-sub.service.ts","../../projects/aril/util/pub-sub/aril-util-pub-sub.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Injectable } from '@angular/core';\r\n\r\ntype CustomEvent = {\r\n\tname: keyof typeof PubSubEvents;\r\n\tdata: {\r\n\t\tpath: string;\r\n\t\tcustom?: any;\r\n\t};\r\n};\r\n\r\nconst PubSubEvents = {\r\n\tlanguageChanged: 'languageChanged',\r\n\tmenuModeChanged: 'menuModeChanged',\r\n\tbreadcrumbUpdated: 'breadcrumbUpdated'\r\n};\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class PubSubService {\r\n\tpublish(e: CustomEvent) {\r\n\t\tdispatchEvent(new CustomEvent(e.name, { detail: e.data }));\r\n\t}\r\n\r\n\tsubscribe(eventName: keyof typeof PubSubEvents, listener: (data: any) => void) {\r\n\t\taddEventListener(eventName, (event: any) => {\r\n\t\t\tlistener(event.detail);\r\n\t\t});\r\n\t}\r\n\r\n\tunSubscribe(eventName: keyof typeof PubSubEvents, listener: () => void) {\r\n\t\tremoveEventListener(eventName, listener);\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;AAWA,MAAM,YAAY,GAAG;AACpB,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,iBAAiB,EAAE,mBAAmB;CACtC,CAAC;MAKW,aAAa,CAAA;AACzB,IAAA,OAAO,CAAC,CAAc,EAAA;AACrB,QAAA,aAAa,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC3D;IAED,SAAS,CAAC,SAAoC,EAAE,QAA6B,EAAA;AAC5E,QAAA,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAU,KAAI;AAC1C,YAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxB,SAAC,CAAC,CAAC;KACH;IAED,WAAW,CAAC,SAAoC,EAAE,QAAoB,EAAA;AACrE,QAAA,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACzC;8GAbW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEN,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;ACnBD;;AAEG;;;;"}
1
+ {"version":3,"file":"aril-util-pub-sub.mjs","sources":["../../projects/aril/util/pub-sub/src/pub-sub.service.ts","../../projects/aril/util/pub-sub/aril-util-pub-sub.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Injectable } from '@angular/core';\r\n\r\ntype CustomEvent = {\r\n\tname: keyof typeof PubSubEvents;\r\n\tdata: {\r\n\t\tpath: string;\r\n\t\tcustom?: any;\r\n\t};\r\n};\r\n\r\nconst PubSubEvents = {\r\n\tlanguageChanged: 'languageChanged',\r\n\tmenuModeChanged: 'menuModeChanged',\r\n\tbreadcrumbUpdated: 'breadcrumbUpdated'\r\n};\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class PubSubService {\r\n\tpublish(e: CustomEvent) {\r\n\t\tdispatchEvent(new CustomEvent(e.name, { detail: e.data }));\r\n\t}\r\n\r\n\tsubscribe(eventName: keyof typeof PubSubEvents, listener: (data: any) => void): EventListener {\r\n\t\t// addEventListener'a kaydedilen wrapper'ı döndür: unSubscribe ancak AYNI referansla kaldırabilir.\r\n\t\t// Eskiden anonim wrapper kaydedilip orijinal listener kaldırılmaya çalışılıyordu; referanslar\r\n\t\t// eşleşmediği için unSubscribe hiçbir zaman çalışmıyordu (kalıcı window listener leak'i).\r\n\t\tconst handler: EventListener = (event: any) => {\r\n\t\t\tlistener(event.detail);\r\n\t\t};\r\n\t\taddEventListener(eventName, handler);\r\n\t\treturn handler;\r\n\t}\r\n\r\n\tunSubscribe(eventName: keyof typeof PubSubEvents, handler: EventListener) {\r\n\t\tremoveEventListener(eventName, handler);\r\n\t}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;AAWA,MAAM,YAAY,GAAG;AACpB,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,iBAAiB,EAAE,mBAAmB;CACtC,CAAC;MAKW,aAAa,CAAA;AACzB,IAAA,OAAO,CAAC,CAAc,EAAA;AACrB,QAAA,aAAa,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC3D;IAED,SAAS,CAAC,SAAoC,EAAE,QAA6B,EAAA;;;;AAI5E,QAAA,MAAM,OAAO,GAAkB,CAAC,KAAU,KAAI;AAC7C,YAAA,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxB,SAAC,CAAC;AACF,QAAA,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACrC,QAAA,OAAO,OAAO,CAAC;KACf;IAED,WAAW,CAAC,SAAoC,EAAE,OAAsB,EAAA;AACvE,QAAA,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KACxC;8GAlBW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEN,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,iBAAA,CAAA;;;ACnBD;;AAEG;;;;"}
package/fesm2022/aril.mjs CHANGED
@@ -12,6 +12,7 @@ import { loadApiConfigs, loadInitData, setApiConfigOnMFEMode } from 'aril/boot/c
12
12
  import { CustomRouteReuseStrategy, TabAwareUrlSerializer, MicroAppService } from 'aril/boot/config/apps';
13
13
  import { loadPlugins, getNgZone } from 'aril/boot/config/plugins';
14
14
  import { i18nFolderName } from 'aril/i18n';
15
+ import { ActivityService } from 'aril/util/activity';
15
16
  import * as i1 from 'aril/theme/layout';
16
17
  import { AppLayoutComponent } from 'aril/theme/layout';
17
18
  import * as i2 from 'aril/util/pub-sub';
@@ -85,7 +86,7 @@ const boot$1 = (_appName, routes) => {
85
86
  },
86
87
  {
87
88
  provide: APP_INITIALIZER,
88
- useFactory: (httpClient, keycloak, router, folderName, microAppService, location) => {
89
+ useFactory: (httpClient, keycloak, router, folderName, microAppService, location, activityService) => {
89
90
  if (router)
90
91
  bridge.hostRouter = router;
91
92
  if (location)
@@ -97,10 +98,11 @@ const boot$1 = (_appName, routes) => {
97
98
  await runLoadApiConfigs();
98
99
  await runLoadInitData();
99
100
  runLoadPlugins();
101
+ activityService.start({ shellMode: true });
100
102
  };
101
103
  },
102
104
  multi: true,
103
- deps: [HttpClient, KeycloakService, Router, i18nFolderName, MicroAppService, Location]
105
+ deps: [HttpClient, KeycloakService, Router, i18nFolderName, MicroAppService, Location, ActivityService]
104
106
  }
105
107
  ]
106
108
  };
@@ -108,7 +110,7 @@ const boot$1 = (_appName, routes) => {
108
110
  };
109
111
 
110
112
  const appComponentLoader = async () => {
111
- const { AppComponent } = await import('./aril-app.component-s14ruALV.mjs');
113
+ const { AppComponent } = await import('./aril-app.component-MjG_tPEe.mjs');
112
114
  return AppComponent;
113
115
  };
114
116
 
@@ -528,16 +530,17 @@ const boot = (_appName, _routes, _menuItems) => {
528
530
  getNgZone(),
529
531
  {
530
532
  provide: APP_INITIALIZER,
531
- useFactory: (httpClient, keycloak, folderName) => {
533
+ useFactory: (httpClient, keycloak, folderName, activityService) => {
532
534
  const runApiInit = setApiConfigOnMFEMode(httpClient, keycloak, folderName);
533
535
  const runLoadPlugins = loadPlugins();
534
536
  return async () => {
535
537
  await runApiInit();
536
538
  runLoadPlugins();
539
+ activityService.start({ shellMode: false });
537
540
  };
538
541
  },
539
542
  multi: true,
540
- deps: [HttpClient, KeycloakService, i18nFolderName]
543
+ deps: [HttpClient, KeycloakService, i18nFolderName, ActivityService]
541
544
  },
542
545
  importProvidersFrom(MonacoEditorModule.forRoot()),
543
546
  { provide: NGX_MONACO_EDITOR_CONFIG, useValue: monacoConfig }
@@ -635,6 +638,12 @@ const boot = (_appName, _routes, _menuItems) => {
635
638
  // (BreadcrumbService bilinçli olarak child-local bırakıldı: her tab kendi breadcrumb'ı.)
636
639
  { provide: PubSubService, useFactory: () => sharedAppRef.injector.get(PubSubService) },
637
640
  { provide: PrimeNGConfig, useFactory: () => sharedAppRef.injector.get(PrimeNGConfig) },
641
+ // ActivityService shared'da `APP_INITIALIZER` ile başlatıldı (Keycloak listener'ları + sessionId
642
+ // capture). Tab child injector'ında `ɵINJECTOR_SCOPE:'root'` yan etkisiyle ayrı bir instance
643
+ // üretilirdi — bu instance hiç `start()` çağrılmadığı için `track()` no-op olur ve aril-button
644
+ // click'leri sessizce kaybolur. Shared instance'ı forward ederek tek başlatılmış instance'ı
645
+ // her tab'a paylaştırıyoruz (authInterceptor'ın okuduğu `sessionId` ile birebir aynı).
646
+ { provide: ActivityService, useFactory: () => sharedAppRef.injector.get(ActivityService) },
638
647
  // Toast/confirm GLOBAL: tek shared MessageService/ConfirmationService. Aksi halde her tab
639
648
  // kendi instance'ına sahip olur → host'tan tetiklenen toast MFE tab'ında (ya da tersi)
640
649
  // görünmez. Shared instance ile tüm `<p-toast key="toast-root">` container'ları aynı kuyruğu dinler.