@acorex/platform 21.0.0-next.2 → 21.0.0-next.3

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 (69) hide show
  1. package/auth/index.d.ts +97 -238
  2. package/common/index.d.ts +778 -213
  3. package/core/index.d.ts +562 -433
  4. package/fesm2022/acorex-platform-auth.mjs +160 -200
  5. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-common.mjs +1012 -125
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-core.mjs +685 -400
  9. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-domain.mjs +54 -11
  11. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-builder.mjs +412 -270
  13. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-components.mjs +2112 -3153
  15. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-designer.mjs +7 -7
  17. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-entity.mjs +756 -648
  19. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-views.mjs +4 -4
  21. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-widget-core.mjs +248 -174
  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-tabular-data-edit-popup.component-m8rHZP8L.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs} +2 -2
  27. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +1 -0
  28. package/fesm2022/acorex-platform-layout-widgets.mjs +3058 -1038
  29. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  30. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs → acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs} +26 -5
  31. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +1 -0
  32. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-Cym8pq0v.mjs → acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs} +4 -5
  33. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +1 -0
  34. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +101 -0
  35. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +1 -0
  36. 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
  37. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-themes-default.mjs +166 -30
  39. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  40. package/fesm2022/acorex-platform-themes-shared.mjs +27 -27
  41. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  42. package/layout/builder/index.d.ts +4 -1
  43. package/layout/components/index.d.ts +405 -327
  44. package/layout/designer/index.d.ts +3 -3
  45. package/layout/entity/index.d.ts +163 -108
  46. package/layout/widget-core/index.d.ts +39 -49
  47. package/layout/widgets/index.d.ts +368 -54
  48. package/package.json +5 -5
  49. package/themes/default/index.d.ts +15 -2
  50. package/themes/shared/index.d.ts +10 -10
  51. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs +0 -50
  52. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs.map +0 -1
  53. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs +0 -42
  54. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs.map +0 -1
  55. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs +0 -55
  56. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs.map +0 -1
  57. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs +0 -50
  58. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs.map +0 -1
  59. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs +0 -48
  60. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs.map +0 -1
  61. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs +0 -42
  62. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs.map +0 -1
  63. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs.map +0 -1
  64. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.mjs.map +0 -1
  65. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs.map +0 -1
  66. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-Cym8pq0v.mjs.map +0 -1
  67. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs +0 -101
  68. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs.map +0 -1
  69. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs.map +0 -1
package/core/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Type, InjectionToken, OnInit, ElementRef, EventEmitter, OnChanges, Renderer2, SimpleChanges, ViewContainerRef, OnDestroy, PipeTransform } from '@angular/core';
2
+ import { Type, InjectionToken, OnInit, ElementRef, EventEmitter, OnChanges, Renderer2, SimpleChanges, ViewContainerRef, OnDestroy, Injector, PipeTransform } from '@angular/core';
3
3
  import { AXStyleColorType, AXDataSource, AXDataSourceSortOption, AXDataSourceFilterOption, AXDataSourceQuery, AXDataSourceCallbackResult } from '@acorex/cdk/common';
4
4
  import * as _ngrx_signals from '@ngrx/signals';
5
5
  import { Observable } from 'rxjs';
@@ -924,6 +924,8 @@ interface AXPValueUnits {
924
924
  interface AXPEntityReference {
925
925
  id: string;
926
926
  type: string;
927
+ title?: string;
928
+ metadata?: AXPMetaData;
927
929
  }
928
930
  interface AXPUserReference {
929
931
  id: string;
@@ -1002,19 +1004,14 @@ interface AXPFileListItem {
1002
1004
  source?: AXPFileSource;
1003
1005
  }
1004
1006
 
1005
- type AXPFilterOperation = {
1006
- type: 'equal' | 'isNull' | 'isEmpty' | 'lt' | 'lte' | 'gt' | 'gte' | 'startsWith' | 'endsWith' | 'contains' | 'in';
1007
- negative?: boolean;
1008
- };
1009
- type AXPFilterLogic = 'and' | 'or';
1010
- interface AXPFilterDefinition {
1007
+ interface AXPFilterClause extends AXDataSourceFilterOption {
1008
+ id?: string;
1009
+ order?: number;
1010
+ filters?: AXPFilterClause[];
1011
+ }
1012
+ interface AXPFilterDefinition extends AXPFilterClause {
1011
1013
  title: string;
1012
- field: string;
1013
- value?: unknown;
1014
1014
  isParametric?: boolean;
1015
- operator: AXPFilterOperation;
1016
- logic?: AXPFilterLogic;
1017
- filters?: AXPFilterDefinition[];
1018
1015
  icon?: string;
1019
1016
  widget: {
1020
1017
  type: string;
@@ -1035,6 +1032,7 @@ type AXPActionMenuItem = {
1035
1032
  name?: string;
1036
1033
  title: string;
1037
1034
  icon?: string;
1035
+ iconOnly?: boolean;
1038
1036
  color?: string;
1039
1037
  break?: boolean;
1040
1038
  items?: AXPActionMenuItem[];
@@ -1141,6 +1139,11 @@ declare class AXPComponentLogoConfig implements AXPLogoConfig {
1141
1139
  width?: number | undefined;
1142
1140
  constructor(component: Type<any>);
1143
1141
  }
1142
+ declare class AXPIconLogoConfig implements AXPLogoConfig {
1143
+ icon: string;
1144
+ color?: string | undefined;
1145
+ constructor(icon: string, color?: string | undefined);
1146
+ }
1144
1147
 
1145
1148
  type AXPPlatformScopeKey = 'C' | 'G' | 'P' | 'T' | 'U';
1146
1149
  declare enum AXPPlatformScope {
@@ -1445,6 +1448,11 @@ declare class AXPColorPaletteService {
1445
1448
  * Reload palettes from all providers
1446
1449
  */
1447
1450
  reload(): Promise<void>;
1451
+ /**
1452
+ * Get the default palette (material-design) or fallback colors
1453
+ * @returns Promise of default palette, never returns undefined
1454
+ */
1455
+ getDefaultPalette(): Promise<AXPColorPalette>;
1448
1456
  /**
1449
1457
  * Load palettes from all providers
1450
1458
  */
@@ -1529,6 +1537,7 @@ declare class AXPDataGenerator {
1529
1537
  static city(): string;
1530
1538
  static state(): string;
1531
1539
  static address(): string;
1540
+ static avatar(): string;
1532
1541
  }
1533
1542
 
1534
1543
  type AXPValueTransformerFunction = (value: any) => any;
@@ -1559,6 +1568,7 @@ interface AXPDataSourceDefinition<T = any> {
1559
1568
  columns: AXPDataSourceDataFieldDefinition[];
1560
1569
  filters: AXPFilterDefinition[];
1561
1570
  samples?: any[];
1571
+ visible?: boolean;
1562
1572
  source: () => AXDataSource<T> | Promise<AXDataSource<T>>;
1563
1573
  }
1564
1574
  interface AXPDataSourceDefinitionProvider {
@@ -1567,6 +1577,7 @@ interface AXPDataSourceDefinitionProvider {
1567
1577
  declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDefinitionProvider[]>;
1568
1578
  declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
1569
1579
  private providers;
1580
+ private providerRegistry;
1570
1581
  items(): Promise<AXPDataSourceDefinition[]>;
1571
1582
  get(name: string): Promise<AXPDataSourceDefinition | undefined>;
1572
1583
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
@@ -1623,6 +1634,69 @@ declare class AXPContentCheckerDirective {
1623
1634
  static ɵdir: i0.ɵɵDirectiveDeclaration<AXPContentCheckerDirective, "[axp-content-checker]", ["checker"], {}, {}, never, never, true, never>;
1624
1635
  }
1625
1636
 
1637
+ /**
1638
+ * Fullscreen directive that provides CSS-based fullscreen functionality
1639
+ * Usage: <element axFullscreen #fullscreen="axFullscreen"></element>
1640
+ * Then: fullscreen.toggle() or fullscreen.enter() or fullscreen.exit()
1641
+ */
1642
+ declare class AXFullscreenDirective implements OnDestroy {
1643
+ private elementRef;
1644
+ /**
1645
+ * Current fullscreen state
1646
+ */
1647
+ private readonly isFullscreenState;
1648
+ /**
1649
+ * Original element styles to restore
1650
+ */
1651
+ private originalStyles;
1652
+ /**
1653
+ * Original parent element reference
1654
+ */
1655
+ private originalParent;
1656
+ /**
1657
+ * Fullscreen container element
1658
+ */
1659
+ private fullscreenContainer;
1660
+ /**
1661
+ * Fullscreen change event
1662
+ */
1663
+ readonly fullscreenChange: i0.OutputEmitterRef<boolean>;
1664
+ private readonly destroyRef;
1665
+ private readonly renderer;
1666
+ constructor(elementRef: ElementRef<HTMLElement>);
1667
+ /**
1668
+ * Toggle fullscreen state
1669
+ */
1670
+ toggle(): Promise<void>;
1671
+ /**
1672
+ * Enter fullscreen mode using CSS
1673
+ */
1674
+ enter(): Promise<void>;
1675
+ /**
1676
+ * Exit fullscreen mode
1677
+ */
1678
+ exit(): Promise<void>;
1679
+ /**
1680
+ * Check if currently in fullscreen mode
1681
+ */
1682
+ isFullscreen(): boolean;
1683
+ /**
1684
+ * Store original element styles
1685
+ */
1686
+ private storeOriginalStyles;
1687
+ /**
1688
+ * Restore original element styles
1689
+ */
1690
+ private restoreOriginalStyles;
1691
+ /**
1692
+ * Convert camelCase to kebab-case for CSS properties
1693
+ */
1694
+ private camelToKebabCase;
1695
+ ngOnDestroy(): void;
1696
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXFullscreenDirective, never>;
1697
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXFullscreenDirective, "[axFullscreen]", ["axFullscreen"], {}, { "fullscreenChange": "fullscreenChange"; }, never, never, true, never>;
1698
+ }
1699
+
1626
1700
  type AXPDistributedEventListenerProviderToken<T> = AXPDistributedEventListenerProvider<T> | Promise<AXPDistributedEventListenerProvider<T>>;
1627
1701
  declare const AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER: InjectionToken<AXPDistributedEventListenerProviderToken<any>[]>;
1628
1702
  interface AXPDistributedEventListenerProvider<TInput = any, TOutput = void> {
@@ -1780,524 +1854,579 @@ declare class AXPHookService {
1780
1854
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPHookService>;
1781
1855
  }
1782
1856
 
1783
- interface AXPStartUpTask {
1784
- name: string;
1785
- statusText: string;
1786
- priority: number;
1787
- run: () => Promise<void>;
1788
- }
1789
-
1790
- declare class AXPAppStartUpService {
1791
- private tasks;
1792
- registerTask(task: AXPStartUpTask): void;
1793
- runAllTasks(): Promise<void>;
1794
- private updateStatus;
1795
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPAppStartUpService, never>;
1796
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPAppStartUpService>;
1857
+ /**
1858
+ * Feature definition in module manifest.
1859
+ * Defines available features with default values.
1860
+ */
1861
+ interface AXPModuleFeatureDefinition {
1862
+ /**
1863
+ * Feature title (translation key or literal)
1864
+ */
1865
+ title: string;
1866
+ /**
1867
+ * Feature description (translation key or literal)
1868
+ */
1869
+ description?: string;
1870
+ /**
1871
+ * Default value for the feature.
1872
+ * Used when user doesn't have explicit feature value.
1873
+ */
1874
+ defaultValue: boolean | number | string | string[] | null;
1875
+ /**
1876
+ * Type hint for validation and UI rendering
1877
+ */
1878
+ type?: 'boolean' | 'number' | 'string' | 'array';
1879
+ /**
1880
+ * Widget interface for feature configuration UI (optional)
1881
+ */
1882
+ interface?: {
1883
+ type: string;
1884
+ options?: Record<string, any>;
1885
+ };
1797
1886
  }
1798
- declare const AXPAppStartUpProvider: i0.EnvironmentProviders;
1799
-
1800
1887
  /**
1801
- * Status Definition Types
1802
- * Defines the structure for status definitions and their transitions
1888
+ * Feature definition in array format (with key).
1889
+ * Used when features are defined as an array in manifest.
1803
1890
  */
1804
-
1891
+ interface AXPModuleFeatureDefinitionWithKey extends AXPModuleFeatureDefinition {
1892
+ /**
1893
+ * Full feature key (ModuleName.FeatureKey format).
1894
+ * When using array format, this must be provided.
1895
+ */
1896
+ key: string;
1897
+ }
1805
1898
  /**
1806
- * Status definition with metadata
1899
+ * Module manifest structure.
1900
+ * Defines module metadata, features, and provider references.
1807
1901
  */
1808
- interface AXPStatusDefinition {
1902
+ interface AXPModuleManifest {
1809
1903
  /**
1810
- * Unique identifier for the status
1904
+ * Module name (must match RootConfig.module.name)
1811
1905
  */
1812
1906
  name: string;
1813
1907
  /**
1814
- * Display title for the status
1908
+ * Module version
1815
1909
  */
1816
- title: string;
1910
+ version: string;
1817
1911
  /**
1818
- * Color code or semantic color name for the status
1912
+ * Module title (can reference const.ts or be translation key)
1819
1913
  */
1820
- color: string;
1914
+ title: string;
1821
1915
  /**
1822
- * Optional icon class (e.g., 'fa-light fa-check')
1916
+ * Module description (optional)
1823
1917
  */
1824
- icon?: string;
1918
+ description?: string;
1825
1919
  /**
1826
- * Optional description
1920
+ * Module icon (can reference const.ts)
1827
1921
  */
1828
- description?: string;
1922
+ icon?: string;
1829
1923
  /**
1830
- * Optional order for sorting
1924
+ * i18n scope name (can reference const.ts)
1831
1925
  */
1832
- order?: number;
1926
+ i18n?: string;
1833
1927
  /**
1834
- * Whether this status is active/available
1928
+ * Permission provider reference (lazy-loaded).
1835
1929
  */
1836
- isActive?: boolean;
1930
+ permissions?: {
1931
+ provider: () => Promise<any>;
1932
+ };
1837
1933
  /**
1838
- * Whether this is a final status (end state)
1934
+ * Menu provider reference (lazy-loaded).
1839
1935
  */
1840
- isFinal?: boolean;
1936
+ menus?: {
1937
+ provider: () => Promise<any>;
1938
+ };
1841
1939
  /**
1842
- * Whether this is an initial status (starting state)
1940
+ * Entity definition provider reference (lazy-loaded).
1843
1941
  */
1844
- isInitial?: boolean;
1942
+ entities?: {
1943
+ provider: () => Promise<any>;
1944
+ };
1845
1945
  /**
1846
- * Whether list views should be automatically generated for this status
1946
+ * Settings provider reference (lazy-loaded).
1847
1947
  */
1848
- generateView?: boolean;
1849
- }
1850
- /**
1851
- * Status transition definition
1852
- */
1853
- interface AXPStatusTransition {
1948
+ settings?: {
1949
+ provider: () => Promise<any>;
1950
+ };
1854
1951
  /**
1855
- * Source status name
1952
+ * Search provider reference (lazy-loaded).
1856
1953
  */
1857
- from: string;
1954
+ search?: {
1955
+ provider: () => Promise<any>;
1956
+ };
1858
1957
  /**
1859
- * Target status name
1958
+ * Feature definition provider reference (lazy-loaded).
1959
+ * Used to provide feature definitions for the module.
1860
1960
  */
1861
- to: string;
1961
+ features?: {
1962
+ provider: () => Promise<any>;
1963
+ };
1862
1964
  /**
1863
- * Optional condition expression to evaluate before allowing transition
1864
- * Uses expression evaluator syntax (e.g., "{{user.isAdmin}}", "{{item.priority > 5}}")
1965
+ * Data source provider reference (lazy-loaded).
1865
1966
  */
1866
- condition?: string;
1967
+ datasources?: {
1968
+ provider: () => Promise<any>;
1969
+ };
1867
1970
  /**
1868
- * Optional display title for the transition
1971
+ * Component slots provider reference (lazy-loaded).
1972
+ * Returns component slot configurations grouped by slot name.
1973
+ * Slots registered via manifest are loaded after application selection.
1974
+ * Module-level registration (AXPComponentSlotModule.forChild) still works for immediate availability.
1869
1975
  */
1870
- title?: string;
1976
+ componentSlots?: {
1977
+ provider: () => Promise<any>;
1978
+ };
1871
1979
  /**
1872
- * Optional description
1980
+ * Module dependencies
1873
1981
  */
1874
- description?: string;
1982
+ dependencies?: {
1983
+ /**
1984
+ * Required module names
1985
+ */
1986
+ modules?: string[];
1987
+ /**
1988
+ * Required feature keys (full format: ModuleName.FeatureKey)
1989
+ */
1990
+ features?: string[];
1991
+ };
1875
1992
  /**
1876
- * Optional action identifier
1993
+ * Whether this module is required (always enabled, cannot be disabled).
1994
+ * Required modules like 'auth' and 'common' are always available.
1877
1995
  */
1878
- action?: string;
1996
+ required?: boolean;
1879
1997
  /**
1880
- * Optional color for the transition button/indicator
1998
+ * Additional metadata
1881
1999
  */
1882
- color?: string;
2000
+ metadata?: {
2001
+ [key: string]: any;
2002
+ };
2003
+ }
2004
+ /**
2005
+ * Full feature name with module prefix.
2006
+ * Format: ModuleName.FeatureKey
2007
+ */
2008
+ type AXPFeatureName = string;
2009
+ /**
2010
+ * Feature definition with full name.
2011
+ */
2012
+ interface AXPFeatureDefinition extends AXPModuleFeatureDefinition {
1883
2013
  /**
1884
- * Optional icon for the transition
2014
+ * Full feature name (ModuleName.FeatureKey)
1885
2015
  */
1886
- icon?: string;
2016
+ name: AXPFeatureName;
1887
2017
  /**
1888
- * Whether this transition is automatic (no user action required)
2018
+ * Module name
1889
2019
  */
1890
- isAutomatic?: boolean;
2020
+ module: string;
1891
2021
  /**
1892
- * Whether this transition requires approval
2022
+ * Feature key (short name)
1893
2023
  */
1894
- requiresApproval?: boolean;
2024
+ key: string;
1895
2025
  }
2026
+
1896
2027
  /**
1897
- * Abstract class for status providers
1898
- * Similar to AXPTaskBadgeProvider pattern
2028
+ * Registry service for module manifests.
2029
+ * Collects and manages all registered module manifests.
1899
2030
  */
1900
- declare abstract class AXPStatusProvider {
2031
+ declare class AXPModuleManifestRegistry {
2032
+ private readonly manifests;
2033
+ private readonly featureDefinitions;
2034
+ private readonly injector;
2035
+ private initializationPromise;
2036
+ private isInitialized;
1901
2037
  /**
1902
- * Unique key for the status (e.g., 'task-management.status')
2038
+ * Initialize registry by loading all manifest providers.
2039
+ * Should be called during app startup.
2040
+ * Safe to call multiple times - will only initialize once.
1903
2041
  */
1904
- abstract readonly key: string;
2042
+ initialize(): Promise<void>;
1905
2043
  /**
1906
- * List of available status definitions
2044
+ * Internal initialization logic.
1907
2045
  */
1908
- abstract readonly statuses: AXPStatusDefinition[];
2046
+ private _doInitialize;
1909
2047
  /**
1910
- * List of allowed transitions between statuses
2048
+ * Register a module manifest.
1911
2049
  */
1912
- abstract readonly transitions: AXPStatusTransition[];
2050
+ register(manifest: AXPModuleManifest): Promise<void>;
1913
2051
  /**
1914
- * Optional default status name
2052
+ * Get manifest for a module.
1915
2053
  */
1916
- abstract readonly defaultStatus?: string;
2054
+ get(moduleName: string): AXPModuleManifest | undefined;
1917
2055
  /**
1918
- * Optional workflow actions that should be exposed on entity lists/records
2056
+ * Get all registered manifests.
1919
2057
  */
1920
- readonly workflowActions?: AXPStatusWorkflowAction[];
1921
- }
1922
- type AXPStatusActionPriority = 'primary' | 'secondary';
1923
- type AXPStatusActionScope = 'individual' | 'selected' | 'typeLevel' | 'section';
1924
- interface AXPStatusWorkflowAction {
2058
+ getAll(): AXPModuleManifest[];
1925
2059
  /**
1926
- * Unique action name
2060
+ * Check if a module manifest is registered.
1927
2061
  */
1928
- name: string;
2062
+ has(moduleName: string): boolean;
1929
2063
  /**
1930
- * Localized title key
2064
+ * Get all feature definitions from all manifests.
1931
2065
  */
1932
- title: string;
2066
+ getAllFeatureDefinitions(): AXPFeatureDefinition[];
1933
2067
  /**
1934
- * Command descriptor to execute
2068
+ * Get feature definition by full name.
1935
2069
  */
1936
- command: {
1937
- name: string;
1938
- options?: Record<string, unknown>;
1939
- };
2070
+ getFeatureDefinition(featureName: AXPFeatureName): AXPFeatureDefinition | undefined;
1940
2071
  /**
1941
- * Optional hidden expression
2072
+ * Check if a feature is defined in any manifest.
1942
2073
  */
1943
- hidden?: string;
2074
+ isFeatureDefined(featureName: AXPFeatureName): boolean;
1944
2075
  /**
1945
- * Action priority (primary/secondary)
2076
+ * Get default value for a feature.
2077
+ * Returns undefined if feature is not defined.
1946
2078
  */
1947
- priority?: AXPStatusActionPriority;
2079
+ getFeatureDefault(featureName: AXPFeatureName): any;
1948
2080
  /**
1949
- * System action type for telemetry/audit
2081
+ * Get all feature definitions for a specific module.
1950
2082
  */
1951
- type?: AXPSystemActionType;
2083
+ getModuleFeatures(moduleName: string): AXPFeatureDefinition[];
1952
2084
  /**
1953
- * Command scope (individual, selected, typeLevel, section)
2085
+ * Register a feature definition dynamically (e.g., from feature definition provider).
2086
+ * Used to add features that are defined at runtime via featuresProvider.
1954
2087
  */
1955
- scope?: AXPStatusActionScope;
2088
+ registerFeatureDefinition(definition: AXPFeatureDefinition): void;
1956
2089
  /**
1957
- * Whether action should be rendered separated from others
2090
+ * Check if module dependencies are satisfied.
2091
+ * Returns array of missing dependencies.
1958
2092
  */
1959
- separated?: boolean;
2093
+ checkDependencies(moduleName: string): {
2094
+ missingModules: string[];
2095
+ missingFeatures: string[];
2096
+ };
2097
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPModuleManifestRegistry, never>;
2098
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPModuleManifestRegistry>;
2099
+ }
2100
+
2101
+ interface AXPStartUpTask {
2102
+ name: string;
2103
+ statusText: string;
2104
+ priority: number;
2105
+ run: () => Promise<void>;
2106
+ }
2107
+
2108
+ declare class AXPAppStartUpService {
2109
+ private tasks;
2110
+ registerTask(task: AXPStartUpTask): void;
2111
+ runAllTasks(): Promise<void>;
2112
+ private updateStatus;
2113
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPAppStartUpService, never>;
2114
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPAppStartUpService>;
2115
+ }
2116
+ declare const AXPAppStartUpProvider: i0.EnvironmentProviders;
2117
+
2118
+ /**
2119
+ * Module for managing module manifests and providers initialization.
2120
+ * Handles the registration of manifest and module provider startup tasks.
2121
+ */
2122
+ declare class AXPModuleManifestModule {
1960
2123
  /**
1961
- * Optional icon representation
2124
+ * @ignore
2125
+ * Initializes module manifest and provider tasks on module construction.
1962
2126
  */
1963
- icon?: string;
2127
+ constructor(appInitService: AXPAppStartUpService, injector: Injector);
2128
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPModuleManifestModule, never>;
2129
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXPModuleManifestModule, never, never, never>;
2130
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXPModuleManifestModule>;
2131
+ }
2132
+
2133
+ /**
2134
+ * Context for feature definition providers.
2135
+ * Allows providers to add additional feature definitions dynamically.
2136
+ */
2137
+ declare class AXPFeatureDefinitionProviderContext {
2138
+ private readonly features;
2139
+ /**
2140
+ * Add a feature definition.
2141
+ * @param key Full feature key (ModuleName:FeatureKey format with colon separator)
2142
+ * @param definition Feature definition
2143
+ */
2144
+ addFeature(key: string, definition: AXPModuleFeatureDefinition): void;
2145
+ /**
2146
+ * Get all feature definitions.
2147
+ */
2148
+ getFeatures(): Map<string, AXPModuleFeatureDefinition>;
2149
+ }
2150
+ /**
2151
+ * Interface for feature definition providers.
2152
+ * Used to dynamically provide feature definitions for modules.
2153
+ */
2154
+ interface AXPFeatureDefinitionProvider {
2155
+ /**
2156
+ * Provide feature definitions.
2157
+ * @param context Context for adding feature definitions
2158
+ */
2159
+ provide(context: AXPFeatureDefinitionProviderContext): Promise<void>;
1964
2160
  }
2161
+ /**
2162
+ * Injection token for feature definition providers.
2163
+ */
2164
+ declare const AXP_FEATURE_DEFINITION_PROVIDER: InjectionToken<AXPFeatureDefinitionProvider[]>;
1965
2165
 
1966
2166
  /**
1967
- * Injection token for status providers
1968
- * Use with multi: true to register multiple providers
2167
+ * Minimal provider interfaces for the module provider registry.
2168
+ * These interfaces are defined in core to avoid circular dependencies.
2169
+ * The actual implementations in platform/auth and platform/common implement these interfaces.
1969
2170
  */
1970
- declare const AXP_STATUS_PROVIDERS: InjectionToken<AXPStatusProvider[]>;
1971
2171
  /**
1972
- * Service for managing status definitions from multiple providers
1973
- * Similar to AXPTaskBadgeService pattern - no cache, direct access
1974
- *
1975
- * @example
1976
- * ```typescript
1977
- * // In a module providers array:
1978
- * {
1979
- * provide: AXP_STATUS_PROVIDERS,
1980
- * useClass: TaskStatusProvider,
1981
- * multi: true,
1982
- * }
1983
- *
1984
- * // Example provider implementation:
1985
- * export class TaskStatusProvider extends AXPStatusProvider {
1986
- * readonly key = 'task-management.status';
1987
- * readonly statuses = [
1988
- * { name: 'todo', title: 'To Do', color: '#6b7280', icon: 'fa-light fa-circle', isInitial: true },
1989
- * { name: 'in-progress', title: 'In Progress', color: '#3b82f6', icon: 'fa-light fa-play' },
1990
- * { name: 'done', title: 'Done', color: '#10b981', icon: 'fa-light fa-check-circle', isFinal: true },
1991
- * ];
1992
- * readonly transitions = [
1993
- * { from: 'todo', to: 'in-progress', title: 'Start', condition: '{{user.canEdit}}' },
1994
- * { from: 'in-progress', to: 'done', title: 'Complete' },
1995
- * ];
1996
- * readonly defaultStatus = 'todo';
1997
- * }
2172
+ * Permission definition provider interface.
2173
+ * Actual implementation: @acorex/platform/auth
2174
+ */
2175
+ interface AXPIPermissionDefinitionProvider {
2176
+ define(context: any): Promise<void>;
2177
+ }
2178
+ /**
2179
+ * Menu provider interface.
2180
+ * Actual implementation: @acorex/platform/common
2181
+ */
2182
+ interface AXPIMenuProvider {
2183
+ provide(context: any): Promise<void>;
2184
+ }
2185
+ /**
2186
+ * Setting definition provider interface.
2187
+ * Actual implementation: @acorex/platform/common
2188
+ */
2189
+ interface AXPISettingDefinitionProvider {
2190
+ provide(context: any): Promise<void>;
2191
+ }
2192
+ /**
2193
+ * Search command provider interface.
2194
+ * Actual implementation: @acorex/platform/common
2195
+ */
2196
+ interface AXPISearchCommandProvider {
2197
+ search(text: string): Promise<any[]>;
2198
+ commands?: any[];
2199
+ }
2200
+ /**
2201
+ * Entity definition loader interface.
2202
+ * Actual implementation: @acorex/platform/layout/entity
2203
+ */
2204
+ interface AXIEntityDefinitionLoader {
2205
+ get(moduleName: string, entityName: string): Promise<any | null>;
2206
+ }
2207
+ /**
2208
+ * Edition service interface for querying edition information.
2209
+ * Actual implementation: @acorex/modules/application-management
1998
2210
  *
1999
- * // Later, get the status:
2000
- * const status = statusService.getStatus('task-management.status');
2001
- * if (status) {
2002
- * console.log('Statuses:', status.statuses);
2003
- * console.log('Transitions:', status.transitions);
2004
- * }
2005
- * ```
2211
+ * This interface is defined in core to avoid circular dependencies.
2212
+ * Modules provide implementations that extend AXMEntityCrudServiceImpl.
2006
2213
  */
2007
- declare class AXPStatusDefinitionProviderService {
2008
- private providers;
2009
- private statusMap;
2010
- constructor();
2011
- /**
2012
- * Get a status provider by key
2013
- * Direct access from Map (no lazy load, no cache)
2014
- *
2015
- * @param key - Status key (e.g., 'task-management.status')
2016
- * @returns Status provider with all statuses and transitions, or undefined if not found
2017
- *
2018
- * @example
2019
- * ```typescript
2020
- * const status = statusService.getStatus('task-management.status');
2021
- * if (status) {
2022
- * console.log('Statuses:', status.statuses);
2023
- * console.log('Transitions:', status.transitions);
2024
- * }
2025
- * ```
2026
- */
2027
- getStatus(key: string): AXPStatusProvider | undefined;
2028
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPStatusDefinitionProviderService, never>;
2029
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPStatusDefinitionProviderService>;
2214
+ interface AXPIEditionService {
2215
+ /**
2216
+ * Query editions with pagination and filtering.
2217
+ * @param request Query request with skip, take, and optional filters
2218
+ * @returns Promise that resolves to paged list of editions
2219
+ */
2220
+ query(request: {
2221
+ skip: number;
2222
+ take: number;
2223
+ [key: string]: any;
2224
+ }): Promise<{
2225
+ items: Array<{
2226
+ id: string;
2227
+ title: string;
2228
+ modulesAndFeatures?: {
2229
+ modules: string[];
2230
+ features: Record<string, any>;
2231
+ };
2232
+ [key: string]: any;
2233
+ }>;
2234
+ total: number;
2235
+ }>;
2236
+ }
2237
+ /**
2238
+ * Injection token for edition service.
2239
+ * Modules should provide their implementation using this token.
2240
+ */
2241
+ declare const AXP_EDITION_SERVICE: InjectionToken<AXPIEditionService>;
2242
+ /**
2243
+ * Module provider loader interface.
2244
+ * Implementation: @acorex/platform/auth
2245
+ */
2246
+ interface AXPIModuleProviderLoader {
2247
+ loadRequiredModules(): Promise<void>;
2248
+ loadProviders(context: any): Promise<void>;
2249
+ loadProvidersIfReady(): Promise<void>;
2250
+ loadProvidersForApplication(application: any): Promise<void>;
2251
+ clear(): Promise<void>;
2252
+ isModuleRegistered(moduleName: string): boolean;
2030
2253
  }
2254
+ /**
2255
+ * Injection token for module provider loader.
2256
+ * Implementation: @acorex/platform/auth
2257
+ */
2258
+ declare const AXP_MODULE_PROVIDER_LOADER: InjectionToken<AXPIModuleProviderLoader>;
2259
+ /**
2260
+ * Session service interface for module provider operations.
2261
+ * Implementation: @acorex/platform/auth
2262
+ */
2263
+ interface AXPISessionService {
2264
+ isLoading$: any;
2265
+ status$: any;
2266
+ tenant: any | null;
2267
+ application: any | null;
2268
+ user: any | null;
2269
+ }
2270
+ /**
2271
+ * Injection token for session service.
2272
+ * Implementation: @acorex/platform/auth
2273
+ */
2274
+ declare const AXP_SESSION_SERVICE: InjectionToken<AXPISessionService>;
2275
+ /**
2276
+ * Injection token for module manifest providers.
2277
+ * Modules register their manifest providers using this token.
2278
+ */
2279
+ declare const AXP_MODULE_MANIFEST_PROVIDER: InjectionToken<AXPModuleManifest[]>;
2031
2280
 
2032
2281
  /**
2033
- * Standard system status types
2034
- * These are the predefined status values used across the platform
2282
+ * Registry service for dynamically loaded module providers.
2283
+ * Stores provider instances that are loaded conditionally based on access control.
2035
2284
  */
2036
- declare enum AXPSystemStatusType {
2037
- Todo = "todo",
2038
- InProgress = "in-progress",
2039
- InReview = "in-review",
2040
- Blocked = "blocked",
2041
- Done = "done",
2042
- Cancelled = "cancelled",
2043
- Draft = "draft",
2044
- PendingReview = "pending-review",
2045
- Approved = "approved",
2046
- Published = "published",
2047
- Archived = "archived",
2048
- Rejected = "rejected",
2049
- Active = "active",
2050
- Inactive = "inactive",
2051
- Pending = "pending",
2052
- Completed = "completed",
2053
- Suspended = "suspended",
2054
- Failed = "failed",
2055
- Review = "review"
2285
+ declare class AXPModuleProviderRegistry {
2286
+ private readonly permissionProviders;
2287
+ private readonly menuProviders;
2288
+ private readonly entityProviders;
2289
+ private readonly settingProviders;
2290
+ private readonly searchProviders;
2291
+ private readonly featureProviders;
2292
+ private readonly datasourceProviders;
2293
+ /**
2294
+ * Register a permission provider.
2295
+ */
2296
+ registerPermissionProvider(provider: AXPIPermissionDefinitionProvider): void;
2297
+ /**
2298
+ * Get all registered permission providers.
2299
+ */
2300
+ getPermissionProviders(): AXPIPermissionDefinitionProvider[];
2301
+ /**
2302
+ * Register a menu provider.
2303
+ */
2304
+ registerMenuProvider(provider: AXPIMenuProvider): void;
2305
+ /**
2306
+ * Get all registered menu providers.
2307
+ */
2308
+ getMenuProviders(): AXPIMenuProvider[];
2309
+ /**
2310
+ * Register an entity provider.
2311
+ */
2312
+ registerEntityProvider(provider: AXIEntityDefinitionLoader): void;
2313
+ /**
2314
+ * Get all registered entity providers.
2315
+ */
2316
+ getEntityProviders(): AXIEntityDefinitionLoader[];
2317
+ /**
2318
+ * Register a settings provider.
2319
+ */
2320
+ registerSettingProvider(provider: AXPISettingDefinitionProvider): void;
2321
+ /**
2322
+ * Get all registered settings providers.
2323
+ */
2324
+ getSettingProviders(): AXPISettingDefinitionProvider[];
2325
+ /**
2326
+ * Register a search provider.
2327
+ */
2328
+ registerSearchProvider(provider: AXPISearchCommandProvider): void;
2329
+ /**
2330
+ * Get all registered search providers.
2331
+ */
2332
+ getSearchProviders(): AXPISearchCommandProvider[];
2333
+ /**
2334
+ * Register a feature provider.
2335
+ */
2336
+ registerFeatureProvider(provider: AXPFeatureDefinitionProvider): void;
2337
+ /**
2338
+ * Get all registered feature providers.
2339
+ */
2340
+ getFeatureProviders(): AXPFeatureDefinitionProvider[];
2341
+ /**
2342
+ * Register a datasource provider.
2343
+ */
2344
+ registerDatasourceProvider(provider: AXPDataSourceDefinitionProvider): void;
2345
+ /**
2346
+ * Get all registered datasource providers.
2347
+ */
2348
+ getDatasourceProviders(): AXPDataSourceDefinitionProvider[];
2349
+ /**
2350
+ * Clear all registered providers.
2351
+ * Useful for testing or re-initialization.
2352
+ */
2353
+ clear(): void;
2354
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPModuleProviderRegistry, never>;
2355
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPModuleProviderRegistry>;
2056
2356
  }
2357
+
2057
2358
  /**
2058
- * Standard system status definitions
2059
- * Provides consistent status definitions across the platform
2060
- * Uses AXPStatusDefinition interface from status-definition.types.ts
2359
+ * Access control context for module loading.
2360
+ * Note: Types are defined locally to avoid circular dependency with @acorex/platform/auth
2361
+ * These types match the structure of AXPTenant, AXPApplication, and AXPUser
2061
2362
  */
2062
- declare const AXPSystemStatuses: Readonly<{
2063
- readonly Todo: {
2064
- readonly name: AXPSystemStatusType.Todo;
2065
- readonly title: string;
2066
- readonly icon: "fa-light fa-circle";
2067
- readonly color: "secondary";
2068
- readonly description: string;
2069
- readonly order: 1;
2070
- readonly isActive: true;
2071
- readonly isInitial: true;
2072
- readonly isFinal: false;
2073
- };
2074
- readonly InProgress: {
2075
- readonly name: AXPSystemStatusType.InProgress;
2076
- readonly title: string;
2077
- readonly icon: "fa-light fa-play";
2078
- readonly color: "info";
2079
- readonly description: string;
2080
- readonly order: 2;
2081
- readonly isActive: true;
2082
- readonly isInitial: false;
2083
- readonly isFinal: false;
2084
- };
2085
- readonly InReview: {
2086
- readonly name: AXPSystemStatusType.InReview;
2087
- readonly title: string;
2088
- readonly icon: "fa-light fa-eye";
2089
- readonly color: "info";
2090
- readonly description: string;
2091
- readonly order: 3;
2092
- readonly isActive: true;
2093
- readonly isInitial: false;
2094
- readonly isFinal: false;
2095
- };
2096
- readonly Blocked: {
2097
- readonly name: AXPSystemStatusType.Blocked;
2098
- readonly title: string;
2099
- readonly icon: "fa-light fa-ban";
2100
- readonly color: "danger";
2101
- readonly description: string;
2102
- readonly order: 4;
2103
- readonly isActive: true;
2104
- readonly isInitial: false;
2105
- readonly isFinal: false;
2106
- };
2107
- readonly Done: {
2108
- readonly name: AXPSystemStatusType.Done;
2109
- readonly title: string;
2110
- readonly icon: "fa-light fa-check-circle";
2111
- readonly color: "success";
2112
- readonly description: string;
2113
- readonly order: 5;
2114
- readonly isActive: true;
2115
- readonly isInitial: false;
2116
- readonly isFinal: true;
2117
- };
2118
- readonly Cancelled: {
2119
- readonly name: AXPSystemStatusType.Cancelled;
2120
- readonly title: string;
2121
- readonly icon: "fa-light fa-times-circle";
2122
- readonly color: "neutral";
2123
- readonly description: string;
2124
- readonly order: 6;
2125
- readonly isActive: true;
2126
- readonly isInitial: false;
2127
- readonly isFinal: true;
2128
- };
2129
- readonly Draft: {
2130
- readonly name: AXPSystemStatusType.Draft;
2131
- readonly title: string;
2132
- readonly icon: "fa-light fa-file-pen";
2133
- readonly color: "neutral";
2134
- readonly description: string;
2135
- readonly order: 1;
2136
- readonly isActive: true;
2137
- readonly isInitial: true;
2138
- readonly isFinal: false;
2139
- };
2140
- readonly PendingReview: {
2141
- readonly name: AXPSystemStatusType.PendingReview;
2142
- readonly title: string;
2143
- readonly icon: "fa-light fa-clock";
2144
- readonly color: "warning";
2145
- readonly description: string;
2146
- readonly order: 2;
2147
- readonly isActive: true;
2148
- readonly isInitial: false;
2149
- readonly isFinal: false;
2150
- };
2151
- readonly Approved: {
2152
- readonly name: AXPSystemStatusType.Approved;
2153
- readonly title: string;
2154
- readonly icon: "fa-light fa-check-circle";
2155
- readonly color: "success";
2156
- readonly description: string;
2157
- readonly order: 3;
2158
- readonly isActive: true;
2159
- readonly isInitial: false;
2160
- readonly isFinal: false;
2161
- };
2162
- readonly Published: {
2163
- readonly name: AXPSystemStatusType.Published;
2164
- readonly title: string;
2165
- readonly icon: "fa-light fa-globe";
2166
- readonly color: "primary";
2167
- readonly description: string;
2168
- readonly order: 4;
2169
- readonly isActive: true;
2170
- readonly isInitial: false;
2171
- readonly isFinal: false;
2172
- };
2173
- readonly Archived: {
2174
- readonly name: AXPSystemStatusType.Archived;
2175
- readonly title: string;
2176
- readonly icon: "fa-light fa-archive";
2177
- readonly color: "neutral";
2178
- readonly description: string;
2179
- readonly order: 5;
2180
- readonly isActive: true;
2181
- readonly isInitial: false;
2182
- readonly isFinal: true;
2183
- };
2184
- readonly Rejected: {
2185
- readonly name: AXPSystemStatusType.Rejected;
2186
- readonly title: string;
2187
- readonly icon: "fa-light fa-times-circle";
2188
- readonly color: "danger";
2189
- readonly description: string;
2190
- readonly order: 6;
2191
- readonly isActive: true;
2192
- readonly isInitial: false;
2193
- readonly isFinal: true;
2194
- };
2195
- readonly Active: {
2196
- readonly name: AXPSystemStatusType.Active;
2197
- readonly title: string;
2198
- readonly icon: "fa-light fa-check-circle";
2199
- readonly color: "success";
2200
- readonly description: string;
2201
- readonly order: 1;
2202
- readonly isActive: true;
2203
- readonly isInitial: false;
2204
- readonly isFinal: false;
2205
- };
2206
- readonly Inactive: {
2207
- readonly name: AXPSystemStatusType.Inactive;
2208
- readonly title: string;
2209
- readonly icon: "fa-light fa-circle";
2210
- readonly color: "secondary";
2211
- readonly description: string;
2212
- readonly order: 2;
2213
- readonly isActive: true;
2214
- readonly isInitial: false;
2215
- readonly isFinal: false;
2216
- };
2217
- readonly Pending: {
2218
- readonly name: AXPSystemStatusType.Pending;
2219
- readonly title: string;
2220
- readonly icon: "fa-light fa-clock";
2221
- readonly color: "warning";
2222
- readonly description: string;
2223
- readonly order: 1;
2224
- readonly isActive: true;
2225
- readonly isInitial: true;
2226
- readonly isFinal: false;
2227
- };
2228
- readonly Completed: {
2229
- readonly name: AXPSystemStatusType.Completed;
2230
- readonly title: string;
2231
- readonly icon: "fa-light fa-check-circle";
2232
- readonly color: "success";
2233
- readonly description: string;
2234
- readonly order: 10;
2235
- readonly isActive: true;
2236
- readonly isInitial: false;
2237
- readonly isFinal: true;
2238
- };
2239
- readonly Suspended: {
2240
- readonly name: AXPSystemStatusType.Suspended;
2241
- readonly title: string;
2242
- readonly icon: "fa-light fa-pause-circle";
2243
- readonly color: "neutral";
2244
- readonly description: string;
2245
- readonly order: 5;
2246
- readonly isActive: true;
2247
- readonly isInitial: false;
2248
- readonly isFinal: false;
2249
- };
2250
- readonly Failed: {
2251
- readonly name: AXPSystemStatusType.Failed;
2252
- readonly title: string;
2253
- readonly icon: "fa-light fa-xmark-circle";
2254
- readonly color: "danger";
2255
- readonly description: string;
2256
- readonly order: 10;
2257
- readonly isActive: true;
2258
- readonly isInitial: false;
2259
- readonly isFinal: true;
2363
+ interface AXPModuleAccessContext {
2364
+ tenant: {
2365
+ id: string;
2366
+ name: string;
2367
+ title: string;
2368
+ description?: string;
2369
+ logo?: any;
2370
+ [key: string]: any;
2260
2371
  };
2261
- readonly Review: {
2262
- readonly name: AXPSystemStatusType.Review;
2263
- readonly title: string;
2264
- readonly icon: "fa-light fa-eye";
2265
- readonly color: "info";
2266
- readonly description: string;
2267
- readonly order: 3;
2268
- readonly isActive: true;
2372
+ application: {
2373
+ id: string;
2374
+ name: string;
2375
+ title?: string;
2376
+ version?: string;
2377
+ edition?: {
2378
+ id: string;
2379
+ title: string;
2380
+ description?: string;
2381
+ };
2382
+ description?: string;
2383
+ logo?: any;
2384
+ [key: string]: any;
2269
2385
  };
2270
- }>;
2271
- /**
2272
- * Get system status definition by type
2273
- * @param type - Status type
2274
- * @returns System status definition or undefined
2275
- */
2276
- declare function getSystemStatus(type: AXPSystemStatusType): AXPStatusDefinition;
2386
+ edition: {
2387
+ id: string;
2388
+ title: string;
2389
+ modulesAndFeatures?: {
2390
+ modules: string[];
2391
+ features: Record<string, any>;
2392
+ };
2393
+ };
2394
+ subscription?: any;
2395
+ user: {
2396
+ id: string;
2397
+ name: string;
2398
+ title: string;
2399
+ avatar?: string;
2400
+ [key: string]: any;
2401
+ };
2402
+ }
2277
2403
  /**
2278
- * Resolves the visual appearance (color and icon) for status
2279
- * using the system statuses from the core module.
2280
- * @param statusType - Status type string
2281
- * @returns Color and icon for the status
2404
+ * Service for checking module access control.
2405
+ * Provides centralized access control logic that can be overridden per module.
2282
2406
  */
2283
- declare function resolveStatusLook(statusType: string): {
2284
- color: AXStyleColorType;
2285
- icon: string;
2286
- };
2407
+ interface AXPModuleAccessControlService {
2408
+ /**
2409
+ * Check if user has access to a module based on context.
2410
+ * @param moduleName Module name to check access for
2411
+ * @param context Access control context
2412
+ * @returns true if module should be loaded, false otherwise
2413
+ */
2414
+ checkAccess(manifest: AXPModuleManifest, context: AXPModuleAccessContext): boolean | Promise<boolean>;
2415
+ }
2287
2416
  /**
2288
- * Resolves the complete status information (title, description, icon, color) for a status
2289
- * using the system statuses from the core module.
2290
- * @param statusType - Status type string
2291
- * @returns Complete status information as AXPStatusDefinition
2417
+ * Default implementation of module access control service.
2418
+ * Checks if module is enabled in edition.modulesAndFeatures.modules.
2292
2419
  */
2293
- declare function getStatusInfo(statusType: string): AXPStatusDefinition;
2420
+ declare class DefaultModuleAccessControlService implements AXPModuleAccessControlService {
2421
+ checkAccess(manifest: AXPModuleManifest, context: AXPModuleAccessContext): boolean;
2422
+ static ɵfac: i0.ɵɵFactoryDeclaration<DefaultModuleAccessControlService, never>;
2423
+ static ɵprov: i0.ɵɵInjectableDeclaration<DefaultModuleAccessControlService>;
2424
+ }
2294
2425
  /**
2295
- * Get system status definition directly (no conversion needed since it's already AXPStatusDefinition)
2296
- * @param statusType - Status type
2297
- * @param overrides - Optional overrides for the status definition
2298
- * @returns AXPStatusDefinition
2426
+ * Injection token for module access control service.
2427
+ * If not provided, DefaultModuleAccessControlService will be used as fallback.
2299
2428
  */
2300
- declare function systemStatusToDefinition(statusType: AXPSystemStatusType, overrides?: Partial<AXPStatusDefinition>): AXPStatusDefinition;
2429
+ declare const AXP_MODULE_ACCESS_CONTROL_SERVICE: InjectionToken<AXPModuleAccessControlService>;
2301
2430
 
2302
2431
  /**
2303
2432
  * Represents a tag with text, color, and metadata
@@ -2569,5 +2698,5 @@ declare function extractTextFromHtml(value: string): string;
2569
2698
  */
2570
2699
  declare function generateKebabCase(title: string): string;
2571
2700
 
2572
- export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPColorPaletteProvider, AXPColorPaletteService, AXPComponentLogoConfig, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPGridLayoutDirective, AXPHookService, AXPImageUrlLogoConfig, AXPPlatformScope, AXPScreenSize, AXPStatusDefinitionProviderService, AXPStatusProvider, AXPSystemActionType, AXPSystemActions, AXPSystemStatusType, AXPSystemStatuses, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_STATUS_PROVIDERS, AXP_TAG_PROVIDER, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, cleanDeep, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getStatusInfo, getSystemActions, getSystemStatus, objectKeyValueTransforms, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, resolveStatusLook, setSmart, systemStatusToDefinition };
2573
- export type { AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, AXPCommandMessage, AXPContent, AXPContentDirection, AXPContentType, AXPContextData, AXPContextState, AXPDataSource, AXPDataSourceDataFieldDefinition, AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPDataType, AXPDistributedEventListenerProvider, AXPDistributedEventListenerProviderToken, AXPEntityReference, AXPEqualValidationRule, AXPExecuteCommand, AXPExecuteCommandResult, AXPExportCsvOptions, AXPExportExcelOptions, AXPExportOptions, AXPExportPdfOptions, AXPExportPrintOptions, AXPExpression, AXPExpressionEvaluatorScope, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviders, AXPFileListItem, AXPFileSource, AXPFileStatus, AXPFilterDefinition, AXPFilterLogic, AXPFilterOperation, AXPFilterQuery, AXPFlowDirection, AXPGridLayoutOptions, AXPGridPlacement, AXPLogoConfig, AXPMaxLengthValidationRule, AXPMetaData, AXPMiddlewareErrorResponse, AXPMinLengthValidationRule, AXPNavigateActionCommand, AXPNavigateActionOptions, AXPOptionsData, AXPPagedListResult, AXPPartialNested, AXPPlatformScopeKey, AXPQueryFetchResult, AXPQueryRequest, AXPReqexValidationRule, AXPRequiredValidationRule, AXPSortDefinition, AXPSortQuery, AXPStartUpTask, AXPStatusActionPriority, AXPStatusActionScope, AXPStatusDefinition, AXPStatusTransition, AXPStatusWorkflowAction, AXPStringValidationRules, AXPSystemAction, AXPTag, AXPTagFilterOptions, AXPUserReference, AXPValidationRule, AXPValidationRules, AXPValueTransformerFunction, AXPValueTransformerFunctions, AXPValueUnit, AXPValueUnits, AXPViewBlockDefinition, AXPViewDefinition, AXPViewFieldDefinition, AXPViewQuery, AXPWidgetTrigger, AXPWidgetTriggers };
2701
+ export { AXFullscreenDirective, AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPColorPaletteProvider, AXPColorPaletteService, AXPComponentLogoConfig, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPImageUrlLogoConfig, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPModuleProviderRegistry, AXPPlatformScope, AXPScreenSize, AXPSystemActionType, AXPSystemActions, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EDITION_SERVICE, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_ACCESS_CONTROL_SERVICE, AXP_MODULE_MANIFEST_PROVIDER, AXP_MODULE_PROVIDER_LOADER, AXP_SESSION_SERVICE, AXP_TAG_PROVIDER, DefaultModuleAccessControlService, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, cleanDeep, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, objectKeyValueTransforms, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, setSmart };
2702
+ export type { AXIEntityDefinitionLoader, AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, AXPCommandMessage, AXPContent, AXPContentDirection, AXPContentType, AXPContextData, AXPContextState, AXPDataSource, AXPDataSourceDataFieldDefinition, AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPDataType, AXPDistributedEventListenerProvider, AXPDistributedEventListenerProviderToken, AXPEntityReference, AXPEqualValidationRule, AXPExecuteCommand, AXPExecuteCommandResult, AXPExportCsvOptions, AXPExportExcelOptions, AXPExportOptions, AXPExportPdfOptions, AXPExportPrintOptions, AXPExpression, AXPExpressionEvaluatorScope, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviders, AXPFeatureDefinition, AXPFeatureDefinitionProvider, AXPFeatureName, AXPFileListItem, AXPFileSource, AXPFileStatus, AXPFilterClause, AXPFilterDefinition, AXPFilterQuery, AXPFlowDirection, AXPGridLayoutOptions, AXPGridPlacement, AXPIEditionService, AXPIMenuProvider, AXPIModuleProviderLoader, AXPIPermissionDefinitionProvider, AXPISearchCommandProvider, AXPISessionService, AXPISettingDefinitionProvider, AXPLogoConfig, AXPMaxLengthValidationRule, AXPMetaData, AXPMiddlewareErrorResponse, AXPMinLengthValidationRule, AXPModuleAccessContext, AXPModuleAccessControlService, AXPModuleFeatureDefinition, AXPModuleFeatureDefinitionWithKey, AXPModuleManifest, AXPNavigateActionCommand, AXPNavigateActionOptions, AXPOptionsData, AXPPagedListResult, AXPPartialNested, AXPPlatformScopeKey, AXPQueryFetchResult, AXPQueryRequest, AXPReqexValidationRule, AXPRequiredValidationRule, AXPSortDefinition, AXPSortQuery, AXPStartUpTask, AXPStringValidationRules, AXPSystemAction, AXPTag, AXPTagFilterOptions, AXPUserReference, AXPValidationRule, AXPValidationRules, AXPValueTransformerFunction, AXPValueTransformerFunctions, AXPValueUnit, AXPValueUnits, AXPViewBlockDefinition, AXPViewDefinition, AXPViewFieldDefinition, AXPViewQuery, AXPWidgetTrigger, AXPWidgetTriggers };