@acorex/platform 20.6.0-next.8 → 21.0.0-next.0

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 (88) hide show
  1. package/auth/index.d.ts +91 -12
  2. package/common/index.d.ts +615 -44
  3. package/core/index.d.ts +718 -422
  4. package/fesm2022/acorex-platform-auth.mjs +152 -39
  5. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-common.mjs +1009 -112
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-core.mjs +887 -408
  9. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-domain.mjs +99 -11
  11. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-builder.mjs +555 -492
  13. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-components.mjs +2446 -2733
  15. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-designer.mjs +9 -9
  17. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-entity.mjs +9708 -4721
  19. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-views.mjs +32 -26
  21. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-widget-core.mjs +252 -182
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  24. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs → acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs} +2 -2
  25. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs +30 -0
  27. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +1 -0
  28. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs} +2 -2
  29. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +1 -0
  30. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs} +2 -2
  31. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +1 -0
  32. package/fesm2022/acorex-platform-layout-widgets.mjs +9789 -6817
  33. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  34. package/fesm2022/acorex-platform-runtime.mjs +79 -3
  35. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  36. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +157 -0
  37. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs +1542 -0
  39. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +1 -0
  40. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +101 -0
  41. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs → acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs} +3 -3
  43. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-themes-default.mjs +282 -43
  45. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs +55 -0
  47. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +1 -0
  48. package/fesm2022/acorex-platform-themes-shared.mjs +42 -137
  49. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  50. package/fesm2022/acorex-platform-workflow.mjs +658 -45
  51. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  52. package/layout/builder/index.d.ts +10 -34
  53. package/layout/components/index.d.ts +694 -375
  54. package/layout/designer/index.d.ts +4 -4
  55. package/layout/entity/index.d.ts +802 -183
  56. package/layout/views/index.d.ts +5 -58
  57. package/layout/widget-core/index.d.ts +63 -75
  58. package/layout/widgets/README.md +0 -1
  59. package/layout/widgets/index.d.ts +498 -129
  60. package/package.json +5 -5
  61. package/runtime/index.d.ts +36 -8
  62. package/themes/default/index.d.ts +44 -75
  63. package/themes/shared/index.d.ts +11 -49
  64. package/workflow/index.d.ts +401 -90
  65. package/fesm2022/acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs +0 -52
  66. package/fesm2022/acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs.map +0 -1
  67. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs +0 -50
  68. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs.map +0 -1
  69. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs +0 -42
  70. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs +0 -55
  72. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs.map +0 -1
  73. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs +0 -50
  74. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs.map +0 -1
  75. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs +0 -48
  76. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs.map +0 -1
  77. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs +0 -42
  78. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs.map +0 -1
  79. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs.map +0 -1
  80. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs.map +0 -1
  81. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs.map +0 -1
  82. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-WbPPqDON.mjs +0 -115
  83. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-WbPPqDON.mjs.map +0 -1
  84. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CD7rJIMh.mjs +0 -803
  85. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CD7rJIMh.mjs.map +0 -1
  86. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs +0 -101
  87. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs.map +0 -1
  88. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/platform",
3
- "version": "20.6.0-next.8",
3
+ "version": "21.0.0-next.0",
4
4
  "peerDependencies": {
5
5
  "@acorex/cdk": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0",
6
6
  "@acorex/core": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0",
@@ -27,10 +27,6 @@
27
27
  "types": "./index.d.ts",
28
28
  "default": "./fesm2022/acorex-platform.mjs"
29
29
  },
30
- "./auth": {
31
- "types": "./auth/index.d.ts",
32
- "default": "./fesm2022/acorex-platform-auth.mjs"
33
- },
34
30
  "./common": {
35
31
  "types": "./common/index.d.ts",
36
32
  "default": "./fesm2022/acorex-platform-common.mjs"
@@ -39,6 +35,10 @@
39
35
  "types": "./core/index.d.ts",
40
36
  "default": "./fesm2022/acorex-platform-core.mjs"
41
37
  },
38
+ "./auth": {
39
+ "types": "./auth/index.d.ts",
40
+ "default": "./fesm2022/acorex-platform-auth.mjs"
41
+ },
42
42
  "./domain": {
43
43
  "types": "./domain/index.d.ts",
44
44
  "default": "./fesm2022/acorex-platform-domain.mjs"
@@ -1,14 +1,21 @@
1
+ import { AXPExecuteCommandResult, AXPViewDefinition, AXPMetaData } from '@acorex/platform/core';
1
2
  import * as i0 from '@angular/core';
2
3
  import { InjectionToken, Type, EnvironmentProviders, Provider } from '@angular/core';
3
- import { AXPViewDefinition, AXPMetaData } from '@acorex/platform/core';
4
4
  import { AXComponent } from '@acorex/cdk/common';
5
5
 
6
+ type AXPExecuteCommandResultPromise<TResult = any> = Promise<AXPExecuteCommandResult<TResult>>;
6
7
  interface AXPCommand<TInput = any, TResult = any> {
7
- execute(input: TInput): Promise<TResult>;
8
+ execute(input: TInput): AXPExecuteCommandResultPromise<TResult>;
8
9
  }
9
10
 
10
- type AXPCommandMiddleware<TInput = any, TResult = any> = (input: TInput, next: (input: TInput) => Promise<TResult>) => Promise<TResult>;
11
- declare function composeCommandMiddlewares<TInput, TResult>(middlewares: AXPCommandMiddleware<TInput, TResult>[]): (handler: (input: TInput) => Promise<TResult>) => (input: TInput) => Promise<TResult>;
11
+ /**
12
+ * Represents a middleware function in the command execution pipeline.
13
+ */
14
+ type AXPCommandMiddleware<TInput = any, TResult = any> = (input: TInput, next: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>) => Promise<AXPExecuteCommandResult<TResult>>;
15
+ /**
16
+ * Creates a composed handler by chaining the provided command middlewares.
17
+ */
18
+ declare function composeCommandMiddlewares<TInput, TResult>(middlewares: AXPCommandMiddleware<TInput, TResult>[]): (handler: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>) => (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>;
12
19
 
13
20
  declare class AXPCommandRegistry {
14
21
  private registry;
@@ -29,7 +36,8 @@ declare class AXPCommandExecutor {
29
36
  private readonly injector;
30
37
  private readonly registry;
31
38
  private readonly extensions;
32
- execute<TInput = any, TResult = any>(key: string, input: TInput): Promise<TResult | null>;
39
+ private readonly commandEvents;
40
+ execute<TInput = any, TResult = any>(key: string, input: TInput): Promise<AXPExecuteCommandResult<TResult> | null>;
33
41
  private getPluginMiddlewares;
34
42
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommandExecutor, never>;
35
43
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommandExecutor>;
@@ -44,7 +52,7 @@ declare class AXPCommandService {
44
52
  exists(key: string): boolean;
45
53
  getRegisteredKeys(): string[];
46
54
  clear(): void;
47
- execute<TInput = any, TResult = any>(key: string, input: TInput): Promise<TResult | null>;
55
+ execute<TInput = any, TResult = any>(key: string, input: TInput): Promise<AXPExecuteCommandResult<TResult> | null>;
48
56
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommandService, never>;
49
57
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommandService>;
50
58
  }
@@ -61,6 +69,7 @@ type AXPCommandLoader = {
61
69
  command: () => Type<AXPCommand> | Promise<Type<AXPCommand>>;
62
70
  };
63
71
  declare function provideCommandSetups(entries: AXPCommandLoader[]): EnvironmentProviders;
72
+ declare function provideCommand(key: string, loader: () => Type<AXPCommand> | Promise<Type<AXPCommand>>): EnvironmentProviders;
64
73
 
65
74
  declare const AXP_COMMAND_MIDDLEWARE_SETUP: InjectionToken<void>;
66
75
  type AXPCommandMiddlewareEntry = (AXPCommandMiddleware | {
@@ -69,6 +78,25 @@ type AXPCommandMiddlewareEntry = (AXPCommandMiddleware | {
69
78
  })[];
70
79
  declare function provideCommandMiddleware(entries: AXPCommandMiddlewareEntry): EnvironmentProviders;
71
80
 
81
+ type AXPCommandExecutionStage = 'before' | 'after';
82
+ interface AXPCommandExecutionEvent<TInput = unknown, TResult = unknown> {
83
+ stage: AXPCommandExecutionStage;
84
+ key: string;
85
+ input: TInput;
86
+ success?: boolean;
87
+ result?: AXPExecuteCommandResult<TResult> | null;
88
+ error?: unknown;
89
+ }
90
+ type CommandExecutionHandler<TInput, TResult> = (event: AXPCommandExecutionEvent<TInput, TResult>) => void;
91
+ declare class AXPCommandEventsService {
92
+ private readonly broadcast;
93
+ private readonly distributedEvents;
94
+ listen<TInput = unknown, TResult = unknown>(handler: CommandExecutionHandler<TInput, TResult>): () => void;
95
+ emit<TInput = unknown, TResult = unknown>(event: AXPCommandExecutionEvent<TInput, TResult>): Promise<void>;
96
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommandEventsService, never>;
97
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommandEventsService>;
98
+ }
99
+
72
100
  interface AXPQuery<TInput = any, TResult = any> {
73
101
  fetch(input: TInput): Promise<TResult>;
74
102
  }
@@ -275,5 +303,5 @@ declare class AXPRuntimeModule {
275
303
  static ɵinj: i0.ɵɵInjectorDeclaration<AXPRuntimeModule>;
276
304
  }
277
305
 
278
- export { AXPCommandExecutor, AXPCommandRegistry, AXPCommandService, AXPPolicyEngineContext, AXPPolicyEngineDirective, AXPPolicyEngineRegistry, AXPPolicyEngineService, AXPQueryExecutor, AXPQueryRegistry, AXPQueryService, AXPRuntimeModule, AXPViewExecutor, AXPViewRegistry, AXPViewService, AXP_COMMAND_EXTENSION, AXP_COMMAND_MIDDLEWARE_SETUP, AXP_COMMAND_SETUP, AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, AXP_POLICY_EXTENSION, AXP_QUERY_EXTENSION, AXP_QUERY_MIDDLEWARE_SETUP, AXP_QUERY_SETUP, AXP_VIEW_EXTENSION, AXP_VIEW_SETUP, composeCommandMiddlewares, composePolicyEngineMiddlewares, composeQueryMiddlewares, composeViewMiddlewares, provideCommandMiddleware, provideCommandSetups, providePolicySetups, provideQueryMiddleware, provideQuerySetups, provideViewSetup, provideViewSetups };
279
- export type { AXPCommand, AXPCommandExtension, AXPCommandMiddleware, AXPPolicy, AXPPolicyEngineMiddleware, AXPPolicyExtension, AXPQuery, AXPQueryExtension, AXPQueryMiddleware, AXPViewExtension, AXPViewMiddleware, AXPViewProvider };
306
+ export { AXPCommandEventsService, AXPCommandExecutor, AXPCommandRegistry, AXPCommandService, AXPPolicyEngineContext, AXPPolicyEngineDirective, AXPPolicyEngineRegistry, AXPPolicyEngineService, AXPQueryExecutor, AXPQueryRegistry, AXPQueryService, AXPRuntimeModule, AXPViewExecutor, AXPViewRegistry, AXPViewService, AXP_COMMAND_EXTENSION, AXP_COMMAND_MIDDLEWARE_SETUP, AXP_COMMAND_SETUP, AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, AXP_POLICY_EXTENSION, AXP_QUERY_EXTENSION, AXP_QUERY_MIDDLEWARE_SETUP, AXP_QUERY_SETUP, AXP_VIEW_EXTENSION, AXP_VIEW_SETUP, composeCommandMiddlewares, composePolicyEngineMiddlewares, composeQueryMiddlewares, composeViewMiddlewares, provideCommand, provideCommandMiddleware, provideCommandSetups, providePolicySetups, provideQueryMiddleware, provideQuerySetups, provideViewSetup, provideViewSetups };
307
+ export type { AXPCommand, AXPCommandExecutionEvent, AXPCommandExecutionStage, AXPCommandExtension, AXPCommandMiddleware, AXPExecuteCommandResultPromise, AXPPolicy, AXPPolicyEngineMiddleware, AXPPolicyExtension, AXPQuery, AXPQueryExtension, AXPQueryMiddleware, AXPViewExtension, AXPViewMiddleware, AXPViewProvider };
@@ -6,12 +6,13 @@ import { AXValueChangedEvent } from '@acorex/cdk/common';
6
6
  import { AXActionSheetService } from '@acorex/components/action-sheet';
7
7
  import { AXDataTableComponent, AXRowCommandItem, AXDataTableRowDbClick, AXRowCommandItemClickEvent } from '@acorex/components/data-table';
8
8
  import { AXUnsubscriber } from '@acorex/core/utils';
9
- import { AXPEntityCommandTriggerViewModel, AXPEntityDetailListViewModel } from '@acorex/platform/layout/entity';
10
9
  import * as _acorex_platform_core from '@acorex/platform/core';
10
+ import { AXPDeviceService } from '@acorex/platform/core';
11
+ import { AXPEntityCommandTriggerViewModel, AXPEntityDetailListViewModel } from '@acorex/platform/layout/entity';
11
12
  import * as _acorex_platform_common from '@acorex/platform/common';
12
- import { AXPMenuItem, AXPSettingService } from '@acorex/platform/common';
13
+ import { AXPMenuItem, AXPSettingsService, AXPMenuVisibilityService } from '@acorex/platform/common';
13
14
  import { AXPTaskBadgeService } from '@acorex/platform/layout/components';
14
- import { Router } from '@angular/router';
15
+ import { Router, UrlTree } from '@angular/router';
15
16
  import { AXDrawerComponent } from '@acorex/components/drawer';
16
17
 
17
18
  declare class AXPEntityDetailListViewComponent {
@@ -26,9 +27,6 @@ declare class AXPEntityDetailListViewComponent {
26
27
  family: string;
27
28
  size: string;
28
29
  }>;
29
- screenSize: _angular_core.Signal<_acorex_platform_themes_shared.AXPScreenSize>;
30
- deviceType: _angular_core.Signal<_acorex_platform_themes_shared.AXPDeviceType>;
31
- isTouchDevice: _angular_core.Signal<boolean>;
32
30
  overlayLoading: _angular_core.Signal<boolean>;
33
31
  navigationLoading: _angular_core.Signal<boolean>;
34
32
  overlayLoadingTaskCount: _angular_core.Signal<number>;
@@ -41,14 +39,6 @@ declare class AXPEntityDetailListViewComponent {
41
39
  isLightMode: _angular_core.Signal<boolean>;
42
40
  isSystemMode: _angular_core.Signal<boolean>;
43
41
  isSideMenuOpen: _angular_core.Signal<boolean>;
44
- isSideMenuOverlay: _angular_core.Signal<boolean>;
45
- isSmall: _angular_core.Signal<boolean>;
46
- isMedium: _angular_core.Signal<boolean>;
47
- isLarge: _angular_core.Signal<boolean>;
48
- isMobileDevice: _angular_core.Signal<boolean>;
49
- isTabletDevice: _angular_core.Signal<boolean>;
50
- isDesktopDevice: _angular_core.Signal<boolean>;
51
- isTouchScreen: _angular_core.Signal<boolean>;
52
42
  isOverlayLoading: _angular_core.Signal<boolean>;
53
43
  isNavigationLoading: _angular_core.Signal<boolean>;
54
44
  isMenuHorizontal: _angular_core.Signal<boolean>;
@@ -68,9 +58,6 @@ declare class AXPEntityDetailListViewComponent {
68
58
  family: string;
69
59
  size: string;
70
60
  };
71
- screenSize: _acorex_platform_themes_shared.AXPScreenSize;
72
- deviceType: _acorex_platform_themes_shared.AXPDeviceType;
73
- isTouchDevice: boolean;
74
61
  overlayLoading: boolean;
75
62
  navigationLoading: boolean;
76
63
  overlayLoadingTaskCount: number;
@@ -80,6 +67,7 @@ declare class AXPEntityDetailListViewComponent {
80
67
  menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
81
68
  isPrinting: boolean;
82
69
  }>;
70
+ protected deviceService: AXPDeviceService;
83
71
  protected toolbarPrimaryActions: _angular_core.WritableSignal<AXPEntityCommandTriggerViewModel[]>;
84
72
  protected toolbarSecondaryActions: _angular_core.WritableSignal<AXPEntityCommandTriggerViewModel[]>;
85
73
  vm: AXPEntityDetailListViewModel;
@@ -119,9 +107,6 @@ declare class AXPRootLayoutHeaderComponent {
119
107
  family: string;
120
108
  size: string;
121
109
  }>;
122
- screenSize: _angular_core.Signal<_acorex_platform_themes_shared.AXPScreenSize>;
123
- deviceType: _angular_core.Signal<_acorex_platform_themes_shared.AXPDeviceType>;
124
- isTouchDevice: _angular_core.Signal<boolean>;
125
110
  overlayLoading: _angular_core.Signal<boolean>;
126
111
  navigationLoading: _angular_core.Signal<boolean>;
127
112
  overlayLoadingTaskCount: _angular_core.Signal<number>;
@@ -134,14 +119,6 @@ declare class AXPRootLayoutHeaderComponent {
134
119
  isLightMode: _angular_core.Signal<boolean>;
135
120
  isSystemMode: _angular_core.Signal<boolean>;
136
121
  isSideMenuOpen: _angular_core.Signal<boolean>;
137
- isSideMenuOverlay: _angular_core.Signal<boolean>;
138
- isSmall: _angular_core.Signal<boolean>;
139
- isMedium: _angular_core.Signal<boolean>;
140
- isLarge: _angular_core.Signal<boolean>;
141
- isMobileDevice: _angular_core.Signal<boolean>;
142
- isTabletDevice: _angular_core.Signal<boolean>;
143
- isDesktopDevice: _angular_core.Signal<boolean>;
144
- isTouchScreen: _angular_core.Signal<boolean>;
145
122
  isOverlayLoading: _angular_core.Signal<boolean>;
146
123
  isNavigationLoading: _angular_core.Signal<boolean>;
147
124
  isMenuHorizontal: _angular_core.Signal<boolean>;
@@ -161,9 +138,6 @@ declare class AXPRootLayoutHeaderComponent {
161
138
  family: string;
162
139
  size: string;
163
140
  };
164
- screenSize: _acorex_platform_themes_shared.AXPScreenSize;
165
- deviceType: _acorex_platform_themes_shared.AXPDeviceType;
166
- isTouchDevice: boolean;
167
141
  overlayLoading: boolean;
168
142
  navigationLoading: boolean;
169
143
  overlayLoadingTaskCount: number;
@@ -214,13 +188,49 @@ declare class AXPRootLayoutMenuComponent {
214
188
  }>;
215
189
  protected router: Router;
216
190
  protected badgeService: AXPTaskBadgeService;
217
- protected settingService: AXPSettingService;
191
+ protected settingsService: AXPSettingsService;
192
+ protected visibilityService: AXPMenuVisibilityService;
218
193
  protected badgeVisible: _angular_core.WritableSignal<boolean>;
219
194
  constructor();
220
195
  ngOnInit(): Promise<void>;
221
- onMenuItemClick(item: AXPMenuItem): void;
196
+ onMenuItemClick(item: AXPMenuItem, hasRouterLink?: boolean): void;
222
197
  protected sort(items: AXPMenuItem[]): AXPMenuItem[];
223
198
  protected getMenuBadge(item: AXPMenuItem): Signal<number>;
199
+ /**
200
+ * Checks if a menu item should be visible based on permissions and features.
201
+ */
202
+ protected isItemVisible(item: AXPMenuItem): boolean;
203
+ /**
204
+ * Determines if a menu item should be rendered.
205
+ * A menu item should be rendered if:
206
+ * 1. It has a routerLink, OR
207
+ * 2. It has visible children, OR
208
+ * 3. It has a command (for non-router navigation)
209
+ */
210
+ protected shouldRenderMenuItem(item: AXPMenuItem): boolean;
211
+ /**
212
+ * Builds a UrlTree that can be consumed by the routerLink directive when the menu item targets
213
+ * an internal route. When the item does not represent an internal route, null is returned so the
214
+ * command execution pipeline remains responsible for navigation.
215
+ */
216
+ protected getRouterLink(item: AXPMenuItem): UrlTree | null;
217
+ /**
218
+ * Extracts internal navigation data regardless of whether it is provided via the legacy `path`
219
+ * property, a direct navigate command, or the execution command wrapper.
220
+ */
221
+ private extractRouterNavigation;
222
+ /**
223
+ * Determines whether routerLink can safely be used based on the target path and navigation
224
+ * extras. If the navigation requires additional runtime behaviour (e.g., opening in a new tab),
225
+ * we fallback to the imperative command pipeline.
226
+ */
227
+ private isRouterLinkCompatible;
228
+ /**
229
+ * Ensures router links include a leading slash while preserving any query parameters or
230
+ * fragments present in the original path.
231
+ */
232
+ private normalizeRouterPath;
233
+ private isExternalNavigation;
224
234
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRootLayoutMenuComponent, never>;
225
235
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPRootLayoutMenuComponent, "axp-side-menu", never, {}, {}, never, never, true, never>;
226
236
  }
@@ -250,9 +260,6 @@ declare class AXPRootHorizontalLayoutComponent {
250
260
  family: string;
251
261
  size: string;
252
262
  }>;
253
- screenSize: _angular_core.Signal<_acorex_platform_themes_shared.AXPScreenSize>;
254
- deviceType: _angular_core.Signal<_acorex_platform_themes_shared.AXPDeviceType>;
255
- isTouchDevice: _angular_core.Signal<boolean>;
256
263
  overlayLoading: _angular_core.Signal<boolean>;
257
264
  navigationLoading: _angular_core.Signal<boolean>;
258
265
  overlayLoadingTaskCount: _angular_core.Signal<number>;
@@ -265,14 +272,6 @@ declare class AXPRootHorizontalLayoutComponent {
265
272
  isLightMode: _angular_core.Signal<boolean>;
266
273
  isSystemMode: _angular_core.Signal<boolean>;
267
274
  isSideMenuOpen: _angular_core.Signal<boolean>;
268
- isSideMenuOverlay: _angular_core.Signal<boolean>;
269
- isSmall: _angular_core.Signal<boolean>;
270
- isMedium: _angular_core.Signal<boolean>;
271
- isLarge: _angular_core.Signal<boolean>;
272
- isMobileDevice: _angular_core.Signal<boolean>;
273
- isTabletDevice: _angular_core.Signal<boolean>;
274
- isDesktopDevice: _angular_core.Signal<boolean>;
275
- isTouchScreen: _angular_core.Signal<boolean>;
276
275
  isOverlayLoading: _angular_core.Signal<boolean>;
277
276
  isNavigationLoading: _angular_core.Signal<boolean>;
278
277
  isMenuHorizontal: _angular_core.Signal<boolean>;
@@ -292,9 +291,6 @@ declare class AXPRootHorizontalLayoutComponent {
292
291
  family: string;
293
292
  size: string;
294
293
  };
295
- screenSize: _acorex_platform_themes_shared.AXPScreenSize;
296
- deviceType: _acorex_platform_themes_shared.AXPDeviceType;
297
- isTouchDevice: boolean;
298
294
  overlayLoading: boolean;
299
295
  navigationLoading: boolean;
300
296
  overlayLoadingTaskCount: number;
@@ -335,9 +331,6 @@ declare class AXPRootVerticalLayoutComponent {
335
331
  family: string;
336
332
  size: string;
337
333
  }>;
338
- screenSize: _angular_core.Signal<_acorex_platform_themes_shared.AXPScreenSize>;
339
- deviceType: _angular_core.Signal<_acorex_platform_themes_shared.AXPDeviceType>;
340
- isTouchDevice: _angular_core.Signal<boolean>;
341
334
  overlayLoading: _angular_core.Signal<boolean>;
342
335
  navigationLoading: _angular_core.Signal<boolean>;
343
336
  overlayLoadingTaskCount: _angular_core.Signal<number>;
@@ -350,14 +343,6 @@ declare class AXPRootVerticalLayoutComponent {
350
343
  isLightMode: _angular_core.Signal<boolean>;
351
344
  isSystemMode: _angular_core.Signal<boolean>;
352
345
  isSideMenuOpen: _angular_core.Signal<boolean>;
353
- isSideMenuOverlay: _angular_core.Signal<boolean>;
354
- isSmall: _angular_core.Signal<boolean>;
355
- isMedium: _angular_core.Signal<boolean>;
356
- isLarge: _angular_core.Signal<boolean>;
357
- isMobileDevice: _angular_core.Signal<boolean>;
358
- isTabletDevice: _angular_core.Signal<boolean>;
359
- isDesktopDevice: _angular_core.Signal<boolean>;
360
- isTouchScreen: _angular_core.Signal<boolean>;
361
346
  isOverlayLoading: _angular_core.Signal<boolean>;
362
347
  isNavigationLoading: _angular_core.Signal<boolean>;
363
348
  isMenuHorizontal: _angular_core.Signal<boolean>;
@@ -377,9 +362,6 @@ declare class AXPRootVerticalLayoutComponent {
377
362
  family: string;
378
363
  size: string;
379
364
  };
380
- screenSize: _acorex_platform_themes_shared.AXPScreenSize;
381
- deviceType: _acorex_platform_themes_shared.AXPDeviceType;
382
- isTouchDevice: boolean;
383
365
  overlayLoading: boolean;
384
366
  navigationLoading: boolean;
385
367
  overlayLoadingTaskCount: number;
@@ -389,6 +371,7 @@ declare class AXPRootVerticalLayoutComponent {
389
371
  menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
390
372
  isPrinting: boolean;
391
373
  }>;
374
+ protected deviceService: AXPDeviceService;
392
375
  protected router: Router;
393
376
  constructor();
394
377
  protected handleResizingEnded(e: AXValueChangedEvent<number>): void;
@@ -405,9 +388,6 @@ declare class AXPRootLayoutComponent {
405
388
  family: string;
406
389
  size: string;
407
390
  }>;
408
- screenSize: _angular_core.Signal<_acorex_platform_themes_shared.AXPScreenSize>;
409
- deviceType: _angular_core.Signal<_acorex_platform_themes_shared.AXPDeviceType>;
410
- isTouchDevice: _angular_core.Signal<boolean>;
411
391
  overlayLoading: _angular_core.Signal<boolean>;
412
392
  navigationLoading: _angular_core.Signal<boolean>;
413
393
  overlayLoadingTaskCount: _angular_core.Signal<number>;
@@ -420,14 +400,6 @@ declare class AXPRootLayoutComponent {
420
400
  isLightMode: _angular_core.Signal<boolean>;
421
401
  isSystemMode: _angular_core.Signal<boolean>;
422
402
  isSideMenuOpen: _angular_core.Signal<boolean>;
423
- isSideMenuOverlay: _angular_core.Signal<boolean>;
424
- isSmall: _angular_core.Signal<boolean>;
425
- isMedium: _angular_core.Signal<boolean>;
426
- isLarge: _angular_core.Signal<boolean>;
427
- isMobileDevice: _angular_core.Signal<boolean>;
428
- isTabletDevice: _angular_core.Signal<boolean>;
429
- isDesktopDevice: _angular_core.Signal<boolean>;
430
- isTouchScreen: _angular_core.Signal<boolean>;
431
403
  isOverlayLoading: _angular_core.Signal<boolean>;
432
404
  isNavigationLoading: _angular_core.Signal<boolean>;
433
405
  isMenuHorizontal: _angular_core.Signal<boolean>;
@@ -447,9 +419,6 @@ declare class AXPRootLayoutComponent {
447
419
  family: string;
448
420
  size: string;
449
421
  };
450
- screenSize: _acorex_platform_themes_shared.AXPScreenSize;
451
- deviceType: _acorex_platform_themes_shared.AXPDeviceType;
452
- isTouchDevice: boolean;
453
422
  overlayLoading: boolean;
454
423
  navigationLoading: boolean;
455
424
  overlayLoadingTaskCount: number;
@@ -26,16 +26,6 @@ declare enum AXPThemeMode {
26
26
  Dark = "dark",
27
27
  System = "system"
28
28
  }
29
- declare enum AXPScreenSize {
30
- Small = "small",
31
- Medium = "medium",
32
- Large = "large"
33
- }
34
- declare enum AXPDeviceType {
35
- Mobile = "mobile",
36
- Tablet = "tablet",
37
- Desktop = "desktop"
38
- }
39
29
  declare enum AXPSideMenuState {
40
30
  Opened = "opened",
41
31
  Closed = "closed"
@@ -54,9 +44,6 @@ declare class AXPThemeSlotComponent {
54
44
  family: string;
55
45
  size: string;
56
46
  }>;
57
- screenSize: _angular_core.Signal<_acorex_platform_themes_shared.AXPScreenSize>;
58
- deviceType: _angular_core.Signal<_acorex_platform_themes_shared.AXPDeviceType>;
59
- isTouchDevice: _angular_core.Signal<boolean>;
60
47
  overlayLoading: _angular_core.Signal<boolean>;
61
48
  navigationLoading: _angular_core.Signal<boolean>;
62
49
  overlayLoadingTaskCount: _angular_core.Signal<number>;
@@ -69,14 +56,6 @@ declare class AXPThemeSlotComponent {
69
56
  isLightMode: _angular_core.Signal<boolean>;
70
57
  isSystemMode: _angular_core.Signal<boolean>;
71
58
  isSideMenuOpen: _angular_core.Signal<boolean>;
72
- isSideMenuOverlay: _angular_core.Signal<boolean>;
73
- isSmall: _angular_core.Signal<boolean>;
74
- isMedium: _angular_core.Signal<boolean>;
75
- isLarge: _angular_core.Signal<boolean>;
76
- isMobileDevice: _angular_core.Signal<boolean>;
77
- isTabletDevice: _angular_core.Signal<boolean>;
78
- isDesktopDevice: _angular_core.Signal<boolean>;
79
- isTouchScreen: _angular_core.Signal<boolean>;
80
59
  isOverlayLoading: _angular_core.Signal<boolean>;
81
60
  isNavigationLoading: _angular_core.Signal<boolean>;
82
61
  isMenuHorizontal: _angular_core.Signal<boolean>;
@@ -96,9 +75,6 @@ declare class AXPThemeSlotComponent {
96
75
  family: string;
97
76
  size: string;
98
77
  };
99
- screenSize: _acorex_platform_themes_shared.AXPScreenSize;
100
- deviceType: _acorex_platform_themes_shared.AXPDeviceType;
101
- isTouchDevice: boolean;
102
78
  overlayLoading: boolean;
103
79
  navigationLoading: boolean;
104
80
  overlayLoadingTaskCount: number;
@@ -129,9 +105,6 @@ declare const AXPLayoutThemeService: _angular_core.Type<{
129
105
  family: string;
130
106
  size: string;
131
107
  }>;
132
- screenSize: _angular_core.Signal<AXPScreenSize>;
133
- deviceType: _angular_core.Signal<AXPDeviceType>;
134
- isTouchDevice: _angular_core.Signal<boolean>;
135
108
  overlayLoading: _angular_core.Signal<boolean>;
136
109
  navigationLoading: _angular_core.Signal<boolean>;
137
110
  overlayLoadingTaskCount: _angular_core.Signal<number>;
@@ -144,14 +117,6 @@ declare const AXPLayoutThemeService: _angular_core.Type<{
144
117
  isLightMode: _angular_core.Signal<boolean>;
145
118
  isSystemMode: _angular_core.Signal<boolean>;
146
119
  isSideMenuOpen: _angular_core.Signal<boolean>;
147
- isSideMenuOverlay: _angular_core.Signal<boolean>;
148
- isSmall: _angular_core.Signal<boolean>;
149
- isMedium: _angular_core.Signal<boolean>;
150
- isLarge: _angular_core.Signal<boolean>;
151
- isMobileDevice: _angular_core.Signal<boolean>;
152
- isTabletDevice: _angular_core.Signal<boolean>;
153
- isDesktopDevice: _angular_core.Signal<boolean>;
154
- isTouchScreen: _angular_core.Signal<boolean>;
155
120
  isOverlayLoading: _angular_core.Signal<boolean>;
156
121
  isNavigationLoading: _angular_core.Signal<boolean>;
157
122
  isMenuHorizontal: _angular_core.Signal<boolean>;
@@ -171,9 +136,6 @@ declare const AXPLayoutThemeService: _angular_core.Type<{
171
136
  family: string;
172
137
  size: string;
173
138
  };
174
- screenSize: AXPScreenSize;
175
- deviceType: AXPDeviceType;
176
- isTouchDevice: boolean;
177
139
  overlayLoading: boolean;
178
140
  navigationLoading: boolean;
179
141
  overlayLoadingTaskCount: number;
@@ -185,16 +147,16 @@ declare const AXPLayoutThemeService: _angular_core.Type<{
185
147
  }>>;
186
148
 
187
149
  declare enum AXPThemeLayoutSetting {
188
- Name = "layout:theme:name",
189
- Layout = "layout:theme:layout",
190
- Font = "layout:theme:font:family",
191
- FontSize = "layout:theme:font:size",
192
- Palette = "layout:theme:palette",
193
- Mode = "layout:theme:mode",
194
- SideMenuStatus = "layout:theme:sidemenu:status",
195
- SideMenuWidth = "layout:theme:sidemenu:width",
196
- MenuOrientation = "layout:theme:root-menu:direction",
197
- MenuBadgeVisible = "layout:theme:root-menu:badge"
150
+ Name = "Common:Setting:Layout.Name",
151
+ Layout = "Common:Setting:Layout.Layout",
152
+ Font = "Common:Setting:Layout.Font.Family",
153
+ FontSize = "Common:Setting:Layout.Font.Size",
154
+ Palette = "Common:Setting:Layout.Palette",
155
+ Mode = "Common:Setting:Layout.Mode",
156
+ SideMenuStatus = "Common:Setting:Layout.SideMenu.Status",
157
+ SideMenuWidth = "Common:Setting:Layout.SideMenu.Width",
158
+ MenuOrientation = "Common:Setting:Layout.RootMenu.Direction",
159
+ MenuBadgeVisible = "Common:Setting:Layout.RootMenu.Badge"
198
160
  }
199
161
 
200
162
  declare class AXPThemesSharedModule {
@@ -204,5 +166,5 @@ declare class AXPThemesSharedModule {
204
166
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPThemesSharedModule>;
205
167
  }
206
168
 
207
- export { AXPDeviceType, AXPLayoutThemeService, AXPMenuOrientation, AXPScreenSize, AXPSideMenuState, AXPThemeLayoutSetting, AXPThemeMode, AXPThemePaletteProviderDefault, AXPThemeSlotComponent, AXPThemesSharedModule, AXP_THEME_PALETTE_PROVIDER };
169
+ export { AXPLayoutThemeService, AXPMenuOrientation, AXPSideMenuState, AXPThemeLayoutSetting, AXPThemeMode, AXPThemePaletteProviderDefault, AXPThemeSlotComponent, AXPThemesSharedModule, AXP_THEME_PALETTE_PROVIDER };
208
170
  export type { AXPThemePalette, AXPThemePaletteColors, AXPThemePaletteProvider };