aril 2.0.1-dev.3 → 2.0.1-dev.5

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 (199) hide show
  1. package/boot/bridge/src/mfe-bridge.d.ts +33 -0
  2. package/boot/config/apps/src/interfaces.d.ts +7 -1
  3. package/boot/config/apps/src/route-close.service.d.ts +8 -3
  4. package/boot/config/apps/src/route-permissions.d.ts +2 -2
  5. package/esm2022/boot/bridge/src/mfe-bridge.mjs +18 -1
  6. package/esm2022/boot/config/api/src/interfaces.mjs +3 -2
  7. package/esm2022/boot/config/apps/src/apps.service.mjs +2 -2
  8. package/esm2022/boot/config/apps/src/custom-route-reuse-strategy.class.mjs +4 -4
  9. package/esm2022/boot/config/apps/src/interfaces.mjs +2 -1
  10. package/esm2022/boot/config/apps/src/route-close.service.mjs +11 -4
  11. package/esm2022/boot/config/apps/src/route-permissions.mjs +24 -6
  12. package/esm2022/boot/config/plugins/src/plugins.service.mjs +7 -5
  13. package/esm2022/boot/host/src/bootstrap.mjs +5 -3
  14. package/esm2022/boot/mfe/src/bootstrap.mjs +15 -3
  15. package/esm2022/http/index.mjs +1 -2
  16. package/esm2022/http/src/serviceBase.mjs +4 -4
  17. package/esm2022/http/src/serviceStateMethods.mjs +9 -1
  18. package/esm2022/keycloak/src/auth.interceptor.mjs +5 -2
  19. package/esm2022/selection/aril-selection.mjs +5 -0
  20. package/esm2022/selection/index.mjs +2 -0
  21. package/esm2022/selection/src/interfaces.mjs +2 -0
  22. package/esm2022/selection/src/selection-group.service.mjs +195 -0
  23. package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +2 -2
  24. package/esm2022/theme/layout/index.mjs +4 -2
  25. package/esm2022/theme/layout/service/breadcrumb-publisher.service.mjs +12 -4
  26. package/esm2022/theme/layout/service/interfaces/interfaces.mjs +1 -1
  27. package/esm2022/ui/button/index.mjs +1 -2
  28. package/esm2022/ui/button/src/button.component.mjs +5 -2
  29. package/esm2022/ui/charts/index.mjs +1 -11
  30. package/esm2022/ui/lib/index.mjs +1 -4
  31. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +9 -5
  32. package/esm2022/ui/multiSelect/src/multi-select.component.mjs +25 -25
  33. package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +2 -2
  34. package/esm2022/ui/selectBox/src/select-box.component.mjs +11 -34
  35. package/esm2022/ui/table/src/table.component.mjs +10 -5
  36. package/esm2022/ui/value/src/value.component.mjs +3 -2
  37. package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +14 -6
  38. package/esm2022/util/activity/aril-util-activity.mjs +5 -0
  39. package/esm2022/util/activity/index.mjs +4 -0
  40. package/esm2022/util/activity/src/activity.constants.mjs +4 -0
  41. package/esm2022/util/activity/src/activity.service.mjs +218 -0
  42. package/esm2022/util/activity/src/activity.types.mjs +2 -0
  43. package/esm2022/util/block/src/block.mjs +9 -25
  44. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +10 -5
  45. package/fesm2022/{aril-app.component-s14ruALV.mjs → aril-app.component-MjG_tPEe.mjs} +2 -1
  46. package/fesm2022/{aril-app.component-s14ruALV.mjs.map → aril-app.component-MjG_tPEe.mjs.map} +1 -1
  47. package/fesm2022/aril-boot-bridge.mjs +17 -0
  48. package/fesm2022/aril-boot-bridge.mjs.map +1 -1
  49. package/fesm2022/aril-boot-config-api.mjs +2 -1
  50. package/fesm2022/aril-boot-config-api.mjs.map +1 -1
  51. package/fesm2022/aril-boot-config-apps.mjs +36 -12
  52. package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
  53. package/fesm2022/aril-boot-config-plugins.mjs +6 -4
  54. package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
  55. package/fesm2022/aril-boot-host.mjs +4 -2
  56. package/fesm2022/aril-boot-host.mjs.map +1 -1
  57. package/fesm2022/{aril-boot-mfe-app.component-AS4MzEo2.mjs → aril-boot-mfe-app.component-DtspQ3J8.mjs} +3 -2
  58. package/fesm2022/{aril-boot-mfe-app.component-AS4MzEo2.mjs.map → aril-boot-mfe-app.component-DtspQ3J8.mjs.map} +1 -1
  59. package/fesm2022/{aril-boot-mfe-aril-boot-mfe-Ui9Cv3UC.mjs → aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs} +16 -4
  60. package/fesm2022/aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs.map +1 -0
  61. package/fesm2022/aril-boot-mfe.mjs +2 -1
  62. package/fesm2022/aril-boot-mfe.mjs.map +1 -1
  63. package/fesm2022/aril-http.mjs +11 -7
  64. package/fesm2022/aril-http.mjs.map +1 -1
  65. package/fesm2022/aril-keycloak.mjs +4 -1
  66. package/fesm2022/aril-keycloak.mjs.map +1 -1
  67. package/fesm2022/aril-selection.mjs +202 -0
  68. package/fesm2022/aril-selection.mjs.map +1 -0
  69. package/fesm2022/aril-theme-layout.mjs +14 -66
  70. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  71. package/fesm2022/aril-ui-business-enumPicker.mjs +14 -6
  72. package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
  73. package/fesm2022/aril-ui-button.mjs +5 -17
  74. package/fesm2022/aril-ui-button.mjs.map +1 -1
  75. package/fesm2022/aril-ui-charts.mjs +4 -1302
  76. package/fesm2022/aril-ui-charts.mjs.map +1 -1
  77. package/fesm2022/aril-ui-lib.mjs +10 -98
  78. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  79. package/fesm2022/aril-ui-multiSelect.mjs +24 -24
  80. package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
  81. package/fesm2022/aril-ui-relativeDateSelector.mjs +1 -1
  82. package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
  83. package/fesm2022/aril-ui-selectBox.mjs +10 -33
  84. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  85. package/fesm2022/aril-ui-table.mjs +9 -4
  86. package/fesm2022/aril-ui-table.mjs.map +1 -1
  87. package/fesm2022/aril-ui-value.mjs +2 -1
  88. package/fesm2022/aril-ui-value.mjs.map +1 -1
  89. package/fesm2022/aril-util-activity.mjs +228 -0
  90. package/fesm2022/aril-util-activity.mjs.map +1 -0
  91. package/fesm2022/aril-util-block.mjs +9 -25
  92. package/fesm2022/aril-util-block.mjs.map +1 -1
  93. package/fesm2022/aril-util-pub-sub.mjs +9 -4
  94. package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
  95. package/fesm2022/aril.mjs +18 -5
  96. package/fesm2022/aril.mjs.map +1 -1
  97. package/http/index.d.ts +0 -1
  98. package/http/src/serviceStateMethods.d.ts +1 -0
  99. package/package.json +210 -234
  100. package/scripts/mf-shared.js +47 -0
  101. package/selection/index.d.ts +1 -0
  102. package/selection/src/interfaces.d.ts +8 -0
  103. package/{theme/layout/service → selection/src}/selection-group.service.d.ts +9 -5
  104. package/theme/layout/index.d.ts +1 -1
  105. package/theme/layout/index.ts +3 -1
  106. package/theme/layout/service/breadcrumb-publisher.service.ts +18 -8
  107. package/theme/layout/service/interfaces/interfaces.d.ts +3 -17
  108. package/theme/layout/service/interfaces/interfaces.ts +6 -18
  109. package/ui/button/index.d.ts +0 -1
  110. package/ui/button/src/button.component.d.ts +2 -0
  111. package/ui/charts/index.d.ts +0 -10
  112. package/ui/lib/index.d.ts +0 -3
  113. package/ui/lib/src/form/form-error-message.directive.d.ts +4 -3
  114. package/ui/multiSelect/src/multi-select.component.d.ts +4 -5
  115. package/ui/selectBox/src/select-box.component.d.ts +2 -7
  116. package/ui/table/src/table.component.d.ts +3 -2
  117. package/util/activity/index.d.ts +3 -0
  118. package/util/activity/src/activity.constants.d.ts +3 -0
  119. package/util/activity/src/activity.service.d.ts +35 -0
  120. package/util/activity/src/activity.types.d.ts +13 -0
  121. package/util/block/src/block.d.ts +4 -10
  122. package/util/pub-sub/src/pub-sub.service.d.ts +2 -2
  123. package/esm2022/http/src/serviceMockBase.mjs +0 -4
  124. package/esm2022/theme/layout/service/selection-group.service.mjs +0 -65
  125. package/esm2022/ui/button/src/split-button.component.mjs +0 -18
  126. package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +0 -124
  127. package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +0 -164
  128. package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +0 -116
  129. package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +0 -114
  130. package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +0 -100
  131. package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +0 -117
  132. package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +0 -252
  133. package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +0 -89
  134. package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +0 -82
  135. package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +0 -137
  136. package/esm2022/ui/charts/src/theme/theme.mjs +0 -54
  137. package/esm2022/ui/dxEditor/aril-ui-dxEditor.mjs +0 -5
  138. package/esm2022/ui/dxEditor/index.mjs +0 -2
  139. package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +0 -26
  140. package/esm2022/ui/lib/src/form/form-field-builder.mjs +0 -23
  141. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +0 -49
  142. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +0 -25
  143. package/esm2022/ui/overlayPanel/aril-ui-overlayPanel.mjs +0 -5
  144. package/esm2022/ui/overlayPanel/index.mjs +0 -2
  145. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +0 -20
  146. package/esm2022/ui/tooltip/aril-ui-tooltip.mjs +0 -5
  147. package/esm2022/ui/tooltip/index.mjs +0 -2
  148. package/esm2022/ui/tooltip/src/tooltip-component.mjs +0 -23
  149. package/esm2022/ui/treeTable/aril-ui-treeTable.mjs +0 -5
  150. package/esm2022/ui/treeTable/index.mjs +0 -2
  151. package/esm2022/ui/treeTable/src/tree-table.component.mjs +0 -55
  152. package/esm2022/ui-business/operation-types-dialog/aril-ui-business-operation-types-dialog.mjs +0 -5
  153. package/esm2022/ui-business/operation-types-dialog/index.mjs +0 -2
  154. package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +0 -76
  155. package/esm2022/util/unwrap/aril-util-unwrap.mjs +0 -5
  156. package/esm2022/util/unwrap/index.mjs +0 -2
  157. package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +0 -24
  158. package/fesm2022/aril-boot-mfe-aril-boot-mfe-Ui9Cv3UC.mjs.map +0 -1
  159. package/fesm2022/aril-ui-business-operation-types-dialog.mjs +0 -83
  160. package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +0 -1
  161. package/fesm2022/aril-ui-dxEditor.mjs +0 -33
  162. package/fesm2022/aril-ui-dxEditor.mjs.map +0 -1
  163. package/fesm2022/aril-ui-overlayPanel.mjs +0 -27
  164. package/fesm2022/aril-ui-overlayPanel.mjs.map +0 -1
  165. package/fesm2022/aril-ui-tooltip.mjs +0 -30
  166. package/fesm2022/aril-ui-tooltip.mjs.map +0 -1
  167. package/fesm2022/aril-ui-treeTable.mjs +0 -62
  168. package/fesm2022/aril-ui-treeTable.mjs.map +0 -1
  169. package/fesm2022/aril-util-unwrap.mjs +0 -31
  170. package/fesm2022/aril-util-unwrap.mjs.map +0 -1
  171. package/http/src/serviceMockBase.d.ts +0 -6
  172. package/theme/layout/service/selection-group.service.ts +0 -73
  173. package/ui/button/src/split-button.component.d.ts +0 -8
  174. package/ui/charts/src/amCharts/column/column-chart.component.d.ts +0 -25
  175. package/ui/charts/src/amCharts/line/line-chart.component.d.ts +0 -26
  176. package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +0 -24
  177. package/ui/charts/src/highCharts/area/area-chart.component.d.ts +0 -20
  178. package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +0 -26
  179. package/ui/charts/src/highCharts/column/column-chart.component.d.ts +0 -28
  180. package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +0 -32
  181. package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +0 -21
  182. package/ui/charts/src/highCharts/line/line-chart.component.d.ts +0 -21
  183. package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +0 -27
  184. package/ui/charts/src/theme/theme.d.ts +0 -5
  185. package/ui/dxEditor/index.d.ts +0 -1
  186. package/ui/dxEditor/src/dx-editor.component.d.ts +0 -11
  187. package/ui/lib/src/form/form-field-builder.d.ts +0 -8
  188. package/ui/lib/src/input/common-input-validators.service.d.ts +0 -20
  189. package/ui/lib/src/input/input-disabled.directive.d.ts +0 -9
  190. package/ui/overlayPanel/index.d.ts +0 -1
  191. package/ui/overlayPanel/src/overlay-panel.component.d.ts +0 -8
  192. package/ui/tooltip/index.d.ts +0 -1
  193. package/ui/tooltip/src/tooltip-component.d.ts +0 -14
  194. package/ui/treeTable/index.d.ts +0 -1
  195. package/ui/treeTable/src/tree-table.component.d.ts +0 -21
  196. package/ui-business/operation-types-dialog/index.d.ts +0 -1
  197. package/ui-business/operation-types-dialog/src/operation-types-dialog.component.d.ts +0 -28
  198. package/util/unwrap/index.d.ts +0 -1
  199. package/util/unwrap/src/unwrap-tag.directive.d.ts +0 -9
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Thor MFE app'lerinin (host + tüm remote'lar) ORTAK Module Federation sharing politikası.
3
+ * Tek sahip: politika değişiklikleri (skip listesi, strictVersion vb.) yalnızca burada yapılır;
4
+ * tüm repoların webpack config'leri bu preset'i require eder — repo başına kopya/drift olmaz.
5
+ * (Drift'in maliyeti: tek bir remote farklı sharing rejimiyle kalırsa o remote'ta ikinci bir
6
+ * @angular/core yaşar → bridge signal reactivity'si ve DI class-identity sessizce kırılır.)
7
+ *
8
+ * Politika:
9
+ * - @angular/* (+ rxjs, transloco vb. tüm DİREKT package.json dep'leri) singleton shared →
10
+ * cross-MFE TEK @angular/core → bridge signal/effect reactivity'si MFE'ler arası çalışır.
11
+ * - `aril` SKIP (per-app): shared edilseydi entrypoint'leri farklı container'lardan çözülürdü
12
+ * (host önce `aril/provider`'ı yükler → host'un KeycloakService class'ı; remote `aril/boot/mfe`'yi
13
+ * yükler → remote'unki). keycloak-angular/primeng aril üzerinden TRANSITIVE geldiği için shareAll
14
+ * onları paylaşamaz (yalnızca direkt dep'leri okur) → iki ayrı class → DI uyuşmaz ("No provider
15
+ * for KeycloakService"). aril per-app olunca her app kendi tam aril'ini taşır → DI tutarlı;
16
+ * cross-MFE state globalThis bridge ile köprülenir (bkz. aril/boot/bridge).
17
+ * - Kütüphane default skip listeleri spread ile KORUNUR (custom array vermek ikisini de ezerdi):
18
+ * DEFAULT_SKIP_LIST = @softarc/* + @angular-architects/* (MF orkestrasyon runtime'ı MF üzerinden
19
+ * paylaşılmaz) + tslib + zone.js (eager polyfill → MF lazy shared ile "eager consumption" + NG0908).
20
+ * DEFAULT_SECONARIES_SKIP_LIST = @angular/*\/upgrade secondaries (@angular/upgrade kurulu değil).
21
+ * - `@angular-architects/module-federation-tools` SKIP: app'lerde direkt dep olduğundan shareAll
22
+ * onu paylaşırdı; kardeşleri default listede zaten skip. aril'in boot kodu import ettiğinden,
23
+ * singleton paylaşımda host'un versiyonu tüm remote'lara sessizce dayatılırdı — MF runtime
24
+ * ailesinin tamamı aril ile aynı mantıkla per-app kalır.
25
+ *
26
+ * Kullanım (webpack.config.js, app root'unda):
27
+ * const { arilMfShared } = require('./node_modules/aril/scripts/mf-shared.js');
28
+ * ...
29
+ * shared: arilMfShared()
30
+ *
31
+ * NOT: relative require ŞART — aril'in package.json `exports` haritası `./scripts/*` subpath'ini
32
+ * içermediğinden bare `require('aril/scripts/...')` ERR_PACKAGE_PATH_NOT_EXPORTED fırlatır.
33
+ */
34
+ const { shareAll, DEFAULT_SKIP_LIST, DEFAULT_SECONARIES_SKIP_LIST } = require('@angular-architects/module-federation/webpack');
35
+
36
+ function arilMfShared() {
37
+ return shareAll(
38
+ {
39
+ singleton: true,
40
+ strictVersion: false,
41
+ requiredVersion: 'auto'
42
+ },
43
+ [...DEFAULT_SKIP_LIST, ...DEFAULT_SECONARIES_SKIP_LIST, '@angular-architects/module-federation-tools', 'aril']
44
+ );
45
+ }
46
+
47
+ module.exports = { arilMfShared };
@@ -0,0 +1 @@
1
+ export * from './src/selection-group.service';
@@ -0,0 +1,8 @@
1
+ export interface SelectionRequestDTO {
2
+ groupName: string;
3
+ parentSelectionKey?: string | null;
4
+ }
5
+ export interface SelectionGroupVersionDTO {
6
+ groupName: string;
7
+ version: number;
8
+ }
@@ -1,17 +1,21 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
- import { SelectionGroupDTO } from './interfaces/interfaces';
2
+ import { SelectionGroupDTO } from 'aril/boot/bridge';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SelectionGroupService {
5
- private http;
5
+ private readonly http;
6
6
  selectionGroups: import("@angular/core").WritableSignal<{
7
7
  [key: string]: SelectionGroupDTO | null;
8
8
  }>;
9
- private loading;
10
- private loaded;
9
+ private readonly loading;
10
+ private readonly loaded;
11
+ private readonly failures;
11
12
  constructor(http: HttpClient);
13
+ private persistToLocalStorage;
12
14
  private loadStatesFromLocalStorage;
15
+ private slimForStorage;
16
+ private invalidateStaleGroups;
13
17
  fetchEnum(groupName: string, parentSelectionKey?: string): void;
14
- isLoading(groupName: string): boolean;
18
+ isLoading(key: string): boolean;
15
19
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectionGroupService, never>;
16
20
  static ɵprov: i0.ɵɵInjectableDeclaration<SelectionGroupService>;
17
21
  }
@@ -1,7 +1,7 @@
1
1
  export * from './app/layout/app.layout.component';
2
2
  export * from './app/layout/mfe.layout.component';
3
3
  export * from './service/app.menu.service';
4
- export * from './service/selection-group.service';
4
+ export { SelectionGroupService } from 'aril/selection';
5
5
  export * from './service/breadcrumb.service';
6
6
  export * from './service/app.layout.service';
7
7
  export * from './app/favorite-pages/favorite-pages.service';
@@ -1,7 +1,9 @@
1
1
  export * from './app/layout/app.layout.component';
2
2
  export * from './app/layout/mfe.layout.component';
3
3
  export * from './service/app.menu.service';
4
- export * from './service/selection-group.service';
4
+ // SelectionGroupService aril/selection entry point'ine taşındı (theme/layout → selectBox circular'ını
5
+ // kırmak için). Mevcut tüketiciler aril/theme/layout'tan import etmeye devam etsin diye re-export edilir.
6
+ export { SelectionGroupService } from 'aril/selection';
5
7
  export * from './service/breadcrumb.service';
6
8
  export * from './service/app.layout.service';
7
9
  export * from './app/favorite-pages/favorite-pages.service';
@@ -1,4 +1,4 @@
1
- import { Injectable, OnDestroy, effect, inject } from '@angular/core';
1
+ import { Injectable, OnDestroy, effect, inject, untracked } from '@angular/core';
2
2
  import { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';
3
3
 
4
4
  import { Subscription, filter } from 'rxjs';
@@ -30,12 +30,19 @@ export class BreadcrumbPublisherService implements OnDestroy {
30
30
  .pipe(filter((event) => event instanceof NavigationEnd))
31
31
  .subscribe(() => this.publishFromCurrentRoute());
32
32
 
33
- effect(() => {
34
- // keyValues sinyalini dinle; dinamik breadcrumb (örn. "{customerId}")
35
- // değerleri sonradan geldikçe listeyi yeniden yayınla.
36
- this.breadcrumbService.keyValues();
37
- this.publishFromCurrentRoute();
38
- });
33
+ effect(
34
+ () => {
35
+ // keyValues sinyalini dinle; dinamik breadcrumb (örn. "{customerId}")
36
+ // değerleri sonradan geldikçe listeyi yeniden yayınla.
37
+ this.breadcrumbService.keyValues();
38
+ this.publishFromCurrentRoute();
39
+ },
40
+ // `publishFromCurrentRoute` → `publish` içinde `bridge.breadcrumbs.set` / `bridge.pageTitle.set`
41
+ // signal write yapar; effect içinden signal write default'ta NG0600 fırlatır. aril genelindeki
42
+ // effect'lerle aynı şekilde `allowSignalWrites` ile izin veriyoruz. (MF shared core öncesi
43
+ // cross-core split bu guard'ı maskeliyordu; tek core olunca yüzeye çıktı — davranış aynı.)
44
+ { allowSignalWrites: true }
45
+ );
39
46
  }
40
47
 
41
48
  ngOnDestroy(): void {
@@ -77,7 +84,10 @@ export class BreadcrumbPublisherService implements OnDestroy {
77
84
  bridge.breadcrumbs.set(breadcrumbs);
78
85
 
79
86
  const lastLabel = breadcrumbs[breadcrumbs.length - 1]?.label ?? '';
80
- if (bridge.pageTitle() || lastLabel) {
87
+ // untracked ZORUNLU: publish, constructor'daki effect'in çağrı grafiğinde çalışır. Tracked
88
+ // okuma effect'i kendi yazdığı pageTitle'a abone eder; tab başına bir publisher instance
89
+ // olduğundan iki tab farklı title yazarak birbirini sonsuz döngüde tetiklerdi.
90
+ if (untracked(bridge.pageTitle) || lastLabel) {
81
91
  bridge.pageTitle.set(lastLabel);
82
92
  }
83
93
 
@@ -13,24 +13,10 @@ export interface Parameters {
13
13
  }
14
14
  export interface AdditionalProp {
15
15
  }
16
- export interface SelectionGroupDTO {
17
- id: number;
16
+ export type { SelectionGroupDTO, SelectionItem } from 'aril/boot/bridge';
17
+ export interface SelectionGroupVersionDTO {
18
18
  groupName: string;
19
- groupDescription: string;
20
- groupComment: string;
21
- loadStrategy: string;
22
- dynamicQuery: string;
23
- parentGroupId: number;
24
- selectionItems: SelectionItem[];
25
- }
26
- export interface SelectionItem {
27
- id: number;
28
- groupId: number;
29
- selectionKey: string;
30
- selectionDisplay: string;
31
- showOrder: number;
32
- parentSelectionKey: string;
33
- selectionMultiLanguageDisplays?: Record<string, string>;
19
+ version: number;
34
20
  }
35
21
  export interface Language {
36
22
  name: string;
@@ -22,25 +22,13 @@ export interface Parameters {
22
22
 
23
23
  export interface AdditionalProp {}
24
24
 
25
- export interface SelectionGroupDTO {
26
- id: number;
27
- groupName: string;
28
- groupDescription: string;
29
- groupComment: string;
30
- loadStrategy: string;
31
- dynamicQuery: string;
32
- parentGroupId: number;
33
- selectionItems: SelectionItem[];
34
- }
25
+ // SelectionGroupDTO + SelectionItem bridge'de tanımlı (cache state orada yaşıyor); circular'ı önlemek
26
+ // için buradan re-export edilir — mevcut tüketiciler `aril/theme/layout`'tan import etmeye devam eder.
27
+ export type { SelectionGroupDTO, SelectionItem } from 'aril/boot/bridge';
35
28
 
36
- export interface SelectionItem {
37
- id: number;
38
- groupId: number;
39
- selectionKey: string;
40
- selectionDisplay: string;
41
- showOrder: number;
42
- parentSelectionKey: string;
43
- selectionMultiLanguageDisplays?: Record<string, string>;
29
+ export interface SelectionGroupVersionDTO {
30
+ groupName: string;
31
+ version: number;
44
32
  }
45
33
 
46
34
  export interface Language {
@@ -1,2 +1 @@
1
1
  export * from './src/button.component';
2
- export * from './src/split-button.component';
@@ -1,5 +1,6 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { PrimeIcon } from 'aril/ui/lib';
3
+ import { ActivityService } from 'aril/util/activity';
3
4
  import * as i0 from "@angular/core";
4
5
  type Size = 'sm' | 'md' | 'lg';
5
6
  type Colors = 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'help' | 'danger';
@@ -18,6 +19,7 @@ export declare class ButtonComponent {
18
19
  iconPos: import("@angular/core").InputSignal<ButtonIconPosition, ButtonIconPosition>;
19
20
  color: import("@angular/core").InputSignal<Colors, Colors>;
20
21
  clickEvent: EventEmitter<Event>;
22
+ protected readonly activity: ActivityService;
21
23
  _icon: import("@angular/core").Signal<string>;
22
24
  _color: import("@angular/core").Signal<string>;
23
25
  _styleClass: import("@angular/core").Signal<string>;
@@ -1,12 +1,2 @@
1
- export * from './src/amCharts/pie/pie-chart.component';
2
- export * from './src/amCharts/column/column-chart.component';
3
- export * from './src/amCharts/line/line-chart.component';
4
- export * from './src/highCharts/pie/pie-chart.component';
5
- export * from './src/highCharts/bar/bar-chart.component';
6
- export * from './src/highCharts/column/column-chart.component';
7
- export * from './src/highCharts/area/area-chart.component';
8
1
  export * from './src/highCharts/line/line-chart-datetime-axis.component';
9
- export * from './src/highCharts/line/line-chart-series.component';
10
- export * as HighChartLine from './src/highCharts/line/line-chart.component';
11
2
  export * from './src/highCharts/gauge/solid-gauge.component';
12
- export * from './src/highCharts/heatmap/heatMap-chart.component';
package/ui/lib/index.d.ts CHANGED
@@ -1,12 +1,9 @@
1
1
  export * from './src/form/form-error-message.directive';
2
2
  export * from './src/form/form-validation';
3
- export * from './src/form/form-field-builder';
4
3
  export * from './src/grid/flex-grid.directive';
5
4
  export * from './src/grid/enum-color-picker.pipe';
6
5
  export * from './src/input/baseInput';
7
- export * from './src/input/common-input-validators.service';
8
6
  export * from './src/input/dx-input-error-message.pipe';
9
- export * from './src/input/input-disabled.directive';
10
7
  export * from './src/input/input-error-message.pipe';
11
8
  export * from './src/input/input-transforms';
12
9
  export * from './src/input/value-accessor.directive';
@@ -1,10 +1,11 @@
1
- import { ComponentRef, OnInit, ViewContainerRef } from '@angular/core';
1
+ import { ComponentRef, DestroyRef, OnInit, ViewContainerRef } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { FormErrorMessagesComponent } from './form-error-message.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class FormErrorMessageDirective implements OnInit {
6
- private viewContainerRef;
7
- constructor(viewContainerRef: ViewContainerRef);
6
+ private readonly viewContainerRef;
7
+ private readonly destroyRef;
8
+ constructor(viewContainerRef: ViewContainerRef, destroyRef: DestroyRef);
8
9
  formErrorMessage: import("@angular/core").InputSignal<FormGroup<any>, FormGroup<any>>;
9
10
  errorKeys: string[];
10
11
  componentRef: ComponentRef<FormErrorMessagesComponent>;
@@ -1,11 +1,11 @@
1
- import { HttpClient } from '@angular/common/http';
2
1
  import { TranslocoService } from '@ngneat/transloco';
2
+ import { SelectionGroupService } from 'aril/selection';
3
3
  import { BaseInputComponent } from 'aril/ui/lib';
4
4
  import { SelectBoxItem } from './interfaces';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "aril/ui/lib";
7
7
  export declare class MultiSelectComponent extends BaseInputComponent {
8
- private http;
8
+ private readonly selectionGroupService;
9
9
  translocoService: TranslocoService;
10
10
  options: import("@angular/core").InputSignal<[], []>;
11
11
  optionLabel: import("@angular/core").InputSignal<string, string>;
@@ -19,10 +19,9 @@ export declare class MultiSelectComponent extends BaseInputComponent {
19
19
  tooltipPosition: import("@angular/core").InputSignal<any, any>;
20
20
  groupName: import("@angular/core").InputSignal<string, string>;
21
21
  parentSelectionKey: import("@angular/core").InputSignal<null, null>;
22
- selectionItems: import("@angular/core").WritableSignal<SelectBoxItem[] | null>;
23
22
  showClear: import("@angular/core").InputSignal<boolean, boolean>;
24
- constructor(http: HttpClient, translocoService: TranslocoService);
25
- getSelectionItems(): Promise<void>;
23
+ selectionItems: import("@angular/core").Signal<SelectBoxItem[] | null>;
24
+ constructor(selectionGroupService: SelectionGroupService, translocoService: TranslocoService);
26
25
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent, never>;
27
26
  static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent, "aril-multi-select[ngModel], aril-multi-select[formControl], aril-multi-select[formControlName]", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "defaultLabel": { "alias": "defaultLabel"; "required": false; "isSignal": true; }; "selectedItemsLabel": { "alias": "selectedItemsLabel"; "required": false; "isSignal": true; }; "appendTo": { "alias": "appendTo"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "groupName": { "alias": "groupName"; "required": false; "isSignal": true; }; "parentSelectionKey": { "alias": "parentSelectionKey"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.ValueAccessorDirective; inputs: {}; outputs: {}; }]>;
28
27
  }
@@ -1,4 +1,3 @@
1
- import { HttpClient } from '@angular/common/http';
2
1
  import { EventEmitter } from '@angular/core';
3
2
  import { TranslocoService } from '@ngneat/transloco';
4
3
  import { BaseInputComponent } from 'aril/ui/lib';
@@ -6,25 +5,21 @@ import { SelectBoxItem } from './interfaces';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "aril/ui/lib";
8
7
  export declare class SelectBoxComponent extends BaseInputComponent {
9
- private http;
10
8
  translocoService: TranslocoService;
11
9
  itemKey: import("@angular/core").InputSignal<string, string>;
12
10
  itemText: import("@angular/core").InputSignal<string, string>;
13
- groupName: import("@angular/core").InputSignal<string, string>;
14
11
  parentSelectionKey: import("@angular/core").InputSignal<null, null>;
15
12
  tabindex: import("@angular/core").InputSignal<number, number>;
16
13
  items: import("@angular/core").InputSignal<SelectBoxItem[], SelectBoxItem[]>;
17
14
  selectedItemText: string;
18
- selectionItems: import("@angular/core").WritableSignal<SelectBoxItem[] | null>;
19
15
  /** * @description when grouped = true, option item structure { key:string, items:[] } */
20
16
  grouped: import("@angular/core").InputSignal<boolean, boolean>;
21
17
  showClearButton: import("@angular/core").InputSignal<boolean, boolean>;
22
18
  placeholder: import("@angular/core").InputSignal<string, string>;
23
19
  searchExpr: import("@angular/core").InputSignal<string | string[], string | string[]>;
24
20
  onSelectionChanged: EventEmitter<SelectBoxItem>;
25
- constructor(http: HttpClient, translocoService: TranslocoService);
21
+ constructor(translocoService: TranslocoService);
26
22
  setTitle(event?: any): void;
27
- getSelectionItems(): Promise<void>;
28
23
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectBoxComponent, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectBoxComponent, "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", never, { "itemKey": { "alias": "itemKey"; "required": false; "isSignal": true; }; "itemText": { "alias": "itemText"; "required": false; "isSignal": true; }; "groupName": { "alias": "groupName"; "required": false; "isSignal": true; }; "parentSelectionKey": { "alias": "parentSelectionKey"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "grouped": { "alias": "grouped"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "searchExpr": { "alias": "searchExpr"; "required": false; "isSignal": true; }; }, { "onSelectionChanged": "onSelectionChanged"; }, never, never, true, [{ directive: typeof i1.ValueAccessorDirective; inputs: {}; outputs: {}; }]>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectBoxComponent, "aril-select-box[ngModel], aril-select-box[formControl], aril-select-box[formControlName]", never, { "itemKey": { "alias": "itemKey"; "required": false; "isSignal": true; }; "itemText": { "alias": "itemText"; "required": false; "isSignal": true; }; "parentSelectionKey": { "alias": "parentSelectionKey"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; "isSignal": true; }; "grouped": { "alias": "grouped"; "required": false; "isSignal": true; }; "showClearButton": { "alias": "showClearButton"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "searchExpr": { "alias": "searchExpr"; "required": false; "isSignal": true; }; }, { "onSelectionChanged": "onSelectionChanged"; }, never, never, true, [{ directive: typeof i1.ValueAccessorDirective; inputs: {}; outputs: {}; }]>;
30
25
  }
@@ -65,7 +65,7 @@ export declare class TableComponent {
65
65
  globalSearchValue?: string;
66
66
  isAllSelected: boolean;
67
67
  selectedRows: any;
68
- pageOptions: readonly [5, 10, 20, 50, 100];
68
+ pageOptions: number[];
69
69
  exportColumns: Array<{
70
70
  title: string;
71
71
  dataKey: string;
@@ -76,10 +76,11 @@ export declare class TableComponent {
76
76
  private requestedEnumKeys;
77
77
  ColumnFilterTypeEnum: typeof ColumnFilterTypeEnum;
78
78
  sidebarVisible: boolean;
79
+ currentPageReportText: string;
79
80
  constructor(translocoService: TranslocoService, selectionGroupService: SelectionGroupService);
80
81
  private isInitialLoad;
81
82
  ngOnChanges(changes: SimpleChanges): void;
82
- get currentPageReportText(): string;
83
+ private buildCurrentPageReportText;
83
84
  toggleExport: (event: Event) => void;
84
85
  handleLazyLoadEvent(event: any): void;
85
86
  filterGlobal(e: any): void;
@@ -0,0 +1,3 @@
1
+ export * from './src/activity.service';
2
+ export * from './src/activity.types';
3
+ export * from './src/activity.constants';
@@ -0,0 +1,3 @@
1
+ export declare const ACTIVITY_ENDPOINT_PATH = "analytics/track";
2
+ export declare const ACTIVITY_SESSION_MARKER_PREFIX = "aril.activity.session:";
3
+ export declare const LOGGER_SESSION_HEADER = "x-aril-logger-session-id";
@@ -0,0 +1,35 @@
1
+ import { ActivityEventType } from './activity.types';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ActivityService {
4
+ private readonly keycloak;
5
+ private readonly router;
6
+ private readonly location;
7
+ private sessionId;
8
+ private username;
9
+ private previousPath;
10
+ private started;
11
+ getSessionId(): string | null;
12
+ start(options?: {
13
+ shellMode?: boolean;
14
+ }): void;
15
+ track(event: string, properties?: Record<string, unknown>, type?: ActivityEventType): void;
16
+ private readSessionIdFromKeycloak;
17
+ private captureSessionContext;
18
+ private subscribeKeycloakRefresh;
19
+ private subscribeLifecycleEvents;
20
+ private subscribeRouterEvents;
21
+ private maybeEmitPageView;
22
+ private handleSessionStart;
23
+ private purgeStaleSessionMarkers;
24
+ private sendSessionEnd;
25
+ private toAbsoluteUrl;
26
+ /**
27
+ * MFE shared scope'unda `Router` ve `Location` null (her ikisi de child injector'da yaşıyor).
28
+ * Bu durumda Angular soyutlamalarına dayanamayız; `window.location.hash`'ten okuruz —
29
+ * browser'ın sahip olduğu güncel URL.
30
+ */
31
+ private readCurrentPath;
32
+ private send;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActivityService, never>;
34
+ static ɵprov: i0.ɵɵInjectableDeclaration<ActivityService>;
35
+ }
@@ -0,0 +1,13 @@
1
+ export type ActivityEventType = 'SESSION_START' | 'SESSION_END' | 'PAGE_VIEW' | 'BUTTON_CLICK' | 'CUSTOM';
2
+ export interface ActivityEvent {
3
+ type: ActivityEventType;
4
+ sessionId: string;
5
+ username: string;
6
+ event: string;
7
+ page: string;
8
+ ip: string;
9
+ referrer: string;
10
+ traceId: string;
11
+ clientTimestamp?: number;
12
+ properties: Record<string, unknown>;
13
+ }
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ElementRef } from '@angular/core';
1
+ import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  declare const KTBlockUI: any;
4
4
  interface BlockOptions {
@@ -6,23 +6,17 @@ interface BlockOptions {
6
6
  overlayClass?: string;
7
7
  message?: string;
8
8
  }
9
- export declare class Block implements AfterViewInit {
10
- private element;
9
+ export declare class Block implements AfterViewInit, OnDestroy {
10
+ private readonly element;
11
11
  constructor(element: ElementRef);
12
12
  arilBlock: import("@angular/core").InputSignal<boolean, boolean>;
13
13
  blockOptions: import("@angular/core").InputSignal<BlockOptions, BlockOptions>;
14
14
  blockUI: typeof KTBlockUI;
15
15
  target: import("@angular/core").WritableSignal<HTMLElement>;
16
16
  ngAfterViewInit(): void;
17
+ ngOnDestroy(): void;
17
18
  getTarget(element: ElementRef): HTMLElement;
18
19
  static ɵfac: i0.ɵɵFactoryDeclaration<Block, never>;
19
20
  static ɵdir: i0.ɵɵDirectiveDeclaration<Block, "[arilBlock]", never, { "arilBlock": { "alias": "arilBlock"; "required": true; "isSignal": true; }; "blockOptions": { "alias": "blockOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
20
21
  }
21
- export declare class BlockPage {
22
- constructor();
23
- arilBlockPage: import("@angular/core").InputSignal<boolean, boolean>;
24
- blockOptions: import("@angular/core").InputSignal<BlockOptions, BlockOptions>;
25
- static ɵfac: i0.ɵɵFactoryDeclaration<BlockPage, never>;
26
- static ɵdir: i0.ɵɵDirectiveDeclaration<BlockPage, "[arilBlockPage]", never, { "arilBlockPage": { "alias": "arilBlockPage"; "required": true; "isSignal": true; }; "blockOptions": { "alias": "blockOptions"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
27
- }
28
22
  export {};
@@ -13,8 +13,8 @@ declare const PubSubEvents: {
13
13
  };
14
14
  export declare class PubSubService {
15
15
  publish(e: CustomEvent): void;
16
- subscribe(eventName: keyof typeof PubSubEvents, listener: (data: any) => void): void;
17
- unSubscribe(eventName: keyof typeof PubSubEvents, listener: () => void): void;
16
+ subscribe(eventName: keyof typeof PubSubEvents, listener: (data: any) => void): EventListener;
17
+ unSubscribe(eventName: keyof typeof PubSubEvents, handler: EventListener): void;
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<PubSubService, never>;
19
19
  static ɵprov: i0.ɵɵInjectableDeclaration<PubSubService>;
20
20
  }
@@ -1,4 +0,0 @@
1
- export function ServiceCallMock(httpMethod, proxy, serviceURL, mockAPI, message) {
2
- // return ServiceCall(httpMethod, proxy, serviceURL, message, mockAPI, true);
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZU1vY2tCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC9odHRwL3NyYy9zZXJ2aWNlTW9ja0Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLGVBQWUsQ0FDOUIsVUFBdUIsRUFDdkIsS0FBaUIsRUFDakIsVUFBa0IsRUFDbEIsT0FBZSxFQUNmLE9BQW1FO0lBRW5FLDZFQUE2RTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUE1ldGhvZHMsIFByb3h5VHlwZXMgfSBmcm9tICcuLi9saWIvZW51bXMnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlQ2FsbCB9IGZyb20gJy4vc2VydmljZUJhc2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNlcnZpY2VDYWxsTW9jayhcclxuXHRodHRwTWV0aG9kOiBIVFRQTWV0aG9kcyxcclxuXHRwcm94eTogUHJveHlUeXBlcyxcclxuXHRzZXJ2aWNlVVJMOiBzdHJpbmcsXHJcblx0bW9ja0FQSTogc3RyaW5nLFxyXG5cdG1lc3NhZ2U/OiB7IHN1Y2Nlc3M/OiBzdHJpbmc7IGVycm9yPzogc3RyaW5nOyB1c2VEZWZhdWx0OiBib29sZWFuIH1cclxuKSB7XHJcblx0Ly8gcmV0dXJuIFNlcnZpY2VDYWxsKGh0dHBNZXRob2QsIHByb3h5LCBzZXJ2aWNlVVJMLCBtZXNzYWdlLCBtb2NrQVBJLCB0cnVlKTtcclxufVxyXG4iXX0=
@@ -1,65 +0,0 @@
1
- import { Injectable, effect, signal } from '@angular/core';
2
- import { take } from 'rxjs';
3
- import { API_CONFIGS } from 'aril/boot/config/api';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common/http";
6
- export class SelectionGroupService {
7
- constructor(http) {
8
- this.http = http;
9
- this.selectionGroups = signal({});
10
- this.loading = new Map();
11
- this.loaded = new Map();
12
- this.loadStatesFromLocalStorage();
13
- effect(() => {
14
- const encodedData = btoa(encodeURI(JSON.stringify(this.selectionGroups())));
15
- localStorage.setItem('selection-groups', encodedData);
16
- });
17
- }
18
- async loadStatesFromLocalStorage() {
19
- const selectionGroups = localStorage.getItem('selection-groups');
20
- if (selectionGroups) {
21
- try {
22
- const decodedData = decodeURI(atob(selectionGroups));
23
- this.selectionGroups.set(JSON.parse(decodedData));
24
- }
25
- catch (e) {
26
- console.error(e);
27
- }
28
- }
29
- }
30
- fetchEnum(groupName, parentSelectionKey = 'ALL') {
31
- const key = groupName + '~' + parentSelectionKey;
32
- if (this.loaded.get(key) || this.loading.get(key))
33
- return;
34
- const payload = {
35
- groupName,
36
- parentSelectionKey
37
- };
38
- this.loading.set(key, true);
39
- this.loaded.set(key, false);
40
- const hostApi = API_CONFIGS.api.replace(/\/[^\/]+\/v1$/, `/host/v1`);
41
- this.http
42
- .post(hostApi + '/selection-group/load', payload)
43
- .pipe(take(1))
44
- .subscribe((selectionGroup) => {
45
- this.loading.set(key, false);
46
- this.loaded.set(key, true);
47
- this.selectionGroups.update((groups) => ({
48
- ...groups,
49
- [key]: selectionGroup
50
- }));
51
- });
52
- }
53
- isLoading(groupName) {
54
- return this.loading.get(groupName) ?? false;
55
- }
56
- 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 }); }
57
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectionGroupService, providedIn: 'root' }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SelectionGroupService, decorators: [{
60
- type: Injectable,
61
- args: [{
62
- providedIn: 'root'
63
- }]
64
- }], ctorParameters: () => [{ type: i1.HttpClient }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWdyb3VwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9zZXJ2aWNlL3NlbGVjdGlvbi1ncm91cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBT25ELE1BQU0sT0FBTyxxQkFBcUI7SUFNakMsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUxwQyxvQkFBZSxHQUFHLE1BQU0sQ0FBOEMsRUFBRSxDQUFDLENBQUM7UUFFbEUsWUFBTyxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO1FBQ3JDLFdBQU0sR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQUczQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUVsQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxZQUFZLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQywwQkFBMEI7UUFDdkMsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWpFLElBQUksZUFBZSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDO2dCQUNKLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ25ELENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEIsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCLEVBQUUscUJBQTZCLEtBQUs7UUFDOUQsTUFBTSxHQUFHLEdBQUcsU0FBUyxHQUFHLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQztRQUVqRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFFMUQsTUFBTSxPQUFPLEdBQXdCO1lBQ3BDLFNBQVM7WUFDVCxrQkFBa0I7U0FDbEIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFNUIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxJQUFJO2FBQ1AsSUFBSSxDQUFvQixPQUFPLEdBQUcsdUJBQXVCLEVBQUUsT0FBTyxDQUFDO2FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRTNCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxHQUFHLE1BQU07Z0JBQ1QsQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjO2FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQzdDLENBQUM7OEdBM0RXLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRnJCLE1BQU07OzJGQUVOLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3Rpb25Hcm91cERUTywgU2VsZWN0aW9uUmVxdWVzdERUTyB9IGZyb20gJy4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkdyb3VwU2VydmljZSB7XHJcblx0c2VsZWN0aW9uR3JvdXBzID0gc2lnbmFsPHsgW2tleTogc3RyaW5nXTogU2VsZWN0aW9uR3JvdXBEVE8gfCBudWxsIH0+KHt9KTtcclxuXHJcblx0cHJpdmF0ZSBsb2FkaW5nID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XHJcblx0cHJpdmF0ZSBsb2FkZWQgPSBuZXcgTWFwPHN0cmluZywgYm9vbGVhbj4oKTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcblx0XHR0aGlzLmxvYWRTdGF0ZXNGcm9tTG9jYWxTdG9yYWdlKCk7XHJcblxyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0Y29uc3QgZW5jb2RlZERhdGEgPSBidG9hKGVuY29kZVVSSShKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGlvbkdyb3VwcygpKSkpO1xyXG5cdFx0XHRsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2VsZWN0aW9uLWdyb3VwcycsIGVuY29kZWREYXRhKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBhc3luYyBsb2FkU3RhdGVzRnJvbUxvY2FsU3RvcmFnZSgpIHtcclxuXHRcdGNvbnN0IHNlbGVjdGlvbkdyb3VwcyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzZWxlY3Rpb24tZ3JvdXBzJyk7XHJcblxyXG5cdFx0aWYgKHNlbGVjdGlvbkdyb3Vwcykge1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdGNvbnN0IGRlY29kZWREYXRhID0gZGVjb2RlVVJJKGF0b2Ioc2VsZWN0aW9uR3JvdXBzKSk7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cHMuc2V0KEpTT04ucGFyc2UoZGVjb2RlZERhdGEpKTtcclxuXHRcdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGZldGNoRW51bShncm91cE5hbWU6IHN0cmluZywgcGFyZW50U2VsZWN0aW9uS2V5OiBzdHJpbmcgPSAnQUxMJykge1xyXG5cdFx0Y29uc3Qga2V5ID0gZ3JvdXBOYW1lICsgJ34nICsgcGFyZW50U2VsZWN0aW9uS2V5O1xyXG5cclxuXHRcdGlmICh0aGlzLmxvYWRlZC5nZXQoa2V5KSB8fCB0aGlzLmxvYWRpbmcuZ2V0KGtleSkpIHJldHVybjtcclxuXHJcblx0XHRjb25zdCBwYXlsb2FkOiBTZWxlY3Rpb25SZXF1ZXN0RFRPID0ge1xyXG5cdFx0XHRncm91cE5hbWUsXHJcblx0XHRcdHBhcmVudFNlbGVjdGlvbktleVxyXG5cdFx0fTtcclxuXHJcblx0XHR0aGlzLmxvYWRpbmcuc2V0KGtleSwgdHJ1ZSk7XHJcblx0XHR0aGlzLmxvYWRlZC5zZXQoa2V5LCBmYWxzZSk7XHJcblxyXG5cdFx0Y29uc3QgaG9zdEFwaSA9IEFQSV9DT05GSUdTLmFwaS5yZXBsYWNlKC9cXC9bXlxcL10rXFwvdjEkLywgYC9ob3N0L3YxYCk7XHJcblxyXG5cdFx0dGhpcy5odHRwXHJcblx0XHRcdC5wb3N0PFNlbGVjdGlvbkdyb3VwRFRPPihob3N0QXBpICsgJy9zZWxlY3Rpb24tZ3JvdXAvbG9hZCcsIHBheWxvYWQpXHJcblx0XHRcdC5waXBlKHRha2UoMSkpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHNlbGVjdGlvbkdyb3VwKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5sb2FkaW5nLnNldChrZXksIGZhbHNlKTtcclxuXHRcdFx0XHR0aGlzLmxvYWRlZC5zZXQoa2V5LCB0cnVlKTtcclxuXHJcblx0XHRcdFx0dGhpcy5zZWxlY3Rpb25Hcm91cHMudXBkYXRlKChncm91cHMpID0+ICh7XHJcblx0XHRcdFx0XHQuLi5ncm91cHMsXHJcblx0XHRcdFx0XHRba2V5XTogc2VsZWN0aW9uR3JvdXBcclxuXHRcdFx0XHR9KSk7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aXNMb2FkaW5nKGdyb3VwTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5sb2FkaW5nLmdldChncm91cE5hbWUpID8/IGZhbHNlO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -1,18 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
- import { SplitButtonModule } from 'primeng/splitbutton';
3
- import { ButtonComponent } from './button.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "primeng/splitbutton";
6
- export class SplitButtonComponent extends ButtonComponent {
7
- constructor() {
8
- super(...arguments);
9
- this.menu = input.required();
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SplitButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: SplitButtonComponent, isStandalone: true, selector: "aril-split-button", inputs: { menu: { classPropertyName: "menu", publicName: "menu", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<p-splitButton [label]=\"label()\" [icon]=\"_icon()\" [styleClass]=\"_styleClass()\" [model]=\"menu()\" [disabled]=\"disabled()\">\r\n</p-splitButton>\r\n", dependencies: [{ kind: "ngmodule", type: SplitButtonModule }, { kind: "component", type: i1.SplitButton, selector: "p-splitButton", inputs: ["model", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "icon", "iconPos", "label", "tooltip", "tooltipOptions", "style", "styleClass", "menuStyle", "menuStyleClass", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions", "buttonProps", "menuButtonProps", "autofocus", "disabled", "tabindex", "menuButtonDisabled", "buttonDisabled"], outputs: ["onClick", "onMenuHide", "onMenuShow", "onDropdownClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SplitButtonComponent, decorators: [{
15
- type: Component,
16
- args: [{ standalone: true, selector: 'aril-split-button', imports: [SplitButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-splitButton [label]=\"label()\" [icon]=\"_icon()\" [styleClass]=\"_styleClass()\" [model]=\"menu()\" [disabled]=\"disabled()\">\r\n</p-splitButton>\r\n" }]
17
- }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvdWkvYnV0dG9uL3NyYy9zcGxpdC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9idXR0b24vc3JjL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQVNyRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQVB6RDs7UUFRQyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYyxDQUFDO0tBQ3BDOzhHQUZZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG9PQ2RqQyw0SkFFQSwyQ0RTVyxpQkFBaUI7OzJGQUdmLG9CQUFvQjtrQkFQaEMsU0FBUztpQ0FDRyxJQUFJLFlBQ04sbUJBQW1CLFdBRXBCLENBQUMsaUJBQWlCLENBQUMsbUJBQ1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgU3BsaXRCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3NwbGl0YnV0dG9uJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1zcGxpdC1idXR0b24nLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9zcGxpdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG5cdGltcG9ydHM6IFtTcGxpdEJ1dHRvbk1vZHVsZV0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwbGl0QnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQnV0dG9uQ29tcG9uZW50IHtcclxuXHRtZW51ID0gaW5wdXQucmVxdWlyZWQ8TWVudUl0ZW1bXT4oKTtcclxufVxyXG4iLCI8cC1zcGxpdEJ1dHRvbiBbbGFiZWxdPVwibGFiZWwoKVwiIFtpY29uXT1cIl9pY29uKClcIiBbc3R5bGVDbGFzc109XCJfc3R5bGVDbGFzcygpXCIgW21vZGVsXT1cIm1lbnUoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCI+XHJcbjwvcC1zcGxpdEJ1dHRvbj5cclxuIl19