@acorex/platform 0.0.0-ACOREX

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 (116) hide show
  1. package/README.md +7 -0
  2. package/auth/README.md +3 -0
  3. package/common/README.md +3 -0
  4. package/core/README.md +4 -0
  5. package/fesm2022/acorex-platform-auth.mjs +1362 -0
  6. package/fesm2022/acorex-platform-auth.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs +127 -0
  8. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-common.mjs +4601 -0
  10. package/fesm2022/acorex-platform-common.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-core.mjs +4374 -0
  12. package/fesm2022/acorex-platform-core.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-domain.mjs +3234 -0
  14. package/fesm2022/acorex-platform-domain.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-builder.mjs +2847 -0
  16. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  18. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-components.mjs +8583 -0
  20. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-layout-designer.mjs +2474 -0
  22. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-layout-entity.mjs +19150 -0
  24. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-layout-views.mjs +1468 -0
  26. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-layout-widget-core.mjs +2950 -0
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs +72 -0
  30. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs +158 -0
  32. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs +29 -0
  34. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs +172 -0
  36. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
  38. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs +274 -0
  40. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs +64 -0
  42. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs +34 -0
  44. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  45. package/fesm2022/acorex-platform-layout-widgets.mjs +29791 -0
  46. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -0
  47. package/fesm2022/acorex-platform-native.mjs +155 -0
  48. package/fesm2022/acorex-platform-native.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-runtime-catalog-command-definition.mjs +20 -0
  50. package/fesm2022/acorex-platform-runtime-catalog-command-definition.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-runtime-catalog-query-definition.mjs +20 -0
  52. package/fesm2022/acorex-platform-runtime-catalog-query-definition.mjs.map +1 -0
  53. package/fesm2022/acorex-platform-runtime.mjs +899 -0
  54. package/fesm2022/acorex-platform-runtime.mjs.map +1 -0
  55. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
  56. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
  58. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs +237 -0
  60. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
  61. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs +31 -0
  62. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  63. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs +25 -0
  64. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  66. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  67. package/fesm2022/acorex-platform-themes-default.mjs +2589 -0
  68. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -0
  69. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs +55 -0
  70. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  71. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs +57 -0
  72. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  73. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs +168 -0
  74. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -0
  75. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs +65 -0
  76. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
  77. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs +64 -0
  78. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
  79. package/fesm2022/acorex-platform-themes-shared.mjs +2125 -0
  80. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -0
  81. package/fesm2022/acorex-platform-workflow.mjs +2501 -0
  82. package/fesm2022/acorex-platform-workflow.mjs.map +1 -0
  83. package/fesm2022/acorex-platform.mjs +6 -0
  84. package/fesm2022/acorex-platform.mjs.map +1 -0
  85. package/layout/builder/README.md +1578 -0
  86. package/layout/components/README.md +3 -0
  87. package/layout/designer/README.md +4 -0
  88. package/layout/entity/README.md +4 -0
  89. package/layout/views/README.md +3 -0
  90. package/layout/widget-core/README.md +4 -0
  91. package/layout/widgets/README.md +3 -0
  92. package/native/README.md +4 -0
  93. package/package.json +103 -0
  94. package/runtime/README.md +3 -0
  95. package/themes/default/README.md +3 -0
  96. package/themes/shared/README.md +3 -0
  97. package/types/acorex-platform-auth.d.ts +680 -0
  98. package/types/acorex-platform-common.d.ts +2926 -0
  99. package/types/acorex-platform-core.d.ts +2896 -0
  100. package/types/acorex-platform-domain.d.ts +2353 -0
  101. package/types/acorex-platform-layout-builder.d.ts +926 -0
  102. package/types/acorex-platform-layout-components.d.ts +2903 -0
  103. package/types/acorex-platform-layout-designer.d.ts +422 -0
  104. package/types/acorex-platform-layout-entity.d.ts +3189 -0
  105. package/types/acorex-platform-layout-views.d.ts +667 -0
  106. package/types/acorex-platform-layout-widget-core.d.ts +1086 -0
  107. package/types/acorex-platform-layout-widgets.d.ts +5478 -0
  108. package/types/acorex-platform-native.d.ts +28 -0
  109. package/types/acorex-platform-runtime-catalog-command-definition.d.ts +137 -0
  110. package/types/acorex-platform-runtime-catalog-query-definition.d.ts +125 -0
  111. package/types/acorex-platform-runtime.d.ts +470 -0
  112. package/types/acorex-platform-themes-default.d.ts +573 -0
  113. package/types/acorex-platform-themes-shared.d.ts +170 -0
  114. package/types/acorex-platform-workflow.d.ts +1806 -0
  115. package/types/acorex-platform.d.ts +2 -0
  116. package/workflow/README.md +4 -0
@@ -0,0 +1,2926 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders, Injector, ErrorHandler, ModuleWithProviders, EventEmitter, ElementRef, Renderer2, NgZone, ChangeDetectorRef } from '@angular/core';
3
+ import { AXDataSourceOperator, AXStyleColorType, AXDataSourceFilterOption } from '@acorex/cdk/common';
4
+ import * as i2 from '@acorex/components/popup';
5
+ import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
6
+ import * as i5 from '@acorex/platform/core';
7
+ import { AXPValueTransformerFunctions, AXPOptionsData, AXPExpression, AXPFilterDefinition, AXPMetaData, AXPSystemActionType, AXPValidationRules, AXPGridLayoutOptions, AXPLogoConfig, AXPFileListItem, AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPNavigateActionCommand, AXPExecuteCommand, AXPApplicationUserReference, AXPEntityReference, AXPPlatformScopeKey, AXPPlatformScope, AXPWidgetTriggers, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex/platform/core';
8
+ import { AXPWidgetTypesMap, AXPMetaDataDefinition, AXPWidgetNode, AXPWidgetProperty } from '@acorex/platform/layout/widget-core';
9
+ import * as i6 from '@angular/router';
10
+ import { Route, Routes } from '@angular/router';
11
+ import * as i1 from '@acorex/platform/workflow';
12
+ import { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
13
+ import * as i3 from '@acorex/core/date-time';
14
+ import * as i4 from '@acorex/components/toast';
15
+ import * as rxjs from 'rxjs';
16
+ import { Subject } from 'rxjs';
17
+ import * as _ngrx_signals from '@ngrx/signals';
18
+ import { AXTranslationService } from '@acorex/core/translation';
19
+ import { AXLocaleProfile } from '@acorex/core/locale';
20
+
21
+ interface AXPAppVersion {
22
+ version: string;
23
+ build: number;
24
+ date: Date;
25
+ }
26
+ interface AXPAppVersionProvider {
27
+ provider(): Promise<AXPAppVersion>;
28
+ }
29
+ declare const AXP_APP_VERSION_PROVIDER: InjectionToken<AXPAppVersionProvider>;
30
+ declare class AXPAppVersionService {
31
+ private provider;
32
+ getAppVersion(): Promise<AXPAppVersion>;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPAppVersionService, never>;
34
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPAppVersionService>;
35
+ }
36
+
37
+ interface AXEntityPropertyWidget {
38
+ type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
39
+ path?: string;
40
+ id?: string;
41
+ children?: AXEntityPropertyWidget[];
42
+ mode: 'view' | 'edit';
43
+ options?: Record<string, any>;
44
+ triggers?: {
45
+ event: string;
46
+ action: string;
47
+ disabled?: boolean;
48
+ }[];
49
+ valueTransforms?: AXPValueTransformerFunctions;
50
+ }
51
+ declare enum AXPRelationshipKind {
52
+ Association = 0,
53
+ Composition = 1,
54
+ Aggregation = 2
55
+ }
56
+ declare enum AXPRelationshipCardinality {
57
+ OneToOne = 0,
58
+ OneToMany = 1,
59
+ ManyToMany = 2
60
+ }
61
+ interface AXPRelationship {
62
+ id: string;
63
+ from: string;
64
+ to: string;
65
+ kind: AXPRelationshipKind;
66
+ cardinality: AXPRelationshipCardinality;
67
+ }
68
+ declare enum AXPEntityCommandScope {
69
+ TypeLevel = "typeLevel",
70
+ Selected = "selected",
71
+ Individual = "individual",
72
+ Section = "section"
73
+ }
74
+ declare enum AXPEntityQueryType {
75
+ Single = "single",
76
+ List = "list"
77
+ }
78
+ interface AXPEntityPropertyLayoutConfig extends AXPGridLayoutOptions {
79
+ label?: {
80
+ visible?: boolean;
81
+ };
82
+ order?: number;
83
+ }
84
+ interface AXPEntityPropertyGroup {
85
+ id: string;
86
+ title: string;
87
+ description?: string;
88
+ permissions?: string[];
89
+ icon?: string;
90
+ }
91
+ interface AXPEntityPropertyView {
92
+ name: string;
93
+ dataPath?: string;
94
+ permissions?: string[];
95
+ layout?: AXPEntityPropertyLayoutConfig;
96
+ }
97
+ interface AXPEntityPropertyUpdateView extends AXPEntityPropertyView {
98
+ }
99
+ interface AXPEntityPropertyCreateView extends AXPEntityPropertyView {
100
+ defaultValue?: any;
101
+ }
102
+ interface AXPEntitySectionView {
103
+ id: string;
104
+ order?: number;
105
+ collapsed?: boolean;
106
+ layout?: AXPEntityPropertyLayoutConfig;
107
+ }
108
+ interface AXPEntityProperty {
109
+ name: string;
110
+ title: string;
111
+ description?: string;
112
+ groupId?: string;
113
+ schema: {
114
+ dataType: string;
115
+ nullable?: boolean;
116
+ readonly?: boolean | string;
117
+ visible?: boolean | string;
118
+ defaultValue?: any | string | ((context: any | null) => any);
119
+ unique?: {
120
+ enabled: boolean;
121
+ };
122
+ interface?: Partial<AXEntityPropertyWidget>;
123
+ };
124
+ options?: {
125
+ filter?: {
126
+ advance?: {
127
+ enabled?: boolean;
128
+ widgetType?: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];
129
+ };
130
+ inline?: {
131
+ enabled?: boolean;
132
+ };
133
+ preload?: {
134
+ enabled?: boolean;
135
+ required?: boolean;
136
+ };
137
+ };
138
+ sort?: {
139
+ enabled?: boolean;
140
+ };
141
+ };
142
+ validations?: AXPValidationRules;
143
+ }
144
+ interface AXPEntityTableColumn {
145
+ name: string;
146
+ title?: string;
147
+ hidden?: boolean;
148
+ showAs?: {
149
+ type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
150
+ options?: Record<string, any>;
151
+ };
152
+ sort?: {
153
+ enabled?: boolean;
154
+ dir?: 'asc' | 'desc';
155
+ };
156
+ options?: {
157
+ /** When string, evaluate against parent detail context (e.g. related list). */
158
+ visible?: boolean | string;
159
+ width?: string;
160
+ dataPath?: string;
161
+ [name: string]: any;
162
+ };
163
+ }
164
+ interface AXPEntityCommand {
165
+ execute: string | Function;
166
+ permissions?: string[];
167
+ }
168
+ interface AXPEntityQuery {
169
+ execute: string | Function;
170
+ type: AXPEntityQueryType;
171
+ }
172
+
173
+ type AXPCommandActionType = AXPSystemActionType;
174
+ interface AXPCommandActionLook {
175
+ color: AXStyleColorType;
176
+ icon: string;
177
+ }
178
+ type AXPCommandActionPriority = 'primary' | 'secondary';
179
+ type AXPCommandActionCallback = string | {
180
+ name: string;
181
+ options?: {
182
+ decoration?: {
183
+ header?: {
184
+ title?: string;
185
+ };
186
+ };
187
+ process?: {
188
+ data?: any;
189
+ [name: string]: any;
190
+ };
191
+ layout?: {
192
+ size?: AXPopupSizeType;
193
+ };
194
+ [name: string]: any;
195
+ };
196
+ metadata?: AXPMetaData;
197
+ };
198
+ interface AXPCommandActionDisplay extends Partial<AXPCommandActionLook> {
199
+ name?: string;
200
+ command: AXPCommandActionCallback;
201
+ title: string;
202
+ type: AXPSystemActionType | string;
203
+ priority: 'primary' | 'secondary';
204
+ separated?: boolean;
205
+ permissions?: string[];
206
+ hidden?: boolean | string;
207
+ disabled?: boolean | string;
208
+ default?: boolean;
209
+ order?: number;
210
+ }
211
+ interface AXPEntityAction extends AXPCommandActionDisplay {
212
+ scope: AXPEntityCommandScope;
213
+ /** Child actions for dropdown submenu */
214
+ items?: AXPEntityAction[];
215
+ }
216
+ interface AXPEntity {
217
+ plugins?: {
218
+ name: string;
219
+ options?: AXPOptionsData;
220
+ }[];
221
+ /**
222
+ * High-level rules: when expression evaluates true, apply actions to the given targets
223
+ * (property/section/action). Reduces repetition of the same condition across many properties.
224
+ * Evaluation context: form data, user, entity; precedence vs property-level visible/readonly
225
+ * must be defined where rules are applied.
226
+ */
227
+ rules?: Array<{
228
+ name: string;
229
+ expression: AXPExpression;
230
+ actions: Array<{
231
+ target: {
232
+ type: 'property' | 'section' | 'action';
233
+ name: string;
234
+ };
235
+ values: AXPOptionsData;
236
+ }>;
237
+ }>;
238
+ module: string;
239
+ name: string;
240
+ icon?: string;
241
+ parentKey?: string;
242
+ category?: AXPCategoryEntity;
243
+ title: string;
244
+ formats: {
245
+ individual: string;
246
+ plural: string;
247
+ lookup?: string;
248
+ displayName?: string;
249
+ searchResult?: {
250
+ title: string;
251
+ description?: string;
252
+ };
253
+ };
254
+ relatedEntities?: AXPRelatedEntity[];
255
+ pages?: AXPEntityPage[];
256
+ groups?: AXPEntityPropertyGroup[];
257
+ properties: AXPEntityProperty[];
258
+ columns?: AXPEntityTableColumn[];
259
+ commands?: {
260
+ create?: AXPEntityCommand | undefined;
261
+ update?: AXPEntityCommand | undefined;
262
+ delete?: AXPEntityCommand | undefined;
263
+ [name: string]: AXPEntityCommand | undefined;
264
+ };
265
+ queries?: {
266
+ byKey?: AXPEntityQuery;
267
+ list?: AXPEntityQuery;
268
+ lookup?: AXPEntityQuery;
269
+ history?: AXPEntityQuery;
270
+ comments?: AXPEntityQuery;
271
+ [name: string]: AXPEntityQuery | undefined;
272
+ };
273
+ validations?: AXPValidationRules;
274
+ interfaces?: {
275
+ master?: {
276
+ single?: AXPEntityMasterSingleLayoutView;
277
+ list?: AXPEntityMasterListView;
278
+ create?: AXPEntityMasterCreateLayoutView;
279
+ update?: AXPEntityMasterUpdateLayoutView;
280
+ };
281
+ detail?: {
282
+ list?: AXPEntityDetailListView;
283
+ };
284
+ };
285
+ }
286
+ declare function getEntityInfo(entity: AXPEntity): {
287
+ source: string;
288
+ module: {
289
+ route: string;
290
+ };
291
+ entity: {
292
+ route: string;
293
+ };
294
+ };
295
+ declare function createQueryView(name: string, title: string, fixed: boolean, params?: {
296
+ columns?: string[];
297
+ conditions?: any[];
298
+ sorts?: AXPQuerySort[];
299
+ }): AXPQueryView;
300
+ declare function createAllQueryView(params?: {
301
+ columns?: string[];
302
+ conditions?: AXPQueryFilter[];
303
+ sorts?: AXPQuerySort[];
304
+ } | undefined): AXPQueryView;
305
+ interface AXPRelatedEntity {
306
+ entity: string;
307
+ title?: string;
308
+ icon?: string;
309
+ /**
310
+ * Either a list of property names, or full table column metadata (`AXPEntityTableColumn`).
311
+ * For table columns, use `options.visible` as boolean or expression string (evaluated on parent detail).
312
+ */
313
+ columns?: string[] | AXPEntityTableColumn[];
314
+ properties?: string[];
315
+ /** Exclude these properties from the related entity (for merge-detail) */
316
+ excludeProperties?: string[];
317
+ layout?: {
318
+ type: 'tab-detail' | 'tab-list' | 'page-detail' | 'page-list' | 'merge-detail';
319
+ order?: number;
320
+ position?: 'before' | 'after' | 'middle';
321
+ };
322
+ conditions?: AXPQueryFilter[];
323
+ /**
324
+ * Optional toolbar filter definitions merged when the related list is built.
325
+ * Entries matching an existing property `field` override/extend that filter definition.
326
+ */
327
+ customFilterDefinitions?: Partial<AXPFilterDefinition>[];
328
+ hidden?: boolean | string;
329
+ actions?: AXPEntityAction[];
330
+ /**
331
+ * Relationship-level persistence strategy for merge-detail data.
332
+ * Defaults:
333
+ * - strategy: 'embedded'
334
+ * - idField: last segment of dataPath + 'Id' (or 'relatedId' when dataPath is missing)
335
+ * - map: undefined (pass-through)
336
+ * - hydrate: 'eager' (applies to getOne only in mock)
337
+ * - cascade.delete: 'none'
338
+ */
339
+ persistence?: {
340
+ strategy?: 'embedded' | 'referenced';
341
+ idField?: string;
342
+ dataPath?: string;
343
+ map?: Record<string, string>;
344
+ hydrate?: 'eager' | 'lazy';
345
+ cascade?: {
346
+ delete?: 'none' | 'orphans' | 'all';
347
+ };
348
+ };
349
+ }
350
+ interface AXPEntityPage {
351
+ /**
352
+ * Key to identify the component in the page component registry
353
+ */
354
+ componentKey: string;
355
+ /**
356
+ * Property name to render when the page component displays an entity field (e.g. 'questions', 'attachments').
357
+ * Passed to the page component as pageConfig.field.
358
+ */
359
+ field?: string;
360
+ /**
361
+ * Title of the page (displayed in navigation)
362
+ */
363
+ title?: string;
364
+ /**
365
+ * Icon for the page (displayed in navigation)
366
+ */
367
+ icon?: string;
368
+ /**
369
+ * Description of the page
370
+ */
371
+ description?: string;
372
+ /**
373
+ * Layout configuration for page positioning
374
+ */
375
+ layout?: {
376
+ /**
377
+ * Order of the page (lower numbers appear first)
378
+ */
379
+ order?: number;
380
+ /**
381
+ * Position relative to the main page
382
+ */
383
+ position?: 'before' | 'after' | 'middle';
384
+ };
385
+ /**
386
+ * Visibility condition (boolean or expression string)
387
+ */
388
+ hidden?: boolean | string;
389
+ /**
390
+ * Permissions required to view this page
391
+ */
392
+ permissions?: string[];
393
+ options?: Record<string, any>;
394
+ }
395
+ interface AXPCategoryEntity {
396
+ entity: string;
397
+ title?: string;
398
+ textField?: string;
399
+ valueField?: string;
400
+ conditions?: AXPQueryFilter[];
401
+ applyConditions?: AXPQueryFilter[];
402
+ }
403
+ interface AXPEntityVersionHistory {
404
+ enabled?: boolean;
405
+ showInList?: boolean;
406
+ showInDetail?: boolean;
407
+ }
408
+ interface AXPAggregate {
409
+ id: string;
410
+ name: string;
411
+ title: string;
412
+ entities: AXPEntity[];
413
+ }
414
+ interface AXPModule {
415
+ name: string;
416
+ title: string;
417
+ aggregates: AXPAggregate[];
418
+ relationships?: AXPRelationship[];
419
+ }
420
+ interface AXPApplication {
421
+ name: string;
422
+ title: string;
423
+ modules: AXPModule[];
424
+ }
425
+ interface AXPEntityMasterLayoutView {
426
+ title?: string;
427
+ sections: AXPEntitySectionView[];
428
+ properties?: AXPEntityPropertyView[];
429
+ }
430
+ /** Quick create config for lookup widgets (+ button) - uses subset of create form */
431
+ interface AXPEntityQuickCreate {
432
+ enabled?: boolean;
433
+ properties?: string[];
434
+ layout?: {
435
+ size?: AXPopupSizeType;
436
+ };
437
+ excludeProperties?: string[];
438
+ }
439
+ interface AXPEntityMasterCreateLayoutView extends AXPEntityMasterLayoutView {
440
+ steps?: {
441
+ id: string;
442
+ title: string;
443
+ description?: string;
444
+ };
445
+ /** Quick create config for lookup widgets - uses subset of create form */
446
+ quickCreate?: AXPEntityQuickCreate;
447
+ }
448
+ interface AXPEntityMasterUpdateLayoutView extends AXPEntityMasterLayoutView {
449
+ }
450
+ interface AXPEntityMasterSingleLayoutView extends AXPEntityMasterLayoutView {
451
+ title: string;
452
+ description?: string;
453
+ actions?: AXPEntityAction[];
454
+ }
455
+ interface AXPEntityMasterListView {
456
+ title?: string;
457
+ description?: string;
458
+ actions?: AXPEntityAction[];
459
+ views: AXPQueryView[];
460
+ layouts?: {
461
+ table?: {
462
+ columns: AXPEntityTableColumn[];
463
+ };
464
+ card?: {};
465
+ };
466
+ }
467
+ interface AXPEntityDetailListView {
468
+ title?: string;
469
+ description?: string;
470
+ columns: AXPEntityTableColumn[];
471
+ actions?: AXPEntityAction[];
472
+ }
473
+ interface AXPQueryView {
474
+ name: string;
475
+ fixed: boolean;
476
+ title: string;
477
+ columns: string[];
478
+ conditions: AXPQueryFilter[];
479
+ sorts: AXPQuerySort[];
480
+ indexCol?: boolean;
481
+ pageSize?: number;
482
+ visible?: boolean;
483
+ }
484
+ interface AXPQueryFilter {
485
+ name: string;
486
+ operator: AXDataSourceOperator;
487
+ value: any;
488
+ }
489
+ interface AXPQuerySort {
490
+ name: string;
491
+ dir: 'asc' | 'desc';
492
+ }
493
+ declare enum AXPEntityType {
494
+ Entity = 0,
495
+ AggregateRoot = 1,
496
+ ValueObject = 2
497
+ }
498
+ interface AXPEntityV2 {
499
+ version: 2;
500
+ module: string;
501
+ aggregate: string;
502
+ name: string;
503
+ type: AXPEntityType;
504
+ icon?: string;
505
+ title: string;
506
+ description?: string;
507
+ plugins?: {
508
+ name: string;
509
+ options?: AXPOptionsData;
510
+ }[];
511
+ pages?: AXPEntityPage[];
512
+ groups?: AXPEntityPropertyGroup[];
513
+ properties: AXPEntityProperty[];
514
+ formats: {
515
+ individual: string;
516
+ plural: string;
517
+ lookup?: string;
518
+ displayName?: string;
519
+ searchResult?: {
520
+ title: string;
521
+ description?: string;
522
+ };
523
+ };
524
+ columns?: AXPEntityTableColumn[];
525
+ validations?: AXPValidationRules;
526
+ interfaces?: {
527
+ master?: {
528
+ single?: AXPEntityMasterSingleLayoutView;
529
+ list?: AXPEntityMasterListView;
530
+ create?: AXPEntityMasterCreateLayoutView;
531
+ update?: AXPEntityMasterUpdateLayoutView;
532
+ };
533
+ detail?: {
534
+ list?: AXPEntityDetailListView;
535
+ };
536
+ };
537
+ }
538
+
539
+ interface AXPFilterOperator {
540
+ name: string;
541
+ title: string;
542
+ hasValue: boolean;
543
+ }
544
+ declare const EQ_OPER: AXPFilterOperator;
545
+ declare const NOT_EQ_OPER: AXPFilterOperator;
546
+ declare const GT_OPER: AXPFilterOperator;
547
+ declare const LT_OPER: AXPFilterOperator;
548
+ declare const GTE_OPER: AXPFilterOperator;
549
+ declare const LTE_OPER: AXPFilterOperator;
550
+ declare const CONTAINS_OPER: AXPFilterOperator;
551
+ declare const NOT_CONTAINS_OPER: AXPFilterOperator;
552
+ declare const IN_OPER: AXPFilterOperator;
553
+ declare const STARTS_WITH_OPER: AXPFilterOperator;
554
+ declare const ENDS_WITH_OPER: AXPFilterOperator;
555
+ declare const IS_EMPTY_OPER: AXPFilterOperator;
556
+ declare const IS_NOT_EMPTY_OPER: AXPFilterOperator;
557
+ declare const BETWEEN_OPER: AXPFilterOperator;
558
+ declare const STRING_OPERATORS: AXPFilterOperator[];
559
+ declare const NUMBER_OPERATORS: AXPFilterOperator[];
560
+ declare const BOOLEAN_OPERATORS: AXPFilterOperator[];
561
+ declare const DATE_OPERATORS: AXPFilterOperator[];
562
+ declare const ALL_DEFAULT_OPERATORS: AXPFilterOperator[];
563
+
564
+ interface AXPHomePageDefinition {
565
+ key: string;
566
+ title: string;
567
+ route: Route;
568
+ }
569
+ declare const AXP_HOME_PAGES: InjectionToken<AXPHomePageDefinition[]>;
570
+ declare const AXP_HOME_PAGE_DEFAULT_KEY: InjectionToken<string>;
571
+
572
+ declare function provideDynamicHomePage(): EnvironmentProviders;
573
+
574
+ declare class AXPHomePageService {
575
+ private defaultHomePageKey;
576
+ private userHomePageKey;
577
+ private candidates;
578
+ private settingsService;
579
+ private sessionService;
580
+ private injector;
581
+ private originalConfig;
582
+ private loginPath;
583
+ private get flatCandidates();
584
+ constructor();
585
+ private init;
586
+ load(): Promise<void>;
587
+ getRegisteredList(): AXPHomePageDefinition[];
588
+ getRegisteredRoutes(): Routes;
589
+ getCurrent(): {
590
+ path: string;
591
+ title: string;
592
+ };
593
+ private findPath;
594
+ private buildFullPaths;
595
+ private refreshRoutes;
596
+ private applyMergedConfig;
597
+ navigateTo(): Promise<void>;
598
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPHomePageService, never>;
599
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPHomePageService>;
600
+ }
601
+
602
+ declare class AXPHomePageModule {
603
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPHomePageModule, never>;
604
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXPHomePageModule, never, never, never>;
605
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXPHomePageModule>;
606
+ }
607
+
608
+ interface AXPErrorHandler {
609
+ handleError(error: Error, next: (error: Error) => void): void;
610
+ }
611
+
612
+ declare class AXPErrorHandlerRegistryService {
613
+ private injector;
614
+ private errorHandlers;
615
+ constructor(injector: Injector);
616
+ register(...plugins: (new () => AXPErrorHandler)[]): void;
617
+ get handlers(): AXPErrorHandler[];
618
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPErrorHandlerRegistryService, never>;
619
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPErrorHandlerRegistryService>;
620
+ }
621
+
622
+ declare class AXPGlobalErrorHandler extends ErrorHandler {
623
+ private injector;
624
+ private registry;
625
+ constructor(injector: Injector, registry: AXPErrorHandlerRegistryService);
626
+ handleError(error: Error): void;
627
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPGlobalErrorHandler, never>;
628
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPGlobalErrorHandler>;
629
+ }
630
+
631
+ interface AXPCommonModuleConfigs {
632
+ errorHandlers: (new () => AXPErrorHandler)[];
633
+ }
634
+ declare class AXPCommonModule {
635
+ static forRoot(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule>;
636
+ static forChild(configs?: AXPCommonModuleConfigs): ModuleWithProviders<AXPCommonModule>;
637
+ /**
638
+ * @ignore
639
+ */
640
+ constructor(instances: any[]);
641
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommonModule, never>;
642
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXPCommonModule, never, [typeof i1.AXPWorkflowModule, typeof i2.AXPopupModule, typeof i3.AXDateTimeModule, typeof i4.AXToastModule, typeof i5.AXPModuleManifestModule], [typeof i6.RouterModule]>;
643
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXPCommonModule>;
644
+ }
645
+
646
+ declare const ENVIRONMENT: InjectionToken<any>;
647
+ declare const AXP_PLATFORM_CONFIG_TOKEN: InjectionToken<AXPPlatformConfigs>;
648
+ interface AXPPlatformConfigs {
649
+ title?: string;
650
+ copyright?: string;
651
+ logo?: {
652
+ icon: {
653
+ light: AXPLogoConfig;
654
+ dark: AXPLogoConfig;
655
+ };
656
+ text: {
657
+ light: AXPLogoConfig;
658
+ dark: AXPLogoConfig;
659
+ };
660
+ full: {
661
+ light: AXPLogoConfig;
662
+ dark: AXPLogoConfig;
663
+ };
664
+ };
665
+ network?: {
666
+ timeOut?: number;
667
+ };
668
+ }
669
+ declare const AXPPlatformDefaultConfigs: AXPPlatformConfigs;
670
+ declare function configPlatform(config?: Partial<AXPPlatformConfigs>): AXPPlatformConfigs;
671
+
672
+ declare enum AXPCommonSettings {
673
+ EnableOperationToasts = "Common:Setting:Notifications.EnableOperationToasts",
674
+ EntityFilterApplyMode = "Common:Setting:Entity.FilterApplyMode",
675
+ ShowCategoryColumnsByDefault = "Common:Setting:Entity.ShowCategoryColumnsByDefault",
676
+ ApplyLayoutOrdering = "Common:Setting:Entity.ApplyLayoutOrdering",
677
+ RedirectToDetailsAfterCreate = "Common:Setting:Entity.RedirectToDetailsAfterCreate",
678
+ ShowPageBadge = "Common:Setting:Entity.ShowPageBadge",
679
+ DebugMode = "PlatformDevTools:Setting:Developer.DebugMode"
680
+ }
681
+
682
+ declare const AXP_ROOT_CONFIG_TOKEN: InjectionToken<AXPRootConfigs>;
683
+ interface AXPRootConfigs {
684
+ baseUrl: string;
685
+ }
686
+
687
+ declare abstract class AXPDataProvider {
688
+ abstract insertOne(entity: any, entityItem: any): Promise<any>;
689
+ abstract insertMany(entity: any, entityList: any): Promise<any>;
690
+ abstract getOne(entity: any, id: string): Promise<any>;
691
+ abstract getMany(entity: any, params?: any): Promise<any>;
692
+ abstract updateOne(entity: any, id?: string, data?: {
693
+ [key: string]: any;
694
+ }): Promise<any>;
695
+ abstract deleteOne(entity: any, id: string): Promise<any>;
696
+ abstract getFirst(entity: any): Promise<any>;
697
+ abstract uploadFile(file: File, title: string, customUrl?: string): Promise<string>;
698
+ abstract updateFile(id: string, file: File, title: string, customUrl?: string): Promise<string>;
699
+ abstract uploadMultipleFiles(files: File[], title: string): Promise<string[]>;
700
+ abstract viewFile(id: string, name: string): Promise<Blob>;
701
+ abstract downloadFile(id: string, name: string): Promise<Blob>;
702
+ }
703
+
704
+ declare abstract class AXPFilterOperatorMiddlewareService {
705
+ /**
706
+ * Middleware to transform selected filters into corresponding operators.
707
+ * @param filters Array of selected filters (e.g., user input).
708
+ * @param customOperators Optional custom operators map to override default operators.
709
+ * @returns Transformed filters based on custom or default operators.
710
+ */
711
+ abstract transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];
712
+ /**
713
+ * Helper method to transform a single filter. This handles recursion for nested filters.
714
+ * @param filter A single filter object.
715
+ * @returns Transformed filter.
716
+ */
717
+ abstract transformFilter(filters: AXDataSourceFilterOption): AXDataSourceFilterOption;
718
+ abstract getOperator(key: string): AXDataSourceOperator;
719
+ }
720
+ declare class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {
721
+ private customOperatorService;
722
+ private operators;
723
+ transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];
724
+ transformFilter(filter: AXDataSourceFilterOption): AXDataSourceFilterOption;
725
+ getOperator(key: string): AXDataSourceOperator;
726
+ private getDefaultOperators;
727
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPFilterOperatorMiddlewareServiceImpl, never>;
728
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPFilterOperatorMiddlewareServiceImpl>;
729
+ }
730
+
731
+ declare abstract class AXPCustomOperatorService {
732
+ abstract getCustomOperators(): {
733
+ [key: string]: AXDataSourceOperator;
734
+ };
735
+ }
736
+ declare class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {
737
+ getCustomOperators(): {
738
+ [key: string]: AXDataSourceOperator;
739
+ };
740
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPCustomOperatorServiceImpl, never>;
741
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPCustomOperatorServiceImpl>;
742
+ }
743
+
744
+ declare enum AXPFileStorageStatus {
745
+ Temporary = "temporary",// File is not yet associated with a parent entity
746
+ Committed = "committed",// File is fully associated and in use
747
+ PendingDeletion = "pendingDeletion",// File is marked for deletion but not yet removed
748
+ Archived = "archived",// File is archived and no longer actively used
749
+ Error = "error"
750
+ }
751
+ /**
752
+ * Interface representing a file storage request in the Acorex platform.
753
+ */
754
+ interface AXPFileStorageCreateRequest {
755
+ /**
756
+ * The file to be stored.
757
+ */
758
+ file: File;
759
+ /**
760
+ * The name of the file.
761
+ */
762
+ name?: string;
763
+ /**
764
+ * The unique identifier of referenced entity.
765
+ */
766
+ refId: string;
767
+ /**
768
+ * The type of the referenced entity.
769
+ */
770
+ refType: string;
771
+ /**
772
+ * The category of the file. profile-picture, company-logo, policy, document, etc.
773
+ */
774
+ category: string;
775
+ /**
776
+ * The folder path where the file should be stored.
777
+ * If null, the service will resolve the path based on metadata, user, tenant, or default rules.
778
+ */
779
+ path?: string;
780
+ /**
781
+ * Metadata associated with the file.
782
+ */
783
+ metadata?: AXPMetaData;
784
+ /**
785
+ * Indicates whether the file is primary or not.
786
+ */
787
+ isPrimary?: boolean;
788
+ /**
789
+ * Indicates the status of the file.
790
+ */
791
+ status?: AXPFileStorageStatus;
792
+ }
793
+ interface AXPFileStorageUpdateRequest {
794
+ /**
795
+ * The unique identifier for the stored file.
796
+ */
797
+ fileId: string;
798
+ /**
799
+ * The folder path where the file should be stored.
800
+ * If null, the service will resolve the path based on metadata, user, tenant, or default rules.
801
+ */
802
+ path?: string;
803
+ /**
804
+ * The name of the file.
805
+ */
806
+ name?: string;
807
+ /**
808
+ * Metadata associated with the file.
809
+ */
810
+ metadata: AXPMetaData;
811
+ /**
812
+ * Indicates whether the file is primary or not.
813
+ */
814
+ isPrimary?: boolean;
815
+ }
816
+ interface AXPFileManyStorageInfo {
817
+ /**
818
+ * The unique identifier for the stored file.
819
+ */
820
+ id?: string;
821
+ /**
822
+ * The unique identifier for the stored file.
823
+ */
824
+ fileId: string;
825
+ /**
826
+ * The unique identifier of referenced entity.
827
+ */
828
+ refId: string;
829
+ /**
830
+ * The type of the referenced entity.
831
+ */
832
+ refType: string;
833
+ /**
834
+ * The size of the file in bytes.
835
+ */
836
+ size: number;
837
+ /**
838
+ * The name of the file.
839
+ */
840
+ name?: string;
841
+ /**
842
+ * The URL where the file can be accessed.
843
+ */
844
+ url?: string;
845
+ /**
846
+ * Optional title (e.g. for display in file list).
847
+ */
848
+ title?: string;
849
+ /**
850
+ * Optional description (e.g. for display in file list).
851
+ */
852
+ description?: string;
853
+ }
854
+ /**
855
+ * Represents information about a file stored in the AXP file storage system.
856
+ */
857
+ interface AXPFileStorageInfo {
858
+ /**
859
+ * The unique identifier for the stored file.
860
+ */
861
+ id?: string;
862
+ /**
863
+ * The unique identifier for the stored file.
864
+ */
865
+ fileId: string;
866
+ /**
867
+ * The unique identifier of referenced entity.
868
+ */
869
+ refId: string;
870
+ /**
871
+ * The type of the referenced entity.
872
+ */
873
+ refType: string;
874
+ /**
875
+ * The category of the file. profile-picture, company-logo, policy, document, etc.
876
+ */
877
+ category: string;
878
+ /**
879
+ * The URL where the file can be accessed.
880
+ */
881
+ url?: string;
882
+ /**
883
+ * The size of the file in bytes.
884
+ */
885
+ size: number;
886
+ /**
887
+ * The name of the file.
888
+ */
889
+ name?: string;
890
+ /**
891
+ * The MIME type of the file.
892
+ */
893
+ mimeType: string;
894
+ /**
895
+ * The date and time when the file was uploaded.
896
+ */
897
+ uploadedAt: Date;
898
+ /**
899
+ * Indicates whether the file is public or private.
900
+ */
901
+ isPublic: boolean;
902
+ /**
903
+ * Indicates whether the file is primary or not.
904
+ */
905
+ isPrimary?: boolean;
906
+ status: AXPFileStorageStatus;
907
+ binary: File;
908
+ }
909
+ interface AXPFileStorageInfo {
910
+ /**
911
+ * The unique identifier for the stored file.
912
+ */
913
+ id?: string;
914
+ /**
915
+ * The unique identifier for the stored file.
916
+ */
917
+ fileId: string;
918
+ /**
919
+ * The unique identifier of referenced entity.
920
+ */
921
+ refId: string;
922
+ /**
923
+ * The type of the referenced entity.
924
+ */
925
+ refType: string;
926
+ /**
927
+ * The category of the file. profile-picture, company-logo, policy, document, etc.
928
+ */
929
+ category: string;
930
+ /**
931
+ * The URL where the file can be accessed.
932
+ */
933
+ url?: string;
934
+ /**
935
+ * The size of the file in bytes.
936
+ */
937
+ size: number;
938
+ /**
939
+ * The name of the file.
940
+ */
941
+ name?: string;
942
+ /**
943
+ * The MIME type of the file.
944
+ */
945
+ mimeType: string;
946
+ /**
947
+ * The date and time when the file was uploaded.
948
+ */
949
+ uploadedAt: Date;
950
+ /**
951
+ * Indicates whether the file is public or private.
952
+ */
953
+ isPublic: boolean;
954
+ /**
955
+ * Indicates whether the file is primary or not.
956
+ */
957
+ isPrimary?: boolean;
958
+ status: AXPFileStorageStatus;
959
+ binary: File;
960
+ }
961
+ /**
962
+ * Represents information about a file stored in the AXP file storage system.
963
+ */
964
+ interface AXPFileStorageFindRequest {
965
+ /**
966
+ * The unique identifier of referenced entity.
967
+ */
968
+ refId?: string;
969
+ /**
970
+ * The type of the referenced entity.
971
+ */
972
+ refType?: string;
973
+ /**
974
+ * The category of the file. profile-picture, company-logo, policy, document, etc.
975
+ */
976
+ category?: string;
977
+ /**
978
+ * The MIME type of the file.
979
+ */
980
+ mimeType?: string;
981
+ /**
982
+ * Indicates whether the file is public or private.
983
+ */
984
+ isPublic?: boolean;
985
+ /**
986
+ * Indicates whether the file is primary or not.
987
+ */
988
+ isPrimary?: boolean;
989
+ /**
990
+ * The date and time range when the file was uploaded.
991
+ */
992
+ uploadedAtRange?: {
993
+ from: Date;
994
+ to: Date;
995
+ };
996
+ }
997
+
998
+ declare abstract class AXPFileStorageService {
999
+ abstract save(request: AXPFileStorageCreateRequest): Promise<AXPFileStorageInfo>;
1000
+ abstract update(request: AXPFileStorageUpdateRequest): Promise<AXPFileStorageInfo>;
1001
+ abstract find(request: AXPFileStorageFindRequest): Promise<AXPFileStorageInfo[]>;
1002
+ abstract findMany(ids: string[]): Promise<AXPFileManyStorageInfo[]>;
1003
+ abstract getInfo(fileId: string): Promise<AXPFileStorageInfo>;
1004
+ abstract remove(fileId: string): Promise<void>;
1005
+ abstract commit(fileId: string): Promise<void>;
1006
+ abstract markForDeletion(fileId: string): Promise<void>;
1007
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileStorageService, never>;
1008
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileStorageService>;
1009
+ }
1010
+
1011
+ /**
1012
+ * Capabilities API provided to file action providers.
1013
+ * These methods allow actions to interact with the file uploader widget.
1014
+ */
1015
+ interface AXCFileUploaderCapabilities {
1016
+ /**
1017
+ * Get all current files in the uploader.
1018
+ */
1019
+ getFiles: () => AXPFileListItem[];
1020
+ /**
1021
+ * Replace all files in the uploader.
1022
+ */
1023
+ setFiles: (files: AXPFileListItem[]) => void;
1024
+ /**
1025
+ * Add new files to the uploader.
1026
+ */
1027
+ addFiles: (files: AXPFileListItem[]) => void;
1028
+ /**
1029
+ * Update files matching a predicate.
1030
+ */
1031
+ updateFile: (predicate: (f: AXPFileListItem) => boolean, updater: (f: AXPFileListItem) => AXPFileListItem) => void;
1032
+ /**
1033
+ * Remove a file from the uploader.
1034
+ */
1035
+ removeFile: (file: AXPFileListItem) => void;
1036
+ /**
1037
+ * Clear all files from the uploader.
1038
+ */
1039
+ clear: () => void;
1040
+ /**
1041
+ * Get a file by its ID.
1042
+ */
1043
+ getFileById: (id: string) => AXPFileListItem | undefined;
1044
+ /**
1045
+ * Update a file by its ID.
1046
+ */
1047
+ updateFileById: (id: string, next: Partial<AXPFileListItem>) => void;
1048
+ }
1049
+ /**
1050
+ * A file uploader action that can be added by providers.
1051
+ */
1052
+ interface AXCFileUploaderAction {
1053
+ /**
1054
+ * Unique identifier for the action/plugin.
1055
+ */
1056
+ plugin: string;
1057
+ /**
1058
+ * Whether this action is global (available even if plugin is not explicitly enabled).
1059
+ */
1060
+ global?: boolean;
1061
+ /**
1062
+ * Display text for the action (optional if textKey is provided).
1063
+ */
1064
+ text?: string;
1065
+ /**
1066
+ * Translation key for the action text (optional if text is provided).
1067
+ */
1068
+ textKey?: string;
1069
+ /**
1070
+ * Icon class for the action (e.g., 'fa-light fa-file-arrow-up').
1071
+ */
1072
+ icon?: string;
1073
+ /**
1074
+ * Action execution handler.
1075
+ * Receives capabilities to interact with the file uploader.
1076
+ * @param capabilities The capabilities API for file operations.
1077
+ */
1078
+ run: (capabilities: AXCFileUploaderCapabilities) => void | Promise<void>;
1079
+ }
1080
+ /**
1081
+ * Payload passed to file action providers.
1082
+ */
1083
+ interface AXCFileUploaderActionsPayload {
1084
+ /**
1085
+ * Enabled plugins configuration.
1086
+ */
1087
+ plugins: {
1088
+ name: string;
1089
+ options?: unknown;
1090
+ }[];
1091
+ /**
1092
+ * List of plugin names to exclude.
1093
+ */
1094
+ excludePlugins: string[];
1095
+ /**
1096
+ * Capabilities API for interacting with the file uploader.
1097
+ */
1098
+ capabilities: AXCFileUploaderCapabilities;
1099
+ /**
1100
+ * Current list of actions (providers can add to this array).
1101
+ */
1102
+ actions: AXCFileUploaderAction[];
1103
+ /**
1104
+ * Widget options (optional, for accessing widget-specific settings).
1105
+ */
1106
+ options?: {
1107
+ /**
1108
+ * Whether multiple files are allowed.
1109
+ */
1110
+ multiple?: boolean;
1111
+ /**
1112
+ * Accepted file types (e.g., '.jpg,.png' or 'image/*').
1113
+ */
1114
+ accept?: string;
1115
+ };
1116
+ }
1117
+
1118
+ /**
1119
+ * Type for file action provider token (supports both direct and async providers).
1120
+ */
1121
+ type AXPFileActionProviderToken = AXPFileActionProvider | Promise<AXPFileActionProvider>;
1122
+ /**
1123
+ * File action provider interface.
1124
+ * Providers can add actions to the file uploader widget.
1125
+ */
1126
+ interface AXPFileActionProvider {
1127
+ /**
1128
+ * Unique key identifying this provider.
1129
+ * Should match the webhook key for backward compatibility: 'file-uploader.actions'
1130
+ */
1131
+ key: string;
1132
+ /**
1133
+ * Execute the provider to add actions.
1134
+ * @param payload The payload containing capabilities and current actions.
1135
+ * @returns The modified payload with new actions added.
1136
+ */
1137
+ execute(payload: AXCFileUploaderActionsPayload): Promise<AXCFileUploaderActionsPayload> | AXCFileUploaderActionsPayload;
1138
+ /**
1139
+ * Priority for execution order (lower numbers execute first).
1140
+ * Defaults to 0 if not specified.
1141
+ */
1142
+ priority?: number;
1143
+ }
1144
+ /**
1145
+ * Multi-provider injection token for file action providers.
1146
+ * Modules can provide multiple implementations using this token.
1147
+ */
1148
+ declare const AXP_FILE_ACTION_PROVIDER: InjectionToken<AXPFileActionProviderToken[]>;
1149
+
1150
+ /**
1151
+ * Service for managing file uploader actions.
1152
+ * Aggregates actions from multiple providers and filters them based on plugin configuration.
1153
+ * Wraps the hook system for backward compatibility.
1154
+ */
1155
+ declare class AXPFileActionsService {
1156
+ private readonly actionProviders;
1157
+ private readonly hookService;
1158
+ private readonly injector;
1159
+ /**
1160
+ * Get all actions from providers, filtered based on plugin configuration.
1161
+ * Wraps the hook system for backward compatibility.
1162
+ * @param payload Initial payload with capabilities and plugin configuration.
1163
+ * @returns Filtered list of actions.
1164
+ */
1165
+ getActions(payload: AXCFileUploaderActionsPayload): Promise<AXCFileUploaderAction[]>;
1166
+ /**
1167
+ * Resolve all providers (handle both direct providers and Promise<provider>).
1168
+ */
1169
+ private resolveProviders;
1170
+ /**
1171
+ * Filter actions based on enabled plugins and exclude list.
1172
+ */
1173
+ private filterActions;
1174
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileActionsService, never>;
1175
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileActionsService>;
1176
+ }
1177
+
1178
+ declare const UploadFromComputerActionProvider: AXPFileActionProvider;
1179
+
1180
+ interface AXPFileType {
1181
+ /**
1182
+ * The unique identifier for the file type.
1183
+ */
1184
+ /**
1185
+ * The name unique of the file type.
1186
+ */
1187
+ name: string;
1188
+ /**
1189
+ * The title of the file type.
1190
+ */
1191
+ title: string;
1192
+ /**
1193
+ * The description of the file type.
1194
+ */
1195
+ description?: string;
1196
+ extensions: AXPFileExtension[];
1197
+ /**
1198
+ * The icon of the file type.
1199
+ */
1200
+ icon?: string;
1201
+ /**
1202
+ * The metadata associated with the file type.
1203
+ */
1204
+ meta?: AXPMetaDataDefinition[];
1205
+ }
1206
+ interface AXPFileExtension {
1207
+ /**
1208
+ * The unique identifier for the file extension.
1209
+ */
1210
+ /**
1211
+ * The name unique of the file extension.
1212
+ */
1213
+ name: string;
1214
+ /**
1215
+ * The title of the file extension.
1216
+ */
1217
+ title: string;
1218
+ /**
1219
+ * The description of the file extension.
1220
+ */
1221
+ description?: string;
1222
+ /**
1223
+ * The icon of the file type.
1224
+ */
1225
+ icon?: string;
1226
+ /**
1227
+ * The color of the file type.
1228
+ */
1229
+ color?: string;
1230
+ /**
1231
+ * The metadata associated with the file extension.
1232
+ */
1233
+ meta?: AXPMetaDataDefinition[];
1234
+ }
1235
+
1236
+ interface AXPFileTypeInfoProvider {
1237
+ items(): Promise<AXPFileType[]>;
1238
+ }
1239
+ declare const AXP_FILE_TYPE_INFO_PROVIDER: InjectionToken<AXPFileTypeInfoProvider[]>;
1240
+ declare class AXPFileTypeProviderService implements AXPFileTypeInfoProvider {
1241
+ private providers;
1242
+ items(): Promise<AXPFileType[]>;
1243
+ get(name: string): Promise<AXPFileType | undefined>;
1244
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileTypeProviderService, never>;
1245
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileTypeProviderService>;
1246
+ }
1247
+
1248
+ declare class AXPStickyDirective {
1249
+ private element;
1250
+ private renderer;
1251
+ private zone;
1252
+ private cdr;
1253
+ stickyClass: string;
1254
+ stickyOffset: number;
1255
+ isStickyChange: EventEmitter<boolean>;
1256
+ private _isSticky;
1257
+ get isSticky(): boolean;
1258
+ set isSticky(value: boolean);
1259
+ private parentElement;
1260
+ private targetElement;
1261
+ private mutationObserver;
1262
+ private readonly onWindowResize;
1263
+ stickyParent: string | HTMLElement;
1264
+ stickyTarget: string;
1265
+ constructor(element: ElementRef<HTMLDivElement>, renderer: Renderer2, zone: NgZone, cdr: ChangeDetectorRef);
1266
+ ngAfterViewInit(): void;
1267
+ private initSticky;
1268
+ private getScrollTop;
1269
+ /**
1270
+ * Toggle stuck styling only while this element is visually pinned (matches `position: sticky; top: 0`).
1271
+ * Scroll-offset thresholds would stay true for every section already passed, so multiple stacked stickies
1272
+ * would all keep `--stuck`; geometry fixes that.
1273
+ */
1274
+ private computeShouldStick;
1275
+ private applyStickyStateFromScrollPosition;
1276
+ private onParentScroll;
1277
+ private toggleStickyClasses;
1278
+ ngOnDestroy(): void;
1279
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPStickyDirective, never>;
1280
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPStickyDirective, "[axpSticky]", ["axpSticky"], { "stickyClass": { "alias": "axpSticky"; "required": false; }; "stickyOffset": { "alias": "stickyOffset"; "required": false; }; "stickyParent": { "alias": "stickyParent"; "required": false; }; "stickyTarget": { "alias": "stickyTarget"; "required": false; }; }, { "isStickyChange": "isStickyChange"; }, never, never, true, never>;
1281
+ }
1282
+
1283
+ /**
1284
+ * Registered menu items (raw tree flattened) for select widgets via dataSource name {@link MENU_ITEMS_DATASOURCE_NAME}.
1285
+ */
1286
+ declare const MENU_ITEMS_DATASOURCE_NAME = "platform-menu-items";
1287
+ /**
1288
+ * Data source definition for menu items from {@link AXPMenuProviderService#rawItems}.
1289
+ */
1290
+ declare class AXPMenuItemsDataSourceDefinition implements AXPDataSourceDefinitionProvider {
1291
+ private readonly menuProviderService;
1292
+ items(): Promise<AXPDataSourceDefinition[]>;
1293
+ }
1294
+
1295
+ type AXPMenuInsertion = 'before' | 'after' | 'inside';
1296
+ type AXPMenuType = 'menu' | 'group' | 'break';
1297
+ type AXPMenuItemCommand = AXPNavigateActionCommand<'modal' | 'router'> | AXPExecuteCommand;
1298
+ interface AXPMenuItem {
1299
+ text: string;
1300
+ type?: AXPMenuType;
1301
+ name?: string;
1302
+ description?: string;
1303
+ icon?: string;
1304
+ priority?: number;
1305
+ children?: AXPMenuItem[];
1306
+ path?: string;
1307
+ command?: AXPMenuItemCommand | undefined;
1308
+ badgeKey?: string;
1309
+ data?: any;
1310
+ meta?: AXPMetaData;
1311
+ policy?: {
1312
+ permissions?: string[];
1313
+ features?: string[];
1314
+ };
1315
+ }
1316
+ interface AXPMenuFinderResult {
1317
+ readonly exists: boolean;
1318
+ insert(items: AXPMenuItem[], position: AXPMenuInsertion): void;
1319
+ remove(): void;
1320
+ update(updatedItem: Partial<AXPMenuItem>): void;
1321
+ addItems(items: AXPMenuItem[]): void;
1322
+ /**
1323
+ * Moves the item matched by the current `find` target to another place in the tree.
1324
+ * @param destination Name of the target menu item (group or item).
1325
+ * @param position `inside` — child of `destination` (default). `before` / `after` — sibling of `destination` in its parent's list.
1326
+ */
1327
+ moveTo(destination: string, position?: AXPMenuInsertion): void;
1328
+ }
1329
+ interface AXPMenuProviderContext {
1330
+ addItems(items: AXPMenuItem[]): void;
1331
+ find(target: string): AXPMenuFinderResult;
1332
+ }
1333
+
1334
+ interface AXPMenuProvider {
1335
+ provide(context: AXPMenuProviderContext): Promise<void>;
1336
+ }
1337
+ declare const AXP_MENU_PROVIDER: InjectionToken<AXPMenuProvider[]>;
1338
+ declare class AXPMenuProviderService {
1339
+ private providers;
1340
+ private middlewareRegistry;
1341
+ private cache;
1342
+ private pendingInserts;
1343
+ private pendingRemovals;
1344
+ private pendingUpdates;
1345
+ private pendingAdditions;
1346
+ private pendingMoves;
1347
+ /**
1348
+ * Observable for menu reload events
1349
+ * Emits when menu cache is cleared and consumers should reload
1350
+ */
1351
+ private menuReloadSubject;
1352
+ readonly menuReload$: rxjs.Observable<void>;
1353
+ /**
1354
+ * Get menu items with middlewares applied (for end-user display)
1355
+ */
1356
+ items(): Promise<AXPMenuItem[]>;
1357
+ /**
1358
+ * Get raw menu items WITHOUT middleware applied (for management/editing)
1359
+ * Used by menu management pages to show original items before customization
1360
+ */
1361
+ rawItems(): Promise<AXPMenuItem[]>;
1362
+ /**
1363
+ * Clear the cache to force reload of menu items
1364
+ * Notifies all subscribers to reload their menu data
1365
+ */
1366
+ clearCache(): void;
1367
+ /**
1368
+ * Apply middlewares in priority order using the enhanced context API
1369
+ */
1370
+ private applyMiddlewares;
1371
+ /**
1372
+ * Create provider context for menu providers
1373
+ */
1374
+ private createMenuProviderContext;
1375
+ private applyPendingOperations;
1376
+ private findItemWithParent;
1377
+ /**
1378
+ * Find menu item by name in the items tree (recursive search)
1379
+ */
1380
+ private findItemByName;
1381
+ private applyPendingMove;
1382
+ private itemIsInSubtreeOf;
1383
+ /**
1384
+ * Merge new item properties into existing item, handling children merge
1385
+ */
1386
+ private mergeMenuItem;
1387
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPMenuProviderService, never>;
1388
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPMenuProviderService>;
1389
+ }
1390
+
1391
+ /**
1392
+ * Rich context API for manipulating menu items within middleware
1393
+ * Provides helper methods to find, update, remove, and add menu items easily
1394
+ */
1395
+ interface AXPMenuMiddlewareContext {
1396
+ /**
1397
+ * Get all menu items
1398
+ */
1399
+ readonly items: AXPMenuItem[];
1400
+ /**
1401
+ * Find menu item(s) by name or pattern
1402
+ */
1403
+ find(nameOrPattern: string | RegExp): AXPMenuItemFinder;
1404
+ /**
1405
+ * Find menu item by name (exact match)
1406
+ */
1407
+ findByName(name: string): AXPMenuItemFinder;
1408
+ /**
1409
+ * Find menu items by pattern (regex or wildcard)
1410
+ */
1411
+ findByPattern(pattern: string | RegExp): AXPMenuItemFinder[];
1412
+ /**
1413
+ * Add new menu items to root level
1414
+ */
1415
+ add(...items: AXPMenuItem[]): AXPMenuMiddlewareContext;
1416
+ /**
1417
+ * Remove menu items by predicate
1418
+ */
1419
+ remove(predicate: (item: AXPMenuItem) => boolean): AXPMenuMiddlewareContext;
1420
+ /**
1421
+ * Sort all menu items recursively by priority
1422
+ */
1423
+ sort(): AXPMenuMiddlewareContext;
1424
+ /**
1425
+ * Get the final menu items array
1426
+ */
1427
+ toArray(): AXPMenuItem[];
1428
+ }
1429
+ /**
1430
+ * Helper for finding and manipulating a specific menu item
1431
+ */
1432
+ interface AXPMenuItemFinder {
1433
+ /**
1434
+ * Get the found menu item (or undefined)
1435
+ */
1436
+ get(): AXPMenuItem | undefined;
1437
+ /**
1438
+ * Check if menu item exists
1439
+ */
1440
+ exists(): boolean;
1441
+ /**
1442
+ * Update menu item properties
1443
+ */
1444
+ update(updater: Partial<AXPMenuItem> | ((item: AXPMenuItem) => Partial<AXPMenuItem>)): AXPMenuItemFinder;
1445
+ /**
1446
+ * Remove the menu item
1447
+ */
1448
+ remove(): AXPMenuItemFinder;
1449
+ /**
1450
+ * Hide the menu item (removes it from the menu)
1451
+ */
1452
+ hide(): AXPMenuItemFinder;
1453
+ /**
1454
+ * Show the menu item (currently a no-op as items are visible by default)
1455
+ * Note: To truly implement show, we'd need to track removed items
1456
+ */
1457
+ show(): AXPMenuItemFinder;
1458
+ /**
1459
+ * Set priority
1460
+ */
1461
+ setPriority(priority: number): AXPMenuItemFinder;
1462
+ /**
1463
+ * Add children to this menu item
1464
+ */
1465
+ addChildren(...children: AXPMenuItem[]): AXPMenuItemFinder;
1466
+ /**
1467
+ * Remove children by predicate
1468
+ */
1469
+ removeChildren(predicate: (child: AXPMenuItem) => boolean): AXPMenuItemFinder;
1470
+ /**
1471
+ * Move menu item to a different parent
1472
+ */
1473
+ moveTo(parentName: string | null | undefined): AXPMenuItemFinder;
1474
+ /**
1475
+ * Insert menu items before this item
1476
+ */
1477
+ insertBefore(...items: AXPMenuItem[]): AXPMenuItemFinder;
1478
+ /**
1479
+ * Insert menu items after this item
1480
+ */
1481
+ insertAfter(...items: AXPMenuItem[]): AXPMenuItemFinder;
1482
+ }
1483
+ /**
1484
+ * Middleware that processes menu items after all providers have executed
1485
+ * Middlewares are executed in order based on their priority (higher priority = earlier execution)
1486
+ */
1487
+ interface AXPMenuMiddleware {
1488
+ /**
1489
+ * Optional priority for execution order (higher = earlier)
1490
+ * Default: 0
1491
+ */
1492
+ readonly priority?: number;
1493
+ /**
1494
+ * Optional name for debugging and identification
1495
+ */
1496
+ readonly name?: string;
1497
+ /**
1498
+ * Process menu items using the rich context API
1499
+ * @param context - The menu middleware context with helper methods
1500
+ * @returns Processed context or void (context is mutable)
1501
+ */
1502
+ process(context: AXPMenuMiddlewareContext): Promise<void | AXPMenuMiddlewareContext>;
1503
+ }
1504
+ /**
1505
+ * Provider definition for registering middleware via multi-provider
1506
+ */
1507
+ interface AXPMenuMiddlewareProvider {
1508
+ /**
1509
+ * The middleware instance
1510
+ */
1511
+ middleware: AXPMenuMiddleware;
1512
+ /**
1513
+ * Optional priority override
1514
+ */
1515
+ priority?: number;
1516
+ }
1517
+ /**
1518
+ * Injection token for menu middlewares (multi-provider)
1519
+ */
1520
+ declare const AXP_MENU_MIDDLEWARE: InjectionToken<AXPMenuMiddleware[]>;
1521
+
1522
+ /**
1523
+ * Creates a rich context for menu manipulation
1524
+ * Similar to entity modifier context pattern
1525
+ */
1526
+ declare function createMenuContext(items: AXPMenuItem[]): AXPMenuMiddlewareContext;
1527
+
1528
+ /**
1529
+ * Central service for managing menu middlewares with priority-based ordering
1530
+ * Similar to token registry pattern used in identifier-management
1531
+ */
1532
+ declare class AXPMenuMiddlewareRegistry {
1533
+ /**
1534
+ * Manually registered middlewares
1535
+ */
1536
+ private readonly manualMiddlewares;
1537
+ /**
1538
+ * Provider-based middlewares (multi-provider injection)
1539
+ */
1540
+ private readonly providerMiddlewares;
1541
+ /**
1542
+ * Manually register a middleware
1543
+ * @param middleware - The middleware to register
1544
+ */
1545
+ register(middleware: AXPMenuMiddleware): void;
1546
+ /**
1547
+ * Unregister a middleware by name
1548
+ * @param name - The name of the middleware to remove
1549
+ */
1550
+ unregister(name: string): void;
1551
+ /**
1552
+ * Get a specific middleware by name
1553
+ * @param name - The middleware name
1554
+ */
1555
+ get(name: string): AXPMenuMiddleware | undefined;
1556
+ /**
1557
+ * Get all middlewares sorted by priority (highest first)
1558
+ * Combines provider-based and manually registered middlewares
1559
+ */
1560
+ list(): AXPMenuMiddleware[];
1561
+ /**
1562
+ * Check if a middleware exists
1563
+ * @param name - The middleware name
1564
+ */
1565
+ exists(name: string): boolean;
1566
+ /**
1567
+ * Clear all manually registered middlewares
1568
+ * Provider-based middlewares are not affected
1569
+ */
1570
+ clear(): void;
1571
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPMenuMiddlewareRegistry, never>;
1572
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPMenuMiddlewareRegistry>;
1573
+ }
1574
+
1575
+ /**
1576
+ * Helper function to provide menu middlewares with proper DI setup
1577
+ * Similar to provideCommandMiddleware pattern
1578
+ *
1579
+ * @example
1580
+ * ```typescript
1581
+ * // In app.config.ts or module providers
1582
+ * export const appConfig: ApplicationConfig = {
1583
+ * providers: [
1584
+ * provideMenuMiddleware([
1585
+ * customizationMiddleware,
1586
+ * securityMiddleware,
1587
+ * loggingMiddleware
1588
+ * ])
1589
+ * ]
1590
+ * };
1591
+ * ```
1592
+ */
1593
+ declare function provideMenuMiddleware(middlewares: AXPMenuMiddleware[]): EnvironmentProviders;
1594
+ /**
1595
+ * Helper to create a class-based middleware with priority
1596
+ *
1597
+ * @example
1598
+ * ```typescript
1599
+ * const myMiddleware = createMenuMiddleware({
1600
+ * name: 'my-middleware',
1601
+ * priority: 100,
1602
+ * process: async (context) => {
1603
+ * context.find('dashboard').setPriority(1);
1604
+ * }
1605
+ * });
1606
+ * ```
1607
+ */
1608
+ declare function createMenuMiddleware(config: {
1609
+ name: string;
1610
+ priority?: number;
1611
+ process: (context: AXPMenuMiddlewareContext) => Promise<void>;
1612
+ }): AXPMenuMiddleware;
1613
+
1614
+ declare const AXPMenuService: i0.Type<{
1615
+ items: i0.Signal<AXPMenuItem[]>;
1616
+ selectedMenuItem: _ngrx_signals.DeepSignal<{
1617
+ item: AXPMenuItem | null;
1618
+ isFullMatch: boolean;
1619
+ }>;
1620
+ setMenuItems: (items: AXPMenuItem[]) => void;
1621
+ selectMenuItemByRoute: (path: string) => void;
1622
+ executeCommand: (item: AXPMenuItem) => void;
1623
+ isItemOpen: (item: AXPMenuItem) => boolean;
1624
+ } & _ngrx_signals.StateSource<{
1625
+ items: AXPMenuItem[];
1626
+ selectedMenuItem: {
1627
+ item: AXPMenuItem | null;
1628
+ isFullMatch: boolean;
1629
+ };
1630
+ }>>;
1631
+
1632
+ /**
1633
+ * Service for checking menu item visibility based on permissions, features, and children.
1634
+ * This service helps filter out empty menu items that have no visible children.
1635
+ */
1636
+ declare class AXPMenuVisibilityService {
1637
+ private sessionService;
1638
+ /**
1639
+ * Checks if a menu item should be visible based on permissions and features.
1640
+ */
1641
+ isItemVisible(item: AXPMenuItem): boolean;
1642
+ /**
1643
+ * Recursively checks if a menu item has any visible children.
1644
+ * @param item The menu item to check
1645
+ * @param getRouterLink Optional function to check if an item has a router link
1646
+ */
1647
+ hasVisibleChildren(item: AXPMenuItem, getRouterLink?: (item: AXPMenuItem) => unknown): boolean;
1648
+ /**
1649
+ * Determines if a menu item should be rendered.
1650
+ * A menu item should be rendered if:
1651
+ * 1. It has a routerLink, OR
1652
+ * 2. It has visible children, OR
1653
+ * 3. It has a command (for non-router navigation)
1654
+ *
1655
+ * @param item The menu item to check
1656
+ * @param getRouterLink Optional function to check if an item has a router link
1657
+ */
1658
+ shouldRenderMenuItem(item: AXPMenuItem, getRouterLink?: (item: AXPMenuItem) => unknown): boolean;
1659
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPMenuVisibilityService, never>;
1660
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPMenuVisibilityService>;
1661
+ }
1662
+
1663
+ interface AXPSearchDefinitionDisplayFormat {
1664
+ title?: string;
1665
+ description?: string;
1666
+ icon?: string;
1667
+ id?: string;
1668
+ }
1669
+ interface AXPSearchDefinition {
1670
+ name: string;
1671
+ title: string;
1672
+ group: string;
1673
+ icon: string;
1674
+ order: number;
1675
+ format: AXPSearchDefinitionDisplayFormat;
1676
+ actions: AXPSearchAction[];
1677
+ }
1678
+ interface AXPSearchParentResult {
1679
+ title: string;
1680
+ data?: any;
1681
+ }
1682
+ interface AXPSearchResult {
1683
+ id?: string;
1684
+ group: string;
1685
+ data?: any;
1686
+ title?: string;
1687
+ description?: string;
1688
+ icon?: string;
1689
+ command: AXPExecuteCommand;
1690
+ parent?: AXPSearchParentResult;
1691
+ }
1692
+ interface AXPSearchDisplayGroupResult {
1693
+ name: string;
1694
+ title: string;
1695
+ order: number;
1696
+ children: AXPSearchDisplayResult[];
1697
+ }
1698
+ interface AXPSearchDisplayResult {
1699
+ id: string;
1700
+ definitionName?: string;
1701
+ definitionTitle?: string;
1702
+ name: string;
1703
+ title: string;
1704
+ description?: string;
1705
+ icon: string;
1706
+ data?: any;
1707
+ order?: any;
1708
+ command: AXPExecuteCommand;
1709
+ parent?: AXPSearchParentResult;
1710
+ actions: AXPSearchAction[];
1711
+ }
1712
+ interface AXPSearchDisplayResultForSave {
1713
+ id: string;
1714
+ name: string;
1715
+ title: string;
1716
+ description?: string;
1717
+ icon: string;
1718
+ command: AXPExecuteCommand;
1719
+ parent?: {
1720
+ title: string;
1721
+ description?: string;
1722
+ };
1723
+ }
1724
+ interface AXPSearchAction extends Partial<AXPCommandActionLook> {
1725
+ name: string;
1726
+ type: AXPSystemActionType | string;
1727
+ priority: AXPCommandActionPriority;
1728
+ separated?: boolean;
1729
+ }
1730
+
1731
+ declare class AXPSearchDefinitionProviderContext {
1732
+ private definitions;
1733
+ private definitionMap;
1734
+ addDefinition(name: string, title: string, group: string, icon: string, order: number, options?: {
1735
+ format?: AXPSearchDefinitionDisplayFormat;
1736
+ actions?: AXPSearchAction[];
1737
+ }): AXPSearchDefinitionBuilder;
1738
+ getDefinitions(): AXPSearchDefinition[];
1739
+ hasEntity(name: string): boolean;
1740
+ getDefinition(name: string): AXPSearchDefinition | undefined;
1741
+ }
1742
+ declare class AXPSearchDefinitionBuilder {
1743
+ private context;
1744
+ private definition;
1745
+ constructor(context: AXPSearchDefinitionProviderContext, definition: AXPSearchDefinition);
1746
+ addAction(name: string): AXPSearchDefinitionActionBuilder;
1747
+ action(name: string): AXPSearchDefinitionActionBuilder | null;
1748
+ endEntity(): AXPSearchDefinitionProviderContext;
1749
+ }
1750
+ declare class AXPSearchDefinitionActionBuilder {
1751
+ private entityBuilder;
1752
+ constructor(entityBuilder: AXPSearchDefinitionBuilder);
1753
+ endAction(): AXPSearchDefinitionBuilder;
1754
+ }
1755
+
1756
+ interface AXPSearchDefinitionProvider {
1757
+ provide(context: AXPSearchDefinitionProviderContext): Promise<void>;
1758
+ }
1759
+ declare const AXP_SEARCH_DEFINITION_PROVIDER: InjectionToken<AXPSearchDefinitionProvider[]>;
1760
+ declare class AXPSearchDefinitionProviderService {
1761
+ private providers;
1762
+ private cache;
1763
+ private load;
1764
+ getListAsync(): Promise<AXPSearchDefinition[]>;
1765
+ getList(): AXPSearchDefinition[];
1766
+ findDefinition(definitionName: string): AXPSearchDefinition;
1767
+ findDefinitionByGroup(definitionGroup: string): AXPSearchDefinition;
1768
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPSearchDefinitionProviderService, never>;
1769
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPSearchDefinitionProviderService>;
1770
+ }
1771
+
1772
+ interface AXPSearchProvider {
1773
+ search(text: string): Promise<AXPSearchResult[]>;
1774
+ }
1775
+ declare abstract class AXPSearchCommandProvider {
1776
+ abstract commands: AXPSearchResult[];
1777
+ search(text: string): Promise<AXPSearchResult[]>;
1778
+ }
1779
+
1780
+ declare const AXP_SEARCH_PROVIDER: InjectionToken<AXPSearchProvider[]>;
1781
+ declare class AXPSearchService {
1782
+ private providers;
1783
+ private definitionService;
1784
+ private formatService;
1785
+ private translationService;
1786
+ search(text: string): Promise<AXPSearchDisplayGroupResult[]>;
1787
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPSearchService, never>;
1788
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPSearchService>;
1789
+ }
1790
+
1791
+ /**
1792
+ * Shared utility for creating Entity:Create command options used in search command providers.
1793
+ * Use with command: { name: 'Entity:Create', options: createEntityCommandOptions(...) }
1794
+ */
1795
+ declare function createEntityCommandOptions(entityKey: string, entityInfo: {
1796
+ name: string;
1797
+ module: string;
1798
+ title: string;
1799
+ }): Record<string, unknown>;
1800
+ /**
1801
+ * Creates a search command for "Create {Entity}" with consistent i18n pattern.
1802
+ * Use titleKey/descriptionKey from module (e.g. @module:entity.permissions.create.title).
1803
+ * Standard: "Create {Entity}" for title, "Create new {entities}" for description.
1804
+ */
1805
+ declare function createEntitySearchCommand(config: {
1806
+ id: string;
1807
+ entityKey: string;
1808
+ entityInfo: {
1809
+ name: string;
1810
+ module: string;
1811
+ title: string;
1812
+ };
1813
+ titleKey: string;
1814
+ descriptionKey?: string;
1815
+ icon: string;
1816
+ }): AXPSearchResult;
1817
+
1818
+ declare class AXPMenuSearchDefinitionProvider implements AXPSearchDefinitionProvider {
1819
+ provide(context: AXPSearchDefinitionProviderContext): Promise<void>;
1820
+ }
1821
+
1822
+ interface AXPMenuItemWithParent extends AXPMenuItem {
1823
+ parent?: AXPMenuItem;
1824
+ }
1825
+ declare class AXPMenuSearchProvider implements AXPSearchProvider {
1826
+ menuService: AXPMenuProviderService;
1827
+ translateService: AXTranslationService;
1828
+ search(text: string): Promise<AXPSearchResult[]>;
1829
+ /**
1830
+ * Recursively searches AXPMenuItem and its children for a matching text.
1831
+ *
1832
+ * @param menuItems - The array of AXPMenuItem to search in.
1833
+ * @param searchText - The text to search for (case-insensitive).
1834
+ * @returns An array of AXPMenuItem that match the search text.
1835
+ */
1836
+ private searchMenuItems;
1837
+ }
1838
+
1839
+ declare class AXPFooterTextSlotComponent {
1840
+ text: string;
1841
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPFooterTextSlotComponent, never>;
1842
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPFooterTextSlotComponent, "ng-component", never, { "text": { "alias": "text"; "required": false; }; }, {}, never, never, true, never>;
1843
+ }
1844
+
1845
+ declare class AXPNavBarSlotComponent {
1846
+ items: AXPMenuItem[];
1847
+ protected handleCommand(action?: AXPMenuItemCommand): void;
1848
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPNavBarSlotComponent, never>;
1849
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPNavBarSlotComponent, "ng-component", never, { "items": { "alias": "items"; "required": false; }; }, {}, never, never, true, never>;
1850
+ }
1851
+
1852
+ interface AXPLockRequest {
1853
+ refId: string;
1854
+ refType: string;
1855
+ type: AXPLockType;
1856
+ date: string;
1857
+ expireAt?: Date;
1858
+ lockedBy: AXPEntityReference;
1859
+ }
1860
+ interface AXPUnLockRequest {
1861
+ refId: string;
1862
+ refType: string;
1863
+ type: AXPLockType;
1864
+ }
1865
+ interface AXPLockGetInfoRequest {
1866
+ refId: string;
1867
+ refType: string;
1868
+ type?: AXPLockType;
1869
+ }
1870
+ type AXPLockType = 'admin' | 'user';
1871
+ interface AXPLockInfo {
1872
+ id: string;
1873
+ refId: string;
1874
+ refType: string;
1875
+ type: AXPLockType;
1876
+ date: string;
1877
+ expireAt?: Date;
1878
+ lockedBy: AXPApplicationUserReference;
1879
+ }
1880
+
1881
+ declare abstract class AXPLockService {
1882
+ abstract lock(request: AXPLockRequest): Promise<AXPLockInfo>;
1883
+ abstract unlock(request: AXPUnLockRequest): Promise<void>;
1884
+ abstract check(request: AXPLockGetInfoRequest): Promise<boolean>;
1885
+ abstract getInfo(request: AXPLockGetInfoRequest): Promise<AXPLockInfo>;
1886
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPLockService, never>;
1887
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPLockService>;
1888
+ }
1889
+
1890
+ /**
1891
+ * Synchronous access to default multi-language behavior for named entity fields and widget
1892
+ * property bindings. Mirrors {@link AXPLayoutOrderingConfigService}: avoids async in entity
1893
+ * modifiers and startup deadlocks.
1894
+ */
1895
+ declare class AXPDefaultMultiLanguageConfigService {
1896
+ private readonly settingsService;
1897
+ private readonly _applyDefault;
1898
+ private syncScheduled;
1899
+ constructor();
1900
+ getApplyDefaultMultiLanguage(): boolean;
1901
+ private syncFromSettings;
1902
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDefaultMultiLanguageConfigService, never>;
1903
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPDefaultMultiLanguageConfigService>;
1904
+ }
1905
+
1906
+ /**
1907
+ * Shared multi-language defaults for entity properties and widget property bindings.
1908
+ *
1909
+ * **Circular dependencies:** use only `import type` for `AXPWidgetProperty` and
1910
+ * `AXPEntityProperty` so this module has no runtime imports from widget-core or application
1911
+ * types — `@acorex/platform/layout/widget-core` does not import `@acorex/platform/common`.
1912
+ */
1913
+
1914
+ /**
1915
+ * Widget types that support the multiLanguage option (text / rich text editors).
1916
+ */
1917
+ declare const MULTILANGUAGE_CAPABLE_WIDGET_TYPES: Set<string>;
1918
+ /**
1919
+ * Common property names / binding path segments that are usually translatable when the feature is
1920
+ * enabled in settings. Explicit `multiLanguage` on the property still wins.
1921
+ */
1922
+ declare const DEFAULT_MULTILANGUAGE_FIELD_NAMES: Set<string>;
1923
+ declare function shouldApplyDefaultMultiLanguageToEntityProperty(prop: AXPEntityProperty): boolean;
1924
+ declare function shouldApplyDefaultMultiLanguageToWidgetProperty(prop: AXPWidgetProperty): boolean;
1925
+ /**
1926
+ * Leaf widget nodes in entity `schema.interface` trees (e.g. GridLayout → RichText under `pre` /
1927
+ * `post`) — same path/type rules as {@link shouldApplyDefaultMultiLanguageToWidgetProperty}, without
1928
+ * `schema.dataType` (nodes do not carry entity schema).
1929
+ */
1930
+ declare function shouldApplyDefaultMultiLanguageToWidgetNode(node: AXPWidgetNode): boolean;
1931
+ /**
1932
+ * When {@link AXPDefaultMultiLanguageConfigService#getApplyDefaultMultiLanguage} is true, sets
1933
+ * `options.multiLanguage` on eligible editor leaves inside an entity property's widget tree
1934
+ * (including nested layouts). Used by entity middleware so object fields (e.g. `pre`, `post`) are
1935
+ * covered, not only top-level string properties.
1936
+ */
1937
+ declare function withDefaultMultiLanguageOnWidgetNodeTree(root: AXPWidgetNode | undefined | null, applyDefault: boolean): AXPWidgetNode | undefined | null;
1938
+ /**
1939
+ * When {@link AXPDefaultMultiLanguageConfigService#getApplyDefaultMultiLanguage} is true, sets
1940
+ * `schema.interface.options.multiLanguage` for eligible string widget properties (same rules as
1941
+ * entity middleware), unless the property already specifies `multiLanguage`.
1942
+ */
1943
+ declare function withDefaultMultiLanguageOnWidgetProperty(prop: AXPWidgetProperty, applyDefault: boolean): AXPWidgetProperty;
1944
+
1945
+ interface AXPSettingValueProvider {
1946
+ get scope(): AXPPlatformScope;
1947
+ load(): Promise<AXPSettingValue[]>;
1948
+ set(key: string, value: any): Promise<void>;
1949
+ set(values: Record<string, any>): Promise<void>;
1950
+ }
1951
+ /**
1952
+ * Provider interface for supplying default setting values from higher layers (e.g., app, mocks, API).
1953
+ * Providers are merged by ascending priority; later providers override earlier values on key conflicts.
1954
+ */
1955
+ interface AXPSettingDefaultValuesProvider {
1956
+ /** Merge order; lower numbers are applied first. Default is 0. */
1957
+ priority?: number;
1958
+ /** Returns a flat map of setting key to default value. */
1959
+ provide(): Promise<Record<string, unknown>>;
1960
+ }
1961
+ interface AXPSettingValue {
1962
+ key: string;
1963
+ value: any;
1964
+ }
1965
+ interface AXPSettingChangedEvent {
1966
+ scope: AXPPlatformScope;
1967
+ keys: string[];
1968
+ values: Record<string, any>;
1969
+ entries: AXPSettingValue[];
1970
+ }
1971
+ interface AXPSettingDefinition {
1972
+ name: string;
1973
+ title: string;
1974
+ description?: string;
1975
+ widget: AXPWidgetNode;
1976
+ layout?: AXPGridLayoutOptions;
1977
+ scope: AXPPlatformScopeKey;
1978
+ isRequired?: boolean;
1979
+ isInherited?: boolean;
1980
+ isEncrypted?: boolean;
1981
+ defaultValue?: unknown;
1982
+ value?: unknown;
1983
+ }
1984
+ interface AXPSettingDefinitionGroup {
1985
+ name: string;
1986
+ title: string;
1987
+ icon?: string;
1988
+ description?: string;
1989
+ groups: AXPSettingDefinitionGroup[];
1990
+ sections: AXPSettingDefinitionSection[];
1991
+ }
1992
+ interface AXPSettingDefinitionSection {
1993
+ name: string;
1994
+ title: string;
1995
+ description?: string;
1996
+ settings: AXPSettingDefinition[];
1997
+ }
1998
+ interface AXPGroupSearchResult {
1999
+ breadcrumb: {
2000
+ name: string;
2001
+ title: string;
2002
+ description?: string;
2003
+ }[];
2004
+ sections: AXPSettingDefinitionSection[] | null;
2005
+ groups: AXPSettingDefinitionGroup[] | null;
2006
+ }
2007
+
2008
+ declare class AXPSettingDefinitionProviderContext {
2009
+ private rootGroups;
2010
+ private groupMap;
2011
+ addGroup(name: string, title: string, description?: string, icon?: string): AXPSettingDefinitionGroupBuilder;
2012
+ group(name: string): AXPSettingDefinitionGroupBuilder | null;
2013
+ getGroups(): AXPSettingDefinitionGroup[];
2014
+ hasGroup(name: string): boolean;
2015
+ getGroup(name: string): AXPSettingDefinitionGroup | undefined;
2016
+ }
2017
+ declare class AXPSettingDefinitionGroupBuilder {
2018
+ private context;
2019
+ private group;
2020
+ constructor(context: AXPSettingDefinitionProviderContext, group: AXPSettingDefinitionGroup);
2021
+ addSection(name: string, title: string, description?: string): AXPSettingDefinitionSectionBuilder;
2022
+ section(name: string): AXPSettingDefinitionSectionBuilder | null;
2023
+ addGroup(name: string, title: string, description?: string, icon?: string): AXPSettingDefinitionGroupBuilder;
2024
+ endGroup(): AXPSettingDefinitionProviderContext;
2025
+ }
2026
+ declare class AXPSettingDefinitionSectionBuilder {
2027
+ private groupBuilder;
2028
+ private section;
2029
+ constructor(groupBuilder: AXPSettingDefinitionGroupBuilder, section: AXPSettingDefinitionSection);
2030
+ addSetting(setting: {
2031
+ key: string;
2032
+ title: string;
2033
+ scope: AXPPlatformScopeKey;
2034
+ widget: {
2035
+ type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
2036
+ options?: AXPOptionsData;
2037
+ triggers?: AXPWidgetTriggers;
2038
+ layout?: AXPGridLayoutOptions;
2039
+ };
2040
+ description?: string;
2041
+ isRequired?: boolean;
2042
+ isInherited?: boolean;
2043
+ isEncrypted?: boolean;
2044
+ defaultValue?: unknown;
2045
+ valueTransforms?: AXPValueTransformerFunctions;
2046
+ validationRules?: AXPValidationRules;
2047
+ }): this;
2048
+ endSection(): AXPSettingDefinitionGroupBuilder;
2049
+ }
2050
+
2051
+ interface AXPSettingDefinitionProvider {
2052
+ provide(context: AXPSettingDefinitionProviderContext): Promise<void>;
2053
+ }
2054
+ declare const AXP_SETTING_DEFINITION_PROVIDER: InjectionToken<AXPSettingDefinitionProvider[]>;
2055
+ declare class AXPSettingDefinitionProviderService {
2056
+ private providers;
2057
+ private cache;
2058
+ private load;
2059
+ reload(): Promise<void>;
2060
+ getListAsync(scope: AXPPlatformScopeKey): Promise<AXPSettingDefinitionGroup[]>;
2061
+ getList(scope: AXPPlatformScopeKey): AXPSettingDefinitionGroup[];
2062
+ defaultValues(): Promise<Record<string, unknown>>;
2063
+ findGroup(scope: AXPPlatformScopeKey, groupName: string): AXPGroupSearchResult;
2064
+ private searchRecursive;
2065
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPSettingDefinitionProviderService, never>;
2066
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPSettingDefinitionProviderService>;
2067
+ }
2068
+ declare const AXP_SETTING_DEFAULT_VALUES_PROVIDERS: InjectionToken<AXPSettingDefaultValuesProvider[]>;
2069
+ declare class AXPSettingDefaultValuesAggregatorService {
2070
+ private readonly definitionService;
2071
+ private readonly providers;
2072
+ getDefaults(): Promise<Record<string, unknown>>;
2073
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPSettingDefaultValuesAggregatorService, never>;
2074
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPSettingDefaultValuesAggregatorService>;
2075
+ }
2076
+
2077
+ declare const AXP_SETTING_VALUE_PROVIDER: InjectionToken<AXPSettingValueProvider[]>;
2078
+
2079
+ interface AXPSettingsServiceInterface {
2080
+ load(): Promise<AXPSettingValue[]>;
2081
+ get<T = any>(key: string): Promise<T>;
2082
+ defaultValues(scope: AXPPlatformScope): Promise<Record<string, unknown>>;
2083
+ scope(scope: AXPPlatformScope): ScopedSettingService;
2084
+ }
2085
+ declare class AXPSettingsService implements AXPSettingsServiceInterface {
2086
+ private readonly providers;
2087
+ private readonly injector;
2088
+ private readonly eventService;
2089
+ private readonly sessionService;
2090
+ private readonly scopedSettingsCache;
2091
+ readonly onChanged: Subject<AXPSettingChangedEvent>;
2092
+ readonly onLoaded: Subject<void>;
2093
+ constructor();
2094
+ reload(): Promise<void>;
2095
+ load(): Promise<AXPSettingValue[]>;
2096
+ get<T = any>(key: string): Promise<T>;
2097
+ defaultValues(scope: AXPPlatformScope): Promise<Record<string, unknown>>;
2098
+ scope(scope: AXPPlatformScope): ScopedSettingService;
2099
+ invokeChangeEvent(event: AXPSettingChangedEvent): void;
2100
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPSettingsService, never>;
2101
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPSettingsService>;
2102
+ }
2103
+ declare class ScopedSettingService {
2104
+ private parent;
2105
+ private provider;
2106
+ private scopeCache;
2107
+ constructor(parent: AXPSettingsService, provider: AXPSettingValueProvider, scopeCache: Map<string, any>);
2108
+ get<T = any>(key: string): Promise<T>;
2109
+ all(): Promise<any>;
2110
+ defaultValues(): Promise<Record<string, unknown>>;
2111
+ set<T = any>(key: string, value: T): Promise<void>;
2112
+ set<T = any>(values: Record<string, T>): Promise<void>;
2113
+ update<T = any>(key: string, updateFn: (currentValue: T) => T): Promise<void>;
2114
+ }
2115
+
2116
+ /**
2117
+ * Exposes platform settings in expression strings, e.g.
2118
+ * `{{ settings.get('Common:Setting:Entity.ShowPageBadge') }}`.
2119
+ */
2120
+ declare class AXPSettingsEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {
2121
+ private readonly settingsService;
2122
+ provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
2123
+ }
2124
+
2125
+ /**
2126
+ * Regional and locale-related setting keys used by platform widgets and components.
2127
+ * Most values use the `LocaleManagement:Setting:Regional.*` prefix; definitions live in the locale-management module where applicable.
2128
+ */
2129
+ declare enum AXPRegionalSetting {
2130
+ LocaleProfile = "LocaleManagement:Setting:Regional.LocaleProfile",
2131
+ TimeZone = "LocaleManagement:Setting:Regional.TimeZone",
2132
+ Language = "LocaleManagement:Setting:Regional.Language",
2133
+ Country = "LocaleManagement:Setting:Regional.Country",
2134
+ Calendar = "LocaleManagement:Setting:Regional.Calendar",
2135
+ FirstDayOfWeek = "LocaleManagement:Setting:Regional.FirstDayOfWeek",
2136
+ WeekendDays = "LocaleManagement:Setting:Regional.WeekendDays",
2137
+ ShortDate = "LocaleManagement:Setting:Regional.ShortDate",
2138
+ MediumDate = "LocaleManagement:Setting:Regional.MediumDate",
2139
+ LongDate = "LocaleManagement:Setting:Regional.LongDate",
2140
+ ShortTime = "LocaleManagement:Setting:Regional.ShortTime",
2141
+ MediumTime = "LocaleManagement:Setting:Regional.MediumTime",
2142
+ LongTime = "LocaleManagement:Setting:Regional.LongTime",
2143
+ MeasurementUnits = "LocaleManagement:Setting:Regional.MeasurementUnits",
2144
+ TemperatureUnits = "LocaleManagement:Setting:Regional.TemperatureUnits",
2145
+ DistanceUnits = "LocaleManagement:Setting:Regional.DistanceUnits",
2146
+ WeightUnits = "LocaleManagement:Setting:Regional.WeightUnits",
2147
+ VolumeUnits = "LocaleManagement:Setting:Regional.VolumeUnits",
2148
+ SpeedUnits = "LocaleManagement:Setting:Regional.SpeedUnits",
2149
+ AreaUnits = "LocaleManagement:Setting:Regional.AreaUnits",
2150
+ /** Default multi-language behavior for standard text field names; defined in locale-management `AXMRegionalSettingProvider`. */
2151
+ MultiLanguageSupport = "LocaleManagement:Setting:Regional.MultiLanguageSupport"
2152
+ }
2153
+
2154
+ /**
2155
+ * Status Definition Types
2156
+ * Defines the structure for status definitions and their transitions
2157
+ */
2158
+ /**
2159
+ * Status definition with metadata
2160
+ */
2161
+ interface AXPStatusDefinition {
2162
+ /**
2163
+ * Unique identifier for the status
2164
+ */
2165
+ name: string;
2166
+ /**
2167
+ * Display title for the status
2168
+ */
2169
+ title: string;
2170
+ /**
2171
+ * Color code or semantic color name for the status
2172
+ */
2173
+ color: string;
2174
+ /**
2175
+ * Optional icon class (e.g., 'fa-light fa-check')
2176
+ */
2177
+ icon?: string;
2178
+ /**
2179
+ * Optional description
2180
+ */
2181
+ description?: string;
2182
+ /**
2183
+ * Optional order for sorting
2184
+ */
2185
+ order?: number;
2186
+ /**
2187
+ * Whether this is a final status (end state)
2188
+ */
2189
+ isFinal?: boolean;
2190
+ /**
2191
+ * Whether this is an initial status (starting state)
2192
+ */
2193
+ isInitial?: boolean;
2194
+ /**
2195
+ * Whether list views should be automatically generated for this status
2196
+ */
2197
+ generateView?: boolean;
2198
+ }
2199
+ /**
2200
+ * Status transition definition
2201
+ */
2202
+ interface AXPStatusTransition {
2203
+ /**
2204
+ * Source status name
2205
+ */
2206
+ from: string;
2207
+ /**
2208
+ * Target status name
2209
+ */
2210
+ to: string;
2211
+ /**
2212
+ * Optional condition expression to evaluate before allowing transition
2213
+ * Uses expression evaluator syntax (e.g., "{{user.isAdmin}}", "{{item.priority > 5}}")
2214
+ */
2215
+ condition?: string;
2216
+ /**
2217
+ * Optional display title for the transition
2218
+ */
2219
+ title?: string;
2220
+ /**
2221
+ * Optional description
2222
+ */
2223
+ description?: string;
2224
+ /**
2225
+ * Optional command descriptor to execute for this transition
2226
+ * If not provided, defaults to Entity:UpdateStatus with entity, id, and status
2227
+ */
2228
+ command?: {
2229
+ name: string;
2230
+ options?: Record<string, unknown>;
2231
+ };
2232
+ /**
2233
+ * Whether this transition is automatic (no user action required)
2234
+ */
2235
+ isAutomatic?: boolean;
2236
+ /**
2237
+ * Whether this transition requires approval
2238
+ */
2239
+ requiresApproval?: boolean;
2240
+ }
2241
+ /**
2242
+ * Abstract class for status providers
2243
+ * Similar to AXPTaskBadgeProvider pattern
2244
+ */
2245
+ declare abstract class AXPStatusProvider {
2246
+ /**
2247
+ * Unique key for the status (e.g., 'task-management.status')
2248
+ */
2249
+ abstract readonly key: string;
2250
+ /**
2251
+ * List of available status definitions
2252
+ */
2253
+ abstract readonly statuses: AXPStatusDefinition[];
2254
+ /**
2255
+ * List of allowed transitions between statuses
2256
+ */
2257
+ abstract readonly transitions: AXPStatusTransition[];
2258
+ /**
2259
+ * Optional default status name
2260
+ */
2261
+ abstract readonly defaultStatus?: string;
2262
+ }
2263
+
2264
+ /**
2265
+ * Injection token for status providers
2266
+ * Use with multi: true to register multiple providers
2267
+ */
2268
+ declare const AXP_STATUS_PROVIDERS: InjectionToken<AXPStatusProvider[]>;
2269
+ /**
2270
+ * Service for managing status definitions from multiple providers
2271
+ * Similar to AXPTaskBadgeService pattern - no cache, direct access
2272
+ *
2273
+ * @example
2274
+ * ```typescript
2275
+ * // In a module providers array:
2276
+ * {
2277
+ * provide: AXP_STATUS_PROVIDERS,
2278
+ * useClass: TaskStatusProvider,
2279
+ * multi: true,
2280
+ * }
2281
+ *
2282
+ * // Example provider implementation:
2283
+ * export class TaskStatusProvider extends AXPStatusProvider {
2284
+ * readonly key = 'task-management.status';
2285
+ * readonly statuses = [
2286
+ * { name: 'todo', title: 'To Do', color: '#6b7280', icon: 'fa-light fa-circle', isInitial: true },
2287
+ * { name: 'in-progress', title: 'In Progress', color: '#3b82f6', icon: 'fa-light fa-play' },
2288
+ * { name: 'done', title: 'Done', color: '#10b981', icon: 'fa-light fa-check-circle', isFinal: true },
2289
+ * ];
2290
+ * readonly transitions = [
2291
+ * { from: 'todo', to: 'in-progress', title: 'Start', condition: '{{user.canEdit}}' },
2292
+ * { from: 'in-progress', to: 'done', title: 'Complete' },
2293
+ * ];
2294
+ * readonly defaultStatus = 'todo';
2295
+ * }
2296
+ *
2297
+ * // Later, get the status:
2298
+ * const status = await statusService.getStatus('task-management.status');
2299
+ * if (status) {
2300
+ * console.log('Statuses:', status.statuses);
2301
+ * console.log('Transitions:', status.transitions);
2302
+ * }
2303
+ * ```
2304
+ */
2305
+ declare class AXPStatusDefinitionProviderService {
2306
+ private providers;
2307
+ private commandService;
2308
+ private statusMap;
2309
+ private initializationPromise;
2310
+ private isInitialized;
2311
+ /**
2312
+ * Initialize providers (resolve promises if needed)
2313
+ * Called lazily on first access
2314
+ */
2315
+ private initialize;
2316
+ private _doInitialize;
2317
+ /**
2318
+ * Get a status provider by key
2319
+ * Ensures initialization is complete before accessing the status map.
2320
+ *
2321
+ * @param key - Status key (e.g., 'task-management.status')
2322
+ * @returns Promise that resolves to status provider with all statuses and transitions, or undefined if not found
2323
+ *
2324
+ * @example
2325
+ * ```typescript
2326
+ * const status = await statusService.getStatus('task-management.status');
2327
+ * if (status) {
2328
+ * console.log('Statuses:', status.statuses);
2329
+ * console.log('Transitions:', status.transitions);
2330
+ * }
2331
+ * ```
2332
+ */
2333
+ getStatus(key: string): Promise<AXPStatusProvider | undefined>;
2334
+ /**
2335
+ * Execute a status transition workflow action
2336
+ * Uses transition.command if provided, otherwise defaults to Entity:UpdateStatus
2337
+ * Validates the transition is allowed before executing
2338
+ *
2339
+ * @param definitionKey - Status definition key
2340
+ * @param transition - The transition to execute
2341
+ * @param context - Context data for the command (must include entity name and id/ids)
2342
+ * @returns Promise that resolves when the command execution completes
2343
+ *
2344
+ * @example
2345
+ * ```typescript
2346
+ * await statusService.executeTransition(
2347
+ * 'task-management.status',
2348
+ * { from: 'todo', to: 'in-progress' },
2349
+ * { entity: 'TaskManagement.Task', id: '123', ...entityData }
2350
+ * );
2351
+ * ```
2352
+ */
2353
+ executeTransition(definitionKey: string, transition: AXPStatusTransition, context: Record<string, any>): Promise<void>;
2354
+ /**
2355
+ * Validate if a transition is allowed
2356
+ * Checks if the transition exists in the provider's transitions list
2357
+ */
2358
+ private isValidTransition;
2359
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPStatusDefinitionProviderService, never>;
2360
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPStatusDefinitionProviderService>;
2361
+ }
2362
+
2363
+ /**
2364
+ * Standard system status types
2365
+ * These are the predefined status values used across the platform
2366
+ */
2367
+ declare enum AXPSystemStatusType {
2368
+ Todo = "todo",
2369
+ InProgress = "in-progress",
2370
+ InReview = "in-review",
2371
+ Open = "open",
2372
+ Closed = "closed",
2373
+ Blocked = "blocked",
2374
+ Done = "done",
2375
+ Cancelled = "cancelled",
2376
+ Draft = "draft",
2377
+ PendingReview = "pending-review",
2378
+ Approved = "approved",
2379
+ Published = "published",
2380
+ Archived = "archived",
2381
+ Rejected = "rejected",
2382
+ Active = "active",
2383
+ Inactive = "inactive",
2384
+ Pending = "pending",
2385
+ Completed = "completed",
2386
+ Suspended = "suspended",
2387
+ Failed = "failed",
2388
+ Review = "review",
2389
+ Expired = "expired"
2390
+ }
2391
+ /**
2392
+ * Standard system status definitions
2393
+ * Provides consistent status definitions across the platform
2394
+ * Uses AXPStatusDefinition interface from status-definition.types.ts
2395
+ */
2396
+ declare const AXPSystemStatuses: Readonly<{
2397
+ readonly Open: {
2398
+ readonly name: AXPSystemStatusType.Open;
2399
+ readonly title: string;
2400
+ readonly icon: "fa-light fa-circle";
2401
+ readonly color: "secondary";
2402
+ readonly description: string;
2403
+ readonly order: 1;
2404
+ readonly isInitial: true;
2405
+ readonly isFinal: false;
2406
+ };
2407
+ readonly Closed: {
2408
+ readonly name: AXPSystemStatusType.Closed;
2409
+ readonly title: string;
2410
+ readonly icon: "fa-light fa-circle";
2411
+ readonly color: "danger";
2412
+ readonly description: string;
2413
+ readonly order: 2;
2414
+ readonly isInitial: false;
2415
+ readonly isFinal: true;
2416
+ };
2417
+ readonly Todo: {
2418
+ readonly name: AXPSystemStatusType.Todo;
2419
+ readonly title: string;
2420
+ readonly icon: "fa-light fa-circle";
2421
+ readonly color: "secondary";
2422
+ readonly description: string;
2423
+ readonly order: 1;
2424
+ readonly isInitial: true;
2425
+ readonly isFinal: false;
2426
+ };
2427
+ readonly InProgress: {
2428
+ readonly name: AXPSystemStatusType.InProgress;
2429
+ readonly title: string;
2430
+ readonly icon: "fa-light fa-play";
2431
+ readonly color: "info";
2432
+ readonly description: string;
2433
+ readonly order: 2;
2434
+ readonly isInitial: false;
2435
+ readonly isFinal: false;
2436
+ };
2437
+ readonly InReview: {
2438
+ readonly name: AXPSystemStatusType.InReview;
2439
+ readonly title: string;
2440
+ readonly icon: "fa-light fa-eye";
2441
+ readonly color: "info";
2442
+ readonly description: string;
2443
+ readonly order: 3;
2444
+ readonly isInitial: false;
2445
+ readonly isFinal: false;
2446
+ };
2447
+ readonly Blocked: {
2448
+ readonly name: AXPSystemStatusType.Blocked;
2449
+ readonly title: string;
2450
+ readonly icon: "fa-light fa-ban";
2451
+ readonly color: "danger";
2452
+ readonly description: string;
2453
+ readonly order: 4;
2454
+ readonly isInitial: false;
2455
+ readonly isFinal: false;
2456
+ };
2457
+ readonly Done: {
2458
+ readonly name: AXPSystemStatusType.Done;
2459
+ readonly title: string;
2460
+ readonly icon: "fa-light fa-check-circle";
2461
+ readonly color: "success";
2462
+ readonly description: string;
2463
+ readonly order: 5;
2464
+ readonly isInitial: false;
2465
+ readonly isFinal: true;
2466
+ };
2467
+ readonly Cancelled: {
2468
+ readonly name: AXPSystemStatusType.Cancelled;
2469
+ readonly title: string;
2470
+ readonly icon: "fa-light fa-times-circle";
2471
+ readonly color: "neutral";
2472
+ readonly description: string;
2473
+ readonly order: 6;
2474
+ readonly isInitial: false;
2475
+ readonly isFinal: true;
2476
+ };
2477
+ readonly Draft: {
2478
+ readonly name: AXPSystemStatusType.Draft;
2479
+ readonly title: string;
2480
+ readonly icon: "fa-light fa-file-pen";
2481
+ readonly color: "neutral";
2482
+ readonly description: string;
2483
+ readonly order: 1;
2484
+ readonly isInitial: true;
2485
+ readonly isFinal: false;
2486
+ };
2487
+ readonly PendingReview: {
2488
+ readonly name: AXPSystemStatusType.PendingReview;
2489
+ readonly title: string;
2490
+ readonly icon: "fa-light fa-clock";
2491
+ readonly color: "warning";
2492
+ readonly description: string;
2493
+ readonly order: 2;
2494
+ readonly isInitial: false;
2495
+ readonly isFinal: false;
2496
+ };
2497
+ readonly Approved: {
2498
+ readonly name: AXPSystemStatusType.Approved;
2499
+ readonly title: string;
2500
+ readonly icon: "fa-light fa-check-circle";
2501
+ readonly color: "success";
2502
+ readonly description: string;
2503
+ readonly order: 3;
2504
+ readonly isInitial: false;
2505
+ readonly isFinal: false;
2506
+ };
2507
+ readonly Published: {
2508
+ readonly name: AXPSystemStatusType.Published;
2509
+ readonly title: string;
2510
+ readonly icon: "fa-light fa-globe";
2511
+ readonly color: "primary";
2512
+ readonly description: string;
2513
+ readonly order: 4;
2514
+ readonly isInitial: false;
2515
+ readonly isFinal: false;
2516
+ };
2517
+ readonly Archived: {
2518
+ readonly name: AXPSystemStatusType.Archived;
2519
+ readonly title: string;
2520
+ readonly icon: "fa-light fa-archive";
2521
+ readonly color: "danger";
2522
+ readonly description: string;
2523
+ readonly order: 5;
2524
+ readonly isInitial: false;
2525
+ readonly isFinal: true;
2526
+ };
2527
+ readonly Rejected: {
2528
+ readonly name: AXPSystemStatusType.Rejected;
2529
+ readonly title: string;
2530
+ readonly icon: "fa-light fa-times-circle";
2531
+ readonly color: "danger";
2532
+ readonly description: string;
2533
+ readonly order: 6;
2534
+ readonly isInitial: false;
2535
+ readonly isFinal: true;
2536
+ };
2537
+ readonly Active: {
2538
+ readonly name: AXPSystemStatusType.Active;
2539
+ readonly title: string;
2540
+ readonly icon: "fa-light fa-check-circle";
2541
+ readonly color: "success";
2542
+ readonly description: string;
2543
+ readonly order: 1;
2544
+ readonly isInitial: false;
2545
+ readonly isFinal: false;
2546
+ };
2547
+ readonly Inactive: {
2548
+ readonly name: AXPSystemStatusType.Inactive;
2549
+ readonly title: string;
2550
+ readonly icon: "fa-light fa-circle";
2551
+ readonly color: "secondary";
2552
+ readonly description: string;
2553
+ readonly order: 2;
2554
+ readonly isInitial: false;
2555
+ readonly isFinal: false;
2556
+ };
2557
+ readonly Pending: {
2558
+ readonly name: AXPSystemStatusType.Pending;
2559
+ readonly title: string;
2560
+ readonly icon: "fa-light fa-clock";
2561
+ readonly color: "warning";
2562
+ readonly description: string;
2563
+ readonly order: 1;
2564
+ readonly isInitial: true;
2565
+ readonly isFinal: false;
2566
+ };
2567
+ readonly Completed: {
2568
+ readonly name: AXPSystemStatusType.Completed;
2569
+ readonly title: string;
2570
+ readonly icon: "fa-light fa-check-circle";
2571
+ readonly color: "success";
2572
+ readonly description: string;
2573
+ readonly order: 10;
2574
+ readonly isInitial: false;
2575
+ readonly isFinal: true;
2576
+ };
2577
+ readonly Suspended: {
2578
+ readonly name: AXPSystemStatusType.Suspended;
2579
+ readonly title: string;
2580
+ readonly icon: "fa-light fa-pause-circle";
2581
+ readonly color: "neutral";
2582
+ readonly description: string;
2583
+ readonly order: 5;
2584
+ readonly isInitial: false;
2585
+ readonly isFinal: false;
2586
+ };
2587
+ readonly Failed: {
2588
+ readonly name: AXPSystemStatusType.Failed;
2589
+ readonly title: string;
2590
+ readonly icon: "fa-light fa-xmark-circle";
2591
+ readonly color: "danger";
2592
+ readonly description: string;
2593
+ readonly order: 10;
2594
+ readonly isInitial: false;
2595
+ readonly isFinal: true;
2596
+ };
2597
+ readonly Review: {
2598
+ readonly name: AXPSystemStatusType.Review;
2599
+ readonly title: string;
2600
+ readonly icon: "fa-light fa-eye";
2601
+ readonly color: "info";
2602
+ readonly description: string;
2603
+ readonly order: 3;
2604
+ };
2605
+ readonly Expired: {
2606
+ readonly name: AXPSystemStatusType.Expired;
2607
+ readonly title: string;
2608
+ readonly icon: "fa-light fa-clock";
2609
+ readonly color: "danger";
2610
+ readonly description: string;
2611
+ readonly order: 10;
2612
+ readonly isInitial: false;
2613
+ readonly isFinal: true;
2614
+ };
2615
+ }>;
2616
+ /**
2617
+ * Get system status definition by type
2618
+ * @param type - Status type
2619
+ * @returns System status definition or undefined
2620
+ */
2621
+ declare function getSystemStatus(type: AXPSystemStatusType): AXPStatusDefinition;
2622
+ /**
2623
+ * Resolves the visual appearance (color and icon) for status
2624
+ * using the system statuses from the core module.
2625
+ * @param statusType - Status type string
2626
+ * @returns Color and icon for the status
2627
+ */
2628
+ declare function resolveStatusLook(statusType: string): {
2629
+ color: AXStyleColorType;
2630
+ icon: string;
2631
+ };
2632
+ /**
2633
+ * Resolves the complete status information (title, description, icon, color) for a status
2634
+ * using the system statuses from the core module.
2635
+ * @param statusType - Status type string
2636
+ * @returns Complete status information as AXPStatusDefinition
2637
+ */
2638
+ declare function getStatusInfo(statusType: string): AXPStatusDefinition;
2639
+ /**
2640
+ * Get system status definition directly (no conversion needed since it's already AXPStatusDefinition)
2641
+ * @param statusType - Status type
2642
+ * @param overrides - Optional overrides for the status definition
2643
+ * @returns AXPStatusDefinition
2644
+ */
2645
+ declare function systemStatusToDefinition(statusType: AXPSystemStatusType, overrides?: Partial<AXPStatusDefinition>): AXPStatusDefinition;
2646
+
2647
+ interface AXPTokenDefinition {
2648
+ name: string;
2649
+ execute: () => Promise<any> | any;
2650
+ }
2651
+
2652
+ type AXPTokenDefinitionProviderToken = AXPTokenDefinitionProvider | Promise<AXPTokenDefinitionProvider>;
2653
+ declare const AXP_TOKEN_DEFINITION_PROVIDER: InjectionToken<AXPTokenDefinitionProviderToken[]>;
2654
+ interface AXPTokenDefinitionProvider<T = any> {
2655
+ name: string;
2656
+ title: string;
2657
+ description?: string;
2658
+ execute(): Promise<T> | T;
2659
+ }
2660
+
2661
+ declare class AXPTokenDefinitionService {
2662
+ private readonly definitionProviders;
2663
+ /** Cache for definitions by name. */
2664
+ private definitionsByName;
2665
+ /**
2666
+ * Returns a token definition by its name.
2667
+ * First checks the cache, then queries all providers if not found.
2668
+ * @param name The token name.
2669
+ * @returns The token definition if found, undefined otherwise.
2670
+ */
2671
+ getDefinition(name: string): Promise<AXPTokenDefinition | undefined>;
2672
+ /**
2673
+ * Gets the resolved value of a token by its name.
2674
+ * @param name The token name.
2675
+ * @returns The resolved token value, or undefined if the token is not found.
2676
+ */
2677
+ getValue(name: string): Promise<any>;
2678
+ /** Clears the definitions by name cache. */
2679
+ clearDefinitionsCache(): void;
2680
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTokenDefinitionService, never>;
2681
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPTokenDefinitionService>;
2682
+ }
2683
+
2684
+ declare class AXPTokenEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {
2685
+ protected tokenService: AXPTokenDefinitionService;
2686
+ provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
2687
+ }
2688
+
2689
+ declare class AXPClipBoardService {
2690
+ private toast;
2691
+ copy(title: string, value: string): void;
2692
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPClipBoardService, never>;
2693
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPClipBoardService>;
2694
+ }
2695
+
2696
+ /**
2697
+ * Service for debugging user access information.
2698
+ * Displays loaded modules, features, and permissions for the current user.
2699
+ */
2700
+ declare class AXPDebugService {
2701
+ private readonly sessionService;
2702
+ private readonly manifestRegistry;
2703
+ /**
2704
+ * Display all loaded modules, features, and permissions for the current user.
2705
+ */
2706
+ displayUserAccessInfo(): Promise<void>;
2707
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDebugService, never>;
2708
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPDebugService>;
2709
+ }
2710
+
2711
+ declare class AXPExportService {
2712
+ popupService: AXPopupService;
2713
+ generateBlobFromElement(element: HTMLElement, blobOptions?: AXPDomToImageOptions): Promise<Blob>;
2714
+ download(blob: Blob, filename: string): void;
2715
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPExportService, never>;
2716
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPExportService>;
2717
+ }
2718
+ interface AXPDomToImageOptions {
2719
+ popup?: true;
2720
+ filter?: (node: Node) => boolean;
2721
+ bgcolor?: string;
2722
+ width?: number;
2723
+ height?: number;
2724
+ style?: {};
2725
+ quality?: number;
2726
+ imagePlaceholder?: string;
2727
+ cacheBust?: boolean;
2728
+ scale?: number;
2729
+ }
2730
+
2731
+ declare function AXPCleanNestedFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];
2732
+
2733
+ interface AXPLocaleProfile extends AXLocaleProfile {
2734
+ code: string;
2735
+ title: string;
2736
+ nativeTitle: string;
2737
+ }
2738
+ interface AXPLanguage {
2739
+ code: string;
2740
+ title: string;
2741
+ }
2742
+ interface AXPGeoLocation {
2743
+ id: string;
2744
+ code: string;
2745
+ title: string;
2746
+ timezone?: string;
2747
+ }
2748
+ interface AXPTimeZone {
2749
+ code: string;
2750
+ title: string;
2751
+ offset: number;
2752
+ iana: string;
2753
+ abbr: string;
2754
+ }
2755
+ interface AXPCurrency {
2756
+ code: string;
2757
+ title: string;
2758
+ symbol: string;
2759
+ format: string;
2760
+ }
2761
+
2762
+ /**
2763
+ * Narrow API for reading app locale profiles and active languages.
2764
+ * Implemented by locale-management; consumed by platform layout without importing the module (avoids circular deps).
2765
+ */
2766
+ interface AXPLocaleManagementPort {
2767
+ getLocaleProfiles(): Promise<AXPLocaleProfile[]>;
2768
+ getLanguages(): Promise<AXPLanguage[]>;
2769
+ }
2770
+ declare const AXP_LOCALE_MANAGEMENT_PORT: InjectionToken<AXPLocaleManagementPort>;
2771
+
2772
+ interface AXPVersionStream {
2773
+ id: string;
2774
+ entityType: string;
2775
+ entityId: string;
2776
+ createdAt: string;
2777
+ }
2778
+ declare enum AXVChangeType {
2779
+ Create = "Create",
2780
+ Update = "Update",
2781
+ Delete = "Delete"
2782
+ }
2783
+ type CanonicalChangeOp = 'add' | 'remove' | 'replace' | 'rename' | 'metadata';
2784
+ interface CanonicalChange {
2785
+ path: string;
2786
+ op: CanonicalChangeOp;
2787
+ oldValue?: unknown;
2788
+ newValue?: unknown;
2789
+ meta?: Record<string, unknown>;
2790
+ }
2791
+ interface AXPVersionEntry {
2792
+ id: string;
2793
+ streamId: string;
2794
+ versionNumber: number;
2795
+ changeType: AXVChangeType;
2796
+ changedBy: string;
2797
+ changedAt: string;
2798
+ snapshotJson: unknown;
2799
+ patchFromPrevJson: CanonicalChange[];
2800
+ summary?: string;
2801
+ metadataJson?: unknown;
2802
+ }
2803
+ interface AXPVersionChange {
2804
+ id?: number;
2805
+ versionEntryId: string;
2806
+ path: string;
2807
+ op: CanonicalChangeOp;
2808
+ oldValue?: unknown;
2809
+ newValue?: unknown;
2810
+ }
2811
+ interface VersionedFileInfo {
2812
+ id: string;
2813
+ name: string;
2814
+ size: number;
2815
+ mime: string;
2816
+ hash: string;
2817
+ url?: string;
2818
+ thumbUrl?: string;
2819
+ }
2820
+ declare abstract class AXPVersioningService {
2821
+ abstract getStreamIdIfExists(entityType: string, entityId: string): Promise<string | null>;
2822
+ abstract listEntries(streamId: string, options?: {
2823
+ limit?: number;
2824
+ offset?: number;
2825
+ }): Promise<AXPVersionEntry[]>;
2826
+ abstract getUiFriendlyDiff(streamId: string, v1: number, v2: number): Promise<Array<{
2827
+ badge: string;
2828
+ path: string;
2829
+ summary: string;
2830
+ oldValue?: unknown;
2831
+ newValue?: unknown;
2832
+ }>>;
2833
+ }
2834
+
2835
+ declare const AXPRedirectEvent: {
2836
+ (payload: {
2837
+ url: string;
2838
+ }): {
2839
+ type: string;
2840
+ payload: {
2841
+ url: string;
2842
+ };
2843
+ };
2844
+ type: string;
2845
+ };
2846
+ declare const AXPRefreshEvent: {
2847
+ (payload: {
2848
+ entity: string;
2849
+ meta?: any;
2850
+ }): {
2851
+ type: string;
2852
+ payload: {
2853
+ entity: string;
2854
+ meta?: any;
2855
+ };
2856
+ };
2857
+ type: string;
2858
+ };
2859
+ declare const AXPReloadEvent: {
2860
+ (payload: {
2861
+ entity: string;
2862
+ meta?: any;
2863
+ }): {
2864
+ type: string;
2865
+ payload: {
2866
+ entity: string;
2867
+ meta?: any;
2868
+ };
2869
+ };
2870
+ type: string;
2871
+ };
2872
+ declare class AXPWorkflowNavigateAction extends AXPWorkflowAction {
2873
+ private router;
2874
+ execute(context: AXPWorkflowContext): Promise<void>;
2875
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPWorkflowNavigateAction, never>;
2876
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowNavigateAction>;
2877
+ }
2878
+ declare class AXPDialogConfirmAction extends AXPWorkflowAction {
2879
+ private dialogService;
2880
+ private translationService;
2881
+ title: string;
2882
+ message: string;
2883
+ type: AXStyleColorType;
2884
+ defaultAction: string;
2885
+ execute(context: AXPWorkflowContext): Promise<void>;
2886
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDialogConfirmAction, never>;
2887
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPDialogConfirmAction>;
2888
+ }
2889
+ declare class AXPToastAction extends AXPWorkflowAction {
2890
+ private toastService;
2891
+ private translationService;
2892
+ private settingsService;
2893
+ color: AXStyleColorType;
2894
+ title: string;
2895
+ content: string;
2896
+ execute(context: AXPWorkflowContext): Promise<void>;
2897
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPToastAction, never>;
2898
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPToastAction>;
2899
+ }
2900
+ declare class AXPReloadAction extends AXPWorkflowAction {
2901
+ execute(context: AXPWorkflowContext): Promise<void>;
2902
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPReloadAction, never>;
2903
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPReloadAction>;
2904
+ }
2905
+
2906
+ declare class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {
2907
+ private router;
2908
+ execute(context: AXPWorkflowContext): Promise<void>;
2909
+ /**
2910
+ * Parses query parameters from a query string into an object.
2911
+ */
2912
+ private parseQueryParams;
2913
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPWorkflowRouterNavigateAction, never>;
2914
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowRouterNavigateAction>;
2915
+ }
2916
+ declare const AXPNavigateWorkflow: AXPWorkflow;
2917
+
2918
+ declare class AXMWorkflowErrorHandler implements AXPErrorHandler {
2919
+ private dialog;
2920
+ handleError(error: any, next: (error: any) => void): void;
2921
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMWorkflowErrorHandler, never>;
2922
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMWorkflowErrorHandler>;
2923
+ }
2924
+
2925
+ export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppVersionService, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPCommonSettings, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataProvider, AXPDebugService, AXPDefaultMultiLanguageConfigService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPEntityType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileActionsService, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPHomePageModule, AXPHomePageService, AXPLockService, AXPMenuItemsDataSourceDefinition, AXPMenuMiddlewareRegistry, AXPMenuProviderService, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPMenuVisibilityService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalSetting, AXPRelationshipCardinality, AXPRelationshipKind, AXPReloadAction, AXPReloadEvent, AXPSearchCommandProvider, AXPSearchDefinitionActionBuilder, AXPSearchDefinitionBuilder, AXPSearchDefinitionProviderContext, AXPSearchDefinitionProviderService, AXPSearchService, AXPSettingDefaultValuesAggregatorService, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingsEvaluatorScopeProvider, AXPSettingsService, AXPStatusDefinitionProviderService, AXPStatusProvider, AXPStickyDirective, AXPSystemStatusType, AXPSystemStatuses, AXPToastAction, AXPTokenDefinitionService, AXPTokenEvaluatorScopeProvider, AXPVersioningService, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_APP_VERSION_PROVIDER, AXP_FILE_ACTION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, AXP_LOCALE_MANAGEMENT_PORT, AXP_MENU_MIDDLEWARE, AXP_MENU_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFAULT_VALUES_PROVIDERS, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_STATUS_PROVIDERS, AXP_TOKEN_DEFINITION_PROVIDER, AXVChangeType, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, DEFAULT_MULTILANGUAGE_FIELD_NAMES, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IN_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, MENU_ITEMS_DATASOURCE_NAME, MULTILANGUAGE_CAPABLE_WIDGET_TYPES, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, UploadFromComputerActionProvider, configPlatform, createAllQueryView, createEntityCommandOptions, createEntitySearchCommand, createMenuContext, createMenuMiddleware, createQueryView, getEntityInfo, getStatusInfo, getSystemStatus, provideDynamicHomePage, provideMenuMiddleware, resolveStatusLook, shouldApplyDefaultMultiLanguageToEntityProperty, shouldApplyDefaultMultiLanguageToWidgetNode, shouldApplyDefaultMultiLanguageToWidgetProperty, systemStatusToDefinition, withDefaultMultiLanguageOnWidgetNodeTree, withDefaultMultiLanguageOnWidgetProperty };
2926
+ export type { AXCFileUploaderAction, AXCFileUploaderActionsPayload, AXCFileUploaderCapabilities, AXEntityPropertyWidget, AXPAggregate, AXPAppVersion, AXPAppVersionProvider, AXPApplication, AXPCategoryEntity, AXPCommandActionCallback, AXPCommandActionDisplay, AXPCommandActionLook, AXPCommandActionPriority, AXPCommandActionType, AXPCommonModuleConfigs, AXPCurrency, AXPDomToImageOptions, AXPEntity, AXPEntityAction, AXPEntityCommand, AXPEntityDetailListView, AXPEntityMasterCreateLayoutView, AXPEntityMasterLayoutView, AXPEntityMasterListView, AXPEntityMasterSingleLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityPage, AXPEntityProperty, AXPEntityPropertyCreateView, AXPEntityPropertyGroup, AXPEntityPropertyLayoutConfig, AXPEntityPropertyUpdateView, AXPEntityPropertyView, AXPEntityQuery, AXPEntityQuickCreate, AXPEntitySectionView, AXPEntityTableColumn, AXPEntityV2, AXPEntityVersionHistory, AXPErrorHandler, AXPFileActionProvider, AXPFileActionProviderToken, AXPFileExtension, AXPFileManyStorageInfo, AXPFileStorageCreateRequest, AXPFileStorageFindRequest, AXPFileStorageInfo, AXPFileStorageUpdateRequest, AXPFileType, AXPFileTypeInfoProvider, AXPFilterOperator, AXPGeoLocation, AXPGroupSearchResult, AXPHomePageDefinition, AXPLanguage, AXPLocaleManagementPort, AXPLocaleProfile, AXPLockGetInfoRequest, AXPLockInfo, AXPLockRequest, AXPLockType, AXPMenuFinderResult, AXPMenuInsertion, AXPMenuItem, AXPMenuItemCommand, AXPMenuItemFinder, AXPMenuItemWithParent, AXPMenuMiddleware, AXPMenuMiddlewareContext, AXPMenuMiddlewareProvider, AXPMenuProvider, AXPMenuProviderContext, AXPMenuType, AXPModule, AXPPlatformConfigs, AXPQueryFilter, AXPQuerySort, AXPQueryView, AXPRelatedEntity, AXPRelationship, AXPRootConfigs, AXPSearchAction, AXPSearchDefinition, AXPSearchDefinitionDisplayFormat, AXPSearchDefinitionProvider, AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPSearchDisplayResultForSave, AXPSearchParentResult, AXPSearchProvider, AXPSearchResult, AXPSettingChangedEvent, AXPSettingDefaultValuesProvider, AXPSettingDefinition, AXPSettingDefinitionGroup, AXPSettingDefinitionProvider, AXPSettingDefinitionSection, AXPSettingValue, AXPSettingValueProvider, AXPSettingsServiceInterface, AXPStatusDefinition, AXPStatusTransition, AXPTimeZone, AXPTokenDefinition, AXPTokenDefinitionProvider, AXPTokenDefinitionProviderToken, AXPUnLockRequest, AXPVersionChange, AXPVersionEntry, AXPVersionStream, CanonicalChange, CanonicalChangeOp, VersionedFileInfo };