@acorex/platform 20.6.0-next.9 → 21.0.0-next.1

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 +9791 -6928
  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 +493 -129
  60. package/package.json +1 -1
  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/auth/index.d.ts CHANGED
@@ -1,15 +1,20 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, TemplateRef, ViewContainerRef, ModuleWithProviders, Injector } from '@angular/core';
3
- import { Observable } from 'rxjs';
4
- import { AXPLogoConfig, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex/platform/core';
3
+ import { AXPLogoConfig, AXPOptionsData, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex/platform/core';
5
4
  import { CanActivateFn } from '@angular/router';
5
+ import { Observable } from 'rxjs';
6
6
 
7
+ interface AXPEdition {
8
+ id: string;
9
+ title: string;
10
+ description?: string;
11
+ }
7
12
  interface AXPApplication {
8
13
  id: string;
9
14
  name: string;
10
15
  title?: string;
11
16
  version?: string;
12
- editionName?: string;
17
+ edition?: AXPEdition;
13
18
  description?: string;
14
19
  logo?: AXPLogoConfig;
15
20
  }
@@ -52,12 +57,12 @@ declare enum AXPSessionStatus {
52
57
  }
53
58
 
54
59
  interface AXPApplicationLoader {
55
- getList(context: AXPSessionContext): Observable<AXPApplication[]>;
60
+ getList(context: AXPSessionContext): Promise<AXPApplication[]>;
56
61
  }
57
62
  declare const AXP_APPLICATION_LOADER: InjectionToken<AXPApplicationLoader>;
58
63
 
59
64
  interface AXPTenantLoader {
60
- getList(context: AXPSessionContext): Observable<AXPTenant[]>;
65
+ getList(context: AXPSessionContext): Promise<AXPTenant[]>;
61
66
  }
62
67
  declare const AXP_TENANT_LOADER: InjectionToken<AXPTenantLoader>;
63
68
 
@@ -89,10 +94,16 @@ type AXPPermissionDefinition = {
89
94
  title: string;
90
95
  description?: string;
91
96
  children: AXPPermissionDefinition[];
97
+ /**
98
+ * Required features for this permission to be available.
99
+ * Format: Array of feature names (e.g., ['PlatformManagement.menu-customization'])
100
+ * If any required feature is not enabled, this permission will be filtered out.
101
+ */
102
+ requiredFeatures?: string[];
92
103
  };
93
104
 
94
105
  interface AXPPermissionLoader {
95
- getList(context: AXPSessionContext): Observable<AXPPermission[]>;
106
+ getList(context: AXPSessionContext): Promise<AXPPermission[]>;
96
107
  }
97
108
  declare const AXP_PERMISSION_LOADER: InjectionToken<AXPPermissionLoader>;
98
109
 
@@ -108,7 +119,7 @@ declare class AXPPermissionDefinitionGroupBuilder {
108
119
  private _group;
109
120
  get group(): AXPPermissionGroupDefinition;
110
121
  constructor(context: AXPPermissionDefinitionProviderContext, group: AXPPermissionGroupDefinition);
111
- addPermission(name: string, title: string, description?: string): AXPPermissionDefinitionBuilder;
122
+ addPermission(name: string, title: string, description?: string, requiredFeatures?: string[]): AXPPermissionDefinitionBuilder;
112
123
  endGroup(): AXPPermissionDefinitionProviderContext;
113
124
  findPermission(path: string): AXPPermissionDefinition | undefined;
114
125
  findGroup(name: string): AXPPermissionDefinitionGroupBuilder | undefined;
@@ -117,7 +128,12 @@ declare class AXPPermissionDefinitionBuilder {
117
128
  private groupBuilder;
118
129
  private permission;
119
130
  constructor(groupBuilder: AXPPermissionDefinitionGroupBuilder, permission: AXPPermissionDefinition);
120
- addChild(name: string, title: string, description?: string): AXPPermissionDefinitionBuilder;
131
+ addChild(name: string, title: string, description?: string, requiredFeatures?: string[]): AXPPermissionDefinitionBuilder;
132
+ /**
133
+ * Set required features for this permission.
134
+ * @param features - Array of feature names (e.g., ['PlatformManagement.menu-customization'])
135
+ */
136
+ requireFeatures(...features: string[]): AXPPermissionDefinitionBuilder;
121
137
  endPermission(): AXPPermissionDefinitionGroupBuilder;
122
138
  }
123
139
 
@@ -127,8 +143,19 @@ interface AXPPermissionDefinitionProvider {
127
143
  declare const AXP_PERMISSION_DEFINITION_PROVIDER: InjectionToken<AXPPermissionDefinitionProvider[]>;
128
144
  declare class AXPPermissionDefinitionService {
129
145
  private providers;
146
+ private providerRegistry;
147
+ private sessionService;
130
148
  private cache;
131
149
  private load;
150
+ /**
151
+ * Filter permissions based on required features.
152
+ * Removes permissions that have required features that are not enabled.
153
+ */
154
+ private filterByFeatures;
155
+ /**
156
+ * Recursively filter permissions and their children based on required features.
157
+ */
158
+ private filterPermissions;
132
159
  reload(): Promise<void>;
133
160
  getGroups(): Promise<AXPPermissionGroupDefinition[]>;
134
161
  getPermissions(): Promise<AXPPermissionDefinition[]>;
@@ -187,10 +214,14 @@ interface AXPFeature {
187
214
  title: string;
188
215
  description?: string;
189
216
  value?: any;
217
+ interface?: {
218
+ type: string;
219
+ options?: AXPOptionsData;
220
+ };
190
221
  }
191
222
 
192
223
  interface AXPFeatureLoader {
193
- getList(context: AXPSessionContext): Observable<AXPFeature[]>;
224
+ getList(context: AXPSessionContext): Promise<AXPFeature[]>;
194
225
  }
195
226
  declare const AXP_FEATURE_LOADER: InjectionToken<AXPFeatureLoader>;
196
227
 
@@ -210,6 +241,29 @@ declare class AXPFeatureDirective {
210
241
 
211
242
  declare const AXPFeatureGuard: CanActivateFn;
212
243
 
244
+ /**
245
+ * Interface for feature checkers that can override feature enablement results.
246
+ * Checkers receive the feature keys, current context, and base result,
247
+ * and can return a modified result based on custom logic.
248
+ */
249
+ interface AXPFeatureChecker {
250
+ /**
251
+ * Checks and potentially overrides the feature enablement result.
252
+ * @param keys - The feature keys being checked
253
+ * @param context - Current session context (user, tenant, application)
254
+ * @param baseResult - The result from the base feature check logic
255
+ * @returns The final feature enablement result (true or false)
256
+ */
257
+ check(keys: string[], context: AXPSessionContext, baseResult: boolean): boolean;
258
+ }
259
+
260
+ /**
261
+ * Optional injection token for feature checker.
262
+ * If provided, the checker will be called to potentially override
263
+ * feature enablement results based on custom logic.
264
+ */
265
+ declare const AXP_FEATURE_CHECKER: InjectionToken<AXPFeatureChecker>;
266
+
213
267
  declare class AXPSessionService {
214
268
  private eventService;
215
269
  private authStrategyRegistry;
@@ -218,6 +272,9 @@ declare class AXPSessionService {
218
272
  private readonly featureLoader;
219
273
  private readonly tenantLoader;
220
274
  private readonly applicationLoader;
275
+ private readonly moduleProviderLoader;
276
+ private readonly permissionChecker;
277
+ private readonly featureChecker;
221
278
  private status;
222
279
  readonly status$: Observable<AXPSessionStatus>;
223
280
  private isLoading;
@@ -259,7 +316,6 @@ declare class AXPSessionService {
259
316
  authorize(...keys: string[]): boolean;
260
317
  isFeatureEnabled(...keys: string[]): boolean;
261
318
  getToken(): string | undefined;
262
- private checkTokenValidation;
263
319
  getContext(): AXPSessionContext;
264
320
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPSessionService, never>;
265
321
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPSessionService>;
@@ -270,6 +326,29 @@ declare class AXPPermissionEvaluatorScopeProvider implements AXPExpressionEvalua
270
326
  provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void>;
271
327
  }
272
328
 
329
+ /**
330
+ * Interface for permission checkers that can override authorization results.
331
+ * Checkers receive the permission keys, current context, and base result,
332
+ * and can return a modified result based on custom logic.
333
+ */
334
+ interface AXPPermissionChecker {
335
+ /**
336
+ * Checks and potentially overrides the authorization result.
337
+ * @param keys - The permission keys being checked
338
+ * @param context - Current session context (user, tenant, application)
339
+ * @param baseResult - The result from the base authorization logic
340
+ * @returns The final authorization result (true or false)
341
+ */
342
+ check(keys: string[], context: AXPSessionContext, baseResult: boolean): boolean;
343
+ }
344
+
345
+ /**
346
+ * Optional injection token for permission checker.
347
+ * If provided, the checker will be called to potentially override
348
+ * authorization results based on custom logic.
349
+ */
350
+ declare const AXP_PERMISSION_CHECKER: InjectionToken<AXPPermissionChecker>;
351
+
273
352
  declare const AXPAuthGuard: CanActivateFn;
274
353
 
275
354
  interface AXPAuthModuleConfigs {
@@ -355,5 +434,5 @@ declare class AXPUnauthenticatedError extends Error {
355
434
  } | undefined);
356
435
  }
357
436
 
358
- export { AXPAuthGuard, AXPAuthModule, AXPAuthStrategy, AXPAuthStrategyRegistryService, AXPFeatureDirective, AXPFeatureGuard, AXPPermissionDefinitionBuilder, AXPPermissionDefinitionGroupBuilder, AXPPermissionDefinitionProviderContext, AXPPermissionDefinitionService, AXPPermissionDirective, AXPPermissionEvaluatorScopeProvider, AXPPermissionGuard, AXPSessionContext, AXPSessionService, AXPSessionStatus, AXPUnauthenticatedError, AXPUnauthorizedError, AXP_APPLICATION_LOADER, AXP_FEATURE_LOADER, AXP_PERMISSION_DEFINITION_PROVIDER, AXP_PERMISSION_LOADER, AXP_TENANT_LOADER, JwtUtil, PkceUtil, TimeUtil, initializeAppState };
359
- export type { AXPApplication, AXPApplicationLoader, AXPAuthModuleConfigs, AXPBaseCredentials, AXPFeature, AXPFeatureLoader, AXPPermission, AXPPermissionDefinition, AXPPermissionDefinitionProvider, AXPPermissionGroupDefinition, AXPPermissionLoader, AXPSessionData, AXPSignInResult, AXPTenant, AXPTenantLoader, AXPTokenResult, AXPUser };
437
+ export { AXPAuthGuard, AXPAuthModule, AXPAuthStrategy, AXPAuthStrategyRegistryService, AXPFeatureDirective, AXPFeatureGuard, AXPPermissionDefinitionBuilder, AXPPermissionDefinitionGroupBuilder, AXPPermissionDefinitionProviderContext, AXPPermissionDefinitionService, AXPPermissionDirective, AXPPermissionEvaluatorScopeProvider, AXPPermissionGuard, AXPSessionContext, AXPSessionService, AXPSessionStatus, AXPUnauthenticatedError, AXPUnauthorizedError, AXP_APPLICATION_LOADER, AXP_FEATURE_CHECKER, AXP_FEATURE_LOADER, AXP_PERMISSION_CHECKER, AXP_PERMISSION_DEFINITION_PROVIDER, AXP_PERMISSION_LOADER, AXP_TENANT_LOADER, JwtUtil, PkceUtil, TimeUtil, initializeAppState };
438
+ export type { AXPApplication, AXPApplicationLoader, AXPAuthModuleConfigs, AXPBaseCredentials, AXPEdition, AXPFeature, AXPFeatureChecker, AXPFeatureLoader, AXPPermission, AXPPermissionChecker, AXPPermissionDefinition, AXPPermissionDefinitionProvider, AXPPermissionGroupDefinition, AXPPermissionLoader, AXPSessionData, AXPSignInResult, AXPTenant, AXPTenantLoader, AXPTokenResult, AXPUser };