@acorex/platform 21.0.0-next.1 → 21.0.0-next.11

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 (87) hide show
  1. package/auth/index.d.ts +235 -5
  2. package/common/index.d.ts +220 -218
  3. package/core/index.d.ts +370 -434
  4. package/fesm2022/acorex-platform-auth.mjs +200 -37
  5. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  6. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs → acorex-platform-common-common-settings.provider-O8usQ0VC.mjs} +4 -4
  7. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map → acorex-platform-common-common-settings.provider-O8usQ0VC.mjs.map} +1 -1
  8. package/fesm2022/acorex-platform-common.mjs +215 -198
  9. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-core.mjs +548 -585
  11. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-domain.mjs +16 -16
  13. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-builder.mjs +84 -37
  15. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-components.mjs +303 -195
  17. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-designer.mjs +72 -72
  19. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-entity.mjs +3528 -1698
  21. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-views.mjs +25 -17
  23. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs +190 -110
  25. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  26. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-D-NsRvRl.mjs} +4 -4
  27. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map → acorex-platform-layout-widgets-button-widget-designer.component-D-NsRvRl.mjs.map} +1 -1
  28. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs → acorex-platform-layout-widgets-file-list-popup.component-CCcKHSHj.mjs} +4 -4
  29. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map → acorex-platform-layout-widgets-file-list-popup.component-CCcKHSHj.mjs.map} +1 -1
  30. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-IrT52Nh1.mjs} +4 -4
  31. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map → acorex-platform-layout-widgets-image-preview.popup-IrT52Nh1.mjs.map} +1 -1
  32. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-DFbfh-OX.mjs} +4 -4
  33. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map → acorex-platform-layout-widgets-page-widget-designer.component-DFbfh-OX.mjs.map} +1 -1
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-Dw6naXvq.mjs +111 -0
  35. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-Dw6naXvq.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component--4R3TUdJ.mjs} +4 -4
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map → acorex-platform-layout-widgets-tabular-data-edit-popup.component--4R3TUdJ.mjs.map} +1 -1
  38. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BeVQuHFj.mjs} +4 -4
  39. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-BeVQuHFj.mjs.map} +1 -1
  40. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-CdQxqi0D.mjs} +4 -4
  41. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map → acorex-platform-layout-widgets-text-block-widget-designer.component-CdQxqi0D.mjs.map} +1 -1
  42. package/fesm2022/acorex-platform-layout-widgets.mjs +2247 -1226
  43. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  44. package/fesm2022/acorex-platform-native.mjs +7 -7
  45. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-runtime.mjs +43 -43
  47. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  48. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs → acorex-platform-themes-default-entity-master-create-view.component-D2ucwC3F.mjs} +4 -4
  49. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-D2ucwC3F.mjs.map} +1 -1
  50. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs → acorex-platform-themes-default-entity-master-list-view.component-CD4Q_UIG.mjs} +13 -13
  51. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CD4Q_UIG.mjs.map +1 -0
  52. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs → acorex-platform-themes-default-entity-master-modify-view.component-D5BYbUGK.mjs} +7 -8
  53. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-D5BYbUGK.mjs.map +1 -0
  54. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-Cf4ei46_.mjs} +7 -7
  55. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-Cf4ei46_.mjs.map} +1 -1
  56. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-DdMToZ9q.mjs} +4 -4
  57. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map → acorex-platform-themes-default-error-401.component-DdMToZ9q.mjs.map} +1 -1
  58. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-CKsa5aPE.mjs} +4 -4
  59. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map → acorex-platform-themes-default-error-404.component-CKsa5aPE.mjs.map} +1 -1
  60. package/fesm2022/{acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs → acorex-platform-themes-default-error-offline.component-1gxFTAuX.mjs} +4 -4
  61. package/fesm2022/{acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map → acorex-platform-themes-default-error-offline.component-1gxFTAuX.mjs.map} +1 -1
  62. package/fesm2022/acorex-platform-themes-default.mjs +39 -42
  63. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  64. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-Ds8eRMuV.mjs} +4 -4
  65. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map → acorex-platform-themes-shared-icon-chooser-column.component-Ds8eRMuV.mjs.map} +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-Dv38sOzr.mjs} +4 -4
  67. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map → acorex-platform-themes-shared-icon-chooser-view.component-Dv38sOzr.mjs.map} +1 -1
  68. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-DcO6P6OG.mjs} +11 -11
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DcO6P6OG.mjs.map +1 -0
  70. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-B7T2qtaI.mjs} +4 -4
  71. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map → acorex-platform-themes-shared-theme-color-chooser-view.component-B7T2qtaI.mjs.map} +1 -1
  72. package/fesm2022/acorex-platform-themes-shared.mjs +41 -41
  73. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  74. package/fesm2022/acorex-platform-workflow.mjs +1529 -1758
  75. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  76. package/layout/builder/index.d.ts +15 -3
  77. package/layout/components/index.d.ts +23 -6
  78. package/layout/entity/index.d.ts +438 -159
  79. package/layout/views/index.d.ts +16 -11
  80. package/layout/widget-core/index.d.ts +47 -10
  81. package/layout/widgets/index.d.ts +213 -42
  82. package/package.json +5 -5
  83. package/themes/default/index.d.ts +0 -1
  84. package/workflow/index.d.ts +1050 -1759
  85. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +0 -1
  86. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  87. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.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, ViewContainerRef, ElementRef, EventEmitter, OnInit, OnChanges, Renderer2, SimpleChanges, OnDestroy, Injector, PipeTransform, Provider } 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';
@@ -945,6 +945,7 @@ interface AXPContent {
945
945
  }
946
946
 
947
947
  type AXPDataSource = string | AXDataSource | any[];
948
+ type AXPDataType = 'string' | 'number' | 'object' | 'boolean' | 'array';
948
949
  interface AXPPagedListResult<T = any> {
949
950
  items: T[];
950
951
  total: number;
@@ -958,16 +959,121 @@ interface AXPQueryRequest {
958
959
  [key: string]: string;
959
960
  };
960
961
  }
961
- type AXPDataType = 'string' | 'number' | 'object' | 'boolean' | 'array';
962
+ /**
963
+ * Category Entity - Base interface for hierarchical category structures
964
+ *
965
+ * This interface provides a standardized data model for category entities across the platform.
966
+ * All category entities (e.g., ReportCategory, ActivityCategory, WorkflowCategory) extend this interface
967
+ * to ensure consistency in data structure and field names.
968
+ *
969
+ * @template TKey - The type of the identifier key (default: string)
970
+ *
971
+ * @example
972
+ * ```typescript
973
+ * const category: AXPCategoryEntity = {
974
+ * id: 'cat-001',
975
+ * title: 'Electronics',
976
+ * description: 'Electronic products',
977
+ * parentId: undefined, // Root category
978
+ * childrenCount: 2, // Has 2 direct child categories
979
+ * itemsCount: 5, // Has 5 items directly in this category
980
+ * totalChildrenCount: 6, // Total of 6 nested categories (including grandchildren)
981
+ * totalItemsCount: 23 // Total of 23 items in entire category tree
982
+ * };
983
+ * ```
984
+ */
962
985
  interface AXPCategoryEntity<TKey = string> {
986
+ /** Unique identifier for the category */
963
987
  id: TKey;
988
+ /** Display name of the category (required) */
964
989
  title: string;
990
+ /** Optional description of the category */
965
991
  description?: string;
992
+ /** Parent category ID (undefined for root categories) */
966
993
  parentId?: TKey;
994
+ /**
995
+ * Count of direct child categories only (not recursive)
996
+ *
997
+ * Used by UI components to determine if a category has children and should show an expand icon.
998
+ * This enables efficient lazy loading - components can check this property without querying the API.
999
+ *
1000
+ * @example
1001
+ * - Category with 2 direct children: `childrenCount: 2`
1002
+ * - Leaf category (no children): `childrenCount: 0`
1003
+ *
1004
+ * @remarks
1005
+ * - Always set to `0` for leaf categories
1006
+ * - Does not include grandchildren or nested descendants
1007
+ * - Automatically maintained by middleware for category entities
1008
+ */
967
1009
  childrenCount: number;
1010
+ /**
1011
+ * Count of items directly assigned to this category (not recursive)
1012
+ *
1013
+ * Represents the number of items (e.g., reports, activities, workflows) that are directly
1014
+ * assigned to this category. Does not include items from child categories.
1015
+ *
1016
+ * Useful for:
1017
+ * - Displaying item counts per category in UI (e.g., "5 reports" badge)
1018
+ * - Optimizing queries (skip API call if itemsCount === 0)
1019
+ * - Showing category statistics
1020
+ *
1021
+ * @example
1022
+ * - Category with 5 reports directly assigned: `itemsCount: 5`
1023
+ * - Category with no direct items: `itemsCount: 0` or `undefined`
1024
+ *
1025
+ * @remarks
1026
+ * - Does not include items from child categories
1027
+ * - Can be calculated dynamically or stored
1028
+ * - Optional - may be undefined if not needed
1029
+ */
968
1030
  itemsCount?: number;
969
- totalChildren?: number;
970
- totalItems?: number;
1031
+ /**
1032
+ * Recursive count of all nested child categories (includes all descendants)
1033
+ *
1034
+ * Represents the total number of categories in the entire subtree starting from this category.
1035
+ * Includes children, grandchildren, and all nested descendants.
1036
+ *
1037
+ * Useful for:
1038
+ * - Analytics and summary displays
1039
+ * - Showing complete category tree scope
1040
+ * - Performance metrics
1041
+ *
1042
+ * @example
1043
+ * Root category with:
1044
+ * - 2 direct children
1045
+ * - Each child has 2 children (4 grandchildren)
1046
+ * Result: `totalChildrenCount: 6` (2 + 4)
1047
+ *
1048
+ * @remarks
1049
+ * - Optional - typically used for analytics
1050
+ * - Includes all nested levels (recursive)
1051
+ * - Can be expensive to calculate for large trees
1052
+ */
1053
+ totalChildrenCount?: number;
1054
+ /**
1055
+ * Recursive count of all items in this category and all descendants
1056
+ *
1057
+ * Represents the total number of items (e.g., reports, activities, workflows) in the entire
1058
+ * category tree, including items from this category and all nested child categories.
1059
+ *
1060
+ * Useful for:
1061
+ * - Analytics and summary displays
1062
+ * - Showing complete scope of a category branch
1063
+ * - Dashboard statistics
1064
+ *
1065
+ * @example
1066
+ * Category with:
1067
+ * - 5 items directly assigned
1068
+ * - 1 child category with 3 items
1069
+ * Result: `totalItemsCount: 8` (5 + 3)
1070
+ *
1071
+ * @remarks
1072
+ * - Optional - typically used for analytics
1073
+ * - Includes items from all nested categories (recursive)
1074
+ * - Can be expensive to calculate for large trees
1075
+ */
1076
+ totalItemsCount?: number;
971
1077
  }
972
1078
  interface AXPCategoryEntityWithItems<T> extends AXPCategoryEntity {
973
1079
  items: T[];
@@ -983,6 +1089,7 @@ interface AXPCategorizedEntityDto {
983
1089
  title: string;
984
1090
  }[];
985
1091
  }
1092
+ type AXPEntityOp = 'initial' | 'create' | 'update' | 'delete' | 'getOne' | 'getAll' | 'query';
986
1093
 
987
1094
  type AXPWidgetTrigger = {
988
1095
  event: string;
@@ -1145,10 +1252,8 @@ declare class AXPIconLogoConfig implements AXPLogoConfig {
1145
1252
  constructor(icon: string, color?: string | undefined);
1146
1253
  }
1147
1254
 
1148
- type AXPPlatformScopeKey = 'C' | 'G' | 'P' | 'T' | 'U';
1255
+ type AXPPlatformScopeKey = 'P' | 'T' | 'U';
1149
1256
  declare enum AXPPlatformScope {
1150
- Environment = "C",
1151
- Global = "G",
1152
1257
  Platform = "P",
1153
1258
  Tenant = "T",
1154
1259
  User = "U"
@@ -1472,6 +1577,173 @@ declare class AXPDefaultColorPalettesProvider extends AXPColorPaletteProvider {
1472
1577
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPDefaultColorPalettesProvider>;
1473
1578
  }
1474
1579
 
1580
+ /**
1581
+ * Column width value can be a number (converted to pixels) or a string with any CSS unit
1582
+ * @example 150 (becomes '150px'), '300px', '50%', '2rem', '20ch'
1583
+ */
1584
+ type ColumnWidthValue = string | number;
1585
+ /**
1586
+ * Matcher for column name - can be exact string match or RegExp pattern
1587
+ * @example 'title', /^user/, /.*name$/i
1588
+ */
1589
+ type ColumnNameMatcher = string | RegExp;
1590
+ /**
1591
+ * Matcher for widget type - can be exact string match or RegExp pattern (case-insensitive)
1592
+ * @example 'text-box', /^date/, /.*editor$/i
1593
+ */
1594
+ type WidgetTypeMatcher = string | RegExp;
1595
+ /**
1596
+ * Defines a single width matching rule
1597
+ */
1598
+ interface AXPColumnWidthMatcher {
1599
+ /**
1600
+ * Match by column name (exact string or RegExp pattern)
1601
+ * Takes precedence over widgetType matching
1602
+ * @example 'title', /^user/, /.*name$/i
1603
+ */
1604
+ name?: ColumnNameMatcher;
1605
+ /**
1606
+ * Match by widget type (exact string or RegExp pattern, case-insensitive)
1607
+ * Used as fallback when name doesn't match
1608
+ * @example 'text-box', /^date/, /.*editor$/i
1609
+ */
1610
+ widgetType?: WidgetTypeMatcher;
1611
+ /**
1612
+ * Width value to apply if this matcher matches
1613
+ * Numbers are converted to pixels (e.g., 150 -> '150px')
1614
+ * Strings can include any CSS unit (e.g., '300px', '50%', '2rem')
1615
+ */
1616
+ width: ColumnWidthValue;
1617
+ /**
1618
+ * Priority for this matcher within the provider (higher = more specific, applied first)
1619
+ * Default: 0
1620
+ */
1621
+ priority?: number;
1622
+ }
1623
+ /**
1624
+ * Provider configuration for column width rules
1625
+ */
1626
+ interface AXPColumnWidthProvider {
1627
+ /**
1628
+ * Array of matchers to evaluate
1629
+ * Evaluated in priority order (highest first), then by match type (name before widgetType)
1630
+ */
1631
+ matchers: AXPColumnWidthMatcher[];
1632
+ /**
1633
+ * Priority for this provider relative to other providers (higher = applied first)
1634
+ * Default: 100
1635
+ */
1636
+ priority?: number;
1637
+ }
1638
+ /**
1639
+ * Generic column interface for width resolution
1640
+ * Works with any column type that has these properties
1641
+ */
1642
+ interface IColumnWithWidth {
1643
+ /**
1644
+ * Column name
1645
+ */
1646
+ name: string;
1647
+ /**
1648
+ * Current width (if already set)
1649
+ */
1650
+ width?: string;
1651
+ /**
1652
+ * Widget type information (optional)
1653
+ */
1654
+ widget?: {
1655
+ type: string;
1656
+ };
1657
+ /**
1658
+ * Additional options that might contain width
1659
+ */
1660
+ options?: {
1661
+ width?: string;
1662
+ };
1663
+ /**
1664
+ * For entity columns - showAs configuration
1665
+ */
1666
+ showAs?: {
1667
+ type: string;
1668
+ };
1669
+ }
1670
+
1671
+ /**
1672
+ * Service for resolving column widths based on registered providers
1673
+ * Supports matching by column name (priority) and widget type (fallback)
1674
+ * Uses multi-provider pattern for extensibility
1675
+ */
1676
+ declare class AXPColumnWidthService {
1677
+ private readonly providers;
1678
+ /**
1679
+ * Resolve width for a column based on registered providers
1680
+ * Only returns a width if column doesn't already have one set
1681
+ *
1682
+ * @param column Column to resolve width for
1683
+ * @returns Resolved width string (normalized) or undefined if no match or column already has width
1684
+ */
1685
+ resolveWidth(column: IColumnWithWidth): string | undefined;
1686
+ /**
1687
+ * Apply resolved width to a column (mutates the column)
1688
+ * Only applies if column doesn't already have a width
1689
+ *
1690
+ * @param column Column to apply width to
1691
+ * @returns true if width was applied, false if column already had width or no match found
1692
+ */
1693
+ applyWidth(column: IColumnWithWidth): boolean;
1694
+ /**
1695
+ * Collect all matchers from all providers, sorted by provider priority and matcher priority
1696
+ */
1697
+ private collectMatchers;
1698
+ /**
1699
+ * Find first matching matcher by column name
1700
+ * Name matches take precedence over widget type matches
1701
+ */
1702
+ private findNameMatch;
1703
+ /**
1704
+ * Find first matching matcher by widget type (case-insensitive)
1705
+ */
1706
+ private findWidgetTypeMatch;
1707
+ /**
1708
+ * Normalize width value to string format
1709
+ * Numbers are converted to pixels (e.g., 150 -> '150px')
1710
+ * Strings are preserved as-is (supports any CSS unit)
1711
+ */
1712
+ private normalizeWidth;
1713
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPColumnWidthService, never>;
1714
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPColumnWidthService>;
1715
+ }
1716
+
1717
+ /**
1718
+ * Injection token for column width providers
1719
+ * Use this to register multiple column width providers with multi: true
1720
+ *
1721
+ * @example
1722
+ * ```typescript
1723
+ * providers: [
1724
+ * {
1725
+ * provide: AXP_COLUMN_WIDTH_PROVIDER,
1726
+ * useValue: {
1727
+ * matchers: [
1728
+ * { name: 'title', width: '300px', priority: 10 },
1729
+ * { widgetType: /text-box/i, width: '200px' }
1730
+ * ],
1731
+ * priority: 150
1732
+ * },
1733
+ * multi: true
1734
+ * }
1735
+ * ]
1736
+ * ```
1737
+ */
1738
+ declare const AXP_COLUMN_WIDTH_PROVIDER: InjectionToken<AXPColumnWidthProvider[]>;
1739
+
1740
+ /**
1741
+ * Default column width configuration
1742
+ * Migrated from DEFAULT_COLUMN_WIDTHS in column-width.middleware.ts
1743
+ * Provides sensible defaults for common column names
1744
+ */
1745
+ declare const defaultColumnWidthProvider: AXPColumnWidthProvider;
1746
+
1475
1747
  type AXPContextState = 'initiated' | 'restored' | 'changed' | 'patch';
1476
1748
  type AXPContextData = {
1477
1749
  [key: string]: any;
@@ -1577,13 +1849,30 @@ interface AXPDataSourceDefinitionProvider {
1577
1849
  declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDefinitionProvider[]>;
1578
1850
  declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
1579
1851
  private providers;
1580
- private providerRegistry;
1581
1852
  items(): Promise<AXPDataSourceDefinition[]>;
1582
1853
  get(name: string): Promise<AXPDataSourceDefinition | undefined>;
1583
1854
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
1584
1855
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPDataSourceDefinitionProviderService>;
1585
1856
  }
1586
1857
 
1858
+ declare class AXPContentCheckerDirective {
1859
+ viewContainerRef: ViewContainerRef;
1860
+ elementRef: ElementRef<HTMLDivElement>;
1861
+ isEmpty: i0.Signal<boolean>;
1862
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPContentCheckerDirective, never>;
1863
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPContentCheckerDirective, "[axp-content-checker]", ["checker"], {}, {}, never, never, true, never>;
1864
+ }
1865
+
1866
+ declare class AXPDblClickDirective {
1867
+ onDblClick: EventEmitter<Event>;
1868
+ private lastTap;
1869
+ private readonly doubleTapThreshold;
1870
+ handleOnDblClick(event: Event): void;
1871
+ onTouchEnd(event: TouchEvent): void;
1872
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDblClickDirective, never>;
1873
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPDblClickDirective, "[onDblClick]", never, {}, { "onDblClick": "onDblClick"; }, never, never, true, never>;
1874
+ }
1875
+
1587
1876
  declare class AXPElementDataDirective implements OnInit {
1588
1877
  private elementRef;
1589
1878
  data: i0.InputSignal<any>;
@@ -1603,16 +1892,6 @@ declare class AXPElementDataDirective implements OnInit {
1603
1892
  static ɵdir: i0.ɵɵDirectiveDeclaration<AXPElementDataDirective, "[axp-data]", never, { "data": { "alias": "axp-data"; "required": false; "isSignal": true; }; "path": { "alias": "axp-data-path"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1604
1893
  }
1605
1894
 
1606
- declare class AXPDblClickDirective {
1607
- onDblClick: EventEmitter<Event>;
1608
- private lastTap;
1609
- private readonly doubleTapThreshold;
1610
- handleOnDblClick(event: Event): void;
1611
- onTouchEnd(event: TouchEvent): void;
1612
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPDblClickDirective, never>;
1613
- static ɵdir: i0.ɵɵDirectiveDeclaration<AXPDblClickDirective, "[onDblClick]", never, {}, { "onDblClick": "onDblClick"; }, never, never, true, never>;
1614
- }
1615
-
1616
1895
  declare class AXPGridLayoutDirective implements OnChanges {
1617
1896
  private el;
1618
1897
  private renderer;
@@ -1626,77 +1905,6 @@ declare class AXPGridLayoutDirective implements OnChanges {
1626
1905
  static ɵdir: i0.ɵɵDirectiveDeclaration<AXPGridLayoutDirective, "[axp-grid-layout]", never, { "options": { "alias": "axp-grid-layout"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1627
1906
  }
1628
1907
 
1629
- declare class AXPContentCheckerDirective {
1630
- viewContainerRef: ViewContainerRef;
1631
- elementRef: ElementRef<HTMLDivElement>;
1632
- isEmpty: i0.Signal<boolean>;
1633
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPContentCheckerDirective, never>;
1634
- static ɵdir: i0.ɵɵDirectiveDeclaration<AXPContentCheckerDirective, "[axp-content-checker]", ["checker"], {}, {}, never, never, true, never>;
1635
- }
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
-
1700
1908
  type AXPDistributedEventListenerProviderToken<T> = AXPDistributedEventListenerProvider<T> | Promise<AXPDistributedEventListenerProvider<T>>;
1701
1909
  declare const AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER: InjectionToken<AXPDistributedEventListenerProviderToken<any>[]>;
1702
1910
  interface AXPDistributedEventListenerProvider<TInput = any, TOutput = void> {
@@ -1897,7 +2105,8 @@ interface AXPModuleFeatureDefinitionWithKey extends AXPModuleFeatureDefinition {
1897
2105
  }
1898
2106
  /**
1899
2107
  * Module manifest structure.
1900
- * Defines module metadata, features, and provider references.
2108
+ * Defines module metadata and dependencies.
2109
+ * Features are provided via AXP_FEATURE_DEFINITION_PROVIDER token.
1901
2110
  */
1902
2111
  interface AXPModuleManifest {
1903
2112
  /**
@@ -1925,70 +2134,11 @@ interface AXPModuleManifest {
1925
2134
  */
1926
2135
  i18n?: string;
1927
2136
  /**
1928
- * Permission provider reference (lazy-loaded).
1929
- */
1930
- permissions?: {
1931
- provider: () => Promise<any>;
1932
- };
1933
- /**
1934
- * Menu provider reference (lazy-loaded).
1935
- */
1936
- menus?: {
1937
- provider: () => Promise<any>;
1938
- };
1939
- /**
1940
- * Entity definition provider reference (lazy-loaded).
1941
- */
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).
2137
+ * Module dependencies.
2138
+ * Simple array format: module names (e.g., "MeasurementCore") or feature keys (e.g., "DataManagement.MetaDataDefinitions").
2139
+ * Features use ModuleName.FeatureKey format (dot separator).
1966
2140
  */
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
- };
2141
+ dependencies?: string[];
1992
2142
  /**
1993
2143
  * Whether this module is required (always enabled, cannot be disabled).
1994
2144
  * Required modules like 'auth' and 'common' are always available.
@@ -2024,12 +2174,6 @@ interface AXPFeatureDefinition extends AXPModuleFeatureDefinition {
2024
2174
  key: string;
2025
2175
  }
2026
2176
 
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
2177
  /**
2034
2178
  * Registry service for module manifests.
2035
2179
  * Collects and manages all registered module manifests.
@@ -2066,6 +2210,11 @@ declare class AXPModuleManifestRegistry {
2066
2210
  * Check if a module manifest is registered.
2067
2211
  */
2068
2212
  has(moduleName: string): boolean;
2213
+ /**
2214
+ * Load feature definitions from all registered feature definition providers.
2215
+ * Features are automatically associated with modules based on the module name in the feature key.
2216
+ */
2217
+ private loadFeatureDefinitions;
2069
2218
  /**
2070
2219
  * Get all feature definitions from all manifests.
2071
2220
  */
@@ -2089,12 +2238,13 @@ declare class AXPModuleManifestRegistry {
2089
2238
  getModuleFeatures(moduleName: string): AXPFeatureDefinition[];
2090
2239
  /**
2091
2240
  * Register a feature definition dynamically (e.g., from feature definition provider).
2092
- * Used to add features that are defined at runtime via featuresProvider.
2241
+ * Used to add features that are defined at runtime via AXP_FEATURE_DEFINITION_PROVIDER.
2093
2242
  */
2094
2243
  registerFeatureDefinition(definition: AXPFeatureDefinition): void;
2095
2244
  /**
2096
2245
  * Check if module dependencies are satisfied.
2097
2246
  * Returns array of missing dependencies.
2247
+ * Dependencies can be module names or feature keys (ModuleName.FeatureKey format).
2098
2248
  */
2099
2249
  checkDependencies(moduleName: string): {
2100
2250
  missingModules: string[];
@@ -2111,18 +2261,29 @@ interface AXPStartUpTask {
2111
2261
  run: () => Promise<void>;
2112
2262
  }
2113
2263
 
2264
+ declare class AXPAppStartUpService {
2265
+ private tasks;
2266
+ registerTask(task: AXPStartUpTask): void;
2267
+ runAllTasks(): Promise<void>;
2268
+ private updateStatus;
2269
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPAppStartUpService, never>;
2270
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPAppStartUpService>;
2271
+ }
2272
+ declare const AXPAppStartUpProvider: i0.EnvironmentProviders;
2273
+
2114
2274
  /**
2115
- * Startup task to initialize module manifest registry.
2116
- * Registers this task with app startup service.
2275
+ * Module for managing module manifests initialization.
2276
+ * Handles the registration of manifest startup tasks.
2117
2277
  */
2118
- declare class AXPModuleManifestInitializer {
2119
- private readonly manifestRegistry;
2278
+ declare class AXPModuleManifestModule {
2120
2279
  /**
2121
- * Create startup task for manifest initialization.
2280
+ * @ignore
2281
+ * Initializes module manifest tasks on module construction.
2122
2282
  */
2123
- createStartupTask(): AXPStartUpTask;
2124
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPModuleManifestInitializer, never>;
2125
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPModuleManifestInitializer>;
2283
+ constructor(appInitService: AXPAppStartUpService, injector: Injector);
2284
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPModuleManifestModule, never>;
2285
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXPModuleManifestModule, never, never, never>;
2286
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXPModuleManifestModule>;
2126
2287
  }
2127
2288
 
2128
2289
  /**
@@ -2158,112 +2319,6 @@ interface AXPFeatureDefinitionProvider {
2158
2319
  */
2159
2320
  declare const AXP_FEATURE_DEFINITION_PROVIDER: InjectionToken<AXPFeatureDefinitionProvider[]>;
2160
2321
 
2161
- /**
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.
2165
- */
2166
- /**
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
2205
- *
2206
- * This interface is defined in core to avoid circular dependencies.
2207
- * Modules provide implementations that extend AXMEntityCrudServiceImpl.
2208
- */
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
- }>;
2231
- }
2232
- /**
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
2240
- */
2241
- interface AXPIModuleProviderLoader {
2242
- loadRequiredModules(): Promise<void>;
2243
- loadProviders(context: any): Promise<void>;
2244
- clear(): Promise<void>;
2245
- isModuleRegistered(moduleName: string): boolean;
2246
- }
2247
- /**
2248
- * Injection token for module provider loader.
2249
- * Implementation: @acorex/platform/auth
2250
- */
2251
- declare const AXP_MODULE_PROVIDER_LOADER: InjectionToken<AXPIModuleProviderLoader>;
2252
- /**
2253
- * Module provider initializer interface.
2254
- * Implementation: @acorex/platform/auth
2255
- */
2256
- interface AXPIModuleProviderInitializer {
2257
- createRequiredModulesTask(): any;
2258
- createStartupTask(): any;
2259
- loadProvidersIfReady(): Promise<void>;
2260
- loadProvidersForApplication(application: any): Promise<void>;
2261
- }
2262
- /**
2263
- * Injection token for module provider initializer.
2264
- * Implementation: @acorex/platform/auth
2265
- */
2266
- declare const AXP_MODULE_PROVIDER_INITIALIZER: InjectionToken<AXPIModuleProviderInitializer>;
2267
2322
  /**
2268
2323
  * Session service interface for module provider operations.
2269
2324
  * Implementation: @acorex/platform/auth
@@ -2280,166 +2335,11 @@ interface AXPISessionService {
2280
2335
  * Implementation: @acorex/platform/auth
2281
2336
  */
2282
2337
  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
2338
  /**
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.
2339
+ * Injection token for module manifest providers.
2340
+ * Modules register their manifest providers using this token.
2431
2341
  */
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;
2342
+ declare const AXP_MODULE_MANIFEST_PROVIDER: InjectionToken<AXPModuleManifest[]>;
2443
2343
 
2444
2344
  /**
2445
2345
  * Represents a tag with text, color, and metadata
@@ -2705,11 +2605,47 @@ declare function getEnumValues(enumType: any): {
2705
2605
  title: string;
2706
2606
  }[];
2707
2607
 
2608
+ /**
2609
+ * Creates a provider instance within an injection context.
2610
+ * Handles dynamic import, injector resolution, and provider instantiation.
2611
+ *
2612
+ * @param loader - Function that returns a promise resolving to the provider class
2613
+ * @returns Promise that resolves to the provider instance
2614
+ *
2615
+ * @example
2616
+ * ```typescript
2617
+ * useFactory: () => createProviderWithInjectionContext(() =>
2618
+ * import('./settings.provider').then(m => m.AXMSettingProvider)
2619
+ * )
2620
+ * ```
2621
+ */
2622
+ declare function createProviderWithInjectionContext<T>(loader: () => Promise<new () => T>): Promise<T>;
2623
+ /**
2624
+ * Creates a provider configuration for lazy-loaded providers with injection context.
2625
+ * Simplifies provider registration in NgModule providers array.
2626
+ *
2627
+ * @param token - The injection token to provide
2628
+ * @param loader - Function that returns a promise resolving to the provider class
2629
+ * @param multi - Whether the provider is multi-provider (defaults to true)
2630
+ * @returns Provider configuration object
2631
+ *
2632
+ * @example
2633
+ * ```typescript
2634
+ * providers: [
2635
+ * provideLazyProvider(
2636
+ * AXP_SETTING_DEFINITION_PROVIDER,
2637
+ * () => import('./settings.provider').then(m => m.AXMSettingProvider)
2638
+ * )
2639
+ * ]
2640
+ * ```
2641
+ */
2642
+ declare function provideLazyProvider<TProvider>(token: InjectionToken<any>, loader: () => Promise<new () => TProvider>, multi?: boolean): Provider;
2643
+
2708
2644
  declare function extractTextFromHtml(value: string): string;
2709
2645
  /**
2710
2646
  * Generate kebab-case group name from title
2711
2647
  */
2712
2648
  declare function generateKebabCase(title: string): string;
2713
2649
 
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 };
2650
+ export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPImageUrlLogoConfig, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPPlatformScope, AXPScreenSize, AXPSystemActionType, AXPSystemActions, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_SESSION_SERVICE, AXP_TAG_PROVIDER, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, cleanDeep, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, objectKeyValueTransforms, provideLazyProvider, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, setSmart };
2651
+ export type { AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, AXPColumnWidthMatcher, AXPColumnWidthProvider, AXPCommandMessage, AXPContent, AXPContentDirection, AXPContentType, AXPContextData, AXPContextState, AXPDataSource, AXPDataSourceDataFieldDefinition, AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPDataType, AXPDistributedEventListenerProvider, AXPDistributedEventListenerProviderToken, AXPEntityOp, 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, AXPISessionService, AXPLogoConfig, AXPMaxLengthValidationRule, AXPMetaData, AXPMiddlewareErrorResponse, AXPMinLengthValidationRule, 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, ColumnNameMatcher, ColumnWidthValue, IColumnWithWidth, WidgetTypeMatcher };