@acorex/platform 21.0.0-next.85 → 21.0.0-next.89

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 (81) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +9 -3
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-Ytey9uhY.mjs → acorex-platform-common-common-settings.provider-DilV4dql.mjs} +16 -3
  4. package/fesm2022/acorex-platform-common-common-settings.provider-DilV4dql.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +3426 -2488
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-contracts.mjs +1160 -9
  8. package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-core.mjs +826 -152
  10. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-domain-contracts.mjs +58 -0
  12. package/fesm2022/acorex-platform-domain-contracts.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-domain.mjs +2 -50
  14. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-builder.mjs +98 -189
  16. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-RttFwaw9.mjs} +17 -4
  18. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-RttFwaw9.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-components.mjs +181 -46
  20. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-designer.mjs +7 -6
  22. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-entity-contracts.mjs +1208 -0
  25. package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-entity.mjs +1080 -889
  28. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-layout-views.mjs +1150 -247
  30. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-layout-widget-core.mjs +388 -207
  32. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  33. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs +513 -0
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-CFyfix31.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-CZc2zFlg.mjs} +4 -4
  36. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-CZc2zFlg.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-XWRUVoL4.mjs} +2 -2
  38. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-XWRUVoL4.mjs.map} +1 -1
  39. package/fesm2022/acorex-platform-layout-widgets.mjs +1541 -394
  40. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  41. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  42. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs → acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs} +2 -3
  43. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DrUwqKKA.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-themes-default.mjs +956 -115
  45. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  46. package/fesm2022/{acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs → acorex-platform-themes-shared-settings.provider-UyKdkeyk.mjs} +50 -3
  47. package/fesm2022/acorex-platform-themes-shared-settings.provider-UyKdkeyk.mjs.map +1 -0
  48. package/fesm2022/acorex-platform-themes-shared.mjs +104 -24
  49. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  50. package/fesm2022/acorex-platform-workflow.mjs +6 -8
  51. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  52. package/package.json +9 -5
  53. package/types/acorex-platform-auth.d.ts +3 -1
  54. package/types/acorex-platform-common.d.ts +655 -1268
  55. package/types/acorex-platform-contracts.d.ts +1791 -260
  56. package/types/acorex-platform-core.d.ts +2302 -2800
  57. package/types/acorex-platform-domain-contracts.d.ts +416 -0
  58. package/types/acorex-platform-domain.d.ts +4 -415
  59. package/types/acorex-platform-layout-builder.d.ts +11 -20
  60. package/types/acorex-platform-layout-components.d.ts +29 -5
  61. package/types/acorex-platform-layout-designer.d.ts +2 -1
  62. package/types/acorex-platform-layout-entity-contracts.d.ts +889 -0
  63. package/types/acorex-platform-layout-entity.d.ts +143 -275
  64. package/types/acorex-platform-layout-views.d.ts +147 -31
  65. package/types/acorex-platform-layout-widget-core.d.ts +74 -14
  66. package/types/acorex-platform-layout-widgets.d.ts +136 -38
  67. package/types/acorex-platform-runtime.d.ts +1 -1
  68. package/types/acorex-platform-themes-default.d.ts +227 -73
  69. package/types/acorex-platform-themes-shared.d.ts +4 -0
  70. package/types/acorex-platform-workflow.d.ts +5 -18
  71. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +0 -1
  72. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +0 -1
  73. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +0 -116
  74. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +0 -1
  75. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map +0 -1
  76. package/fesm2022/acorex-platform-native.mjs +0 -155
  77. package/fesm2022/acorex-platform-native.mjs.map +0 -1
  78. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +0 -1
  79. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +0 -1
  80. package/native/README.md +0 -4
  81. package/types/acorex-platform-native.d.ts +0 -28
@@ -1,24 +1,29 @@
1
+ import * as _acorex_platform_contracts from '@acorex/platform/contracts';
2
+ import { AXPAgentOutputKind, AXPOutputTranscriptSegmentId, AXPUserReference, AXPExecuteCommand, AXPLogoConfig, AXPGridLayoutOptions, AXPPlatformScopeKey, AXPPlatformScope, AXPFileListItem, AXPFileStorageCreateRequest, AXPFileStorageInfo, AXPFileStorageUpdateRequest, AXPFileStorageFindRequest, AXPFileManyStorageInfo, AXPMetaDataDefinition, AXPIntegrationProviderDefinition, AXPIntegrationRuntimeContext, AXPIntegrationSecretPayload, AXPIntegrationAuthContext, AXPIntegrationResolvedCredentials, AXPMetaData, AXPSystemActionType, AXPMultiLanguageString, AXPApplicationUserReference, AXPEntityReference, AXPOptionsData, AXPWidgetTriggers, AXPValueTransformerFunctions, AXPValidationRules, AXPStatusProvider, AXPStatusTransition } from '@acorex/platform/contracts';
1
3
  import * as i0 from '@angular/core';
2
4
  import { InjectionToken, EnvironmentProviders, Signal, Injector, ErrorHandler, ModuleWithProviders, EventEmitter, ElementRef, Renderer2, NgZone, ChangeDetectorRef } from '@angular/core';
3
- import { AXDataSourceOperator, AXStyleColorType, AXDataSourceFilterOption } from '@acorex/cdk/common';
4
- import * as i3 from '@acorex/components/popup';
5
- import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
6
- import * as i1 from '@acorex/platform/core';
7
- import { AXPValueTransformerFunctions, AXPMultiLanguageString, AXPOptionsData, AXPExpression, AXPFilterDefinition, AXPMetaData, AXPSystemActionType, AXPValidationRules, AXPGridLayoutOptions, AXPUserReference, AXPExecuteCommand, AXPKeyboardShortcutHelpEntry, AXPLogoConfig, AXPFileListItem, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext, AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPNavigateActionCommand, AXPKeyboardShortcut, AXPExpressionEvaluatorScope, AXPExpressionEvaluatorService, AXPApplicationUserReference, AXPEntityReference, AXPPlatformScopeKey, AXPWidgetTriggers, AXPPlatformScope } from '@acorex/platform/core';
8
- import { AXPWidgetTypesMap, AXPWidgetNode, AXPWidgetProperty } from '@acorex/platform/layout/widget-core';
5
+ import { AXPEntity, AXPCommandActionLook, AXPCommandActionPriority, AXPEntityProperty } from '@acorex/platform/layout/entity-contracts';
6
+ export * from '@acorex/platform/layout/entity-contracts';
7
+ export { AXPEntitySearchTitleContext, ENTITY_LAYOUT_SINGLE_TITLE_PATH, ENTITY_ROW_POPUP_TITLE_OPTION, ENTITY_ROW_TITLE_TEMPLATE_OPTION, buildEntitySearchTitleContext, isMeaningfulEntityDisplayTitle, isUnresolvedEntityDisplayTemplate, normalizeEntityDisplayTemplate, resolveEntityModifyRecordTitleTemplate, resolveEntityRowTitleTemplate, sanitizeResolvedEntityDisplayTitle } from '@acorex/platform/layout/entity-contracts';
9
8
  import * as i4 from '@acorex/core/date-time';
10
9
  import { AXCalendarService } from '@acorex/core/date-time';
11
10
  import * as _angular_router from '@angular/router';
12
- import { Route, Routes, UrlTree, Router, RedirectCommand, ActivatedRouteSnapshot, CanActivateFn, CanDeactivateFn, NavigationExtras } from '@angular/router';
11
+ import { Route, Routes, UrlTree, Router, RedirectCommand, ActivatedRouteSnapshot, CanActivateFn, CanDeactivateFn, NavigationExtras, DetachedRouteHandle } from '@angular/router';
12
+ import { AXFormatterRegistryService, AXFormatter, AXFormatOptions, AXFormatService } from '@acorex/core/format';
13
+ import * as i1 from '@acorex/platform/core';
14
+ import { AXPKeyboardShortcutHelpEntry, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext, AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPNavigateActionCommand, AXPKeyboardShortcut, AXPContextEvalFactory, AXPExpressionEvaluatorScope, AXPExpressionEvaluatorService } from '@acorex/platform/core';
15
+ export { AXPDebugService } from '@acorex/platform/core';
13
16
  import * as i2 from '@acorex/platform/workflow';
14
17
  import { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
18
+ import * as i3 from '@acorex/components/popup';
19
+ import { AXPopupService } from '@acorex/components/popup';
15
20
  import * as i5 from '@acorex/components/toast';
16
- import { AXPFileStorageCreateRequest, AXPFileStorageInfo, AXPFileStorageUpdateRequest, AXPFileStorageFindRequest, AXPFileManyStorageInfo, AXPMetaDataDefinition } from '@acorex/platform/contracts';
17
21
  import * as rxjs from 'rxjs';
18
22
  import { Subject } from 'rxjs';
23
+ import { AXPWidgetNode, AXPWidgetProperty, AXPWidgetTypesMap } from '@acorex/platform/layout/widget-core';
24
+ import { AXDataSourceFilterOption, AXDataSourceOperator, AXStyleColorType } from '@acorex/cdk/common';
19
25
  import * as _ngrx_signals from '@ngrx/signals';
20
26
  import { AXTranslationService } from '@acorex/core/translation';
21
- import { AXFormatService } from '@acorex/core/format';
22
27
  import { AXLocaleProfile } from '@acorex/core/locale';
23
28
 
24
29
  /** Platform common datasource registry names. */
@@ -26,10 +31,6 @@ declare const AXPPlatformCommonDataSourceKeys: {
26
31
  readonly MenuItems: "platform-menu-items";
27
32
  };
28
33
 
29
- /** JSON data primitive for the specialist final deliverable. */
30
- type AXPAgentOutputKind = 'string' | 'object' | 'array';
31
- /** When `kind` is `object`, controls how the parsed value maps into chat transcript segments. */
32
- type AXPOutputTranscriptSegmentId = 'text' | 'node' | 'followUp' | 'file';
33
34
  /**
34
35
  * Minimal JSON-Schema-like object for native provider hints and local validation.
35
36
  */
@@ -136,597 +137,6 @@ declare class AXPAppVersionService {
136
137
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPAppVersionService>;
137
138
  }
138
139
 
139
- interface AXEntityPropertyWidget {
140
- type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
141
- path?: string;
142
- id?: string;
143
- children?: AXEntityPropertyWidget[];
144
- mode: 'view' | 'edit';
145
- options?: Record<string, any>;
146
- triggers?: {
147
- event: string;
148
- action: string;
149
- disabled?: boolean;
150
- }[];
151
- valueTransforms?: AXPValueTransformerFunctions;
152
- }
153
- declare enum AXPRelationshipKind {
154
- Association = 0,
155
- Composition = 1,
156
- Aggregation = 2
157
- }
158
- declare enum AXPRelationshipCardinality {
159
- OneToOne = 0,
160
- OneToMany = 1,
161
- ManyToMany = 2
162
- }
163
- interface AXPRelationship {
164
- id: string;
165
- from: string;
166
- to: string;
167
- kind: AXPRelationshipKind;
168
- cardinality: AXPRelationshipCardinality;
169
- }
170
- declare enum AXPEntityCommandScope {
171
- TypeLevel = "typeLevel",
172
- Selected = "selected",
173
- Individual = "individual",
174
- Section = "section"
175
- }
176
- declare enum AXPEntityQueryType {
177
- Single = "single",
178
- List = "list"
179
- }
180
- interface AXPEntityPropertyLayoutConfig extends AXPGridLayoutOptions {
181
- label?: {
182
- visible?: boolean;
183
- };
184
- order?: number;
185
- visible?: boolean | AXPExpression;
186
- }
187
- interface AXPEntityPropertyGroup {
188
- id: string;
189
- title: string;
190
- description?: string;
191
- permissions?: string[];
192
- icon?: string;
193
- }
194
- interface AXPEntityPropertyView {
195
- name: string;
196
- dataPath?: string;
197
- permissions?: string[];
198
- layout?: AXPEntityPropertyLayoutConfig;
199
- }
200
- interface AXPEntityPropertyUpdateView extends AXPEntityPropertyView {
201
- }
202
- interface AXPEntityPropertyCreateView extends AXPEntityPropertyView {
203
- defaultValue?: any;
204
- }
205
- interface AXPEntitySectionView {
206
- id: string;
207
- order?: number;
208
- collapsed?: boolean;
209
- layout?: AXPEntityPropertyLayoutConfig;
210
- }
211
- interface AXPEntityProperty {
212
- name: string;
213
- title: string;
214
- description?: string;
215
- groupId?: string;
216
- schema: {
217
- dataType: string;
218
- nullable?: boolean;
219
- readonly?: boolean | string;
220
- visible?: boolean | string;
221
- defaultValue?: any | string | ((context: any | null) => any);
222
- unique?: {
223
- enabled: boolean;
224
- };
225
- interface?: Partial<AXEntityPropertyWidget>;
226
- };
227
- options?: {
228
- filter?: {
229
- advance?: {
230
- enabled?: boolean;
231
- widgetType?: AXPWidgetTypesMap[keyof AXPWidgetTypesMap];
232
- };
233
- inline?: {
234
- enabled?: boolean;
235
- };
236
- preload?: {
237
- enabled?: boolean;
238
- required?: boolean;
239
- };
240
- };
241
- sort?: {
242
- enabled?: boolean;
243
- };
244
- };
245
- validations?: AXPValidationRules;
246
- }
247
- /** Logical alignment for table column header/cell (respects RTL). */
248
- type AXPColumnContentAlign = 'start' | 'center' | 'end';
249
- /**
250
- * Column alignment: shorthand applies to both header and cell;
251
- * object form sets each side independently (omitted keys default to start).
252
- */
253
- type AXPColumnAlign = AXPColumnContentAlign | {
254
- header?: AXPColumnContentAlign;
255
- cell?: AXPColumnContentAlign;
256
- };
257
- /** Shared field definition for list layouts (table columns, card fields, etc.). */
258
- interface AXPEntityDisplayField {
259
- name: string;
260
- title?: string;
261
- showAs?: {
262
- type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
263
- options?: Record<string, any>;
264
- };
265
- options?: {
266
- /** When string, evaluate against parent detail context (e.g. related list). */
267
- visible?: boolean | string;
268
- /** Optional dataPath override for field binding. */
269
- dataPath?: string;
270
- [name: string]: any;
271
- };
272
- }
273
- /** Card layout field presentation in master list card view. */
274
- type AXPCardFieldDisplay = 'simple' | 'badge';
275
- /** Badge color: semantic token or per-row expression (`{{ context.eval(...) }}`). */
276
- type AXPCardBadgeColor = AXStyleColorType | AXPExpression;
277
- interface AXPCardBadgeDisplayOptions {
278
- /** Semantic color or expression evaluated against row context. */
279
- color?: AXPCardBadgeColor;
280
- }
281
- interface AXPCardBadgeDisplay {
282
- type: 'badge';
283
- options?: AXPCardBadgeDisplayOptions;
284
- }
285
- /** Shorthand (`badge` / `simple`) or structured badge config with optional per-row color. */
286
- type AXPCardFieldDisplayConfig = AXPCardFieldDisplay | AXPCardBadgeDisplay;
287
- /** Card layout field in master list view. */
288
- type AXPCardField = AXPEntityDisplayField & {
289
- layout?: AXPEntityPropertyLayoutConfig;
290
- /**
291
- * Field presentation. Default: `simple` (card body).
292
- * Use `badge` or `{ type: 'badge', options: { color } }` for header chips beside title.
293
- */
294
- display?: AXPCardFieldDisplayConfig;
295
- /**
296
- * Badge color when presentation is badge-shaped.
297
- * Prefer `display: { type: 'badge', options: { color } }` for new definitions.
298
- * Omit for status fields — color is resolved from the status definition per row.
299
- */
300
- badgeColor?: AXPCardBadgeColor;
301
- };
302
- /** Whether the card field is shown as a header badge (not in the card body). */
303
- declare function isCardFieldBadgeDisplay(display: AXPCardFieldDisplayConfig | undefined): display is 'badge' | AXPCardBadgeDisplay;
304
- /** Resolves static badge color config from {@link AXPCardField.display} and legacy {@link AXPCardField.badgeColor}. */
305
- declare function resolveCardFieldBadgeColor(field: Pick<AXPCardField, 'display' | 'badgeColor'>): AXPCardBadgeColor | undefined;
306
- interface AXPEntityTableColumn extends AXPEntityDisplayField {
307
- options?: AXPEntityDisplayField['options'] & {
308
- /** Initial column width (overrides widget column width when set). */
309
- width?: string;
310
- /** Header/cell alignment (shorthand or per-side). */
311
- align?: AXPColumnAlign;
312
- };
313
- }
314
- interface AXPEntityCommand {
315
- execute: string | Function;
316
- permissions?: string[];
317
- }
318
- interface AXPEntityQuery {
319
- execute: string | Function;
320
- type: AXPEntityQueryType;
321
- }
322
-
323
- type AXPCommandActionType = AXPSystemActionType;
324
- interface AXPCommandActionLook {
325
- color: AXStyleColorType;
326
- icon: string;
327
- }
328
- type AXPCommandActionPriority = 'primary' | 'secondary';
329
- type AXPCommandActionCallback = string | {
330
- name: string;
331
- options?: {
332
- decoration?: {
333
- header?: {
334
- title?: string;
335
- };
336
- };
337
- process?: {
338
- data?: any;
339
- [name: string]: any;
340
- };
341
- layout?: {
342
- size?: AXPopupSizeType;
343
- };
344
- [name: string]: any;
345
- };
346
- metadata?: AXPMetaData;
347
- };
348
- interface AXPCommandActionDisplay extends Partial<AXPCommandActionLook> {
349
- name?: string;
350
- command: AXPCommandActionCallback;
351
- title: string;
352
- type: AXPSystemActionType | string;
353
- priority: 'primary' | 'secondary' | 'none';
354
- separated?: boolean;
355
- permissions?: string[];
356
- hidden?: boolean | string;
357
- disabled?: boolean | string;
358
- default?: boolean;
359
- order?: number;
360
- /**
361
- * Keyboard chords for this action (e.g. `'ctrl+shift+a'`).
362
- * Pass `[]` to disable shortcuts. When omitted, platform defaults may apply for known commands.
363
- */
364
- shortcuts?: string[];
365
- }
366
- interface AXPEntityAction extends AXPCommandActionDisplay {
367
- scope: AXPEntityCommandScope;
368
- /** Child actions for dropdown submenu */
369
- items?: AXPEntityAction[];
370
- }
371
- interface AXPEntity {
372
- plugins?: {
373
- name: string;
374
- options?: AXPOptionsData;
375
- }[];
376
- /**
377
- * High-level rules: when expression evaluates true, apply actions to the given targets
378
- * (property/section/action). Reduces repetition of the same condition across many properties.
379
- * Evaluation context: form data, user, entity; precedence vs property-level visible/readonly
380
- * must be defined where rules are applied.
381
- */
382
- rules?: Array<{
383
- name: string;
384
- expression: AXPExpression;
385
- actions: Array<{
386
- target: {
387
- type: 'property' | 'section' | 'action';
388
- name: string;
389
- };
390
- values: AXPOptionsData;
391
- }>;
392
- }>;
393
- module: string;
394
- name: string;
395
- icon?: string;
396
- parentKey?: string;
397
- category?: AXPCategoryEntity;
398
- title: string;
399
- formats: {
400
- individual: string;
401
- plural: string;
402
- lookup?: string;
403
- displayName?: string;
404
- searchResult?: {
405
- title: string;
406
- description?: string;
407
- };
408
- };
409
- relatedEntities?: AXPRelatedEntity[];
410
- pages?: AXPEntityPage[];
411
- groups?: AXPEntityPropertyGroup[];
412
- properties: AXPEntityProperty[];
413
- columns?: AXPEntityTableColumn[];
414
- commands?: {
415
- create?: AXPEntityCommand | undefined;
416
- update?: AXPEntityCommand | undefined;
417
- delete?: AXPEntityCommand | undefined;
418
- [name: string]: AXPEntityCommand | undefined;
419
- };
420
- queries?: {
421
- byKey?: AXPEntityQuery;
422
- list?: AXPEntityQuery;
423
- lookup?: AXPEntityQuery;
424
- history?: AXPEntityQuery;
425
- comments?: AXPEntityQuery;
426
- [name: string]: AXPEntityQuery | undefined;
427
- };
428
- validations?: AXPValidationRules;
429
- interfaces?: {
430
- master?: {
431
- single?: AXPEntityMasterSingleLayoutView;
432
- list?: AXPEntityMasterListView;
433
- create?: AXPEntityMasterCreateLayoutView;
434
- update?: AXPEntityMasterUpdateLayoutView;
435
- };
436
- detail?: {
437
- list?: AXPEntityDetailListView;
438
- };
439
- };
440
- }
441
- declare function getEntityInfo(entity: AXPEntity): {
442
- source: string;
443
- module: {
444
- route: string;
445
- };
446
- entity: {
447
- route: string;
448
- };
449
- };
450
- declare function createQueryView(name: string, title: string, fixed: boolean, params?: {
451
- columns?: string[];
452
- conditions?: any[];
453
- sorts?: AXPQuerySort[];
454
- }): AXPQueryView;
455
- declare function createAllQueryView(params?: {
456
- columns?: string[];
457
- conditions?: AXPQueryFilter[];
458
- sorts?: AXPQuerySort[];
459
- } | undefined): AXPQueryView;
460
- interface AXPRelatedEntity {
461
- entity: string;
462
- title?: string;
463
- icon?: string;
464
- columns?: string[] | AXPEntityTableColumn[];
465
- properties?: string[];
466
- excludeProperties?: string[];
467
- layout?: {
468
- type: 'tab-detail' | 'tab-list' | 'page-detail' | 'page-list' | 'merge-detail';
469
- order?: number;
470
- position?: 'before' | 'after' | 'middle';
471
- };
472
- conditions?: AXPQueryFilter[];
473
- customFilterDefinitions?: Partial<AXPFilterDefinition>[];
474
- hidden?: boolean | AXPExpression;
475
- actions?: AXPEntityAction[];
476
- /**
477
- * Controls inclusion on the host entity master **create** / **update** form.
478
- * Defaults depend on layout:
479
- * - **merge-detail**: omitted flags behave as **true** (opt-out with `false`).
480
- * - **tab-list** / **page-list**: omitted flags behave as **false** (opt-in with `true`).
481
- */
482
- appearOn?: {
483
- /** Include on host create form (see defaults above per layout type). */
484
- create?: boolean;
485
- /** Include on host update form (see defaults above per layout type). */
486
- update?: boolean;
487
- };
488
- /**
489
- * Relationship-level persistence strategy for merge-detail data.
490
- * Defaults:
491
- * - strategy: 'embedded'
492
- * - idField: last segment of dataPath + 'Id' (or 'relatedId' when dataPath is missing)
493
- * - map: undefined (pass-through)
494
- * - hydrate: 'eager' (applies to getOne only in mock)
495
- * - cascade.delete: 'none'
496
- */
497
- persistence?: {
498
- strategy?: 'embedded' | 'referenced';
499
- idField?: string;
500
- dataPath?: string;
501
- map?: Record<string, string>;
502
- hydrate?: 'eager' | 'lazy';
503
- cascade?: {
504
- delete?: 'none' | 'orphans' | 'all';
505
- };
506
- foreignKeyField?: string;
507
- };
508
- }
509
- interface AXPEntityPage {
510
- /**
511
- * Key to identify the component in the page component registry
512
- */
513
- componentKey: string;
514
- /**
515
- * Property name to render when the page component displays an entity field (e.g. 'questions', 'attachments').
516
- * Passed to the page component as pageConfig.field.
517
- */
518
- field?: string;
519
- /**
520
- * Title of the page (displayed in navigation)
521
- */
522
- title?: AXPMultiLanguageString;
523
- /**
524
- * Icon for the page (displayed in navigation)
525
- */
526
- icon?: string;
527
- /**
528
- * Description of the page
529
- */
530
- description?: AXPMultiLanguageString;
531
- /**
532
- * Layout configuration for page positioning
533
- */
534
- layout?: {
535
- /**
536
- * Order of the page (lower numbers appear first)
537
- */
538
- order?: number;
539
- /**
540
- * Position relative to the main page
541
- */
542
- position?: 'before' | 'after' | 'middle';
543
- };
544
- /**
545
- * Visibility condition (boolean or expression string)
546
- */
547
- hidden?: boolean | string;
548
- /**
549
- * Permissions required to view this page
550
- */
551
- permissions?: string[];
552
- /**
553
- * Controls inclusion on the host entity master **create** / **update** form wizard.
554
- * Omitted flags behave as **false** (opt-in with `true`), same as `tab-list` / `page-list` related entities.
555
- */
556
- appearOn?: {
557
- /** Include as a wizard step on host create form. */
558
- create?: boolean;
559
- /** Include as a wizard step on host update form. */
560
- update?: boolean;
561
- };
562
- options?: Record<string, any>;
563
- }
564
- interface AXPCategoryEntity {
565
- entity: string;
566
- title?: string;
567
- textField?: string;
568
- valueField?: string;
569
- conditions?: AXPQueryFilter[];
570
- applyConditions?: AXPQueryFilter[];
571
- }
572
- interface AXPEntityVersionHistory {
573
- enabled?: boolean;
574
- showInList?: boolean;
575
- showInDetail?: boolean;
576
- }
577
- interface AXPAggregate {
578
- id: string;
579
- name: string;
580
- title: AXPMultiLanguageString;
581
- entities: AXPEntity[];
582
- }
583
- interface AXPModule {
584
- name: string;
585
- title: AXPMultiLanguageString;
586
- aggregates: AXPAggregate[];
587
- relationships?: AXPRelationship[];
588
- }
589
- interface AXPApplication {
590
- name: string;
591
- title: AXPMultiLanguageString;
592
- modules: AXPModule[];
593
- }
594
- interface AXPEntityMasterLayoutView {
595
- title?: string;
596
- sections: AXPEntitySectionView[];
597
- properties?: AXPEntityPropertyView[];
598
- }
599
- /** Quick create config for lookup widgets (+ button) - uses subset of create form */
600
- interface AXPEntityQuickCreate {
601
- enabled?: boolean;
602
- properties?: string[];
603
- layout?: {
604
- size?: AXPopupSizeType;
605
- };
606
- excludeProperties?: string[];
607
- }
608
- interface AXPEntityMasterCreateLayoutView extends AXPEntityMasterLayoutView {
609
- steps?: {
610
- id: string;
611
- title: string;
612
- description?: string;
613
- };
614
- /** Quick create config for lookup widgets - uses subset of create form */
615
- quickCreate?: AXPEntityQuickCreate;
616
- }
617
- interface AXPEntityMasterUpdateLayoutView extends AXPEntityMasterLayoutView {
618
- }
619
- interface AXPEntityMasterSingleLayoutView extends AXPEntityMasterLayoutView {
620
- title: string;
621
- description?: string;
622
- actions?: AXPEntityAction[];
623
- }
624
- interface AXPEntityMasterListView {
625
- title?: string;
626
- description?: string;
627
- actions?: AXPEntityAction[];
628
- views: AXPQueryView[];
629
- layouts?: {
630
- table?: {
631
- enabled?: boolean;
632
- columns: AXPEntityTableColumn[];
633
- };
634
- card?: {
635
- enabled?: boolean;
636
- header: {
637
- /** Property path, expression (`{{ ... }}`), or literal — evaluated per row. */
638
- title?: string;
639
- description?: string;
640
- icon?: string;
641
- };
642
- fields: AXPCardField[];
643
- };
644
- };
645
- }
646
- type AXPEntityMasterListLayoutType = 'table' | 'card';
647
- /** Master list presentation: table or card with compact (collapsed) / expanded bodies. */
648
- type AXPEntityMasterListDisplayMode = 'table' | 'card-compact' | 'card-expanded';
649
- interface AXPEntityMasterListLayoutOption {
650
- id: AXPEntityMasterListLayoutType;
651
- title: string;
652
- icon?: string;
653
- }
654
- /** Resolves master list layouts that are currently enabled. */
655
- declare function resolveEnabledMasterListLayouts(layouts?: AXPEntityMasterListView['layouts']): AXPEntityMasterListLayoutType[];
656
- /** First enabled layout; used as the default when no user preference is stored. */
657
- declare function resolveDefaultMasterListLayout(layouts?: AXPEntityMasterListView['layouts']): AXPEntityMasterListLayoutType;
658
- interface AXPEntityDetailListView {
659
- title?: string;
660
- description?: string;
661
- columns: AXPEntityTableColumn[];
662
- actions?: AXPEntityAction[];
663
- }
664
- interface AXPQueryView {
665
- name: string;
666
- fixed: boolean;
667
- title: string;
668
- columns: string[];
669
- conditions: AXPQueryFilter[];
670
- sorts: AXPQuerySort[];
671
- indexCol?: boolean;
672
- pageSize?: number;
673
- visible?: boolean;
674
- }
675
- interface AXPQueryFilter {
676
- name: string;
677
- operator: AXDataSourceOperator;
678
- value: any;
679
- }
680
- interface AXPQuerySort {
681
- name: string;
682
- dir: 'asc' | 'desc';
683
- }
684
- declare enum AXPEntityType {
685
- Entity = 0,
686
- AggregateRoot = 1,
687
- ValueObject = 2
688
- }
689
- interface AXPEntityV2 {
690
- version: 2;
691
- module: string;
692
- aggregate: string;
693
- name: string;
694
- type: AXPEntityType;
695
- icon?: string;
696
- title: string;
697
- description?: string;
698
- plugins?: {
699
- name: string;
700
- options?: AXPOptionsData;
701
- }[];
702
- pages?: AXPEntityPage[];
703
- groups?: AXPEntityPropertyGroup[];
704
- properties: AXPEntityProperty[];
705
- formats: {
706
- individual: string;
707
- plural: string;
708
- lookup?: string;
709
- displayName?: string;
710
- searchResult?: {
711
- title: string;
712
- description?: string;
713
- };
714
- };
715
- columns?: AXPEntityTableColumn[];
716
- validations?: AXPValidationRules;
717
- interfaces?: {
718
- master?: {
719
- single?: AXPEntityMasterSingleLayoutView;
720
- list?: AXPEntityMasterListView;
721
- create?: AXPEntityMasterCreateLayoutView;
722
- update?: AXPEntityMasterUpdateLayoutView;
723
- };
724
- detail?: {
725
- list?: AXPEntityDetailListView;
726
- };
727
- };
728
- }
729
-
730
140
  interface AXPFilterOperator {
731
141
  name: string;
732
142
  title: string;
@@ -1120,6 +530,32 @@ declare class AXPBackgroundOperationSlotComponent {
1120
530
  static ɵcmp: i0.ɵɵComponentDeclaration<AXPBackgroundOperationSlotComponent, "axp-background-operation-slot", never, {}, {}, never, never, true, never>;
1121
531
  }
1122
532
 
533
+ declare class AXPBrowserTitleService {
534
+ private readonly document;
535
+ private readonly translateService;
536
+ private readonly tabNavigation;
537
+ private readonly menuService;
538
+ private readonly sessionService;
539
+ private readonly router;
540
+ private readonly destroyRef;
541
+ private readonly simpleModePageTitle;
542
+ private readonly localeRevision;
543
+ private readonly sessionRevision;
544
+ private readonly routeRevision;
545
+ constructor();
546
+ /** Publishes the resolved page title for the given route key (ignored in tabular mode). */
547
+ setSimpleModePageTitle(title: string | null, routeKey: string): void;
548
+ private syncDocumentTitle;
549
+ private resolveTabularRouteTitle;
550
+ private resolveSimpleRouteTitle;
551
+ private resolveMenuRouteTitle;
552
+ private resolveApplicationTitle;
553
+ private resolveLocalizedText;
554
+ private buildDocumentTitle;
555
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPBrowserTitleService, never>;
556
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPBrowserTitleService>;
557
+ }
558
+
1123
559
  interface AXPErrorHandler {
1124
560
  handleError(error: Error, next: (error: Error) => void): void;
1125
561
  }
@@ -1214,7 +650,7 @@ declare class AXPCommonModule {
1214
650
  /**
1215
651
  * @ignore
1216
652
  */
1217
- constructor(instances: any[], _keyboardShortcutsHelp: AXPKeyboardShortcutsHelpService);
653
+ constructor(instances: any[], _keyboardShortcutsHelp: AXPKeyboardShortcutsHelpService, formatterRegistry: AXFormatterRegistryService);
1218
654
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommonModule, never>;
1219
655
  static ɵmod: i0.ɵɵNgModuleDeclaration<AXPCommonModule, never, [typeof i1.AXPComponentSlotModule, typeof i2.AXPWorkflowModule, typeof i3.AXPopupModule, typeof i4.AXDateTimeModule, typeof i5.AXToastModule, typeof i1.AXPModuleManifestModule], [typeof _angular_router.RouterModule]>;
1220
656
  static ɵinj: i0.ɵɵInjectorDeclaration<AXPCommonModule>;
@@ -1252,59 +688,206 @@ declare enum AXPCommonSettings {
1252
688
  ShowCategoryColumnsByDefault = "Common:Setting:Entity.ShowCategoryColumnsByDefault",
1253
689
  ApplyLayoutOrdering = "Common:Setting:Entity.ApplyLayoutOrdering",
1254
690
  RedirectToDetailsAfterCreate = "Common:Setting:Entity.RedirectToDetailsAfterCreate",
691
+ HighlightAfterCreateInList = "Common:Setting:Entity.HighlightAfterCreateInList",
1255
692
  ShowPageBadge = "Common:Setting:Entity.ShowPageBadge",
1256
693
  ConfirmUnsavedChanges = "Common:Setting:Entity.ConfirmUnsavedChanges",
1257
694
  DebugMode = "PlatformDevTools:Setting:Developer.DebugMode",
1258
695
  ShowRowIndexColumn = "Common:Setting:Entity.ShowRowIndexColumn",
1259
- EntityListPersistenceMode = "Common:Setting:Entity.ListPersistenceMode"
1260
- }
1261
-
1262
- declare const AXP_ROOT_CONFIG_TOKEN: InjectionToken<AXPRootConfigs>;
1263
- interface AXPRootConfigs {
1264
- baseUrl: string;
696
+ EntityListPersistenceMode = "Common:Setting:Entity.ListPersistenceMode",
697
+ NavigationMode = "Common:Setting:Navigation.Mode",
698
+ MaxOpenTabs = "Common:Setting:Navigation.MaxOpenTabs"
1265
699
  }
1266
700
 
1267
- declare abstract class AXPDataProvider {
1268
- abstract insertOne(entity: any, entityItem: any): Promise<any>;
1269
- abstract insertMany(entity: any, entityList: any): Promise<any>;
1270
- abstract getOne(entity: any, id: string): Promise<any>;
1271
- abstract getMany(entity: any, params?: any): Promise<any>;
1272
- abstract updateOne(entity: any, id?: string, data?: {
1273
- [key: string]: any;
1274
- }): Promise<any>;
1275
- abstract deleteOne(entity: any, id: string): Promise<any>;
1276
- abstract getFirst(entity: any): Promise<any>;
1277
- abstract uploadFile(file: File, title: string, customUrl?: string): Promise<string>;
1278
- abstract updateFile(id: string, file: File, title: string, customUrl?: string): Promise<string>;
1279
- abstract uploadMultipleFiles(files: File[], title: string): Promise<string[]>;
1280
- abstract viewFile(id: string, name: string): Promise<Blob>;
1281
- abstract downloadFile(id: string, name: string): Promise<Blob>;
701
+ interface AXPSettingValueProvider {
702
+ get scope(): AXPPlatformScope;
703
+ load(): Promise<AXPSettingValue[]>;
704
+ set(key: string, value: any): Promise<void>;
705
+ set(values: Record<string, any>): Promise<void>;
1282
706
  }
1283
-
1284
- declare abstract class AXPFilterOperatorMiddlewareService {
1285
- /**
1286
- * Middleware to transform selected filters into corresponding operators.
1287
- * @param filters Array of selected filters (e.g., user input).
1288
- * @param customOperators Optional custom operators map to override default operators.
1289
- * @returns Transformed filters based on custom or default operators.
1290
- */
1291
- abstract transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];
707
+ /**
708
+ * Provider interface for supplying default setting values from higher layers (e.g., app, mocks, API).
709
+ * Providers are merged by ascending priority; later providers override earlier values on key conflicts.
710
+ */
711
+ interface AXPSettingDefaultValuesProvider {
712
+ /** Merge order; lower numbers are applied first. Default is 0. */
713
+ priority?: number;
1292
714
  /**
1293
- * Helper method to transform a single filter. This handles recursion for nested filters.
1294
- * @param filter A single filter object.
1295
- * @returns Transformed filter.
715
+ * When set, missing values from this provider are persisted at this scope instead of each
716
+ * setting's definition scope. Use for app-wide demo or deployment defaults (e.g. platform).
1296
717
  */
1297
- abstract transformFilter(filters: AXDataSourceFilterOption): AXDataSourceFilterOption;
1298
- abstract getOperator(key: string): AXDataSourceOperator;
718
+ scope?: AXPPlatformScope;
719
+ /** Returns a flat map of setting key to default value. */
720
+ provide(): Promise<Record<string, unknown>>;
1299
721
  }
1300
- declare class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {
1301
- private customOperatorService;
1302
- private operators;
1303
- transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];
1304
- transformFilter(filter: AXDataSourceFilterOption): AXDataSourceFilterOption;
1305
- getOperator(key: string): AXDataSourceOperator;
1306
- private getDefaultOperators;
1307
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPFilterOperatorMiddlewareServiceImpl, never>;
722
+ interface AXPSettingValue {
723
+ key: string;
724
+ value: any;
725
+ }
726
+ interface AXPSettingChangedEvent {
727
+ scope: AXPPlatformScope;
728
+ keys: string[];
729
+ values: Record<string, any>;
730
+ entries: AXPSettingValue[];
731
+ }
732
+ /** Layout options for a single setting row on the settings page. */
733
+ interface AXPSettingLayoutOptions extends AXPGridLayoutOptions {
734
+ /** When true, stack the label above a full-width control. */
735
+ stacked?: boolean;
736
+ }
737
+ interface AXPSettingDefinition {
738
+ name: string;
739
+ title: string;
740
+ description?: string;
741
+ /** Optional i18n keys (e.g. `@scope:key`) whose translated values are included in settings search. */
742
+ searchTagKeys?: string[];
743
+ widget: AXPWidgetNode;
744
+ layout?: AXPSettingLayoutOptions;
745
+ scope: AXPPlatformScopeKey;
746
+ isRequired?: boolean;
747
+ isInherited?: boolean;
748
+ isEncrypted?: boolean;
749
+ /** When true, saving this setting from the settings page reloads the browser. */
750
+ requiresPageRefresh?: boolean;
751
+ defaultValue?: unknown;
752
+ value?: unknown;
753
+ }
754
+ interface AXPSettingDefinitionGroup {
755
+ name: string;
756
+ /** Short label (e.g. sidebar); i18n key when using the translation pipe. */
757
+ title: string;
758
+ /** Optional fuller page heading; i18n key. When omitted, `title` is used for the page header. */
759
+ pageTitle?: string;
760
+ icon?: string;
761
+ description?: string;
762
+ /** Sidebar order; lower numbers appear first. Defaults to 1000 when omitted. */
763
+ priority?: number;
764
+ groups: AXPSettingDefinitionGroup[];
765
+ sections: AXPSettingDefinitionSection[];
766
+ }
767
+ interface AXPSettingDefinitionSection {
768
+ name: string;
769
+ title: string;
770
+ description?: string;
771
+ settings: AXPSettingDefinition[];
772
+ }
773
+ interface AXPGroupSearchResult {
774
+ breadcrumb: {
775
+ name: string;
776
+ title: string;
777
+ description?: string;
778
+ }[];
779
+ sections: AXPSettingDefinitionSection[] | null;
780
+ groups: AXPSettingDefinitionGroup[] | null;
781
+ }
782
+
783
+ interface AXPSettingsServiceInterface {
784
+ load(): Promise<AXPSettingValue[]>;
785
+ get<T = any>(key: string): Promise<T>;
786
+ defaultValues(scope: AXPPlatformScope): Promise<Record<string, unknown>>;
787
+ scope(scope: AXPPlatformScope): ScopedSettingService;
788
+ }
789
+ declare class AXPSettingsService implements AXPSettingsServiceInterface {
790
+ private readonly providers;
791
+ private readonly injector;
792
+ private readonly eventService;
793
+ private readonly sessionService;
794
+ private readonly debugService;
795
+ private readonly scopedSettingsCache;
796
+ readonly onChanged: Subject<AXPSettingChangedEvent>;
797
+ readonly onLoaded: Subject<void>;
798
+ constructor();
799
+ reload(): Promise<void>;
800
+ load(): Promise<AXPSettingValue[]>;
801
+ /**
802
+ * Returns the effective setting value. Primitive coercion (string, boolean, number, date) is inferred from the
803
+ * definition default and/or the stored shape (including `{ value: ... }`). Type argument `T` is compile-time only;
804
+ * it is not read at runtime—use it to document the expected result (e.g. `get<boolean>(key)`).
805
+ */
806
+ get<T = any>(key: string): Promise<T>;
807
+ /**
808
+ * Effective value (user → tenant → platform) when set; otherwise the definition default. Used for reads and coercion hints.
809
+ */
810
+ private resolveEffectiveAndDefault;
811
+ defaultValues(scope: AXPPlatformScope): Promise<Record<string, unknown>>;
812
+ scope(scope: AXPPlatformScope): ScopedSettingService;
813
+ invokeChangeEvent(event: AXPSettingChangedEvent): void;
814
+ private applyDebugModeFromSettings;
815
+ private applyDebugModeFromEvent;
816
+ private seedMissingDefaults;
817
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPSettingsService, never>;
818
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPSettingsService>;
819
+ }
820
+ declare class ScopedSettingService {
821
+ private parent;
822
+ private provider;
823
+ private scopeCache;
824
+ constructor(parent: AXPSettingsService, provider: AXPSettingValueProvider, scopeCache: Map<string, any>);
825
+ get<T = any>(key: string): Promise<T>;
826
+ all(): Promise<any>;
827
+ defaultValues(): Promise<Record<string, unknown>>;
828
+ set<T = any>(key: string, value: T): Promise<void>;
829
+ set<T = any>(values: Record<string, T>): Promise<void>;
830
+ update<T = any>(key: string, updateFn: (currentValue: T) => T): Promise<void>;
831
+ }
832
+
833
+ interface AXPEntityCreateListBehaviorOptions {
834
+ redirect?: boolean;
835
+ }
836
+ interface AXPEntityCreateListBehavior {
837
+ shouldRedirect: boolean;
838
+ shouldHighlight: boolean;
839
+ }
840
+ /**
841
+ * Resolves post-create list behavior from user settings and optional action overrides.
842
+ */
843
+ declare function resolveEntityCreateListBehavior(settingsService: AXPSettingsService, options?: AXPEntityCreateListBehaviorOptions): Promise<AXPEntityCreateListBehavior>;
844
+
845
+ declare const AXP_ROOT_CONFIG_TOKEN: InjectionToken<AXPRootConfigs>;
846
+ interface AXPRootConfigs {
847
+ baseUrl: string;
848
+ }
849
+
850
+ declare abstract class AXPDataProvider {
851
+ abstract insertOne(entity: any, entityItem: any): Promise<any>;
852
+ abstract insertMany(entity: any, entityList: any): Promise<any>;
853
+ abstract getOne(entity: any, id: string): Promise<any>;
854
+ abstract getMany(entity: any, params?: any): Promise<any>;
855
+ abstract updateOne(entity: any, id?: string, data?: {
856
+ [key: string]: any;
857
+ }): Promise<any>;
858
+ abstract deleteOne(entity: any, id: string): Promise<any>;
859
+ abstract getFirst(entity: any): Promise<any>;
860
+ abstract uploadFile(file: File, title: string, customUrl?: string): Promise<string>;
861
+ abstract updateFile(id: string, file: File, title: string, customUrl?: string): Promise<string>;
862
+ abstract uploadMultipleFiles(files: File[], title: string): Promise<string[]>;
863
+ abstract viewFile(id: string, name: string): Promise<Blob>;
864
+ abstract downloadFile(id: string, name: string): Promise<Blob>;
865
+ }
866
+
867
+ declare abstract class AXPFilterOperatorMiddlewareService {
868
+ /**
869
+ * Middleware to transform selected filters into corresponding operators.
870
+ * @param filters Array of selected filters (e.g., user input).
871
+ * @param customOperators Optional custom operators map to override default operators.
872
+ * @returns Transformed filters based on custom or default operators.
873
+ */
874
+ abstract transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];
875
+ /**
876
+ * Helper method to transform a single filter. This handles recursion for nested filters.
877
+ * @param filter A single filter object.
878
+ * @returns Transformed filter.
879
+ */
880
+ abstract transformFilter(filters: AXDataSourceFilterOption): AXDataSourceFilterOption;
881
+ abstract getOperator(key: string): AXDataSourceOperator;
882
+ }
883
+ declare class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {
884
+ private customOperatorService;
885
+ private operators;
886
+ transformFilters(filters: AXDataSourceFilterOption[]): AXDataSourceFilterOption[];
887
+ transformFilter(filter: AXDataSourceFilterOption): AXDataSourceFilterOption;
888
+ getOperator(key: string): AXDataSourceOperator;
889
+ private getDefaultOperators;
890
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPFilterOperatorMiddlewareServiceImpl, never>;
1308
891
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPFilterOperatorMiddlewareServiceImpl>;
1309
892
  }
1310
893
 
@@ -1490,6 +1073,23 @@ declare class AXPFileActionsService {
1490
1073
 
1491
1074
  declare const UploadFromComputerActionProvider: AXPFileActionProvider;
1492
1075
 
1076
+ interface AXPTranslateFormatterOptions extends AXFormatOptions {
1077
+ scope?: string;
1078
+ lang?: string;
1079
+ params?: Record<string, unknown>;
1080
+ }
1081
+ /**
1082
+ * Platform formatter for display text: resolves ML objects, i18n keys (`@scope:key`), and primitives.
1083
+ * Register via {@link AXPCommonModule} (auto) or `AXFormatModule.forRoot({ formatters: [AXPTranslateFormatter] })`.
1084
+ */
1085
+ declare class AXPTranslateFormatter implements AXFormatter {
1086
+ private readonly translationService;
1087
+ get name(): string;
1088
+ format(value: unknown, options?: AXPTranslateFormatterOptions | string): string;
1089
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTranslateFormatter, never>;
1090
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPTranslateFormatter>;
1091
+ }
1092
+
1493
1093
  declare abstract class AXPFileStorageService {
1494
1094
  abstract save(request: AXPFileStorageCreateRequest): Promise<AXPFileStorageInfo>;
1495
1095
  abstract update(request: AXPFileStorageUpdateRequest): Promise<AXPFileStorageInfo>;
@@ -1504,7 +1104,8 @@ declare abstract class AXPFileStorageService {
1504
1104
  }
1505
1105
 
1506
1106
  declare class AXPFileStorageEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {
1507
- fileStorageService: AXPFileStorageService;
1107
+ private readonly fileStorageService;
1108
+ private readonly debug;
1508
1109
  provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
1509
1110
  }
1510
1111
 
@@ -1576,6 +1177,94 @@ declare class AXPFileTypeProviderService implements AXPFileTypeInfoProvider {
1576
1177
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileTypeProviderService>;
1577
1178
  }
1578
1179
 
1180
+ declare class AXPIntegrationProviderContext {
1181
+ private readonly definitions;
1182
+ /**
1183
+ * Registers a provider definition. Throws when duplicate ids are registered.
1184
+ */
1185
+ register(definition: AXPIntegrationProviderDefinition): void;
1186
+ getDefinitions(): ReadonlyMap<string, AXPIntegrationProviderDefinition>;
1187
+ }
1188
+
1189
+ interface AXPIntegrationProvider {
1190
+ provide(context: AXPIntegrationProviderContext): Promise<void>;
1191
+ }
1192
+ declare const AXP_INTEGRATION_PROVIDER: InjectionToken<AXPIntegrationProvider[]>;
1193
+ interface AXPIntegrationRuntimeProvider {
1194
+ readonly providerId: string;
1195
+ getHooks(): Promise<_acorex_platform_contracts.AXPIntegrationProviderRuntimeHooks>;
1196
+ }
1197
+ declare const AXP_INTEGRATION_RUNTIME_PROVIDER: InjectionToken<AXPIntegrationRuntimeProvider[]>;
1198
+
1199
+ declare class AXPIntegrationProviderRegistryService {
1200
+ private readonly providers;
1201
+ private cache;
1202
+ list(): Promise<AXPIntegrationProviderDefinition[]>;
1203
+ get(id: string): Promise<AXPIntegrationProviderDefinition | null>;
1204
+ getOrThrow(id: string): Promise<AXPIntegrationProviderDefinition>;
1205
+ clearCache(): void;
1206
+ private load;
1207
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPIntegrationProviderRegistryService, never>;
1208
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPIntegrationProviderRegistryService>;
1209
+ }
1210
+
1211
+ interface AXPIntegrationSecretRefInput {
1212
+ providerId: string;
1213
+ connectionId: string;
1214
+ tenantId: string;
1215
+ userId: string;
1216
+ authMethodType: string;
1217
+ }
1218
+ interface AXPIntegrationSecretStore {
1219
+ store(ref: AXPIntegrationSecretRefInput, payload: AXPIntegrationSecretPayload): Promise<string>;
1220
+ rotate(secretRef: string, context: AXPIntegrationAuthContext, payload: Partial<AXPIntegrationSecretPayload>): Promise<void>;
1221
+ resolve(secretRef: string, context: AXPIntegrationAuthContext): Promise<AXPIntegrationResolvedCredentials>;
1222
+ revoke(secretRef: string, context: AXPIntegrationAuthContext): Promise<void>;
1223
+ delete(secretRef: string, context: AXPIntegrationAuthContext): Promise<void>;
1224
+ }
1225
+ declare const AXP_INTEGRATION_SECRET_STORE: InjectionToken<AXPIntegrationSecretStore>;
1226
+ interface AXPIntegrationWithClientOptions {
1227
+ providerId: string;
1228
+ connectionScope?: 'user' | 'tenant';
1229
+ connectionKey?: string;
1230
+ requiredCapabilities?: string[];
1231
+ requiredScopes?: string[];
1232
+ }
1233
+ declare abstract class AXPIntegrationRuntimeService {
1234
+ abstract getProvider(id: string): Promise<AXPIntegrationProviderDefinition>;
1235
+ abstract listProviders(): Promise<AXPIntegrationProviderDefinition[]>;
1236
+ abstract getConnection(options: AXPIntegrationWithClientOptions): Promise<_acorex_platform_contracts.AXPSafeIntegrationConnectionDto>;
1237
+ abstract withClient<T>(options: AXPIntegrationWithClientOptions, fn: (client: unknown, ctx: AXPIntegrationRuntimeContext) => Promise<T>): Promise<T>;
1238
+ abstract buildRuntimeContext(connection: _acorex_platform_contracts.AXPSafeIntegrationConnectionDto & {
1239
+ secretRef: string;
1240
+ }): Promise<AXPIntegrationRuntimeContext>;
1241
+ }
1242
+ interface AXPIntegrationOAuthStartInput {
1243
+ providerId: string;
1244
+ connectionScope: 'user' | 'tenant';
1245
+ connectionKey: string;
1246
+ displayName: string;
1247
+ redirectUri: string;
1248
+ tenantId: string;
1249
+ userId: string;
1250
+ scopes?: string[];
1251
+ }
1252
+ interface AXPIntegrationOAuthCompleteInput {
1253
+ providerId: string;
1254
+ state: string;
1255
+ code: string;
1256
+ }
1257
+ declare abstract class AXPIntegrationOAuthService {
1258
+ abstract startAuthorization(input: AXPIntegrationOAuthStartInput): Promise<{
1259
+ redirectUrl: string;
1260
+ state: string;
1261
+ }>;
1262
+ abstract completeCallback(input: AXPIntegrationOAuthCompleteInput): Promise<{
1263
+ connectionId: string;
1264
+ }>;
1265
+ }
1266
+ declare const AXP_INTEGRATION_OAUTH_SERVICE: InjectionToken<AXPIntegrationOAuthService>;
1267
+
1579
1268
  declare class AXPStickyDirective {
1580
1269
  private element;
1581
1270
  private renderer;
@@ -2140,6 +1829,14 @@ interface AXPSearchAction extends Partial<AXPCommandActionLook> {
2140
1829
  separated?: boolean;
2141
1830
  }
2142
1831
 
1832
+ /**
1833
+ * Optional hook to resolve entity search definitions on demand (e.g. Module.X.Entity).
1834
+ */
1835
+ interface AXPSearchDefinitionLazyResolver {
1836
+ resolve(definitionName: string): Promise<AXPSearchDefinition | null>;
1837
+ }
1838
+ declare const AXP_SEARCH_DEFINITION_LAZY_RESOLVER: InjectionToken<AXPSearchDefinitionLazyResolver>;
1839
+
2143
1840
  declare class AXPSearchDefinitionProviderContext {
2144
1841
  private definitions;
2145
1842
  private definitionMap;
@@ -2171,11 +1868,13 @@ interface AXPSearchDefinitionProvider {
2171
1868
  declare const AXP_SEARCH_DEFINITION_PROVIDER: InjectionToken<AXPSearchDefinitionProvider[]>;
2172
1869
  declare class AXPSearchDefinitionProviderService {
2173
1870
  private providers;
1871
+ private lazyResolver;
2174
1872
  private cache;
2175
1873
  private load;
2176
1874
  getListAsync(): Promise<AXPSearchDefinition[]>;
2177
1875
  getList(): AXPSearchDefinition[];
2178
1876
  findDefinition(definitionName: string): AXPSearchDefinition;
1877
+ findDefinitionAsync(definitionName: string): Promise<AXPSearchDefinition | null>;
2179
1878
  findDefinitionByGroup(definitionGroup: string): AXPSearchDefinition;
2180
1879
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSearchDefinitionProviderService, never>;
2181
1880
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSearchDefinitionProviderService>;
@@ -2197,6 +1896,7 @@ declare class AXPSearchService {
2197
1896
  private formatService;
2198
1897
  private translationService;
2199
1898
  private expressionEvaluator;
1899
+ private contextEvalFactory;
2200
1900
  search(text: string): Promise<AXPSearchDisplayGroupResult[]>;
2201
1901
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSearchService, never>;
2202
1902
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSearchService>;
@@ -2214,12 +1914,12 @@ declare function searchInSearchableValue(value: unknown, query: string, locale:
2214
1914
  * Shallow + nested search over entity/command payloads (skips id / entityName keys).
2215
1915
  */
2216
1916
  declare function searchInRecordValues(value: unknown, query: string, locale: string, translationService: AXTranslationService, depth?: number): boolean;
2217
- /** Standard row scope for entity title/search templates. */
2218
- declare function createEntityRowExpressionScope(data: unknown): AXPExpressionEvaluatorScope;
1917
+ /** Standard display-tier row scope for entity title/search templates. */
1918
+ declare function createEntityRowExpressionScope(data: unknown, contextEvalFactory: AXPContextEvalFactory): AXPExpressionEvaluatorScope;
2219
1919
  /**
2220
1920
  * Evaluates a normalized entity display template via {@link AXPExpressionEvaluatorService}.
2221
1921
  */
2222
- declare function evaluateEntityDisplayTemplate(template: string, data: unknown, expressionEvaluator: AXPExpressionEvaluatorService, locale: string, translationService: AXTranslationService): Promise<unknown>;
1922
+ declare function evaluateEntityDisplayTemplate(template: string, data: unknown, expressionEvaluator: AXPExpressionEvaluatorService, locale: string, translationService: AXTranslationService, contextEvalFactory: AXPContextEvalFactory): Promise<unknown>;
2223
1923
  /**
2224
1924
  * Best display string from row values that contain the active search query (deep-match fallback).
2225
1925
  */
@@ -2227,40 +1927,16 @@ declare function resolveQueryMatchingDisplayText(value: unknown, query: string,
2227
1927
  /**
2228
1928
  * Resolves entity search display templates; coerces multi-language field values to readable text.
2229
1929
  */
2230
- declare function resolveSearchDisplayTemplate(template: string | undefined, data: unknown, locale: string, translationService: AXTranslationService, formatService: AXFormatService, expressionEvaluator: AXPExpressionEvaluatorService): Promise<AXPMultiLanguageString>;
1930
+ declare function resolveSearchDisplayTemplate(template: string | undefined, data: unknown, locale: string, translationService: AXTranslationService, formatService: AXFormatService, expressionEvaluator: AXPExpressionEvaluatorService, contextEvalFactory: AXPContextEvalFactory): Promise<AXPMultiLanguageString>;
2231
1931
 
2232
- interface AXPEntitySearchTitleContext {
2233
- /** Templates tried after the primary `searchResult.title` fails (`single.title`, lookup, individual). */
2234
- fallbackTemplates: string[];
2235
- /** Entity property paths tried when templates do not resolve (`lookup`, identifier, common fields). */
2236
- fallbackFields: string[];
2237
- }
2238
- /**
2239
- * Normalizes entity display templates for {@link AXPExpressionEvaluatorService}.
2240
- * Converts `context.eval('path')`, single braces, and simple dot paths to `context.eval` segments.
2241
- */
2242
- declare function normalizeEntityDisplayTemplate(template: string): string;
2243
- /** True when formatted text still contains unresolved template markers. */
2244
- declare function isUnresolvedEntityDisplayTemplate(value: string): boolean;
2245
- /**
2246
- * Strips literal `undefined` / `null` tokens produced when expression segments are missing.
2247
- */
2248
- declare function sanitizeResolvedEntityDisplayTitle(value: string): string;
2249
- /** True when a resolved title is non-empty and safe to show in search or entity chrome. */
2250
- declare function isMeaningfulEntityDisplayTitle(value: string): boolean;
2251
- /**
2252
- * Builds entity-scoped fallback metadata for global search (registered on each entity search definition).
2253
- */
2254
- declare function buildEntitySearchTitleContext(entity: AXPEntity, primaryTemplate?: string): AXPEntitySearchTitleContext;
2255
1932
  /**
2256
- * Row title template chain aligned with entity layouts.
2257
- * Priority: `interfaces.master.single.title` → `formats.searchResult.title` → `formats.individual`.
1933
+ * Modify/edit popup chrome: `{action} {individual} ({update.title ?? single.title})` when a record template exists.
2258
1934
  */
2259
- declare function resolveEntityRowTitleTemplate(entity: AXPEntity | null | undefined): string | undefined;
1935
+ declare function resolveEntityModifyPopupTitle(entity: AXPEntity, recordData: unknown, translationService: AXTranslationService, formatService: AXFormatService, expressionEvaluator: AXPExpressionEvaluatorService, contextEvalFactory: AXPContextEvalFactory, actionTitleKey?: string): Promise<string>;
2260
1936
  /**
2261
1937
  * Resolves an entity row title using entity-driven fallback templates and property paths.
2262
1938
  */
2263
- declare function resolveEntitySearchTitleFallback(format: Pick<AXPSearchDefinitionDisplayFormat, 'titleFallbackTemplates' | 'titleFallbackFields'>, data: unknown, locale: string, translationService: AXTranslationService, formatService: AXFormatService, expressionEvaluator: AXPExpressionEvaluatorService): Promise<string>;
1939
+ declare function resolveEntitySearchTitleFallback(format: Pick<AXPSearchDefinitionDisplayFormat, 'titleFallbackTemplates' | 'titleFallbackFields'>, data: unknown, locale: string, translationService: AXTranslationService, formatService: AXFormatService, expressionEvaluator: AXPExpressionEvaluatorService, contextEvalFactory: AXPContextEvalFactory): Promise<string>;
2264
1940
 
2265
1941
  interface AXPResolveEntityRowDisplayTitleOptions {
2266
1942
  /** Row or form context data used to evaluate title templates. */
@@ -2272,12 +1948,6 @@ interface AXPResolveEntityRowDisplayTitleOptions {
2272
1948
  /** Widget/interface options — may contain `popupTitle` or `titleTemplate`. */
2273
1949
  widgetOptions?: Record<string, unknown> | undefined;
2274
1950
  }
2275
- /** Row path used when context carries a nested entity layout title. */
2276
- declare const ENTITY_LAYOUT_SINGLE_TITLE_PATH = "entity.layout.single.title";
2277
- /** Widget option for a pre-evaluated or template entity row title (entity list column mappers). */
2278
- declare const ENTITY_ROW_POPUP_TITLE_OPTION = "popupTitle";
2279
- /** Widget option alias for entity row title templates in view/edit forms. */
2280
- declare const ENTITY_ROW_TITLE_TEMPLATE_OPTION = "titleTemplate";
2281
1951
  /** Resolves a row field or format result to a plain display string for the active locale. */
2282
1952
  declare function resolveEntityRowDisplayText(value: unknown, activeLang: string): string;
2283
1953
  /**
@@ -2485,6 +2155,7 @@ declare class AXPSettingDefinitionSectionBuilder {
2485
2155
  isRequired?: boolean;
2486
2156
  isInherited?: boolean;
2487
2157
  isEncrypted?: boolean;
2158
+ requiresPageRefresh?: boolean;
2488
2159
  defaultValue?: unknown;
2489
2160
  valueTransforms?: AXPValueTransformerFunctions;
2490
2161
  validationRules?: AXPValidationRules;
@@ -2492,86 +2163,6 @@ declare class AXPSettingDefinitionSectionBuilder {
2492
2163
  endSection(): AXPSettingDefinitionGroupBuilder;
2493
2164
  }
2494
2165
 
2495
- interface AXPSettingValueProvider {
2496
- get scope(): AXPPlatformScope;
2497
- load(): Promise<AXPSettingValue[]>;
2498
- set(key: string, value: any): Promise<void>;
2499
- set(values: Record<string, any>): Promise<void>;
2500
- }
2501
- /**
2502
- * Provider interface for supplying default setting values from higher layers (e.g., app, mocks, API).
2503
- * Providers are merged by ascending priority; later providers override earlier values on key conflicts.
2504
- */
2505
- interface AXPSettingDefaultValuesProvider {
2506
- /** Merge order; lower numbers are applied first. Default is 0. */
2507
- priority?: number;
2508
- /**
2509
- * When set, missing values from this provider are persisted at this scope instead of each
2510
- * setting's definition scope. Use for app-wide demo or deployment defaults (e.g. platform).
2511
- */
2512
- scope?: AXPPlatformScope;
2513
- /** Returns a flat map of setting key to default value. */
2514
- provide(): Promise<Record<string, unknown>>;
2515
- }
2516
- interface AXPSettingValue {
2517
- key: string;
2518
- value: any;
2519
- }
2520
- interface AXPSettingChangedEvent {
2521
- scope: AXPPlatformScope;
2522
- keys: string[];
2523
- values: Record<string, any>;
2524
- entries: AXPSettingValue[];
2525
- }
2526
- /** Layout options for a single setting row on the settings page. */
2527
- interface AXPSettingLayoutOptions extends AXPGridLayoutOptions {
2528
- /** When true, stack the label above a full-width control. */
2529
- stacked?: boolean;
2530
- }
2531
- interface AXPSettingDefinition {
2532
- name: string;
2533
- title: string;
2534
- description?: string;
2535
- /** Optional i18n keys (e.g. `@scope:key`) whose translated values are included in settings search. */
2536
- searchTagKeys?: string[];
2537
- widget: AXPWidgetNode;
2538
- layout?: AXPSettingLayoutOptions;
2539
- scope: AXPPlatformScopeKey;
2540
- isRequired?: boolean;
2541
- isInherited?: boolean;
2542
- isEncrypted?: boolean;
2543
- defaultValue?: unknown;
2544
- value?: unknown;
2545
- }
2546
- interface AXPSettingDefinitionGroup {
2547
- name: string;
2548
- /** Short label (e.g. sidebar); i18n key when using the translation pipe. */
2549
- title: string;
2550
- /** Optional fuller page heading; i18n key. When omitted, `title` is used for the page header. */
2551
- pageTitle?: string;
2552
- icon?: string;
2553
- description?: string;
2554
- /** Sidebar order; lower numbers appear first. Defaults to 1000 when omitted. */
2555
- priority?: number;
2556
- groups: AXPSettingDefinitionGroup[];
2557
- sections: AXPSettingDefinitionSection[];
2558
- }
2559
- interface AXPSettingDefinitionSection {
2560
- name: string;
2561
- title: string;
2562
- description?: string;
2563
- settings: AXPSettingDefinition[];
2564
- }
2565
- interface AXPGroupSearchResult {
2566
- breadcrumb: {
2567
- name: string;
2568
- title: string;
2569
- description?: string;
2570
- }[];
2571
- sections: AXPSettingDefinitionSection[] | null;
2572
- groups: AXPSettingDefinitionGroup[] | null;
2573
- }
2574
-
2575
2166
  interface AXPSettingDefinitionProvider {
2576
2167
  provide(context: AXPSettingDefinitionProviderContext): Promise<void>;
2577
2168
  }
@@ -2585,6 +2176,7 @@ declare class AXPSettingDefinitionProviderService {
2585
2176
  getList(scope: AXPPlatformScopeKey): AXPSettingDefinitionGroup[];
2586
2177
  defaultValues(): Promise<Record<string, unknown>>;
2587
2178
  settingScopeByKey(): Promise<Record<string, AXPPlatformScope>>;
2179
+ requiresPageRefreshByKey(): Promise<Record<string, boolean>>;
2588
2180
  findGroup(scope: AXPPlatformScopeKey, groupName: string): AXPGroupSearchResult;
2589
2181
  private searchRecursive;
2590
2182
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSettingDefinitionProviderService, never>;
@@ -2626,53 +2218,6 @@ declare function coerceAXPSettingRawValue(raw: unknown, kind: 'boolean'): boolea
2626
2218
  declare function coerceAXPSettingRawValue(raw: unknown, kind: 'number'): number;
2627
2219
  declare function coerceAXPSettingRawValue(raw: unknown, kind: 'date'): Date;
2628
2220
 
2629
- interface AXPSettingsServiceInterface {
2630
- load(): Promise<AXPSettingValue[]>;
2631
- get<T = any>(key: string): Promise<T>;
2632
- defaultValues(scope: AXPPlatformScope): Promise<Record<string, unknown>>;
2633
- scope(scope: AXPPlatformScope): ScopedSettingService;
2634
- }
2635
- declare class AXPSettingsService implements AXPSettingsServiceInterface {
2636
- private readonly providers;
2637
- private readonly injector;
2638
- private readonly eventService;
2639
- private readonly sessionService;
2640
- private readonly scopedSettingsCache;
2641
- readonly onChanged: Subject<AXPSettingChangedEvent>;
2642
- readonly onLoaded: Subject<void>;
2643
- constructor();
2644
- reload(): Promise<void>;
2645
- load(): Promise<AXPSettingValue[]>;
2646
- /**
2647
- * Returns the effective setting value. Primitive coercion (string, boolean, number, date) is inferred from the
2648
- * definition default and/or the stored shape (including `{ value: ... }`). Type argument `T` is compile-time only;
2649
- * it is not read at runtime—use it to document the expected result (e.g. `get<boolean>(key)`).
2650
- */
2651
- get<T = any>(key: string): Promise<T>;
2652
- /**
2653
- * Effective value (user → tenant → platform) when set; otherwise the definition default. Used for reads and coercion hints.
2654
- */
2655
- private resolveEffectiveAndDefault;
2656
- defaultValues(scope: AXPPlatformScope): Promise<Record<string, unknown>>;
2657
- scope(scope: AXPPlatformScope): ScopedSettingService;
2658
- invokeChangeEvent(event: AXPSettingChangedEvent): void;
2659
- private seedMissingDefaults;
2660
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPSettingsService, never>;
2661
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPSettingsService>;
2662
- }
2663
- declare class ScopedSettingService {
2664
- private parent;
2665
- private provider;
2666
- private scopeCache;
2667
- constructor(parent: AXPSettingsService, provider: AXPSettingValueProvider, scopeCache: Map<string, any>);
2668
- get<T = any>(key: string): Promise<T>;
2669
- all(): Promise<any>;
2670
- defaultValues(): Promise<Record<string, unknown>>;
2671
- set<T = any>(key: string, value: T): Promise<void>;
2672
- set<T = any>(values: Record<string, T>): Promise<void>;
2673
- update<T = any>(key: string, updateFn: (currentValue: T) => T): Promise<void>;
2674
- }
2675
-
2676
2221
  /**
2677
2222
  * Exposes platform settings in expression strings, e.g.
2678
2223
  * `{{ settings.get('Common:Setting:Entity.ShowPageBadge') }}`.
@@ -2693,37 +2238,6 @@ declare class AXPRegionalCalendarService extends AXCalendarService {
2693
2238
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPRegionalCalendarService>;
2694
2239
  }
2695
2240
 
2696
- /**
2697
- * Regional and locale-related setting keys used by platform widgets and components.
2698
- * Most values use the `LocaleManagement:Setting:Regional.*` prefix; definitions live in the locale-management module where applicable.
2699
- */
2700
- declare enum AXPRegionalSetting {
2701
- LocaleProfile = "LocaleManagement:Setting:Regional.LocaleProfile",
2702
- TimeZone = "LocaleManagement:Setting:Regional.TimeZone",
2703
- Language = "LocaleManagement:Setting:Regional.Language",
2704
- Country = "LocaleManagement:Setting:Regional.Country",
2705
- Calendar = "LocaleManagement:Setting:Regional.Calendar",
2706
- /** User-selected holiday calendars shown on the task board and other calendar views. */
2707
- CalendarEvents = "LocaleManagement:Setting:Regional.CalendarEvents",
2708
- FirstDayOfWeek = "LocaleManagement:Setting:Regional.FirstDayOfWeek",
2709
- WeekendDays = "LocaleManagement:Setting:Regional.WeekendDays",
2710
- ShortDate = "LocaleManagement:Setting:Regional.ShortDate",
2711
- MediumDate = "LocaleManagement:Setting:Regional.MediumDate",
2712
- LongDate = "LocaleManagement:Setting:Regional.LongDate",
2713
- ShortTime = "LocaleManagement:Setting:Regional.ShortTime",
2714
- MediumTime = "LocaleManagement:Setting:Regional.MediumTime",
2715
- LongTime = "LocaleManagement:Setting:Regional.LongTime",
2716
- MeasurementUnits = "LocaleManagement:Setting:Regional.MeasurementUnits",
2717
- TemperatureUnits = "LocaleManagement:Setting:Regional.TemperatureUnits",
2718
- DistanceUnits = "LocaleManagement:Setting:Regional.DistanceUnits",
2719
- WeightUnits = "LocaleManagement:Setting:Regional.WeightUnits",
2720
- VolumeUnits = "LocaleManagement:Setting:Regional.VolumeUnits",
2721
- SpeedUnits = "LocaleManagement:Setting:Regional.SpeedUnits",
2722
- AreaUnits = "LocaleManagement:Setting:Regional.AreaUnits",
2723
- /** Default multi-language behavior for standard text field names; defined in locale-management `AXMRegionalSettingProvider`. */
2724
- MultiLanguageSupport = "LocaleManagement:Setting:Regional.MultiLanguageSupport"
2725
- }
2726
-
2727
2241
  interface AXPUnsavedChangesConfirmOptions {
2728
2242
  /** When false, skips confirm even if the global setting is enabled (e.g. dialog `confirmCloseWhenDirty`). */
2729
2243
  enabled?: boolean;
@@ -2802,116 +2316,6 @@ declare class AXPUnsavedChangesPopstateService {
2802
2316
 
2803
2317
  declare function createUnsavedChangesCanDeactivateGuard<T extends AXPUnsavedChangesCanDeactivate>(): CanDeactivateFn<T>;
2804
2318
 
2805
- /**
2806
- * Status Definition Types
2807
- * Defines the structure for status definitions and their transitions
2808
- */
2809
- /**
2810
- * Status definition with metadata
2811
- */
2812
- interface AXPStatusDefinition {
2813
- /**
2814
- * Unique identifier for the status
2815
- */
2816
- name: string;
2817
- /**
2818
- * Display title for the status
2819
- */
2820
- title: string;
2821
- /**
2822
- * Color code or semantic color name for the status
2823
- */
2824
- color: string;
2825
- /**
2826
- * Optional icon class (e.g., 'fa-light fa-check')
2827
- */
2828
- icon?: string;
2829
- /**
2830
- * Optional description
2831
- */
2832
- description?: string;
2833
- /**
2834
- * Optional order for sorting
2835
- */
2836
- order?: number;
2837
- /**
2838
- * Whether this is a final status (end state)
2839
- */
2840
- isFinal?: boolean;
2841
- /**
2842
- * Whether this is an initial status (starting state)
2843
- */
2844
- isInitial?: boolean;
2845
- /**
2846
- * Whether list views should be automatically generated for this status
2847
- */
2848
- generateView?: boolean;
2849
- }
2850
- /**
2851
- * Status transition definition
2852
- */
2853
- interface AXPStatusTransition {
2854
- /**
2855
- * Source status name
2856
- */
2857
- from: string;
2858
- /**
2859
- * Target status name
2860
- */
2861
- to: string;
2862
- /**
2863
- * Optional condition expression to evaluate before allowing transition
2864
- * Uses expression evaluator syntax (e.g., "{{user.isAdmin}}", "{{item.priority > 5}}")
2865
- */
2866
- condition?: string;
2867
- /**
2868
- * Optional display title for the transition
2869
- */
2870
- title?: string;
2871
- /**
2872
- * Optional description
2873
- */
2874
- description?: string;
2875
- /**
2876
- * Optional command descriptor to execute for this transition
2877
- * If not provided, defaults to Entity:UpdateStatus with entity, id, and status
2878
- */
2879
- command?: {
2880
- name: string;
2881
- options?: Record<string, unknown>;
2882
- };
2883
- /**
2884
- * Whether this transition is automatic (no user action required)
2885
- */
2886
- isAutomatic?: boolean;
2887
- /**
2888
- * Whether this transition requires approval
2889
- */
2890
- requiresApproval?: boolean;
2891
- }
2892
- /**
2893
- * Abstract class for status providers
2894
- * Similar to AXPTaskBadgeProvider pattern
2895
- */
2896
- declare abstract class AXPStatusProvider {
2897
- /**
2898
- * Unique key for the status (e.g., 'task-management.status')
2899
- */
2900
- abstract readonly key: string;
2901
- /**
2902
- * List of available status definitions
2903
- */
2904
- abstract readonly statuses: AXPStatusDefinition[];
2905
- /**
2906
- * List of allowed transitions between statuses
2907
- */
2908
- abstract readonly transitions: AXPStatusTransition[];
2909
- /**
2910
- * Optional default status name
2911
- */
2912
- abstract readonly defaultStatus?: string;
2913
- }
2914
-
2915
2319
  /**
2916
2320
  * Injection token for status providers
2917
2321
  * Use with multi: true to register multiple providers
@@ -3016,310 +2420,299 @@ declare class AXPStatusDefinitionProviderService {
3016
2420
  }
3017
2421
 
3018
2422
  /**
3019
- * Standard system status types
3020
- * These are the predefined status values used across the platform
3021
- */
3022
- declare enum AXPSystemStatusType {
3023
- Todo = "todo",
3024
- InProgress = "in-progress",
3025
- InReview = "in-review",
3026
- Open = "open",
3027
- Closed = "closed",
3028
- Blocked = "blocked",
3029
- Done = "done",
3030
- Cancelled = "cancelled",
3031
- Draft = "draft",
3032
- PendingReview = "pending-review",
3033
- WaitingSignOff = "waiting-sign-off",
3034
- WaitingApproval = "waiting-approval",
3035
- Approved = "approved",
3036
- Published = "published",
3037
- Archived = "archived",
3038
- Rejected = "rejected",
3039
- Active = "active",
3040
- Inactive = "inactive",
3041
- Pending = "pending",
3042
- Completed = "completed",
3043
- Suspended = "suspended",
3044
- Failed = "failed",
3045
- Review = "review",
3046
- Expired = "expired"
3047
- }
3048
- /**
3049
- * Standard system status definitions
3050
- * Provides consistent status definitions across the platform
3051
- * Uses AXPStatusDefinition interface from status-definition.types.ts
3052
- */
3053
- declare const AXPSystemStatuses: Readonly<{
3054
- readonly Open: {
3055
- readonly name: AXPSystemStatusType.Open;
3056
- readonly title: string;
3057
- readonly icon: "fa-light fa-circle";
3058
- readonly color: "secondary";
3059
- readonly description: string;
3060
- readonly order: 1;
3061
- readonly isInitial: true;
3062
- readonly isFinal: false;
3063
- };
3064
- readonly Closed: {
3065
- readonly name: AXPSystemStatusType.Closed;
3066
- readonly title: string;
3067
- readonly icon: "fa-light fa-circle";
3068
- readonly color: "danger";
3069
- readonly description: string;
3070
- readonly order: 2;
3071
- readonly isInitial: false;
3072
- readonly isFinal: true;
3073
- };
3074
- readonly Todo: {
3075
- readonly name: AXPSystemStatusType.Todo;
3076
- readonly title: string;
3077
- readonly icon: "fa-light fa-circle";
3078
- readonly color: "secondary";
3079
- readonly description: string;
3080
- readonly order: 1;
3081
- readonly isInitial: true;
3082
- readonly isFinal: false;
3083
- };
3084
- readonly InProgress: {
3085
- readonly name: AXPSystemStatusType.InProgress;
3086
- readonly title: string;
3087
- readonly icon: "fa-light fa-play";
3088
- readonly color: "info";
3089
- readonly description: string;
3090
- readonly order: 2;
3091
- readonly isInitial: false;
3092
- readonly isFinal: false;
3093
- };
3094
- readonly InReview: {
3095
- readonly name: AXPSystemStatusType.InReview;
3096
- readonly title: string;
3097
- readonly icon: "fa-light fa-eye";
3098
- readonly color: "info";
3099
- readonly description: string;
3100
- readonly order: 3;
3101
- readonly isInitial: false;
3102
- readonly isFinal: false;
3103
- };
3104
- readonly Blocked: {
3105
- readonly name: AXPSystemStatusType.Blocked;
3106
- readonly title: string;
3107
- readonly icon: "fa-light fa-ban";
3108
- readonly color: "danger";
3109
- readonly description: string;
3110
- readonly order: 4;
3111
- readonly isInitial: false;
3112
- readonly isFinal: false;
3113
- };
3114
- readonly Done: {
3115
- readonly name: AXPSystemStatusType.Done;
3116
- readonly title: string;
3117
- readonly icon: "fa-light fa-check-circle";
3118
- readonly color: "success";
3119
- readonly description: string;
3120
- readonly order: 5;
3121
- readonly isInitial: false;
3122
- readonly isFinal: true;
3123
- };
3124
- readonly Cancelled: {
3125
- readonly name: AXPSystemStatusType.Cancelled;
3126
- readonly title: string;
3127
- readonly icon: "fa-light fa-times-circle";
3128
- readonly color: "neutral";
3129
- readonly description: string;
3130
- readonly order: 6;
3131
- readonly isInitial: false;
3132
- readonly isFinal: true;
3133
- };
3134
- readonly Draft: {
3135
- readonly name: AXPSystemStatusType.Draft;
3136
- readonly title: string;
3137
- readonly icon: "fa-light fa-file-pen";
3138
- readonly color: "neutral";
3139
- readonly description: string;
3140
- readonly order: 1;
3141
- readonly isInitial: true;
3142
- readonly isFinal: false;
3143
- };
3144
- readonly PendingReview: {
3145
- readonly name: AXPSystemStatusType.PendingReview;
3146
- readonly title: string;
3147
- readonly icon: "fa-light fa-clock";
3148
- readonly color: "warning";
3149
- readonly description: string;
3150
- readonly order: 2;
3151
- readonly isInitial: false;
3152
- readonly isFinal: false;
3153
- };
3154
- readonly WaitingSignOff: {
3155
- readonly name: AXPSystemStatusType.WaitingSignOff;
3156
- readonly title: string;
3157
- readonly icon: "fa-light fa-clock";
3158
- readonly color: "warning";
3159
- readonly description: string;
3160
- readonly order: 3;
3161
- readonly isInitial: false;
3162
- readonly isFinal: false;
3163
- };
3164
- readonly WaitingApproval: {
3165
- readonly name: AXPSystemStatusType.WaitingApproval;
3166
- readonly title: string;
3167
- readonly icon: "fa-light fa-clock";
3168
- readonly color: "warning";
3169
- readonly description: string;
3170
- readonly order: 1;
3171
- readonly isInitial: true;
3172
- readonly isFinal: false;
3173
- };
3174
- readonly Approved: {
3175
- readonly name: AXPSystemStatusType.Approved;
3176
- readonly title: string;
3177
- readonly icon: "fa-light fa-check-circle";
3178
- readonly color: "success";
3179
- readonly description: string;
3180
- readonly order: 3;
3181
- readonly isInitial: false;
3182
- readonly isFinal: false;
3183
- };
3184
- readonly Published: {
3185
- readonly name: AXPSystemStatusType.Published;
3186
- readonly title: string;
3187
- readonly icon: "fa-light fa-globe";
3188
- readonly color: "primary";
3189
- readonly description: string;
3190
- readonly order: 4;
3191
- readonly isInitial: false;
3192
- readonly isFinal: false;
3193
- };
3194
- readonly Archived: {
3195
- readonly name: AXPSystemStatusType.Archived;
3196
- readonly title: string;
3197
- readonly icon: "fa-light fa-archive";
3198
- readonly color: "danger";
3199
- readonly description: string;
3200
- readonly order: 5;
3201
- readonly isInitial: false;
3202
- readonly isFinal: true;
3203
- };
3204
- readonly Rejected: {
3205
- readonly name: AXPSystemStatusType.Rejected;
3206
- readonly title: string;
3207
- readonly icon: "fa-light fa-times-circle";
3208
- readonly color: "danger";
3209
- readonly description: string;
3210
- readonly order: 6;
3211
- readonly isInitial: false;
3212
- readonly isFinal: true;
3213
- };
3214
- readonly Active: {
3215
- readonly name: AXPSystemStatusType.Active;
3216
- readonly title: string;
3217
- readonly icon: "fa-light fa-check-circle";
3218
- readonly color: "success";
3219
- readonly description: string;
3220
- readonly order: 1;
3221
- readonly isInitial: false;
3222
- readonly isFinal: false;
3223
- };
3224
- readonly Inactive: {
3225
- readonly name: AXPSystemStatusType.Inactive;
3226
- readonly title: string;
3227
- readonly icon: "fa-light fa-circle";
3228
- readonly color: "secondary";
3229
- readonly description: string;
3230
- readonly order: 2;
3231
- readonly isInitial: false;
3232
- readonly isFinal: false;
3233
- };
3234
- readonly Pending: {
3235
- readonly name: AXPSystemStatusType.Pending;
3236
- readonly title: string;
3237
- readonly icon: "fa-light fa-clock";
3238
- readonly color: "warning";
3239
- readonly description: string;
3240
- readonly order: 1;
3241
- readonly isInitial: true;
3242
- readonly isFinal: false;
3243
- };
3244
- readonly Completed: {
3245
- readonly name: AXPSystemStatusType.Completed;
3246
- readonly title: string;
3247
- readonly icon: "fa-light fa-check-circle";
3248
- readonly color: "success";
3249
- readonly description: string;
3250
- readonly order: 10;
3251
- readonly isInitial: false;
3252
- readonly isFinal: true;
3253
- };
3254
- readonly Suspended: {
3255
- readonly name: AXPSystemStatusType.Suspended;
3256
- readonly title: string;
3257
- readonly icon: "fa-light fa-pause-circle";
3258
- readonly color: "neutral";
3259
- readonly description: string;
3260
- readonly order: 5;
3261
- readonly isInitial: false;
3262
- readonly isFinal: false;
3263
- };
3264
- readonly Failed: {
3265
- readonly name: AXPSystemStatusType.Failed;
3266
- readonly title: string;
3267
- readonly icon: "fa-light fa-xmark-circle";
3268
- readonly color: "danger";
3269
- readonly description: string;
3270
- readonly order: 10;
3271
- readonly isInitial: false;
3272
- readonly isFinal: true;
3273
- };
3274
- readonly Review: {
3275
- readonly name: AXPSystemStatusType.Review;
3276
- readonly title: string;
3277
- readonly icon: "fa-light fa-eye";
3278
- readonly color: "info";
3279
- readonly description: string;
3280
- readonly order: 3;
3281
- };
3282
- readonly Expired: {
3283
- readonly name: AXPSystemStatusType.Expired;
3284
- readonly title: string;
3285
- readonly icon: "fa-light fa-clock";
3286
- readonly color: "danger";
3287
- readonly description: string;
3288
- readonly order: 10;
3289
- readonly isInitial: false;
3290
- readonly isFinal: true;
3291
- };
3292
- }>;
2423
+ * Builds a stable tab key from a router URL.
2424
+ * Path segments define identity; query params are excluded so the same entity record
2425
+ * or list reuses one tab even when filters or refresh tokens change.
2426
+ */
2427
+ declare function axpBuildTabKey(url: string): string;
2428
+ /** Normalizes a router URL for storage and navigation. */
2429
+ declare function normalizeRouterUrl(url: string): string;
2430
+ /** Human-readable fallback title from the URL path. */
2431
+ declare function axpFallbackTabTitle(url: string): string;
2432
+
2433
+ type AXPNavigationMode = 'simple' | 'tabular';
2434
+ declare const AXP_HOME_TAB_KEY = "axp:home";
2435
+ /** Route `data` key for tab-navigation behavior (`data.tab`). */
2436
+ declare const AXP_TAB_ROUTE_DATA_KEY = "tab";
3293
2437
  /**
3294
- * Get system status definition by type
3295
- * @param type - Status type
3296
- * @returns System status definition or undefined
2438
+ * Set `data.tab = true` on the route that should act as the tab boundary.
2439
+ * Child navigations under this route update the same tab rather than opening a new one.
3297
2440
  */
3298
- declare function getSystemStatus(type: AXPSystemStatusType): AXPStatusDefinition;
2441
+ type AXPTabRouteData = true;
2442
+ interface AXPTabDescriptor {
2443
+ /** Stable dedupe key derived from the route (path-based, query excluded). */
2444
+ key: string;
2445
+ /** Full router URL including query string and fragment. */
2446
+ url: string;
2447
+ title: string;
2448
+ /** Resolved breadcrumb segments used for tab chrome (leaf/prefix); avoids parsing joined titles. */
2449
+ titleSegments?: string[];
2450
+ icon?: string;
2451
+ pinned: boolean;
2452
+ closable: boolean;
2453
+ /** Timestamp used for LRU eviction when max tabs is reached. */
2454
+ openedAt: number;
2455
+ /** Updated whenever the tab becomes active. */
2456
+ lastActivatedAt: number;
2457
+ }
2458
+ interface AXPTabSessionState {
2459
+ tabs: AXPTabDescriptor[];
2460
+ activeTabKey: string | null;
2461
+ }
2462
+ /** Optional hook for confirming closure of a cached background tab (no router navigation). */
2463
+ interface AXPTabCloseConfirm {
2464
+ onBeforeTabClose(): boolean | Promise<boolean>;
2465
+ }
2466
+
2467
+ declare class AXPTabNavigationService {
2468
+ private readonly router;
2469
+ private readonly settingsService;
2470
+ private readonly deviceService;
2471
+ private readonly menuService;
2472
+ private readonly homePageService;
2473
+ private readonly sessionService;
2474
+ private readonly routeCacheRegistry;
2475
+ private readonly tabPreviewService;
2476
+ private readonly unsavedChangesConfirm;
2477
+ private readonly destroyRef;
2478
+ private readonly navigationMode;
2479
+ private readonly maxOpenTabs;
2480
+ private readonly tabs;
2481
+ private readonly activeTabKey;
2482
+ private suppressNavigationSync;
2483
+ /** Effective mode: mobile always uses simple navigation. */
2484
+ readonly effectiveMode: i0.Signal<AXPNavigationMode>;
2485
+ readonly isTabBarVisible: i0.Signal<boolean>;
2486
+ readonly tabList: i0.Signal<AXPTabDescriptor[]>;
2487
+ readonly activeKey: i0.Signal<string | null>;
2488
+ constructor();
2489
+ /** Navigates to a path, opening or activating a tab when tabular mode is active. */
2490
+ navigate(path: string, extras?: NavigationExtras): Promise<boolean>;
2491
+ /** Opens a tab or activates an existing tab with the same key. */
2492
+ openOrActivateTab(url: string, title?: string): Promise<void>;
2493
+ /**
2494
+ * Activates a tab and navigates to its URL. The previously active page is detached and cached by
2495
+ * the reuse strategy, so its state is preserved; this tab's cached instance is reattached when
2496
+ * available instead of being re-rendered.
2497
+ *
2498
+ * @param suspendDeactivateGuard When true (default for tab switches), unsaved-changes prompts are
2499
+ * skipped so switching tabs keeps a dirty page alive. Closing a tab passes false to keep the prompt.
2500
+ */
2501
+ activateTabKey(key: string, urlOverride?: string, suspendDeactivateGuard?: boolean): Promise<void>;
2502
+ /** Closes a tab and navigates to a neighbor when the active tab is closed. */
2503
+ closeTab(key: string): Promise<void>;
2504
+ /** Closes every closable tab except the given key (pinned tabs are kept). */
2505
+ closeOtherTabs(keepKey: string): Promise<void>;
2506
+ /** Closes all closable tabs (pinned tabs are kept). */
2507
+ closeAllTabs(): Promise<void>;
2508
+ /** Toggles whether a tab stays pinned in the strip (home tab is always pinned). */
2509
+ toggleTabPinned(key: string): void;
2510
+ /**
2511
+ * Reorders tabs after drag-and-drop. Home stays first; pinned and unpinned tabs cannot cross groups.
2512
+ */
2513
+ reorderTabs(previousIndex: number, currentIndex: number): void;
2514
+ /** Updates a tab title from the current page chrome (e.g. breadcrumb trail). */
2515
+ syncTabTitle(key: string, titleOrSegments: string | string[]): void;
2516
+ /** Updates a tab icon from the current page chrome or menu metadata. */
2517
+ syncTabIcon(key: string, icon: string): void;
2518
+ /** Closes multiple tabs in one update; navigates once when the active tab is closed. */
2519
+ private closeTabs;
2520
+ /**
2521
+ * Prompts before closing a cached background tab. Uses the page's {@link AXPTabCloseConfirm}
2522
+ * hook when available, otherwise falls back to the tab preview dirty flag.
2523
+ */
2524
+ private confirmBackgroundTabClose;
2525
+ /**
2526
+ * Navigates away from the active tab before it is removed so canDeactivate runs while the tab is still visible.
2527
+ * Returns false when navigation was cancelled (e.g. unsaved-changes confirmation declined).
2528
+ */
2529
+ private navigateAwayBeforeClosingActiveTab;
2530
+ /** Prefers the tab to the right after removal, then the tab to the left (browser-like). */
2531
+ private resolveFallbackTabIndex;
2532
+ /**
2533
+ * Keeps the route cache registry aligned with the current navigation mode and the set of open
2534
+ * tabs. Cached page instances for closed/evicted tabs are destroyed by the registry.
2535
+ */
2536
+ private bindRouteCacheSync;
2537
+ private bindRouterEvents;
2538
+ private handleNavigationEnd;
2539
+ private loadSettings;
2540
+ private bindSettingsChanges;
2541
+ private bindSessionChanges;
2542
+ private ensureHomeTab;
2543
+ private insertTab;
2544
+ /** Home first; preserves session order for the remaining tabs. */
2545
+ private ensureHomeTabFirst;
2546
+ private getLastPinnedTabIndex;
2547
+ /** Home first, then other pinned tabs, then unpinned tabs (stable by openedAt within each group). */
2548
+ private normalizeTabOrder;
2549
+ private enforceMaxTabs;
2550
+ private createTabDescriptor;
2551
+ /** Finds a tab by scoped key or legacy full-path key for the same URL. */
2552
+ private findTabForUrl;
2553
+ /** True when the URL is the configured application home page (e.g. dashboard). */
2554
+ private isHomePageUrl;
2555
+ private resolveHomeUrl;
2556
+ /** Activates the pinned home tab for a home-page URL instead of opening a duplicate tab. */
2557
+ private activateHomeTabForUrl;
2558
+ /** Drops non-home tabs that duplicate the home page URL after session restore. */
2559
+ private removeDuplicateHomeUrlTabs;
2560
+ /** Rewrites a tab key when route-scope resolution changes (e.g. profile sub-routes). */
2561
+ private migrateTabKey;
2562
+ /** Collapses restored tabs that share the same scoped route key. */
2563
+ private normalizeRestoredTabKeys;
2564
+ private updateTabUrl;
2565
+ private updateTabTitle;
2566
+ private updateTabIcon;
2567
+ private touchTab;
2568
+ private resolveTabTitle;
2569
+ private resolveTabIcon;
2570
+ private resolveHomePath;
2571
+ private resolveHomeTitle;
2572
+ private isGenericHomeTitle;
2573
+ private syncCurrentRouteAsTab;
2574
+ private normalizeMaxTabs;
2575
+ private sessionStorageKey;
2576
+ private persistSession;
2577
+ private clearSession;
2578
+ private restoreSessionIfNeeded;
2579
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTabNavigationService, never>;
2580
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPTabNavigationService>;
2581
+ }
2582
+
2583
+ /** Structured hover-card payload for a tab (kept in memory; not session-persisted). */
2584
+ interface AXPTabStructuredPreview {
2585
+ /** Primary label (usually page title or breadcrumb trail). */
2586
+ title: string;
2587
+ /** Optional page description or secondary line. */
2588
+ subtitle?: string;
2589
+ /** Full router URL for the tab. */
2590
+ url: string;
2591
+ icon?: string;
2592
+ /** Whether the cached page reports unsaved user edits. */
2593
+ isDirty: boolean;
2594
+ /** Breadcrumb segments excluding home (for the hover card). */
2595
+ breadcrumbTrail: string[];
2596
+ }
2597
+
3299
2598
  /**
3300
- * Resolves the visual appearance (color and icon) for status
3301
- * using the system statuses from the core module.
3302
- * @param statusType - Status type string
3303
- * @returns Color and icon for the status
2599
+ * In-memory structured previews for tab hover cards and dirty indicators.
2600
+ * Populated by active/cached pages via {@link AXPPageLayoutBaseComponent}.
3304
2601
  */
3305
- declare function resolveStatusLook(statusType: string): {
3306
- color: AXStyleColorType;
3307
- icon: string;
3308
- };
2602
+ declare class AXPTabPreviewService {
2603
+ private readonly previewMap;
2604
+ readonly previews: i0.Signal<Readonly<Record<string, AXPTabStructuredPreview>>>;
2605
+ setPreview(key: string, preview: AXPTabStructuredPreview): void;
2606
+ patchPreview(key: string, patch: Partial<AXPTabStructuredPreview>): void;
2607
+ getPreview(key: string): AXPTabStructuredPreview | undefined;
2608
+ isTabDirty(key: string): boolean;
2609
+ clearPreview(key: string): void;
2610
+ clearPreviews(keys: Iterable<string>): void;
2611
+ clearAll(): void;
2612
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTabPreviewService, never>;
2613
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPTabPreviewService>;
2614
+ }
2615
+
2616
+ /**
2617
+ * Holds detached Angular route component instances keyed by tab key so tabular navigation can
2618
+ * preserve a page's full state (data-table selection, scroll, unsaved form values, etc.) while it
2619
+ * is in the background, then reattach it without re-rendering.
2620
+ *
2621
+ * The registry has no `Router` dependency on purpose: it is consumed by the {@link RouteReuseStrategy}
2622
+ * implementation, so depending on `Router` here would create a construction-time cycle.
2623
+ */
2624
+ declare class AXPTabRouteCacheRegistry {
2625
+ private readonly handles;
2626
+ private openKeys;
2627
+ private enabled;
2628
+ private deactivateGuardSuspended;
2629
+ /**
2630
+ * Runs `action` while unsaved-changes `canDeactivate` guards are suspended, so switching between
2631
+ * tabs preserves a dirty page without prompting. Closing a tab does not use this path, so the
2632
+ * prompt still appears there.
2633
+ */
2634
+ runWithSuspendedDeactivateGuards<T>(action: () => Promise<T>): Promise<T>;
2635
+ isDeactivateGuardSuspended(): boolean;
2636
+ /** Enables caching (tabular mode). Disabling clears and destroys every cached component. */
2637
+ setEnabled(enabled: boolean): void;
2638
+ isEnabled(): boolean;
2639
+ /**
2640
+ * Reconciles open scoped tab keys and active tab URLs. Cached handles whose key is not an open
2641
+ * scoped tab key, an active tab URL, or a child path under an open scoped tab are destroyed.
2642
+ */
2643
+ syncOpenKeys(scopedKeys: string[], activeTabUrls?: string[]): void;
2644
+ isOpen(key: string): boolean;
2645
+ /**
2646
+ * Returns the live component instance for a cached background tab, when available.
2647
+ * Matches the tab key directly or any cached handle under a scoped tab prefix.
2648
+ */
2649
+ getComponentInstance<T>(key: string): T | null;
2650
+ /**
2651
+ * Caches a detached background handle. Overwrites without destroying the previous handle: on a
2652
+ * repeat visit Angular hands back a new handle object wrapping the same live `componentRef`, so
2653
+ * destroying the old one would destroy the live component and corrupt the view (NG0922).
2654
+ */
2655
+ store(key: string, handle: DetachedRouteHandle): void;
2656
+ /**
2657
+ * Returns the cached handle without mutating the map. Angular reads a handle twice per
2658
+ * navigation (once while building the future state, once while attaching), so `retrieve` must be
2659
+ * idempotent; the handle is released afterwards via {@link release} when Angular calls
2660
+ * `store(snapshot, null)`.
2661
+ */
2662
+ retrieve(key: string): DetachedRouteHandle | null;
2663
+ /**
2664
+ * Drops a handle that the router has just reattached (it is now a live foreground view, so it
2665
+ * must not be destroyed). The map keeps only truly backgrounded handles.
2666
+ */
2667
+ release(key: string): void;
2668
+ has(key: string): boolean;
2669
+ /** Destroys and removes a single cached handle (used when a tab closes). */
2670
+ evict(key: string): void;
2671
+ /** Destroys and removes every cached handle. */
2672
+ clear(): void;
2673
+ private readComponentInstance;
2674
+ private destroyHandle;
2675
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPTabRouteCacheRegistry, never>;
2676
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPTabRouteCacheRegistry>;
2677
+ }
2678
+
3309
2679
  /**
3310
- * Resolves the complete status information (title, description, icon, color) for a status
3311
- * using the system statuses from the core module.
3312
- * @param statusType - Status type string
3313
- * @returns Complete status information as AXPStatusDefinition
2680
+ * Returns true when the URL represents an in-app page that may appear in the tab bar.
3314
2681
  */
3315
- declare function getStatusInfo(statusType: string): AXPStatusDefinition;
2682
+ declare function axpIsTabEligibleUrl(url: string): boolean;
2683
+
2684
+ /** True when the route declares itself as a scoped tab root (`data.tab = true`). */
2685
+ declare function axpHasTabScope(data: Record<string, unknown> | undefined): boolean;
2686
+ /** Resolved URL path for a snapshot (no query or fragment). */
2687
+ declare function axpPathFromSnapshot(snapshot: ActivatedRouteSnapshot): string;
2688
+ /** Returns the leaf snapshot under the router state root. */
2689
+ declare function axpGetLeafRouteSnapshot(root: ActivatedRouteSnapshot): ActivatedRouteSnapshot;
3316
2690
  /**
3317
- * Get system status definition directly (no conversion needed since it's already AXPStatusDefinition)
3318
- * @param statusType - Status type
3319
- * @param overrides - Optional overrides for the status definition
3320
- * @returns AXPStatusDefinition
2691
+ * Resolves the tab dedupe key from an activated route tree.
2692
+ * Uses the nearest ancestor with `data.tab = true`; otherwise the leaf path.
3321
2693
  */
3322
- declare function systemStatusToDefinition(statusType: AXPSystemStatusType, overrides?: Partial<AXPStatusDefinition>): AXPStatusDefinition;
2694
+ declare function axpResolveTabKeyFromSnapshot(leaf: ActivatedRouteSnapshot): string;
2695
+ /**
2696
+ * Resolves a tab key for the given URL (or the current router URL).
2697
+ * Prefers the live route snapshot when it matches the target URL; otherwise matches route config.
2698
+ */
2699
+ declare function axpResolveTabKey(router: Router, url?: string): string;
2700
+ /**
2701
+ * Matches a URL path against registered routes and resolves the tab key from `data.tab`.
2702
+ */
2703
+ declare function axpResolveTabKeyFromRouteConfig(routes: Routes, pathOnly: string): string | null;
2704
+
2705
+ declare const AXP_TAB_BREADCRUMB_JOIN_SEPARATOR = " - ";
2706
+ interface AXPTabTitleParts {
2707
+ prefix: string | null;
2708
+ leaf: string;
2709
+ }
2710
+ /** Joins breadcrumb segments for the stored tab title and tooltip full label. */
2711
+ declare function axpJoinTabTitleSegments(segments: string[]): string;
2712
+ /** Derives compact tab label parts from structured breadcrumb segments. */
2713
+ declare function axpResolveTabTitleParts(tab: {
2714
+ titleSegments?: string[];
2715
+ }, fallbackTitle: string): AXPTabTitleParts;
3323
2716
 
3324
2717
  interface AXPTokenDefinition {
3325
2718
  name: string;
@@ -3397,21 +2790,6 @@ declare class AXPClipBoardService {
3397
2790
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPClipBoardService>;
3398
2791
  }
3399
2792
 
3400
- /**
3401
- * Service for debugging user access information.
3402
- * Displays loaded modules, features, and permissions for the current user.
3403
- */
3404
- declare class AXPDebugService {
3405
- private readonly sessionService;
3406
- private readonly manifestRegistry;
3407
- /**
3408
- * Display all loaded modules, features, and permissions for the current user.
3409
- */
3410
- displayUserAccessInfo(): Promise<void>;
3411
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPDebugService, never>;
3412
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPDebugService>;
3413
- }
3414
-
3415
2793
  type AXPGraphicDownloadFormat = 'svg' | 'png' | 'jpeg';
3416
2794
  interface AXPGraphicPrintContent {
3417
2795
  bodyMarkup: string;
@@ -3622,6 +3000,7 @@ declare const AXPReloadEvent: {
3622
3000
  };
3623
3001
  declare class AXPWorkflowNavigateAction extends AXPWorkflowAction {
3624
3002
  private router;
3003
+ private tabNavigation;
3625
3004
  execute(context: AXPWorkflowContext): Promise<void>;
3626
3005
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPWorkflowNavigateAction, never>;
3627
3006
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowNavigateAction>;
@@ -3654,8 +3033,16 @@ declare class AXPReloadAction extends AXPWorkflowAction {
3654
3033
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPReloadAction>;
3655
3034
  }
3656
3035
 
3036
+ /** Workflow event type dispatched after a successful entity delete. */
3037
+ declare const AXP_ENTITY_DELETED_WORKFLOW_EVENT_TYPE = "[Entity] Deleted";
3038
+ interface AXPEntityDeletedEventPayload {
3039
+ entity: string;
3040
+ ids: string[];
3041
+ meta?: unknown;
3042
+ }
3043
+
3657
3044
  declare class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {
3658
- private router;
3045
+ private readonly tabNavigation;
3659
3046
  execute(context: AXPWorkflowContext): Promise<void>;
3660
3047
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPWorkflowRouterNavigateAction, never>;
3661
3048
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowRouterNavigateAction>;
@@ -3669,5 +3056,5 @@ declare class AXMWorkflowErrorHandler implements AXPErrorHandler {
3669
3056
  static ɵprov: i0.ɵɵInjectableDeclaration<AXMWorkflowErrorHandler>;
3670
3057
  }
3671
3058
 
3672
- export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppVersionService, AXPBackgroundOperationCompletionService, AXPBackgroundOperationEntityStoreService, AXPBackgroundOperationHandler, AXPBackgroundOperationNotificationService, AXPBackgroundOperationProvider, AXPBackgroundOperationRootConfig, AXPBackgroundOperationService, AXPBackgroundOperationSlotComponent, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPCommonSettings, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataProvider, AXPDebugService, AXPDefaultMultiLanguageConfigService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPEntityType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileActionsService, AXPFileStorageEvaluatorScopeProvider, AXPFileStorageService, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPHomePageModule, AXPHomePageService, AXPKeyboardShortcutsHelpComponent, AXPKeyboardShortcutsHelpService, AXPLockService, AXPMenuItemsDataSourceDefinition, AXPMenuKeyboardShortcutService, AXPMenuMiddlewareRegistry, AXPMenuProviderService, AXPMenuRouteAccessService, AXPMenuRouteGuard, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPMenuVisibilityService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPNotFoundCatchAllRoute, AXPNotFoundError, AXPOutputContractTranscriptSegmentService, AXPPlatformCommonDataSourceKeys, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalCalendarService, 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, AXPUnsavedChangesConfirmService, AXPUnsavedChangesPopstateService, AXPVersioningService, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_AGENT_OUTPUT_CONTRACT_DEFAULT_STRUCTURED_RETRIES, AXP_APP_VERSION_PROVIDER, AXP_BACKGROUND_OPERATION_ENTITY_STORAGE, AXP_BACKGROUND_OPERATION_HANDLERS, AXP_BACKGROUND_OPERATION_PROVIDERS, AXP_FILE_ACTION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, AXP_IN_APP_NOTIFICATION_SERVICE, AXP_LOCALE_MANAGEMENT_PORT, AXP_MENU_MIDDLEWARE, AXP_MENU_PROVIDER, AXP_NOT_FOUND_CATCH_ALL_ROUTE, AXP_NOT_FOUND_ROUTE, AXP_OUTPUT_CONTRACT_TRANSCRIPT_SEGMENT_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_PROTECTED_ROUTE_GUARDS, 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, AXP_UNAUTHORIZED_ROUTE, AXVChangeType, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, DEFAULT_DATE_FILTER_PRESETS, DEFAULT_MULTILANGUAGE_FIELD_NAMES, ENDS_WITH_OPER, ENTITY_LAYOUT_SINGLE_TITLE_PATH, ENTITY_ROW_POPUP_TITLE_OPTION, ENTITY_ROW_TITLE_TEMPLATE_OPTION, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IN_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, MULTILANGUAGE_CAPABLE_WIDGET_TYPES, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, UploadFromComputerActionProvider, applyDateFilterPreset, axpBackgroundOperationCapabilities, axpBackgroundOperationDisplayTime, axpBackgroundOperationEntityName, axpBackgroundOperationEstimateEndDate, axpBackgroundOperationFailurePolicy, axpBackgroundOperationFromEntityModel, axpBackgroundOperationRemainingMs, axpBackgroundOperationToEntityModel, axpBuildBackgroundOperation, axpCoerceBackgroundOperationDate, axpCreateBackgroundOperationId, axpFindMenuItemByRoute, axpIsActiveBackgroundOperationStatus, axpIsCompletedBackgroundOperationStatus, axpIsEntityDetailsPath, axpIsEntityDetailsViewRoute, axpIsEntityListPath, axpIsEntityListRoute, axpIsEntityRecordNotFound, axpMenuPathsMatch, axpNavigateAppPath, axpParseAppPath, axpRedirectToNotFound, axpRedirectToUnauthorized, axpReplaceEntityListRouteQueryParams, backgroundOperationEntityFactory, buildEntitySearchTitleContext, coerceAXPSettingRawValue, coerceAXPSettingRawValueByKind, configPlatform, createAllQueryView, createBackgroundOperationStore, createEntityCommandOptions, createEntityRowExpressionScope, createEntitySearchCommand, createMenuContext, createMenuMiddleware, createQueryView, createUnsavedChangesCanDeactivateGuard, downloadGraphicFromElement, evaluateEntityDisplayTemplate, findManualPresetIdByOperation, formatEntityRowDisplayTitle, getEntityInfo, getStatusInfo, getSystemStatus, inferSettingCoercionKind, isCardFieldBadgeDisplay, isMeaningfulEntityDisplayTitle, isUnresolvedEntityDisplayTemplate, normalizeEntityDisplayTemplate, normalizePositiveNumberOption, peelSettingValueKey, printGraphicFromElement, provideDynamicHomePage, provideMenuMiddleware, resolveCardFieldBadgeColor, resolveDateFilterPresets, resolveDefaultMasterListLayout, resolveEnabledMasterListLayouts, resolveEntityRowDisplayText, resolveEntityRowDisplayTitle, resolveEntityRowDisplayTitleFromColumnContext, resolveEntityRowTitleTemplate, resolveEntitySearchTitleFallback, resolveGraphicElementSize, resolveGraphicPrintContent, resolveQueryMatchingDisplayText, resolveSearchDisplayTemplate, resolveSearchableText, resolveStatusLook, sanitizeResolvedEntityDisplayTitle, searchInRecordValues, searchInSearchableValue, serializeSvgElement, shouldApplyDefaultMultiLanguageToEntityProperty, shouldApplyDefaultMultiLanguageToWidgetNode, shouldApplyDefaultMultiLanguageToWidgetProperty, systemStatusToDefinition, triggerBrowserDownload, withDefaultMultiLanguageOnWidgetNodeTree, withDefaultMultiLanguageOnWidgetProperty };
3673
- export type { AXCFileUploaderAction, AXCFileUploaderActionsPayload, AXCFileUploaderCapabilities, AXEntityPropertyWidget, AXPAgentOutputContract, AXPAgentOutputKind, AXPAgentResponseFormat, AXPAggregate, AXPAppPathParts, AXPAppVersion, AXPAppVersionProvider, AXPApplication, AXPBackgroundOperation, AXPBackgroundOperationActionKey, AXPBackgroundOperationCapabilities, AXPBackgroundOperationCreateRequest, AXPBackgroundOperationEntityModel, AXPBackgroundOperationEntityStorageAdapter, AXPBackgroundOperationError, AXPBackgroundOperationFailureMode, AXPBackgroundOperationFailurePolicy, AXPBackgroundOperationProviderStore, AXPBackgroundOperationStatus, 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, AXPEntitySearchTitleContext, AXPEntitySectionView, AXPEntityTableColumn, AXPEntityV2, AXPEntityVersionHistory, AXPErrorHandler, AXPFileActionProvider, AXPFileActionProviderToken, AXPFileExtension, AXPFileType, AXPFileTypeInfoProvider, AXPFilterOperator, AXPGeoLocation, AXPGraphicDownloadFormat, AXPGraphicDownloadOptions, AXPGraphicPrintContent, AXPGroupSearchResult, AXPHomePageDefinition, AXPInAppNotificationCreateRequest, AXPInAppNotificationPriority, AXPInAppNotificationService, AXPJsonSchemaLike, AXPLanguage, AXPLocaleManagementPort, AXPLocaleProfile, AXPLockGetInfoRequest, AXPLockInfo, AXPLockRequest, AXPLockType, AXPMenuFinderResult, AXPMenuInsertion, AXPMenuItem, AXPMenuItemCommand, AXPMenuItemFinder, AXPMenuItemWithParent, AXPMenuMiddleware, AXPMenuMiddlewareContext, AXPMenuMiddlewareProvider, AXPMenuProvider, AXPMenuProviderContext, AXPMenuRouteMatchResult, AXPMenuType, AXPModule, AXPOutputContractTranscriptSegmentDefinition, AXPOutputContractTranscriptSegmentProvider, AXPOutputContractTranscriptSegmentProviderToken, AXPOutputTranscriptSegmentId, AXPPlatformConfigs, AXPPrintGraphicOptions, AXPQueryFilter, AXPQuerySort, AXPQueryView, AXPRelatedEntity, AXPRelationship, AXPResolveEntityRowDisplayTitleOptions, 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, AXPUnsavedChangesCanDeactivate, AXPUnsavedChangesConfirmOptions, AXPUnsavedChangesPopstateSource, AXPVersionChange, AXPVersionEntry, AXPVersionStream, CanonicalChange, CanonicalChangeOp, VersionedFileInfo };
3059
+ export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppVersionService, AXPBackgroundOperationCompletionService, AXPBackgroundOperationEntityStoreService, AXPBackgroundOperationHandler, AXPBackgroundOperationNotificationService, AXPBackgroundOperationProvider, AXPBackgroundOperationRootConfig, AXPBackgroundOperationService, AXPBackgroundOperationSlotComponent, AXPBrowserTitleService, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPCommonSettings, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataProvider, AXPDefaultMultiLanguageConfigService, AXPDialogConfirmAction, AXPErrorHandlerRegistryService, AXPExportService, AXPFileActionsService, AXPFileStorageEvaluatorScopeProvider, AXPFileStorageService, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPHomePageModule, AXPHomePageService, AXPIntegrationOAuthService, AXPIntegrationProviderContext, AXPIntegrationProviderRegistryService, AXPIntegrationRuntimeService, AXPKeyboardShortcutsHelpComponent, AXPKeyboardShortcutsHelpService, AXPLockService, AXPMenuItemsDataSourceDefinition, AXPMenuKeyboardShortcutService, AXPMenuMiddlewareRegistry, AXPMenuProviderService, AXPMenuRouteAccessService, AXPMenuRouteGuard, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPMenuVisibilityService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPNotFoundCatchAllRoute, AXPNotFoundError, AXPOutputContractTranscriptSegmentService, AXPPlatformCommonDataSourceKeys, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalCalendarService, AXPReloadAction, AXPReloadEvent, AXPSearchCommandProvider, AXPSearchDefinitionActionBuilder, AXPSearchDefinitionBuilder, AXPSearchDefinitionProviderContext, AXPSearchDefinitionProviderService, AXPSearchService, AXPSettingDefaultValuesAggregatorService, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingsEvaluatorScopeProvider, AXPSettingsService, AXPStatusDefinitionProviderService, AXPStickyDirective, AXPTabNavigationService, AXPTabPreviewService, AXPTabRouteCacheRegistry, AXPToastAction, AXPTokenDefinitionService, AXPTokenEvaluatorScopeProvider, AXPTranslateFormatter, AXPUnsavedChangesConfirmService, AXPUnsavedChangesPopstateService, AXPVersioningService, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_AGENT_OUTPUT_CONTRACT_DEFAULT_STRUCTURED_RETRIES, AXP_APP_VERSION_PROVIDER, AXP_BACKGROUND_OPERATION_ENTITY_STORAGE, AXP_BACKGROUND_OPERATION_HANDLERS, AXP_BACKGROUND_OPERATION_PROVIDERS, AXP_ENTITY_DELETED_WORKFLOW_EVENT_TYPE, AXP_FILE_ACTION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, AXP_HOME_TAB_KEY, AXP_INTEGRATION_OAUTH_SERVICE, AXP_INTEGRATION_PROVIDER, AXP_INTEGRATION_RUNTIME_PROVIDER, AXP_INTEGRATION_SECRET_STORE, AXP_IN_APP_NOTIFICATION_SERVICE, AXP_LOCALE_MANAGEMENT_PORT, AXP_MENU_MIDDLEWARE, AXP_MENU_PROVIDER, AXP_NOT_FOUND_CATCH_ALL_ROUTE, AXP_NOT_FOUND_ROUTE, AXP_OUTPUT_CONTRACT_TRANSCRIPT_SEGMENT_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_PROTECTED_ROUTE_GUARDS, AXP_ROOT_CONFIG_TOKEN, AXP_SEARCH_DEFINITION_LAZY_RESOLVER, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFAULT_VALUES_PROVIDERS, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_STATUS_PROVIDERS, AXP_TAB_BREADCRUMB_JOIN_SEPARATOR, AXP_TAB_ROUTE_DATA_KEY, AXP_TOKEN_DEFINITION_PROVIDER, AXP_UNAUTHORIZED_ROUTE, 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, MULTILANGUAGE_CAPABLE_WIDGET_TYPES, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, UploadFromComputerActionProvider, applyDateFilterPreset, axpBackgroundOperationCapabilities, axpBackgroundOperationDisplayTime, axpBackgroundOperationEntityName, axpBackgroundOperationEstimateEndDate, axpBackgroundOperationFailurePolicy, axpBackgroundOperationFromEntityModel, axpBackgroundOperationRemainingMs, axpBackgroundOperationToEntityModel, axpBuildBackgroundOperation, axpBuildTabKey, axpCoerceBackgroundOperationDate, axpCreateBackgroundOperationId, axpFallbackTabTitle, axpFindMenuItemByRoute, axpGetLeafRouteSnapshot, axpHasTabScope, axpIsActiveBackgroundOperationStatus, axpIsCompletedBackgroundOperationStatus, axpIsEntityDetailsPath, axpIsEntityDetailsViewRoute, axpIsEntityListPath, axpIsEntityListRoute, axpIsEntityRecordNotFound, axpIsTabEligibleUrl, axpJoinTabTitleSegments, axpMenuPathsMatch, axpNavigateAppPath, axpParseAppPath, axpPathFromSnapshot, axpRedirectToNotFound, axpRedirectToUnauthorized, axpReplaceEntityListRouteQueryParams, axpResolveTabKey, axpResolveTabKeyFromRouteConfig, axpResolveTabKeyFromSnapshot, axpResolveTabTitleParts, backgroundOperationEntityFactory, coerceAXPSettingRawValue, coerceAXPSettingRawValueByKind, configPlatform, createBackgroundOperationStore, createEntityCommandOptions, createEntityRowExpressionScope, createEntitySearchCommand, createMenuContext, createMenuMiddleware, createUnsavedChangesCanDeactivateGuard, downloadGraphicFromElement, evaluateEntityDisplayTemplate, findManualPresetIdByOperation, formatEntityRowDisplayTitle, inferSettingCoercionKind, normalizePositiveNumberOption, normalizeRouterUrl, peelSettingValueKey, printGraphicFromElement, provideDynamicHomePage, provideMenuMiddleware, resolveDateFilterPresets, resolveEntityCreateListBehavior, resolveEntityModifyPopupTitle, resolveEntityRowDisplayText, resolveEntityRowDisplayTitle, resolveEntityRowDisplayTitleFromColumnContext, resolveEntitySearchTitleFallback, resolveGraphicElementSize, resolveGraphicPrintContent, resolveQueryMatchingDisplayText, resolveSearchDisplayTemplate, resolveSearchableText, searchInRecordValues, searchInSearchableValue, serializeSvgElement, shouldApplyDefaultMultiLanguageToEntityProperty, shouldApplyDefaultMultiLanguageToWidgetNode, shouldApplyDefaultMultiLanguageToWidgetProperty, triggerBrowserDownload, withDefaultMultiLanguageOnWidgetNodeTree, withDefaultMultiLanguageOnWidgetProperty };
3060
+ export type { AXCFileUploaderAction, AXCFileUploaderActionsPayload, AXCFileUploaderCapabilities, AXPAgentOutputContract, AXPAgentResponseFormat, AXPAppPathParts, AXPAppVersion, AXPAppVersionProvider, AXPBackgroundOperation, AXPBackgroundOperationActionKey, AXPBackgroundOperationCapabilities, AXPBackgroundOperationCreateRequest, AXPBackgroundOperationEntityModel, AXPBackgroundOperationEntityStorageAdapter, AXPBackgroundOperationError, AXPBackgroundOperationFailureMode, AXPBackgroundOperationFailurePolicy, AXPBackgroundOperationProviderStore, AXPBackgroundOperationStatus, AXPCommonModuleConfigs, AXPCurrency, AXPDateTimeFilterPreset, AXPDateTimeFilterPresetKind, AXPDateTimeFilterValue, AXPDomToImageOptions, AXPEntityCreateListBehavior, AXPEntityCreateListBehaviorOptions, AXPEntityDeletedEventPayload, AXPErrorHandler, AXPFileActionProvider, AXPFileActionProviderToken, AXPFileExtension, AXPFileType, AXPFileTypeInfoProvider, AXPFilterOperator, AXPGeoLocation, AXPGraphicDownloadFormat, AXPGraphicDownloadOptions, AXPGraphicPrintContent, AXPGroupSearchResult, AXPHomePageDefinition, AXPInAppNotificationCreateRequest, AXPInAppNotificationPriority, AXPInAppNotificationService, AXPIntegrationOAuthCompleteInput, AXPIntegrationOAuthStartInput, AXPIntegrationProvider, AXPIntegrationRuntimeProvider, AXPIntegrationSecretRefInput, AXPIntegrationSecretStore, AXPIntegrationWithClientOptions, AXPJsonSchemaLike, AXPLanguage, AXPLocaleManagementPort, AXPLocaleProfile, AXPLockGetInfoRequest, AXPLockInfo, AXPLockRequest, AXPLockType, AXPMenuFinderResult, AXPMenuInsertion, AXPMenuItem, AXPMenuItemCommand, AXPMenuItemFinder, AXPMenuItemWithParent, AXPMenuMiddleware, AXPMenuMiddlewareContext, AXPMenuMiddlewareProvider, AXPMenuProvider, AXPMenuProviderContext, AXPMenuRouteMatchResult, AXPMenuType, AXPNavigationMode, AXPOutputContractTranscriptSegmentDefinition, AXPOutputContractTranscriptSegmentProvider, AXPOutputContractTranscriptSegmentProviderToken, AXPPlatformConfigs, AXPPrintGraphicOptions, AXPResolveEntityRowDisplayTitleOptions, AXPRootConfigs, AXPSearchAction, AXPSearchDefinition, AXPSearchDefinitionDisplayFormat, AXPSearchDefinitionLazyResolver, AXPSearchDefinitionProvider, AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPSearchDisplayResultForSave, AXPSearchParentResult, AXPSearchProvider, AXPSearchResult, AXPSettingChangedEvent, AXPSettingCoercionKind, AXPSettingDefaultValuesProvider, AXPSettingDefinition, AXPSettingDefinitionGroup, AXPSettingDefinitionProvider, AXPSettingDefinitionSection, AXPSettingLayoutOptions, AXPSettingMergedDefaults, AXPSettingValue, AXPSettingValueProvider, AXPSettingsServiceInterface, AXPTabCloseConfirm, AXPTabDescriptor, AXPTabRouteData, AXPTabSessionState, AXPTabStructuredPreview, AXPTabTitleParts, AXPTimeZone, AXPTokenDefinition, AXPTokenDefinitionProvider, AXPTokenDefinitionProviderToken, AXPTranslateFormatterOptions, AXPUnLockRequest, AXPUnsavedChangesCanDeactivate, AXPUnsavedChangesConfirmOptions, AXPUnsavedChangesPopstateSource, AXPVersionChange, AXPVersionEntry, AXPVersionStream, CanonicalChange, CanonicalChangeOp, VersionedFileInfo };