@acorex/platform 20.3.0-next.1 → 20.3.0-next.11

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 (119) hide show
  1. package/common/index.d.ts +125 -12
  2. package/core/index.d.ts +656 -100
  3. package/fesm2022/acorex-platform-auth.mjs +20 -20
  4. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-common.mjs +120 -148
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +885 -261
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +16 -16
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +1615 -662
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components.mjs +3327 -157
  14. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-designer.mjs +172 -210
  16. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs +52 -0
  18. package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-entity.mjs +4522 -1643
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +398 -89
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-native.mjs +7 -7
  24. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-runtime.mjs +40 -40
  26. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  27. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-hHXxHlFG.mjs → acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs} +7 -7
  28. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs +706 -0
  30. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs +101 -0
  32. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs +244 -0
  34. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs} +4 -4
  36. package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs.map → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs} +4 -4
  38. package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs.map → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs.map} +1 -1
  39. package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs} +4 -4
  40. package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs.map → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs.map} +1 -1
  41. package/fesm2022/acorex-platform-themes-default.mjs +64 -509
  42. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  43. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs} +24 -14
  44. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs.map +1 -0
  45. package/fesm2022/{acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs → acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs} +2 -2
  46. package/fesm2022/acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs.map +1 -0
  47. package/fesm2022/{acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs} +23 -8
  48. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs.map +1 -0
  49. package/fesm2022/{acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs} +23 -8
  50. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-themes-shared.mjs +250 -85
  52. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  53. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-lNF95FJv.mjs → acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs} +7 -7
  54. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs.map +1 -0
  55. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs +50 -0
  56. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs +42 -0
  58. package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs +55 -0
  60. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs.map +1 -0
  61. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs +50 -0
  62. package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs.map +1 -0
  63. package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs +48 -0
  64. package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs +42 -0
  66. package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs.map +1 -0
  67. package/fesm2022/{acorex-platform-widgets-file-list-popup.component-DFbPO0ud.mjs → acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs} +72 -7
  68. package/fesm2022/acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs.map +1 -0
  69. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DRsLkulH.mjs → acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs} +79 -69
  70. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs.map +1 -0
  71. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-nLZYiPnF.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs} +13 -13
  72. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs.map +1 -0
  73. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-D6kiasYM.mjs → acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs} +8 -7
  74. package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs.map +1 -0
  75. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-CCMQtH3e.mjs → acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs} +9 -14
  76. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs.map +1 -0
  77. package/fesm2022/acorex-platform-widgets.mjs +9152 -7181
  78. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  79. package/fesm2022/acorex-platform-workflow.mjs +28 -25
  80. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  81. package/layout/builder/index.d.ts +419 -185
  82. package/layout/components/index.d.ts +1129 -24
  83. package/layout/designer/index.d.ts +20 -49
  84. package/layout/entity/index.d.ts +424 -332
  85. package/layout/views/index.d.ts +129 -22
  86. package/package.json +23 -37
  87. package/widgets/index.d.ts +1908 -783
  88. package/workflow/index.d.ts +4 -1
  89. package/fesm2022/acorex-platform-themes-default-create-entity-view.component-SY0oMDoH.mjs +0 -22
  90. package/fesm2022/acorex-platform-themes-default-create-entity-view.component-SY0oMDoH.mjs.map +0 -1
  91. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-hHXxHlFG.mjs.map +0 -1
  92. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-hf4QOz_4.mjs +0 -665
  93. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-hf4QOz_4.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DC3MrDtI.mjs +0 -108
  95. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DC3MrDtI.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bb90PeHq.mjs +0 -236
  97. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bb90PeHq.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-lNF95FJv.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-BNBOATPB.mjs +0 -85
  104. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-BNBOATPB.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-BI18uzNZ.mjs +0 -55
  106. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-BI18uzNZ.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs +0 -76
  108. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-pYOQv5g8.mjs +0 -55
  110. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-pYOQv5g8.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-widgets-file-list-popup.component-DFbPO0ud.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs +0 -211
  113. package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DRsLkulH.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs +0 -40
  116. package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-nLZYiPnF.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-D6kiasYM.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-CCMQtH3e.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
2
- import { get, isPlainObject, set, isArray, merge, isNil, isObjectLike, transform, isEmpty, cloneDeep, isEqual, isUndefined, endsWith, startsWith, includes, lte, gte, lt, gt, orderBy } from 'lodash-es';
2
+ import { get, isPlainObject, set, isArray, merge, isNil, isObjectLike, transform, isEmpty, isEqual, differenceWith, union, cloneDeep, isUndefined, endsWith, startsWith, includes, lte, gte, lt, gt, orderBy } from 'lodash-es';
3
3
  import * as i0 from '@angular/core';
4
- import { computed, InjectionToken, inject, Injectable, input, effect, Directive, EventEmitter, HostListener, Output, ViewContainerRef, ElementRef, provideAppInitializer, signal, Pipe } from '@angular/core';
4
+ import { computed, InjectionToken, inject, Injectable, input, effect, Directive, EventEmitter, HostListener, Output, ViewContainerRef, ElementRef, provideAppInitializer, signal, Pipe, Injector, runInInjectionContext } from '@angular/core';
5
5
  import { Subject, interval } from 'rxjs';
6
6
  import { AXCalendarService } from '@acorex/core/date-time';
7
7
  import { startWith, map } from 'rxjs/operators';
@@ -107,7 +107,6 @@ function extractValue(value, key = 'id') {
107
107
  if (isNil(value)) {
108
108
  return null;
109
109
  }
110
- ;
111
110
  return isObjectLike(value) ? get(value, key) : value;
112
111
  }
113
112
  function cleanDeep(obj) {
@@ -126,6 +125,114 @@ function cleanDeep(obj) {
126
125
  }
127
126
  });
128
127
  }
128
+ function getDeepChanges(obj1, obj2) {
129
+ const changes = [];
130
+ function walk(o1, o2, currentPath = []) {
131
+ // If both values are deeply equal, skip
132
+ if (isEqual(o1, o2))
133
+ return;
134
+ const isObj1Nil = o1 === null || o1 === undefined;
135
+ const isObj2Nil = o2 === null || o2 === undefined;
136
+ // If obj1 is null/undefined and obj2 is not, treat entire obj2 as added
137
+ if (isObj1Nil && !isObj2Nil) {
138
+ if (isPlainObject(o2)) {
139
+ for (const key of Object.keys(o2)) {
140
+ walk(undefined, o2[key], [...currentPath, key]);
141
+ }
142
+ }
143
+ else if (Array.isArray(o2)) {
144
+ changes.push({
145
+ path: currentPath.join('.'),
146
+ oldValue: undefined,
147
+ newValue: o2,
148
+ arrayDiff: {
149
+ added: o2,
150
+ removed: [],
151
+ },
152
+ });
153
+ }
154
+ else {
155
+ changes.push({
156
+ path: currentPath.join('.'),
157
+ oldValue: undefined,
158
+ newValue: o2,
159
+ });
160
+ }
161
+ return;
162
+ }
163
+ // If obj2 is null/undefined and obj1 is not, treat entire obj1 as removed
164
+ if (!isObj1Nil && isObj2Nil) {
165
+ if (isPlainObject(o1)) {
166
+ for (const key of Object.keys(o1)) {
167
+ walk(o1[key], undefined, [...currentPath, key]);
168
+ }
169
+ }
170
+ else if (Array.isArray(o1)) {
171
+ changes.push({
172
+ path: currentPath.join('.'),
173
+ oldValue: o1,
174
+ newValue: undefined,
175
+ arrayDiff: {
176
+ added: [],
177
+ removed: o1,
178
+ },
179
+ });
180
+ }
181
+ else {
182
+ changes.push({
183
+ path: currentPath.join('.'),
184
+ oldValue: o1,
185
+ newValue: undefined,
186
+ });
187
+ }
188
+ return;
189
+ }
190
+ // If both are arrays, compare items
191
+ if (Array.isArray(o1) && Array.isArray(o2)) {
192
+ if (!isEqual(o1, o2)) {
193
+ const added = differenceWith(o2, o1, isEqual);
194
+ const removed = differenceWith(o1, o2, isEqual);
195
+ changes.push({
196
+ path: currentPath.join('.'),
197
+ oldValue: o1,
198
+ newValue: o2,
199
+ arrayDiff: {
200
+ added,
201
+ removed,
202
+ },
203
+ });
204
+ }
205
+ return;
206
+ }
207
+ // If both are plain objects, walk each key
208
+ if (isPlainObject(o1) && isPlainObject(o2)) {
209
+ const allKeys = union(Object.keys(o1), Object.keys(o2));
210
+ for (const key of allKeys) {
211
+ walk(o1[key], o2[key], [...currentPath, key]);
212
+ }
213
+ return;
214
+ }
215
+ // Primitive values or mismatched types
216
+ changes.push({
217
+ path: currentPath.join('.'),
218
+ oldValue: o1,
219
+ newValue: o2,
220
+ });
221
+ }
222
+ walk(obj1, obj2);
223
+ return changes;
224
+ }
225
+ // Method 1: Returns only changed paths
226
+ function getChangedPaths(obj1, obj2) {
227
+ return getDeepChanges(obj1, obj2).map((change) => change.path);
228
+ }
229
+ // Method 2: Returns full change entries
230
+ function getDetailedChanges(obj1, obj2) {
231
+ return getDeepChanges(obj1, obj2);
232
+ }
233
+ function getEnumValues(enumType) {
234
+ return Object.entries(enumType).map(([key, value]) => ({ id: value, title: key }));
235
+ }
129
236
 
130
237
  class AXPContextChangeEvent {
131
238
  }
@@ -440,10 +547,10 @@ class AXPDataSourceDefinitionProviderService {
440
547
  async get(name) {
441
548
  return (await this.items()).find((c) => c.name == name);
442
549
  }
443
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDataSourceDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
444
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDataSourceDefinitionProviderService, providedIn: 'root' }); }
550
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPDataSourceDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
551
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPDataSourceDefinitionProviderService, providedIn: 'root' }); }
445
552
  }
446
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDataSourceDefinitionProviderService, decorators: [{
553
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPDataSourceDefinitionProviderService, decorators: [{
447
554
  type: Injectable,
448
555
  args: [{ providedIn: 'root' }]
449
556
  }] });
@@ -476,10 +583,10 @@ class AXPElementDataDirective {
476
583
  setData(data) {
477
584
  set(this.elementRef.nativeElement, this.path(), data);
478
585
  }
479
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPElementDataDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
480
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.6", type: AXPElementDataDirective, isStandalone: true, selector: "[axp-data]", inputs: { data: { classPropertyName: "data", publicName: "axp-data", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "axp-data-path", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
586
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPElementDataDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
587
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.8", type: AXPElementDataDirective, isStandalone: true, selector: "[axp-data]", inputs: { data: { classPropertyName: "data", publicName: "axp-data", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "axp-data-path", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
481
588
  }
482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPElementDataDirective, decorators: [{
589
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPElementDataDirective, decorators: [{
483
590
  type: Directive,
484
591
  args: [{
485
592
  selector: '[axp-data]',
@@ -508,10 +615,10 @@ class AXPDblClickDirective {
508
615
  }
509
616
  this.lastTap = currentTime;
510
617
  }
511
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDblClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
512
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: AXPDblClickDirective, isStandalone: true, selector: "[onDblClick]", outputs: { onDblClick: "onDblClick" }, host: { listeners: { "dblclick": "handleOnDblClick($event)", "touchend": "onTouchEnd($event)" } }, ngImport: i0 }); }
618
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPDblClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
619
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.8", type: AXPDblClickDirective, isStandalone: true, selector: "[onDblClick]", outputs: { onDblClick: "onDblClick" }, host: { listeners: { "dblclick": "handleOnDblClick($event)", "touchend": "onTouchEnd($event)" } }, ngImport: i0 }); }
513
620
  }
514
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDblClickDirective, decorators: [{
621
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPDblClickDirective, decorators: [{
515
622
  type: Directive,
516
623
  args: [{
517
624
  selector: '[onDblClick]'
@@ -574,10 +681,10 @@ class AXPGridLayoutDirective {
574
681
  }
575
682
  });
576
683
  }
577
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPGridLayoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
578
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.6", type: AXPGridLayoutDirective, isStandalone: true, selector: "[axp-grid-layout]", inputs: { options: { classPropertyName: "options", publicName: "axp-grid-layout", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }
684
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPGridLayoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
685
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.1.8", type: AXPGridLayoutDirective, isStandalone: true, selector: "[axp-grid-layout]", inputs: { options: { classPropertyName: "options", publicName: "axp-grid-layout", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }
579
686
  }
580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPGridLayoutDirective, decorators: [{
687
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPGridLayoutDirective, decorators: [{
581
688
  type: Directive,
582
689
  args: [{
583
690
  selector: '[axp-grid-layout]',
@@ -592,15 +699,10 @@ class AXPContentCheckerDirective {
592
699
  this.elementRef = inject((ElementRef));
593
700
  this.isEmpty = computed(() => this.viewContainerRef.length === 0, ...(ngDevMode ? [{ debugName: "isEmpty" }] : []));
594
701
  }
595
- ngAfterViewInit() {
596
- setTimeout(() => {
597
- console.log(this.elementRef.nativeElement.childNodes);
598
- }, 1000);
599
- }
600
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPContentCheckerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
601
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: AXPContentCheckerDirective, isStandalone: true, selector: "[axp-content-checker]", exportAs: ["checker"], ngImport: i0 }); }
702
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPContentCheckerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
703
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.8", type: AXPContentCheckerDirective, isStandalone: true, selector: "[axp-content-checker]", exportAs: ["checker"], ngImport: i0 }); }
602
704
  }
603
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPContentCheckerDirective, decorators: [{
705
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPContentCheckerDirective, decorators: [{
604
706
  type: Directive,
605
707
  args: [{
606
708
  selector: '[axp-content-checker]',
@@ -614,10 +716,11 @@ class AXPBroadcastEventService {
614
716
  this.eventSubjects = new Map();
615
717
  this.pendingRequests = new Map();
616
718
  this.multiTabEventHistory = new Set(); // Prevent duplicate processing of the same event
719
+ this.instanceId = AXPDataGenerator.uuid();
617
720
  this.channel = new BroadcastChannel('platform_global_events');
618
721
  // Handle incoming messages
619
722
  this.channel.onmessage = (event) => {
620
- const { type, payload, requestId, response } = event.data;
723
+ const { type, payload, requestId, response, sourceId } = event.data;
621
724
  // Prevent processing the same event multiple times (multi-tab synchronization)
622
725
  if (requestId && this.multiTabEventHistory.has(requestId)) {
623
726
  return;
@@ -633,6 +736,10 @@ class AXPBroadcastEventService {
633
736
  return;
634
737
  }
635
738
  // Handle normal broadcast events
739
+ // Ignore events originating from this same instance to avoid double-delivery
740
+ if (sourceId && sourceId === this.instanceId) {
741
+ return;
742
+ }
636
743
  if (type && this.eventSubjects.has(type)) {
637
744
  this.eventSubjects.get(type).next({ data: payload, requestId });
638
745
  }
@@ -642,7 +749,11 @@ class AXPBroadcastEventService {
642
749
  * Publish an event without expecting a response
643
750
  */
644
751
  publish(type, payload) {
645
- this.channel.postMessage({ type, payload });
752
+ this.channel.postMessage({ type, payload, sourceId: this.instanceId });
753
+ // Local echo so same-tab listeners receive the event as well
754
+ if (this.eventSubjects.has(type)) {
755
+ this.eventSubjects.get(type).next({ data: payload });
756
+ }
646
757
  }
647
758
  /**
648
759
  * Subscribe to an event
@@ -665,7 +776,11 @@ class AXPBroadcastEventService {
665
776
  /**
666
777
  * Send a message and wait for a response with retry logic
667
778
  */
668
- async sendAndWaitForResponse(type, payload, options = { timeout: 60 * 60 * 1000, retries: 3, retryDelay: 1000 }) {
779
+ async sendAndWaitForResponse(type, payload, options = {
780
+ timeout: 60 * 60 * 1000,
781
+ retries: 3,
782
+ retryDelay: 1000,
783
+ }) {
669
784
  const requestId = AXPDataGenerator.uuid();
670
785
  const attemptRequest = (attempt) => {
671
786
  return new Promise((resolve, reject) => {
@@ -713,13 +828,13 @@ class AXPBroadcastEventService {
713
828
  // Cleanup multi-tab event history
714
829
  this.multiTabEventHistory.clear();
715
830
  }
716
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPBroadcastEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
717
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPBroadcastEventService, providedIn: 'root' }); }
831
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPBroadcastEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
832
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPBroadcastEventService, providedIn: 'root' }); }
718
833
  }
719
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPBroadcastEventService, decorators: [{
834
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPBroadcastEventService, decorators: [{
720
835
  type: Injectable,
721
836
  args: [{
722
- providedIn: 'root'
837
+ providedIn: 'root',
723
838
  }]
724
839
  }], ctorParameters: () => [] });
725
840
 
@@ -755,10 +870,10 @@ class AXPExpressionEvaluatorScopeProviderService {
755
870
  await this.load();
756
871
  return this.cache || {};
757
872
  }
758
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
759
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, providedIn: 'root' }); }
873
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
874
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, providedIn: 'root' }); }
760
875
  }
761
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, decorators: [{
876
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, decorators: [{
762
877
  type: Injectable,
763
878
  args: [{ providedIn: 'root' }]
764
879
  }] });
@@ -867,10 +982,10 @@ class AXPExpressionEvaluatorService {
867
982
  }
868
983
  return false;
869
984
  }
870
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
871
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPExpressionEvaluatorService, providedIn: 'root' }); }
985
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
986
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPExpressionEvaluatorService, providedIn: 'root' }); }
872
987
  }
873
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPExpressionEvaluatorService, decorators: [{
988
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPExpressionEvaluatorService, decorators: [{
874
989
  type: Injectable,
875
990
  args: [{ providedIn: 'root' }]
876
991
  }] });
@@ -895,10 +1010,10 @@ class AXPAppStartUpService {
895
1010
  loadingText.innerHTML = status;
896
1011
  }
897
1012
  }
898
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPAppStartUpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
899
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPAppStartUpService, providedIn: 'root' }); }
1013
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPAppStartUpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1014
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPAppStartUpService, providedIn: 'root' }); }
900
1015
  }
901
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPAppStartUpService, decorators: [{
1016
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPAppStartUpService, decorators: [{
902
1017
  type: Injectable,
903
1018
  args: [{
904
1019
  providedIn: 'root',
@@ -912,6 +1027,98 @@ const AXPAppStartUpProvider = provideAppInitializer(() => {
912
1027
  return initializerFn();
913
1028
  });
914
1029
 
1030
+ /**
1031
+ * Additional suggested generic actions for future consideration:
1032
+ *
1033
+ * Data & Content Actions:
1034
+ * - Search = 'search' - Search functionality
1035
+ * - Filter = 'filter' - Apply filters
1036
+ * - Sort = 'sort' - Sort data
1037
+ * - Group = 'group' - Group data
1038
+ * - Expand = 'expand' - Expand details
1039
+ * - Collapse = 'collapse' - Collapse details
1040
+ * - Pin = 'pin' - Pin to favorites
1041
+ * - Bookmark = 'bookmark' - Bookmark item
1042
+ * - Favorite = 'favorite' - Mark as favorite
1043
+ * - Star = 'star' - Star rating
1044
+ *
1045
+ * Workflow Actions:
1046
+ * - Start = 'start' - Start process/workflow
1047
+ * - Stop = 'stop' - Stop process
1048
+ * - Pause = 'pause' - Pause process
1049
+ * - Resume = 'resume' - Resume process
1050
+ * - Cancel = 'cancel' - Cancel operation
1051
+ * - Complete = 'complete' - Mark as complete
1052
+ * - Close = 'close' - Close item
1053
+ * - Reopen = 'reopen' - Reopen closed item
1054
+ * - Forward = 'forward' - Forward to next step
1055
+ * - Back = 'back' - Go back
1056
+ *
1057
+ * Communication Actions:
1058
+ * - Reply = 'reply' - Reply to message
1059
+ * - Forward = 'forward' - Forward message
1060
+ * - Notify = 'notify' - Send notification
1061
+ * - Invite = 'invite' - Invite user
1062
+ * - Join = 'join' - Join group/meeting
1063
+ * - Leave = 'leave' - Leave group/meeting
1064
+ *
1065
+ * Security Actions:
1066
+ * - Login = 'login' - User login
1067
+ * - Logout = 'logout' - User logout
1068
+ * - Block = 'block' - Block user/content
1069
+ * - Unblock = 'unblock' - Unblock user/content
1070
+ * - Ban = 'ban' - Ban user
1071
+ * - Unban = 'unban' - Unban user
1072
+ * - Verify = 'verify' - Verify identity
1073
+ * - Authenticate = 'authenticate' - Authenticate
1074
+ *
1075
+ * File & Media Actions:
1076
+ * - Open = 'open' - Open file
1077
+ * - Save = 'save' - Save file
1078
+ * - SaveAs = 'save-as' - Save as new file
1079
+ * - Attach = 'attach' - Attach file
1080
+ * - Detach = 'detach' - Detach file
1081
+ * - Compress = 'compress' - Compress files
1082
+ * - Extract = 'extract' - Extract archive
1083
+ * - Convert = 'convert' - Convert format
1084
+ * - Crop = 'crop' - Crop image
1085
+ * - Resize = 'resize' - Resize image
1086
+ *
1087
+ * System Actions:
1088
+ * - Sync = 'sync' - Synchronize data
1089
+ * - Backup = 'backup' - Create backup
1090
+ * - Restore = 'restore' - Restore from backup
1091
+ * - Reset = 'reset' - Reset to defaults
1092
+ * - Clear = 'clear' - Clear data
1093
+ * - Optimize = 'optimize' - Optimize performance
1094
+ * - Update = 'update' - Update system
1095
+ * - Install = 'install' - Install component
1096
+ * - Uninstall = 'uninstall' - Uninstall component
1097
+ * - Enable = 'enable' - Enable feature
1098
+ * - Disable = 'disable' - Disable feature
1099
+ *
1100
+ * Analytics & Monitoring:
1101
+ * - Monitor = 'monitor' - Monitor activity
1102
+ * - Track = 'track' - Track progress
1103
+ * - Analyze = 'analyze' - Analyze data
1104
+ * - Debug = 'debug' - Debug issue
1105
+ * - Log = 'log' - View logs
1106
+ * - Alert = 'alert' - Set alert
1107
+ * - Dashboard = 'dashboard' - View dashboard
1108
+ * - Metrics = 'metrics' - View metrics
1109
+ *
1110
+ * Collaboration Actions:
1111
+ * - Collaborate = 'collaborate' - Start collaboration
1112
+ * - Share = 'share' - Share content
1113
+ * - Comment = 'comment' - Add comment
1114
+ * - Like = 'like' - Like content
1115
+ * - Follow = 'follow' - Follow user/content
1116
+ * - Subscribe = 'subscribe' - Subscribe to updates
1117
+ * - Unsubscribe = 'unsubscribe' - Unsubscribe
1118
+ * - Rate = 'rate' - Rate content
1119
+ * - Review = 'review' - Review content
1120
+ * - Recommend = 'recommend' - Recommend content
1121
+ */
915
1122
  var AXPSystemActionType;
916
1123
  (function (AXPSystemActionType) {
917
1124
  AXPSystemActionType["View"] = "view";
@@ -942,17 +1149,46 @@ var AXPSystemActionType;
942
1149
  AXPSystemActionType["Rename"] = "rename";
943
1150
  AXPSystemActionType["Restore"] = "restore";
944
1151
  AXPSystemActionType["Manage"] = "manage";
1152
+ AXPSystemActionType["Info"] = "info";
1153
+ AXPSystemActionType["Confirm"] = "confirm";
1154
+ AXPSystemActionType["Design"] = "design";
1155
+ AXPSystemActionType["VersionHistory"] = "version-history";
1156
+ AXPSystemActionType["Compare"] = "compare";
1157
+ AXPSystemActionType["Comments"] = "comments";
1158
+ AXPSystemActionType["Sign"] = "sign";
1159
+ AXPSystemActionType["Setup"] = "setup";
1160
+ AXPSystemActionType["Send"] = "send";
1161
+ AXPSystemActionType["Report"] = "report";
1162
+ AXPSystemActionType["Sent"] = "sent";
1163
+ AXPSystemActionType["Review"] = "review";
1164
+ AXPSystemActionType["Generate"] = "generate";
1165
+ AXPSystemActionType["Refresh"] = "refresh";
1166
+ AXPSystemActionType["Reload"] = "reload";
1167
+ AXPSystemActionType["Search"] = "search";
1168
+ AXPSystemActionType["Filter"] = "filter";
1169
+ AXPSystemActionType["Sort"] = "sort";
1170
+ AXPSystemActionType["Start"] = "start";
1171
+ AXPSystemActionType["Stop"] = "stop";
1172
+ AXPSystemActionType["Pause"] = "pause";
1173
+ AXPSystemActionType["Cancel"] = "cancel";
1174
+ AXPSystemActionType["Close"] = "close";
1175
+ AXPSystemActionType["Complete"] = "complete";
1176
+ AXPSystemActionType["Save"] = "save";
1177
+ AXPSystemActionType["SaveAs"] = "save-as";
1178
+ AXPSystemActionType["Sync"] = "sync";
1179
+ AXPSystemActionType["Reset"] = "reset";
1180
+ AXPSystemActionType["Clear"] = "clear";
945
1181
  })(AXPSystemActionType || (AXPSystemActionType = {}));
946
- const i18n = (key) => `t('actions.${key}',{scope:'general'})`;
1182
+ const i18n = (key) => `@general:actions.${key}`;
947
1183
  const AXPSystemActions = Object.freeze({
948
1184
  View: {
949
1185
  key: AXPSystemActionType.View,
950
1186
  title: i18n('view.title'),
951
1187
  icon: 'fa-light fa-eye',
952
- color: 'default',
1188
+ color: 'primary',
953
1189
  descriptions: {
954
- button: i18n('view.button'),
955
- tooltip: i18n('view.tooltip'),
1190
+ title: i18n('view.title'),
1191
+ tooltip: i18n('view.description'),
956
1192
  permission: i18n('view.permission'),
957
1193
  audit: i18n('view.audit')
958
1194
  }
@@ -961,10 +1197,10 @@ const AXPSystemActions = Object.freeze({
961
1197
  key: AXPSystemActionType.Create,
962
1198
  title: i18n('create.title'),
963
1199
  icon: 'fa-light fa-plus',
964
- color: 'success',
1200
+ color: 'primary',
965
1201
  descriptions: {
966
- button: i18n('create.button'),
967
- tooltip: i18n('create.tooltip'),
1202
+ title: i18n('create.title'),
1203
+ tooltip: i18n('create.description'),
968
1204
  permission: i18n('create.permission'),
969
1205
  audit: i18n('create.audit')
970
1206
  }
@@ -973,10 +1209,10 @@ const AXPSystemActions = Object.freeze({
973
1209
  key: AXPSystemActionType.Update,
974
1210
  title: i18n('edit.title'),
975
1211
  icon: 'fa-light fa-pen',
976
- color: 'primary',
1212
+ color: 'default',
977
1213
  descriptions: {
978
- button: i18n('edit.button'),
979
- tooltip: i18n('edit.tooltip'),
1214
+ title: i18n('edit.title'),
1215
+ tooltip: i18n('edit.description'),
980
1216
  permission: i18n('edit.permission'),
981
1217
  audit: i18n('edit.audit')
982
1218
  }
@@ -988,8 +1224,8 @@ const AXPSystemActions = Object.freeze({
988
1224
  color: 'danger',
989
1225
  critical: true,
990
1226
  descriptions: {
991
- button: i18n('delete.button'),
992
- tooltip: i18n('delete.tooltip'),
1227
+ title: i18n('delete.title'),
1228
+ tooltip: i18n('delete.description'),
993
1229
  permission: i18n('delete.permission'),
994
1230
  audit: i18n('delete.audit')
995
1231
  }
@@ -1001,8 +1237,8 @@ const AXPSystemActions = Object.freeze({
1001
1237
  color: 'success',
1002
1238
  critical: true,
1003
1239
  descriptions: {
1004
- button: i18n('approve.button'),
1005
- tooltip: i18n('approve.tooltip'),
1240
+ title: i18n('approve.title'),
1241
+ tooltip: i18n('approve.description'),
1006
1242
  permission: i18n('approve.permission'),
1007
1243
  audit: i18n('approve.audit')
1008
1244
  }
@@ -1013,8 +1249,8 @@ const AXPSystemActions = Object.freeze({
1013
1249
  icon: 'fa-light fa-paper-plane',
1014
1250
  color: 'primary',
1015
1251
  descriptions: {
1016
- button: i18n('submit.button'),
1017
- tooltip: i18n('submit.tooltip'),
1252
+ title: i18n('submit.title'),
1253
+ tooltip: i18n('submit.description'),
1018
1254
  permission: i18n('submit.permission'),
1019
1255
  audit: i18n('submit.audit')
1020
1256
  }
@@ -1026,8 +1262,8 @@ const AXPSystemActions = Object.freeze({
1026
1262
  color: 'danger',
1027
1263
  critical: true,
1028
1264
  descriptions: {
1029
- button: i18n('reject.button'),
1030
- tooltip: i18n('reject.tooltip'),
1265
+ title: i18n('reject.title'),
1266
+ tooltip: i18n('reject.description'),
1031
1267
  permission: i18n('reject.permission'),
1032
1268
  audit: i18n('reject.audit')
1033
1269
  }
@@ -1038,8 +1274,8 @@ const AXPSystemActions = Object.freeze({
1038
1274
  icon: 'fa-light fa-download',
1039
1275
  color: 'default',
1040
1276
  descriptions: {
1041
- button: i18n('export.button'),
1042
- tooltip: i18n('export.tooltip'),
1277
+ title: i18n('export.title'),
1278
+ tooltip: i18n('export.description'),
1043
1279
  permission: i18n('export.permission'),
1044
1280
  audit: i18n('export.audit')
1045
1281
  }
@@ -1050,8 +1286,8 @@ const AXPSystemActions = Object.freeze({
1050
1286
  icon: 'fa-light fa-upload',
1051
1287
  color: 'default',
1052
1288
  descriptions: {
1053
- button: i18n('import.button'),
1054
- tooltip: i18n('import.tooltip'),
1289
+ title: i18n('import.title'),
1290
+ tooltip: i18n('import.description'),
1055
1291
  permission: i18n('import.permission'),
1056
1292
  audit: i18n('import.audit')
1057
1293
  }
@@ -1062,8 +1298,8 @@ const AXPSystemActions = Object.freeze({
1062
1298
  icon: 'fa-light fa-print',
1063
1299
  color: 'default',
1064
1300
  descriptions: {
1065
- button: i18n('print.button'),
1066
- tooltip: i18n('print.tooltip'),
1301
+ title: i18n('print.title'),
1302
+ tooltip: i18n('print.description'),
1067
1303
  permission: i18n('print.permission'),
1068
1304
  audit: i18n('print.audit')
1069
1305
  }
@@ -1074,8 +1310,8 @@ const AXPSystemActions = Object.freeze({
1074
1310
  icon: 'fa-light fa-clone',
1075
1311
  color: 'warning',
1076
1312
  descriptions: {
1077
- button: i18n('duplicate.button'),
1078
- tooltip: i18n('duplicate.tooltip'),
1313
+ title: i18n('duplicate.title'),
1314
+ tooltip: i18n('duplicate.description'),
1079
1315
  permission: i18n('duplicate.permission'),
1080
1316
  audit: i18n('duplicate.audit')
1081
1317
  }
@@ -1084,10 +1320,10 @@ const AXPSystemActions = Object.freeze({
1084
1320
  key: AXPSystemActionType.Archive,
1085
1321
  title: i18n('archive.title'),
1086
1322
  icon: 'fa-light fa-box-archive',
1087
- color: 'neutral',
1323
+ color: 'default',
1088
1324
  descriptions: {
1089
- button: i18n('archive.button'),
1090
- tooltip: i18n('archive.tooltip'),
1325
+ title: i18n('archive.title'),
1326
+ tooltip: i18n('archive.description'),
1091
1327
  permission: i18n('archive.permission'),
1092
1328
  audit: i18n('archive.audit')
1093
1329
  }
@@ -1096,10 +1332,10 @@ const AXPSystemActions = Object.freeze({
1096
1332
  key: AXPSystemActionType.Restore,
1097
1333
  title: i18n('restore.title'),
1098
1334
  icon: 'fa-light fa-arrow-rotate-left',
1099
- color: 'info',
1335
+ color: 'default',
1100
1336
  descriptions: {
1101
- button: i18n('restore.button'),
1102
- tooltip: i18n('restore.tooltip'),
1337
+ title: i18n('restore.title'),
1338
+ tooltip: i18n('restore.description'),
1103
1339
  permission: i18n('restore.permission'),
1104
1340
  audit: i18n('restore.audit')
1105
1341
  }
@@ -1110,8 +1346,8 @@ const AXPSystemActions = Object.freeze({
1110
1346
  icon: 'fa-light fa-user-plus',
1111
1347
  color: 'primary',
1112
1348
  descriptions: {
1113
- button: i18n('assign.button'),
1114
- tooltip: i18n('assign.tooltip'),
1349
+ title: i18n('assign.title'),
1350
+ tooltip: i18n('assign.description'),
1115
1351
  permission: i18n('assign.permission'),
1116
1352
  audit: i18n('assign.audit')
1117
1353
  }
@@ -1122,8 +1358,8 @@ const AXPSystemActions = Object.freeze({
1122
1358
  icon: 'fa-light fa-lock',
1123
1359
  color: 'warning',
1124
1360
  descriptions: {
1125
- button: i18n('lock.button'),
1126
- tooltip: i18n('lock.tooltip'),
1361
+ title: i18n('lock.title'),
1362
+ tooltip: i18n('lock.description'),
1127
1363
  permission: i18n('lock.permission'),
1128
1364
  audit: i18n('lock.audit')
1129
1365
  }
@@ -1134,8 +1370,8 @@ const AXPSystemActions = Object.freeze({
1134
1370
  icon: 'fa-light fa-unlock',
1135
1371
  color: 'success',
1136
1372
  descriptions: {
1137
- button: i18n('unlock.button'),
1138
- tooltip: i18n('unlock.tooltip'),
1373
+ title: i18n('unlock.title'),
1374
+ tooltip: i18n('unlock.description'),
1139
1375
  permission: i18n('unlock.permission'),
1140
1376
  audit: i18n('unlock.audit')
1141
1377
  }
@@ -1146,8 +1382,8 @@ const AXPSystemActions = Object.freeze({
1146
1382
  icon: 'fa-light fa-share-nodes',
1147
1383
  color: 'info',
1148
1384
  descriptions: {
1149
- button: i18n('share.button'),
1150
- tooltip: i18n('share.tooltip'),
1385
+ title: i18n('share.title'),
1386
+ tooltip: i18n('share.description'),
1151
1387
  permission: i18n('share.permission'),
1152
1388
  audit: i18n('share.audit')
1153
1389
  }
@@ -1158,8 +1394,8 @@ const AXPSystemActions = Object.freeze({
1158
1394
  icon: 'fa-light fa-sliders',
1159
1395
  color: 'primary',
1160
1396
  descriptions: {
1161
- button: i18n('configure.button'),
1162
- tooltip: i18n('configure.tooltip'),
1397
+ title: i18n('configure.title'),
1398
+ tooltip: i18n('configure.description'),
1163
1399
  permission: i18n('configure.permission'),
1164
1400
  audit: i18n('configure.audit')
1165
1401
  }
@@ -1170,8 +1406,8 @@ const AXPSystemActions = Object.freeze({
1170
1406
  icon: 'fa-light fa-arrow-down-up-across-line',
1171
1407
  color: 'default',
1172
1408
  descriptions: {
1173
- button: i18n('reorder.button'),
1174
- tooltip: i18n('reorder.tooltip'),
1409
+ title: i18n('reorder.title'),
1410
+ tooltip: i18n('reorder.description'),
1175
1411
  permission: i18n('reorder.permission'),
1176
1412
  audit: i18n('reorder.audit')
1177
1413
  }
@@ -1182,8 +1418,8 @@ const AXPSystemActions = Object.freeze({
1182
1418
  icon: 'fa-light fa-magnifying-glass',
1183
1419
  color: 'default',
1184
1420
  descriptions: {
1185
- button: i18n('preview.button'),
1186
- tooltip: i18n('preview.tooltip'),
1421
+ title: i18n('preview.title'),
1422
+ tooltip: i18n('preview.description'),
1187
1423
  permission: i18n('preview.permission'),
1188
1424
  audit: i18n('preview.audit')
1189
1425
  }
@@ -1194,8 +1430,8 @@ const AXPSystemActions = Object.freeze({
1194
1430
  icon: 'fa-light fa-globe',
1195
1431
  color: 'success',
1196
1432
  descriptions: {
1197
- button: i18n('publish.button'),
1198
- tooltip: i18n('publish.tooltip'),
1433
+ title: i18n('publish.title'),
1434
+ tooltip: i18n('publish.description'),
1199
1435
  permission: i18n('publish.permission'),
1200
1436
  audit: i18n('publish.audit')
1201
1437
  }
@@ -1206,8 +1442,8 @@ const AXPSystemActions = Object.freeze({
1206
1442
  icon: 'fa-light fa-globe-slash',
1207
1443
  color: 'danger',
1208
1444
  descriptions: {
1209
- button: i18n('unpublish.button'),
1210
- tooltip: i18n('unpublish.tooltip'),
1445
+ title: i18n('unpublish.title'),
1446
+ tooltip: i18n('unpublish.description'),
1211
1447
  permission: i18n('unpublish.permission'),
1212
1448
  audit: i18n('unpublish.audit')
1213
1449
  }
@@ -1216,10 +1452,10 @@ const AXPSystemActions = Object.freeze({
1216
1452
  key: AXPSystemActionType.Upload,
1217
1453
  title: i18n('upload.title'),
1218
1454
  icon: 'fa-light fa-upload',
1219
- color: 'primary',
1455
+ color: 'default',
1220
1456
  descriptions: {
1221
- button: i18n('upload.button'),
1222
- tooltip: i18n('upload.tooltip'),
1457
+ title: i18n('upload.title'),
1458
+ tooltip: i18n('upload.description'),
1223
1459
  permission: i18n('upload.permission'),
1224
1460
  audit: i18n('upload.audit')
1225
1461
  }
@@ -1228,10 +1464,10 @@ const AXPSystemActions = Object.freeze({
1228
1464
  key: AXPSystemActionType.Download,
1229
1465
  title: i18n('download.title'),
1230
1466
  icon: 'fa-light fa-download',
1231
- color: 'success',
1467
+ color: 'default',
1232
1468
  descriptions: {
1233
- button: i18n('download.button'),
1234
- tooltip: i18n('download.tooltip'),
1469
+ title: i18n('download.title'),
1470
+ tooltip: i18n('download.description'),
1235
1471
  permission: i18n('download.permission'),
1236
1472
  audit: i18n('download.audit')
1237
1473
  }
@@ -1240,10 +1476,10 @@ const AXPSystemActions = Object.freeze({
1240
1476
  key: AXPSystemActionType.Copy,
1241
1477
  title: i18n('copy.title'),
1242
1478
  icon: 'fa-light fa-copy',
1243
- color: 'primary',
1479
+ color: 'default',
1244
1480
  descriptions: {
1245
- button: i18n('copy.button'),
1246
- tooltip: i18n('copy.tooltip'),
1481
+ title: i18n('copy.title'),
1482
+ tooltip: i18n('copy.description'),
1247
1483
  permission: i18n('copy.permission'),
1248
1484
  audit: i18n('copy.audit')
1249
1485
  }
@@ -1254,8 +1490,8 @@ const AXPSystemActions = Object.freeze({
1254
1490
  icon: 'fa-light fa-arrow-right-arrow-left',
1255
1491
  color: 'default',
1256
1492
  descriptions: {
1257
- button: i18n('move.button'),
1258
- tooltip: i18n('move.tooltip'),
1493
+ title: i18n('move.title'),
1494
+ tooltip: i18n('move.description'),
1259
1495
  permission: i18n('move.permission'),
1260
1496
  audit: i18n('move.audit')
1261
1497
  }
@@ -1266,16 +1502,430 @@ const AXPSystemActions = Object.freeze({
1266
1502
  icon: 'fa-light fa-pen',
1267
1503
  color: 'default',
1268
1504
  descriptions: {
1269
- button: i18n('rename.button'),
1270
- tooltip: i18n('rename.tooltip'),
1505
+ title: i18n('rename.title'),
1506
+ tooltip: i18n('rename.description'),
1271
1507
  permission: i18n('rename.permission'),
1272
1508
  audit: i18n('rename.audit')
1273
1509
  }
1274
1510
  },
1511
+ Manage: {
1512
+ key: AXPSystemActionType.Manage,
1513
+ title: i18n('manage.title'),
1514
+ icon: 'fa-light fa-gear',
1515
+ color: 'default',
1516
+ descriptions: {
1517
+ title: i18n('manage.title'),
1518
+ tooltip: i18n('manage.description'),
1519
+ permission: i18n('manage.permission'),
1520
+ audit: i18n('manage.audit')
1521
+ }
1522
+ },
1523
+ Info: {
1524
+ key: AXPSystemActionType.Info,
1525
+ title: i18n('info.title'),
1526
+ icon: 'fa-light fa-info',
1527
+ color: 'default',
1528
+ descriptions: {
1529
+ title: i18n('info.title'),
1530
+ tooltip: i18n('info.description'),
1531
+ permission: i18n('info.permission'),
1532
+ audit: i18n('info.audit')
1533
+ }
1534
+ },
1535
+ Confirm: {
1536
+ key: AXPSystemActionType.Confirm,
1537
+ title: i18n('confirm.title'),
1538
+ icon: 'fa-light fa-check',
1539
+ color: 'success',
1540
+ descriptions: {
1541
+ title: i18n('confirm.title'),
1542
+ tooltip: i18n('confirm.description'),
1543
+ permission: i18n('confirm.permission'),
1544
+ audit: i18n('confirm.audit')
1545
+ }
1546
+ },
1547
+ Design: {
1548
+ key: AXPSystemActionType.Design,
1549
+ title: i18n('design.title'),
1550
+ icon: 'fa-light fa-paintbrush',
1551
+ color: 'default',
1552
+ descriptions: {
1553
+ title: i18n('design.title'),
1554
+ tooltip: i18n('design.description'),
1555
+ permission: i18n('design.permission'),
1556
+ audit: i18n('design.audit')
1557
+ }
1558
+ },
1559
+ VersionHistory: {
1560
+ key: AXPSystemActionType.VersionHistory,
1561
+ title: i18n('version-history.title'),
1562
+ icon: 'fa-light fa-history',
1563
+ color: 'default',
1564
+ descriptions: {
1565
+ title: i18n('version-history.title'),
1566
+ tooltip: i18n('version-history.description'),
1567
+ permission: i18n('version-history.permission'),
1568
+ audit: i18n('version-history.audit')
1569
+ }
1570
+ },
1571
+ Compare: {
1572
+ key: AXPSystemActionType.Compare,
1573
+ title: i18n('compare.title'),
1574
+ icon: 'fa-light fa-code-compare',
1575
+ color: 'default',
1576
+ descriptions: {
1577
+ title: i18n('compare.title'),
1578
+ tooltip: i18n('compare.description'),
1579
+ permission: i18n('compare.permission'),
1580
+ audit: i18n('compare.audit')
1581
+ }
1582
+ },
1583
+ Comments: {
1584
+ key: AXPSystemActionType.Comments,
1585
+ title: i18n('comments.title'),
1586
+ icon: 'fa-light fa-comments',
1587
+ color: 'default',
1588
+ descriptions: {
1589
+ title: i18n('comments.title'),
1590
+ tooltip: i18n('comments.description'),
1591
+ permission: i18n('comments.permission'),
1592
+ audit: i18n('comments.audit')
1593
+ }
1594
+ },
1595
+ Sign: {
1596
+ key: AXPSystemActionType.Sign,
1597
+ title: i18n('sign.title'),
1598
+ icon: 'fa-light fa-signature',
1599
+ color: 'default',
1600
+ descriptions: {
1601
+ title: i18n('sign.title'),
1602
+ tooltip: i18n('sign.description'),
1603
+ permission: i18n('sign.permission'),
1604
+ audit: i18n('sign.audit')
1605
+ }
1606
+ },
1607
+ Setup: {
1608
+ key: AXPSystemActionType.Setup,
1609
+ title: i18n('setup.title'),
1610
+ icon: 'fa-light fa-cog',
1611
+ color: 'default',
1612
+ descriptions: {
1613
+ title: i18n('setup.title'),
1614
+ tooltip: i18n('setup.description'),
1615
+ permission: i18n('setup.permission'),
1616
+ audit: i18n('setup.audit')
1617
+ }
1618
+ },
1619
+ Send: {
1620
+ key: AXPSystemActionType.Send,
1621
+ title: i18n('send.title'),
1622
+ icon: 'fa-light fa-envelope',
1623
+ color: 'default',
1624
+ descriptions: {
1625
+ title: i18n('send.title'),
1626
+ tooltip: i18n('send.description'),
1627
+ permission: i18n('send.permission'),
1628
+ audit: i18n('send.audit')
1629
+ }
1630
+ },
1631
+ Report: {
1632
+ key: AXPSystemActionType.Report,
1633
+ title: i18n('report.title'),
1634
+ icon: 'fa-light fa-chart-line',
1635
+ color: 'default',
1636
+ descriptions: {
1637
+ title: i18n('report.title'),
1638
+ tooltip: i18n('report.description'),
1639
+ permission: i18n('report.permission'),
1640
+ audit: i18n('report.audit')
1641
+ }
1642
+ },
1643
+ Sent: {
1644
+ key: AXPSystemActionType.Sent,
1645
+ title: i18n('sent.title'),
1646
+ icon: 'fa-light fa-paper-plane',
1647
+ color: 'default',
1648
+ descriptions: {
1649
+ title: i18n('sent.title'),
1650
+ tooltip: i18n('sent.description'),
1651
+ permission: i18n('sent.permission'),
1652
+ audit: i18n('sent.audit')
1653
+ }
1654
+ },
1655
+ Review: {
1656
+ key: AXPSystemActionType.Review,
1657
+ title: i18n('review.title'),
1658
+ icon: 'fa-light fa-eye',
1659
+ color: 'default',
1660
+ descriptions: {
1661
+ title: i18n('review.title'),
1662
+ tooltip: i18n('review.description'),
1663
+ permission: i18n('review.permission'),
1664
+ audit: i18n('review.audit')
1665
+ }
1666
+ },
1667
+ Generate: {
1668
+ key: AXPSystemActionType.Generate,
1669
+ title: i18n('generate.title'),
1670
+ icon: 'fa-light fa-wand-magic-sparkles',
1671
+ color: 'primary',
1672
+ descriptions: {
1673
+ title: i18n('generate.title'),
1674
+ tooltip: i18n('generate.description'),
1675
+ permission: i18n('generate.permission'),
1676
+ audit: i18n('generate.audit')
1677
+ }
1678
+ },
1679
+ Refresh: {
1680
+ key: AXPSystemActionType.Refresh,
1681
+ title: i18n('refresh.title'),
1682
+ icon: 'fa-light fa-arrows-rotate',
1683
+ color: 'default',
1684
+ descriptions: {
1685
+ title: i18n('refresh.title'),
1686
+ tooltip: i18n('refresh.description'),
1687
+ permission: i18n('refresh.permission'),
1688
+ audit: i18n('refresh.audit')
1689
+ }
1690
+ },
1691
+ Reload: {
1692
+ key: AXPSystemActionType.Reload,
1693
+ title: i18n('reload.title'),
1694
+ icon: 'fa-light fa-arrows-rotate',
1695
+ color: 'default',
1696
+ descriptions: {
1697
+ title: i18n('reload.title'),
1698
+ tooltip: i18n('reload.description'),
1699
+ permission: i18n('reload.permission'),
1700
+ audit: i18n('reload.audit')
1701
+ }
1702
+ },
1703
+ Search: {
1704
+ key: AXPSystemActionType.Search,
1705
+ title: i18n('search.title'),
1706
+ icon: 'fa-light fa-magnifying-glass',
1707
+ color: 'default',
1708
+ descriptions: {
1709
+ title: i18n('search.title'),
1710
+ tooltip: i18n('search.description'),
1711
+ permission: i18n('search.permission'),
1712
+ audit: i18n('search.audit')
1713
+ }
1714
+ },
1715
+ Filter: {
1716
+ key: AXPSystemActionType.Filter,
1717
+ title: i18n('filter.title'),
1718
+ icon: 'fa-light fa-filter',
1719
+ color: 'default',
1720
+ descriptions: {
1721
+ title: i18n('filter.title'),
1722
+ tooltip: i18n('filter.description'),
1723
+ permission: i18n('filter.permission'),
1724
+ audit: i18n('filter.audit')
1725
+ }
1726
+ },
1727
+ Sort: {
1728
+ key: AXPSystemActionType.Sort,
1729
+ title: i18n('sort.title'),
1730
+ icon: 'fa-light fa-arrow-down-up-across-line',
1731
+ color: 'default',
1732
+ descriptions: {
1733
+ title: i18n('sort.title'),
1734
+ tooltip: i18n('sort.description'),
1735
+ permission: i18n('sort.permission'),
1736
+ audit: i18n('sort.audit')
1737
+ }
1738
+ },
1739
+ Start: {
1740
+ key: AXPSystemActionType.Start,
1741
+ title: i18n('start.title'),
1742
+ icon: 'fa-light fa-play',
1743
+ color: 'success',
1744
+ descriptions: {
1745
+ title: i18n('start.title'),
1746
+ tooltip: i18n('start.description'),
1747
+ permission: i18n('start.permission'),
1748
+ audit: i18n('start.audit')
1749
+ }
1750
+ },
1751
+ Stop: {
1752
+ key: AXPSystemActionType.Stop,
1753
+ title: i18n('stop.title'),
1754
+ icon: 'fa-light fa-stop',
1755
+ color: 'danger',
1756
+ critical: true,
1757
+ descriptions: {
1758
+ title: i18n('stop.title'),
1759
+ tooltip: i18n('stop.description'),
1760
+ permission: i18n('stop.permission'),
1761
+ audit: i18n('stop.audit')
1762
+ }
1763
+ },
1764
+ Pause: {
1765
+ key: AXPSystemActionType.Pause,
1766
+ title: i18n('pause.title'),
1767
+ icon: 'fa-light fa-pause',
1768
+ color: 'warning',
1769
+ descriptions: {
1770
+ title: i18n('pause.title'),
1771
+ tooltip: i18n('pause.description'),
1772
+ permission: i18n('pause.permission'),
1773
+ audit: i18n('pause.audit')
1774
+ }
1775
+ },
1776
+ Cancel: {
1777
+ key: AXPSystemActionType.Cancel,
1778
+ title: i18n('cancel.title'),
1779
+ icon: 'fa-light fa-xmark',
1780
+ color: 'danger',
1781
+ critical: true,
1782
+ descriptions: {
1783
+ title: i18n('cancel.title'),
1784
+ tooltip: i18n('cancel.description'),
1785
+ permission: i18n('cancel.permission'),
1786
+ audit: i18n('cancel.audit')
1787
+ }
1788
+ },
1789
+ Close: {
1790
+ key: AXPSystemActionType.Close,
1791
+ title: i18n('close.title'),
1792
+ icon: 'fa-light fa-xmark',
1793
+ color: 'default',
1794
+ descriptions: {
1795
+ title: i18n('close.title'),
1796
+ tooltip: i18n('close.description'),
1797
+ permission: i18n('close.permission'),
1798
+ audit: i18n('close.audit')
1799
+ }
1800
+ },
1801
+ Complete: {
1802
+ key: AXPSystemActionType.Complete,
1803
+ title: i18n('complete.title'),
1804
+ icon: 'fa-light fa-check',
1805
+ color: 'success',
1806
+ descriptions: {
1807
+ title: i18n('complete.title'),
1808
+ tooltip: i18n('complete.description'),
1809
+ permission: i18n('complete.permission'),
1810
+ audit: i18n('complete.audit')
1811
+ }
1812
+ },
1813
+ Save: {
1814
+ key: AXPSystemActionType.Save,
1815
+ title: i18n('save.title'),
1816
+ icon: 'fa-light fa-floppy-disk',
1817
+ color: 'primary',
1818
+ descriptions: {
1819
+ title: i18n('save.title'),
1820
+ tooltip: i18n('save.description'),
1821
+ permission: i18n('save.permission'),
1822
+ audit: i18n('save.audit')
1823
+ }
1824
+ },
1825
+ SaveAs: {
1826
+ key: AXPSystemActionType.SaveAs,
1827
+ title: i18n('save-as.title'),
1828
+ icon: 'fa-light fa-floppy-disk',
1829
+ color: 'default',
1830
+ descriptions: {
1831
+ title: i18n('save-as.title'),
1832
+ tooltip: i18n('save-as.description'),
1833
+ permission: i18n('save-as.permission'),
1834
+ audit: i18n('save-as.audit')
1835
+ }
1836
+ },
1837
+ Sync: {
1838
+ key: AXPSystemActionType.Sync,
1839
+ title: i18n('sync.title'),
1840
+ icon: 'fa-light fa-arrows-rotate',
1841
+ color: 'default',
1842
+ descriptions: {
1843
+ title: i18n('sync.title'),
1844
+ tooltip: i18n('sync.description'),
1845
+ permission: i18n('sync.permission'),
1846
+ audit: i18n('sync.audit')
1847
+ }
1848
+ },
1849
+ Reset: {
1850
+ key: AXPSystemActionType.Reset,
1851
+ title: i18n('reset.title'),
1852
+ icon: 'fa-light fa-arrow-rotate-left',
1853
+ color: 'warning',
1854
+ critical: true,
1855
+ descriptions: {
1856
+ title: i18n('reset.title'),
1857
+ tooltip: i18n('reset.description'),
1858
+ permission: i18n('reset.permission'),
1859
+ audit: i18n('reset.audit')
1860
+ }
1861
+ },
1862
+ Clear: {
1863
+ key: AXPSystemActionType.Clear,
1864
+ title: i18n('clear.title'),
1865
+ icon: 'fa-light fa-eraser',
1866
+ color: 'default',
1867
+ descriptions: {
1868
+ title: i18n('clear.title'),
1869
+ tooltip: i18n('clear.description'),
1870
+ permission: i18n('clear.permission'),
1871
+ audit: i18n('clear.audit')
1872
+ }
1873
+ },
1275
1874
  });
1276
1875
  function getSystemActions(type) {
1277
1876
  return Object.values(AXPSystemActions).find(action => action.key === type);
1278
1877
  }
1878
+ /**
1879
+ * Resolves the visual appearance (color and icon) for entity actions
1880
+ * using the system actions from the core module.
1881
+ */
1882
+ function resolveActionLook(actionType) {
1883
+ // Try to get system action first
1884
+ const systemActionType = actionType;
1885
+ if (systemActionType) {
1886
+ const systemAction = getSystemActions(systemActionType);
1887
+ if (systemAction) {
1888
+ return {
1889
+ color: (systemAction.color || 'default'),
1890
+ icon: systemAction.icon || ''
1891
+ };
1892
+ }
1893
+ }
1894
+ // Fallback for unknown actions
1895
+ return {
1896
+ color: 'default',
1897
+ icon: ''
1898
+ };
1899
+ }
1900
+ /**
1901
+ * Resolves the title, description, icon and color for button actions
1902
+ * using the system actions from the core module.
1903
+ * @param actionType
1904
+ * @returns
1905
+ */
1906
+ function getActionButton(actionType) {
1907
+ const systemActionType = actionType;
1908
+ if (systemActionType) {
1909
+ const systemAction = getSystemActions(systemActionType);
1910
+ if (systemAction) {
1911
+ return {
1912
+ name: actionType,
1913
+ icon: systemAction.icon || '',
1914
+ color: systemAction.color || 'default',
1915
+ title: systemAction.title,
1916
+ description: systemAction.descriptions.title
1917
+ };
1918
+ }
1919
+ }
1920
+ // Fallback for unknown actions
1921
+ return {
1922
+ name: actionType,
1923
+ title: actionType,
1924
+ description: `Perform ${actionType} action`,
1925
+ icon: '',
1926
+ color: 'default'
1927
+ };
1928
+ }
1279
1929
 
1280
1930
  function getNestedKeys(obj, prefix = '') {
1281
1931
  let keys = [];
@@ -1384,10 +2034,10 @@ class AXPCountdownPipe {
1384
2034
  updateTargetDate(value) {
1385
2035
  this.targetDate = new Date(value).getTime();
1386
2036
  }
1387
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPCountdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1388
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXPCountdownPipe, isStandalone: true, name: "countdown", pure: false }); }
2037
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPCountdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2038
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: AXPCountdownPipe, isStandalone: true, name: "countdown", pure: false }); }
1389
2039
  }
1390
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPCountdownPipe, decorators: [{
2040
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPCountdownPipe, decorators: [{
1391
2041
  type: Pipe,
1392
2042
  args: [{
1393
2043
  name: 'countdown',
@@ -1413,38 +2063,46 @@ function applyCondition(item, condition) {
1413
2063
  if (!conditionType) {
1414
2064
  return true;
1415
2065
  }
1416
- switch (conditionType) {
2066
+ const op = String(conditionType);
2067
+ switch (op) {
1417
2068
  case 'equal':
2069
+ case 'eq':
1418
2070
  result = isEqual(valueToCompare, conditionValue);
1419
2071
  if (loggingEnabled) {
1420
2072
  console.log('Equal check result:', result);
1421
2073
  }
1422
2074
  break;
1423
2075
  case 'notEqual':
2076
+ case 'ne':
2077
+ case 'neq':
1424
2078
  result = !isEqual(valueToCompare, conditionValue);
1425
2079
  if (loggingEnabled) {
1426
2080
  console.log('Not equal check result:', result);
1427
2081
  }
1428
2082
  break;
1429
2083
  case 'greaterThan':
2084
+ case 'gt':
1430
2085
  result = gt(valueToCompare, conditionValue);
1431
2086
  if (loggingEnabled) {
1432
2087
  console.log('Greater than check result:', result);
1433
2088
  }
1434
2089
  break;
1435
2090
  case 'lessThan':
2091
+ case 'lt':
1436
2092
  result = lt(valueToCompare, conditionValue);
1437
2093
  if (loggingEnabled) {
1438
2094
  console.log('Less than check result:', result);
1439
2095
  }
1440
2096
  break;
1441
2097
  case 'greaterThanOrEqual':
2098
+ case 'gte':
1442
2099
  result = gte(valueToCompare, conditionValue);
1443
2100
  if (loggingEnabled) {
1444
2101
  console.log('Greater than or equal check result:', result);
1445
2102
  }
1446
2103
  break;
1447
2104
  case 'lessThanOrEqual':
2105
+ case 'lte':
1448
2106
  result = lte(valueToCompare, conditionValue);
1449
2107
  if (loggingEnabled) {
1450
2108
  console.log('Less than or equal check result:', result);
@@ -1541,7 +2199,9 @@ function applyCondition(item, condition) {
1541
2199
  console.log('Default case, returning true');
1542
2200
  }
1543
2201
  }
1544
- return result;
2202
+ // Apply negative flag if present on operator (invert the result)
2203
+ const isNegative = !!condition?.operator?.negative;
2204
+ return isNegative ? !result : result;
1545
2205
  }
1546
2206
  function applyFilterArray(dataArray, filters, logic = 'and') {
1547
2207
  if (filters && filters.length) {
@@ -1692,10 +2352,10 @@ class AXHighlightService {
1692
2352
  resultHTML += '</span>';
1693
2353
  return resultHTML;
1694
2354
  }
1695
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXHighlightService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1696
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXHighlightService, providedIn: 'root' }); }
2355
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXHighlightService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2356
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXHighlightService, providedIn: 'root' }); }
1697
2357
  }
1698
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXHighlightService, decorators: [{
2358
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXHighlightService, decorators: [{
1699
2359
  type: Injectable,
1700
2360
  args: [{
1701
2361
  providedIn: 'root',
@@ -1719,10 +2379,10 @@ class AXPActivityLogService {
1719
2379
  async getHistoryByIds(refId, refType, ids) {
1720
2380
  return (await Promise.all(this.providers?.map((p) => p.getHistoryByIds(refId, refType, ids)) ?? [])).flat();
1721
2381
  }
1722
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPActivityLogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1723
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPActivityLogService, providedIn: 'root' }); }
2382
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPActivityLogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2383
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPActivityLogService, providedIn: 'root' }); }
1724
2384
  }
1725
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPActivityLogService, decorators: [{
2385
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPActivityLogService, decorators: [{
1726
2386
  type: Injectable,
1727
2387
  args: [{ providedIn: 'root' }]
1728
2388
  }] });
@@ -1738,6 +2398,7 @@ class AXPDistributedEventListenerService {
1738
2398
  constructor() {
1739
2399
  //#region ---- Providers & Caches ----
1740
2400
  this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];
2401
+ this.injector = inject(Injector);
1741
2402
  /** Cache for listeners by key. */
1742
2403
  this.listenersByKey = new Map();
1743
2404
  /** Flag to track if providers have been loaded */
@@ -1751,19 +2412,76 @@ class AXPDistributedEventListenerService {
1751
2412
  * @param data The event data to pass to listeners.
1752
2413
  */
1753
2414
  async dispatch(key, data) {
1754
- await this.ensureProvidersLoaded();
1755
- const listeners = this.listenersByKey.get(key) || [];
1756
- // Execute all listeners in parallel
1757
- const promises = listeners.map(listener => {
2415
+ const providers = await this.resolveProviders();
2416
+ const matched = providers.filter(p => p.key === key);
2417
+ if (!matched.length) {
2418
+ console.warn(`[AXPDistributedEventListenerService] No provider found for key='${key}'`);
2419
+ return;
2420
+ }
2421
+ for (const provider of matched) {
1758
2422
  try {
1759
- return Promise.resolve(listener.execute(data));
2423
+ await Promise.resolve(runInInjectionContext(this.injector, () => provider.execute(data)));
1760
2424
  }
1761
- catch (error) {
1762
- console.error(`Error executing listener for event key '${key}':`, error);
1763
- return Promise.resolve(); // Continue with other listeners even if one fails
2425
+ catch (err) {
2426
+ console.error(`[AXPDistributedEventListenerService] Provider for key='${key}' failed`, err);
1764
2427
  }
1765
- });
1766
- await Promise.all(promises);
2428
+ }
2429
+ }
2430
+ /**
2431
+ * Dispatch with async response (first matching provider, with retry/timeout)
2432
+ */
2433
+ async dispatchAsync(key, data, options = {
2434
+ timeout: 60_000,
2435
+ retries: 3,
2436
+ retryDelay: 1000,
2437
+ }) {
2438
+ const providers = await this.resolveProviders();
2439
+ const matched = providers.filter(p => p.key === key);
2440
+ if (!matched.length) {
2441
+ throw new Error(`No provider found for key='${key}'`);
2442
+ }
2443
+ const attempt = (n) => {
2444
+ return new Promise((resolve, reject) => {
2445
+ let finished = false;
2446
+ const timer = setTimeout(() => {
2447
+ if (!finished) {
2448
+ if (n < options.retries) {
2449
+ console.warn(`[dispatchAsync] retrying key='${key}' (${n + 1}/${options.retries})`);
2450
+ resolve(attempt(n + 1));
2451
+ }
2452
+ else {
2453
+ reject(new Error(`Timeout: no response for key='${key}' after ${options.retries} attempts.`));
2454
+ }
2455
+ }
2456
+ }, options.timeout);
2457
+ try {
2458
+ const provider = matched[0];
2459
+ const result = runInInjectionContext(this.injector, () => provider.execute(data));
2460
+ Promise.resolve(result)
2461
+ .then((r) => {
2462
+ finished = true;
2463
+ clearTimeout(timer);
2464
+ resolve(r);
2465
+ })
2466
+ .catch(err => {
2467
+ finished = true;
2468
+ clearTimeout(timer);
2469
+ reject(err);
2470
+ });
2471
+ }
2472
+ catch (err) {
2473
+ clearTimeout(timer);
2474
+ reject(err);
2475
+ }
2476
+ });
2477
+ };
2478
+ return attempt(0);
2479
+ }
2480
+ /**
2481
+ * Resolve all providers (handle both direct provider and Promise<provider>)
2482
+ */
2483
+ async resolveProviders() {
2484
+ return Promise.all(this.listenerProviders.map(p => p instanceof Promise ? p : Promise.resolve(p)));
1767
2485
  }
1768
2486
  /**
1769
2487
  * Returns all listeners for a specific event key.
@@ -1810,167 +2528,73 @@ class AXPDistributedEventListenerService {
1810
2528
  this.listenersByKey.clear();
1811
2529
  this.providersLoaded = false;
1812
2530
  }
1813
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDistributedEventListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1814
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDistributedEventListenerService, providedIn: 'root' }); }
2531
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPDistributedEventListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2532
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPDistributedEventListenerService, providedIn: 'root' }); }
1815
2533
  }
1816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPDistributedEventListenerService, decorators: [{
2534
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPDistributedEventListenerService, decorators: [{
1817
2535
  type: Injectable,
1818
2536
  args: [{
1819
2537
  providedIn: 'root',
1820
2538
  }]
1821
2539
  }] });
1822
2540
 
1823
- //import { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';
1824
- /**
1825
- * Entity Event Dispatcher - A wrapper for entity-specific events
1826
- * Handles pattern-based dispatching for entity operations with wildcard support
1827
- */
1828
- class AXPEntityEventDispatcherService {
2541
+ class AXPHookService {
1829
2542
  constructor() {
1830
- this.eventService = inject(AXPDistributedEventListenerService);
1831
- }
1832
- //private readonly entityRegistry = inject(AXPEntityDefinitionRegistryService);
1833
- /**
1834
- * Dispatch entity events with pattern matching support for wildcard listeners
1835
- * @param operation The operation type (inserted, updated, deleted)
1836
- * @param entityName The full entity name (e.g., 'PlatformManagement.Category')
1837
- * @param data The event data
1838
- */
1839
- async dispatchEntityEvent(operation, entityName, data) {
1840
- console.log('dispatchEntityEvent', operation, entityName, data);
1841
- const enhancedData = {
1842
- ...data,
1843
- entityName,
1844
- operation,
1845
- timestamp: new Date(),
1846
- source: 'entity-dispatcher'
1847
- };
1848
- // Get all possible event keys that could match this entity operation
1849
- const eventKeysToDispatch = await this.getAllMatchingEventKeys(operation, entityName);
1850
- console.log('eventKeysToDispatch', eventKeysToDispatch);
1851
- // Dispatch to all matching patterns simultaneously
1852
- const dispatchPromises = eventKeysToDispatch.map(key => this.eventService.dispatch(key, enhancedData));
1853
- await Promise.all(dispatchPromises);
1854
- }
1855
- /**
1856
- * Get all event keys that should be dispatched for this entity operation
1857
- * including wildcard pattern matches
1858
- */
1859
- async getAllMatchingEventKeys(operation, entityName) {
1860
- const eventKeys = new Set();
1861
- // 1. Add exact patterns for this specific entity
1862
- const exactKeys = this.generateEventKeys(operation, entityName);
1863
- exactKeys.forEach(key => eventKeys.add(key));
1864
- // 2. Find and add wildcard listeners that match this entity
1865
- const wildcardKeys = await this.findMatchingWildcardKeys(operation, entityName);
1866
- wildcardKeys.forEach(key => eventKeys.add(key));
1867
- return Array.from(eventKeys);
1868
- }
1869
- /**
1870
- * Find wildcard listener keys that match this entity operation
1871
- */
1872
- async findMatchingWildcardKeys(operation, entityName) {
1873
- const matchingKeys = [];
1874
- // Get all registered listeners
1875
- const allListenerKeys = await this.eventService.getRegisteredKeys();
1876
- // Generate the event key that would be dispatched
1877
- const actualEventKey = `entity.${operation}.${entityName}`;
1878
- // Check each listener key for wildcard patterns
1879
- for (const listenerKey of allListenerKeys) {
1880
- if (listenerKey.includes('*') && this.matchesEntityPattern(actualEventKey, listenerKey)) {
1881
- matchingKeys.push(listenerKey);
1882
- }
1883
- }
1884
- return matchingKeys;
2543
+ this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];
2544
+ this.injector = inject(Injector);
1885
2545
  }
1886
2546
  /**
1887
- * Check if an entity event key matches a wildcard pattern
1888
- * Only supports entity patterns (entity.*)
2547
+ * Resolve all providers (handle both direct providers and Promise<provider>)
1889
2548
  */
1890
- matchesEntityPattern(eventKey, pattern) {
1891
- // Only process entity patterns
1892
- if (!pattern.startsWith('entity.') || !pattern.includes('*')) {
1893
- return false;
1894
- }
1895
- // Convert pattern to regex
1896
- const regexPattern = pattern
1897
- .replace(/\./g, '\\.') // Escape dots
1898
- .replace(/\*/g, '.*'); // Convert * to regex wildcard
1899
- const regex = new RegExp(`^${regexPattern}$`);
1900
- return regex.test(eventKey);
2549
+ async resolveProviders() {
2550
+ return Promise.all(this.listenerProviders.map(p => p instanceof Promise ? p : Promise.resolve(p)));
1901
2551
  }
1902
2552
  /**
1903
- * Generate all possible event keys for an entity operation
1904
- * @param operation The operation type
1905
- * @param entityName The entity name (e.g., 'PlatformManagement.Category')
2553
+ * Fire sync hooks (fire-and-forget).
2554
+ * All providers with the given key will be executed.
2555
+ * Execution is not awaited.
1906
2556
  */
1907
- generateEventKeys(operation, entityName) {
1908
- const keys = [];
1909
- // 1. Base pattern: entity.inserted
1910
- keys.push(`entity.${operation}`);
1911
- // 2. Specific entity pattern: entity.inserted.PlatformManagement.Category
1912
- keys.push(`entity.${operation}.${entityName}`);
1913
- // 3. Module-level pattern: entity.inserted.PlatformManagement
1914
- const entityParts = entityName.split('.');
1915
- if (entityParts.length > 1) {
1916
- const moduleName = entityParts[0];
1917
- keys.push(`entity.${operation}.${moduleName}`);
1918
- }
1919
- return keys;
2557
+ fire(key, data) {
2558
+ this.resolveProviders().then(providers => {
2559
+ providers
2560
+ .filter(p => p.key === key)
2561
+ .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0))
2562
+ .forEach(p => {
2563
+ try {
2564
+ runInInjectionContext(this.injector, () => p.execute(data));
2565
+ }
2566
+ catch (err) {
2567
+ console.error(`[AXPHookService] Hook '${key}' failed`, err);
2568
+ }
2569
+ });
2570
+ });
1920
2571
  }
1921
2572
  /**
1922
- * Convenience methods for specific operations
2573
+ * Run async hooks sequentially (waterfall).
2574
+ * The output of each hook is passed as input to the next hook.
2575
+ * Returns the final merged data after all hooks are executed.
1923
2576
  */
1924
- async dispatchInserted(entityName, data) {
1925
- await this.dispatchEntityEvent('inserted', entityName, data);
1926
- }
1927
- async dispatchUpdated(entityName, data) {
1928
- await this.dispatchEntityEvent('updated', entityName, data);
1929
- }
1930
- async dispatchDeleted(entityName, data) {
1931
- await this.dispatchEntityEvent('deleted', entityName, data);
1932
- }
1933
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPEntityEventDispatcherService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1934
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPEntityEventDispatcherService, providedIn: 'root' }); }
2577
+ async runAsync(key, initialData) {
2578
+ const providers = (await this.resolveProviders())
2579
+ .filter(p => p.key === key)
2580
+ .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));
2581
+ let data = initialData;
2582
+ for (const p of providers) {
2583
+ data = await Promise.resolve(runInInjectionContext(this.injector, () => p.execute(data)));
2584
+ }
2585
+ return data;
2586
+ }
2587
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPHookService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2588
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPHookService, providedIn: 'root' }); }
1935
2589
  }
1936
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPEntityEventDispatcherService, decorators: [{
2590
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXPHookService, decorators: [{
1937
2591
  type: Injectable,
1938
- args: [{
1939
- providedIn: 'root',
1940
- }]
1941
- }] });
1942
-
1943
- /**
1944
- * Example implementation of a distributed event listener provider.
1945
- * This is just a sample to show how to implement the interface.
1946
- */
1947
- class ExampleEventListenerProvider {
1948
- constructor() {
1949
- this.key = 'example.event';
1950
- }
1951
- async execute(data) {
1952
- console.log('Example event received:', data);
1953
- // Your implementation here
1954
- // For example:
1955
- // - Log the event
1956
- // - Update cache
1957
- // - Send notifications
1958
- // - Call external APIs
1959
- // - Update UI state
1960
- // Simulate async work
1961
- await new Promise(resolve => setTimeout(resolve, 100));
1962
- console.log('Example event processed successfully');
1963
- }
1964
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: ExampleEventListenerProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1965
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: ExampleEventListenerProvider }); }
1966
- }
1967
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: ExampleEventListenerProvider, decorators: [{
1968
- type: Injectable
2592
+ args: [{ providedIn: 'root' }]
1969
2593
  }] });
1970
2594
 
1971
2595
  /**
1972
2596
  * Generated bundle index. Do not edit.
1973
2597
  */
1974
2598
 
1975
- export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPComponentLogoConfig, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDistributedEventListenerService, AXPElementDataDirective, AXPEntityEventDispatcherService, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPGridLayoutDirective, AXPImageUrlLogoConfig, AXPPlatformScope, AXPSystemActionType, AXPSystemActions, AXP_ACTIVITY_LOG_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, ExampleEventListenerProvider, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, cleanDeep, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, getNestedKeys, getSmart, getSystemActions, objectKeyValueTransforms, resolvePlatformScopeKey, resolvePlatformScopeName, setSmart };
2599
+ export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPComponentLogoConfig, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPGridLayoutDirective, AXPHookService, AXPImageUrlLogoConfig, AXPPlatformScope, AXPSystemActionType, AXPSystemActions, AXP_ACTIVITY_LOG_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, cleanDeep, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, objectKeyValueTransforms, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, setSmart };
1976
2600
  //# sourceMappingURL=acorex-platform-core.mjs.map