@acorex/platform 21.0.0-next.8 → 21.0.0-next.85

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 (133) hide show
  1. package/contracts/README.md +3 -0
  2. package/fesm2022/acorex-platform-auth.mjs +201 -81
  3. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs +177 -0
  5. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +1 -0
  6. package/fesm2022/acorex-platform-common.mjs +4490 -880
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-contracts.mjs +38 -0
  9. package/fesm2022/acorex-platform-contracts.mjs.map +1 -0
  10. package/fesm2022/acorex-platform-core.mjs +2612 -667
  11. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-domain.mjs +557 -826
  13. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-builder.mjs +1255 -209
  15. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  17. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  18. package/fesm2022/acorex-platform-layout-components.mjs +6493 -1920
  19. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-designer.mjs +612 -287
  21. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs +376 -0
  23. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-CwG6n_Yb.mjs.map +1 -0
  24. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs +100 -0
  25. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component--IeMZLIr.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-layout-entity.mjs +22502 -9964
  27. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  28. package/fesm2022/acorex-platform-layout-views.mjs +1395 -387
  29. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-layout-widget-core.mjs +2226 -524
  31. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  32. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  33. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  34. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  35. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  37. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +116 -0
  39. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +1 -0
  40. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs} +6 -6
  41. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs} +5 -5
  43. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs.map +1 -0
  44. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  45. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-layout-widgets.mjs +18746 -16718
  47. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  48. package/fesm2022/acorex-platform-native.mjs +8 -7
  49. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  50. package/fesm2022/acorex-platform-runtime.mjs +391 -166
  51. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  52. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs +160 -0
  53. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs.map +1 -0
  54. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs +120 -0
  55. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map +1 -0
  56. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs} +21 -28
  57. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +1 -0
  58. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs +48 -0
  59. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs.map +1 -0
  60. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs +42 -0
  61. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs.map +1 -0
  62. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  63. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  64. package/fesm2022/acorex-platform-themes-default.mjs +2337 -94
  65. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  67. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  69. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  70. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs} +52 -33
  71. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +1 -0
  72. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  73. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  74. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +86 -0
  75. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  76. package/fesm2022/acorex-platform-themes-shared.mjs +793 -612
  77. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  78. package/fesm2022/acorex-platform-workflow.mjs +997 -274
  79. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  80. package/fesm2022/acorex-platform.mjs.map +1 -1
  81. package/package.json +41 -35
  82. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +40 -19
  83. package/types/acorex-platform-common.d.ts +3673 -0
  84. package/types/acorex-platform-contracts.d.ts +940 -0
  85. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +1029 -170
  86. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
  87. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +262 -55
  88. package/types/acorex-platform-layout-components.d.ts +3329 -0
  89. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
  90. package/types/acorex-platform-layout-entity.d.ts +4512 -0
  91. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +334 -91
  92. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +438 -162
  93. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +1152 -507
  94. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  95. package/types/acorex-platform-runtime.d.ts +571 -0
  96. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +268 -11
  97. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +30 -2
  98. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +436 -748
  99. package/common/index.d.ts +0 -2470
  100. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs +0 -71
  101. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs +0 -135
  104. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  111. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D3qZa5fM.mjs +0 -1542
  113. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D3qZa5fM.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  115. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs +0 -31
  118. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs +0 -25
  120. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  121. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  122. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  123. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  124. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  125. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  126. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Dz0cylyQ.mjs +0 -65
  127. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Dz0cylyQ.mjs.map +0 -1
  128. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs +0 -64
  129. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  130. package/layout/components/index.d.ts +0 -1670
  131. package/layout/entity/index.d.ts +0 -2294
  132. package/runtime/index.d.ts +0 -307
  133. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -1,10 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Type, InjectionToken, OnInit, ElementRef, EventEmitter, OnChanges, Renderer2, SimpleChanges, ViewContainerRef, OnDestroy, Injector, PipeTransform, Provider } from '@angular/core';
3
- import { AXStyleColorType, AXDataSource, AXDataSourceSortOption, AXDataSourceFilterOption, AXDataSourceQuery, AXDataSourceCallbackResult } from '@acorex/cdk/common';
2
+ import { Type, InjectionToken, OnInit, ViewContainerRef, ModuleWithProviders, ElementRef, EventEmitter, OnChanges, Renderer2, SimpleChanges, OnDestroy, DestroyRef, Injector, PipeTransform, Provider } from '@angular/core';
3
+ import { AXStyleColorType, AXDataSource, AXDataSourceSortOption, AXDataSourceFilterOption, AXStyleLookType, AXDataSourceQuery, AXDataSourceCallbackResult } from '@acorex/cdk/common';
4
+ import { AXMultiLanguageString } from '@acorex/core/translation';
4
5
  import * as _ngrx_signals from '@ngrx/signals';
6
+ import * as _acorex_platform_core from '@acorex/platform/core';
5
7
  import { Observable } from 'rxjs';
6
8
  import { NavigationExtras } from '@angular/router';
7
9
 
10
+ /** Platform core datasource registry names. */
11
+ declare const AXPPlatformCoreDataSourceKeys: {
12
+ readonly ModuleManifests: "platform-module-manifests";
13
+ readonly CatalogScopes: "platform-catalog-scopes";
14
+ };
15
+
8
16
  /**
9
17
  * Additional suggested generic actions for future consideration:
10
18
  *
@@ -899,7 +907,7 @@ declare function getActionButton(actionType: string): {
899
907
  interface AXPColumnQuery {
900
908
  name: string;
901
909
  title: string;
902
- visible: boolean;
910
+ visible: boolean | string;
903
911
  }
904
912
 
905
913
  type AXPPartialNested<T> = {
@@ -907,6 +915,28 @@ type AXPPartialNested<T> = {
907
915
  };
908
916
  declare function getNestedKeys(obj: any, prefix?: string): string[];
909
917
  type AXPExpression = string;
918
+ /**
919
+ * Plain or rich text that may be localized: a single string or a map of locale code to string.
920
+ * Use when multi-language editing stores `Record<locale, string>` instead of one string.
921
+ *
922
+ * @example Single value (one locale or shared text)
923
+ * `"<p>Pick one</p>"`
924
+ *
925
+ * @example Per-locale map (e.g. after multi-language editor save)
926
+ * `{ "en-US": "<p>Pick one</p>", "fa-IR": "<p>یکی را انتخاب کنید</p>" }`
927
+ */
928
+ type AXPMultiLanguageString = AXMultiLanguageString;
929
+ /**
930
+ * Shared category descriptor for widgets, query catalog tooling, and other definition groupings.
931
+ */
932
+ interface AXPDefinitionCategory {
933
+ name: string;
934
+ title: AXPMultiLanguageString;
935
+ order: number;
936
+ icon?: string;
937
+ }
938
+ /** Normalizes definition categories to an array for iteration and serialization. */
939
+ declare function normalizeDefinitionCategories(categories?: AXPDefinitionCategory | AXPDefinitionCategory[]): AXPDefinitionCategory[];
910
940
  type AXPMetaData = Record<string, any>;
911
941
  type AXPOptionsData<T extends Record<string, unknown> = Record<string, any>> = T;
912
942
  interface AXPValueUnit {
@@ -943,8 +973,10 @@ interface AXPContent {
943
973
  content: string;
944
974
  contentType: AXPContentType;
945
975
  }
976
+ type AXPMaybePromise<T = unknown> = T | Promise<T>;
946
977
 
947
978
  type AXPDataSource = string | AXDataSource | any[];
979
+ type AXPDataType = 'string' | 'number' | 'boolean' | 'date' | 'object' | 'array' | 'blob';
948
980
  interface AXPPagedListResult<T = any> {
949
981
  items: T[];
950
982
  total: number;
@@ -958,31 +990,142 @@ interface AXPQueryRequest {
958
990
  [key: string]: string;
959
991
  };
960
992
  }
961
- type AXPDataType = 'string' | 'number' | 'object' | 'boolean' | 'array';
993
+ /**
994
+ * Category Entity - Base interface for hierarchical category structures
995
+ *
996
+ * This interface provides a standardized data model for category entities across the platform.
997
+ * All category entities (e.g., ReportCategory, ActivityCategory, WorkflowCategory) extend this interface
998
+ * to ensure consistency in data structure and field names.
999
+ *
1000
+ * @template TKey - The type of the identifier key (default: string)
1001
+ *
1002
+ * @example
1003
+ * ```typescript
1004
+ * const category: AXPCategoryEntity = {
1005
+ * id: 'cat-001',
1006
+ * title: 'Electronics',
1007
+ * description: 'Electronic products',
1008
+ * parentId: undefined, // Root category
1009
+ * childrenCount: 2, // Has 2 direct child categories
1010
+ * itemsCount: 5, // Has 5 items directly in this category
1011
+ * totalChildrenCount: 6, // Total of 6 nested categories (including grandchildren)
1012
+ * totalItemsCount: 23 // Total of 23 items in entire category tree
1013
+ * };
1014
+ * ```
1015
+ */
962
1016
  interface AXPCategoryEntity<TKey = string> {
1017
+ /** Unique identifier for the category */
963
1018
  id: TKey;
964
- title: string;
965
- description?: string;
1019
+ /** Display name of the category (required) */
1020
+ title: AXPMultiLanguageString;
1021
+ /** Optional description of the category */
1022
+ description?: AXPMultiLanguageString;
1023
+ /** Parent category ID (undefined for root categories) */
966
1024
  parentId?: TKey;
1025
+ /**
1026
+ * Count of direct child categories only (not recursive)
1027
+ *
1028
+ * Used by UI components to determine if a category has children and should show an expand icon.
1029
+ * This enables efficient lazy loading - components can check this property without querying the API.
1030
+ *
1031
+ * @example
1032
+ * - Category with 2 direct children: `childrenCount: 2`
1033
+ * - Leaf category (no children): `childrenCount: 0`
1034
+ *
1035
+ * @remarks
1036
+ * - Always set to `0` for leaf categories
1037
+ * - Does not include grandchildren or nested descendants
1038
+ * - Automatically maintained by middleware for category entities
1039
+ */
967
1040
  childrenCount: number;
1041
+ /**
1042
+ * Count of items directly assigned to this category (not recursive)
1043
+ *
1044
+ * Represents the number of items (e.g., reports, activities, workflows) that are directly
1045
+ * assigned to this category. Does not include items from child categories.
1046
+ *
1047
+ * Useful for:
1048
+ * - Displaying item counts per category in UI (e.g., "5 reports" badge)
1049
+ * - Optimizing queries (skip API call if itemsCount === 0)
1050
+ * - Showing category statistics
1051
+ *
1052
+ * @example
1053
+ * - Category with 5 reports directly assigned: `itemsCount: 5`
1054
+ * - Category with no direct items: `itemsCount: 0` or `undefined`
1055
+ *
1056
+ * @remarks
1057
+ * - Does not include items from child categories
1058
+ * - Can be calculated dynamically or stored
1059
+ * - Optional - may be undefined if not needed
1060
+ */
968
1061
  itemsCount?: number;
969
- totalChildren?: number;
970
- totalItems?: number;
1062
+ /**
1063
+ * Recursive count of all nested child categories (includes all descendants)
1064
+ *
1065
+ * Represents the total number of categories in the entire subtree starting from this category.
1066
+ * Includes children, grandchildren, and all nested descendants.
1067
+ *
1068
+ * Useful for:
1069
+ * - Analytics and summary displays
1070
+ * - Showing complete category tree scope
1071
+ * - Performance metrics
1072
+ *
1073
+ * @example
1074
+ * Root category with:
1075
+ * - 2 direct children
1076
+ * - Each child has 2 children (4 grandchildren)
1077
+ * Result: `totalChildrenCount: 6` (2 + 4)
1078
+ *
1079
+ * @remarks
1080
+ * - Optional - typically used for analytics
1081
+ * - Includes all nested levels (recursive)
1082
+ * - Can be expensive to calculate for large trees
1083
+ */
1084
+ totalChildrenCount?: number;
1085
+ /**
1086
+ * Recursive count of all items in this category and all descendants
1087
+ *
1088
+ * Represents the total number of items (e.g., reports, activities, workflows) in the entire
1089
+ * category tree, including items from this category and all nested child categories.
1090
+ *
1091
+ * Useful for:
1092
+ * - Analytics and summary displays
1093
+ * - Showing complete scope of a category branch
1094
+ * - Dashboard statistics
1095
+ *
1096
+ * @example
1097
+ * Category with:
1098
+ * - 5 items directly assigned
1099
+ * - 1 child category with 3 items
1100
+ * Result: `totalItemsCount: 8` (5 + 3)
1101
+ *
1102
+ * @remarks
1103
+ * - Optional - typically used for analytics
1104
+ * - Includes items from all nested categories (recursive)
1105
+ * - Can be expensive to calculate for large trees
1106
+ */
1107
+ totalItemsCount?: number;
971
1108
  }
972
1109
  interface AXPCategoryEntityWithItems<T> extends AXPCategoryEntity {
973
1110
  items: T[];
974
1111
  children?: AXPCategoryEntityWithItems<T>[];
975
1112
  }
1113
+ /**
1114
+ * Denormalized category row on entities and DTOs (id + localized display title).
1115
+ * Use for `categories` arrays expanded from {@link AXPCategoryEntity} assignments.
1116
+ */
1117
+ interface AXPCategoryListItem<TKey extends string = string> {
1118
+ id: TKey;
1119
+ title: AXPMultiLanguageString;
1120
+ }
976
1121
  interface AXPCategorizedEntity {
977
1122
  categoryIds: string[];
978
1123
  }
979
1124
  interface AXPCategorizedEntityDto {
980
1125
  categoryIds: string[];
981
- categories: {
982
- id: string;
983
- title: string;
984
- }[];
1126
+ categories: AXPCategoryListItem[];
985
1127
  }
1128
+ type AXPEntityOp = 'initial' | 'create' | 'update' | 'delete' | 'getOne' | 'getAll' | 'query' | 'count' | 'queryAll' | 'getMany' | 'exists' | 'upsertOne' | 'aggregate';
986
1129
 
987
1130
  type AXPWidgetTrigger = {
988
1131
  event: string;
@@ -1002,8 +1145,25 @@ interface AXPFileListItem {
1002
1145
  size?: number;
1003
1146
  status: AXPFileStatus;
1004
1147
  source?: AXPFileSource;
1148
+ meta?: AXPMetaData;
1149
+ /**
1150
+ * When true, the item cannot be renamed, removed, or reverted from the UI.
1151
+ * Independent of widget `options.readonly` (widget-level disables all edits); use this for per-row locks from the server.
1152
+ */
1153
+ readOnly?: boolean;
1154
+ title?: string;
1155
+ description?: string;
1005
1156
  }
1006
1157
 
1158
+ /**
1159
+ * Filter toolbar trigger entries (same shape as entity `schema.interface.triggers`).
1160
+ * Declared on `AXPFilterDefinition` and populated when building list filter definitions.
1161
+ */
1162
+ interface AXPFilterTriggerDefinition {
1163
+ event: string;
1164
+ action: string;
1165
+ disabled?: boolean;
1166
+ }
1007
1167
  interface AXPFilterClause extends AXDataSourceFilterOption {
1008
1168
  id?: string;
1009
1169
  order?: number;
@@ -1020,33 +1180,131 @@ interface AXPFilterDefinition extends AXPFilterClause {
1020
1180
  filterType: {
1021
1181
  advance: boolean;
1022
1182
  inline: boolean;
1183
+ preload?: {
1184
+ enabled?: boolean;
1185
+ required?: boolean;
1186
+ };
1023
1187
  };
1024
1188
  hidden?: boolean;
1189
+ /**
1190
+ * When true, the filter is not selectable. When a string, it is evaluated as an expression (e.g. `{{ ... }}`)
1191
+ * using the current filters context.
1192
+ */
1193
+ disabled?: boolean | string;
1194
+ /** Expression-driven triggers (events/actions); same semantics as entity `schema.interface.triggers`. */
1195
+ triggers?: AXPFilterTriggerDefinition[];
1025
1196
  }
1026
1197
  interface AXPFilterQuery extends Pick<AXPFilterDefinition, 'field' | 'value' | 'operator' | 'logic' | 'hidden'> {
1027
1198
  filters?: AXPFilterQuery[];
1028
1199
  displayText?: string;
1029
1200
  }
1030
1201
 
1202
+ /**
1203
+ * Normalized keyboard chord (e.g. `ctrl+f`, `arrowleft`, `f1`).
1204
+ * Modifiers and key are joined with `+`.
1205
+ */
1206
+ type AXPKeyboardShortcutChord = string;
1207
+ /** Priority tier — higher values win when multiple bindings match. */
1208
+ declare enum AXPKeyboardShortcutPriority {
1209
+ Global = 0,
1210
+ Page = 10,
1211
+ Panel = 20,
1212
+ Modal = 100
1213
+ }
1214
+ /**
1215
+ * How horizontal directional keys behave in RTL locale profiles (`activeProfile().i18nMeta?.rtl`).
1216
+ * - `physical`: arrow left always means left (grid navigation, etc.).
1217
+ * - `semantic`: arrows and `[` / `]` mirror so next/previous follow reading direction.
1218
+ */
1219
+ type AXPKeyboardShortcutDirectionBehavior = 'physical' | 'semantic';
1220
+ interface AXPKeyboardShortcutBinding {
1221
+ /**
1222
+ * One or more key chords that trigger this action.
1223
+ * Example: `['arrowleft', 'pageup']` or `['ctrl+f']`.
1224
+ */
1225
+ keys: AXPKeyboardShortcutChord[];
1226
+ /** i18n key (e.g. `@general:...`) or plain label for the help dialog. */
1227
+ title: string;
1228
+ /** Optional group label (i18n key or plain) for help dialog grouping. */
1229
+ group?: string;
1230
+ /** When true, fires even if focus is inside an editable field. Default false. */
1231
+ allowInEditableFields?: boolean;
1232
+ /** Optional runtime guard — binding is ignored when this returns false. */
1233
+ when?: () => boolean;
1234
+ /**
1235
+ * RTL handling for horizontal direction keys (`←`/`→`, `[`/`]`).
1236
+ * Omitted = auto (`semantic` for direction keys, `physical` otherwise). Set `physical` to opt out.
1237
+ */
1238
+ directionBehavior?: AXPKeyboardShortcutDirectionBehavior;
1239
+ handler: (event: KeyboardEvent) => void | Promise<void>;
1240
+ }
1241
+ /**
1242
+ * Declarative shortcut for menus, action items, and other config-driven bindings.
1243
+ * Use a chord string for defaults, or an object to override binding options (e.g. `allowInEditableFields`).
1244
+ */
1245
+ type AXPKeyboardShortcutConfig = Pick<AXPKeyboardShortcutBinding, 'allowInEditableFields' | 'when' | 'directionBehavior'> & {
1246
+ keys: AXPKeyboardShortcutChord | readonly AXPKeyboardShortcutChord[];
1247
+ };
1248
+ type AXPKeyboardShortcut = AXPKeyboardShortcutChord | AXPKeyboardShortcutConfig;
1249
+ /** Normalized declarative shortcut used when registering keyboard bindings. */
1250
+ interface AXPResolvedKeyboardShortcut {
1251
+ keys: AXPKeyboardShortcutChord[];
1252
+ allowInEditableFields?: boolean;
1253
+ when?: () => boolean;
1254
+ directionBehavior?: AXPKeyboardShortcutDirectionBehavior;
1255
+ }
1256
+ interface AXPKeyboardShortcutRegistration {
1257
+ /** Stable id for this registration scope (e.g. `task-board-navigator`). */
1258
+ id: string;
1259
+ /** Higher priority bindings win on conflict. */
1260
+ priority?: AXPKeyboardShortcutPriority | number;
1261
+ /** Scope label shown in the help dialog (i18n key or plain). */
1262
+ scope?: string;
1263
+ /** Default group for bindings without their own `group`. */
1264
+ group?: string;
1265
+ /** Optional runtime guard — registration is ignored when this returns false. */
1266
+ when?: () => boolean;
1267
+ shortcuts: AXPKeyboardShortcutBinding[];
1268
+ }
1269
+ /** Resolved entry for help UI. */
1270
+ interface AXPKeyboardShortcutHelpEntry {
1271
+ registrationId: string;
1272
+ bindingTitle: string;
1273
+ /** Raw chords for `ax-kbd-item` rendering (canonical registration). */
1274
+ chords: AXPKeyboardShortcutChord[];
1275
+ /** Chords adjusted for RTL display when `directionBehavior` is `semantic`. */
1276
+ displayChords: AXPKeyboardShortcutChord[];
1277
+ displayKeys: string;
1278
+ scope?: string;
1279
+ group?: string;
1280
+ priority: number;
1281
+ }
1282
+
1031
1283
  type AXPActionMenuItem = {
1032
1284
  name?: string;
1033
- title: string;
1285
+ title: AXPMultiLanguageString;
1034
1286
  icon?: string;
1035
1287
  iconOnly?: boolean;
1036
1288
  color?: string;
1289
+ look?: AXStyleLookType;
1037
1290
  break?: boolean;
1038
1291
  items?: AXPActionMenuItem[];
1039
1292
  command?: AXPExecuteCommand;
1040
1293
  disabled?: boolean | string;
1041
1294
  visible?: boolean | string;
1042
1295
  policy?: string;
1296
+ /**
1297
+ * Keyboard shortcuts for this action.
1298
+ * Use a chord string or `{ keys, allowInEditableFields, ... }`. Pass `[]` to disable.
1299
+ */
1300
+ shortcuts?: AXPKeyboardShortcut[];
1043
1301
  };
1044
1302
  type AXPBackButton = {
1045
- title: string;
1303
+ title: AXPMultiLanguageString;
1046
1304
  };
1047
1305
  type AXPBreadcrumbItem = {
1048
1306
  name?: string;
1049
- title: string;
1307
+ title: AXPMultiLanguageString;
1050
1308
  icon?: string;
1051
1309
  command?: AXPExecuteCommand;
1052
1310
  };
@@ -1055,10 +1313,16 @@ type AXPBadge = {
1055
1313
  description?: string;
1056
1314
  color?: 'primary' | 'success' | 'warning' | 'danger';
1057
1315
  };
1316
+ type AXPPageStatus = {
1317
+ definitionKey: string;
1318
+ value: string;
1319
+ dataPath?: string;
1320
+ readonly?: boolean;
1321
+ };
1058
1322
  interface AXPCommandMessage {
1059
1323
  type?: 'info' | 'success' | 'warning' | 'error';
1060
1324
  code?: string;
1061
- text: string;
1325
+ text: AXPMultiLanguageString;
1062
1326
  details?: unknown;
1063
1327
  }
1064
1328
  type AXPExecuteCommand = {
@@ -1080,7 +1344,7 @@ interface AXPQueryFetchResult<T = any> {
1080
1344
  };
1081
1345
  message?: {
1082
1346
  code?: string;
1083
- text?: string;
1347
+ text?: AXPMultiLanguageString;
1084
1348
  details?: any;
1085
1349
  };
1086
1350
  }
@@ -1093,7 +1357,7 @@ type AXPNavigateActionOptions = {
1093
1357
  };
1094
1358
  modal: {
1095
1359
  component: Type<any>;
1096
- title: string;
1360
+ title: AXPMultiLanguageString;
1097
1361
  options?: any;
1098
1362
  };
1099
1363
  };
@@ -1145,25 +1409,6 @@ declare class AXPIconLogoConfig implements AXPLogoConfig {
1145
1409
  constructor(icon: string, color?: string | undefined);
1146
1410
  }
1147
1411
 
1148
- type AXPPlatformScopeKey = 'C' | 'G' | 'P' | 'T' | 'U';
1149
- declare enum AXPPlatformScope {
1150
- Environment = "C",
1151
- Global = "G",
1152
- Platform = "P",
1153
- Tenant = "T",
1154
- User = "U"
1155
- }
1156
- declare function resolvePlatformScopeKey(name: string): AXPPlatformScopeKey;
1157
- declare function resolvePlatformScopeName(scope: AXPPlatformScopeKey): string;
1158
-
1159
- interface AXPSortDefinition {
1160
- name: string;
1161
- title: string;
1162
- dir?: 'asc' | 'desc';
1163
- }
1164
- interface AXPSortQuery extends Pick<AXPSortDefinition, 'name' | 'dir'> {
1165
- }
1166
-
1167
1412
  type AXPValidationRule = {
1168
1413
  rule: string;
1169
1414
  message?: string;
@@ -1200,6 +1445,52 @@ interface AXPReqexValidationRule extends AXPValidationRule {
1200
1445
  }
1201
1446
  type AXPStringValidationRules = (AXPRequiredValidationRule | AXPMinLengthValidationRule | AXPMaxLengthValidationRule | AXPEqualValidationRule<string> | AXPReqexValidationRule)[];
1202
1447
 
1448
+ interface AXPPropertyGroup {
1449
+ name: string;
1450
+ title: AXPMultiLanguageString;
1451
+ icon?: string;
1452
+ description?: AXPMultiLanguageString;
1453
+ order?: number;
1454
+ }
1455
+ interface AXPPropertyInterface {
1456
+ type: string;
1457
+ options: AXPOptionsData;
1458
+ triggers?: AXPWidgetTriggers;
1459
+ }
1460
+ /**
1461
+ * Platform property bag (entity fields, workflow inputs, etc.).
1462
+ *
1463
+ * For property viewer rows, use `mapAXPPropertyToWidgetProperty` from `@acorex/platform/layout/widget-core`
1464
+ * (keeps `platform/core` free of a dependency on `layout/widget-core`).
1465
+ */
1466
+ interface AXPProperty {
1467
+ name: string;
1468
+ title: AXPMultiLanguageString;
1469
+ description?: AXPMultiLanguageString;
1470
+ dataType: AXPDataType;
1471
+ validations?: AXPValidationRules;
1472
+ group?: AXPPropertyGroup | string;
1473
+ order?: number;
1474
+ interface: AXPPropertyInterface;
1475
+ }
1476
+
1477
+ type AXPPlatformScopeKey = 'P' | 'T' | 'U';
1478
+ declare enum AXPPlatformScope {
1479
+ Platform = "P",
1480
+ Tenant = "T",
1481
+ User = "U"
1482
+ }
1483
+ declare function resolvePlatformScopeKey(name: string): AXPPlatformScopeKey;
1484
+ declare function resolvePlatformScopeName(scope: AXPPlatformScopeKey): string;
1485
+
1486
+ interface AXPSortDefinition {
1487
+ name: string;
1488
+ title: string;
1489
+ dir?: 'asc' | 'desc';
1490
+ }
1491
+ interface AXPSortQuery extends Pick<AXPSortDefinition, 'name' | 'dir'> {
1492
+ }
1493
+
1203
1494
  interface AXPViewQuery {
1204
1495
  name: string;
1205
1496
  fixed: boolean;
@@ -1319,6 +1610,18 @@ interface AXPMiddlewareErrorResponse {
1319
1610
  interface AXPActivityLogChange {
1320
1611
  type: AXPSystemActionType;
1321
1612
  description: string;
1613
+ /** I18n key for field label. When set with actionKey, used for translated display. */
1614
+ fieldKey?: string;
1615
+ /** Params for fieldKey translation (e.g. for unknown-field with {{name}}). */
1616
+ fieldKeyParams?: Record<string, string>;
1617
+ /** I18n key for action (e.g. @activity-log:changes.replaced). When set with fieldKey, overrides description. */
1618
+ actionKey?: string;
1619
+ oldValue?: unknown;
1620
+ newValue?: unknown;
1621
+ /** Short human-readable summary for Change History (e.g. "Updated from 'X' to 'Y'"). Used when layout is present. */
1622
+ summary?: string;
1623
+ /** Custom layout (AXPWidgetNode) for Change History. When set, rendered via AXPLayoutRenderer instead of default fieldKey/actionKey text. */
1624
+ layout?: unknown;
1322
1625
  }
1323
1626
  interface AXPActivityLog {
1324
1627
  id: string;
@@ -1355,6 +1658,102 @@ declare class AXPActivityLogService {
1355
1658
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPActivityLogService>;
1356
1659
  }
1357
1660
 
1661
+ /**
1662
+ * Stable catalog scope registered by a module provider (integration contract).
1663
+ */
1664
+ interface AXPCatalogScopeDefinition {
1665
+ /** Unique key, e.g. `human-capital-management.hr`. */
1666
+ name: string;
1667
+ title: string | AXPMultiLanguageString;
1668
+ description?: string | AXPMultiLanguageString;
1669
+ /**
1670
+ * Entity refs this scope may label, e.g. `AssessmentManagement.Questionnaire`.
1671
+ */
1672
+ targets: string[];
1673
+ icon?: string;
1674
+ /**
1675
+ * Platform utility classes applied to the whole scope badge (surface, on-surface, border).
1676
+ * Example: `ax-primary-surface ax-text-on-primary-surface ax-border-border-primary-surface`.
1677
+ */
1678
+ cssClass?: string;
1679
+ order?: number;
1680
+ }
1681
+
1682
+ interface AXPCatalogScopeDefinitionProvider {
1683
+ items(): Promise<AXPCatalogScopeDefinition[]>;
1684
+ }
1685
+ declare const AXP_CATALOG_SCOPE_DEFINITION_PROVIDER: InjectionToken<AXPCatalogScopeDefinitionProvider[]>;
1686
+
1687
+ /**
1688
+ * Collects {@link AXPCatalogScopeDefinition} entries from all registered providers.
1689
+ */
1690
+ declare class AXPCatalogScopeDefinitionProviderService {
1691
+ private readonly providers;
1692
+ private readonly translation;
1693
+ items(): Promise<AXPCatalogScopeDefinition[]>;
1694
+ get(name: string): Promise<AXPCatalogScopeDefinition | undefined>;
1695
+ /**
1696
+ * Scopes applicable to the given entity ref (`Module.Entity`).
1697
+ */
1698
+ byTarget(entityRef: string): Promise<AXPCatalogScopeDefinition[]>;
1699
+ /**
1700
+ * Resolves display title for a scope key (active locale).
1701
+ */
1702
+ resolveTitle(definition: AXPCatalogScopeDefinition): string;
1703
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPCatalogScopeDefinitionProviderService, never>;
1704
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPCatalogScopeDefinitionProviderService>;
1705
+ }
1706
+
1707
+ interface AXPDataSourceDataFieldDefinition {
1708
+ name: string;
1709
+ title: string;
1710
+ datatype: string;
1711
+ type: string;
1712
+ options?: AXPOptionsData;
1713
+ }
1714
+ type AXPLazyDataSource<T = unknown> = AXPMaybePromise<AXDataSource<T>>;
1715
+ type AXPDataSourceArray<T = unknown> = AXPMaybePromise<Array<T>>;
1716
+ type AXPDataSourceValue<T = unknown> = AXPMaybePromise<T>;
1717
+ type AXPDataSourceType<T = any> = AXPLazyDataSource<T> | AXPDataSourceArray<T> | AXPDataSourceValue<T>;
1718
+ type AXPDataSourceSample<T = any> = AXPDataSourceArray<T> | AXPDataSourceValue<T>;
1719
+ interface AXPDataSourceDefinition<T = any> {
1720
+ name: string;
1721
+ title: string;
1722
+ valueField?: {
1723
+ name: string;
1724
+ title: string;
1725
+ };
1726
+ textField?: {
1727
+ name: string;
1728
+ title: string;
1729
+ };
1730
+ columns: AXPDataSourceDataFieldDefinition[];
1731
+ filters: AXPFilterDefinition[];
1732
+ samples?: AXPDataSourceSample<T>;
1733
+ visible?: boolean;
1734
+ source: () => AXPDataSourceType<T>;
1735
+ }
1736
+ interface AXPDataSourceDefinitionProvider {
1737
+ items(): Promise<AXPDataSourceDefinition[]>;
1738
+ }
1739
+ declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDefinitionProvider[]>;
1740
+ declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
1741
+ private providers;
1742
+ items(): Promise<AXPDataSourceDefinition[]>;
1743
+ get<T = any>(name: string): Promise<AXPDataSourceDefinition<T> | undefined>;
1744
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
1745
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPDataSourceDefinitionProviderService>;
1746
+ }
1747
+
1748
+ /**
1749
+ * Registered catalog scopes for select / selection-list widgets via {@link AXPPlatformCoreDataSourceKeys.CatalogScopes}.
1750
+ */
1751
+ declare class AXPCatalogScopeDefinitionsDataSourceDefinition implements AXPDataSourceDefinitionProvider {
1752
+ private readonly catalogScopeRegistry;
1753
+ items(): Promise<AXPDataSourceDefinition[]>;
1754
+ private readTargetFilter;
1755
+ }
1756
+
1358
1757
  /**
1359
1758
  * Represents a color palette with a unique identifier and collection of colors
1360
1759
  */
@@ -1472,7 +1871,182 @@ declare class AXPDefaultColorPalettesProvider extends AXPColorPaletteProvider {
1472
1871
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPDefaultColorPalettesProvider>;
1473
1872
  }
1474
1873
 
1874
+ /**
1875
+ * Column width value can be a number (converted to pixels) or a string with any CSS unit
1876
+ * @example 150 (becomes '150px'), '300px', '50%', '2rem', '20ch'
1877
+ */
1878
+ type ColumnWidthValue = string | number;
1879
+ /**
1880
+ * Matcher for column name - can be exact string match or RegExp pattern
1881
+ * @example 'title', /^user/, /.*name$/i
1882
+ */
1883
+ type ColumnNameMatcher = string | RegExp;
1884
+ /**
1885
+ * Matcher for widget type - can be exact string match or RegExp pattern (case-insensitive)
1886
+ * @example 'text-box', /^date/, /.*editor$/i
1887
+ */
1888
+ type WidgetTypeMatcher = string | RegExp;
1889
+ /**
1890
+ * Defines a single width matching rule
1891
+ */
1892
+ interface AXPColumnWidthMatcher {
1893
+ /**
1894
+ * Match by column name (exact string or RegExp pattern)
1895
+ * Takes precedence over widgetType matching
1896
+ * @example 'title', /^user/, /.*name$/i
1897
+ */
1898
+ name?: ColumnNameMatcher;
1899
+ /**
1900
+ * Match by widget type (exact string or RegExp pattern, case-insensitive)
1901
+ * Used as fallback when name doesn't match
1902
+ * @example 'text-box', /^date/, /.*editor$/i
1903
+ */
1904
+ widgetType?: WidgetTypeMatcher;
1905
+ /**
1906
+ * Width value to apply if this matcher matches
1907
+ * Numbers are converted to pixels (e.g., 150 -> '150px')
1908
+ * Strings can include any CSS unit (e.g., '300px', '50%', '2rem')
1909
+ */
1910
+ width: ColumnWidthValue;
1911
+ /**
1912
+ * Priority for this matcher within the provider (higher = more specific, applied first)
1913
+ * Default: 0
1914
+ */
1915
+ priority?: number;
1916
+ }
1917
+ /**
1918
+ * Provider configuration for column width rules
1919
+ */
1920
+ interface AXPColumnWidthProvider {
1921
+ /**
1922
+ * Array of matchers to evaluate
1923
+ * Evaluated in priority order (highest first), then by match type (name before widgetType)
1924
+ */
1925
+ matchers: AXPColumnWidthMatcher[];
1926
+ /**
1927
+ * Priority for this provider relative to other providers (higher = applied first)
1928
+ * Default: 100
1929
+ */
1930
+ priority?: number;
1931
+ }
1932
+ /**
1933
+ * Generic column interface for width resolution
1934
+ * Works with any column type that has these properties
1935
+ */
1936
+ interface IColumnWithWidth {
1937
+ /**
1938
+ * Column name
1939
+ */
1940
+ name: string;
1941
+ /**
1942
+ * Current width (if already set)
1943
+ */
1944
+ width?: string;
1945
+ /**
1946
+ * Widget type information (optional)
1947
+ */
1948
+ widget?: {
1949
+ type: string;
1950
+ };
1951
+ /**
1952
+ * Additional options that might contain width
1953
+ */
1954
+ options?: {
1955
+ width?: string;
1956
+ };
1957
+ /**
1958
+ * For entity columns - showAs configuration
1959
+ */
1960
+ showAs?: {
1961
+ type: string;
1962
+ };
1963
+ }
1964
+
1965
+ /**
1966
+ * Service for resolving column widths based on registered providers
1967
+ * Supports matching by column name (priority) and widget type (fallback)
1968
+ * Uses multi-provider pattern for extensibility
1969
+ */
1970
+ declare class AXPColumnWidthService {
1971
+ private readonly providers;
1972
+ /**
1973
+ * Resolve width for a column based on registered providers
1974
+ * Only returns a width if column doesn't already have one set
1975
+ *
1976
+ * @param column Column to resolve width for
1977
+ * @returns Resolved width string (normalized) or undefined if no match or column already has width
1978
+ */
1979
+ resolveWidth(column: IColumnWithWidth): string | undefined;
1980
+ /**
1981
+ * Apply resolved width to a column (mutates the column)
1982
+ * Only applies if column doesn't already have a width
1983
+ *
1984
+ * @param column Column to apply width to
1985
+ * @returns true if width was applied, false if column already had width or no match found
1986
+ */
1987
+ applyWidth(column: IColumnWithWidth): boolean;
1988
+ /**
1989
+ * Collect all matchers from all providers, sorted by provider priority and matcher priority
1990
+ */
1991
+ private collectMatchers;
1992
+ /**
1993
+ * Find first matching matcher by column name
1994
+ * Name matches take precedence over widget type matches
1995
+ */
1996
+ private findNameMatch;
1997
+ /**
1998
+ * Find first matching matcher by widget type (case-insensitive)
1999
+ */
2000
+ private findWidgetTypeMatch;
2001
+ /**
2002
+ * Normalize width value to string format
2003
+ * Numbers are converted to pixels (e.g., 150 -> '150px')
2004
+ * Strings are preserved as-is (supports any CSS unit)
2005
+ */
2006
+ private normalizeWidth;
2007
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPColumnWidthService, never>;
2008
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPColumnWidthService>;
2009
+ }
2010
+
2011
+ /**
2012
+ * Injection token for column width providers
2013
+ * Use this to register multiple column width providers with multi: true
2014
+ *
2015
+ * @example
2016
+ * ```typescript
2017
+ * providers: [
2018
+ * {
2019
+ * provide: AXP_COLUMN_WIDTH_PROVIDER,
2020
+ * useValue: {
2021
+ * matchers: [
2022
+ * { name: 'title', width: '300px', priority: 10 },
2023
+ * { widgetType: /text-box/i, width: '200px' }
2024
+ * ],
2025
+ * priority: 150
2026
+ * },
2027
+ * multi: true
2028
+ * }
2029
+ * ]
2030
+ * ```
2031
+ */
2032
+ declare const AXP_COLUMN_WIDTH_PROVIDER: InjectionToken<AXPColumnWidthProvider[]>;
2033
+
2034
+ /**
2035
+ * Default column width configuration
2036
+ * Migrated from DEFAULT_COLUMN_WIDTHS in column-width.middleware.ts
2037
+ * Provides sensible defaults for common column names
2038
+ */
2039
+ declare const defaultColumnWidthProvider: AXPColumnWidthProvider;
2040
+
1475
2041
  type AXPContextState = 'initiated' | 'restored' | 'changed' | 'patch';
2042
+ type AXPContextUpdateOrigin = 'user' | 'system';
2043
+ interface AXPContextUpdateOptions {
2044
+ origin?: AXPContextUpdateOrigin;
2045
+ }
2046
+ interface AXPContextPatchOptions {
2047
+ /** When true, updates the saved snapshot together with live data. */
2048
+ updateSaved?: boolean;
2049
+ }
1476
2050
  type AXPContextData = {
1477
2051
  [key: string]: any;
1478
2052
  };
@@ -1482,35 +2056,201 @@ declare class AXPContextChangeEvent {
1482
2056
  path?: string;
1483
2057
  state: AXPContextState;
1484
2058
  data: any;
2059
+ origin?: AXPContextUpdateOrigin;
2060
+ /** Aggregated form dirty flag (context snapshot + composite widget dirty). */
2061
+ isFormDirty?: boolean;
1485
2062
  }
1486
2063
  declare const AXPContextStore: i0.Type<{
1487
2064
  data: i0.Signal<AXPContextData>;
1488
2065
  state: i0.Signal<AXPContextState>;
1489
- initialSnapshot: i0.Signal<{}>;
1490
- previousSnapshot: i0.Signal<{}>;
2066
+ savedSnapshot: i0.Signal<AXPContextData>;
2067
+ previousSnapshot: i0.Signal<AXPContextData>;
1491
2068
  lastChange: _ngrx_signals.DeepSignal<AXPContextChangeEvent>;
1492
2069
  isChanged: i0.Signal<boolean>;
1493
2070
  isReset: i0.Signal<boolean>;
1494
2071
  isInitiated: i0.Signal<boolean>;
1495
2072
  isEmpty: i0.Signal<boolean>;
2073
+ isSavedCommitted: i0.Signal<boolean>;
1496
2074
  isDirty: i0.Signal<boolean>;
1497
2075
  snapshot: i0.Signal<AXPContextData>;
1498
- initial: i0.Signal<{}>;
1499
- previous: i0.Signal<{}>;
2076
+ saved: i0.Signal<AXPContextData>;
2077
+ initial: i0.Signal<AXPContextData>;
2078
+ previous: i0.Signal<AXPContextData>;
1500
2079
  changeEvent: i0.Signal<AXPContextChangeEvent>;
1501
- update: (path: string, value: any) => void;
1502
- patch: (context: {}) => void;
2080
+ update: (path: string, value: any, options?: AXPContextUpdateOptions) => void;
2081
+ applyObjectPaths: (obj: Record<string, unknown>, options?: AXPContextUpdateOptions, prefix?: string) => void;
2082
+ patch: (context: Record<string, any>, options?: AXPContextPatchOptions) => void;
2083
+ revertToSaved: () => void;
1503
2084
  reset: () => void;
1504
2085
  set: (initialData: any) => void;
1505
2086
  getValue: (path: string) => any;
2087
+ getSavedValue: (path: string) => any;
2088
+ hasValue: (path: string) => boolean;
2089
+ commitSaved: () => void;
2090
+ applyParentBind: (merged: AXPContextData) => void;
1506
2091
  } & _ngrx_signals.StateSource<{
1507
2092
  data: AXPContextData;
1508
2093
  state: AXPContextState;
1509
- initialSnapshot: {};
1510
- previousSnapshot: {};
2094
+ savedSnapshot: AXPContextData;
2095
+ previousSnapshot: AXPContextData;
1511
2096
  lastChange: AXPContextChangeEvent;
1512
2097
  }>>;
1513
2098
 
2099
+ interface AXPComponentSlotConfig {
2100
+ name: string;
2101
+ priority?: number;
2102
+ component?: Type<any>;
2103
+ condition?: ((context?: AXPContextData) => boolean | Promise<boolean>) | string;
2104
+ features?: string[];
2105
+ loadComponent?: () => Type<any> | Promise<Type<any>>;
2106
+ options?: AXPOptionsData | (() => AXPOptionsData) | (() => Promise<AXPOptionsData>);
2107
+ }
2108
+ interface AXPComponentSlotModuleConfigs {
2109
+ [slotName: string]: AXPComponentSlotConfig[];
2110
+ }
2111
+ declare abstract class AXPComponentSlot {
2112
+ host: any;
2113
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPComponentSlot, never>;
2114
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPComponentSlot, never, never, {}, {}, never, never, true, never>;
2115
+ }
2116
+
2117
+ declare class AXPComponentSlotDirective implements OnInit {
2118
+ name: i0.InputSignal<string>;
2119
+ host: i0.InputSignal<any>;
2120
+ context: i0.InputSignal<any>;
2121
+ private elementRef;
2122
+ private registryService;
2123
+ private injector;
2124
+ private evaluator;
2125
+ viewContainerRef: ViewContainerRef;
2126
+ contextStore: {
2127
+ data: i0.Signal<AXPContextData>;
2128
+ state: i0.Signal<_acorex_platform_core.AXPContextState>;
2129
+ savedSnapshot: i0.Signal<AXPContextData>;
2130
+ previousSnapshot: i0.Signal<AXPContextData>;
2131
+ lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
2132
+ isChanged: i0.Signal<boolean>;
2133
+ isReset: i0.Signal<boolean>;
2134
+ isInitiated: i0.Signal<boolean>;
2135
+ isEmpty: i0.Signal<boolean>;
2136
+ isSavedCommitted: i0.Signal<boolean>;
2137
+ isDirty: i0.Signal<boolean>;
2138
+ snapshot: i0.Signal<AXPContextData>;
2139
+ saved: i0.Signal<AXPContextData>;
2140
+ initial: i0.Signal<AXPContextData>;
2141
+ previous: i0.Signal<AXPContextData>;
2142
+ changeEvent: i0.Signal<_acorex_platform_core.AXPContextChangeEvent>;
2143
+ update: (path: string, value: any, options?: _acorex_platform_core.AXPContextUpdateOptions) => void;
2144
+ applyObjectPaths: (obj: Record<string, unknown>, options?: _acorex_platform_core.AXPContextUpdateOptions, prefix?: string) => void;
2145
+ patch: (context: Record<string, any>, options?: _acorex_platform_core.AXPContextPatchOptions) => void;
2146
+ revertToSaved: () => void;
2147
+ reset: () => void;
2148
+ set: (initialData: any) => void;
2149
+ getValue: (path: string) => any;
2150
+ getSavedValue: (path: string) => any;
2151
+ hasValue: (path: string) => boolean;
2152
+ commitSaved: () => void;
2153
+ applyParentBind: (merged: AXPContextData) => void;
2154
+ } & _ngrx_signals.StateSource<{
2155
+ data: AXPContextData;
2156
+ state: _acorex_platform_core.AXPContextState;
2157
+ savedSnapshot: AXPContextData;
2158
+ previousSnapshot: AXPContextData;
2159
+ lastChange: _acorex_platform_core.AXPContextChangeEvent;
2160
+ }>;
2161
+ isEmpty: i0.Signal<boolean>;
2162
+ private _viewCount;
2163
+ private componentRefs;
2164
+ private placeholderRefs;
2165
+ constructor();
2166
+ ngOnInit(): Promise<void>;
2167
+ loadComponents(): Promise<void>;
2168
+ private evaluateCondition;
2169
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPComponentSlotDirective, never>;
2170
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPComponentSlotDirective, "axp-component-slot", ["slot"], { "name": { "alias": "name"; "required": true; "isSignal": true; }; "host": { "alias": "host"; "required": false; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
2171
+ }
2172
+
2173
+ declare class AXPComponentSlotRegistryService {
2174
+ private registry;
2175
+ register(slotName: string, config: AXPComponentSlotConfig): void;
2176
+ get(slotName: string): AXPComponentSlotConfig[];
2177
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPComponentSlotRegistryService, never>;
2178
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPComponentSlotRegistryService>;
2179
+ }
2180
+
2181
+ declare class AXPComponentSlotModule {
2182
+ static forRoot(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule>;
2183
+ static forChild(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule>;
2184
+ /**
2185
+ * @ignore
2186
+ */
2187
+ constructor(instances: any[]);
2188
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPComponentSlotModule, [{ optional: true; }]>;
2189
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXPComponentSlotModule, [typeof AXPComponentSlotDirective], never, [typeof AXPComponentSlotDirective]>;
2190
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXPComponentSlotModule>;
2191
+ }
2192
+
2193
+ /**
2194
+ * Compact hints for assembling platform context into LLM system prompts.
2195
+ * Mirrors fields used by {@link AXPAiPlatformRuntimeContext} and the mock engine runtime prompt
2196
+ * formatter — keep labels short and values bounded.
2197
+ */
2198
+ interface AXPContextDefinitionAiHints {
2199
+ /**
2200
+ * Short English label for bullet lists (e.g. `UI locale`, `Current instant (UTC, ISO 8601)`).
2201
+ */
2202
+ promptLabel?: string;
2203
+ /**
2204
+ * One-line guidance for the model (when to use this value, what not to ask the user).
2205
+ */
2206
+ usageHint?: string;
2207
+ /**
2208
+ * When `false`, this definition is omitted from AI system-prompt assembly. Default `true`.
2209
+ */
2210
+ includeInSystemPrompt?: boolean;
2211
+ /**
2212
+ * How to stringify the value compactly in prompts.
2213
+ */
2214
+ valueKind?: 'string' | 'number' | 'boolean' | 'instant' | 'locale' | 'dateTime' | 'object';
2215
+ /**
2216
+ * When `true`, the value must not be sent to the model (PII, secrets, tokens).
2217
+ */
2218
+ sensitive?: boolean;
2219
+ /**
2220
+ * Sort order when rendering the AI context block (lower first).
2221
+ */
2222
+ order?: number;
2223
+ }
2224
+ /**
2225
+ * Describes a named platform context key (e.g. `currentDate`, `language`).
2226
+ */
2227
+ interface AXPContextDefinition {
2228
+ /** Stable identifier used as the context key and in expressions. */
2229
+ name: string;
2230
+ /** Human-readable title for designers and tooling. */
2231
+ title: string;
2232
+ /** What this context represents and when consumers should use it. */
2233
+ description: string;
2234
+ /** Optional metadata for AI system-prompt assembly. */
2235
+ ai?: AXPContextDefinitionAiHints;
2236
+ }
2237
+
2238
+ interface AXPContextDefinitionProvider {
2239
+ items(): Promise<AXPContextDefinition[]>;
2240
+ }
2241
+ declare const AXP_CONTEXT_DEFINITION_PROVIDER: InjectionToken<AXPContextDefinitionProvider[]>;
2242
+
2243
+ /**
2244
+ * Collects {@link AXPContextDefinition} entries from all registered {@link AXPContextDefinitionProvider} instances.
2245
+ */
2246
+ declare class AXPContextDefinitionProviderService implements AXPContextDefinitionProvider {
2247
+ private readonly providers;
2248
+ items(): Promise<AXPContextDefinition[]>;
2249
+ get(name: string): Promise<AXPContextDefinition | undefined>;
2250
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPContextDefinitionProviderService, never>;
2251
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPContextDefinitionProviderService>;
2252
+ }
2253
+
1514
2254
  declare class AXPDataGenerator {
1515
2255
  static uuid(): string;
1516
2256
  static number(max: number): number;
@@ -1547,40 +2287,22 @@ type AXPValueTransformerFunctions = {
1547
2287
  };
1548
2288
  declare function objectKeyValueTransforms(keyName: string): AXPValueTransformerFunctions;
1549
2289
 
1550
- interface AXPDataSourceDataFieldDefinition {
1551
- name: string;
1552
- title: string;
1553
- datatype: string;
1554
- type: string;
1555
- options?: AXPOptionsData;
1556
- }
1557
- interface AXPDataSourceDefinition<T = any> {
1558
- name: string;
1559
- title: string;
1560
- valueField?: {
1561
- name: string;
1562
- title: string;
1563
- };
1564
- textField?: {
1565
- name: string;
1566
- title: string;
1567
- };
1568
- columns: AXPDataSourceDataFieldDefinition[];
1569
- filters: AXPFilterDefinition[];
1570
- samples?: any[];
1571
- visible?: boolean;
1572
- source: () => AXDataSource<T> | Promise<AXDataSource<T>>;
1573
- }
1574
- interface AXPDataSourceDefinitionProvider {
1575
- items(): Promise<AXPDataSourceDefinition[]>;
2290
+ declare class AXPContentCheckerDirective {
2291
+ viewContainerRef: ViewContainerRef;
2292
+ elementRef: ElementRef<HTMLDivElement>;
2293
+ isEmpty: i0.Signal<boolean>;
2294
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPContentCheckerDirective, never>;
2295
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPContentCheckerDirective, "[axp-content-checker]", ["checker"], {}, {}, never, never, true, never>;
1576
2296
  }
1577
- declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDefinitionProvider[]>;
1578
- declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
1579
- private providers;
1580
- items(): Promise<AXPDataSourceDefinition[]>;
1581
- get(name: string): Promise<AXPDataSourceDefinition | undefined>;
1582
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
1583
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPDataSourceDefinitionProviderService>;
2297
+
2298
+ declare class AXPDblClickDirective {
2299
+ onDblClick: EventEmitter<Event>;
2300
+ private lastTap;
2301
+ private readonly doubleTapThreshold;
2302
+ handleOnDblClick(event: Event): void;
2303
+ onTouchEnd(event: TouchEvent): void;
2304
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDblClickDirective, never>;
2305
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPDblClickDirective, "[onDblClick]", never, {}, { "onDblClick": "onDblClick"; }, never, never, true, never>;
1584
2306
  }
1585
2307
 
1586
2308
  declare class AXPElementDataDirective implements OnInit {
@@ -1602,16 +2324,6 @@ declare class AXPElementDataDirective implements OnInit {
1602
2324
  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>;
1603
2325
  }
1604
2326
 
1605
- declare class AXPDblClickDirective {
1606
- onDblClick: EventEmitter<Event>;
1607
- private lastTap;
1608
- private readonly doubleTapThreshold;
1609
- handleOnDblClick(event: Event): void;
1610
- onTouchEnd(event: TouchEvent): void;
1611
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPDblClickDirective, never>;
1612
- static ɵdir: i0.ɵɵDirectiveDeclaration<AXPDblClickDirective, "[onDblClick]", never, {}, { "onDblClick": "onDblClick"; }, never, never, true, never>;
1613
- }
1614
-
1615
2327
  declare class AXPGridLayoutDirective implements OnChanges {
1616
2328
  private el;
1617
2329
  private renderer;
@@ -1625,77 +2337,6 @@ declare class AXPGridLayoutDirective implements OnChanges {
1625
2337
  static ɵdir: i0.ɵɵDirectiveDeclaration<AXPGridLayoutDirective, "[axp-grid-layout]", never, { "options": { "alias": "axp-grid-layout"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1626
2338
  }
1627
2339
 
1628
- declare class AXPContentCheckerDirective {
1629
- viewContainerRef: ViewContainerRef;
1630
- elementRef: ElementRef<HTMLDivElement>;
1631
- isEmpty: i0.Signal<boolean>;
1632
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPContentCheckerDirective, never>;
1633
- static ɵdir: i0.ɵɵDirectiveDeclaration<AXPContentCheckerDirective, "[axp-content-checker]", ["checker"], {}, {}, never, never, true, never>;
1634
- }
1635
-
1636
- /**
1637
- * Fullscreen directive that provides CSS-based fullscreen functionality
1638
- * Usage: <element axFullscreen #fullscreen="axFullscreen"></element>
1639
- * Then: fullscreen.toggle() or fullscreen.enter() or fullscreen.exit()
1640
- */
1641
- declare class AXFullscreenDirective implements OnDestroy {
1642
- private elementRef;
1643
- /**
1644
- * Current fullscreen state
1645
- */
1646
- private readonly isFullscreenState;
1647
- /**
1648
- * Original element styles to restore
1649
- */
1650
- private originalStyles;
1651
- /**
1652
- * Original parent element reference
1653
- */
1654
- private originalParent;
1655
- /**
1656
- * Fullscreen container element
1657
- */
1658
- private fullscreenContainer;
1659
- /**
1660
- * Fullscreen change event
1661
- */
1662
- readonly fullscreenChange: i0.OutputEmitterRef<boolean>;
1663
- private readonly destroyRef;
1664
- private readonly renderer;
1665
- constructor(elementRef: ElementRef<HTMLElement>);
1666
- /**
1667
- * Toggle fullscreen state
1668
- */
1669
- toggle(): Promise<void>;
1670
- /**
1671
- * Enter fullscreen mode using CSS
1672
- */
1673
- enter(): Promise<void>;
1674
- /**
1675
- * Exit fullscreen mode
1676
- */
1677
- exit(): Promise<void>;
1678
- /**
1679
- * Check if currently in fullscreen mode
1680
- */
1681
- isFullscreen(): boolean;
1682
- /**
1683
- * Store original element styles
1684
- */
1685
- private storeOriginalStyles;
1686
- /**
1687
- * Restore original element styles
1688
- */
1689
- private restoreOriginalStyles;
1690
- /**
1691
- * Convert camelCase to kebab-case for CSS properties
1692
- */
1693
- private camelToKebabCase;
1694
- ngOnDestroy(): void;
1695
- static ɵfac: i0.ɵɵFactoryDeclaration<AXFullscreenDirective, never>;
1696
- static ɵdir: i0.ɵɵDirectiveDeclaration<AXFullscreenDirective, "[axFullscreen]", ["axFullscreen"], {}, { "fullscreenChange": "fullscreenChange"; }, never, never, true, never>;
1697
- }
1698
-
1699
2340
  type AXPDistributedEventListenerProviderToken<T> = AXPDistributedEventListenerProvider<T> | Promise<AXPDistributedEventListenerProvider<T>>;
1700
2341
  declare const AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER: InjectionToken<AXPDistributedEventListenerProviderToken<any>[]>;
1701
2342
  interface AXPDistributedEventListenerProvider<TInput = any, TOutput = void> {
@@ -1822,7 +2463,7 @@ declare class AXPExpressionEvaluatorScopeProviderContext {
1822
2463
  type AXPExpressionEvaluatorScopeProviders = AXPExpressionEvaluatorScopeProvider[] | (() => AXPExpressionEvaluatorScopeProvider[]);
1823
2464
  declare const AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER: InjectionToken<AXPExpressionEvaluatorScopeProviders>;
1824
2465
  declare class AXPExpressionEvaluatorScopeProviderService {
1825
- private providers;
2466
+ private readonly injector;
1826
2467
  private cache;
1827
2468
  private load;
1828
2469
  getScopesAsync(): Promise<AXPExpressionEvaluatorScope>;
@@ -1853,6 +2494,142 @@ declare class AXPHookService {
1853
2494
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPHookService>;
1854
2495
  }
1855
2496
 
2497
+ /** Acorex overlay root (modal shell, popup, dialog). */
2498
+ declare const AX_OVERLAY_CONTAINER_SELECTOR = ".ax-overlay-container";
2499
+ /** Anchored widget panel inside an overlay (select, date picker, dropdown). */
2500
+ declare const AX_OVERLAY_PANE_SELECTOR = ".ax-overlay-pane";
2501
+ /**
2502
+ * True when a visible overlay layer is foreground (modal, popup, widget popover/picker).
2503
+ */
2504
+ declare function hasForegroundOverlayLayer(document: Document): boolean;
2505
+ /**
2506
+ * Returns visible anchored overlay panes (widget popovers/pickers).
2507
+ */
2508
+ declare function getVisibleAnchoredOverlayPanes(document: Document): HTMLElement[];
2509
+ /**
2510
+ * Visible anchored panes that are not contained by `excludeContainer` (e.g. dialog shell).
2511
+ */
2512
+ declare function getNestedVisibleOverlayPanes(document: Document, excludeContainer: HTMLElement | null): HTMLElement[];
2513
+ /**
2514
+ * Collects visible overlay containers in stacking order (later / higher z-index wins).
2515
+ */
2516
+ declare function getVisibleOverlayContainers(document: Document): HTMLElement[];
2517
+ /** Topmost visible overlay container, if any. */
2518
+ declare function getTopVisibleOverlayContainer(document: Document): HTMLElement | null;
2519
+ /** Nearest overlay container ancestor of `element`. */
2520
+ declare function findOverlayContainerAncestor(element: HTMLElement): HTMLElement | null;
2521
+ /**
2522
+ * Returns true when the overlay element is rendered and visible in the viewport.
2523
+ */
2524
+ declare function isVisibleOverlayElement(element: Element): boolean;
2525
+
2526
+ interface AXPKeyboardShortcutFormatOptions {
2527
+ directionBehavior?: AXPKeyboardShortcutDirectionBehavior;
2528
+ /** From `AXLocaleService.activeProfile().i18nMeta?.rtl`. */
2529
+ isRtl?: boolean;
2530
+ /** Chord was already passed through `resolveDisplayShortcutChord` (e.g. help `displayChords`). */
2531
+ skipDirectionResolve?: boolean;
2532
+ }
2533
+ /** Maps a horizontal direction key to its RTL semantic counterpart. */
2534
+ declare function mirrorHorizontalDirectionalKey(key: string): string;
2535
+ /** True when the chord's primary key is a horizontal direction key (`←`/`→`, `[`/`]`). */
2536
+ declare function isHorizontalDirectionalShortcutKey(key: string): boolean;
2537
+ /**
2538
+ * Resolves direction behavior for a chord.
2539
+ * Horizontal direction keys default to `semantic`; others default to `physical`.
2540
+ * An explicit binding value always wins.
2541
+ */
2542
+ declare function resolveEffectiveDirectionBehavior(chord: AXPKeyboardShortcutChord, explicit?: AXPKeyboardShortcutDirectionBehavior): AXPKeyboardShortcutDirectionBehavior;
2543
+ /** Resolves the key the user presses for a semantically registered chord in RTL. */
2544
+ declare function resolveSemanticDirectionalKey(storedKey: string, rtl: boolean): string;
2545
+ /** Chord string with directional key mirrored for RTL display/matching when semantic. */
2546
+ declare function resolveDisplayShortcutChord(chord: AXPKeyboardShortcutChord, isRtl: boolean, explicitDirectionBehavior?: AXPKeyboardShortcutDirectionBehavior): string;
2547
+ interface ParsedShortcut {
2548
+ ctrl: boolean;
2549
+ shift: boolean;
2550
+ alt: boolean;
2551
+ meta: boolean;
2552
+ key: string;
2553
+ }
2554
+ /**
2555
+ * Parses a shortcut chord such as `Enter`, `Escape`, or `ctrl+shift+s`.
2556
+ */
2557
+ declare function parseKeyboardShortcutChord(chord: AXPKeyboardShortcutChord): ParsedShortcut;
2558
+ /**
2559
+ * Returns true when the keyboard event matches the given chord.
2560
+ * On macOS, `ctrl+*` chords also match `meta+*` for common platform shortcuts.
2561
+ */
2562
+ declare function matchesKeyboardShortcutChord(event: KeyboardEvent, chord: AXPKeyboardShortcutChord, options?: AXPKeyboardShortcutFormatOptions): boolean;
2563
+ /**
2564
+ * Formats one chord for UI display (OS-aware modifier symbols).
2565
+ */
2566
+ declare function formatKeyboardShortcutChord(chord: AXPKeyboardShortcutChord, options?: AXPKeyboardShortcutFormatOptions): string;
2567
+ /**
2568
+ * Formats multiple chords as a single display string (e.g. `← / PgUp`).
2569
+ */
2570
+ declare function formatKeyboardShortcutChords(chords: readonly AXPKeyboardShortcutChord[], options?: AXPKeyboardShortcutFormatOptions): string;
2571
+ /** Maps a chord to `ax-kbd-item` key parts (modifiers + display symbols). */
2572
+ declare function chordToKbdItemKeys(chord: AXPKeyboardShortcutChord, options?: AXPKeyboardShortcutFormatOptions): string[];
2573
+ /**
2574
+ * When focus is in a native edit control, avoid stealing plain key shortcuts.
2575
+ */
2576
+ declare function isKeyboardTargetInsideEditableField(target: EventTarget | null): boolean;
2577
+ /**
2578
+ * Returns true when Esc should close an open widget overlay first (select, date picker, popover, modal).
2579
+ * Used by the global shortcut registry so page-level Esc bindings do not swallow overlay dismiss.
2580
+ */
2581
+ declare function shouldDeferEscapeToOpenOverlay(document: Document): boolean;
2582
+ declare function isMacPlatform(): boolean;
2583
+
2584
+ /**
2585
+ * Normalizes a declarative shortcut (`'ctrl+s'` or `{ keys: 'home', allowInEditableFields: false }`).
2586
+ */
2587
+ declare function normalizeKeyboardShortcut(shortcut: AXPKeyboardShortcut): AXPResolvedKeyboardShortcut | undefined;
2588
+ /**
2589
+ * Normalizes an array of declarative shortcuts. Empty or invalid entries are skipped.
2590
+ */
2591
+ declare function normalizeKeyboardShortcuts(shortcuts?: readonly AXPKeyboardShortcut[]): AXPResolvedKeyboardShortcut[];
2592
+ /** Returns the first chord from declarative shortcuts (for UI hints such as `ax-kbd`). */
2593
+ declare function getPrimaryKeyboardShortcutChord(shortcuts?: readonly AXPKeyboardShortcut[]): AXPKeyboardShortcutChord | undefined;
2594
+
2595
+ interface AXPKeyboardShortcutRegisterOptions extends AXPKeyboardShortcutRegistration {
2596
+ /** Auto-unregister when the owner is destroyed. */
2597
+ owner: DestroyRef;
2598
+ /** When set, shortcuts are active only while the element is connected to the document. */
2599
+ elementRef?: ElementRef<HTMLElement>;
2600
+ }
2601
+ declare class AXPKeyboardShortcutRegistry {
2602
+ private readonly document;
2603
+ private readonly localeService;
2604
+ private readonly activeProfile;
2605
+ private readonly registrations;
2606
+ private helpDialogHandler;
2607
+ private listenerAttached;
2608
+ /** Active shortcut entries for the help dialog. */
2609
+ readonly helpEntries: i0.Signal<AXPKeyboardShortcutHelpEntry[]>;
2610
+ /**
2611
+ * Registers a scope of shortcuts. Unregisters automatically when `owner` is destroyed.
2612
+ */
2613
+ register(options: AXPKeyboardShortcutRegisterOptions): void;
2614
+ /**
2615
+ * Wires the F1 help dialog opener (provided by platform/common).
2616
+ */
2617
+ setHelpDialogHandler(handler: () => void | Promise<void>): void;
2618
+ /** OS-aware display string for UI hints. */
2619
+ formatDisplayKeys(chords: readonly AXPKeyboardShortcutChord[]): string;
2620
+ private ensureHelpShortcutRegistered;
2621
+ private createRegistrationId;
2622
+ private unregister;
2623
+ private ensureListener;
2624
+ private readonly onDocumentKeyDown;
2625
+ private resolveActiveCandidates;
2626
+ private isRegistrationActive;
2627
+ private isRtlProfile;
2628
+ private buildHelpEntries;
2629
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPKeyboardShortcutRegistry, never>;
2630
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPKeyboardShortcutRegistry>;
2631
+ }
2632
+
1856
2633
  /**
1857
2634
  * Feature definition in module manifest.
1858
2635
  * Defines available features with default values.
@@ -1965,6 +2742,14 @@ interface AXPFeatureDefinition extends AXPModuleFeatureDefinition {
1965
2742
  key: string;
1966
2743
  }
1967
2744
 
2745
+ /**
2746
+ * Data source definition for module names/titles from {@link AXPModuleManifestRegistry}.
2747
+ */
2748
+ declare class AXPModuleManifestsDataSourceDefinition implements AXPDataSourceDefinitionProvider {
2749
+ private readonly manifestRegistry;
2750
+ items(): Promise<AXPDataSourceDefinition[]>;
2751
+ }
2752
+
1968
2753
  /**
1969
2754
  * Registry service for module manifests.
1970
2755
  * Collects and manages all registered module manifests.
@@ -2047,12 +2832,13 @@ declare class AXPModuleManifestRegistry {
2047
2832
 
2048
2833
  interface AXPStartUpTask {
2049
2834
  name: string;
2050
- statusText: string;
2835
+ statusText: AXPMultiLanguageString;
2051
2836
  priority: number;
2052
2837
  run: () => Promise<void>;
2053
2838
  }
2054
2839
 
2055
2840
  declare class AXPAppStartUpService {
2841
+ private readonly translationService;
2056
2842
  private tasks;
2057
2843
  registerTask(task: AXPStartUpTask): void;
2058
2844
  runAllTasks(): Promise<void>;
@@ -2132,6 +2918,31 @@ declare const AXP_SESSION_SERVICE: InjectionToken<AXPISessionService>;
2132
2918
  */
2133
2919
  declare const AXP_MODULE_MANIFEST_PROVIDER: InjectionToken<AXPModuleManifest[]>;
2134
2920
 
2921
+ /**
2922
+ * Locale-aware comparison of {@link AXPMultiLanguageString} values (plain string, `@scope:key`, or locale map).
2923
+ * Resolves each side with {@link resolveMultiLanguageString} for `locale`, then compares with `String#localeCompare`.
2924
+ */
2925
+ declare function compareMultiLanguageStrings(a: AXPMultiLanguageString | null | undefined, b: AXPMultiLanguageString | null | undefined, locale: string, collatorOptions?: Intl.CollatorOptions): number;
2926
+ /**
2927
+ * Stable sort copy: orders items by resolved string for `getValue(item)` using the active `locale`.
2928
+ */
2929
+ declare function sortByMultiLanguageString<T>(items: readonly T[], getValue: (item: T) => AXPMultiLanguageString | null | undefined, locale: string, collatorOptions?: Intl.CollatorOptions): T[];
2930
+ /**
2931
+ * True when the resolved value contains `query` (case-insensitive) for `locale`.
2932
+ * Useful for search/filter flows over {@link AXPMultiLanguageString}.
2933
+ */
2934
+ declare function searchInMultiLanguageString(value: AXPMultiLanguageString | null | undefined, query: string, locale: string): boolean;
2935
+
2936
+ /** Per-locale string map (`{ 'en-US': '...', 'fa-IR': '...' }`). */
2937
+ declare function isLocaleStringMap(value: unknown): value is Record<string, string>;
2938
+ /**
2939
+ * Use locale-map read/write when the option is on or live/saved data is already a map.
2940
+ * Auto-enables when API data is a map but the editor option was left off.
2941
+ */
2942
+ declare function shouldUseLocaleMapShape(localeMapOptionEnabled: boolean, current: unknown, saved: unknown): boolean;
2943
+ /** Updates one locale entry; preserves sibling locales from current or saved map. */
2944
+ declare function buildLocaleTextMapValue(current: unknown, saved: unknown, lang: string, input: string): Record<string, string> | null;
2945
+
2135
2946
  /**
2136
2947
  * Represents a tag with text, color, and metadata
2137
2948
  */
@@ -2395,6 +3206,26 @@ declare function getEnumValues(enumType: any): {
2395
3206
  id: string;
2396
3207
  title: string;
2397
3208
  }[];
3209
+ /**
3210
+ * Semantic equality for lookup/select values when restoring saved baseline shape.
3211
+ * Compares by selection identity (id), including two full items with the same id.
3212
+ */
3213
+ declare function isSelectionValueEqual(a: unknown, b: unknown): boolean;
3214
+ /**
3215
+ * Semantic equality for dirty-state and baseline checks.
3216
+ * Prefer over lodash `isEqual` when comparing user-edited form/context data to a saved baseline.
3217
+ *
3218
+ * Arrays: `[]`, `null`, and all-empty lists are equivalent; non-empty arrays compare as multisets (order ignored).
3219
+ */
3220
+ declare function isFormValueEqual(a: unknown, b: unknown): boolean;
3221
+ /**
3222
+ * Returns whether `current` differs from the saved/clean `baseline` snapshot.
3223
+ */
3224
+ declare function isFormContextDirty(current: Record<string, unknown>, baseline: Record<string, unknown>): boolean;
3225
+ /**
3226
+ * Clones a context object for use as a dirty-tracking baseline.
3227
+ */
3228
+ declare function captureFormContextBaseline(context: Record<string, unknown>): Record<string, unknown>;
2398
3229
 
2399
3230
  /**
2400
3231
  * Creates a provider instance within an injection context.
@@ -2417,26 +3248,54 @@ declare function createProviderWithInjectionContext<T>(loader: () => Promise<new
2417
3248
  *
2418
3249
  * @param token - The injection token to provide
2419
3250
  * @param loader - Function that returns a promise resolving to the provider class
2420
- * @param multi - Whether the provider is multi-provider (defaults to true)
3251
+ * @param multi - Optional. Whether the provider is a multi-provider (array of values). Defaults to `true`. Pass `false` for a single provider.
2421
3252
  * @returns Provider configuration object
2422
3253
  *
2423
3254
  * @example
2424
3255
  * ```typescript
2425
- * providers: [
2426
- * provideLazyProvider(
2427
- * AXP_SETTING_DEFINITION_PROVIDER,
2428
- * () => import('./settings.provider').then(m => m.AXMSettingProvider)
2429
- * )
2430
- * ]
3256
+ * // Multi-provider (default)
3257
+ * provideLazyProvider(
3258
+ * AXP_DATASOURCE_DEFINITION_PROVIDER,
3259
+ * () => import('./datasource.provider').then(m => m.AXMDataSourceProvider)
3260
+ * )
3261
+ *
3262
+ * // Single provider
3263
+ * provideLazyProvider(
3264
+ * SOME_TOKEN,
3265
+ * () => import('./my.provider').then(m => m.MyProvider),
3266
+ * false
3267
+ * )
2431
3268
  * ```
2432
3269
  */
2433
3270
  declare function provideLazyProvider<TProvider>(token: InjectionToken<any>, loader: () => Promise<new () => TProvider>, multi?: boolean): Provider;
2434
3271
 
3272
+ /**
3273
+ * If `raw` is a plain non-array object with a `value` property, returns `value`; otherwise returns `raw`.
3274
+ */
3275
+ declare function unwrapValueProperty(raw: unknown): unknown;
3276
+ /**
3277
+ * Coerces to a trimmed string. Plain objects may carry `{ value }` from setting widgets or `{ id }` from select payloads using `valueField: 'id'`.
3278
+ */
3279
+ declare function coerceUnknownToTrimmedString(raw: unknown): string;
3280
+ /**
3281
+ * Coerces to boolean: direct booleans pass through; wrapped `{ value: true | 'true' }` is respected; otherwise false.
3282
+ */
3283
+ declare function coerceUnknownToBoolean(raw: unknown): boolean;
3284
+ /** Parses a finite number after optional `{ value }` unwrap; non-finite or empty string yields NaN. */
3285
+ declare function coerceUnknownToFiniteNumber(raw: unknown): number;
3286
+ /** Parses a Date after optional `{ value }` unwrap; invalid input yields Invalid Date. */
3287
+ declare function coerceUnknownToDate(raw: unknown): Date;
3288
+
2435
3289
  declare function extractTextFromHtml(value: string): string;
3290
+ /**
3291
+ * True when the string likely contains HTML markup (e.g. `<p>`, `<ul>`), as opposed to plain text.
3292
+ * Used to choose innerHTML vs text interpolation for multilingual fields.
3293
+ */
3294
+ declare function containsHtmlMarkup(value: string | null | undefined): boolean;
2436
3295
  /**
2437
3296
  * Generate kebab-case group name from title
2438
3297
  */
2439
3298
  declare function generateKebabCase(title: string): string;
2440
3299
 
2441
- export { AXFullscreenDirective, AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPColorPaletteProvider, AXPColorPaletteService, AXPComponentLogoConfig, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPImageUrlLogoConfig, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPPlatformScope, AXPScreenSize, AXPSystemActionType, AXPSystemActions, 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_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_SESSION_SERVICE, AXP_TAG_PROVIDER, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, cleanDeep, createProviderWithInjectionContext, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, objectKeyValueTransforms, provideLazyProvider, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, setSmart };
2442
- export type { AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, AXPCommandMessage, AXPContent, AXPContentDirection, AXPContentType, AXPContextData, AXPContextState, AXPDataSource, AXPDataSourceDataFieldDefinition, AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPDataType, AXPDistributedEventListenerProvider, AXPDistributedEventListenerProviderToken, AXPEntityReference, AXPEqualValidationRule, AXPExecuteCommand, AXPExecuteCommandResult, AXPExportCsvOptions, AXPExportExcelOptions, AXPExportOptions, AXPExportPdfOptions, AXPExportPrintOptions, AXPExpression, AXPExpressionEvaluatorScope, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviders, 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 };
3300
+ export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPCatalogScopeDefinitionProviderService, AXPCatalogScopeDefinitionsDataSourceDefinition, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextDefinitionProviderService, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPImageUrlLogoConfig, AXPKeyboardShortcutPriority, AXPKeyboardShortcutRegistry, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPModuleManifestsDataSourceDefinition, AXPPlatformCoreDataSourceKeys, AXPPlatformScope, AXPScreenSize, AXPSystemActionType, AXPSystemActions, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_CATALOG_SCOPE_DEFINITION_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_CONTEXT_DEFINITION_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, AX_OVERLAY_CONTAINER_SELECTOR, AX_OVERLAY_PANE_SELECTOR, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, buildLocaleTextMapValue, captureFormContextBaseline, chordToKbdItemKeys, cleanDeep, coerceUnknownToBoolean, coerceUnknownToDate, coerceUnknownToFiniteNumber, coerceUnknownToTrimmedString, compareMultiLanguageStrings, containsHtmlMarkup, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, findOverlayContainerAncestor, formatKeyboardShortcutChord, formatKeyboardShortcutChords, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getNestedVisibleOverlayPanes, getPrimaryKeyboardShortcutChord, getSmart, getSystemActions, getTopVisibleOverlayContainer, getVisibleAnchoredOverlayPanes, getVisibleOverlayContainers, hasForegroundOverlayLayer, isFormContextDirty, isFormValueEqual, isHorizontalDirectionalShortcutKey, isKeyboardTargetInsideEditableField, isLocaleStringMap, isMacPlatform, isSelectionValueEqual, isVisibleOverlayElement, matchesKeyboardShortcutChord, mirrorHorizontalDirectionalKey, normalizeDefinitionCategories, normalizeKeyboardShortcut, normalizeKeyboardShortcuts, objectKeyValueTransforms, parseKeyboardShortcutChord, provideLazyProvider, resolveActionLook, resolveDisplayShortcutChord, resolveEffectiveDirectionBehavior, resolvePlatformScopeKey, resolvePlatformScopeName, resolveSemanticDirectionalKey, searchInMultiLanguageString, setSmart, shouldDeferEscapeToOpenOverlay, shouldUseLocaleMapShape, sortByMultiLanguageString, unwrapValueProperty };
3301
+ export type { AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCatalogScopeDefinition, AXPCatalogScopeDefinitionProvider, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPCategoryListItem, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, AXPColumnWidthMatcher, AXPColumnWidthProvider, AXPCommandMessage, AXPComponentSlotConfig, AXPComponentSlotModuleConfigs, AXPContent, AXPContentDirection, AXPContentType, AXPContextData, AXPContextDefinition, AXPContextDefinitionAiHints, AXPContextDefinitionProvider, AXPContextPatchOptions, AXPContextState, AXPContextUpdateOptions, AXPContextUpdateOrigin, AXPDataSource, AXPDataSourceArray, AXPDataSourceDataFieldDefinition, AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPDataSourceSample, AXPDataSourceType, AXPDataSourceValue, AXPDataType, AXPDefinitionCategory, 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, AXPFilterTriggerDefinition, AXPFlowDirection, AXPGridLayoutOptions, AXPGridPlacement, AXPISessionService, AXPKeyboardShortcut, AXPKeyboardShortcutBinding, AXPKeyboardShortcutChord, AXPKeyboardShortcutConfig, AXPKeyboardShortcutDirectionBehavior, AXPKeyboardShortcutFormatOptions, AXPKeyboardShortcutHelpEntry, AXPKeyboardShortcutRegisterOptions, AXPKeyboardShortcutRegistration, AXPLazyDataSource, AXPLogoConfig, AXPMaxLengthValidationRule, AXPMaybePromise, AXPMetaData, AXPMiddlewareErrorResponse, AXPMinLengthValidationRule, AXPModuleFeatureDefinition, AXPModuleFeatureDefinitionWithKey, AXPModuleManifest, AXPMultiLanguageString, AXPNavigateActionCommand, AXPNavigateActionOptions, AXPOptionsData, AXPPageStatus, AXPPagedListResult, AXPPartialNested, AXPPlatformScopeKey, AXPProperty, AXPPropertyGroup, AXPPropertyInterface, AXPQueryFetchResult, AXPQueryRequest, AXPReqexValidationRule, AXPRequiredValidationRule, AXPResolvedKeyboardShortcut, AXPSortDefinition, AXPSortQuery, AXPStartUpTask, AXPStringValidationRules, AXPSystemAction, AXPTag, AXPTagFilterOptions, AXPUserReference, AXPValidationRule, AXPValidationRules, AXPValueTransformerFunction, AXPValueTransformerFunctions, AXPValueUnit, AXPValueUnits, AXPViewBlockDefinition, AXPViewDefinition, AXPViewFieldDefinition, AXPViewQuery, AXPWidgetTrigger, AXPWidgetTriggers, ColumnNameMatcher, ColumnWidthValue, IColumnWithWidth, WidgetTypeMatcher };