@acorex/platform 21.0.0-next.3 → 21.0.0-next.33

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 (117) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +295 -45
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +60 -4
  4. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +960 -319
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +1352 -832
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +554 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +530 -154
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  14. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-components.mjs +5969 -2347
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +15380 -9274
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +393 -110
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +511 -450
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  26. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +39 -16
  28. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  30. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  32. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +6 -6
  36. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  40. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets.mjs +7865 -4026
  42. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  43. package/fesm2022/acorex-platform-native.mjs +8 -7
  44. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-runtime.mjs +220 -169
  46. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
  48. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +18 -25
  52. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  54. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  58. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default.mjs +1717 -66
  60. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  61. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  62. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +11 -11
  67. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
  70. package/fesm2022/acorex-platform-themes-shared.mjs +563 -561
  71. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  72. package/fesm2022/acorex-platform-workflow.mjs +1735 -1750
  73. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  74. package/fesm2022/acorex-platform.mjs.map +1 -1
  75. package/package.json +31 -31
  76. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +247 -10
  77. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +492 -31
  78. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +606 -392
  79. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
  80. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +128 -56
  81. package/types/acorex-platform-layout-components.d.ts +2927 -0
  82. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
  83. package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +1133 -237
  84. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +90 -31
  85. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +206 -102
  86. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +942 -137
  87. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  88. package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
  89. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +113 -5
  90. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +1 -1
  91. package/types/acorex-platform-workflow.d.ts +1806 -0
  92. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  101. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs +0 -1542
  103. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  105. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  110. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  115. package/layout/components/index.d.ts +0 -1669
  116. package/workflow/index.d.ts +0 -2443
  117. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -1,11 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, EnvironmentProviders, Injector, ErrorHandler, ModuleWithProviders, EventEmitter, ElementRef, Renderer2, NgZone, ChangeDetectorRef } from '@angular/core';
3
- import { AXStyleColorType, AXDataSourceOperator, AXDataSourceFilterOption } from '@acorex/cdk/common';
3
+ import { AXDataSourceOperator, AXStyleColorType, AXDataSourceFilterOption } from '@acorex/cdk/common';
4
4
  import * as i2 from '@acorex/components/popup';
5
5
  import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
6
6
  import * as i5 from '@acorex/platform/core';
7
- import { AXPValueTransformerFunctions, AXPGridLayoutOptions, AXPValidationRules, AXPSystemActionType, AXPMetaData, AXPOptionsData, AXPLogoConfig, AXPNavigateActionCommand, AXPExecuteCommand, AXPEntityReference, AXPApplicationUserReference, AXPPlatformScopeKey, AXPPlatformScope, AXPWidgetTriggers, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex/platform/core';
8
- import { AXPWidgetTypesMap, AXPMetaDataDefinition, AXPWidgetNode } from '@acorex/platform/layout/widget-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
9
  import * as i6 from '@angular/router';
10
10
  import { Route, Routes } from '@angular/router';
11
11
  import * as i1 from '@acorex/platform/workflow';
@@ -38,7 +38,6 @@ interface AXEntityPropertyWidget {
38
38
  type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
39
39
  path?: string;
40
40
  id?: string;
41
- formula?: string;
42
41
  children?: AXEntityPropertyWidget[];
43
42
  mode: 'view' | 'edit';
44
43
  options?: Record<string, any>;
@@ -102,8 +101,6 @@ interface AXPEntityPropertyCreateView extends AXPEntityPropertyView {
102
101
  }
103
102
  interface AXPEntitySectionView {
104
103
  id: string;
105
- icon?: string;
106
- description?: string;
107
104
  order?: number;
108
105
  collapsed?: boolean;
109
106
  layout?: AXPEntityPropertyLayoutConfig;
@@ -133,6 +130,10 @@ interface AXPEntityProperty {
133
130
  inline?: {
134
131
  enabled?: boolean;
135
132
  };
133
+ preload?: {
134
+ enabled?: boolean;
135
+ required?: boolean;
136
+ };
136
137
  };
137
138
  sort?: {
138
139
  enabled?: boolean;
@@ -153,7 +154,8 @@ interface AXPEntityTableColumn {
153
154
  dir?: 'asc' | 'desc';
154
155
  };
155
156
  options?: {
156
- visible?: boolean;
157
+ /** When string, evaluate against parent detail context (e.g. related list). */
158
+ visible?: boolean | string;
157
159
  width?: string;
158
160
  dataPath?: string;
159
161
  [name: string]: any;
@@ -208,12 +210,31 @@ interface AXPCommandActionDisplay extends Partial<AXPCommandActionLook> {
208
210
  }
209
211
  interface AXPEntityAction extends AXPCommandActionDisplay {
210
212
  scope: AXPEntityCommandScope;
213
+ /** Child actions for dropdown submenu */
214
+ items?: AXPEntityAction[];
211
215
  }
212
216
  interface AXPEntity {
213
217
  plugins?: {
214
218
  name: string;
215
219
  options?: AXPOptionsData;
216
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
+ }>;
217
238
  module: string;
218
239
  name: string;
219
240
  icon?: string;
@@ -231,6 +252,7 @@ interface AXPEntity {
231
252
  };
232
253
  };
233
254
  relatedEntities?: AXPRelatedEntity[];
255
+ pages?: AXPEntityPage[];
234
256
  groups?: AXPEntityPropertyGroup[];
235
257
  properties: AXPEntityProperty[];
236
258
  columns?: AXPEntityTableColumn[];
@@ -284,13 +306,25 @@ interface AXPRelatedEntity {
284
306
  entity: string;
285
307
  title?: string;
286
308
  icon?: string;
287
- columns?: 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[];
288
317
  layout?: {
289
318
  type: 'tab-detail' | 'tab-list' | 'page-detail' | 'page-list' | 'merge-detail';
290
319
  order?: number;
291
320
  position?: 'before' | 'after' | 'middle';
292
321
  };
293
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>[];
294
328
  hidden?: boolean | string;
295
329
  actions?: AXPEntityAction[];
296
330
  /**
@@ -313,6 +347,51 @@ interface AXPRelatedEntity {
313
347
  };
314
348
  };
315
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
+ }
316
395
  interface AXPCategoryEntity {
317
396
  entity: string;
318
397
  title?: string;
@@ -348,12 +427,23 @@ interface AXPEntityMasterLayoutView {
348
427
  sections: AXPEntitySectionView[];
349
428
  properties?: AXPEntityPropertyView[];
350
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
+ }
351
439
  interface AXPEntityMasterCreateLayoutView extends AXPEntityMasterLayoutView {
352
440
  steps?: {
353
441
  id: string;
354
442
  title: string;
355
443
  description?: string;
356
444
  };
445
+ /** Quick create config for lookup widgets - uses subset of create form */
446
+ quickCreate?: AXPEntityQuickCreate;
357
447
  }
358
448
  interface AXPEntityMasterUpdateLayoutView extends AXPEntityMasterLayoutView {
359
449
  }
@@ -367,6 +457,12 @@ interface AXPEntityMasterListView {
367
457
  description?: string;
368
458
  actions?: AXPEntityAction[];
369
459
  views: AXPQueryView[];
460
+ layouts?: {
461
+ table?: {
462
+ columns: AXPEntityTableColumn[];
463
+ };
464
+ card?: {};
465
+ };
370
466
  }
371
467
  interface AXPEntityDetailListView {
372
468
  title?: string;
@@ -394,6 +490,51 @@ interface AXPQuerySort {
394
490
  name: string;
395
491
  dir: 'asc' | 'desc';
396
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
+ }
397
538
 
398
539
  interface AXPFilterOperator {
399
540
  name: string;
@@ -530,7 +671,12 @@ declare function configPlatform(config?: Partial<AXPPlatformConfigs>): AXPPlatfo
530
671
 
531
672
  declare enum AXPCommonSettings {
532
673
  EnableOperationToasts = "Common:Setting:Notifications.EnableOperationToasts",
533
- EntityFilterApplyMode = "Common:Setting:Entity.FilterApplyMode"
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"
534
680
  }
535
681
 
536
682
  declare const AXP_ROOT_CONFIG_TOKEN: InjectionToken<AXPRootConfigs>;
@@ -669,16 +815,16 @@ interface AXPFileStorageUpdateRequest {
669
815
  }
670
816
  interface AXPFileManyStorageInfo {
671
817
  /**
672
- * The unique identifier for the stored file.
673
- */
818
+ * The unique identifier for the stored file.
819
+ */
674
820
  id?: string;
675
821
  /**
676
822
  * The unique identifier for the stored file.
677
823
  */
678
824
  fileId: string;
679
825
  /**
680
- * The unique identifier of referenced entity.
681
- */
826
+ * The unique identifier of referenced entity.
827
+ */
682
828
  refId: string;
683
829
  /**
684
830
  * The type of the referenced entity.
@@ -692,6 +838,18 @@ interface AXPFileManyStorageInfo {
692
838
  * The name of the file.
693
839
  */
694
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;
695
853
  }
696
854
  /**
697
855
  * Represents information about a file stored in the AXP file storage system.
@@ -850,6 +1008,175 @@ declare abstract class AXPFileStorageService {
850
1008
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileStorageService>;
851
1009
  }
852
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
+
853
1180
  interface AXPFileType {
854
1181
  /**
855
1182
  * The unique identifier for the file type.
@@ -929,16 +1256,23 @@ declare class AXPStickyDirective {
929
1256
  private _isSticky;
930
1257
  get isSticky(): boolean;
931
1258
  set isSticky(value: boolean);
932
- private topOffset;
933
1259
  private parentElement;
934
1260
  private targetElement;
935
1261
  private mutationObserver;
1262
+ private readonly onWindowResize;
936
1263
  stickyParent: string | HTMLElement;
937
1264
  stickyTarget: string;
938
1265
  constructor(element: ElementRef<HTMLDivElement>, renderer: Renderer2, zone: NgZone, cdr: ChangeDetectorRef);
939
1266
  ngAfterViewInit(): void;
940
1267
  private initSticky;
941
- private updateTopOffset;
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;
942
1276
  private onParentScroll;
943
1277
  private toggleStickyClasses;
944
1278
  ngOnDestroy(): void;
@@ -946,6 +1280,18 @@ declare class AXPStickyDirective {
946
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>;
947
1281
  }
948
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
+
949
1295
  type AXPMenuInsertion = 'before' | 'after' | 'inside';
950
1296
  type AXPMenuType = 'menu' | 'group' | 'break';
951
1297
  type AXPMenuItemCommand = AXPNavigateActionCommand<'modal' | 'router'> | AXPExecuteCommand;
@@ -973,6 +1319,12 @@ interface AXPMenuFinderResult {
973
1319
  remove(): void;
974
1320
  update(updatedItem: Partial<AXPMenuItem>): void;
975
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;
976
1328
  }
977
1329
  interface AXPMenuProviderContext {
978
1330
  addItems(items: AXPMenuItem[]): void;
@@ -985,13 +1337,13 @@ interface AXPMenuProvider {
985
1337
  declare const AXP_MENU_PROVIDER: InjectionToken<AXPMenuProvider[]>;
986
1338
  declare class AXPMenuProviderService {
987
1339
  private providers;
988
- private providerRegistry;
989
1340
  private middlewareRegistry;
990
1341
  private cache;
991
1342
  private pendingInserts;
992
1343
  private pendingRemovals;
993
1344
  private pendingUpdates;
994
1345
  private pendingAdditions;
1346
+ private pendingMoves;
995
1347
  /**
996
1348
  * Observable for menu reload events
997
1349
  * Emits when menu cache is cleared and consumers should reload
@@ -1026,6 +1378,8 @@ declare class AXPMenuProviderService {
1026
1378
  * Find menu item by name in the items tree (recursive search)
1027
1379
  */
1028
1380
  private findItemByName;
1381
+ private applyPendingMove;
1382
+ private itemIsInSubtreeOf;
1029
1383
  /**
1030
1384
  * Merge new item properties into existing item, handling children merge
1031
1385
  */
@@ -1405,7 +1759,6 @@ interface AXPSearchDefinitionProvider {
1405
1759
  declare const AXP_SEARCH_DEFINITION_PROVIDER: InjectionToken<AXPSearchDefinitionProvider[]>;
1406
1760
  declare class AXPSearchDefinitionProviderService {
1407
1761
  private providers;
1408
- private providerRegistry;
1409
1762
  private cache;
1410
1763
  private load;
1411
1764
  getListAsync(): Promise<AXPSearchDefinition[]>;
@@ -1427,14 +1780,41 @@ declare abstract class AXPSearchCommandProvider {
1427
1780
  declare const AXP_SEARCH_PROVIDER: InjectionToken<AXPSearchProvider[]>;
1428
1781
  declare class AXPSearchService {
1429
1782
  private providers;
1430
- private providerRegistry;
1431
1783
  private definitionService;
1432
1784
  private formatService;
1785
+ private translationService;
1433
1786
  search(text: string): Promise<AXPSearchDisplayGroupResult[]>;
1434
1787
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSearchService, never>;
1435
1788
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSearchService>;
1436
1789
  }
1437
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
+
1438
1818
  declare class AXPMenuSearchDefinitionProvider implements AXPSearchDefinitionProvider {
1439
1819
  provide(context: AXPSearchDefinitionProviderContext): Promise<void>;
1440
1820
  }
@@ -1507,6 +1887,61 @@ declare abstract class AXPLockService {
1507
1887
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPLockService>;
1508
1888
  }
1509
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
+
1510
1945
  interface AXPSettingValueProvider {
1511
1946
  get scope(): AXPPlatformScope;
1512
1947
  load(): Promise<AXPSettingValue[]>;
@@ -1619,7 +2054,6 @@ interface AXPSettingDefinitionProvider {
1619
2054
  declare const AXP_SETTING_DEFINITION_PROVIDER: InjectionToken<AXPSettingDefinitionProvider[]>;
1620
2055
  declare class AXPSettingDefinitionProviderService {
1621
2056
  private providers;
1622
- private providerRegistry;
1623
2057
  private cache;
1624
2058
  private load;
1625
2059
  reload(): Promise<void>;
@@ -1680,9 +2114,17 @@ declare class ScopedSettingService {
1680
2114
  }
1681
2115
 
1682
2116
  /**
1683
- * Regional settings keys for date, time, and locale formatting.
1684
- * These keys are used by platform widgets and components to access regional settings.
1685
- * The actual setting definitions and providers are implemented in the locale-management module.
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.
1686
2128
  */
1687
2129
  declare enum AXPRegionalSetting {
1688
2130
  LocaleProfile = "LocaleManagement:Setting:Regional.LocaleProfile",
@@ -1704,7 +2146,9 @@ declare enum AXPRegionalSetting {
1704
2146
  WeightUnits = "LocaleManagement:Setting:Regional.WeightUnits",
1705
2147
  VolumeUnits = "LocaleManagement:Setting:Regional.VolumeUnits",
1706
2148
  SpeedUnits = "LocaleManagement:Setting:Regional.SpeedUnits",
1707
- AreaUnits = "LocaleManagement:Setting:Regional.AreaUnits"
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"
1708
2152
  }
1709
2153
 
1710
2154
  /**
@@ -1851,7 +2295,7 @@ declare const AXP_STATUS_PROVIDERS: InjectionToken<AXPStatusProvider[]>;
1851
2295
  * }
1852
2296
  *
1853
2297
  * // Later, get the status:
1854
- * const status = statusService.getStatus('task-management.status');
2298
+ * const status = await statusService.getStatus('task-management.status');
1855
2299
  * if (status) {
1856
2300
  * console.log('Statuses:', status.statuses);
1857
2301
  * console.log('Transitions:', status.transitions);
@@ -1862,24 +2306,31 @@ declare class AXPStatusDefinitionProviderService {
1862
2306
  private providers;
1863
2307
  private commandService;
1864
2308
  private statusMap;
1865
- constructor();
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;
1866
2317
  /**
1867
2318
  * Get a status provider by key
1868
- * Direct access from Map (no lazy load, no cache)
2319
+ * Ensures initialization is complete before accessing the status map.
1869
2320
  *
1870
2321
  * @param key - Status key (e.g., 'task-management.status')
1871
- * @returns Status provider with all statuses and transitions, or undefined if not found
2322
+ * @returns Promise that resolves to status provider with all statuses and transitions, or undefined if not found
1872
2323
  *
1873
2324
  * @example
1874
2325
  * ```typescript
1875
- * const status = statusService.getStatus('task-management.status');
2326
+ * const status = await statusService.getStatus('task-management.status');
1876
2327
  * if (status) {
1877
2328
  * console.log('Statuses:', status.statuses);
1878
2329
  * console.log('Transitions:', status.transitions);
1879
2330
  * }
1880
2331
  * ```
1881
2332
  */
1882
- getStatus(key: string): AXPStatusProvider | undefined;
2333
+ getStatus(key: string): Promise<AXPStatusProvider | undefined>;
1883
2334
  /**
1884
2335
  * Execute a status transition workflow action
1885
2336
  * Uses transition.command if provided, otherwise defaults to Entity:UpdateStatus
@@ -2308,6 +2759,16 @@ interface AXPCurrency {
2308
2759
  format: string;
2309
2760
  }
2310
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
+
2311
2772
  interface AXPVersionStream {
2312
2773
  id: string;
2313
2774
  entityType: string;
@@ -2461,5 +2922,5 @@ declare class AXMWorkflowErrorHandler implements AXPErrorHandler {
2461
2922
  static ɵprov: i0.ɵɵInjectableDeclaration<AXMWorkflowErrorHandler>;
2462
2923
  }
2463
2924
 
2464
- export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppVersionService, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPCommonSettings, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataProvider, AXPDebugService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPHomePageModule, AXPHomePageService, AXPLockService, 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, AXPSettingsService, AXPStatusDefinitionProviderService, AXPStatusProvider, AXPStickyDirective, AXPSystemStatusType, AXPSystemStatuses, AXPToastAction, AXPTokenDefinitionService, AXPTokenEvaluatorScopeProvider, AXPVersioningService, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_APP_VERSION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, 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, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IN_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, configPlatform, createAllQueryView, createMenuContext, createMenuMiddleware, createQueryView, getEntityInfo, getStatusInfo, getSystemStatus, provideDynamicHomePage, provideMenuMiddleware, resolveStatusLook, systemStatusToDefinition };
2465
- export type { AXEntityPropertyWidget, AXPAggregate, AXPAppVersion, AXPAppVersionProvider, AXPApplication, AXPCategoryEntity, AXPCommandActionCallback, AXPCommandActionDisplay, AXPCommandActionLook, AXPCommandActionPriority, AXPCommandActionType, AXPCommonModuleConfigs, AXPCurrency, AXPDomToImageOptions, AXPEntity, AXPEntityAction, AXPEntityCommand, AXPEntityDetailListView, AXPEntityMasterCreateLayoutView, AXPEntityMasterLayoutView, AXPEntityMasterListView, AXPEntityMasterSingleLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityProperty, AXPEntityPropertyCreateView, AXPEntityPropertyGroup, AXPEntityPropertyLayoutConfig, AXPEntityPropertyUpdateView, AXPEntityPropertyView, AXPEntityQuery, AXPEntitySectionView, AXPEntityTableColumn, AXPEntityVersionHistory, AXPErrorHandler, AXPFileExtension, AXPFileManyStorageInfo, AXPFileStorageCreateRequest, AXPFileStorageFindRequest, AXPFileStorageInfo, AXPFileStorageUpdateRequest, AXPFileType, AXPFileTypeInfoProvider, AXPFilterOperator, AXPGeoLocation, AXPGroupSearchResult, AXPHomePageDefinition, AXPLanguage, 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 };
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 };