@acorex/platform 21.0.0-next.7 → 21.0.0-next.70

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 (126) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +281 -23
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs +163 -0
  4. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +1370 -276
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +1185 -514
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +557 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +832 -189
  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 +6309 -1956
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +456 -204
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs +371 -0
  20. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs +100 -0
  22. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-layout-entity.mjs +22488 -10232
  24. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-layout-views.mjs +564 -170
  26. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-widget-core.mjs +2084 -481
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  29. 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
  30. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  32. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  34. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +116 -0
  36. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs} +6 -6
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs} +5 -5
  40. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs.map +1 -0
  41. 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
  42. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-layout-widgets.mjs +10326 -7981
  44. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-native.mjs +8 -7
  46. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-runtime.mjs +391 -166
  48. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  49. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs +160 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs +120 -0
  52. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs} +21 -28
  54. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  57. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  58. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  60. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  61. package/fesm2022/acorex-platform-themes-default.mjs +2283 -83
  62. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  65. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  66. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  67. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs} +52 -33
  68. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +1 -0
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  70. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  71. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +86 -0
  72. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  73. package/fesm2022/acorex-platform-themes-shared.mjs +767 -609
  74. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  75. package/fesm2022/acorex-platform-workflow.mjs +978 -238
  76. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  77. package/fesm2022/acorex-platform.mjs.map +1 -1
  78. package/package.json +40 -38
  79. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +241 -4
  80. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +822 -89
  81. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +658 -133
  82. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
  83. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +194 -49
  84. package/types/acorex-platform-layout-components.d.ts +3253 -0
  85. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
  86. package/types/acorex-platform-layout-entity.d.ts +4439 -0
  87. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +179 -56
  88. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +398 -127
  89. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +1120 -501
  90. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  91. package/types/acorex-platform-runtime.d.ts +571 -0
  92. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +233 -6
  93. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +24 -2
  94. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +620 -617
  95. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs +0 -71
  96. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs +0 -135
  99. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  106. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DfJEx_bs.mjs +0 -1542
  108. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DfJEx_bs.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  110. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  115. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs +0 -65
  120. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
  121. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs +0 -64
  122. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  123. package/layout/components/index.d.ts +0 -1669
  124. package/layout/entity/index.d.ts +0 -2287
  125. package/runtime/index.d.ts +0 -307
  126. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -1,16 +1,17 @@
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, AXPMultiLanguageString, AXPOptionsData, AXPExpression, AXPFilterDefinition, AXPMetaData, AXPSystemActionType, AXPValidationRules, AXPGridLayoutOptions, AXPLogoConfig, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext, AXPFileListItem, AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPNavigateActionCommand, AXPExecuteCommand, AXPApplicationUserReference, AXPEntityReference, AXPPlatformScopeKey, AXPWidgetTriggers, AXPPlatformScope } from '@acorex/platform/core';
8
+ import { AXPWidgetTypesMap, AXPMetaDataDefinition, AXPWidgetNode, AXPWidgetProperty } from '@acorex/platform/layout/widget-core';
9
+ import * as i3 from '@acorex/core/date-time';
10
+ import { AXCalendarService } from '@acorex/core/date-time';
9
11
  import * as i6 from '@angular/router';
10
12
  import { Route, Routes } from '@angular/router';
11
13
  import * as i1 from '@acorex/platform/workflow';
12
14
  import { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
13
- import * as i3 from '@acorex/core/date-time';
14
15
  import * as i4 from '@acorex/components/toast';
15
16
  import * as rxjs from 'rxjs';
16
17
  import { Subject } from 'rxjs';
@@ -18,6 +19,100 @@ import * as _ngrx_signals from '@ngrx/signals';
18
19
  import { AXTranslationService } from '@acorex/core/translation';
19
20
  import { AXLocaleProfile } from '@acorex/core/locale';
20
21
 
22
+ /** JSON data primitive for the specialist final deliverable. */
23
+ type AXPAgentOutputKind = 'string' | 'object' | 'array';
24
+ /** When `kind` is `object`, controls how the parsed value maps into chat transcript segments. */
25
+ type AXPOutputTranscriptSegmentId = 'text' | 'node' | 'followUp' | 'file';
26
+ /**
27
+ * Minimal JSON-Schema-like object for native provider hints and local validation.
28
+ */
29
+ interface AXPJsonSchemaLike {
30
+ type?: 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean' | 'null';
31
+ properties?: Record<string, AXPJsonSchemaLike>;
32
+ items?: AXPJsonSchemaLike | AXPJsonSchemaLike[];
33
+ required?: string[];
34
+ enum?: unknown[];
35
+ additionalProperties?: boolean | AXPJsonSchemaLike;
36
+ description?: string;
37
+ [key: string]: unknown;
38
+ }
39
+ /** Provider-native structured output hint (OpenAI `response_format`, Gemini `responseMimeType`). */
40
+ type AXPAgentResponseFormat = {
41
+ type: 'text';
42
+ } | {
43
+ type: 'json_object';
44
+ } | {
45
+ type: 'json_schema';
46
+ schema: AXPJsonSchemaLike;
47
+ name?: string;
48
+ strict?: boolean;
49
+ };
50
+ /**
51
+ * Catalog row contract for specialist final output (separate from domain `systemPrompt`).
52
+ * Field paths align with agent/assist entity `outputContract` JSON.
53
+ */
54
+ interface AXPAgentOutputContract {
55
+ kind: AXPAgentOutputKind;
56
+ /**
57
+ * When `kind` is `object`: `text` = generic JSON object as text; `node` = inner widget node in chat;
58
+ * `followUp` = `{"type":"followUp","content":[...]}` envelope.
59
+ */
60
+ transcriptSegment?: AXPOutputTranscriptSegmentId;
61
+ instruction?: string;
62
+ schemaSummary?: string;
63
+ schema?: AXPJsonSchemaLike;
64
+ schemaName?: string;
65
+ schemaStrict?: boolean;
66
+ validationCommandName?: string;
67
+ structuredRetries?: number;
68
+ providerResponseFormat?: AXPAgentResponseFormat;
69
+ }
70
+ /** Default structured retry count when `structuredRetries` is omitted on structured kinds. */
71
+ declare const AXP_AGENT_OUTPUT_CONTRACT_DEFAULT_STRUCTURED_RETRIES = 2;
72
+ /**
73
+ * Registered preset for an output-contract transcript segment.
74
+ * Modules register via {@link AXP_OUTPUT_CONTRACT_TRANSCRIPT_SEGMENT_PROVIDER}.
75
+ */
76
+ interface AXPOutputContractTranscriptSegmentDefinition {
77
+ /** Segment id (`text`, `node`, `followUp`). */
78
+ name: AXPOutputTranscriptSegmentId;
79
+ /** i18n key or display title for admin UI selects. */
80
+ title: string;
81
+ description?: string;
82
+ /** Contract kinds this segment applies to (defaults to `object` only). */
83
+ applicableKinds?: AXPAgentOutputKind[];
84
+ /** Default `outputContract` field values when this segment is chosen. */
85
+ contract: AXPAgentOutputContract;
86
+ }
87
+
88
+ type AXPOutputContractTranscriptSegmentProviderToken = AXPOutputContractTranscriptSegmentProvider | Promise<AXPOutputContractTranscriptSegmentProvider>;
89
+ /**
90
+ * Registers one or more transcript-segment presets for agent/assist `outputContract`.
91
+ * Use with `multi: true` in module providers.
92
+ */
93
+ interface AXPOutputContractTranscriptSegmentProvider {
94
+ provide(): AXPOutputContractTranscriptSegmentDefinition[] | Promise<AXPOutputContractTranscriptSegmentDefinition[]>;
95
+ }
96
+ declare const AXP_OUTPUT_CONTRACT_TRANSCRIPT_SEGMENT_PROVIDER: InjectionToken<AXPOutputContractTranscriptSegmentProviderToken[]>;
97
+
98
+ declare class AXPOutputContractTranscriptSegmentService {
99
+ private readonly segmentProviders;
100
+ private definitionsByName;
101
+ private loadPromise;
102
+ /** All registered transcript segment definitions (deduped by `name`). */
103
+ getAll(): Promise<AXPOutputContractTranscriptSegmentDefinition[]>;
104
+ /** Lookup by segment id (`text`, `node`, `followUp`). */
105
+ get(name: AXPOutputTranscriptSegmentId): Promise<AXPOutputContractTranscriptSegmentDefinition | undefined>;
106
+ /** Default `outputContract` for a segment, or `undefined` when not registered. */
107
+ getContractPreset(name: AXPOutputTranscriptSegmentId): Promise<AXPAgentOutputContract | undefined>;
108
+ /** Clears the in-memory registry (e.g. after hot reload in dev). */
109
+ clearCache(): void;
110
+ private ensureLoaded;
111
+ private loadDefinitions;
112
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPOutputContractTranscriptSegmentService, never>;
113
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPOutputContractTranscriptSegmentService>;
114
+ }
115
+
21
116
  interface AXPAppVersion {
22
117
  version: string;
23
118
  build: number;
@@ -38,7 +133,6 @@ interface AXEntityPropertyWidget {
38
133
  type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
39
134
  path?: string;
40
135
  id?: string;
41
- formula?: string;
42
136
  children?: AXEntityPropertyWidget[];
43
137
  mode: 'view' | 'edit';
44
138
  options?: Record<string, any>;
@@ -81,6 +175,7 @@ interface AXPEntityPropertyLayoutConfig extends AXPGridLayoutOptions {
81
175
  visible?: boolean;
82
176
  };
83
177
  order?: number;
178
+ visible?: boolean | AXPExpression;
84
179
  }
85
180
  interface AXPEntityPropertyGroup {
86
181
  id: string;
@@ -102,8 +197,6 @@ interface AXPEntityPropertyCreateView extends AXPEntityPropertyView {
102
197
  }
103
198
  interface AXPEntitySectionView {
104
199
  id: string;
105
- icon?: string;
106
- description?: string;
107
200
  order?: number;
108
201
  collapsed?: boolean;
109
202
  layout?: AXPEntityPropertyLayoutConfig;
@@ -133,6 +226,10 @@ interface AXPEntityProperty {
133
226
  inline?: {
134
227
  enabled?: boolean;
135
228
  };
229
+ preload?: {
230
+ enabled?: boolean;
231
+ required?: boolean;
232
+ };
136
233
  };
137
234
  sort?: {
138
235
  enabled?: boolean;
@@ -140,25 +237,73 @@ interface AXPEntityProperty {
140
237
  };
141
238
  validations?: AXPValidationRules;
142
239
  }
143
- interface AXPEntityTableColumn {
240
+ /** Logical alignment for table column header/cell (respects RTL). */
241
+ type AXPColumnContentAlign = 'start' | 'center' | 'end';
242
+ /**
243
+ * Column alignment: shorthand applies to both header and cell;
244
+ * object form sets each side independently (omitted keys default to start).
245
+ */
246
+ type AXPColumnAlign = AXPColumnContentAlign | {
247
+ header?: AXPColumnContentAlign;
248
+ cell?: AXPColumnContentAlign;
249
+ };
250
+ /** Shared field definition for list layouts (table columns, card fields, etc.). */
251
+ interface AXPEntityDisplayField {
144
252
  name: string;
145
253
  title?: string;
146
- hidden?: boolean;
147
254
  showAs?: {
148
255
  type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
149
256
  options?: Record<string, any>;
150
257
  };
151
- sort?: {
152
- enabled?: boolean;
153
- dir?: 'asc' | 'desc';
154
- };
155
258
  options?: {
156
- visible?: boolean;
157
- width?: string;
259
+ /** When string, evaluate against parent detail context (e.g. related list). */
260
+ visible?: boolean | string;
261
+ /** Optional dataPath override for field binding. */
158
262
  dataPath?: string;
159
263
  [name: string]: any;
160
264
  };
161
265
  }
266
+ /** Card layout field presentation in master list card view. */
267
+ type AXPCardFieldDisplay = 'simple' | 'badge';
268
+ /** Badge color: semantic token or per-row expression (`{{ context.eval(...) }}`). */
269
+ type AXPCardBadgeColor = AXStyleColorType | AXPExpression;
270
+ interface AXPCardBadgeDisplayOptions {
271
+ /** Semantic color or expression evaluated against row context. */
272
+ color?: AXPCardBadgeColor;
273
+ }
274
+ interface AXPCardBadgeDisplay {
275
+ type: 'badge';
276
+ options?: AXPCardBadgeDisplayOptions;
277
+ }
278
+ /** Shorthand (`badge` / `simple`) or structured badge config with optional per-row color. */
279
+ type AXPCardFieldDisplayConfig = AXPCardFieldDisplay | AXPCardBadgeDisplay;
280
+ /** Card layout field in master list view. */
281
+ type AXPCardField = AXPEntityDisplayField & {
282
+ layout?: AXPEntityPropertyLayoutConfig;
283
+ /**
284
+ * Field presentation. Default: `simple` (card body).
285
+ * Use `badge` or `{ type: 'badge', options: { color } }` for header chips beside title.
286
+ */
287
+ display?: AXPCardFieldDisplayConfig;
288
+ /**
289
+ * Badge color when presentation is badge-shaped.
290
+ * Prefer `display: { type: 'badge', options: { color } }` for new definitions.
291
+ * Omit for status fields — color is resolved from the status definition per row.
292
+ */
293
+ badgeColor?: AXPCardBadgeColor;
294
+ };
295
+ /** Whether the card field is shown as a header badge (not in the card body). */
296
+ declare function isCardFieldBadgeDisplay(display: AXPCardFieldDisplayConfig | undefined): display is 'badge' | AXPCardBadgeDisplay;
297
+ /** Resolves static badge color config from {@link AXPCardField.display} and legacy {@link AXPCardField.badgeColor}. */
298
+ declare function resolveCardFieldBadgeColor(field: Pick<AXPCardField, 'display' | 'badgeColor'>): AXPCardBadgeColor | undefined;
299
+ interface AXPEntityTableColumn extends AXPEntityDisplayField {
300
+ options?: AXPEntityDisplayField['options'] & {
301
+ /** Initial column width (overrides widget column width when set). */
302
+ width?: string;
303
+ /** Header/cell alignment (shorthand or per-side). */
304
+ align?: AXPColumnAlign;
305
+ };
306
+ }
162
307
  interface AXPEntityCommand {
163
308
  execute: string | Function;
164
309
  permissions?: string[];
@@ -198,7 +343,7 @@ interface AXPCommandActionDisplay extends Partial<AXPCommandActionLook> {
198
343
  command: AXPCommandActionCallback;
199
344
  title: string;
200
345
  type: AXPSystemActionType | string;
201
- priority: 'primary' | 'secondary';
346
+ priority: 'primary' | 'secondary' | 'none';
202
347
  separated?: boolean;
203
348
  permissions?: string[];
204
349
  hidden?: boolean | string;
@@ -208,12 +353,31 @@ interface AXPCommandActionDisplay extends Partial<AXPCommandActionLook> {
208
353
  }
209
354
  interface AXPEntityAction extends AXPCommandActionDisplay {
210
355
  scope: AXPEntityCommandScope;
356
+ /** Child actions for dropdown submenu */
357
+ items?: AXPEntityAction[];
211
358
  }
212
359
  interface AXPEntity {
213
360
  plugins?: {
214
361
  name: string;
215
362
  options?: AXPOptionsData;
216
363
  }[];
364
+ /**
365
+ * High-level rules: when expression evaluates true, apply actions to the given targets
366
+ * (property/section/action). Reduces repetition of the same condition across many properties.
367
+ * Evaluation context: form data, user, entity; precedence vs property-level visible/readonly
368
+ * must be defined where rules are applied.
369
+ */
370
+ rules?: Array<{
371
+ name: string;
372
+ expression: AXPExpression;
373
+ actions: Array<{
374
+ target: {
375
+ type: 'property' | 'section' | 'action';
376
+ name: string;
377
+ };
378
+ values: AXPOptionsData;
379
+ }>;
380
+ }>;
217
381
  module: string;
218
382
  name: string;
219
383
  icon?: string;
@@ -231,6 +395,7 @@ interface AXPEntity {
231
395
  };
232
396
  };
233
397
  relatedEntities?: AXPRelatedEntity[];
398
+ pages?: AXPEntityPage[];
234
399
  groups?: AXPEntityPropertyGroup[];
235
400
  properties: AXPEntityProperty[];
236
401
  columns?: AXPEntityTableColumn[];
@@ -284,15 +449,30 @@ interface AXPRelatedEntity {
284
449
  entity: string;
285
450
  title?: string;
286
451
  icon?: string;
287
- columns?: string[];
452
+ columns?: string[] | AXPEntityTableColumn[];
453
+ properties?: string[];
454
+ excludeProperties?: string[];
288
455
  layout?: {
289
456
  type: 'tab-detail' | 'tab-list' | 'page-detail' | 'page-list' | 'merge-detail';
290
457
  order?: number;
291
458
  position?: 'before' | 'after' | 'middle';
292
459
  };
293
460
  conditions?: AXPQueryFilter[];
294
- hidden?: boolean | string;
461
+ customFilterDefinitions?: Partial<AXPFilterDefinition>[];
462
+ hidden?: boolean | AXPExpression;
295
463
  actions?: AXPEntityAction[];
464
+ /**
465
+ * Controls inclusion on the host entity master **create** / **update** form.
466
+ * Defaults depend on layout:
467
+ * - **merge-detail**: omitted flags behave as **true** (opt-out with `false`).
468
+ * - **tab-list** / **page-list**: omitted flags behave as **false** (opt-in with `true`).
469
+ */
470
+ appearOn?: {
471
+ /** Include on host create form (see defaults above per layout type). */
472
+ create?: boolean;
473
+ /** Include on host update form (see defaults above per layout type). */
474
+ update?: boolean;
475
+ };
296
476
  /**
297
477
  * Relationship-level persistence strategy for merge-detail data.
298
478
  * Defaults:
@@ -311,8 +491,64 @@ interface AXPRelatedEntity {
311
491
  cascade?: {
312
492
  delete?: 'none' | 'orphans' | 'all';
313
493
  };
494
+ foreignKeyField?: string;
314
495
  };
315
496
  }
497
+ interface AXPEntityPage {
498
+ /**
499
+ * Key to identify the component in the page component registry
500
+ */
501
+ componentKey: string;
502
+ /**
503
+ * Property name to render when the page component displays an entity field (e.g. 'questions', 'attachments').
504
+ * Passed to the page component as pageConfig.field.
505
+ */
506
+ field?: string;
507
+ /**
508
+ * Title of the page (displayed in navigation)
509
+ */
510
+ title?: AXPMultiLanguageString;
511
+ /**
512
+ * Icon for the page (displayed in navigation)
513
+ */
514
+ icon?: string;
515
+ /**
516
+ * Description of the page
517
+ */
518
+ description?: AXPMultiLanguageString;
519
+ /**
520
+ * Layout configuration for page positioning
521
+ */
522
+ layout?: {
523
+ /**
524
+ * Order of the page (lower numbers appear first)
525
+ */
526
+ order?: number;
527
+ /**
528
+ * Position relative to the main page
529
+ */
530
+ position?: 'before' | 'after' | 'middle';
531
+ };
532
+ /**
533
+ * Visibility condition (boolean or expression string)
534
+ */
535
+ hidden?: boolean | string;
536
+ /**
537
+ * Permissions required to view this page
538
+ */
539
+ permissions?: string[];
540
+ /**
541
+ * Controls inclusion on the host entity master **create** / **update** form wizard.
542
+ * Omitted flags behave as **false** (opt-in with `true`), same as `tab-list` / `page-list` related entities.
543
+ */
544
+ appearOn?: {
545
+ /** Include as a wizard step on host create form. */
546
+ create?: boolean;
547
+ /** Include as a wizard step on host update form. */
548
+ update?: boolean;
549
+ };
550
+ options?: Record<string, any>;
551
+ }
316
552
  interface AXPCategoryEntity {
317
553
  entity: string;
318
554
  title?: string;
@@ -329,18 +565,18 @@ interface AXPEntityVersionHistory {
329
565
  interface AXPAggregate {
330
566
  id: string;
331
567
  name: string;
332
- title: string;
568
+ title: AXPMultiLanguageString;
333
569
  entities: AXPEntity[];
334
570
  }
335
571
  interface AXPModule {
336
572
  name: string;
337
- title: string;
573
+ title: AXPMultiLanguageString;
338
574
  aggregates: AXPAggregate[];
339
575
  relationships?: AXPRelationship[];
340
576
  }
341
577
  interface AXPApplication {
342
578
  name: string;
343
- title: string;
579
+ title: AXPMultiLanguageString;
344
580
  modules: AXPModule[];
345
581
  }
346
582
  interface AXPEntityMasterLayoutView {
@@ -348,12 +584,23 @@ interface AXPEntityMasterLayoutView {
348
584
  sections: AXPEntitySectionView[];
349
585
  properties?: AXPEntityPropertyView[];
350
586
  }
587
+ /** Quick create config for lookup widgets (+ button) - uses subset of create form */
588
+ interface AXPEntityQuickCreate {
589
+ enabled?: boolean;
590
+ properties?: string[];
591
+ layout?: {
592
+ size?: AXPopupSizeType;
593
+ };
594
+ excludeProperties?: string[];
595
+ }
351
596
  interface AXPEntityMasterCreateLayoutView extends AXPEntityMasterLayoutView {
352
597
  steps?: {
353
598
  id: string;
354
599
  title: string;
355
600
  description?: string;
356
601
  };
602
+ /** Quick create config for lookup widgets - uses subset of create form */
603
+ quickCreate?: AXPEntityQuickCreate;
357
604
  }
358
605
  interface AXPEntityMasterUpdateLayoutView extends AXPEntityMasterLayoutView {
359
606
  }
@@ -367,7 +614,35 @@ interface AXPEntityMasterListView {
367
614
  description?: string;
368
615
  actions?: AXPEntityAction[];
369
616
  views: AXPQueryView[];
617
+ layouts?: {
618
+ table?: {
619
+ enabled?: boolean;
620
+ columns: AXPEntityTableColumn[];
621
+ };
622
+ card?: {
623
+ enabled?: boolean;
624
+ header: {
625
+ /** Property path, expression (`{{ ... }}`), or literal — evaluated per row. */
626
+ title?: string;
627
+ description?: string;
628
+ icon?: string;
629
+ };
630
+ fields: AXPCardField[];
631
+ };
632
+ };
633
+ }
634
+ type AXPEntityMasterListLayoutType = 'table' | 'card';
635
+ /** Master list presentation: table or card with compact (collapsed) / expanded bodies. */
636
+ type AXPEntityMasterListDisplayMode = 'table' | 'card-compact' | 'card-expanded';
637
+ interface AXPEntityMasterListLayoutOption {
638
+ id: AXPEntityMasterListLayoutType;
639
+ title: string;
640
+ icon?: string;
370
641
  }
642
+ /** Resolves master list layouts that are currently enabled. */
643
+ declare function resolveEnabledMasterListLayouts(layouts?: AXPEntityMasterListView['layouts']): AXPEntityMasterListLayoutType[];
644
+ /** First enabled layout; used as the default when no user preference is stored. */
645
+ declare function resolveDefaultMasterListLayout(layouts?: AXPEntityMasterListView['layouts']): AXPEntityMasterListLayoutType;
371
646
  interface AXPEntityDetailListView {
372
647
  title?: string;
373
648
  description?: string;
@@ -394,6 +669,51 @@ interface AXPQuerySort {
394
669
  name: string;
395
670
  dir: 'asc' | 'desc';
396
671
  }
672
+ declare enum AXPEntityType {
673
+ Entity = 0,
674
+ AggregateRoot = 1,
675
+ ValueObject = 2
676
+ }
677
+ interface AXPEntityV2 {
678
+ version: 2;
679
+ module: string;
680
+ aggregate: string;
681
+ name: string;
682
+ type: AXPEntityType;
683
+ icon?: string;
684
+ title: string;
685
+ description?: string;
686
+ plugins?: {
687
+ name: string;
688
+ options?: AXPOptionsData;
689
+ }[];
690
+ pages?: AXPEntityPage[];
691
+ groups?: AXPEntityPropertyGroup[];
692
+ properties: AXPEntityProperty[];
693
+ formats: {
694
+ individual: string;
695
+ plural: string;
696
+ lookup?: string;
697
+ displayName?: string;
698
+ searchResult?: {
699
+ title: string;
700
+ description?: string;
701
+ };
702
+ };
703
+ columns?: AXPEntityTableColumn[];
704
+ validations?: AXPValidationRules;
705
+ interfaces?: {
706
+ master?: {
707
+ single?: AXPEntityMasterSingleLayoutView;
708
+ list?: AXPEntityMasterListView;
709
+ create?: AXPEntityMasterCreateLayoutView;
710
+ update?: AXPEntityMasterUpdateLayoutView;
711
+ };
712
+ detail?: {
713
+ list?: AXPEntityDetailListView;
714
+ };
715
+ };
716
+ }
397
717
 
398
718
  interface AXPFilterOperator {
399
719
  name: string;
@@ -420,6 +740,27 @@ declare const BOOLEAN_OPERATORS: AXPFilterOperator[];
420
740
  declare const DATE_OPERATORS: AXPFilterOperator[];
421
741
  declare const ALL_DEFAULT_OPERATORS: AXPFilterOperator[];
422
742
 
743
+ type AXPDateTimeFilterPresetKind = 'computed' | 'manual';
744
+ interface AXPDateTimeFilterPreset {
745
+ id: string;
746
+ title: string;
747
+ kind: AXPDateTimeFilterPresetKind;
748
+ operationType?: string;
749
+ }
750
+ declare const DEFAULT_DATE_FILTER_PRESETS: AXPDateTimeFilterPreset[];
751
+ interface AXPDateTimeFilterValue {
752
+ operation?: {
753
+ type: string;
754
+ };
755
+ value?: string | {
756
+ from?: string;
757
+ to?: string;
758
+ };
759
+ }
760
+ declare function resolveDateFilterPresets(customPresets?: AXPDateTimeFilterPreset[], presetIds?: string[]): AXPDateTimeFilterPreset[];
761
+ declare function applyDateFilterPreset(presetId: string, calendarService: AXCalendarService): AXPDateTimeFilterValue | undefined;
762
+ declare function findManualPresetIdByOperation(operationType: string | undefined, presets: AXPDateTimeFilterPreset[]): string | undefined;
763
+
423
764
  interface AXPHomePageDefinition {
424
765
  key: string;
425
766
  title: string;
@@ -530,7 +871,14 @@ declare function configPlatform(config?: Partial<AXPPlatformConfigs>): AXPPlatfo
530
871
 
531
872
  declare enum AXPCommonSettings {
532
873
  EnableOperationToasts = "Common:Setting:Notifications.EnableOperationToasts",
533
- EntityFilterApplyMode = "Common:Setting:Entity.FilterApplyMode"
874
+ EntityFilterApplyMode = "Common:Setting:Entity.FilterApplyMode",
875
+ ShowCategoryColumnsByDefault = "Common:Setting:Entity.ShowCategoryColumnsByDefault",
876
+ ApplyLayoutOrdering = "Common:Setting:Entity.ApplyLayoutOrdering",
877
+ RedirectToDetailsAfterCreate = "Common:Setting:Entity.RedirectToDetailsAfterCreate",
878
+ ShowPageBadge = "Common:Setting:Entity.ShowPageBadge",
879
+ DebugMode = "PlatformDevTools:Setting:Developer.DebugMode",
880
+ ShowRowIndexColumn = "Common:Setting:Entity.ShowRowIndexColumn",
881
+ EntityListPersistenceMode = "Common:Setting:Entity.ListPersistenceMode"
534
882
  }
535
883
 
536
884
  declare const AXP_ROOT_CONFIG_TOKEN: InjectionToken<AXPRootConfigs>;
@@ -669,16 +1017,16 @@ interface AXPFileStorageUpdateRequest {
669
1017
  }
670
1018
  interface AXPFileManyStorageInfo {
671
1019
  /**
672
- * The unique identifier for the stored file.
673
- */
1020
+ * The unique identifier for the stored file.
1021
+ */
674
1022
  id?: string;
675
1023
  /**
676
1024
  * The unique identifier for the stored file.
677
1025
  */
678
1026
  fileId: string;
679
1027
  /**
680
- * The unique identifier of referenced entity.
681
- */
1028
+ * The unique identifier of referenced entity.
1029
+ */
682
1030
  refId: string;
683
1031
  /**
684
1032
  * The type of the referenced entity.
@@ -692,6 +1040,18 @@ interface AXPFileManyStorageInfo {
692
1040
  * The name of the file.
693
1041
  */
694
1042
  name?: string;
1043
+ /**
1044
+ * The URL where the file can be accessed.
1045
+ */
1046
+ url?: string;
1047
+ /**
1048
+ * Optional title (e.g. for display in file list).
1049
+ */
1050
+ title?: string;
1051
+ /**
1052
+ * Optional description (e.g. for display in file list).
1053
+ */
1054
+ description?: string;
695
1055
  }
696
1056
  /**
697
1057
  * Represents information about a file stored in the AXP file storage system.
@@ -850,6 +1210,180 @@ declare abstract class AXPFileStorageService {
850
1210
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileStorageService>;
851
1211
  }
852
1212
 
1213
+ declare class AXPFileStorageEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {
1214
+ fileStorageService: AXPFileStorageService;
1215
+ provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
1216
+ }
1217
+
1218
+ /**
1219
+ * Capabilities API provided to file action providers.
1220
+ * These methods allow actions to interact with the file uploader widget.
1221
+ */
1222
+ interface AXCFileUploaderCapabilities {
1223
+ /**
1224
+ * Get all current files in the uploader.
1225
+ */
1226
+ getFiles: () => AXPFileListItem[];
1227
+ /**
1228
+ * Replace all files in the uploader.
1229
+ */
1230
+ setFiles: (files: AXPFileListItem[]) => void;
1231
+ /**
1232
+ * Add new files to the uploader.
1233
+ */
1234
+ addFiles: (files: AXPFileListItem[]) => void;
1235
+ /**
1236
+ * Update files matching a predicate.
1237
+ */
1238
+ updateFile: (predicate: (f: AXPFileListItem) => boolean, updater: (f: AXPFileListItem) => AXPFileListItem) => void;
1239
+ /**
1240
+ * Remove a file from the uploader.
1241
+ */
1242
+ removeFile: (file: AXPFileListItem) => void;
1243
+ /**
1244
+ * Clear all files from the uploader.
1245
+ */
1246
+ clear: () => void;
1247
+ /**
1248
+ * Get a file by its ID.
1249
+ */
1250
+ getFileById: (id: string) => AXPFileListItem | undefined;
1251
+ /**
1252
+ * Update a file by its ID.
1253
+ */
1254
+ updateFileById: (id: string, next: Partial<AXPFileListItem>) => void;
1255
+ }
1256
+ /**
1257
+ * A file uploader action that can be added by providers.
1258
+ */
1259
+ interface AXCFileUploaderAction {
1260
+ /**
1261
+ * Unique identifier for the action/plugin.
1262
+ */
1263
+ plugin: string;
1264
+ /**
1265
+ * Whether this action is global (available even if plugin is not explicitly enabled).
1266
+ */
1267
+ global?: boolean;
1268
+ /**
1269
+ * Display text for the action (optional if textKey is provided).
1270
+ */
1271
+ text?: string;
1272
+ /**
1273
+ * Translation key for the action text (optional if text is provided).
1274
+ */
1275
+ textKey?: string;
1276
+ /**
1277
+ * Icon class for the action (e.g., 'fa-light fa-file-arrow-up').
1278
+ */
1279
+ icon?: string;
1280
+ /**
1281
+ * Action execution handler.
1282
+ * Receives capabilities to interact with the file uploader.
1283
+ * @param capabilities The capabilities API for file operations.
1284
+ */
1285
+ run: (capabilities: AXCFileUploaderCapabilities) => void | Promise<void>;
1286
+ }
1287
+ /**
1288
+ * Payload passed to file action providers.
1289
+ */
1290
+ interface AXCFileUploaderActionsPayload {
1291
+ /**
1292
+ * Enabled plugins configuration.
1293
+ */
1294
+ plugins: {
1295
+ name: string;
1296
+ options?: unknown;
1297
+ }[];
1298
+ /**
1299
+ * List of plugin names to exclude.
1300
+ */
1301
+ excludePlugins: string[];
1302
+ /**
1303
+ * Capabilities API for interacting with the file uploader.
1304
+ */
1305
+ capabilities: AXCFileUploaderCapabilities;
1306
+ /**
1307
+ * Current list of actions (providers can add to this array).
1308
+ */
1309
+ actions: AXCFileUploaderAction[];
1310
+ /**
1311
+ * Widget options (optional, for accessing widget-specific settings).
1312
+ */
1313
+ options?: {
1314
+ /**
1315
+ * Whether multiple files are allowed.
1316
+ */
1317
+ multiple?: boolean;
1318
+ /**
1319
+ * Accepted file types (e.g., '.jpg,.png' or 'image/*').
1320
+ */
1321
+ accept?: string;
1322
+ };
1323
+ }
1324
+
1325
+ /**
1326
+ * Type for file action provider token (supports both direct and async providers).
1327
+ */
1328
+ type AXPFileActionProviderToken = AXPFileActionProvider | Promise<AXPFileActionProvider>;
1329
+ /**
1330
+ * File action provider interface.
1331
+ * Providers can add actions to the file uploader widget.
1332
+ */
1333
+ interface AXPFileActionProvider {
1334
+ /**
1335
+ * Unique key identifying this provider.
1336
+ * Should match the webhook key for backward compatibility: 'file-uploader.actions'
1337
+ */
1338
+ key: string;
1339
+ /**
1340
+ * Execute the provider to add actions.
1341
+ * @param payload The payload containing capabilities and current actions.
1342
+ * @returns The modified payload with new actions added.
1343
+ */
1344
+ execute(payload: AXCFileUploaderActionsPayload): Promise<AXCFileUploaderActionsPayload> | AXCFileUploaderActionsPayload;
1345
+ /**
1346
+ * Priority for execution order (lower numbers execute first).
1347
+ * Defaults to 0 if not specified.
1348
+ */
1349
+ priority?: number;
1350
+ }
1351
+ /**
1352
+ * Multi-provider injection token for file action providers.
1353
+ * Modules can provide multiple implementations using this token.
1354
+ */
1355
+ declare const AXP_FILE_ACTION_PROVIDER: InjectionToken<AXPFileActionProviderToken[]>;
1356
+
1357
+ /**
1358
+ * Service for managing file uploader actions.
1359
+ * Aggregates actions from multiple providers and filters them based on plugin configuration.
1360
+ * Wraps the hook system for backward compatibility.
1361
+ */
1362
+ declare class AXPFileActionsService {
1363
+ private readonly actionProviders;
1364
+ private readonly hookService;
1365
+ private readonly injector;
1366
+ /**
1367
+ * Get all actions from providers, filtered based on plugin configuration.
1368
+ * Wraps the hook system for backward compatibility.
1369
+ * @param payload Initial payload with capabilities and plugin configuration.
1370
+ * @returns Filtered list of actions.
1371
+ */
1372
+ getActions(payload: AXCFileUploaderActionsPayload): Promise<AXCFileUploaderAction[]>;
1373
+ /**
1374
+ * Resolve all providers (handle both direct providers and Promise<provider>).
1375
+ */
1376
+ private resolveProviders;
1377
+ /**
1378
+ * Filter actions based on enabled plugins and exclude list.
1379
+ */
1380
+ private filterActions;
1381
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileActionsService, never>;
1382
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileActionsService>;
1383
+ }
1384
+
1385
+ declare const UploadFromComputerActionProvider: AXPFileActionProvider;
1386
+
853
1387
  interface AXPFileType {
854
1388
  /**
855
1389
  * The unique identifier for the file type.
@@ -929,16 +1463,23 @@ declare class AXPStickyDirective {
929
1463
  private _isSticky;
930
1464
  get isSticky(): boolean;
931
1465
  set isSticky(value: boolean);
932
- private topOffset;
933
1466
  private parentElement;
934
1467
  private targetElement;
935
1468
  private mutationObserver;
1469
+ private readonly onWindowResize;
936
1470
  stickyParent: string | HTMLElement;
937
1471
  stickyTarget: string;
938
1472
  constructor(element: ElementRef<HTMLDivElement>, renderer: Renderer2, zone: NgZone, cdr: ChangeDetectorRef);
939
1473
  ngAfterViewInit(): void;
940
1474
  private initSticky;
941
- private updateTopOffset;
1475
+ private getScrollTop;
1476
+ /**
1477
+ * Toggle stuck styling only while this element is visually pinned (matches `position: sticky; top: 0`).
1478
+ * Scroll-offset thresholds would stay true for every section already passed, so multiple stacked stickies
1479
+ * would all keep `--stuck`; geometry fixes that.
1480
+ */
1481
+ private computeShouldStick;
1482
+ private applyStickyStateFromScrollPosition;
942
1483
  private onParentScroll;
943
1484
  private toggleStickyClasses;
944
1485
  ngOnDestroy(): void;
@@ -946,6 +1487,18 @@ declare class AXPStickyDirective {
946
1487
  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
1488
  }
948
1489
 
1490
+ /**
1491
+ * Registered menu items (raw tree flattened) for select widgets via dataSource name {@link MENU_ITEMS_DATASOURCE_NAME}.
1492
+ */
1493
+ declare const MENU_ITEMS_DATASOURCE_NAME = "platform-menu-items";
1494
+ /**
1495
+ * Data source definition for menu items from {@link AXPMenuProviderService#rawItems}.
1496
+ */
1497
+ declare class AXPMenuItemsDataSourceDefinition implements AXPDataSourceDefinitionProvider {
1498
+ private readonly menuProviderService;
1499
+ items(): Promise<AXPDataSourceDefinition[]>;
1500
+ }
1501
+
949
1502
  type AXPMenuInsertion = 'before' | 'after' | 'inside';
950
1503
  type AXPMenuType = 'menu' | 'group' | 'break';
951
1504
  type AXPMenuItemCommand = AXPNavigateActionCommand<'modal' | 'router'> | AXPExecuteCommand;
@@ -973,6 +1526,12 @@ interface AXPMenuFinderResult {
973
1526
  remove(): void;
974
1527
  update(updatedItem: Partial<AXPMenuItem>): void;
975
1528
  addItems(items: AXPMenuItem[]): void;
1529
+ /**
1530
+ * Moves the item matched by the current `find` target to another place in the tree.
1531
+ * @param destination Name of the target menu item (group or item).
1532
+ * @param position `inside` — child of `destination` (default). `before` / `after` — sibling of `destination` in its parent's list.
1533
+ */
1534
+ moveTo(destination: string, position?: AXPMenuInsertion): void;
976
1535
  }
977
1536
  interface AXPMenuProviderContext {
978
1537
  addItems(items: AXPMenuItem[]): void;
@@ -991,6 +1550,7 @@ declare class AXPMenuProviderService {
991
1550
  private pendingRemovals;
992
1551
  private pendingUpdates;
993
1552
  private pendingAdditions;
1553
+ private pendingMoves;
994
1554
  /**
995
1555
  * Observable for menu reload events
996
1556
  * Emits when menu cache is cleared and consumers should reload
@@ -1025,6 +1585,8 @@ declare class AXPMenuProviderService {
1025
1585
  * Find menu item by name in the items tree (recursive search)
1026
1586
  */
1027
1587
  private findItemByName;
1588
+ private applyPendingMove;
1589
+ private itemIsInSubtreeOf;
1028
1590
  /**
1029
1591
  * Merge new item properties into existing item, handling children merge
1030
1592
  */
@@ -1328,8 +1890,8 @@ interface AXPSearchResult {
1328
1890
  id?: string;
1329
1891
  group: string;
1330
1892
  data?: any;
1331
- title?: string;
1332
- description?: string;
1893
+ title?: string | AXPMultiLanguageString;
1894
+ description?: string | AXPMultiLanguageString;
1333
1895
  icon?: string;
1334
1896
  command: AXPExecuteCommand;
1335
1897
  parent?: AXPSearchParentResult;
@@ -1345,8 +1907,8 @@ interface AXPSearchDisplayResult {
1345
1907
  definitionName?: string;
1346
1908
  definitionTitle?: string;
1347
1909
  name: string;
1348
- title: string;
1349
- description?: string;
1910
+ title: string | AXPMultiLanguageString;
1911
+ description?: string | AXPMultiLanguageString;
1350
1912
  icon: string;
1351
1913
  data?: any;
1352
1914
  order?: any;
@@ -1418,6 +1980,7 @@ interface AXPSearchProvider {
1418
1980
  search(text: string): Promise<AXPSearchResult[]>;
1419
1981
  }
1420
1982
  declare abstract class AXPSearchCommandProvider {
1983
+ private readonly translationService;
1421
1984
  abstract commands: AXPSearchResult[];
1422
1985
  search(text: string): Promise<AXPSearchResult[]>;
1423
1986
  }
@@ -1427,11 +1990,39 @@ declare class AXPSearchService {
1427
1990
  private providers;
1428
1991
  private definitionService;
1429
1992
  private formatService;
1993
+ private translationService;
1430
1994
  search(text: string): Promise<AXPSearchDisplayGroupResult[]>;
1431
1995
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSearchService, never>;
1432
1996
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSearchService>;
1433
1997
  }
1434
1998
 
1999
+ /**
2000
+ * Shared utility for creating Entity:Create command options used in search command providers.
2001
+ * Use with command: { name: 'Entity:Create', options: createEntityCommandOptions(...) }
2002
+ */
2003
+ declare function createEntityCommandOptions(entityKey: string, entityInfo: {
2004
+ name: string;
2005
+ module: string;
2006
+ title: string;
2007
+ }): Record<string, unknown>;
2008
+ /**
2009
+ * Creates a search command for "Create {Entity}" with consistent i18n pattern.
2010
+ * Use titleKey/descriptionKey from module (e.g. @module:entity.permissions.create.title).
2011
+ * Standard: "Create {Entity}" for title, "Create new {entities}" for description.
2012
+ */
2013
+ declare function createEntitySearchCommand(config: {
2014
+ id: string;
2015
+ entityKey: string;
2016
+ entityInfo: {
2017
+ name: string;
2018
+ module: string;
2019
+ title: string;
2020
+ };
2021
+ titleKey: string;
2022
+ descriptionKey?: string;
2023
+ icon: string;
2024
+ }): AXPSearchResult;
2025
+
1435
2026
  declare class AXPMenuSearchDefinitionProvider implements AXPSearchDefinitionProvider {
1436
2027
  provide(context: AXPSearchDefinitionProviderContext): Promise<void>;
1437
2028
  }
@@ -1504,6 +2095,105 @@ declare abstract class AXPLockService {
1504
2095
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPLockService>;
1505
2096
  }
1506
2097
 
2098
+ /**
2099
+ * Synchronous access to default multi-language behavior for named entity fields and widget
2100
+ * property bindings. Mirrors {@link AXPLayoutOrderingConfigService}: avoids async in entity
2101
+ * modifiers and startup deadlocks.
2102
+ */
2103
+ declare class AXPDefaultMultiLanguageConfigService {
2104
+ private readonly settingsService;
2105
+ private readonly _applyDefault;
2106
+ private syncScheduled;
2107
+ constructor();
2108
+ getApplyDefaultMultiLanguage(): boolean;
2109
+ private syncFromSettings;
2110
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDefaultMultiLanguageConfigService, never>;
2111
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPDefaultMultiLanguageConfigService>;
2112
+ }
2113
+
2114
+ /**
2115
+ * Shared multi-language defaults for entity properties and widget property bindings.
2116
+ *
2117
+ * **Circular dependencies:** use only `import type` for `AXPWidgetProperty` and
2118
+ * `AXPEntityProperty` so this module has no runtime imports from widget-core or application
2119
+ * types — `@acorex/platform/layout/widget-core` does not import `@acorex/platform/common`.
2120
+ */
2121
+
2122
+ /**
2123
+ * Widget types that support the multiLanguage option (text / rich text editors).
2124
+ */
2125
+ declare const MULTILANGUAGE_CAPABLE_WIDGET_TYPES: Set<string>;
2126
+ /**
2127
+ * Common property names / binding path segments that are usually translatable when the feature is
2128
+ * enabled in settings. Explicit `multiLanguage` on the property still wins.
2129
+ */
2130
+ declare const DEFAULT_MULTILANGUAGE_FIELD_NAMES: Set<string>;
2131
+ declare function shouldApplyDefaultMultiLanguageToEntityProperty(prop: AXPEntityProperty): boolean;
2132
+ declare function shouldApplyDefaultMultiLanguageToWidgetProperty(prop: AXPWidgetProperty): boolean;
2133
+ /**
2134
+ * Leaf widget nodes in entity `schema.interface` trees (e.g. GridLayout → RichText under `pre` /
2135
+ * `post`) — same path/type rules as {@link shouldApplyDefaultMultiLanguageToWidgetProperty}, without
2136
+ * `schema.dataType` (nodes do not carry entity schema).
2137
+ */
2138
+ declare function shouldApplyDefaultMultiLanguageToWidgetNode(node: AXPWidgetNode): boolean;
2139
+ /**
2140
+ * When {@link AXPDefaultMultiLanguageConfigService#getApplyDefaultMultiLanguage} is true, sets
2141
+ * `options.multiLanguage` on eligible editor leaves inside an entity property's widget tree
2142
+ * (including nested layouts). Used by entity middleware so object fields (e.g. `pre`, `post`) are
2143
+ * covered, not only top-level string properties.
2144
+ */
2145
+ declare function withDefaultMultiLanguageOnWidgetNodeTree(root: AXPWidgetNode | undefined | null, applyDefault: boolean): AXPWidgetNode | undefined | null;
2146
+ /**
2147
+ * When {@link AXPDefaultMultiLanguageConfigService#getApplyDefaultMultiLanguage} is true, sets
2148
+ * `schema.interface.options.multiLanguage` for eligible string widget properties (same rules as
2149
+ * entity middleware), unless the property already specifies `multiLanguage`.
2150
+ */
2151
+ declare function withDefaultMultiLanguageOnWidgetProperty(prop: AXPWidgetProperty, applyDefault: boolean): AXPWidgetProperty;
2152
+
2153
+ declare class AXPSettingDefinitionProviderContext {
2154
+ private rootGroups;
2155
+ private groupMap;
2156
+ addGroup(name: string, title: string, description?: string, icon?: string, pageTitle?: string, priority?: number): AXPSettingDefinitionGroupBuilder;
2157
+ group(name: string): AXPSettingDefinitionGroupBuilder | null;
2158
+ getGroups(): AXPSettingDefinitionGroup[];
2159
+ hasGroup(name: string): boolean;
2160
+ getGroup(name: string): AXPSettingDefinitionGroup | undefined;
2161
+ }
2162
+ declare class AXPSettingDefinitionGroupBuilder {
2163
+ private context;
2164
+ private group;
2165
+ constructor(context: AXPSettingDefinitionProviderContext, group: AXPSettingDefinitionGroup);
2166
+ addSection(name: string, title: string, description?: string): AXPSettingDefinitionSectionBuilder;
2167
+ section(name: string): AXPSettingDefinitionSectionBuilder | null;
2168
+ addGroup(name: string, title: string, description?: string, icon?: string, pageTitle?: string, priority?: number): AXPSettingDefinitionGroupBuilder;
2169
+ endGroup(): AXPSettingDefinitionProviderContext;
2170
+ }
2171
+ declare class AXPSettingDefinitionSectionBuilder {
2172
+ private groupBuilder;
2173
+ private section;
2174
+ constructor(groupBuilder: AXPSettingDefinitionGroupBuilder, section: AXPSettingDefinitionSection);
2175
+ addSetting(setting: {
2176
+ key: string;
2177
+ title: string;
2178
+ scope: AXPPlatformScopeKey;
2179
+ widget: {
2180
+ type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
2181
+ options?: AXPOptionsData;
2182
+ triggers?: AXPWidgetTriggers;
2183
+ layout?: AXPSettingLayoutOptions;
2184
+ };
2185
+ description?: string;
2186
+ searchTagKeys?: string[];
2187
+ isRequired?: boolean;
2188
+ isInherited?: boolean;
2189
+ isEncrypted?: boolean;
2190
+ defaultValue?: unknown;
2191
+ valueTransforms?: AXPValueTransformerFunctions;
2192
+ validationRules?: AXPValidationRules;
2193
+ }): this;
2194
+ endSection(): AXPSettingDefinitionGroupBuilder;
2195
+ }
2196
+
1507
2197
  interface AXPSettingValueProvider {
1508
2198
  get scope(): AXPPlatformScope;
1509
2199
  load(): Promise<AXPSettingValue[]>;
@@ -1517,6 +2207,11 @@ interface AXPSettingValueProvider {
1517
2207
  interface AXPSettingDefaultValuesProvider {
1518
2208
  /** Merge order; lower numbers are applied first. Default is 0. */
1519
2209
  priority?: number;
2210
+ /**
2211
+ * When set, missing values from this provider are persisted at this scope instead of each
2212
+ * setting's definition scope. Use for app-wide demo or deployment defaults (e.g. platform).
2213
+ */
2214
+ scope?: AXPPlatformScope;
1520
2215
  /** Returns a flat map of setting key to default value. */
1521
2216
  provide(): Promise<Record<string, unknown>>;
1522
2217
  }
@@ -1530,12 +2225,19 @@ interface AXPSettingChangedEvent {
1530
2225
  values: Record<string, any>;
1531
2226
  entries: AXPSettingValue[];
1532
2227
  }
2228
+ /** Layout options for a single setting row on the settings page. */
2229
+ interface AXPSettingLayoutOptions extends AXPGridLayoutOptions {
2230
+ /** When true, stack the label above a full-width control. */
2231
+ stacked?: boolean;
2232
+ }
1533
2233
  interface AXPSettingDefinition {
1534
2234
  name: string;
1535
2235
  title: string;
1536
2236
  description?: string;
2237
+ /** Optional i18n keys (e.g. `@scope:key`) whose translated values are included in settings search. */
2238
+ searchTagKeys?: string[];
1537
2239
  widget: AXPWidgetNode;
1538
- layout?: AXPGridLayoutOptions;
2240
+ layout?: AXPSettingLayoutOptions;
1539
2241
  scope: AXPPlatformScopeKey;
1540
2242
  isRequired?: boolean;
1541
2243
  isInherited?: boolean;
@@ -1545,9 +2247,14 @@ interface AXPSettingDefinition {
1545
2247
  }
1546
2248
  interface AXPSettingDefinitionGroup {
1547
2249
  name: string;
2250
+ /** Short label (e.g. sidebar); i18n key when using the translation pipe. */
1548
2251
  title: string;
2252
+ /** Optional fuller page heading; i18n key. When omitted, `title` is used for the page header. */
2253
+ pageTitle?: string;
1549
2254
  icon?: string;
1550
2255
  description?: string;
2256
+ /** Sidebar order; lower numbers appear first. Defaults to 1000 when omitted. */
2257
+ priority?: number;
1551
2258
  groups: AXPSettingDefinitionGroup[];
1552
2259
  sections: AXPSettingDefinitionSection[];
1553
2260
  }
@@ -1567,49 +2274,6 @@ interface AXPGroupSearchResult {
1567
2274
  groups: AXPSettingDefinitionGroup[] | null;
1568
2275
  }
1569
2276
 
1570
- declare class AXPSettingDefinitionProviderContext {
1571
- private rootGroups;
1572
- private groupMap;
1573
- addGroup(name: string, title: string, description?: string, icon?: string): AXPSettingDefinitionGroupBuilder;
1574
- group(name: string): AXPSettingDefinitionGroupBuilder | null;
1575
- getGroups(): AXPSettingDefinitionGroup[];
1576
- hasGroup(name: string): boolean;
1577
- getGroup(name: string): AXPSettingDefinitionGroup | undefined;
1578
- }
1579
- declare class AXPSettingDefinitionGroupBuilder {
1580
- private context;
1581
- private group;
1582
- constructor(context: AXPSettingDefinitionProviderContext, group: AXPSettingDefinitionGroup);
1583
- addSection(name: string, title: string, description?: string): AXPSettingDefinitionSectionBuilder;
1584
- section(name: string): AXPSettingDefinitionSectionBuilder | null;
1585
- addGroup(name: string, title: string, description?: string, icon?: string): AXPSettingDefinitionGroupBuilder;
1586
- endGroup(): AXPSettingDefinitionProviderContext;
1587
- }
1588
- declare class AXPSettingDefinitionSectionBuilder {
1589
- private groupBuilder;
1590
- private section;
1591
- constructor(groupBuilder: AXPSettingDefinitionGroupBuilder, section: AXPSettingDefinitionSection);
1592
- addSetting(setting: {
1593
- key: string;
1594
- title: string;
1595
- scope: AXPPlatformScopeKey;
1596
- widget: {
1597
- type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
1598
- options?: AXPOptionsData;
1599
- triggers?: AXPWidgetTriggers;
1600
- layout?: AXPGridLayoutOptions;
1601
- };
1602
- description?: string;
1603
- isRequired?: boolean;
1604
- isInherited?: boolean;
1605
- isEncrypted?: boolean;
1606
- defaultValue?: unknown;
1607
- valueTransforms?: AXPValueTransformerFunctions;
1608
- validationRules?: AXPValidationRules;
1609
- }): this;
1610
- endSection(): AXPSettingDefinitionGroupBuilder;
1611
- }
1612
-
1613
2277
  interface AXPSettingDefinitionProvider {
1614
2278
  provide(context: AXPSettingDefinitionProviderContext): Promise<void>;
1615
2279
  }
@@ -1622,15 +2286,22 @@ declare class AXPSettingDefinitionProviderService {
1622
2286
  getListAsync(scope: AXPPlatformScopeKey): Promise<AXPSettingDefinitionGroup[]>;
1623
2287
  getList(scope: AXPPlatformScopeKey): AXPSettingDefinitionGroup[];
1624
2288
  defaultValues(): Promise<Record<string, unknown>>;
2289
+ settingScopeByKey(): Promise<Record<string, AXPPlatformScope>>;
1625
2290
  findGroup(scope: AXPPlatformScopeKey, groupName: string): AXPGroupSearchResult;
1626
2291
  private searchRecursive;
1627
2292
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSettingDefinitionProviderService, never>;
1628
2293
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSettingDefinitionProviderService>;
1629
2294
  }
1630
2295
  declare const AXP_SETTING_DEFAULT_VALUES_PROVIDERS: InjectionToken<AXPSettingDefaultValuesProvider[]>;
2296
+ interface AXPSettingMergedDefaults {
2297
+ defaults: Record<string, unknown>;
2298
+ /** Per-key scope override for seeding (from providers that set `scope`). */
2299
+ seedScopeByKey: Record<string, AXPPlatformScope>;
2300
+ }
1631
2301
  declare class AXPSettingDefaultValuesAggregatorService {
1632
2302
  private readonly definitionService;
1633
2303
  private readonly providers;
2304
+ getMerged(): Promise<AXPSettingMergedDefaults>;
1634
2305
  getDefaults(): Promise<Record<string, unknown>>;
1635
2306
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSettingDefaultValuesAggregatorService, never>;
1636
2307
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSettingDefaultValuesAggregatorService>;
@@ -1638,6 +2309,25 @@ declare class AXPSettingDefaultValuesAggregatorService {
1638
2309
 
1639
2310
  declare const AXP_SETTING_VALUE_PROVIDER: InjectionToken<AXPSettingValueProvider[]>;
1640
2311
 
2312
+ /**
2313
+ * Supported primitive coercions for persisted setting values (including `{ value: ... }` wrappers).
2314
+ */
2315
+ type AXPSettingCoercionKind = 'string' | 'boolean' | 'number' | 'date';
2316
+ /**
2317
+ * If the payload uses the common `{ value: T }` shape from setting widgets, returns the inner value; otherwise returns `raw`.
2318
+ */
2319
+ declare function peelSettingValueKey(raw: unknown): unknown;
2320
+ /**
2321
+ * Picks a primitive coercion kind from the setting definition default and/or the effective stored value.
2322
+ * Type argument `T` on the settings service `get` method is compile-time only; runtime behavior follows this inference.
2323
+ */
2324
+ declare function inferSettingCoercionKind(defaultSample: unknown, effective: unknown): AXPSettingCoercionKind | null;
2325
+ declare function coerceAXPSettingRawValueByKind(raw: unknown, kind: AXPSettingCoercionKind): string | boolean | number | Date;
2326
+ declare function coerceAXPSettingRawValue(raw: unknown, kind: 'string'): string;
2327
+ declare function coerceAXPSettingRawValue(raw: unknown, kind: 'boolean'): boolean;
2328
+ declare function coerceAXPSettingRawValue(raw: unknown, kind: 'number'): number;
2329
+ declare function coerceAXPSettingRawValue(raw: unknown, kind: 'date'): Date;
2330
+
1641
2331
  interface AXPSettingsServiceInterface {
1642
2332
  load(): Promise<AXPSettingValue[]>;
1643
2333
  get<T = any>(key: string): Promise<T>;
@@ -1655,10 +2345,20 @@ declare class AXPSettingsService implements AXPSettingsServiceInterface {
1655
2345
  constructor();
1656
2346
  reload(): Promise<void>;
1657
2347
  load(): Promise<AXPSettingValue[]>;
2348
+ /**
2349
+ * Returns the effective setting value. Primitive coercion (string, boolean, number, date) is inferred from the
2350
+ * definition default and/or the stored shape (including `{ value: ... }`). Type argument `T` is compile-time only;
2351
+ * it is not read at runtime—use it to document the expected result (e.g. `get<boolean>(key)`).
2352
+ */
1658
2353
  get<T = any>(key: string): Promise<T>;
2354
+ /**
2355
+ * Effective value (user → tenant → platform) when set; otherwise the definition default. Used for reads and coercion hints.
2356
+ */
2357
+ private resolveEffectiveAndDefault;
1659
2358
  defaultValues(scope: AXPPlatformScope): Promise<Record<string, unknown>>;
1660
2359
  scope(scope: AXPPlatformScope): ScopedSettingService;
1661
2360
  invokeChangeEvent(event: AXPSettingChangedEvent): void;
2361
+ private seedMissingDefaults;
1662
2362
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSettingsService, never>;
1663
2363
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSettingsService>;
1664
2364
  }
@@ -1676,9 +2376,17 @@ declare class ScopedSettingService {
1676
2376
  }
1677
2377
 
1678
2378
  /**
1679
- * Regional settings keys for date, time, and locale formatting.
1680
- * These keys are used by platform widgets and components to access regional settings.
1681
- * The actual setting definitions and providers are implemented in the locale-management module.
2379
+ * Exposes platform settings in expression strings, e.g.
2380
+ * `{{ settings.get('Common:Setting:Entity.ShowPageBadge') }}`.
2381
+ */
2382
+ declare class AXPSettingsEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {
2383
+ private readonly settingsService;
2384
+ provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
2385
+ }
2386
+
2387
+ /**
2388
+ * Regional and locale-related setting keys used by platform widgets and components.
2389
+ * Most values use the `LocaleManagement:Setting:Regional.*` prefix; definitions live in the locale-management module where applicable.
1682
2390
  */
1683
2391
  declare enum AXPRegionalSetting {
1684
2392
  LocaleProfile = "LocaleManagement:Setting:Regional.LocaleProfile",
@@ -1700,7 +2408,9 @@ declare enum AXPRegionalSetting {
1700
2408
  WeightUnits = "LocaleManagement:Setting:Regional.WeightUnits",
1701
2409
  VolumeUnits = "LocaleManagement:Setting:Regional.VolumeUnits",
1702
2410
  SpeedUnits = "LocaleManagement:Setting:Regional.SpeedUnits",
1703
- AreaUnits = "LocaleManagement:Setting:Regional.AreaUnits"
2411
+ AreaUnits = "LocaleManagement:Setting:Regional.AreaUnits",
2412
+ /** Default multi-language behavior for standard text field names; defined in locale-management `AXMRegionalSettingProvider`. */
2413
+ MultiLanguageSupport = "LocaleManagement:Setting:Regional.MultiLanguageSupport"
1704
2414
  }
1705
2415
 
1706
2416
  /**
@@ -1847,7 +2557,7 @@ declare const AXP_STATUS_PROVIDERS: InjectionToken<AXPStatusProvider[]>;
1847
2557
  * }
1848
2558
  *
1849
2559
  * // Later, get the status:
1850
- * const status = statusService.getStatus('task-management.status');
2560
+ * const status = await statusService.getStatus('task-management.status');
1851
2561
  * if (status) {
1852
2562
  * console.log('Statuses:', status.statuses);
1853
2563
  * console.log('Transitions:', status.transitions);
@@ -1860,7 +2570,6 @@ declare class AXPStatusDefinitionProviderService {
1860
2570
  private statusMap;
1861
2571
  private initializationPromise;
1862
2572
  private isInitialized;
1863
- constructor();
1864
2573
  /**
1865
2574
  * Initialize providers (resolve promises if needed)
1866
2575
  * Called lazily on first access
@@ -1869,22 +2578,21 @@ declare class AXPStatusDefinitionProviderService {
1869
2578
  private _doInitialize;
1870
2579
  /**
1871
2580
  * Get a status provider by key
1872
- * Direct synchronous access from Map. Providers are initialized in the constructor,
1873
- * including lazy-loaded providers (promises) which are resolved during initialization.
2581
+ * Ensures initialization is complete before accessing the status map.
1874
2582
  *
1875
2583
  * @param key - Status key (e.g., 'task-management.status')
1876
- * @returns Status provider with all statuses and transitions, or undefined if not found
2584
+ * @returns Promise that resolves to status provider with all statuses and transitions, or undefined if not found
1877
2585
  *
1878
2586
  * @example
1879
2587
  * ```typescript
1880
- * const status = statusService.getStatus('task-management.status');
2588
+ * const status = await statusService.getStatus('task-management.status');
1881
2589
  * if (status) {
1882
2590
  * console.log('Statuses:', status.statuses);
1883
2591
  * console.log('Transitions:', status.transitions);
1884
2592
  * }
1885
2593
  * ```
1886
2594
  */
1887
- getStatus(key: string): AXPStatusProvider | undefined;
2595
+ getStatus(key: string): Promise<AXPStatusProvider | undefined>;
1888
2596
  /**
1889
2597
  * Execute a status transition workflow action
1890
2598
  * Uses transition.command if provided, otherwise defaults to Entity:UpdateStatus
@@ -1910,6 +2618,10 @@ declare class AXPStatusDefinitionProviderService {
1910
2618
  * Checks if the transition exists in the provider's transitions list
1911
2619
  */
1912
2620
  private isValidTransition;
2621
+ /**
2622
+ * Best-effort plain string for {@link Error} messages (no i18n lookup).
2623
+ */
2624
+ private commandMessageTextForError;
1913
2625
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPStatusDefinitionProviderService, never>;
1914
2626
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPStatusDefinitionProviderService>;
1915
2627
  }
@@ -1929,6 +2641,7 @@ declare enum AXPSystemStatusType {
1929
2641
  Cancelled = "cancelled",
1930
2642
  Draft = "draft",
1931
2643
  PendingReview = "pending-review",
2644
+ WaitingSignOff = "waiting-sign-off",
1932
2645
  Approved = "approved",
1933
2646
  Published = "published",
1934
2647
  Archived = "archived",
@@ -2048,6 +2761,16 @@ declare const AXPSystemStatuses: Readonly<{
2048
2761
  readonly isInitial: false;
2049
2762
  readonly isFinal: false;
2050
2763
  };
2764
+ readonly WaitingSignOff: {
2765
+ readonly name: AXPSystemStatusType.WaitingSignOff;
2766
+ readonly title: string;
2767
+ readonly icon: "fa-light fa-clock";
2768
+ readonly color: "warning";
2769
+ readonly description: string;
2770
+ readonly order: 3;
2771
+ readonly isInitial: false;
2772
+ readonly isFinal: false;
2773
+ };
2051
2774
  readonly Approved: {
2052
2775
  readonly name: AXPSystemStatusType.Approved;
2053
2776
  readonly title: string;
@@ -2313,6 +3036,16 @@ interface AXPCurrency {
2313
3036
  format: string;
2314
3037
  }
2315
3038
 
3039
+ /**
3040
+ * Narrow API for reading app locale profiles and active languages.
3041
+ * Implemented by locale-management; consumed by platform layout without importing the module (avoids circular deps).
3042
+ */
3043
+ interface AXPLocaleManagementPort {
3044
+ getLocaleProfiles(): Promise<AXPLocaleProfile[]>;
3045
+ getLanguages(): Promise<AXPLanguage[]>;
3046
+ }
3047
+ declare const AXP_LOCALE_MANAGEMENT_PORT: InjectionToken<AXPLocaleManagementPort>;
3048
+
2316
3049
  interface AXPVersionStream {
2317
3050
  id: string;
2318
3051
  entityType: string;
@@ -2466,5 +3199,5 @@ declare class AXMWorkflowErrorHandler implements AXPErrorHandler {
2466
3199
  static ɵprov: i0.ɵɵInjectableDeclaration<AXMWorkflowErrorHandler>;
2467
3200
  }
2468
3201
 
2469
- 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 };
2470
- 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 };
3202
+ export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppVersionService, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPCommonSettings, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataProvider, AXPDebugService, AXPDefaultMultiLanguageConfigService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPEntityType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileActionsService, AXPFileStorageEvaluatorScopeProvider, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPHomePageModule, AXPHomePageService, AXPLockService, AXPMenuItemsDataSourceDefinition, AXPMenuMiddlewareRegistry, AXPMenuProviderService, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPMenuVisibilityService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPOutputContractTranscriptSegmentService, 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_AGENT_OUTPUT_CONTRACT_DEFAULT_STRUCTURED_RETRIES, 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_OUTPUT_CONTRACT_TRANSCRIPT_SEGMENT_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_DATE_FILTER_PRESETS, 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, applyDateFilterPreset, coerceAXPSettingRawValue, coerceAXPSettingRawValueByKind, configPlatform, createAllQueryView, createEntityCommandOptions, createEntitySearchCommand, createMenuContext, createMenuMiddleware, createQueryView, findManualPresetIdByOperation, getEntityInfo, getStatusInfo, getSystemStatus, inferSettingCoercionKind, isCardFieldBadgeDisplay, peelSettingValueKey, provideDynamicHomePage, provideMenuMiddleware, resolveCardFieldBadgeColor, resolveDateFilterPresets, resolveDefaultMasterListLayout, resolveEnabledMasterListLayouts, resolveStatusLook, shouldApplyDefaultMultiLanguageToEntityProperty, shouldApplyDefaultMultiLanguageToWidgetNode, shouldApplyDefaultMultiLanguageToWidgetProperty, systemStatusToDefinition, withDefaultMultiLanguageOnWidgetNodeTree, withDefaultMultiLanguageOnWidgetProperty };
3203
+ export type { AXCFileUploaderAction, AXCFileUploaderActionsPayload, AXCFileUploaderCapabilities, AXEntityPropertyWidget, AXPAgentOutputContract, AXPAgentOutputKind, AXPAgentResponseFormat, AXPAggregate, AXPAppVersion, AXPAppVersionProvider, AXPApplication, AXPCardBadgeColor, AXPCardBadgeDisplay, AXPCardBadgeDisplayOptions, AXPCardField, AXPCardFieldDisplay, AXPCardFieldDisplayConfig, AXPCategoryEntity, AXPColumnAlign, AXPColumnContentAlign, AXPCommandActionCallback, AXPCommandActionDisplay, AXPCommandActionLook, AXPCommandActionPriority, AXPCommandActionType, AXPCommonModuleConfigs, AXPCurrency, AXPDateTimeFilterPreset, AXPDateTimeFilterPresetKind, AXPDateTimeFilterValue, AXPDomToImageOptions, AXPEntity, AXPEntityAction, AXPEntityCommand, AXPEntityDetailListView, AXPEntityDisplayField, AXPEntityMasterCreateLayoutView, AXPEntityMasterLayoutView, AXPEntityMasterListDisplayMode, AXPEntityMasterListLayoutOption, AXPEntityMasterListLayoutType, 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, AXPJsonSchemaLike, AXPLanguage, AXPLocaleManagementPort, AXPLocaleProfile, AXPLockGetInfoRequest, AXPLockInfo, AXPLockRequest, AXPLockType, AXPMenuFinderResult, AXPMenuInsertion, AXPMenuItem, AXPMenuItemCommand, AXPMenuItemFinder, AXPMenuItemWithParent, AXPMenuMiddleware, AXPMenuMiddlewareContext, AXPMenuMiddlewareProvider, AXPMenuProvider, AXPMenuProviderContext, AXPMenuType, AXPModule, AXPOutputContractTranscriptSegmentDefinition, AXPOutputContractTranscriptSegmentProvider, AXPOutputContractTranscriptSegmentProviderToken, AXPOutputTranscriptSegmentId, AXPPlatformConfigs, AXPQueryFilter, AXPQuerySort, AXPQueryView, AXPRelatedEntity, AXPRelationship, AXPRootConfigs, AXPSearchAction, AXPSearchDefinition, AXPSearchDefinitionDisplayFormat, AXPSearchDefinitionProvider, AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPSearchDisplayResultForSave, AXPSearchParentResult, AXPSearchProvider, AXPSearchResult, AXPSettingChangedEvent, AXPSettingCoercionKind, AXPSettingDefaultValuesProvider, AXPSettingDefinition, AXPSettingDefinitionGroup, AXPSettingDefinitionProvider, AXPSettingDefinitionSection, AXPSettingLayoutOptions, AXPSettingMergedDefaults, AXPSettingValue, AXPSettingValueProvider, AXPSettingsServiceInterface, AXPStatusDefinition, AXPStatusTransition, AXPTimeZone, AXPTokenDefinition, AXPTokenDefinitionProvider, AXPTokenDefinitionProviderToken, AXPUnLockRequest, AXPVersionChange, AXPVersionEntry, AXPVersionStream, CanonicalChange, CanonicalChangeOp, VersionedFileInfo };