@acorex/platform 21.0.0-next.71 → 21.0.0-next.73

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 (60) hide show
  1. package/contracts/README.md +3 -0
  2. package/fesm2022/acorex-platform-auth.mjs +82 -60
  3. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  4. package/fesm2022/{acorex-platform-common-common-settings.provider-Bi1RYif5.mjs → acorex-platform-common-common-settings.provider-Ytey9uhY.mjs} +15 -1
  5. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +1 -0
  6. package/fesm2022/acorex-platform-common.mjs +3796 -1677
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-contracts.mjs +10 -0
  9. package/fesm2022/acorex-platform-contracts.mjs.map +1 -0
  10. package/fesm2022/acorex-platform-core.mjs +1126 -114
  11. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-builder.mjs +56 -170
  13. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-components.mjs +254 -53
  15. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-designer.mjs +199 -126
  17. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  18. package/fesm2022/{acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs → acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs} +6 -1
  19. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs.map +1 -0
  20. package/fesm2022/acorex-platform-layout-entity.mjs +403 -460
  21. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-views.mjs +675 -301
  23. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs +126 -75
  25. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  26. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs} +2 -2
  27. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs.map → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map} +1 -1
  28. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs} +2 -2
  29. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs.map} +1 -1
  30. package/fesm2022/acorex-platform-layout-widgets.mjs +450 -750
  31. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs +48 -0
  33. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs.map +1 -0
  34. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs +42 -0
  35. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs.map +1 -0
  36. package/fesm2022/acorex-platform-themes-default.mjs +79 -35
  37. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  38. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +1 -1
  39. package/fesm2022/acorex-platform-themes-shared.mjs +3 -0
  40. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  41. package/fesm2022/acorex-platform-workflow.mjs +57 -54
  42. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  43. package/package.json +5 -1
  44. package/types/acorex-platform-auth.d.ts +31 -22
  45. package/types/acorex-platform-common.d.ts +892 -259
  46. package/types/acorex-platform-contracts.d.ts +39 -0
  47. package/types/acorex-platform-core.d.ts +291 -47
  48. package/types/acorex-platform-layout-builder.d.ts +10 -22
  49. package/types/acorex-platform-layout-components.d.ts +86 -14
  50. package/types/acorex-platform-layout-entity.d.ts +218 -212
  51. package/types/acorex-platform-layout-views.d.ts +125 -67
  52. package/types/acorex-platform-layout-widget-core.d.ts +56 -62
  53. package/types/acorex-platform-layout-widgets.d.ts +78 -65
  54. package/types/acorex-platform-themes-default.d.ts +14 -4
  55. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +0 -1
  56. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs.map +0 -1
  57. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs +0 -31
  58. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +0 -1
  59. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs +0 -25
  60. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +0 -1
@@ -1,24 +1,30 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, EnvironmentProviders, Injector, ErrorHandler, ModuleWithProviders, EventEmitter, ElementRef, Renderer2, NgZone, ChangeDetectorRef } from '@angular/core';
2
+ import { InjectionToken, EnvironmentProviders, Signal, Injector, ErrorHandler, ModuleWithProviders, EventEmitter, ElementRef, Renderer2, NgZone, ChangeDetectorRef } from '@angular/core';
3
3
  import { AXDataSourceOperator, AXStyleColorType, AXDataSourceFilterOption } from '@acorex/cdk/common';
4
- import * as i2 from '@acorex/components/popup';
4
+ import * as i3 from '@acorex/components/popup';
5
5
  import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
6
- import * as i5 from '@acorex/platform/core';
7
- import { AXPValueTransformerFunctions, AXPMultiLanguageString, AXPOptionsData, AXPExpression, AXPFilterDefinition, AXPMetaData, AXPSystemActionType, AXPValidationRules, AXPGridLayoutOptions, AXPLogoConfig, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext, AXPFileListItem, AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPNavigateActionCommand, AXPExecuteCommand, AXPApplicationUserReference, AXPEntityReference, AXPPlatformScopeKey, AXPWidgetTriggers, AXPPlatformScope } from '@acorex/platform/core';
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
8
  import { AXPWidgetTypesMap, AXPMetaDataDefinition, AXPWidgetNode, AXPWidgetProperty } from '@acorex/platform/layout/widget-core';
9
- import * as i3 from '@acorex/core/date-time';
9
+ import * as i4 from '@acorex/core/date-time';
10
10
  import { AXCalendarService } from '@acorex/core/date-time';
11
- import * as i6 from '@angular/router';
12
- import { Route, Routes } from '@angular/router';
13
- import * as i1 from '@acorex/platform/workflow';
11
+ import * as _angular_router from '@angular/router';
12
+ import { Route, Routes, UrlTree, Router, RedirectCommand, ActivatedRouteSnapshot, CanActivateFn, CanDeactivateFn, NavigationExtras } from '@angular/router';
13
+ import * as i2 from '@acorex/platform/workflow';
14
14
  import { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
15
- import * as i4 from '@acorex/components/toast';
15
+ import * as i5 from '@acorex/components/toast';
16
16
  import * as rxjs from 'rxjs';
17
17
  import { Subject } from 'rxjs';
18
18
  import * as _ngrx_signals from '@ngrx/signals';
19
19
  import { AXTranslationService } from '@acorex/core/translation';
20
+ import { AXFormatService } from '@acorex/core/format';
20
21
  import { AXLocaleProfile } from '@acorex/core/locale';
21
22
 
23
+ /** Platform common datasource registry names. */
24
+ declare const AXPPlatformCommonDataSourceKeys: {
25
+ readonly MenuItems: "platform-menu-items";
26
+ };
27
+
22
28
  /** JSON data primitive for the specialist final deliverable. */
23
29
  type AXPAgentOutputKind = 'string' | 'object' | 'array';
24
30
  /** When `kind` is `object`, controls how the parsed value maps into chat transcript segments. */
@@ -350,6 +356,11 @@ interface AXPCommandActionDisplay extends Partial<AXPCommandActionLook> {
350
356
  disabled?: boolean | string;
351
357
  default?: boolean;
352
358
  order?: number;
359
+ /**
360
+ * Keyboard chords for this action (e.g. `'ctrl+shift+a'`).
361
+ * Pass `[]` to disable shortcuts. When omitted, platform defaults may apply for known commands.
362
+ */
363
+ shortcuts?: string[];
353
364
  }
354
365
  interface AXPEntityAction extends AXPCommandActionDisplay {
355
366
  scope: AXPEntityCommandScope;
@@ -794,6 +805,10 @@ declare class AXPHomePageService {
794
805
  private buildFullPaths;
795
806
  private refreshRoutes;
796
807
  private applyMergedConfig;
808
+ /**
809
+ * Resolves the current user's home page as a router URL tree.
810
+ */
811
+ resolveHomeUrlTree(): UrlTree;
797
812
  navigateTo(): Promise<void>;
798
813
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPHomePageService, never>;
799
814
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPHomePageService>;
@@ -805,6 +820,305 @@ declare class AXPHomePageModule {
805
820
  static ɵinj: i0.ɵɵInjectorDeclaration<AXPHomePageModule>;
806
821
  }
807
822
 
823
+ type AXPInAppNotificationPriority = 'Notice' | 'Danger' | 'Warning';
824
+ interface AXPInAppNotificationCreateRequest {
825
+ id: string;
826
+ name: string;
827
+ title: string;
828
+ body: string;
829
+ icon: string;
830
+ priority: AXPInAppNotificationPriority;
831
+ receiver: AXPUserReference;
832
+ data?: Record<string, unknown>;
833
+ }
834
+ /**
835
+ * Persists in-app notifications. Notification-management registers an implementation
836
+ * backed by {@link AXMNotificationService}.
837
+ */
838
+ interface AXPInAppNotificationService {
839
+ create(request: AXPInAppNotificationCreateRequest): Promise<void>;
840
+ }
841
+ declare const AXP_IN_APP_NOTIFICATION_SERVICE: InjectionToken<AXPInAppNotificationService>;
842
+
843
+ type AXPBackgroundOperationStatus = 'queued' | 'running' | 'paused' | 'completed' | 'failed' | 'cancelled';
844
+ interface AXPBackgroundOperationCapabilities {
845
+ cancellable: boolean;
846
+ pausable: boolean;
847
+ resumable: boolean;
848
+ retryable: boolean;
849
+ /** When true, UI shows a progress bar only while {@link AXPBackgroundOperation.progress} is set. */
850
+ supportsProgress: boolean;
851
+ /** When true, UI may show ETA while {@link AXPBackgroundOperation.estimatedDurationMs} is set. */
852
+ supportsEstimate: boolean;
853
+ /** When true, the tray item is clickable and delegates to a registered handler. */
854
+ clickable: boolean;
855
+ /** When false, skip in-app notification on completed/cancelled. Default: true. */
856
+ notifyOnComplete?: boolean;
857
+ /** When false, skip in-app notification on failed. Default: true. */
858
+ notifyOnFailed?: boolean;
859
+ }
860
+ type AXPBackgroundOperationFailureMode = 'retry' | 'continue' | 'abort';
861
+ interface AXPBackgroundOperationFailurePolicy {
862
+ mode: AXPBackgroundOperationFailureMode;
863
+ currentStepId?: string;
864
+ maxRetries?: number;
865
+ retryCount?: number;
866
+ }
867
+ interface AXPBackgroundOperationError {
868
+ code?: string;
869
+ message: string;
870
+ detail?: string;
871
+ }
872
+ interface AXPBackgroundOperation {
873
+ id: string;
874
+ providerKey: string;
875
+ title: string;
876
+ status: AXPBackgroundOperationStatus;
877
+ progress?: number;
878
+ estimatedDurationMs?: number;
879
+ statusText?: string;
880
+ currentStep?: string;
881
+ createdAt: Date;
882
+ startedAt?: Date;
883
+ completedAt?: Date;
884
+ capabilities: AXPBackgroundOperationCapabilities;
885
+ failurePolicy: AXPBackgroundOperationFailurePolicy;
886
+ error?: AXPBackgroundOperationError;
887
+ /** Handler-specific payload (e.g. conversationId for chat navigation). */
888
+ data?: Record<string, unknown>;
889
+ }
890
+ interface AXPBackgroundOperationCreateRequest {
891
+ title: string;
892
+ progress?: number;
893
+ estimatedDurationMs?: number;
894
+ statusText?: string;
895
+ currentStep?: string;
896
+ capabilities: AXPBackgroundOperationCapabilities;
897
+ failurePolicy: AXPBackgroundOperationFailurePolicy;
898
+ }
899
+ type AXPBackgroundOperationActionKey = 'cancel' | 'pause' | 'resume' | 'retry' | 'dismiss';
900
+
901
+ /**
902
+ * Sends in-app notifications when a background operation finishes or fails.
903
+ */
904
+ declare class AXPBackgroundOperationNotificationService {
905
+ private readonly inAppNotificationService;
906
+ private readonly sessionService;
907
+ notify(operation: AXPBackgroundOperation): Promise<void>;
908
+ private shouldNotify;
909
+ private resolveBody;
910
+ private resolveTemplate;
911
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPBackgroundOperationNotificationService, never>;
912
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPBackgroundOperationNotificationService>;
913
+ }
914
+
915
+ /**
916
+ * Sends notifications and removes tray rows when a background operation reaches a terminal state.
917
+ */
918
+ declare class AXPBackgroundOperationCompletionService {
919
+ private readonly notificationService;
920
+ /** Whether the operation just reached a finished state (completed or cancelled). */
921
+ shouldAutoFinish(previousStatus: string | undefined, operation: AXPBackgroundOperation): boolean;
922
+ /** Whether the operation just transitioned to failed. */
923
+ shouldNotifyFailure(previousStatus: string | undefined, operation: AXPBackgroundOperation): boolean;
924
+ /** Notifies the user and invokes {@link remove} to drop the operation from the tray. */
925
+ notifyAndRemove(operation: AXPBackgroundOperation, remove: () => void): Promise<void>;
926
+ /** Notifies the user while keeping the failed operation in the tray for retry. */
927
+ notifyFailure(operation: AXPBackgroundOperation): Promise<void>;
928
+ private notify;
929
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPBackgroundOperationCompletionService, never>;
930
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPBackgroundOperationCompletionService>;
931
+ }
932
+
933
+ declare const AXPBackgroundOperationRootConfig: {
934
+ readonly module: {
935
+ readonly name: "Common";
936
+ readonly title: "@general:module.common.title";
937
+ readonly icon: "fa-light fa-layer-group";
938
+ };
939
+ readonly entities: {
940
+ readonly backgroundOperation: {
941
+ readonly name: "BackgroundOperations";
942
+ readonly title: "@general:background-operation.entity.title";
943
+ readonly titlePlural: "@general:background-operation.entity.plural";
944
+ readonly icon: "fa-light fa-spinner";
945
+ };
946
+ };
947
+ };
948
+ /** Full entity key used with {@link AXPEntityStorageService} (e.g. `Common.BackgroundOperations`). */
949
+ declare function axpBackgroundOperationEntityName(): string;
950
+
951
+ /** Persisted row shape for {@link axpBackgroundOperationEntityName}. */
952
+ interface AXPBackgroundOperationEntityModel {
953
+ id: string;
954
+ providerKey: string;
955
+ title: string;
956
+ status: AXPBackgroundOperationStatus;
957
+ progress?: number;
958
+ estimatedDurationMs?: number;
959
+ statusText?: string;
960
+ currentStep?: string;
961
+ createdAt: string;
962
+ startedAt?: string;
963
+ completedAt?: string;
964
+ capabilities: AXPBackgroundOperationCapabilities;
965
+ failurePolicy: AXPBackgroundOperationFailurePolicy;
966
+ error?: AXPBackgroundOperationError;
967
+ data?: Record<string, unknown>;
968
+ }
969
+
970
+ /**
971
+ * Optional persistence adapter for background-operation entity rows.
972
+ * Mock connectivity registers an implementation backed by {@link AXPEntityStorageService}.
973
+ */
974
+ interface AXPBackgroundOperationEntityStorageAdapter {
975
+ getAll(entityName: string): Promise<AXPBackgroundOperationEntityModel[]>;
976
+ upsertOne(entityName: string, row: AXPBackgroundOperationEntityModel): Promise<void>;
977
+ deleteOne(entityName: string, id: string): Promise<void>;
978
+ }
979
+ declare const AXP_BACKGROUND_OPERATION_ENTITY_STORAGE: InjectionToken<AXPBackgroundOperationEntityStorageAdapter>;
980
+
981
+ declare function axpBackgroundOperationToEntityModel(operation: AXPBackgroundOperation): AXPBackgroundOperationEntityModel;
982
+ declare function axpBackgroundOperationFromEntityModel(model: AXPBackgroundOperationEntityModel): AXPBackgroundOperation;
983
+
984
+ interface AXPBackgroundOperationProviderStore {
985
+ readonly operations: Signal<readonly AXPBackgroundOperation[]>;
986
+ upsert(operation: AXPBackgroundOperation): void;
987
+ patch(operationId: string, patch: Partial<AXPBackgroundOperation>): void;
988
+ find(operationId: string): AXPBackgroundOperation | undefined;
989
+ remove(id: string): void;
990
+ }
991
+ /**
992
+ * Entity-backed store for background operations (`Common.BackgroundOperations`).
993
+ * Uses in-memory signals for UI reactivity and optionally persists via {@link AXP_BACKGROUND_OPERATION_ENTITY_STORAGE}.
994
+ */
995
+ declare class AXPBackgroundOperationEntityStoreService {
996
+ private readonly entityStorage;
997
+ private readonly completionService;
998
+ private readonly entityName;
999
+ private hydrated;
1000
+ private hydratePromise?;
1001
+ private readonly innerStores;
1002
+ ensureHydrated(): Promise<void>;
1003
+ hasAnyOperationForProviders(providerKeys: readonly string[]): Promise<boolean>;
1004
+ createProviderStore(providerKey: string): AXPBackgroundOperationProviderStore;
1005
+ /** All operations across providers (post-hydration). */
1006
+ readonly allOperations: Signal<AXPBackgroundOperation[]>;
1007
+ private hydrateFromEntityStorage;
1008
+ private persistOperation;
1009
+ private deleteOperation;
1010
+ private getOrCreateInnerStore;
1011
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPBackgroundOperationEntityStoreService, never>;
1012
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPBackgroundOperationEntityStoreService>;
1013
+ }
1014
+
1015
+ /**
1016
+ * Storage-only entity for background-operation tray rows (`Common.BackgroundOperations`).
1017
+ * No master UI — persisted through {@link AXPEntityStorageService}.
1018
+ */
1019
+ declare function backgroundOperationEntityFactory(): Promise<AXPEntity | null>;
1020
+
1021
+ declare const AXP_BACKGROUND_OPERATION_HANDLERS: InjectionToken<AXPBackgroundOperationHandler[]>;
1022
+ /**
1023
+ * Handles user interactions for background operations (e.g. navigate on click).
1024
+ * Register one handler per {@link AXPBackgroundOperation.providerKey}.
1025
+ */
1026
+ declare abstract class AXPBackgroundOperationHandler {
1027
+ abstract readonly providerKey: string;
1028
+ abstract execute(command: AXPExecuteCommand, operation: AXPBackgroundOperation): Promise<void>;
1029
+ }
1030
+
1031
+ declare const AXP_BACKGROUND_OPERATION_PROVIDERS: InjectionToken<AXPBackgroundOperationProvider[]>;
1032
+ /**
1033
+ * Registers a source of background operations (multi-provider).
1034
+ * Each feature module or mock can contribute one provider per domain key.
1035
+ */
1036
+ declare abstract class AXPBackgroundOperationProvider {
1037
+ abstract readonly key: string;
1038
+ abstract readonly operations: Signal<readonly AXPBackgroundOperation[]>;
1039
+ abstract create(request: AXPBackgroundOperationCreateRequest): Promise<AXPBackgroundOperation>;
1040
+ abstract cancel(operationId: string): Promise<void>;
1041
+ /** Optional — only when {@link AXPBackgroundOperationCapabilities.pausable} is true. */
1042
+ pause?(operationId: string): Promise<void>;
1043
+ /** Optional — only when {@link AXPBackgroundOperationCapabilities.resumable} is true. */
1044
+ resume?(operationId: string): Promise<void>;
1045
+ /** Optional — only when {@link AXPBackgroundOperationCapabilities.retryable} is true. */
1046
+ retry?(operationId: string): Promise<void>;
1047
+ /** Optional — removes completed/failed operations from the tray. */
1048
+ dismiss?(operationId: string): Promise<void>;
1049
+ }
1050
+
1051
+ /**
1052
+ * Lightweight in-memory store for a single background-operation provider.
1053
+ */
1054
+ declare function createBackgroundOperationStore(): {
1055
+ readonly operations: Signal<readonly AXPBackgroundOperation[]>;
1056
+ upsert(operation: AXPBackgroundOperation): void;
1057
+ patch(id: string, patch: Partial<AXPBackgroundOperation>): void;
1058
+ find(id: string): AXPBackgroundOperation | undefined;
1059
+ remove(id: string): void;
1060
+ };
1061
+
1062
+ declare function axpCreateBackgroundOperationId(): string;
1063
+ declare function axpBuildBackgroundOperation(providerKey: string, request: AXPBackgroundOperationCreateRequest, overrides?: Partial<AXPBackgroundOperation>): AXPBackgroundOperation;
1064
+ declare function axpCoerceBackgroundOperationDate(value: Date | string | undefined): Date | null;
1065
+ declare function axpBackgroundOperationDisplayTime(operation: AXPBackgroundOperation): Date | null;
1066
+ /**
1067
+ * Remaining duration in milliseconds for ETA display.
1068
+ */
1069
+ declare function axpBackgroundOperationRemainingMs(operation: AXPBackgroundOperation): number | null;
1070
+ /**
1071
+ * Estimated completion instant for relative-time formatting (e.g. timeleft pipe).
1072
+ */
1073
+ declare function axpBackgroundOperationEstimateEndDate(operation: AXPBackgroundOperation): Date | null;
1074
+ declare function axpBackgroundOperationCapabilities(partial?: Partial<AXPBackgroundOperationCapabilities>): AXPBackgroundOperationCapabilities;
1075
+ declare function axpBackgroundOperationFailurePolicy(partial?: Partial<AXPBackgroundOperationFailurePolicy>): AXPBackgroundOperationFailurePolicy;
1076
+ declare function axpIsActiveBackgroundOperationStatus(status: AXPBackgroundOperationStatus): boolean;
1077
+ declare function axpIsCompletedBackgroundOperationStatus(status: AXPBackgroundOperationStatus): boolean;
1078
+
1079
+ declare class AXPBackgroundOperationService {
1080
+ private readonly providers;
1081
+ private readonly handlers;
1082
+ private readonly busy;
1083
+ readonly loading: i0.Signal<boolean>;
1084
+ readonly operations: i0.Signal<readonly AXPBackgroundOperation[]>;
1085
+ readonly activeCount: i0.Signal<number>;
1086
+ readonly failedCount: i0.Signal<number>;
1087
+ getAvailableActions(operation: AXPBackgroundOperation): AXPBackgroundOperationActionKey[];
1088
+ create(providerKey: string, request: AXPBackgroundOperationCreateRequest): Promise<AXPBackgroundOperation>;
1089
+ cancel(operationId: string): Promise<void>;
1090
+ pause(operationId: string): Promise<void>;
1091
+ resume(operationId: string): Promise<void>;
1092
+ retry(operationId: string): Promise<void>;
1093
+ dismiss(operationId: string): Promise<void>;
1094
+ hasClickHandler(operation: AXPBackgroundOperation): boolean;
1095
+ executeCommand(operationId: string, command: AXPExecuteCommand): Promise<void>;
1096
+ executeClick(operationId: string): Promise<void>;
1097
+ runAction(operationId: string, action: AXPBackgroundOperationActionKey): Promise<void>;
1098
+ private resolveHandler;
1099
+ private resolveProvider;
1100
+ private resolveOperation;
1101
+ private run;
1102
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPBackgroundOperationService, never>;
1103
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPBackgroundOperationService>;
1104
+ }
1105
+
1106
+ declare class AXPBackgroundOperationSlotComponent {
1107
+ private readonly operationService;
1108
+ private readonly popover;
1109
+ protected readonly activeCount: i0.Signal<number>;
1110
+ protected readonly failedCount: i0.Signal<number>;
1111
+ protected readonly showSlot: i0.Signal<boolean>;
1112
+ protected readonly slotShowsFailureOnly: i0.Signal<boolean>;
1113
+ protected readonly slotLabelKey: i0.Signal<"@general:background-operation.slot.failed-single" | "@general:background-operation.slot.failed-multiple" | "@general:background-operation.slot.single" | "@general:background-operation.slot.multiple">;
1114
+ protected readonly slotLabelParams: i0.Signal<{
1115
+ count: number;
1116
+ }>;
1117
+ protected closePopover(): void;
1118
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPBackgroundOperationSlotComponent, never>;
1119
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPBackgroundOperationSlotComponent, "axp-background-operation-slot", never, {}, {}, never, never, true, never>;
1120
+ }
1121
+
808
1122
  interface AXPErrorHandler {
809
1123
  handleError(error: Error, next: (error: Error) => void): void;
810
1124
  }
@@ -828,6 +1142,68 @@ declare class AXPGlobalErrorHandler extends ErrorHandler {
828
1142
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPGlobalErrorHandler>;
829
1143
  }
830
1144
 
1145
+ /** Thrown when a requested platform resource cannot be resolved. */
1146
+ declare class AXPNotFoundError extends Error {
1147
+ constructor(message?: string);
1148
+ }
1149
+
1150
+ /** Canonical route path for the platform 404 page. */
1151
+ declare const AXP_NOT_FOUND_ROUTE = "/error/404";
1152
+ /**
1153
+ * Catch-all route that redirects unknown URLs to the platform 404 page.
1154
+ * Register this as the **last** route source in the application (after all app and module routes).
1155
+ */
1156
+ declare const AXP_NOT_FOUND_CATCH_ALL_ROUTE: Route;
1157
+ /**
1158
+ * Registers the platform catch-all 404 route.
1159
+ * Must be the last `ROUTES` provider in `app.config` so custom app routes are matched first.
1160
+ */
1161
+ declare function AXPNotFoundCatchAllRoute(): EnvironmentProviders;
1162
+ /**
1163
+ * Returns true when an entity byKey query did not resolve a record.
1164
+ */
1165
+ declare function axpIsEntityRecordNotFound(data: unknown): boolean;
1166
+ /**
1167
+ * Creates an Angular redirect command to the platform 404 page.
1168
+ */
1169
+ declare function axpRedirectToNotFound(router?: Router): RedirectCommand;
1170
+
1171
+ /** Canonical route path for the platform 401 page. */
1172
+ declare const AXP_UNAUTHORIZED_ROUTE = "/error/401";
1173
+ /**
1174
+ * Creates an Angular redirect command to the platform 401 page.
1175
+ */
1176
+ declare function axpRedirectToUnauthorized(router?: Router): RedirectCommand;
1177
+
1178
+ interface AXPKeyboardShortcutHelpGroup {
1179
+ label: string;
1180
+ items: AXPKeyboardShortcutHelpEntry[];
1181
+ }
1182
+ declare class AXPKeyboardShortcutsHelpComponent {
1183
+ private readonly shortcutRegistry;
1184
+ protected readonly groups: i0.Signal<AXPKeyboardShortcutHelpGroup[]>;
1185
+ protected chordToKbdKeys(chord: string): string[];
1186
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPKeyboardShortcutsHelpComponent, never>;
1187
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPKeyboardShortcutsHelpComponent, "axp-keyboard-shortcuts-help", never, {}, {}, never, never, true, never>;
1188
+ }
1189
+
1190
+ declare class AXPKeyboardShortcutsHelpService {
1191
+ private readonly popupService;
1192
+ private readonly translationService;
1193
+ private readonly shortcutRegistry;
1194
+ private readonly document;
1195
+ /** In-flight help popup session (open until the popup closes). */
1196
+ private activeShow;
1197
+ constructor();
1198
+ /**
1199
+ * Opens the keyboard shortcuts help popup, or no-ops when it is already open.
1200
+ */
1201
+ show(): Promise<void>;
1202
+ private openHelpPopup;
1203
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPKeyboardShortcutsHelpService, never>;
1204
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPKeyboardShortcutsHelpService>;
1205
+ }
1206
+
831
1207
  interface AXPCommonModuleConfigs {
832
1208
  errorHandlers: (new () => AXPErrorHandler)[];
833
1209
  }
@@ -837,9 +1213,9 @@ declare class AXPCommonModule {
837
1213
  /**
838
1214
  * @ignore
839
1215
  */
840
- constructor(instances: any[]);
1216
+ constructor(instances: any[], _keyboardShortcutsHelp: AXPKeyboardShortcutsHelpService);
841
1217
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommonModule, never>;
842
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXPCommonModule, never, [typeof i1.AXPWorkflowModule, typeof i2.AXPopupModule, typeof i3.AXDateTimeModule, typeof i4.AXToastModule, typeof i5.AXPModuleManifestModule], [typeof i6.RouterModule]>;
1218
+ 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]>;
843
1219
  static ɵinj: i0.ɵɵInjectorDeclaration<AXPCommonModule>;
844
1220
  }
845
1221
 
@@ -876,6 +1252,7 @@ declare enum AXPCommonSettings {
876
1252
  ApplyLayoutOrdering = "Common:Setting:Entity.ApplyLayoutOrdering",
877
1253
  RedirectToDetailsAfterCreate = "Common:Setting:Entity.RedirectToDetailsAfterCreate",
878
1254
  ShowPageBadge = "Common:Setting:Entity.ShowPageBadge",
1255
+ ConfirmUnsavedChanges = "Common:Setting:Entity.ConfirmUnsavedChanges",
879
1256
  DebugMode = "PlatformDevTools:Setting:Developer.DebugMode",
880
1257
  ShowRowIndexColumn = "Common:Setting:Entity.ShowRowIndexColumn",
881
1258
  EntityListPersistenceMode = "Common:Setting:Entity.ListPersistenceMode"
@@ -943,6 +1320,175 @@ declare class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {
943
1320
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPCustomOperatorServiceImpl>;
944
1321
  }
945
1322
 
1323
+ /**
1324
+ * Capabilities API provided to file action providers.
1325
+ * These methods allow actions to interact with the file uploader widget.
1326
+ */
1327
+ interface AXCFileUploaderCapabilities {
1328
+ /**
1329
+ * Get all current files in the uploader.
1330
+ */
1331
+ getFiles: () => AXPFileListItem[];
1332
+ /**
1333
+ * Replace all files in the uploader.
1334
+ */
1335
+ setFiles: (files: AXPFileListItem[]) => void;
1336
+ /**
1337
+ * Add new files to the uploader.
1338
+ */
1339
+ addFiles: (files: AXPFileListItem[]) => void;
1340
+ /**
1341
+ * Update files matching a predicate.
1342
+ */
1343
+ updateFile: (predicate: (f: AXPFileListItem) => boolean, updater: (f: AXPFileListItem) => AXPFileListItem) => void;
1344
+ /**
1345
+ * Remove a file from the uploader.
1346
+ */
1347
+ removeFile: (file: AXPFileListItem) => void;
1348
+ /**
1349
+ * Clear all files from the uploader.
1350
+ */
1351
+ clear: () => void;
1352
+ /**
1353
+ * Get a file by its ID.
1354
+ */
1355
+ getFileById: (id: string) => AXPFileListItem | undefined;
1356
+ /**
1357
+ * Update a file by its ID.
1358
+ */
1359
+ updateFileById: (id: string, next: Partial<AXPFileListItem>) => void;
1360
+ }
1361
+ /**
1362
+ * A file uploader action that can be added by providers.
1363
+ */
1364
+ interface AXCFileUploaderAction {
1365
+ /**
1366
+ * Unique identifier for the action/plugin.
1367
+ */
1368
+ plugin: string;
1369
+ /**
1370
+ * Whether this action is global (available even if plugin is not explicitly enabled).
1371
+ */
1372
+ global?: boolean;
1373
+ /**
1374
+ * Display text for the action (optional if textKey is provided).
1375
+ */
1376
+ text?: string;
1377
+ /**
1378
+ * Translation key for the action text (optional if text is provided).
1379
+ */
1380
+ textKey?: string;
1381
+ /**
1382
+ * Icon class for the action (e.g., 'fa-light fa-file-arrow-up').
1383
+ */
1384
+ icon?: string;
1385
+ /**
1386
+ * Action execution handler.
1387
+ * Receives capabilities to interact with the file uploader.
1388
+ * @param capabilities The capabilities API for file operations.
1389
+ */
1390
+ run: (capabilities: AXCFileUploaderCapabilities) => void | Promise<void>;
1391
+ }
1392
+ /**
1393
+ * Payload passed to file action providers.
1394
+ */
1395
+ interface AXCFileUploaderActionsPayload {
1396
+ /**
1397
+ * Enabled plugins configuration.
1398
+ */
1399
+ plugins: {
1400
+ name: string;
1401
+ options?: unknown;
1402
+ }[];
1403
+ /**
1404
+ * List of plugin names to exclude.
1405
+ */
1406
+ excludePlugins: string[];
1407
+ /**
1408
+ * Capabilities API for interacting with the file uploader.
1409
+ */
1410
+ capabilities: AXCFileUploaderCapabilities;
1411
+ /**
1412
+ * Current list of actions (providers can add to this array).
1413
+ */
1414
+ actions: AXCFileUploaderAction[];
1415
+ /**
1416
+ * Widget options (optional, for accessing widget-specific settings).
1417
+ */
1418
+ options?: {
1419
+ /**
1420
+ * Whether multiple files are allowed.
1421
+ */
1422
+ multiple?: boolean;
1423
+ /**
1424
+ * Accepted file types (e.g., '.jpg,.png' or 'image/*').
1425
+ */
1426
+ accept?: string;
1427
+ };
1428
+ }
1429
+
1430
+ /**
1431
+ * Type for file action provider token (supports both direct and async providers).
1432
+ */
1433
+ type AXPFileActionProviderToken = AXPFileActionProvider | Promise<AXPFileActionProvider>;
1434
+ /**
1435
+ * File action provider interface.
1436
+ * Providers can add actions to the file uploader widget.
1437
+ */
1438
+ interface AXPFileActionProvider {
1439
+ /**
1440
+ * Unique key identifying this provider.
1441
+ * Should match the webhook key for backward compatibility: 'file-uploader.actions'
1442
+ */
1443
+ key: string;
1444
+ /**
1445
+ * Execute the provider to add actions.
1446
+ * @param payload The payload containing capabilities and current actions.
1447
+ * @returns The modified payload with new actions added.
1448
+ */
1449
+ execute(payload: AXCFileUploaderActionsPayload): Promise<AXCFileUploaderActionsPayload> | AXCFileUploaderActionsPayload;
1450
+ /**
1451
+ * Priority for execution order (lower numbers execute first).
1452
+ * Defaults to 0 if not specified.
1453
+ */
1454
+ priority?: number;
1455
+ }
1456
+ /**
1457
+ * Multi-provider injection token for file action providers.
1458
+ * Modules can provide multiple implementations using this token.
1459
+ */
1460
+ declare const AXP_FILE_ACTION_PROVIDER: InjectionToken<AXPFileActionProviderToken[]>;
1461
+
1462
+ /**
1463
+ * Service for managing file uploader actions.
1464
+ * Aggregates actions from multiple providers and filters them based on plugin configuration.
1465
+ * Wraps the hook system for backward compatibility.
1466
+ */
1467
+ declare class AXPFileActionsService {
1468
+ private readonly actionProviders;
1469
+ private readonly hookService;
1470
+ private readonly injector;
1471
+ /**
1472
+ * Get all actions from providers, filtered based on plugin configuration.
1473
+ * Wraps the hook system for backward compatibility.
1474
+ * @param payload Initial payload with capabilities and plugin configuration.
1475
+ * @returns Filtered list of actions.
1476
+ */
1477
+ getActions(payload: AXCFileUploaderActionsPayload): Promise<AXCFileUploaderAction[]>;
1478
+ /**
1479
+ * Resolve all providers (handle both direct providers and Promise<provider>).
1480
+ */
1481
+ private resolveProviders;
1482
+ /**
1483
+ * Filter actions based on enabled plugins and exclude list.
1484
+ */
1485
+ private filterActions;
1486
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileActionsService, never>;
1487
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileActionsService>;
1488
+ }
1489
+
1490
+ declare const UploadFromComputerActionProvider: AXPFileActionProvider;
1491
+
946
1492
  declare enum AXPFileStorageStatus {
947
1493
  Temporary = "temporary",// File is not yet associated with a parent entity
948
1494
  Committed = "committed",// File is fully associated and in use
@@ -1106,283 +1652,114 @@ interface AXPFileStorageInfo {
1106
1652
  */
1107
1653
  isPrimary?: boolean;
1108
1654
  status: AXPFileStorageStatus;
1109
- binary: File;
1110
- }
1111
- interface AXPFileStorageInfo {
1112
- /**
1113
- * The unique identifier for the stored file.
1114
- */
1115
- id?: string;
1116
- /**
1117
- * The unique identifier for the stored file.
1118
- */
1119
- fileId: string;
1120
- /**
1121
- * The unique identifier of referenced entity.
1122
- */
1123
- refId: string;
1124
- /**
1125
- * The type of the referenced entity.
1126
- */
1127
- refType: string;
1128
- /**
1129
- * The category of the file. profile-picture, company-logo, policy, document, etc.
1130
- */
1131
- category: string;
1132
- /**
1133
- * The URL where the file can be accessed.
1134
- */
1135
- url?: string;
1136
- /**
1137
- * The size of the file in bytes.
1138
- */
1139
- size: number;
1140
- /**
1141
- * The name of the file.
1142
- */
1143
- name?: string;
1144
- /**
1145
- * The MIME type of the file.
1146
- */
1147
- mimeType: string;
1148
- /**
1149
- * The date and time when the file was uploaded.
1150
- */
1151
- uploadedAt: Date;
1152
- /**
1153
- * Indicates whether the file is public or private.
1154
- */
1155
- isPublic: boolean;
1156
- /**
1157
- * Indicates whether the file is primary or not.
1158
- */
1159
- isPrimary?: boolean;
1160
- status: AXPFileStorageStatus;
1161
- binary: File;
1162
- }
1163
- /**
1164
- * Represents information about a file stored in the AXP file storage system.
1165
- */
1166
- interface AXPFileStorageFindRequest {
1167
- /**
1168
- * The unique identifier of referenced entity.
1169
- */
1170
- refId?: string;
1171
- /**
1172
- * The type of the referenced entity.
1173
- */
1174
- refType?: string;
1175
- /**
1176
- * The category of the file. profile-picture, company-logo, policy, document, etc.
1177
- */
1178
- category?: string;
1179
- /**
1180
- * The MIME type of the file.
1181
- */
1182
- mimeType?: string;
1183
- /**
1184
- * Indicates whether the file is public or private.
1185
- */
1186
- isPublic?: boolean;
1187
- /**
1188
- * Indicates whether the file is primary or not.
1189
- */
1190
- isPrimary?: boolean;
1191
- /**
1192
- * The date and time range when the file was uploaded.
1193
- */
1194
- uploadedAtRange?: {
1195
- from: Date;
1196
- to: Date;
1197
- };
1198
- }
1199
-
1200
- declare abstract class AXPFileStorageService {
1201
- abstract save(request: AXPFileStorageCreateRequest): Promise<AXPFileStorageInfo>;
1202
- abstract update(request: AXPFileStorageUpdateRequest): Promise<AXPFileStorageInfo>;
1203
- abstract find(request: AXPFileStorageFindRequest): Promise<AXPFileStorageInfo[]>;
1204
- abstract findMany(ids: string[]): Promise<AXPFileManyStorageInfo[]>;
1205
- abstract getInfo(fileId: string): Promise<AXPFileStorageInfo>;
1206
- abstract remove(fileId: string): Promise<void>;
1207
- abstract commit(fileId: string): Promise<void>;
1208
- abstract markForDeletion(fileId: string): Promise<void>;
1209
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileStorageService, never>;
1210
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileStorageService>;
1211
- }
1212
-
1213
- declare class AXPFileStorageEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {
1214
- fileStorageService: AXPFileStorageService;
1215
- provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
1216
- }
1217
-
1218
- /**
1219
- * Capabilities API provided to file action providers.
1220
- * These methods allow actions to interact with the file uploader widget.
1221
- */
1222
- interface AXCFileUploaderCapabilities {
1223
- /**
1224
- * Get all current files in the uploader.
1225
- */
1226
- getFiles: () => AXPFileListItem[];
1227
- /**
1228
- * Replace all files in the uploader.
1229
- */
1230
- setFiles: (files: AXPFileListItem[]) => void;
1231
- /**
1232
- * Add new files to the uploader.
1233
- */
1234
- addFiles: (files: AXPFileListItem[]) => void;
1235
- /**
1236
- * Update files matching a predicate.
1237
- */
1238
- updateFile: (predicate: (f: AXPFileListItem) => boolean, updater: (f: AXPFileListItem) => AXPFileListItem) => void;
1239
- /**
1240
- * Remove a file from the uploader.
1241
- */
1242
- removeFile: (file: AXPFileListItem) => void;
1243
- /**
1244
- * Clear all files from the uploader.
1245
- */
1246
- clear: () => void;
1247
- /**
1248
- * Get a file by its ID.
1249
- */
1250
- getFileById: (id: string) => AXPFileListItem | undefined;
1655
+ binary: File;
1656
+ }
1657
+ interface AXPFileStorageInfo {
1251
1658
  /**
1252
- * Update a file by its ID.
1659
+ * The unique identifier for the stored file.
1253
1660
  */
1254
- updateFileById: (id: string, next: Partial<AXPFileListItem>) => void;
1255
- }
1256
- /**
1257
- * A file uploader action that can be added by providers.
1258
- */
1259
- interface AXCFileUploaderAction {
1661
+ id?: string;
1260
1662
  /**
1261
- * Unique identifier for the action/plugin.
1663
+ * The unique identifier for the stored file.
1262
1664
  */
1263
- plugin: string;
1665
+ fileId: string;
1264
1666
  /**
1265
- * Whether this action is global (available even if plugin is not explicitly enabled).
1667
+ * The unique identifier of referenced entity.
1266
1668
  */
1267
- global?: boolean;
1669
+ refId: string;
1268
1670
  /**
1269
- * Display text for the action (optional if textKey is provided).
1671
+ * The type of the referenced entity.
1270
1672
  */
1271
- text?: string;
1673
+ refType: string;
1272
1674
  /**
1273
- * Translation key for the action text (optional if text is provided).
1675
+ * The category of the file. profile-picture, company-logo, policy, document, etc.
1274
1676
  */
1275
- textKey?: string;
1677
+ category: string;
1276
1678
  /**
1277
- * Icon class for the action (e.g., 'fa-light fa-file-arrow-up').
1679
+ * The URL where the file can be accessed.
1278
1680
  */
1279
- icon?: string;
1681
+ url?: string;
1280
1682
  /**
1281
- * Action execution handler.
1282
- * Receives capabilities to interact with the file uploader.
1283
- * @param capabilities The capabilities API for file operations.
1683
+ * The size of the file in bytes.
1284
1684
  */
1285
- run: (capabilities: AXCFileUploaderCapabilities) => void | Promise<void>;
1286
- }
1287
- /**
1288
- * Payload passed to file action providers.
1289
- */
1290
- interface AXCFileUploaderActionsPayload {
1685
+ size: number;
1291
1686
  /**
1292
- * Enabled plugins configuration.
1687
+ * The name of the file.
1293
1688
  */
1294
- plugins: {
1295
- name: string;
1296
- options?: unknown;
1297
- }[];
1689
+ name?: string;
1298
1690
  /**
1299
- * List of plugin names to exclude.
1691
+ * The MIME type of the file.
1300
1692
  */
1301
- excludePlugins: string[];
1693
+ mimeType: string;
1302
1694
  /**
1303
- * Capabilities API for interacting with the file uploader.
1695
+ * The date and time when the file was uploaded.
1304
1696
  */
1305
- capabilities: AXCFileUploaderCapabilities;
1697
+ uploadedAt: Date;
1306
1698
  /**
1307
- * Current list of actions (providers can add to this array).
1699
+ * Indicates whether the file is public or private.
1308
1700
  */
1309
- actions: AXCFileUploaderAction[];
1701
+ isPublic: boolean;
1310
1702
  /**
1311
- * Widget options (optional, for accessing widget-specific settings).
1703
+ * Indicates whether the file is primary or not.
1312
1704
  */
1313
- options?: {
1314
- /**
1315
- * Whether multiple files are allowed.
1316
- */
1317
- multiple?: boolean;
1318
- /**
1319
- * Accepted file types (e.g., '.jpg,.png' or 'image/*').
1320
- */
1321
- accept?: string;
1322
- };
1705
+ isPrimary?: boolean;
1706
+ status: AXPFileStorageStatus;
1707
+ binary: File;
1323
1708
  }
1324
-
1325
- /**
1326
- * Type for file action provider token (supports both direct and async providers).
1327
- */
1328
- type AXPFileActionProviderToken = AXPFileActionProvider | Promise<AXPFileActionProvider>;
1329
1709
  /**
1330
- * File action provider interface.
1331
- * Providers can add actions to the file uploader widget.
1710
+ * Represents information about a file stored in the AXP file storage system.
1332
1711
  */
1333
- interface AXPFileActionProvider {
1712
+ interface AXPFileStorageFindRequest {
1334
1713
  /**
1335
- * Unique key identifying this provider.
1336
- * Should match the webhook key for backward compatibility: 'file-uploader.actions'
1714
+ * The unique identifier of referenced entity.
1337
1715
  */
1338
- key: string;
1716
+ refId?: string;
1339
1717
  /**
1340
- * Execute the provider to add actions.
1341
- * @param payload The payload containing capabilities and current actions.
1342
- * @returns The modified payload with new actions added.
1718
+ * The type of the referenced entity.
1343
1719
  */
1344
- execute(payload: AXCFileUploaderActionsPayload): Promise<AXCFileUploaderActionsPayload> | AXCFileUploaderActionsPayload;
1720
+ refType?: string;
1345
1721
  /**
1346
- * Priority for execution order (lower numbers execute first).
1347
- * Defaults to 0 if not specified.
1722
+ * The category of the file. profile-picture, company-logo, policy, document, etc.
1348
1723
  */
1349
- priority?: number;
1350
- }
1351
- /**
1352
- * Multi-provider injection token for file action providers.
1353
- * Modules can provide multiple implementations using this token.
1354
- */
1355
- declare const AXP_FILE_ACTION_PROVIDER: InjectionToken<AXPFileActionProviderToken[]>;
1356
-
1357
- /**
1358
- * Service for managing file uploader actions.
1359
- * Aggregates actions from multiple providers and filters them based on plugin configuration.
1360
- * Wraps the hook system for backward compatibility.
1361
- */
1362
- declare class AXPFileActionsService {
1363
- private readonly actionProviders;
1364
- private readonly hookService;
1365
- private readonly injector;
1724
+ category?: string;
1366
1725
  /**
1367
- * Get all actions from providers, filtered based on plugin configuration.
1368
- * Wraps the hook system for backward compatibility.
1369
- * @param payload Initial payload with capabilities and plugin configuration.
1370
- * @returns Filtered list of actions.
1726
+ * The MIME type of the file.
1371
1727
  */
1372
- getActions(payload: AXCFileUploaderActionsPayload): Promise<AXCFileUploaderAction[]>;
1728
+ mimeType?: string;
1373
1729
  /**
1374
- * Resolve all providers (handle both direct providers and Promise<provider>).
1730
+ * Indicates whether the file is public or private.
1375
1731
  */
1376
- private resolveProviders;
1732
+ isPublic?: boolean;
1377
1733
  /**
1378
- * Filter actions based on enabled plugins and exclude list.
1734
+ * Indicates whether the file is primary or not.
1379
1735
  */
1380
- private filterActions;
1381
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileActionsService, never>;
1382
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileActionsService>;
1736
+ isPrimary?: boolean;
1737
+ /**
1738
+ * The date and time range when the file was uploaded.
1739
+ */
1740
+ uploadedAtRange?: {
1741
+ from: Date;
1742
+ to: Date;
1743
+ };
1383
1744
  }
1384
1745
 
1385
- declare const UploadFromComputerActionProvider: AXPFileActionProvider;
1746
+ declare abstract class AXPFileStorageService {
1747
+ abstract save(request: AXPFileStorageCreateRequest): Promise<AXPFileStorageInfo>;
1748
+ abstract update(request: AXPFileStorageUpdateRequest): Promise<AXPFileStorageInfo>;
1749
+ abstract find(request: AXPFileStorageFindRequest): Promise<AXPFileStorageInfo[]>;
1750
+ abstract findMany(ids: string[]): Promise<AXPFileManyStorageInfo[]>;
1751
+ abstract getInfo(fileId: string): Promise<AXPFileStorageInfo>;
1752
+ abstract remove(fileId: string): Promise<void>;
1753
+ abstract commit(fileId: string): Promise<void>;
1754
+ abstract markForDeletion(fileId: string): Promise<void>;
1755
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPFileStorageService, never>;
1756
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPFileStorageService>;
1757
+ }
1758
+
1759
+ declare class AXPFileStorageEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {
1760
+ fileStorageService: AXPFileStorageService;
1761
+ provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
1762
+ }
1386
1763
 
1387
1764
  interface AXPFileType {
1388
1765
  /**
@@ -1487,10 +1864,6 @@ declare class AXPStickyDirective {
1487
1864
  static ɵdir: i0.ɵɵDirectiveDeclaration<AXPStickyDirective, "[axpSticky]", ["axpSticky"], { "stickyClass": { "alias": "axpSticky"; "required": false; }; "stickyOffset": { "alias": "stickyOffset"; "required": false; }; "stickyParent": { "alias": "stickyParent"; "required": false; }; "stickyTarget": { "alias": "stickyTarget"; "required": false; }; }, { "isStickyChange": "isStickyChange"; }, never, never, true, never>;
1488
1865
  }
1489
1866
 
1490
- /**
1491
- * Registered menu items (raw tree flattened) for select widgets via dataSource name {@link MENU_ITEMS_DATASOURCE_NAME}.
1492
- */
1493
- declare const MENU_ITEMS_DATASOURCE_NAME = "platform-menu-items";
1494
1867
  /**
1495
1868
  * Data source definition for menu items from {@link AXPMenuProviderService#rawItems}.
1496
1869
  */
@@ -1519,6 +1892,11 @@ interface AXPMenuItem {
1519
1892
  permissions?: string[];
1520
1893
  features?: string[];
1521
1894
  };
1895
+ /**
1896
+ * Keyboard shortcuts for this menu item.
1897
+ * Use a chord string or `{ keys, allowInEditableFields, ... }`. Pass `[]` to disable.
1898
+ */
1899
+ shortcuts?: AXPKeyboardShortcut[];
1522
1900
  }
1523
1901
  interface AXPMenuFinderResult {
1524
1902
  readonly exists: boolean;
@@ -1836,12 +2214,36 @@ declare const AXPMenuService: i0.Type<{
1836
2214
  };
1837
2215
  }>>;
1838
2216
 
2217
+ declare class AXPMenuKeyboardShortcutService {
2218
+ private readonly destroyRef;
2219
+ private readonly injector;
2220
+ private readonly shortcutRegistry;
2221
+ private readonly visibilityService;
2222
+ private readonly sessionService;
2223
+ private readonly isAuthenticated;
2224
+ /**
2225
+ * Registers global keyboard shortcuts declared on menu items (`shortcuts` property).
2226
+ * Replaces the previous registration when the menu tree is reloaded.
2227
+ */
2228
+ sync(items: AXPMenuItem[]): void;
2229
+ private buildShortcutBindings;
2230
+ private collectShortcutEntries;
2231
+ private isShortcutActive;
2232
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPMenuKeyboardShortcutService, never>;
2233
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPMenuKeyboardShortcutService>;
2234
+ }
2235
+
1839
2236
  /**
1840
2237
  * Service for checking menu item visibility based on permissions, features, and children.
1841
2238
  * This service helps filter out empty menu items that have no visible children.
1842
2239
  */
1843
2240
  declare class AXPMenuVisibilityService {
1844
2241
  private sessionService;
2242
+ /**
2243
+ * Checks visibility for a menu branch, including ancestor policies.
2244
+ * Parent module features and permissions must pass before child routes are accessible.
2245
+ */
2246
+ isMenuBranchVisible(item: AXPMenuItem, ancestors?: AXPMenuItem[]): boolean;
1845
2247
  /**
1846
2248
  * Checks if a menu item should be visible based on permissions and features.
1847
2249
  */
@@ -1867,11 +2269,67 @@ declare class AXPMenuVisibilityService {
1867
2269
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPMenuVisibilityService>;
1868
2270
  }
1869
2271
 
2272
+ interface AXPMenuRouteMatchResult {
2273
+ item: AXPMenuItem;
2274
+ /** Parent menu items from root down to the direct parent of the matched item. */
2275
+ ancestors: AXPMenuItem[];
2276
+ isPartialMatch: boolean;
2277
+ }
2278
+ /**
2279
+ * Compares a menu item path with the current browser path.
2280
+ * Mirrors the matching rules used when selecting the active menu item.
2281
+ */
2282
+ declare function axpMenuPathsMatch(itemPath: string, currentPath: string, trailingSegmentsToIgnore?: string[]): {
2283
+ isMatch: boolean;
2284
+ isPartial: boolean;
2285
+ };
2286
+ /**
2287
+ * Finds the most specific menu item that matches the given route path.
2288
+ */
2289
+ declare function axpFindMenuItemByRoute(items: AXPMenuItem[], currentPath: string, trailingSegmentsToIgnore?: string[]): AXPMenuRouteMatchResult | null;
2290
+
2291
+ /**
2292
+ * Resolves route access using menu policy, route metadata, permissions, and features.
2293
+ */
2294
+ declare class AXPMenuRouteAccessService {
2295
+ private readonly menuProvider;
2296
+ private readonly menuVisibility;
2297
+ private readonly sessionService;
2298
+ /**
2299
+ * Checks whether navigation to the target URL is allowed for the current user.
2300
+ */
2301
+ canAccess(route: ActivatedRouteSnapshot, url: string): Promise<boolean>;
2302
+ private shouldSkip;
2303
+ private hasRouteFlag;
2304
+ private hasExplicitRouteAccess;
2305
+ private getInheritedRouteData;
2306
+ private normalizeKeys;
2307
+ private normalizeUrl;
2308
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPMenuRouteAccessService, never>;
2309
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPMenuRouteAccessService>;
2310
+ }
2311
+
2312
+ /**
2313
+
2314
+ * Blocks navigation when the target route is not accessible for the current user.
2315
+
2316
+ * Evaluates menu policy, permissions, and features.
2317
+
2318
+ */
2319
+ declare const AXPMenuRouteGuard: CanActivateFn;
2320
+
2321
+ /** Standard guards for authenticated routes with menu-based access enforcement. */
2322
+ declare const AXP_PROTECTED_ROUTE_GUARDS: readonly [_angular_router.CanActivateFn, _angular_router.CanActivateFn];
2323
+
1870
2324
  interface AXPSearchDefinitionDisplayFormat {
1871
2325
  title?: string;
1872
2326
  description?: string;
1873
2327
  icon?: string;
1874
2328
  id?: string;
2329
+ /** Entity `single.title` / lookup / individual templates when primary `title` is empty. */
2330
+ titleFallbackTemplates?: string[];
2331
+ /** Entity property paths (from schema) when templates do not resolve. */
2332
+ titleFallbackFields?: string[];
1875
2333
  }
1876
2334
  interface AXPSearchDefinition {
1877
2335
  name: string;
@@ -1991,11 +2449,72 @@ declare class AXPSearchService {
1991
2449
  private definitionService;
1992
2450
  private formatService;
1993
2451
  private translationService;
2452
+ private expressionEvaluator;
1994
2453
  search(text: string): Promise<AXPSearchDisplayGroupResult[]>;
1995
2454
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSearchService, never>;
1996
2455
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSearchService>;
1997
2456
  }
1998
2457
 
2458
+ /**
2459
+ * Resolves a value to plain text for global-search matching (i18n keys, locale maps, scalars).
2460
+ */
2461
+ declare function resolveSearchableText(value: unknown, locale: string, translationService: AXTranslationService): string;
2462
+ /**
2463
+ * Case-insensitive match against i18n keys, locale maps, and plain strings.
2464
+ */
2465
+ declare function searchInSearchableValue(value: unknown, query: string, locale: string, translationService: AXTranslationService): boolean;
2466
+ /**
2467
+ * Shallow + nested search over entity/command payloads (skips id / entityName keys).
2468
+ */
2469
+ declare function searchInRecordValues(value: unknown, query: string, locale: string, translationService: AXTranslationService, depth?: number): boolean;
2470
+ /** Standard row scope for entity title/search templates. */
2471
+ declare function createEntityRowExpressionScope(data: unknown): AXPExpressionEvaluatorScope;
2472
+ /**
2473
+ * Evaluates a normalized entity display template via {@link AXPExpressionEvaluatorService}.
2474
+ */
2475
+ declare function evaluateEntityDisplayTemplate(template: string, data: unknown, expressionEvaluator: AXPExpressionEvaluatorService, locale: string, translationService: AXTranslationService): Promise<unknown>;
2476
+ /**
2477
+ * Best display string from row values that contain the active search query (deep-match fallback).
2478
+ */
2479
+ declare function resolveQueryMatchingDisplayText(value: unknown, query: string, locale: string, translationService: AXTranslationService, depth?: number): string;
2480
+ /**
2481
+ * Resolves entity search display templates; coerces multi-language field values to readable text.
2482
+ */
2483
+ declare function resolveSearchDisplayTemplate(template: string | undefined, data: unknown, locale: string, translationService: AXTranslationService, formatService: AXFormatService, expressionEvaluator: AXPExpressionEvaluatorService): Promise<AXPMultiLanguageString>;
2484
+
2485
+ interface AXPEntitySearchTitleContext {
2486
+ /** Templates tried after the primary `searchResult.title` fails (`single.title`, lookup, individual). */
2487
+ fallbackTemplates: string[];
2488
+ /** Entity property paths tried when templates do not resolve (`lookup`, identifier, common fields). */
2489
+ fallbackFields: string[];
2490
+ }
2491
+ /**
2492
+ * Normalizes entity display templates for {@link AXPExpressionEvaluatorService}.
2493
+ * Converts `context.eval('path')`, single braces, and simple dot paths to `context.eval` segments.
2494
+ */
2495
+ declare function normalizeEntityDisplayTemplate(template: string): string;
2496
+ /** True when formatted text still contains unresolved template markers. */
2497
+ declare function isUnresolvedEntityDisplayTemplate(value: string): boolean;
2498
+ /**
2499
+ * Strips literal `undefined` / `null` tokens produced when expression segments are missing.
2500
+ */
2501
+ declare function sanitizeResolvedEntityDisplayTitle(value: string): string;
2502
+ /** True when a resolved title is non-empty and safe to show in search or entity chrome. */
2503
+ declare function isMeaningfulEntityDisplayTitle(value: string): boolean;
2504
+ /**
2505
+ * Builds entity-scoped fallback metadata for global search (registered on each entity search definition).
2506
+ */
2507
+ declare function buildEntitySearchTitleContext(entity: AXPEntity, primaryTemplate?: string): AXPEntitySearchTitleContext;
2508
+ /**
2509
+ * Row title template chain aligned with entity layouts.
2510
+ * Priority: `interfaces.master.single.title` → `formats.searchResult.title` → `formats.individual`.
2511
+ */
2512
+ declare function resolveEntityRowTitleTemplate(entity: AXPEntity | null | undefined): string | undefined;
2513
+ /**
2514
+ * Resolves an entity row title using entity-driven fallback templates and property paths.
2515
+ */
2516
+ declare function resolveEntitySearchTitleFallback(format: Pick<AXPSearchDefinitionDisplayFormat, 'titleFallbackTemplates' | 'titleFallbackFields'>, data: unknown, locale: string, translationService: AXTranslationService, formatService: AXFormatService, expressionEvaluator: AXPExpressionEvaluatorService): Promise<string>;
2517
+
1999
2518
  /**
2000
2519
  * Shared utility for creating Entity:Create command options used in search command providers.
2001
2520
  * Use with command: { name: 'Entity:Create', options: createEntityCommandOptions(...) }
@@ -2384,6 +2903,17 @@ declare class AXPSettingsEvaluatorScopeProvider implements AXPExpressionEvaluato
2384
2903
  provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
2385
2904
  }
2386
2905
 
2906
+ /**
2907
+ * Platform-provided {@link AXCalendarService} that applies locale profile week layout
2908
+ * (first day of week, weekends) through the core calendar service lifecycle.
2909
+ *
2910
+ * Temporary bridge until @acorex/components reads week layout from AXLocaleService.
2911
+ */
2912
+ declare class AXPRegionalCalendarService extends AXCalendarService {
2913
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPRegionalCalendarService, never>;
2914
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPRegionalCalendarService>;
2915
+ }
2916
+
2387
2917
  /**
2388
2918
  * Regional and locale-related setting keys used by platform widgets and components.
2389
2919
  * Most values use the `LocaleManagement:Setting:Regional.*` prefix; definitions live in the locale-management module where applicable.
@@ -2394,6 +2924,8 @@ declare enum AXPRegionalSetting {
2394
2924
  Language = "LocaleManagement:Setting:Regional.Language",
2395
2925
  Country = "LocaleManagement:Setting:Regional.Country",
2396
2926
  Calendar = "LocaleManagement:Setting:Regional.Calendar",
2927
+ /** User-selected holiday calendars shown on the task board and other calendar views. */
2928
+ CalendarEvents = "LocaleManagement:Setting:Regional.CalendarEvents",
2397
2929
  FirstDayOfWeek = "LocaleManagement:Setting:Regional.FirstDayOfWeek",
2398
2930
  WeekendDays = "LocaleManagement:Setting:Regional.WeekendDays",
2399
2931
  ShortDate = "LocaleManagement:Setting:Regional.ShortDate",
@@ -2413,6 +2945,84 @@ declare enum AXPRegionalSetting {
2413
2945
  MultiLanguageSupport = "LocaleManagement:Setting:Regional.MultiLanguageSupport"
2414
2946
  }
2415
2947
 
2948
+ interface AXPUnsavedChangesConfirmOptions {
2949
+ /** When false, skips confirm even if the global setting is enabled (e.g. dialog `confirmCloseWhenDirty`). */
2950
+ enabled?: boolean;
2951
+ title?: AXPMultiLanguageString;
2952
+ message?: AXPMultiLanguageString;
2953
+ /**
2954
+ * When true (default), confirming sets leave approval for the next route deactivation.
2955
+ * Set false for in-place actions such as discarding edits without navigating away.
2956
+ */
2957
+ approveLeaveOnConfirm?: boolean;
2958
+ }
2959
+ interface AXPUnsavedChangesCanDeactivate {
2960
+ canDeactivate(): boolean | Promise<boolean>;
2961
+ }
2962
+ declare class AXPUnsavedChangesConfirmService {
2963
+ private readonly settingsService;
2964
+ private readonly dialogService;
2965
+ private readonly translateService;
2966
+ /** Ensures concurrent leave paths share a single unsaved-changes confirm dialog. */
2967
+ private confirmPromise?;
2968
+ /** Set after the user confirms leaving; cleared on {@link NavigationEnd} by popstate handler. */
2969
+ private leaveConfirmed;
2970
+ /**
2971
+ * Whether the global "confirm unsaved changes" setting is enabled.
2972
+ */
2973
+ isGloballyEnabled(): Promise<boolean>;
2974
+ /**
2975
+ * Marks the next route deactivation as already approved (avoids a second prompt after in-app navigation).
2976
+ */
2977
+ markLeaveConfirmed(): void;
2978
+ /** True while an unsaved-changes confirm dialog is open or being resolved. */
2979
+ isConfirmPending(): boolean;
2980
+ /** Whether the user already approved leaving during the current navigation. */
2981
+ hasLeaveConfirmed(): boolean;
2982
+ /** Clears leave approval after navigation settles. */
2983
+ clearLeaveConfirmed(): void;
2984
+ consumeLeaveConfirmed(): boolean;
2985
+ /**
2986
+ * Prompts when `isDirty` and the global setting (and optional per-instance `enabled`) allow it.
2987
+ * Returns true when navigation/dismiss may proceed.
2988
+ */
2989
+ confirmIfDirty(isDirty: boolean, options?: AXPUnsavedChangesConfirmOptions): Promise<boolean>;
2990
+ private resolveConfirmIfDirty;
2991
+ private prompt;
2992
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPUnsavedChangesConfirmService, never>;
2993
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPUnsavedChangesConfirmService>;
2994
+ }
2995
+
2996
+ interface AXPUnsavedChangesPopstateSource {
2997
+ id: string;
2998
+ isDirty: () => boolean;
2999
+ }
3000
+ /**
3001
+ * Intercepts browser back/forward (`popstate`) when a registered page is dirty.
3002
+ * Captures dirty state synchronously on {@link NavigationStart}, restores the current URL
3003
+ * before route activation, prompts once, then re-triggers `history.back()` only if confirmed.
3004
+ */
3005
+ declare class AXPUnsavedChangesPopstateService {
3006
+ private readonly router;
3007
+ private readonly location;
3008
+ private readonly confirm;
3009
+ private readonly destroyRef;
3010
+ private sources;
3011
+ private committedUrl;
3012
+ private handling;
3013
+ constructor();
3014
+ registerSource(source: AXPUnsavedChangesPopstateSource): void;
3015
+ unregisterSource(id: string): void;
3016
+ /** True while a popstate back/forward is being intercepted or confirmed. */
3017
+ isHandlingPopstate(): boolean;
3018
+ private handlePopstateNavigation;
3019
+ private isDirty;
3020
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPUnsavedChangesPopstateService, never>;
3021
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPUnsavedChangesPopstateService>;
3022
+ }
3023
+
3024
+ declare function createUnsavedChangesCanDeactivateGuard<T extends AXPUnsavedChangesCanDeactivate>(): CanDeactivateFn<T>;
3025
+
2416
3026
  /**
2417
3027
  * Status Definition Types
2418
3028
  * Defines the structure for status definitions and their transitions
@@ -2974,9 +3584,36 @@ declare class AXPTokenEvaluatorScopeProvider implements AXPExpressionEvaluatorSc
2974
3584
  provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
2975
3585
  }
2976
3586
 
3587
+ interface AXPAppPathParts {
3588
+ segments: string[];
3589
+ queryParams?: Record<string, string>;
3590
+ fragment?: string;
3591
+ }
3592
+ /**
3593
+ * Splits an absolute app path (`/app/m/module/e/Entity/id/view`) into router command segments.
3594
+ * Prefer this over `navigate([fullPath])` or ambiguous single-segment navigation so browser history stays correct.
3595
+ */
3596
+ declare function axpParseAppPath(path: string): AXPAppPathParts;
3597
+ /** Navigates using explicit path segments (same pattern as entity preload filters). */
3598
+ declare function axpNavigateAppPath(router: Router, path: string, extras?: NavigationExtras): Promise<boolean>;
3599
+ /** True when a URL path is an entity master list route (`.../e/{Entity}/list`). */
3600
+ declare function axpIsEntityListPath(url: string): boolean;
3601
+ /** True when the current browser URL is an entity master list route (`.../e/{Entity}/list`). */
3602
+ declare function axpIsEntityListRoute(router: Router): boolean;
3603
+ /** True when a URL path is an entity details view route (`.../e/{Entity}/{id}/view`). */
3604
+ declare function axpIsEntityDetailsPath(url: string): boolean;
3605
+ /** True when the current browser URL is an entity details view route (`.../e/{Entity}/{id}/view`). */
3606
+ declare function axpIsEntityDetailsViewRoute(router: Router): boolean;
3607
+ /**
3608
+ * Merges query params on the current entity list route without pushing history.
3609
+ * Uses absolute path segments so a stale `relativeTo` cannot rewrite the active URL after navigating away.
3610
+ */
3611
+ declare function axpReplaceEntityListRouteQueryParams(router: Router, queryParams: Record<string, string | null | undefined>): void;
3612
+
2977
3613
  declare class AXPClipBoardService {
2978
- private toast;
2979
- copy(title: string, value: string): void;
3614
+ private readonly toast;
3615
+ private readonly translationService;
3616
+ copy(title: string, value: string): Promise<void>;
2980
3617
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPClipBoardService, never>;
2981
3618
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPClipBoardService>;
2982
3619
  }
@@ -3194,10 +3831,6 @@ declare class AXPReloadAction extends AXPWorkflowAction {
3194
3831
  declare class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {
3195
3832
  private router;
3196
3833
  execute(context: AXPWorkflowContext): Promise<void>;
3197
- /**
3198
- * Parses query parameters from a query string into an object.
3199
- */
3200
- private parseQueryParams;
3201
3834
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPWorkflowRouterNavigateAction, never>;
3202
3835
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowRouterNavigateAction>;
3203
3836
  }
@@ -3210,5 +3843,5 @@ declare class AXMWorkflowErrorHandler implements AXPErrorHandler {
3210
3843
  static ɵprov: i0.ɵɵInjectableDeclaration<AXMWorkflowErrorHandler>;
3211
3844
  }
3212
3845
 
3213
- export { ALL_DEFAULT_OPERATORS, AXMWorkflowErrorHandler, AXPAppVersionService, AXPCleanNestedFilters, AXPClipBoardService, AXPCommonModule, AXPCommonSettings, AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPDataProvider, AXPDebugService, AXPDefaultMultiLanguageConfigService, AXPDialogConfirmAction, AXPEntityCommandScope, AXPEntityQueryType, AXPEntityType, AXPErrorHandlerRegistryService, AXPExportService, AXPFileActionsService, AXPFileStorageEvaluatorScopeProvider, AXPFileStorageService, AXPFileStorageStatus, AXPFileTypeProviderService, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, AXPFooterTextSlotComponent, AXPGlobalErrorHandler, AXPHomePageModule, AXPHomePageService, AXPLockService, AXPMenuItemsDataSourceDefinition, AXPMenuMiddlewareRegistry, AXPMenuProviderService, AXPMenuSearchDefinitionProvider, AXPMenuSearchProvider, AXPMenuService, AXPMenuVisibilityService, AXPNavBarSlotComponent, AXPNavigateWorkflow, AXPOutputContractTranscriptSegmentService, AXPPlatformDefaultConfigs, AXPRedirectEvent, AXPRefreshEvent, AXPRegionalSetting, AXPRelationshipCardinality, AXPRelationshipKind, AXPReloadAction, AXPReloadEvent, AXPSearchCommandProvider, AXPSearchDefinitionActionBuilder, AXPSearchDefinitionBuilder, AXPSearchDefinitionProviderContext, AXPSearchDefinitionProviderService, AXPSearchService, AXPSettingDefaultValuesAggregatorService, AXPSettingDefinitionGroupBuilder, AXPSettingDefinitionProviderContext, AXPSettingDefinitionProviderService, AXPSettingDefinitionSectionBuilder, AXPSettingsEvaluatorScopeProvider, AXPSettingsService, AXPStatusDefinitionProviderService, AXPStatusProvider, AXPStickyDirective, AXPSystemStatusType, AXPSystemStatuses, AXPToastAction, AXPTokenDefinitionService, AXPTokenEvaluatorScopeProvider, AXPVersioningService, AXPWorkflowNavigateAction, AXPWorkflowRouterNavigateAction, AXP_AGENT_OUTPUT_CONTRACT_DEFAULT_STRUCTURED_RETRIES, AXP_APP_VERSION_PROVIDER, AXP_FILE_ACTION_PROVIDER, AXP_FILE_TYPE_INFO_PROVIDER, AXP_HOME_PAGES, AXP_HOME_PAGE_DEFAULT_KEY, AXP_LOCALE_MANAGEMENT_PORT, AXP_MENU_MIDDLEWARE, AXP_MENU_PROVIDER, AXP_OUTPUT_CONTRACT_TRANSCRIPT_SEGMENT_PROVIDER, AXP_PLATFORM_CONFIG_TOKEN, AXP_ROOT_CONFIG_TOKEN, AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER, AXP_SETTING_DEFAULT_VALUES_PROVIDERS, AXP_SETTING_DEFINITION_PROVIDER, AXP_SETTING_VALUE_PROVIDER, AXP_STATUS_PROVIDERS, AXP_TOKEN_DEFINITION_PROVIDER, AXVChangeType, BETWEEN_OPER, BOOLEAN_OPERATORS, CONTAINS_OPER, DATE_OPERATORS, DEFAULT_DATE_FILTER_PRESETS, DEFAULT_MULTILANGUAGE_FIELD_NAMES, ENDS_WITH_OPER, ENVIRONMENT, EQ_OPER, GTE_OPER, GT_OPER, IN_OPER, IS_EMPTY_OPER, IS_NOT_EMPTY_OPER, LTE_OPER, LT_OPER, MENU_ITEMS_DATASOURCE_NAME, MULTILANGUAGE_CAPABLE_WIDGET_TYPES, NOT_CONTAINS_OPER, NOT_EQ_OPER, NUMBER_OPERATORS, STARTS_WITH_OPER, STRING_OPERATORS, UploadFromComputerActionProvider, applyDateFilterPreset, coerceAXPSettingRawValue, coerceAXPSettingRawValueByKind, configPlatform, createAllQueryView, createEntityCommandOptions, createEntitySearchCommand, createMenuContext, createMenuMiddleware, createQueryView, findManualPresetIdByOperation, getEntityInfo, getStatusInfo, getSystemStatus, inferSettingCoercionKind, isCardFieldBadgeDisplay, peelSettingValueKey, provideDynamicHomePage, provideMenuMiddleware, resolveCardFieldBadgeColor, resolveDateFilterPresets, resolveDefaultMasterListLayout, resolveEnabledMasterListLayouts, resolveStatusLook, shouldApplyDefaultMultiLanguageToEntityProperty, shouldApplyDefaultMultiLanguageToWidgetNode, shouldApplyDefaultMultiLanguageToWidgetProperty, systemStatusToDefinition, withDefaultMultiLanguageOnWidgetNodeTree, withDefaultMultiLanguageOnWidgetProperty };
3214
- export type { AXCFileUploaderAction, AXCFileUploaderActionsPayload, AXCFileUploaderCapabilities, AXEntityPropertyWidget, AXPAgentOutputContract, AXPAgentOutputKind, AXPAgentResponseFormat, AXPAggregate, AXPAppVersion, AXPAppVersionProvider, AXPApplication, AXPCardBadgeColor, AXPCardBadgeDisplay, AXPCardBadgeDisplayOptions, AXPCardField, AXPCardFieldDisplay, AXPCardFieldDisplayConfig, AXPCategoryEntity, AXPColumnAlign, AXPColumnContentAlign, AXPCommandActionCallback, AXPCommandActionDisplay, AXPCommandActionLook, AXPCommandActionPriority, AXPCommandActionType, AXPCommonModuleConfigs, AXPCurrency, AXPDateTimeFilterPreset, AXPDateTimeFilterPresetKind, AXPDateTimeFilterValue, AXPDomToImageOptions, AXPEntity, AXPEntityAction, AXPEntityCommand, AXPEntityDetailListView, AXPEntityDisplayField, AXPEntityMasterCreateLayoutView, AXPEntityMasterLayoutView, AXPEntityMasterListDisplayMode, AXPEntityMasterListLayoutOption, AXPEntityMasterListLayoutType, AXPEntityMasterListView, AXPEntityMasterSingleLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityPage, AXPEntityProperty, AXPEntityPropertyCreateView, AXPEntityPropertyGroup, AXPEntityPropertyLayoutConfig, AXPEntityPropertyUpdateView, AXPEntityPropertyView, AXPEntityQuery, AXPEntityQuickCreate, AXPEntitySectionView, AXPEntityTableColumn, AXPEntityV2, AXPEntityVersionHistory, AXPErrorHandler, AXPFileActionProvider, AXPFileActionProviderToken, AXPFileExtension, AXPFileManyStorageInfo, AXPFileStorageCreateRequest, AXPFileStorageFindRequest, AXPFileStorageInfo, AXPFileStorageUpdateRequest, AXPFileType, AXPFileTypeInfoProvider, AXPFilterOperator, AXPGeoLocation, AXPGroupSearchResult, AXPHomePageDefinition, AXPJsonSchemaLike, AXPLanguage, AXPLocaleManagementPort, AXPLocaleProfile, AXPLockGetInfoRequest, AXPLockInfo, AXPLockRequest, AXPLockType, AXPMenuFinderResult, AXPMenuInsertion, AXPMenuItem, AXPMenuItemCommand, AXPMenuItemFinder, AXPMenuItemWithParent, AXPMenuMiddleware, AXPMenuMiddlewareContext, AXPMenuMiddlewareProvider, AXPMenuProvider, AXPMenuProviderContext, AXPMenuType, AXPModule, AXPOutputContractTranscriptSegmentDefinition, AXPOutputContractTranscriptSegmentProvider, AXPOutputContractTranscriptSegmentProviderToken, AXPOutputTranscriptSegmentId, AXPPlatformConfigs, AXPQueryFilter, AXPQuerySort, AXPQueryView, AXPRelatedEntity, AXPRelationship, AXPRootConfigs, AXPSearchAction, AXPSearchDefinition, AXPSearchDefinitionDisplayFormat, AXPSearchDefinitionProvider, AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPSearchDisplayResultForSave, AXPSearchParentResult, AXPSearchProvider, AXPSearchResult, AXPSettingChangedEvent, AXPSettingCoercionKind, AXPSettingDefaultValuesProvider, AXPSettingDefinition, AXPSettingDefinitionGroup, AXPSettingDefinitionProvider, AXPSettingDefinitionSection, AXPSettingLayoutOptions, AXPSettingMergedDefaults, AXPSettingValue, AXPSettingValueProvider, AXPSettingsServiceInterface, AXPStatusDefinition, AXPStatusTransition, AXPTimeZone, AXPTokenDefinition, AXPTokenDefinitionProvider, AXPTokenDefinitionProviderToken, AXPUnLockRequest, AXPVersionChange, AXPVersionEntry, AXPVersionStream, CanonicalChange, CanonicalChangeOp, VersionedFileInfo };
3846
+ 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, AXPFileStorageStatus, 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, 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, evaluateEntityDisplayTemplate, findManualPresetIdByOperation, getEntityInfo, getStatusInfo, getSystemStatus, inferSettingCoercionKind, isCardFieldBadgeDisplay, isMeaningfulEntityDisplayTitle, isUnresolvedEntityDisplayTemplate, normalizeEntityDisplayTemplate, peelSettingValueKey, provideDynamicHomePage, provideMenuMiddleware, resolveCardFieldBadgeColor, resolveDateFilterPresets, resolveDefaultMasterListLayout, resolveEnabledMasterListLayouts, resolveEntityRowTitleTemplate, resolveEntitySearchTitleFallback, resolveQueryMatchingDisplayText, resolveSearchDisplayTemplate, resolveSearchableText, resolveStatusLook, sanitizeResolvedEntityDisplayTitle, searchInRecordValues, searchInSearchableValue, shouldApplyDefaultMultiLanguageToEntityProperty, shouldApplyDefaultMultiLanguageToWidgetNode, shouldApplyDefaultMultiLanguageToWidgetProperty, systemStatusToDefinition, withDefaultMultiLanguageOnWidgetNodeTree, withDefaultMultiLanguageOnWidgetProperty };
3847
+ 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, AXPFileManyStorageInfo, AXPFileStorageCreateRequest, AXPFileStorageFindRequest, AXPFileStorageInfo, AXPFileStorageUpdateRequest, AXPFileType, AXPFileTypeInfoProvider, AXPFilterOperator, AXPGeoLocation, 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, AXPQueryFilter, AXPQuerySort, AXPQueryView, AXPRelatedEntity, AXPRelationship, AXPRootConfigs, AXPSearchAction, AXPSearchDefinition, AXPSearchDefinitionDisplayFormat, AXPSearchDefinitionProvider, AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPSearchDisplayResultForSave, AXPSearchParentResult, AXPSearchProvider, AXPSearchResult, AXPSettingChangedEvent, AXPSettingCoercionKind, AXPSettingDefaultValuesProvider, AXPSettingDefinition, AXPSettingDefinitionGroup, AXPSettingDefinitionProvider, AXPSettingDefinitionSection, AXPSettingLayoutOptions, AXPSettingMergedDefaults, AXPSettingValue, AXPSettingValueProvider, AXPSettingsServiceInterface, AXPStatusDefinition, AXPStatusTransition, AXPTimeZone, AXPTokenDefinition, AXPTokenDefinitionProvider, AXPTokenDefinitionProviderToken, AXPUnLockRequest, AXPUnsavedChangesCanDeactivate, AXPUnsavedChangesConfirmOptions, AXPUnsavedChangesPopstateSource, AXPVersionChange, AXPVersionEntry, AXPVersionStream, CanonicalChange, CanonicalChangeOp, VersionedFileInfo };