@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/core/index.d.ts CHANGED
@@ -767,7 +767,6 @@ declare const AXPSystemActions: Readonly<{
767
767
  readonly key: AXPSystemActionType.Cancel;
768
768
  readonly title: string;
769
769
  readonly icon: "fa-light fa-xmark";
770
- readonly color: "danger";
771
770
  readonly critical: true;
772
771
  readonly descriptions: {
773
772
  readonly title: string;
@@ -909,7 +908,7 @@ type AXPPartialNested<T> = {
909
908
  declare function getNestedKeys(obj: any, prefix?: string): string[];
910
909
  type AXPExpression = string;
911
910
  type AXPMetaData = Record<string, any>;
912
- type AXPOptionsData = Record<string, any>;
911
+ type AXPOptionsData<T extends Record<string, unknown> = Record<string, any>> = T;
913
912
  interface AXPValueUnit {
914
913
  name: string;
915
914
  title: string;
@@ -925,6 +924,8 @@ interface AXPValueUnits {
925
924
  interface AXPEntityReference {
926
925
  id: string;
927
926
  type: string;
927
+ title?: string;
928
+ metadata?: AXPMetaData;
928
929
  }
929
930
  interface AXPUserReference {
930
931
  id: string;
@@ -963,7 +964,10 @@ interface AXPCategoryEntity<TKey = string> {
963
964
  title: string;
964
965
  description?: string;
965
966
  parentId?: TKey;
966
- childCount: number;
967
+ childrenCount: number;
968
+ itemsCount?: number;
969
+ totalChildren?: number;
970
+ totalItems?: number;
967
971
  }
968
972
  interface AXPCategoryEntityWithItems<T> extends AXPCategoryEntity {
969
973
  items: T[];
@@ -987,7 +991,7 @@ type AXPWidgetTrigger = {
987
991
  };
988
992
  type AXPWidgetTriggers = AXPWidgetTrigger[];
989
993
 
990
- type AXPFileStatus = 'attached' | 'uploading' | 'uploaded' | 'deleted' | 'remote';
994
+ type AXPFileStatus = 'attached' | 'uploading' | 'uploaded' | 'deleted' | 'remote' | 'editing';
991
995
  interface AXPFileSource {
992
996
  kind: 'blob' | 'url' | 'preview' | 'none' | 'fileId' | 'reference';
993
997
  value?: Blob | string | AXPEntityReference;
@@ -1000,19 +1004,14 @@ interface AXPFileListItem {
1000
1004
  source?: AXPFileSource;
1001
1005
  }
1002
1006
 
1003
- type AXPFilterOperation = {
1004
- type: 'equal' | 'isNull' | 'isEmpty' | 'lt' | 'lte' | 'gt' | 'gte' | 'startsWith' | 'endsWith' | 'contains' | 'in';
1005
- negative?: boolean;
1006
- };
1007
- type AXPFilterLogic = 'and' | 'or';
1008
- interface AXPFilterDefinition {
1007
+ interface AXPFilterClause extends AXDataSourceFilterOption {
1008
+ id?: string;
1009
+ order?: number;
1010
+ filters?: AXPFilterClause[];
1011
+ }
1012
+ interface AXPFilterDefinition extends AXPFilterClause {
1009
1013
  title: string;
1010
- field: string;
1011
- value?: unknown;
1012
1014
  isParametric?: boolean;
1013
- operator: AXPFilterOperation;
1014
- logic?: AXPFilterLogic;
1015
- filters?: AXPFilterDefinition[];
1016
1015
  icon?: string;
1017
1016
  widget: {
1018
1017
  type: string;
@@ -1033,6 +1032,7 @@ type AXPActionMenuItem = {
1033
1032
  name?: string;
1034
1033
  title: string;
1035
1034
  icon?: string;
1035
+ iconOnly?: boolean;
1036
1036
  color?: string;
1037
1037
  break?: boolean;
1038
1038
  items?: AXPActionMenuItem[];
@@ -1055,6 +1055,12 @@ type AXPBadge = {
1055
1055
  description?: string;
1056
1056
  color?: 'primary' | 'success' | 'warning' | 'danger';
1057
1057
  };
1058
+ interface AXPCommandMessage {
1059
+ type?: 'info' | 'success' | 'warning' | 'error';
1060
+ code?: string;
1061
+ text: string;
1062
+ details?: unknown;
1063
+ }
1058
1064
  type AXPExecuteCommand = {
1059
1065
  name: string;
1060
1066
  options?: AXPMetaData;
@@ -1062,22 +1068,19 @@ type AXPExecuteCommand = {
1062
1068
  };
1063
1069
  interface AXPExecuteCommandResult<T = any> {
1064
1070
  success: boolean;
1065
- result?: T;
1066
- error?: {
1067
- code?: string;
1068
- message?: string;
1069
- details?: any;
1070
- };
1071
+ data?: T;
1072
+ message?: AXPCommandMessage;
1073
+ metadata?: AXPMetaData;
1071
1074
  }
1072
1075
  interface AXPQueryFetchResult<T = any> {
1073
1076
  success: boolean;
1074
- result?: {
1077
+ data?: {
1075
1078
  items?: T[];
1076
1079
  total?: number;
1077
1080
  };
1078
- error?: {
1081
+ message?: {
1079
1082
  code?: string;
1080
- message?: string;
1083
+ text?: string;
1081
1084
  details?: any;
1082
1085
  };
1083
1086
  }
@@ -1136,6 +1139,11 @@ declare class AXPComponentLogoConfig implements AXPLogoConfig {
1136
1139
  width?: number | undefined;
1137
1140
  constructor(component: Type<any>);
1138
1141
  }
1142
+ declare class AXPIconLogoConfig implements AXPLogoConfig {
1143
+ icon: string;
1144
+ color?: string | undefined;
1145
+ constructor(icon: string, color?: string | undefined);
1146
+ }
1139
1147
 
1140
1148
  type AXPPlatformScopeKey = 'C' | 'G' | 'P' | 'T' | 'U';
1141
1149
  declare enum AXPPlatformScope {
@@ -1440,6 +1448,11 @@ declare class AXPColorPaletteService {
1440
1448
  * Reload palettes from all providers
1441
1449
  */
1442
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>;
1443
1456
  /**
1444
1457
  * Load palettes from all providers
1445
1458
  */
@@ -1524,6 +1537,7 @@ declare class AXPDataGenerator {
1524
1537
  static city(): string;
1525
1538
  static state(): string;
1526
1539
  static address(): string;
1540
+ static avatar(): string;
1527
1541
  }
1528
1542
 
1529
1543
  type AXPValueTransformerFunction = (value: any) => any;
@@ -1554,6 +1568,7 @@ interface AXPDataSourceDefinition<T = any> {
1554
1568
  columns: AXPDataSourceDataFieldDefinition[];
1555
1569
  filters: AXPFilterDefinition[];
1556
1570
  samples?: any[];
1571
+ visible?: boolean;
1557
1572
  source: () => AXDataSource<T> | Promise<AXDataSource<T>>;
1558
1573
  }
1559
1574
  interface AXPDataSourceDefinitionProvider {
@@ -1562,6 +1577,7 @@ interface AXPDataSourceDefinitionProvider {
1562
1577
  declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDefinitionProvider[]>;
1563
1578
  declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
1564
1579
  private providers;
1580
+ private providerRegistry;
1565
1581
  items(): Promise<AXPDataSourceDefinition[]>;
1566
1582
  get(name: string): Promise<AXPDataSourceDefinition | undefined>;
1567
1583
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
@@ -1618,6 +1634,69 @@ declare class AXPContentCheckerDirective {
1618
1634
  static ɵdir: i0.ɵɵDirectiveDeclaration<AXPContentCheckerDirective, "[axp-content-checker]", ["checker"], {}, {}, never, never, true, never>;
1619
1635
  }
1620
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
+
1621
1700
  type AXPDistributedEventListenerProviderToken<T> = AXPDistributedEventListenerProvider<T> | Promise<AXPDistributedEventListenerProvider<T>>;
1622
1701
  declare const AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER: InjectionToken<AXPDistributedEventListenerProviderToken<any>[]>;
1623
1702
  interface AXPDistributedEventListenerProvider<TInput = any, TOutput = void> {
@@ -1775,462 +1854,592 @@ declare class AXPHookService {
1775
1854
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPHookService>;
1776
1855
  }
1777
1856
 
1778
- interface AXPStartUpTask {
1779
- name: string;
1780
- statusText: string;
1781
- priority: number;
1782
- run: () => Promise<void>;
1783
- }
1784
-
1785
- declare class AXPAppStartUpService {
1786
- private tasks;
1787
- registerTask(task: AXPStartUpTask): void;
1788
- runAllTasks(): Promise<void>;
1789
- private updateStatus;
1790
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPAppStartUpService, never>;
1791
- 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
+ };
1792
1886
  }
1793
- declare const AXPAppStartUpProvider: i0.EnvironmentProviders;
1794
-
1795
1887
  /**
1796
- * Status Definition Types
1797
- * 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.
1798
1890
  */
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
+ }
1799
1898
  /**
1800
- * Status definition with metadata
1899
+ * Module manifest structure.
1900
+ * Defines module metadata, features, and provider references.
1801
1901
  */
1802
- interface AXPStatusDefinition {
1902
+ interface AXPModuleManifest {
1803
1903
  /**
1804
- * Unique identifier for the status
1904
+ * Module name (must match RootConfig.module.name)
1805
1905
  */
1806
1906
  name: string;
1807
1907
  /**
1808
- * Display title for the status
1908
+ * Module version
1909
+ */
1910
+ version: string;
1911
+ /**
1912
+ * Module title (can reference const.ts or be translation key)
1809
1913
  */
1810
1914
  title: string;
1811
1915
  /**
1812
- * Color code or semantic color name for the status
1916
+ * Module description (optional)
1813
1917
  */
1814
- color: string;
1918
+ description?: string;
1815
1919
  /**
1816
- * Optional icon class (e.g., 'fa-light fa-check')
1920
+ * Module icon (can reference const.ts)
1817
1921
  */
1818
1922
  icon?: string;
1819
1923
  /**
1820
- * Optional description
1924
+ * i18n scope name (can reference const.ts)
1821
1925
  */
1822
- description?: string;
1926
+ i18n?: string;
1823
1927
  /**
1824
- * Optional order for sorting
1928
+ * Permission provider reference (lazy-loaded).
1825
1929
  */
1826
- order?: number;
1930
+ permissions?: {
1931
+ provider: () => Promise<any>;
1932
+ };
1933
+ /**
1934
+ * Menu provider reference (lazy-loaded).
1935
+ */
1936
+ menus?: {
1937
+ provider: () => Promise<any>;
1938
+ };
1827
1939
  /**
1828
- * Whether this status is active/available
1940
+ * Entity definition provider reference (lazy-loaded).
1829
1941
  */
1830
- isActive?: boolean;
1942
+ entities?: {
1943
+ provider: () => Promise<any>;
1944
+ };
1945
+ /**
1946
+ * Settings provider reference (lazy-loaded).
1947
+ */
1948
+ settings?: {
1949
+ provider: () => Promise<any>;
1950
+ };
1951
+ /**
1952
+ * Search provider reference (lazy-loaded).
1953
+ */
1954
+ search?: {
1955
+ provider: () => Promise<any>;
1956
+ };
1957
+ /**
1958
+ * Feature definition provider reference (lazy-loaded).
1959
+ * Used to provide feature definitions for the module.
1960
+ */
1961
+ features?: {
1962
+ provider: () => Promise<any>;
1963
+ };
1964
+ /**
1965
+ * Data source provider reference (lazy-loaded).
1966
+ */
1967
+ datasources?: {
1968
+ provider: () => Promise<any>;
1969
+ };
1970
+ /**
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.
1975
+ */
1976
+ componentSlots?: {
1977
+ provider: () => Promise<any>;
1978
+ };
1979
+ /**
1980
+ * Module dependencies
1981
+ */
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
+ };
1831
1992
  /**
1832
- * Whether this is a final status (end state)
1993
+ * Whether this module is required (always enabled, cannot be disabled).
1994
+ * Required modules like 'auth' and 'common' are always available.
1833
1995
  */
1834
- isFinal?: boolean;
1996
+ required?: boolean;
1835
1997
  /**
1836
- * Whether this is an initial status (starting state)
1998
+ * Additional metadata
1837
1999
  */
1838
- isInitial?: boolean;
2000
+ metadata?: {
2001
+ [key: string]: any;
2002
+ };
1839
2003
  }
1840
2004
  /**
1841
- * Status transition definition
2005
+ * Full feature name with module prefix.
2006
+ * Format: ModuleName.FeatureKey
2007
+ */
2008
+ type AXPFeatureName = string;
2009
+ /**
2010
+ * Feature definition with full name.
1842
2011
  */
1843
- interface AXPStatusTransition {
2012
+ interface AXPFeatureDefinition extends AXPModuleFeatureDefinition {
1844
2013
  /**
1845
- * Source status name
2014
+ * Full feature name (ModuleName.FeatureKey)
1846
2015
  */
1847
- from: string;
2016
+ name: AXPFeatureName;
1848
2017
  /**
1849
- * Target status name
2018
+ * Module name
1850
2019
  */
1851
- to: string;
2020
+ module: string;
1852
2021
  /**
1853
- * Optional condition expression to evaluate before allowing transition
1854
- * Uses expression evaluator syntax (e.g., "{{user.isAdmin}}", "{{item.priority > 5}}")
2022
+ * Feature key (short name)
1855
2023
  */
1856
- condition?: string;
2024
+ key: string;
2025
+ }
2026
+
2027
+ /**
2028
+ * Injection token for module manifest providers.
2029
+ * Modules register their manifest providers using this token.
2030
+ */
2031
+ declare const AXP_MODULE_MANIFEST_PROVIDER: InjectionToken<AXPModuleManifest[]>;
2032
+
2033
+ /**
2034
+ * Registry service for module manifests.
2035
+ * Collects and manages all registered module manifests.
2036
+ */
2037
+ declare class AXPModuleManifestRegistry {
2038
+ private readonly manifests;
2039
+ private readonly featureDefinitions;
2040
+ private readonly injector;
2041
+ private initializationPromise;
2042
+ private isInitialized;
1857
2043
  /**
1858
- * Optional display title for the transition
2044
+ * Initialize registry by loading all manifest providers.
2045
+ * Should be called during app startup.
2046
+ * Safe to call multiple times - will only initialize once.
1859
2047
  */
1860
- title?: string;
2048
+ initialize(): Promise<void>;
1861
2049
  /**
1862
- * Optional description
2050
+ * Internal initialization logic.
1863
2051
  */
1864
- description?: string;
2052
+ private _doInitialize;
1865
2053
  /**
1866
- * Optional action identifier
2054
+ * Register a module manifest.
1867
2055
  */
1868
- action?: string;
2056
+ register(manifest: AXPModuleManifest): Promise<void>;
1869
2057
  /**
1870
- * Optional color for the transition button/indicator
2058
+ * Get manifest for a module.
1871
2059
  */
1872
- color?: string;
2060
+ get(moduleName: string): AXPModuleManifest | undefined;
1873
2061
  /**
1874
- * Optional icon for the transition
2062
+ * Get all registered manifests.
1875
2063
  */
1876
- icon?: string;
2064
+ getAll(): AXPModuleManifest[];
2065
+ /**
2066
+ * Check if a module manifest is registered.
2067
+ */
2068
+ has(moduleName: string): boolean;
2069
+ /**
2070
+ * Get all feature definitions from all manifests.
2071
+ */
2072
+ getAllFeatureDefinitions(): AXPFeatureDefinition[];
2073
+ /**
2074
+ * Get feature definition by full name.
2075
+ */
2076
+ getFeatureDefinition(featureName: AXPFeatureName): AXPFeatureDefinition | undefined;
2077
+ /**
2078
+ * Check if a feature is defined in any manifest.
2079
+ */
2080
+ isFeatureDefined(featureName: AXPFeatureName): boolean;
2081
+ /**
2082
+ * Get default value for a feature.
2083
+ * Returns undefined if feature is not defined.
2084
+ */
2085
+ getFeatureDefault(featureName: AXPFeatureName): any;
2086
+ /**
2087
+ * Get all feature definitions for a specific module.
2088
+ */
2089
+ getModuleFeatures(moduleName: string): AXPFeatureDefinition[];
1877
2090
  /**
1878
- * Whether this transition is automatic (no user action required)
2091
+ * Register a feature definition dynamically (e.g., from feature definition provider).
2092
+ * Used to add features that are defined at runtime via featuresProvider.
1879
2093
  */
1880
- isAutomatic?: boolean;
2094
+ registerFeatureDefinition(definition: AXPFeatureDefinition): void;
1881
2095
  /**
1882
- * Whether this transition requires approval
2096
+ * Check if module dependencies are satisfied.
2097
+ * Returns array of missing dependencies.
1883
2098
  */
1884
- requiresApproval?: boolean;
2099
+ checkDependencies(moduleName: string): {
2100
+ missingModules: string[];
2101
+ missingFeatures: string[];
2102
+ };
2103
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPModuleManifestRegistry, never>;
2104
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPModuleManifestRegistry>;
2105
+ }
2106
+
2107
+ interface AXPStartUpTask {
2108
+ name: string;
2109
+ statusText: string;
2110
+ priority: number;
2111
+ run: () => Promise<void>;
1885
2112
  }
2113
+
1886
2114
  /**
1887
- * Abstract class for status providers
1888
- * Similar to AXPTaskBadgeProvider pattern
2115
+ * Startup task to initialize module manifest registry.
2116
+ * Registers this task with app startup service.
1889
2117
  */
1890
- declare abstract class AXPStatusProvider {
2118
+ declare class AXPModuleManifestInitializer {
2119
+ private readonly manifestRegistry;
1891
2120
  /**
1892
- * Unique key for the status (e.g., 'task-management.status')
2121
+ * Create startup task for manifest initialization.
1893
2122
  */
1894
- abstract readonly key: string;
2123
+ createStartupTask(): AXPStartUpTask;
2124
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPModuleManifestInitializer, never>;
2125
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPModuleManifestInitializer>;
2126
+ }
2127
+
2128
+ /**
2129
+ * Context for feature definition providers.
2130
+ * Allows providers to add additional feature definitions dynamically.
2131
+ */
2132
+ declare class AXPFeatureDefinitionProviderContext {
2133
+ private readonly features;
1895
2134
  /**
1896
- * List of available status definitions
2135
+ * Add a feature definition.
2136
+ * @param key Full feature key (ModuleName:FeatureKey format with colon separator)
2137
+ * @param definition Feature definition
1897
2138
  */
1898
- abstract readonly statuses: AXPStatusDefinition[];
2139
+ addFeature(key: string, definition: AXPModuleFeatureDefinition): void;
1899
2140
  /**
1900
- * List of allowed transitions between statuses
2141
+ * Get all feature definitions.
1901
2142
  */
1902
- abstract readonly transitions: AXPStatusTransition[];
2143
+ getFeatures(): Map<string, AXPModuleFeatureDefinition>;
2144
+ }
2145
+ /**
2146
+ * Interface for feature definition providers.
2147
+ * Used to dynamically provide feature definitions for modules.
2148
+ */
2149
+ interface AXPFeatureDefinitionProvider {
1903
2150
  /**
1904
- * Optional default status name
2151
+ * Provide feature definitions.
2152
+ * @param context Context for adding feature definitions
1905
2153
  */
1906
- abstract readonly defaultStatus?: string;
2154
+ provide(context: AXPFeatureDefinitionProviderContext): Promise<void>;
1907
2155
  }
2156
+ /**
2157
+ * Injection token for feature definition providers.
2158
+ */
2159
+ declare const AXP_FEATURE_DEFINITION_PROVIDER: InjectionToken<AXPFeatureDefinitionProvider[]>;
1908
2160
 
1909
2161
  /**
1910
- * Injection token for status providers
1911
- * Use with multi: true to register multiple providers
2162
+ * Minimal provider interfaces for the module provider registry.
2163
+ * These interfaces are defined in core to avoid circular dependencies.
2164
+ * The actual implementations in platform/auth and platform/common implement these interfaces.
1912
2165
  */
1913
- declare const AXP_STATUS_PROVIDERS: InjectionToken<AXPStatusProvider[]>;
1914
2166
  /**
1915
- * Service for managing status definitions from multiple providers
1916
- * Similar to AXPTaskBadgeService pattern - no cache, direct access
1917
- *
1918
- * @example
1919
- * ```typescript
1920
- * // In a module providers array:
1921
- * {
1922
- * provide: AXP_STATUS_PROVIDERS,
1923
- * useClass: TaskStatusProvider,
1924
- * multi: true,
1925
- * }
1926
- *
1927
- * // Example provider implementation:
1928
- * export class TaskStatusProvider extends AXPStatusProvider {
1929
- * readonly key = 'task-management.status';
1930
- * readonly statuses = [
1931
- * { name: 'todo', title: 'To Do', color: '#6b7280', icon: 'fa-light fa-circle', isInitial: true },
1932
- * { name: 'in-progress', title: 'In Progress', color: '#3b82f6', icon: 'fa-light fa-play' },
1933
- * { name: 'done', title: 'Done', color: '#10b981', icon: 'fa-light fa-check-circle', isFinal: true },
1934
- * ];
1935
- * readonly transitions = [
1936
- * { from: 'todo', to: 'in-progress', title: 'Start', condition: '{{user.canEdit}}' },
1937
- * { from: 'in-progress', to: 'done', title: 'Complete' },
1938
- * ];
1939
- * readonly defaultStatus = 'todo';
1940
- * }
2167
+ * Permission definition provider interface.
2168
+ * Actual implementation: @acorex/platform/auth
2169
+ */
2170
+ interface AXPIPermissionDefinitionProvider {
2171
+ define(context: any): Promise<void>;
2172
+ }
2173
+ /**
2174
+ * Menu provider interface.
2175
+ * Actual implementation: @acorex/platform/common
2176
+ */
2177
+ interface AXPIMenuProvider {
2178
+ provide(context: any): Promise<void>;
2179
+ }
2180
+ /**
2181
+ * Setting definition provider interface.
2182
+ * Actual implementation: @acorex/platform/common
2183
+ */
2184
+ interface AXPISettingDefinitionProvider {
2185
+ provide(context: any): Promise<void>;
2186
+ }
2187
+ /**
2188
+ * Search command provider interface.
2189
+ * Actual implementation: @acorex/platform/common
2190
+ */
2191
+ interface AXPISearchCommandProvider {
2192
+ search(text: string): Promise<any[]>;
2193
+ commands?: any[];
2194
+ }
2195
+ /**
2196
+ * Entity definition loader interface.
2197
+ * Actual implementation: @acorex/platform/layout/entity
2198
+ */
2199
+ interface AXIEntityDefinitionLoader {
2200
+ get(moduleName: string, entityName: string): Promise<any | null>;
2201
+ }
2202
+ /**
2203
+ * Edition service interface for querying edition information.
2204
+ * Actual implementation: @acorex/modules/application-management
1941
2205
  *
1942
- * // Later, get the status:
1943
- * const status = statusService.getStatus('task-management.status');
1944
- * if (status) {
1945
- * console.log('Statuses:', status.statuses);
1946
- * console.log('Transitions:', status.transitions);
1947
- * }
1948
- * ```
2206
+ * This interface is defined in core to avoid circular dependencies.
2207
+ * Modules provide implementations that extend AXMEntityCrudServiceImpl.
1949
2208
  */
1950
- declare class AXPStatusDefinitionProviderService {
1951
- private providers;
1952
- private statusMap;
1953
- constructor();
1954
- /**
1955
- * Get a status provider by key
1956
- * Direct access from Map (no lazy load, no cache)
1957
- *
1958
- * @param key - Status key (e.g., 'task-management.status')
1959
- * @returns Status provider with all statuses and transitions, or undefined if not found
1960
- *
1961
- * @example
1962
- * ```typescript
1963
- * const status = statusService.getStatus('task-management.status');
1964
- * if (status) {
1965
- * console.log('Statuses:', status.statuses);
1966
- * console.log('Transitions:', status.transitions);
1967
- * }
1968
- * ```
1969
- */
1970
- getStatus(key: string): AXPStatusProvider | undefined;
1971
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPStatusDefinitionProviderService, never>;
1972
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPStatusDefinitionProviderService>;
2209
+ interface AXPIEditionService {
2210
+ /**
2211
+ * Query editions with pagination and filtering.
2212
+ * @param request Query request with skip, take, and optional filters
2213
+ * @returns Promise that resolves to paged list of editions
2214
+ */
2215
+ query(request: {
2216
+ skip: number;
2217
+ take: number;
2218
+ [key: string]: any;
2219
+ }): Promise<{
2220
+ items: Array<{
2221
+ id: string;
2222
+ title: string;
2223
+ modulesAndFeatures?: {
2224
+ modules: string[];
2225
+ features: Record<string, any>;
2226
+ };
2227
+ [key: string]: any;
2228
+ }>;
2229
+ total: number;
2230
+ }>;
1973
2231
  }
1974
-
1975
2232
  /**
1976
- * Standard system status types
1977
- * These are the predefined status values used across the platform
2233
+ * Injection token for edition service.
2234
+ * Modules should provide their implementation using this token.
2235
+ */
2236
+ declare const AXP_EDITION_SERVICE: InjectionToken<AXPIEditionService>;
2237
+ /**
2238
+ * Module provider loader interface.
2239
+ * Implementation: @acorex/platform/auth
1978
2240
  */
1979
- declare enum AXPSystemStatusType {
1980
- Todo = "todo",
1981
- InProgress = "in-progress",
1982
- InReview = "in-review",
1983
- Blocked = "blocked",
1984
- Done = "done",
1985
- Cancelled = "cancelled",
1986
- Draft = "draft",
1987
- PendingReview = "pending-review",
1988
- Approved = "approved",
1989
- Published = "published",
1990
- Archived = "archived",
1991
- Rejected = "rejected",
1992
- Active = "active",
1993
- Inactive = "inactive",
1994
- Pending = "pending",
1995
- Completed = "completed",
1996
- Suspended = "suspended",
1997
- Failed = "failed"
2241
+ interface AXPIModuleProviderLoader {
2242
+ loadRequiredModules(): Promise<void>;
2243
+ loadProviders(context: any): Promise<void>;
2244
+ clear(): Promise<void>;
2245
+ isModuleRegistered(moduleName: string): boolean;
1998
2246
  }
1999
2247
  /**
2000
- * Standard system status definitions
2001
- * Provides consistent status definitions across the platform
2002
- * Uses AXPStatusDefinition interface from status-definition.types.ts
2248
+ * Injection token for module provider loader.
2249
+ * Implementation: @acorex/platform/auth
2003
2250
  */
2004
- declare const AXPSystemStatuses: Readonly<{
2005
- readonly Todo: {
2006
- readonly name: AXPSystemStatusType.Todo;
2007
- readonly title: string;
2008
- readonly icon: "fa-light fa-circle";
2009
- readonly color: "#6b7280";
2010
- readonly description: string;
2011
- readonly order: 1;
2012
- readonly isActive: true;
2013
- readonly isInitial: true;
2014
- readonly isFinal: false;
2015
- };
2016
- readonly InProgress: {
2017
- readonly name: AXPSystemStatusType.InProgress;
2018
- readonly title: string;
2019
- readonly icon: "fa-light fa-play";
2020
- readonly color: "#3b82f6";
2021
- readonly description: string;
2022
- readonly order: 2;
2023
- readonly isActive: true;
2024
- readonly isInitial: false;
2025
- readonly isFinal: false;
2026
- };
2027
- readonly InReview: {
2028
- readonly name: AXPSystemStatusType.InReview;
2029
- readonly title: string;
2030
- readonly icon: "fa-light fa-eye";
2031
- readonly color: "#8b5cf6";
2032
- readonly description: string;
2033
- readonly order: 3;
2034
- readonly isActive: true;
2035
- readonly isInitial: false;
2036
- readonly isFinal: false;
2037
- };
2038
- readonly Blocked: {
2039
- readonly name: AXPSystemStatusType.Blocked;
2040
- readonly title: string;
2041
- readonly icon: "fa-light fa-ban";
2042
- readonly color: "#ef4444";
2043
- readonly description: string;
2044
- readonly order: 4;
2045
- readonly isActive: true;
2046
- readonly isInitial: false;
2047
- readonly isFinal: false;
2048
- };
2049
- readonly Done: {
2050
- readonly name: AXPSystemStatusType.Done;
2051
- readonly title: string;
2052
- readonly icon: "fa-light fa-check-circle";
2053
- readonly color: "#10b981";
2054
- readonly description: string;
2055
- readonly order: 5;
2056
- readonly isActive: true;
2057
- readonly isInitial: false;
2058
- readonly isFinal: true;
2059
- };
2060
- readonly Cancelled: {
2061
- readonly name: AXPSystemStatusType.Cancelled;
2062
- readonly title: string;
2063
- readonly icon: "fa-light fa-times-circle";
2064
- readonly color: "#64748b";
2065
- readonly description: string;
2066
- readonly order: 6;
2067
- readonly isActive: true;
2068
- readonly isInitial: false;
2069
- readonly isFinal: true;
2070
- };
2071
- readonly Draft: {
2072
- readonly name: AXPSystemStatusType.Draft;
2073
- readonly title: string;
2074
- readonly icon: "fa-light fa-file-pen";
2075
- readonly color: "#6b7280";
2076
- readonly description: string;
2077
- readonly order: 1;
2078
- readonly isActive: true;
2079
- readonly isInitial: true;
2080
- readonly isFinal: false;
2081
- };
2082
- readonly PendingReview: {
2083
- readonly name: AXPSystemStatusType.PendingReview;
2084
- readonly title: string;
2085
- readonly icon: "fa-light fa-clock";
2086
- readonly color: "#f59e0b";
2087
- readonly description: string;
2088
- readonly order: 2;
2089
- readonly isActive: true;
2090
- readonly isInitial: false;
2091
- readonly isFinal: false;
2092
- };
2093
- readonly Approved: {
2094
- readonly name: AXPSystemStatusType.Approved;
2095
- readonly title: string;
2096
- readonly icon: "fa-light fa-check-circle";
2097
- readonly color: "#10b981";
2098
- readonly description: string;
2099
- readonly order: 3;
2100
- readonly isActive: true;
2101
- readonly isInitial: false;
2102
- readonly isFinal: false;
2103
- };
2104
- readonly Published: {
2105
- readonly name: AXPSystemStatusType.Published;
2106
- readonly title: string;
2107
- readonly icon: "fa-light fa-globe";
2108
- readonly color: "#3b82f6";
2109
- readonly description: string;
2110
- readonly order: 4;
2111
- readonly isActive: true;
2112
- readonly isInitial: false;
2113
- readonly isFinal: false;
2114
- };
2115
- readonly Archived: {
2116
- readonly name: AXPSystemStatusType.Archived;
2117
- readonly title: string;
2118
- readonly icon: "fa-light fa-archive";
2119
- readonly color: "#64748b";
2120
- readonly description: string;
2121
- readonly order: 5;
2122
- readonly isActive: true;
2123
- readonly isInitial: false;
2124
- readonly isFinal: true;
2125
- };
2126
- readonly Rejected: {
2127
- readonly name: AXPSystemStatusType.Rejected;
2128
- readonly title: string;
2129
- readonly icon: "fa-light fa-times-circle";
2130
- readonly color: "#ef4444";
2131
- readonly description: string;
2132
- readonly order: 6;
2133
- readonly isActive: true;
2134
- readonly isInitial: false;
2135
- readonly isFinal: true;
2136
- };
2137
- readonly Active: {
2138
- readonly name: AXPSystemStatusType.Active;
2139
- readonly title: string;
2140
- readonly icon: "fa-light fa-check-circle";
2141
- readonly color: "#10b981";
2142
- readonly description: string;
2143
- readonly order: 1;
2144
- readonly isActive: true;
2145
- readonly isInitial: false;
2146
- readonly isFinal: false;
2147
- };
2148
- readonly Inactive: {
2149
- readonly name: AXPSystemStatusType.Inactive;
2150
- readonly title: string;
2151
- readonly icon: "fa-light fa-circle";
2152
- readonly color: "#6b7280";
2153
- readonly description: string;
2154
- readonly order: 2;
2155
- readonly isActive: true;
2156
- readonly isInitial: false;
2157
- readonly isFinal: false;
2158
- };
2159
- readonly Pending: {
2160
- readonly name: AXPSystemStatusType.Pending;
2161
- readonly title: string;
2162
- readonly icon: "fa-light fa-clock";
2163
- readonly color: "#f59e0b";
2164
- readonly description: string;
2165
- readonly order: 1;
2166
- readonly isActive: true;
2167
- readonly isInitial: true;
2168
- readonly isFinal: false;
2169
- };
2170
- readonly Completed: {
2171
- readonly name: AXPSystemStatusType.Completed;
2172
- readonly title: string;
2173
- readonly icon: "fa-light fa-check-circle";
2174
- readonly color: "#10b981";
2175
- readonly description: string;
2176
- readonly order: 10;
2177
- readonly isActive: true;
2178
- readonly isInitial: false;
2179
- readonly isFinal: true;
2180
- };
2181
- readonly Suspended: {
2182
- readonly name: AXPSystemStatusType.Suspended;
2183
- readonly title: string;
2184
- readonly icon: "fa-light fa-pause-circle";
2185
- readonly color: "#f59e0b";
2186
- readonly description: string;
2187
- readonly order: 5;
2188
- readonly isActive: true;
2189
- readonly isInitial: false;
2190
- readonly isFinal: false;
2191
- };
2192
- readonly Failed: {
2193
- readonly name: AXPSystemStatusType.Failed;
2194
- readonly title: string;
2195
- readonly icon: "fa-light fa-xmark-circle";
2196
- readonly color: "#ef4444";
2197
- readonly description: string;
2198
- readonly order: 10;
2199
- readonly isActive: true;
2200
- readonly isInitial: false;
2201
- readonly isFinal: true;
2202
- };
2203
- }>;
2251
+ declare const AXP_MODULE_PROVIDER_LOADER: InjectionToken<AXPIModuleProviderLoader>;
2204
2252
  /**
2205
- * Get system status definition by type
2206
- * @param type - Status type
2207
- * @returns System status definition or undefined
2253
+ * Module provider initializer interface.
2254
+ * Implementation: @acorex/platform/auth
2208
2255
  */
2209
- declare function getSystemStatus(type: AXPSystemStatusType): AXPStatusDefinition;
2256
+ interface AXPIModuleProviderInitializer {
2257
+ createRequiredModulesTask(): any;
2258
+ createStartupTask(): any;
2259
+ loadProvidersIfReady(): Promise<void>;
2260
+ loadProvidersForApplication(application: any): Promise<void>;
2261
+ }
2210
2262
  /**
2211
- * Resolves the visual appearance (color and icon) for status
2212
- * using the system statuses from the core module.
2213
- * @param statusType - Status type string
2214
- * @returns Color and icon for the status
2263
+ * Injection token for module provider initializer.
2264
+ * Implementation: @acorex/platform/auth
2215
2265
  */
2216
- declare function resolveStatusLook(statusType: string): {
2217
- color: AXStyleColorType;
2218
- icon: string;
2219
- };
2266
+ declare const AXP_MODULE_PROVIDER_INITIALIZER: InjectionToken<AXPIModuleProviderInitializer>;
2220
2267
  /**
2221
- * Resolves the complete status information (title, description, icon, color) for a status
2222
- * using the system statuses from the core module.
2223
- * @param statusType - Status type string
2224
- * @returns Complete status information as AXPStatusDefinition
2268
+ * Session service interface for module provider operations.
2269
+ * Implementation: @acorex/platform/auth
2225
2270
  */
2226
- declare function getStatusInfo(statusType: string): AXPStatusDefinition;
2271
+ interface AXPISessionService {
2272
+ isLoading$: any;
2273
+ status$: any;
2274
+ tenant: any | null;
2275
+ application: any | null;
2276
+ user: any | null;
2277
+ }
2227
2278
  /**
2228
- * Get system status definition directly (no conversion needed since it's already AXPStatusDefinition)
2229
- * @param statusType - Status type
2230
- * @param overrides - Optional overrides for the status definition
2231
- * @returns AXPStatusDefinition
2279
+ * Injection token for session service.
2280
+ * Implementation: @acorex/platform/auth
2232
2281
  */
2233
- declare function systemStatusToDefinition(statusType: AXPSystemStatusType, overrides?: Partial<AXPStatusDefinition>): AXPStatusDefinition;
2282
+ declare const AXP_SESSION_SERVICE: InjectionToken<AXPISessionService>;
2283
+
2284
+ /**
2285
+ * Registry service for dynamically loaded module providers.
2286
+ * Stores provider instances that are loaded conditionally based on access control.
2287
+ */
2288
+ declare class AXPModuleProviderRegistry {
2289
+ private readonly permissionProviders;
2290
+ private readonly menuProviders;
2291
+ private readonly entityProviders;
2292
+ private readonly settingProviders;
2293
+ private readonly searchProviders;
2294
+ private readonly featureProviders;
2295
+ private readonly datasourceProviders;
2296
+ /**
2297
+ * Register a permission provider.
2298
+ */
2299
+ registerPermissionProvider(provider: AXPIPermissionDefinitionProvider): void;
2300
+ /**
2301
+ * Get all registered permission providers.
2302
+ */
2303
+ getPermissionProviders(): AXPIPermissionDefinitionProvider[];
2304
+ /**
2305
+ * Register a menu provider.
2306
+ */
2307
+ registerMenuProvider(provider: AXPIMenuProvider): void;
2308
+ /**
2309
+ * Get all registered menu providers.
2310
+ */
2311
+ getMenuProviders(): AXPIMenuProvider[];
2312
+ /**
2313
+ * Register an entity provider.
2314
+ */
2315
+ registerEntityProvider(provider: AXIEntityDefinitionLoader): void;
2316
+ /**
2317
+ * Get all registered entity providers.
2318
+ */
2319
+ getEntityProviders(): AXIEntityDefinitionLoader[];
2320
+ /**
2321
+ * Register a settings provider.
2322
+ */
2323
+ registerSettingProvider(provider: AXPISettingDefinitionProvider): void;
2324
+ /**
2325
+ * Get all registered settings providers.
2326
+ */
2327
+ getSettingProviders(): AXPISettingDefinitionProvider[];
2328
+ /**
2329
+ * Register a search provider.
2330
+ */
2331
+ registerSearchProvider(provider: AXPISearchCommandProvider): void;
2332
+ /**
2333
+ * Get all registered search providers.
2334
+ */
2335
+ getSearchProviders(): AXPISearchCommandProvider[];
2336
+ /**
2337
+ * Register a feature provider.
2338
+ */
2339
+ registerFeatureProvider(provider: AXPFeatureDefinitionProvider): void;
2340
+ /**
2341
+ * Get all registered feature providers.
2342
+ */
2343
+ getFeatureProviders(): AXPFeatureDefinitionProvider[];
2344
+ /**
2345
+ * Register a datasource provider.
2346
+ */
2347
+ registerDatasourceProvider(provider: AXPDataSourceDefinitionProvider): void;
2348
+ /**
2349
+ * Get all registered datasource providers.
2350
+ */
2351
+ getDatasourceProviders(): AXPDataSourceDefinitionProvider[];
2352
+ /**
2353
+ * Clear all registered providers.
2354
+ * Useful for testing or re-initialization.
2355
+ */
2356
+ clear(): void;
2357
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPModuleProviderRegistry, never>;
2358
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPModuleProviderRegistry>;
2359
+ }
2360
+
2361
+ /**
2362
+ * Access control context for module loading.
2363
+ * Note: Types are defined locally to avoid circular dependency with @acorex/platform/auth
2364
+ * These types match the structure of AXPTenant, AXPApplication, and AXPUser
2365
+ */
2366
+ interface AXPModuleAccessContext {
2367
+ tenant: {
2368
+ id: string;
2369
+ name: string;
2370
+ title: string;
2371
+ description?: string;
2372
+ logo?: any;
2373
+ [key: string]: any;
2374
+ };
2375
+ application: {
2376
+ id: string;
2377
+ name: string;
2378
+ title?: string;
2379
+ version?: string;
2380
+ edition?: {
2381
+ id: string;
2382
+ title: string;
2383
+ description?: string;
2384
+ };
2385
+ description?: string;
2386
+ logo?: any;
2387
+ [key: string]: any;
2388
+ };
2389
+ edition: {
2390
+ id: string;
2391
+ title: string;
2392
+ modulesAndFeatures?: {
2393
+ modules: string[];
2394
+ features: Record<string, any>;
2395
+ };
2396
+ };
2397
+ subscription?: any;
2398
+ user: {
2399
+ id: string;
2400
+ name: string;
2401
+ title: string;
2402
+ avatar?: string;
2403
+ [key: string]: any;
2404
+ };
2405
+ }
2406
+ /**
2407
+ * Service for checking module access control.
2408
+ * Provides centralized access control logic that can be overridden per module.
2409
+ */
2410
+ interface AXPModuleAccessControlService {
2411
+ /**
2412
+ * Check if user has access to a module based on context.
2413
+ * @param moduleName Module name to check access for
2414
+ * @param context Access control context
2415
+ * @returns true if module should be loaded, false otherwise
2416
+ */
2417
+ checkAccess(moduleName: string, context: AXPModuleAccessContext): boolean | Promise<boolean>;
2418
+ }
2419
+ /**
2420
+ * Default implementation of module access control service.
2421
+ * Checks if module is enabled in edition.modulesAndFeatures.modules.
2422
+ */
2423
+ declare class DefaultModuleAccessControlService implements AXPModuleAccessControlService {
2424
+ checkAccess(moduleName: string, context: AXPModuleAccessContext): boolean;
2425
+ static ɵfac: i0.ɵɵFactoryDeclaration<DefaultModuleAccessControlService, never>;
2426
+ static ɵprov: i0.ɵɵInjectableDeclaration<DefaultModuleAccessControlService>;
2427
+ }
2428
+ /**
2429
+ * Injection token for module access control service.
2430
+ * If not provided, DefaultModuleAccessControlService will be used as fallback.
2431
+ */
2432
+ declare const AXP_MODULE_ACCESS_CONTROL_SERVICE: InjectionToken<AXPModuleAccessControlService>;
2433
+
2434
+ declare class AXPAppStartUpService {
2435
+ private tasks;
2436
+ registerTask(task: AXPStartUpTask): void;
2437
+ runAllTasks(): Promise<void>;
2438
+ private updateStatus;
2439
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPAppStartUpService, never>;
2440
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPAppStartUpService>;
2441
+ }
2442
+ declare const AXPAppStartUpProvider: i0.EnvironmentProviders;
2234
2443
 
2235
2444
  /**
2236
2445
  * Represents a tag with text, color, and metadata
@@ -2344,32 +2553,94 @@ declare class AXPCountdownPipe implements PipeTransform {
2344
2553
  static ɵpipe: i0.ɵɵPipeDeclaration<AXPCountdownPipe, "countdown", true>;
2345
2554
  }
2346
2555
 
2347
- declare function extractNestedFieldsWildcard(obj: any, basePath: string, fields: string[]): any;
2348
- declare function setSmart(obj: any, smartPath: string, value: any): any;
2349
- declare function getSmart(obj: any, smartPath: string): any;
2350
- declare function extractValue<T = any>(value: any, key?: string): T | null;
2351
- declare function cleanDeep(obj: any): any;
2352
- type ChangeEntry = {
2353
- path: string;
2354
- oldValue: any;
2355
- newValue: any;
2356
- arrayDiff?: {
2357
- added: any[];
2358
- removed: any[];
2359
- };
2360
- };
2361
- declare function getChangedPaths(obj1: any, obj2: any): string[];
2362
- declare function getDetailedChanges(obj1: any, obj2: any): ChangeEntry[];
2363
- declare function getEnumValues(enumType: any): {
2364
- id: string;
2365
- title: string;
2366
- }[];
2367
-
2368
2556
  declare function applyFilterArray(dataArray: any[], filters?: AXDataSourceFilterOption[], logic?: 'and' | 'or'): any[];
2369
2557
  declare function applySortArray(dataArray: any, sorts: AXDataSourceSortOption[]): any;
2370
2558
  declare function applyPagination<T>(dataArray: T[], skip: number, take: number): T[];
2371
2559
  declare function applyQueryArray<T>(dataArray: T[], query: AXDataSourceQuery): Promise<AXDataSourceCallbackResult<T>>;
2372
2560
 
2561
+ /**
2562
+ * Screen Size Enum
2563
+ */
2564
+ declare enum AXPScreenSize {
2565
+ Small = "small",
2566
+ Medium = "medium",
2567
+ Large = "large"
2568
+ }
2569
+ /**
2570
+ * Device Type Enum
2571
+ */
2572
+ declare enum AXPDeviceType {
2573
+ Mobile = "mobile",
2574
+ Tablet = "tablet",
2575
+ Desktop = "desktop"
2576
+ }
2577
+ /**
2578
+ * Injectable service that provides reactive device and screen size information.
2579
+ * Monitors window resize events and updates signals accordingly.
2580
+ */
2581
+ declare class AXPDeviceService {
2582
+ /**
2583
+ * Current screen size (Small, Medium, Large)
2584
+ */
2585
+ readonly screenSize: i0.WritableSignal<AXPScreenSize>;
2586
+ /**
2587
+ * Current device type (Mobile, Tablet, Desktop)
2588
+ */
2589
+ readonly deviceType: i0.WritableSignal<AXPDeviceType>;
2590
+ /**
2591
+ * Whether the device supports touch input
2592
+ */
2593
+ readonly isTouchDevice: i0.WritableSignal<boolean>;
2594
+ /**
2595
+ * Whether the screen size is Small
2596
+ */
2597
+ readonly isSmall: i0.Signal<boolean>;
2598
+ /**
2599
+ * Whether the screen size is Medium
2600
+ */
2601
+ readonly isMedium: i0.Signal<boolean>;
2602
+ /**
2603
+ * Whether the screen size is Large
2604
+ */
2605
+ readonly isLarge: i0.Signal<boolean>;
2606
+ /**
2607
+ * Whether the device is Mobile
2608
+ */
2609
+ readonly isMobileDevice: i0.Signal<boolean>;
2610
+ /**
2611
+ * Whether the device is Tablet
2612
+ */
2613
+ readonly isTabletDevice: i0.Signal<boolean>;
2614
+ /**
2615
+ * Whether the device is Desktop
2616
+ */
2617
+ readonly isDesktopDevice: i0.Signal<boolean>;
2618
+ /**
2619
+ * Whether the device supports touch (alias for isTouchDevice)
2620
+ */
2621
+ readonly isTouchScreen: i0.Signal<boolean>;
2622
+ private _resizeListener;
2623
+ constructor();
2624
+ /**
2625
+ * Update screen size and device type based on window width
2626
+ */
2627
+ private _updateScreenSize;
2628
+ /**
2629
+ * Set up event listener for window resize
2630
+ */
2631
+ private _setupResizeListener;
2632
+ /**
2633
+ * Remove event listener for window resize
2634
+ */
2635
+ private _removeResizeListener;
2636
+ /**
2637
+ * Clean up resources when service is destroyed
2638
+ */
2639
+ destroy(): void;
2640
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDeviceService, never>;
2641
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPDeviceService>;
2642
+ }
2643
+
2373
2644
  /**
2374
2645
  * Service for applying and resetting text highlighting within specified HTML elements.
2375
2646
  */
@@ -2413,7 +2684,32 @@ declare class AXHighlightService {
2413
2684
  static ɵprov: i0.ɵɵInjectableDeclaration<AXHighlightService>;
2414
2685
  }
2415
2686
 
2687
+ declare function extractNestedFieldsWildcard(obj: any, basePath: string, fields: string[]): any;
2688
+ declare function setSmart(obj: any, smartPath: string, value: any): any;
2689
+ declare function getSmart(obj: any, smartPath: string): any;
2690
+ declare function extractValue<T = any>(value: any, key?: string): T | null;
2691
+ declare function cleanDeep(obj: any): any;
2692
+ type ChangeEntry = {
2693
+ path: string;
2694
+ oldValue: any;
2695
+ newValue: any;
2696
+ arrayDiff?: {
2697
+ added: any[];
2698
+ removed: any[];
2699
+ };
2700
+ };
2701
+ declare function getChangedPaths(obj1: any, obj2: any): string[];
2702
+ declare function getDetailedChanges(obj1: any, obj2: any): ChangeEntry[];
2703
+ declare function getEnumValues(enumType: any): {
2704
+ id: string;
2705
+ title: string;
2706
+ }[];
2707
+
2416
2708
  declare function extractTextFromHtml(value: string): string;
2709
+ /**
2710
+ * Generate kebab-case group name from title
2711
+ */
2712
+ declare function generateKebabCase(title: string): string;
2417
2713
 
2418
- export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPColorPaletteProvider, AXPColorPaletteService, AXPComponentLogoConfig, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPGridLayoutDirective, AXPHookService, AXPImageUrlLogoConfig, AXPPlatformScope, 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, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getStatusInfo, getSystemActions, getSystemStatus, objectKeyValueTransforms, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, resolveStatusLook, setSmart, systemStatusToDefinition };
2419
- export type { AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, 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, AXPStatusDefinition, AXPStatusTransition, AXPStringValidationRules, AXPSystemAction, AXPTag, AXPTagFilterOptions, AXPUserReference, AXPValidationRule, AXPValidationRules, AXPValueTransformerFunction, AXPValueTransformerFunctions, AXPValueUnit, AXPValueUnits, AXPViewBlockDefinition, AXPViewDefinition, AXPViewFieldDefinition, AXPViewQuery, AXPWidgetTrigger, AXPWidgetTriggers };
2714
+ 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, AXPModuleManifestInitializer, 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_INITIALIZER, 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 };
2715
+ 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, AXPIModuleProviderInitializer, 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 };