@acorex/platform 21.0.0-next.7 → 21.0.0-next.71

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 (126) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +281 -23
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs +163 -0
  4. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +1381 -276
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +1538 -611
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +557 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +1372 -210
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  14. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-components.mjs +6298 -1929
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +456 -204
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs +371 -0
  20. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs +100 -0
  22. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-layout-entity.mjs +22537 -9975
  24. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-layout-views.mjs +865 -218
  26. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-widget-core.mjs +2138 -487
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  29. 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
  30. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  32. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  34. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +116 -0
  36. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs} +6 -6
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs} +5 -5
  40. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs.map +1 -0
  41. 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
  42. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-layout-widgets.mjs +10434 -7982
  44. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-native.mjs +8 -7
  46. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-runtime.mjs +391 -166
  48. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  49. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs +160 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs +120 -0
  52. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map +1 -0
  53. 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
  54. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  57. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  58. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  60. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  61. package/fesm2022/acorex-platform-themes-default.mjs +2289 -90
  62. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  65. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  66. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  67. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs} +52 -33
  68. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +1 -0
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  70. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  71. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +86 -0
  72. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  73. package/fesm2022/acorex-platform-themes-shared.mjs +790 -612
  74. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  75. package/fesm2022/acorex-platform-workflow.mjs +978 -238
  76. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  77. package/fesm2022/acorex-platform.mjs.map +1 -1
  78. package/package.json +40 -38
  79. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +241 -4
  80. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +833 -89
  81. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +779 -164
  82. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
  83. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +277 -55
  84. package/types/acorex-platform-layout-components.d.ts +3257 -0
  85. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
  86. package/types/acorex-platform-layout-entity.d.ts +4492 -0
  87. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +247 -62
  88. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +437 -131
  89. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +1140 -506
  90. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  91. package/types/acorex-platform-runtime.d.ts +571 -0
  92. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +254 -7
  93. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +30 -2
  94. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +620 -617
  95. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs +0 -71
  96. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs +0 -135
  99. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  106. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DfJEx_bs.mjs +0 -1542
  108. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DfJEx_bs.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  110. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  115. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs +0 -65
  120. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
  121. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs +0 -64
  122. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  123. package/layout/components/index.d.ts +0 -1669
  124. package/layout/entity/index.d.ts +0 -2287
  125. package/runtime/index.d.ts +0 -307
  126. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -1,7 +1,9 @@
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, 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
 
@@ -899,7 +901,7 @@ declare function getActionButton(actionType: string): {
899
901
  interface AXPColumnQuery {
900
902
  name: string;
901
903
  title: string;
902
- visible: boolean;
904
+ visible: boolean | string;
903
905
  }
904
906
 
905
907
  type AXPPartialNested<T> = {
@@ -907,6 +909,28 @@ type AXPPartialNested<T> = {
907
909
  };
908
910
  declare function getNestedKeys(obj: any, prefix?: string): string[];
909
911
  type AXPExpression = string;
912
+ /**
913
+ * Plain or rich text that may be localized: a single string or a map of locale code to string.
914
+ * Use when multi-language editing stores `Record<locale, string>` instead of one string.
915
+ *
916
+ * @example Single value (one locale or shared text)
917
+ * `"<p>Pick one</p>"`
918
+ *
919
+ * @example Per-locale map (e.g. after multi-language editor save)
920
+ * `{ "en-US": "<p>Pick one</p>", "fa-IR": "<p>یکی را انتخاب کنید</p>" }`
921
+ */
922
+ type AXPMultiLanguageString = AXMultiLanguageString;
923
+ /**
924
+ * Shared category descriptor for widgets, query catalog tooling, and other definition groupings.
925
+ */
926
+ interface AXPDefinitionCategory {
927
+ name: string;
928
+ title: AXPMultiLanguageString;
929
+ order: number;
930
+ icon?: string;
931
+ }
932
+ /** Normalizes definition categories to an array for iteration and serialization. */
933
+ declare function normalizeDefinitionCategories(categories?: AXPDefinitionCategory | AXPDefinitionCategory[]): AXPDefinitionCategory[];
910
934
  type AXPMetaData = Record<string, any>;
911
935
  type AXPOptionsData<T extends Record<string, unknown> = Record<string, any>> = T;
912
936
  interface AXPValueUnit {
@@ -943,8 +967,10 @@ interface AXPContent {
943
967
  content: string;
944
968
  contentType: AXPContentType;
945
969
  }
970
+ type AXPMaybePromise<T = unknown> = T | Promise<T>;
946
971
 
947
972
  type AXPDataSource = string | AXDataSource | any[];
973
+ type AXPDataType = 'string' | 'number' | 'boolean' | 'date' | 'object' | 'array' | 'blob';
948
974
  interface AXPPagedListResult<T = any> {
949
975
  items: T[];
950
976
  total: number;
@@ -958,31 +984,142 @@ interface AXPQueryRequest {
958
984
  [key: string]: string;
959
985
  };
960
986
  }
961
- type AXPDataType = 'string' | 'number' | 'object' | 'boolean' | 'array';
987
+ /**
988
+ * Category Entity - Base interface for hierarchical category structures
989
+ *
990
+ * This interface provides a standardized data model for category entities across the platform.
991
+ * All category entities (e.g., ReportCategory, ActivityCategory, WorkflowCategory) extend this interface
992
+ * to ensure consistency in data structure and field names.
993
+ *
994
+ * @template TKey - The type of the identifier key (default: string)
995
+ *
996
+ * @example
997
+ * ```typescript
998
+ * const category: AXPCategoryEntity = {
999
+ * id: 'cat-001',
1000
+ * title: 'Electronics',
1001
+ * description: 'Electronic products',
1002
+ * parentId: undefined, // Root category
1003
+ * childrenCount: 2, // Has 2 direct child categories
1004
+ * itemsCount: 5, // Has 5 items directly in this category
1005
+ * totalChildrenCount: 6, // Total of 6 nested categories (including grandchildren)
1006
+ * totalItemsCount: 23 // Total of 23 items in entire category tree
1007
+ * };
1008
+ * ```
1009
+ */
962
1010
  interface AXPCategoryEntity<TKey = string> {
1011
+ /** Unique identifier for the category */
963
1012
  id: TKey;
964
- title: string;
965
- description?: string;
1013
+ /** Display name of the category (required) */
1014
+ title: AXPMultiLanguageString;
1015
+ /** Optional description of the category */
1016
+ description?: AXPMultiLanguageString;
1017
+ /** Parent category ID (undefined for root categories) */
966
1018
  parentId?: TKey;
1019
+ /**
1020
+ * Count of direct child categories only (not recursive)
1021
+ *
1022
+ * Used by UI components to determine if a category has children and should show an expand icon.
1023
+ * This enables efficient lazy loading - components can check this property without querying the API.
1024
+ *
1025
+ * @example
1026
+ * - Category with 2 direct children: `childrenCount: 2`
1027
+ * - Leaf category (no children): `childrenCount: 0`
1028
+ *
1029
+ * @remarks
1030
+ * - Always set to `0` for leaf categories
1031
+ * - Does not include grandchildren or nested descendants
1032
+ * - Automatically maintained by middleware for category entities
1033
+ */
967
1034
  childrenCount: number;
1035
+ /**
1036
+ * Count of items directly assigned to this category (not recursive)
1037
+ *
1038
+ * Represents the number of items (e.g., reports, activities, workflows) that are directly
1039
+ * assigned to this category. Does not include items from child categories.
1040
+ *
1041
+ * Useful for:
1042
+ * - Displaying item counts per category in UI (e.g., "5 reports" badge)
1043
+ * - Optimizing queries (skip API call if itemsCount === 0)
1044
+ * - Showing category statistics
1045
+ *
1046
+ * @example
1047
+ * - Category with 5 reports directly assigned: `itemsCount: 5`
1048
+ * - Category with no direct items: `itemsCount: 0` or `undefined`
1049
+ *
1050
+ * @remarks
1051
+ * - Does not include items from child categories
1052
+ * - Can be calculated dynamically or stored
1053
+ * - Optional - may be undefined if not needed
1054
+ */
968
1055
  itemsCount?: number;
969
- totalChildren?: number;
970
- totalItems?: number;
1056
+ /**
1057
+ * Recursive count of all nested child categories (includes all descendants)
1058
+ *
1059
+ * Represents the total number of categories in the entire subtree starting from this category.
1060
+ * Includes children, grandchildren, and all nested descendants.
1061
+ *
1062
+ * Useful for:
1063
+ * - Analytics and summary displays
1064
+ * - Showing complete category tree scope
1065
+ * - Performance metrics
1066
+ *
1067
+ * @example
1068
+ * Root category with:
1069
+ * - 2 direct children
1070
+ * - Each child has 2 children (4 grandchildren)
1071
+ * Result: `totalChildrenCount: 6` (2 + 4)
1072
+ *
1073
+ * @remarks
1074
+ * - Optional - typically used for analytics
1075
+ * - Includes all nested levels (recursive)
1076
+ * - Can be expensive to calculate for large trees
1077
+ */
1078
+ totalChildrenCount?: number;
1079
+ /**
1080
+ * Recursive count of all items in this category and all descendants
1081
+ *
1082
+ * Represents the total number of items (e.g., reports, activities, workflows) in the entire
1083
+ * category tree, including items from this category and all nested child categories.
1084
+ *
1085
+ * Useful for:
1086
+ * - Analytics and summary displays
1087
+ * - Showing complete scope of a category branch
1088
+ * - Dashboard statistics
1089
+ *
1090
+ * @example
1091
+ * Category with:
1092
+ * - 5 items directly assigned
1093
+ * - 1 child category with 3 items
1094
+ * Result: `totalItemsCount: 8` (5 + 3)
1095
+ *
1096
+ * @remarks
1097
+ * - Optional - typically used for analytics
1098
+ * - Includes items from all nested categories (recursive)
1099
+ * - Can be expensive to calculate for large trees
1100
+ */
1101
+ totalItemsCount?: number;
971
1102
  }
972
1103
  interface AXPCategoryEntityWithItems<T> extends AXPCategoryEntity {
973
1104
  items: T[];
974
1105
  children?: AXPCategoryEntityWithItems<T>[];
975
1106
  }
1107
+ /**
1108
+ * Denormalized category row on entities and DTOs (id + localized display title).
1109
+ * Use for `categories` arrays expanded from {@link AXPCategoryEntity} assignments.
1110
+ */
1111
+ interface AXPCategoryListItem<TKey extends string = string> {
1112
+ id: TKey;
1113
+ title: AXPMultiLanguageString;
1114
+ }
976
1115
  interface AXPCategorizedEntity {
977
1116
  categoryIds: string[];
978
1117
  }
979
1118
  interface AXPCategorizedEntityDto {
980
1119
  categoryIds: string[];
981
- categories: {
982
- id: string;
983
- title: string;
984
- }[];
1120
+ categories: AXPCategoryListItem[];
985
1121
  }
1122
+ type AXPEntityOp = 'initial' | 'create' | 'update' | 'delete' | 'getOne' | 'getAll' | 'query' | 'count' | 'queryAll' | 'getMany' | 'exists' | 'upsertOne' | 'aggregate';
986
1123
 
987
1124
  type AXPWidgetTrigger = {
988
1125
  event: string;
@@ -1002,8 +1139,25 @@ interface AXPFileListItem {
1002
1139
  size?: number;
1003
1140
  status: AXPFileStatus;
1004
1141
  source?: AXPFileSource;
1142
+ meta?: AXPMetaData;
1143
+ /**
1144
+ * When true, the item cannot be renamed, removed, or reverted from the UI.
1145
+ * Independent of widget `options.readonly` (widget-level disables all edits); use this for per-row locks from the server.
1146
+ */
1147
+ readOnly?: boolean;
1148
+ title?: string;
1149
+ description?: string;
1005
1150
  }
1006
1151
 
1152
+ /**
1153
+ * Filter toolbar trigger entries (same shape as entity `schema.interface.triggers`).
1154
+ * Declared on `AXPFilterDefinition` and populated when building list filter definitions.
1155
+ */
1156
+ interface AXPFilterTriggerDefinition {
1157
+ event: string;
1158
+ action: string;
1159
+ disabled?: boolean;
1160
+ }
1007
1161
  interface AXPFilterClause extends AXDataSourceFilterOption {
1008
1162
  id?: string;
1009
1163
  order?: number;
@@ -1020,8 +1174,19 @@ interface AXPFilterDefinition extends AXPFilterClause {
1020
1174
  filterType: {
1021
1175
  advance: boolean;
1022
1176
  inline: boolean;
1177
+ preload?: {
1178
+ enabled?: boolean;
1179
+ required?: boolean;
1180
+ };
1023
1181
  };
1024
1182
  hidden?: boolean;
1183
+ /**
1184
+ * When true, the filter is not selectable. When a string, it is evaluated as an expression (e.g. `{{ ... }}`)
1185
+ * using the current filters context.
1186
+ */
1187
+ disabled?: boolean | string;
1188
+ /** Expression-driven triggers (events/actions); same semantics as entity `schema.interface.triggers`. */
1189
+ triggers?: AXPFilterTriggerDefinition[];
1025
1190
  }
1026
1191
  interface AXPFilterQuery extends Pick<AXPFilterDefinition, 'field' | 'value' | 'operator' | 'logic' | 'hidden'> {
1027
1192
  filters?: AXPFilterQuery[];
@@ -1030,10 +1195,11 @@ interface AXPFilterQuery extends Pick<AXPFilterDefinition, 'field' | 'value' | '
1030
1195
 
1031
1196
  type AXPActionMenuItem = {
1032
1197
  name?: string;
1033
- title: string;
1198
+ title: AXPMultiLanguageString;
1034
1199
  icon?: string;
1035
1200
  iconOnly?: boolean;
1036
1201
  color?: string;
1202
+ look?: AXStyleLookType;
1037
1203
  break?: boolean;
1038
1204
  items?: AXPActionMenuItem[];
1039
1205
  command?: AXPExecuteCommand;
@@ -1042,11 +1208,11 @@ type AXPActionMenuItem = {
1042
1208
  policy?: string;
1043
1209
  };
1044
1210
  type AXPBackButton = {
1045
- title: string;
1211
+ title: AXPMultiLanguageString;
1046
1212
  };
1047
1213
  type AXPBreadcrumbItem = {
1048
1214
  name?: string;
1049
- title: string;
1215
+ title: AXPMultiLanguageString;
1050
1216
  icon?: string;
1051
1217
  command?: AXPExecuteCommand;
1052
1218
  };
@@ -1055,10 +1221,16 @@ type AXPBadge = {
1055
1221
  description?: string;
1056
1222
  color?: 'primary' | 'success' | 'warning' | 'danger';
1057
1223
  };
1224
+ type AXPPageStatus = {
1225
+ definitionKey: string;
1226
+ value: string;
1227
+ dataPath?: string;
1228
+ readonly?: boolean;
1229
+ };
1058
1230
  interface AXPCommandMessage {
1059
1231
  type?: 'info' | 'success' | 'warning' | 'error';
1060
1232
  code?: string;
1061
- text: string;
1233
+ text: AXPMultiLanguageString;
1062
1234
  details?: unknown;
1063
1235
  }
1064
1236
  type AXPExecuteCommand = {
@@ -1080,7 +1252,7 @@ interface AXPQueryFetchResult<T = any> {
1080
1252
  };
1081
1253
  message?: {
1082
1254
  code?: string;
1083
- text?: string;
1255
+ text?: AXPMultiLanguageString;
1084
1256
  details?: any;
1085
1257
  };
1086
1258
  }
@@ -1093,7 +1265,7 @@ type AXPNavigateActionOptions = {
1093
1265
  };
1094
1266
  modal: {
1095
1267
  component: Type<any>;
1096
- title: string;
1268
+ title: AXPMultiLanguageString;
1097
1269
  options?: any;
1098
1270
  };
1099
1271
  };
@@ -1145,25 +1317,6 @@ declare class AXPIconLogoConfig implements AXPLogoConfig {
1145
1317
  constructor(icon: string, color?: string | undefined);
1146
1318
  }
1147
1319
 
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
1320
  type AXPValidationRule = {
1168
1321
  rule: string;
1169
1322
  message?: string;
@@ -1200,6 +1353,52 @@ interface AXPReqexValidationRule extends AXPValidationRule {
1200
1353
  }
1201
1354
  type AXPStringValidationRules = (AXPRequiredValidationRule | AXPMinLengthValidationRule | AXPMaxLengthValidationRule | AXPEqualValidationRule<string> | AXPReqexValidationRule)[];
1202
1355
 
1356
+ interface AXPPropertyGroup {
1357
+ name: string;
1358
+ title: AXPMultiLanguageString;
1359
+ icon?: string;
1360
+ description?: AXPMultiLanguageString;
1361
+ order?: number;
1362
+ }
1363
+ interface AXPPropertyInterface {
1364
+ type: string;
1365
+ options: AXPOptionsData;
1366
+ triggers?: AXPWidgetTriggers;
1367
+ }
1368
+ /**
1369
+ * Platform property bag (entity fields, workflow inputs, etc.).
1370
+ *
1371
+ * For property viewer rows, use `mapAXPPropertyToWidgetProperty` from `@acorex/platform/layout/widget-core`
1372
+ * (keeps `platform/core` free of a dependency on `layout/widget-core`).
1373
+ */
1374
+ interface AXPProperty {
1375
+ name: string;
1376
+ title: AXPMultiLanguageString;
1377
+ description?: AXPMultiLanguageString;
1378
+ dataType: AXPDataType;
1379
+ validations?: AXPValidationRules;
1380
+ group?: AXPPropertyGroup | string;
1381
+ order?: number;
1382
+ interface: AXPPropertyInterface;
1383
+ }
1384
+
1385
+ type AXPPlatformScopeKey = 'P' | 'T' | 'U';
1386
+ declare enum AXPPlatformScope {
1387
+ Platform = "P",
1388
+ Tenant = "T",
1389
+ User = "U"
1390
+ }
1391
+ declare function resolvePlatformScopeKey(name: string): AXPPlatformScopeKey;
1392
+ declare function resolvePlatformScopeName(scope: AXPPlatformScopeKey): string;
1393
+
1394
+ interface AXPSortDefinition {
1395
+ name: string;
1396
+ title: string;
1397
+ dir?: 'asc' | 'desc';
1398
+ }
1399
+ interface AXPSortQuery extends Pick<AXPSortDefinition, 'name' | 'dir'> {
1400
+ }
1401
+
1203
1402
  interface AXPViewQuery {
1204
1403
  name: string;
1205
1404
  fixed: boolean;
@@ -1319,6 +1518,18 @@ interface AXPMiddlewareErrorResponse {
1319
1518
  interface AXPActivityLogChange {
1320
1519
  type: AXPSystemActionType;
1321
1520
  description: string;
1521
+ /** I18n key for field label. When set with actionKey, used for translated display. */
1522
+ fieldKey?: string;
1523
+ /** Params for fieldKey translation (e.g. for unknown-field with {{name}}). */
1524
+ fieldKeyParams?: Record<string, string>;
1525
+ /** I18n key for action (e.g. @activity-log:changes.replaced). When set with fieldKey, overrides description. */
1526
+ actionKey?: string;
1527
+ oldValue?: unknown;
1528
+ newValue?: unknown;
1529
+ /** Short human-readable summary for Change History (e.g. "Updated from 'X' to 'Y'"). Used when layout is present. */
1530
+ summary?: string;
1531
+ /** Custom layout (AXPWidgetNode) for Change History. When set, rendered via AXPLayoutRenderer instead of default fieldKey/actionKey text. */
1532
+ layout?: unknown;
1322
1533
  }
1323
1534
  interface AXPActivityLog {
1324
1535
  id: string;
@@ -1355,6 +1566,104 @@ declare class AXPActivityLogService {
1355
1566
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPActivityLogService>;
1356
1567
  }
1357
1568
 
1569
+ /**
1570
+ * Stable catalog scope registered by a module provider (integration contract).
1571
+ */
1572
+ interface AXPCatalogScopeDefinition {
1573
+ /** Unique key, e.g. `human-capital-management.hr`. */
1574
+ name: string;
1575
+ title: string | AXPMultiLanguageString;
1576
+ description?: string | AXPMultiLanguageString;
1577
+ /**
1578
+ * Entity refs this scope may label, e.g. `AssessmentManagement.Questionnaire`.
1579
+ */
1580
+ targets: string[];
1581
+ icon?: string;
1582
+ /**
1583
+ * Platform utility classes applied to the whole scope badge (surface, on-surface, border).
1584
+ * Example: `ax-primary-surface ax-text-on-primary-surface ax-border-border-primary-surface`.
1585
+ */
1586
+ cssClass?: string;
1587
+ order?: number;
1588
+ }
1589
+
1590
+ interface AXPCatalogScopeDefinitionProvider {
1591
+ items(): Promise<AXPCatalogScopeDefinition[]>;
1592
+ }
1593
+ declare const AXP_CATALOG_SCOPE_DEFINITION_PROVIDER: InjectionToken<AXPCatalogScopeDefinitionProvider[]>;
1594
+
1595
+ /**
1596
+ * Collects {@link AXPCatalogScopeDefinition} entries from all registered providers.
1597
+ */
1598
+ declare class AXPCatalogScopeDefinitionProviderService {
1599
+ private readonly providers;
1600
+ private readonly translation;
1601
+ items(): Promise<AXPCatalogScopeDefinition[]>;
1602
+ get(name: string): Promise<AXPCatalogScopeDefinition | undefined>;
1603
+ /**
1604
+ * Scopes applicable to the given entity ref (`Module.Entity`).
1605
+ */
1606
+ byTarget(entityRef: string): Promise<AXPCatalogScopeDefinition[]>;
1607
+ /**
1608
+ * Resolves display title for a scope key (active locale).
1609
+ */
1610
+ resolveTitle(definition: AXPCatalogScopeDefinition): string;
1611
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPCatalogScopeDefinitionProviderService, never>;
1612
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPCatalogScopeDefinitionProviderService>;
1613
+ }
1614
+
1615
+ interface AXPDataSourceDataFieldDefinition {
1616
+ name: string;
1617
+ title: string;
1618
+ datatype: string;
1619
+ type: string;
1620
+ options?: AXPOptionsData;
1621
+ }
1622
+ type AXPLazyDataSource<T = unknown> = AXPMaybePromise<AXDataSource<T>>;
1623
+ type AXPDataSourceArray<T = unknown> = AXPMaybePromise<Array<T>>;
1624
+ type AXPDataSourceValue<T = unknown> = AXPMaybePromise<T>;
1625
+ type AXPDataSourceType<T = any> = AXPLazyDataSource<T> | AXPDataSourceArray<T> | AXPDataSourceValue<T>;
1626
+ type AXPDataSourceSample<T = any> = AXPDataSourceArray<T> | AXPDataSourceValue<T>;
1627
+ interface AXPDataSourceDefinition<T = any> {
1628
+ name: string;
1629
+ title: string;
1630
+ valueField?: {
1631
+ name: string;
1632
+ title: string;
1633
+ };
1634
+ textField?: {
1635
+ name: string;
1636
+ title: string;
1637
+ };
1638
+ columns: AXPDataSourceDataFieldDefinition[];
1639
+ filters: AXPFilterDefinition[];
1640
+ samples?: AXPDataSourceSample<T>;
1641
+ visible?: boolean;
1642
+ source: () => AXPDataSourceType<T>;
1643
+ }
1644
+ interface AXPDataSourceDefinitionProvider {
1645
+ items(): Promise<AXPDataSourceDefinition[]>;
1646
+ }
1647
+ declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDefinitionProvider[]>;
1648
+ declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
1649
+ private providers;
1650
+ items(): Promise<AXPDataSourceDefinition[]>;
1651
+ get<T = any>(name: string): Promise<AXPDataSourceDefinition<T> | undefined>;
1652
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
1653
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPDataSourceDefinitionProviderService>;
1654
+ }
1655
+
1656
+ /** Data source name for select widgets listing registered catalog scopes. */
1657
+ declare const PLATFORM_CATALOG_SCOPES_DATASOURCE_NAME = "platform-catalog-scopes";
1658
+ /**
1659
+ * Registered catalog scopes for select / selection-list widgets via {@link PLATFORM_CATALOG_SCOPES_DATASOURCE_NAME}.
1660
+ */
1661
+ declare class AXPCatalogScopeDefinitionsDataSourceDefinition implements AXPDataSourceDefinitionProvider {
1662
+ private readonly catalogScopeRegistry;
1663
+ items(): Promise<AXPDataSourceDefinition[]>;
1664
+ private readTargetFilter;
1665
+ }
1666
+
1358
1667
  /**
1359
1668
  * Represents a color palette with a unique identifier and collection of colors
1360
1669
  */
@@ -1472,7 +1781,182 @@ declare class AXPDefaultColorPalettesProvider extends AXPColorPaletteProvider {
1472
1781
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPDefaultColorPalettesProvider>;
1473
1782
  }
1474
1783
 
1784
+ /**
1785
+ * Column width value can be a number (converted to pixels) or a string with any CSS unit
1786
+ * @example 150 (becomes '150px'), '300px', '50%', '2rem', '20ch'
1787
+ */
1788
+ type ColumnWidthValue = string | number;
1789
+ /**
1790
+ * Matcher for column name - can be exact string match or RegExp pattern
1791
+ * @example 'title', /^user/, /.*name$/i
1792
+ */
1793
+ type ColumnNameMatcher = string | RegExp;
1794
+ /**
1795
+ * Matcher for widget type - can be exact string match or RegExp pattern (case-insensitive)
1796
+ * @example 'text-box', /^date/, /.*editor$/i
1797
+ */
1798
+ type WidgetTypeMatcher = string | RegExp;
1799
+ /**
1800
+ * Defines a single width matching rule
1801
+ */
1802
+ interface AXPColumnWidthMatcher {
1803
+ /**
1804
+ * Match by column name (exact string or RegExp pattern)
1805
+ * Takes precedence over widgetType matching
1806
+ * @example 'title', /^user/, /.*name$/i
1807
+ */
1808
+ name?: ColumnNameMatcher;
1809
+ /**
1810
+ * Match by widget type (exact string or RegExp pattern, case-insensitive)
1811
+ * Used as fallback when name doesn't match
1812
+ * @example 'text-box', /^date/, /.*editor$/i
1813
+ */
1814
+ widgetType?: WidgetTypeMatcher;
1815
+ /**
1816
+ * Width value to apply if this matcher matches
1817
+ * Numbers are converted to pixels (e.g., 150 -> '150px')
1818
+ * Strings can include any CSS unit (e.g., '300px', '50%', '2rem')
1819
+ */
1820
+ width: ColumnWidthValue;
1821
+ /**
1822
+ * Priority for this matcher within the provider (higher = more specific, applied first)
1823
+ * Default: 0
1824
+ */
1825
+ priority?: number;
1826
+ }
1827
+ /**
1828
+ * Provider configuration for column width rules
1829
+ */
1830
+ interface AXPColumnWidthProvider {
1831
+ /**
1832
+ * Array of matchers to evaluate
1833
+ * Evaluated in priority order (highest first), then by match type (name before widgetType)
1834
+ */
1835
+ matchers: AXPColumnWidthMatcher[];
1836
+ /**
1837
+ * Priority for this provider relative to other providers (higher = applied first)
1838
+ * Default: 100
1839
+ */
1840
+ priority?: number;
1841
+ }
1842
+ /**
1843
+ * Generic column interface for width resolution
1844
+ * Works with any column type that has these properties
1845
+ */
1846
+ interface IColumnWithWidth {
1847
+ /**
1848
+ * Column name
1849
+ */
1850
+ name: string;
1851
+ /**
1852
+ * Current width (if already set)
1853
+ */
1854
+ width?: string;
1855
+ /**
1856
+ * Widget type information (optional)
1857
+ */
1858
+ widget?: {
1859
+ type: string;
1860
+ };
1861
+ /**
1862
+ * Additional options that might contain width
1863
+ */
1864
+ options?: {
1865
+ width?: string;
1866
+ };
1867
+ /**
1868
+ * For entity columns - showAs configuration
1869
+ */
1870
+ showAs?: {
1871
+ type: string;
1872
+ };
1873
+ }
1874
+
1875
+ /**
1876
+ * Service for resolving column widths based on registered providers
1877
+ * Supports matching by column name (priority) and widget type (fallback)
1878
+ * Uses multi-provider pattern for extensibility
1879
+ */
1880
+ declare class AXPColumnWidthService {
1881
+ private readonly providers;
1882
+ /**
1883
+ * Resolve width for a column based on registered providers
1884
+ * Only returns a width if column doesn't already have one set
1885
+ *
1886
+ * @param column Column to resolve width for
1887
+ * @returns Resolved width string (normalized) or undefined if no match or column already has width
1888
+ */
1889
+ resolveWidth(column: IColumnWithWidth): string | undefined;
1890
+ /**
1891
+ * Apply resolved width to a column (mutates the column)
1892
+ * Only applies if column doesn't already have a width
1893
+ *
1894
+ * @param column Column to apply width to
1895
+ * @returns true if width was applied, false if column already had width or no match found
1896
+ */
1897
+ applyWidth(column: IColumnWithWidth): boolean;
1898
+ /**
1899
+ * Collect all matchers from all providers, sorted by provider priority and matcher priority
1900
+ */
1901
+ private collectMatchers;
1902
+ /**
1903
+ * Find first matching matcher by column name
1904
+ * Name matches take precedence over widget type matches
1905
+ */
1906
+ private findNameMatch;
1907
+ /**
1908
+ * Find first matching matcher by widget type (case-insensitive)
1909
+ */
1910
+ private findWidgetTypeMatch;
1911
+ /**
1912
+ * Normalize width value to string format
1913
+ * Numbers are converted to pixels (e.g., 150 -> '150px')
1914
+ * Strings are preserved as-is (supports any CSS unit)
1915
+ */
1916
+ private normalizeWidth;
1917
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPColumnWidthService, never>;
1918
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPColumnWidthService>;
1919
+ }
1920
+
1921
+ /**
1922
+ * Injection token for column width providers
1923
+ * Use this to register multiple column width providers with multi: true
1924
+ *
1925
+ * @example
1926
+ * ```typescript
1927
+ * providers: [
1928
+ * {
1929
+ * provide: AXP_COLUMN_WIDTH_PROVIDER,
1930
+ * useValue: {
1931
+ * matchers: [
1932
+ * { name: 'title', width: '300px', priority: 10 },
1933
+ * { widgetType: /text-box/i, width: '200px' }
1934
+ * ],
1935
+ * priority: 150
1936
+ * },
1937
+ * multi: true
1938
+ * }
1939
+ * ]
1940
+ * ```
1941
+ */
1942
+ declare const AXP_COLUMN_WIDTH_PROVIDER: InjectionToken<AXPColumnWidthProvider[]>;
1943
+
1944
+ /**
1945
+ * Default column width configuration
1946
+ * Migrated from DEFAULT_COLUMN_WIDTHS in column-width.middleware.ts
1947
+ * Provides sensible defaults for common column names
1948
+ */
1949
+ declare const defaultColumnWidthProvider: AXPColumnWidthProvider;
1950
+
1475
1951
  type AXPContextState = 'initiated' | 'restored' | 'changed' | 'patch';
1952
+ type AXPContextUpdateOrigin = 'user' | 'system';
1953
+ interface AXPContextUpdateOptions {
1954
+ origin?: AXPContextUpdateOrigin;
1955
+ }
1956
+ interface AXPContextPatchOptions {
1957
+ skipDirtyTracking?: boolean;
1958
+ origin?: AXPContextUpdateOrigin;
1959
+ }
1476
1960
  type AXPContextData = {
1477
1961
  [key: string]: any;
1478
1962
  };
@@ -1482,35 +1966,199 @@ declare class AXPContextChangeEvent {
1482
1966
  path?: string;
1483
1967
  state: AXPContextState;
1484
1968
  data: any;
1969
+ origin?: AXPContextUpdateOrigin;
1970
+ /** Aggregated form dirty flag (user context paths + composite widget dirty). */
1971
+ isFormDirty?: boolean;
1485
1972
  }
1486
1973
  declare const AXPContextStore: i0.Type<{
1487
1974
  data: i0.Signal<AXPContextData>;
1488
1975
  state: i0.Signal<AXPContextState>;
1489
1976
  initialSnapshot: i0.Signal<{}>;
1490
1977
  previousSnapshot: i0.Signal<{}>;
1978
+ userDirtyPaths: i0.Signal<string[]>;
1491
1979
  lastChange: _ngrx_signals.DeepSignal<AXPContextChangeEvent>;
1492
1980
  isChanged: i0.Signal<boolean>;
1493
1981
  isReset: i0.Signal<boolean>;
1494
1982
  isInitiated: i0.Signal<boolean>;
1495
1983
  isEmpty: i0.Signal<boolean>;
1496
1984
  isDirty: i0.Signal<boolean>;
1985
+ isUserDirty: i0.Signal<boolean>;
1497
1986
  snapshot: i0.Signal<AXPContextData>;
1498
1987
  initial: i0.Signal<{}>;
1499
1988
  previous: i0.Signal<{}>;
1500
1989
  changeEvent: i0.Signal<AXPContextChangeEvent>;
1501
- update: (path: string, value: any) => void;
1502
- patch: (context: {}) => void;
1990
+ update: (path: string, value: any, options?: AXPContextUpdateOptions) => void;
1991
+ applyObjectPaths: (obj: Record<string, unknown>, options?: AXPContextUpdateOptions, prefix?: string) => void;
1992
+ patch: (context: Record<string, any>, second?: boolean | AXPContextPatchOptions) => void;
1503
1993
  reset: () => void;
1504
1994
  set: (initialData: any) => void;
1505
1995
  getValue: (path: string) => any;
1996
+ hasValue: (path: string) => boolean;
1997
+ commitBaseline: () => void;
1998
+ clearUserDirtyPaths: () => void;
1506
1999
  } & _ngrx_signals.StateSource<{
1507
2000
  data: AXPContextData;
1508
2001
  state: AXPContextState;
1509
2002
  initialSnapshot: {};
1510
2003
  previousSnapshot: {};
2004
+ userDirtyPaths: string[];
1511
2005
  lastChange: AXPContextChangeEvent;
1512
2006
  }>>;
1513
2007
 
2008
+ interface AXPComponentSlotConfig {
2009
+ name: string;
2010
+ priority?: number;
2011
+ component?: Type<any>;
2012
+ condition?: ((context?: AXPContextData) => boolean | Promise<boolean>) | string;
2013
+ features?: string[];
2014
+ loadComponent?: () => Type<any> | Promise<Type<any>>;
2015
+ options?: AXPOptionsData | (() => AXPOptionsData) | (() => Promise<AXPOptionsData>);
2016
+ }
2017
+ interface AXPComponentSlotModuleConfigs {
2018
+ [slotName: string]: AXPComponentSlotConfig[];
2019
+ }
2020
+ declare abstract class AXPComponentSlot {
2021
+ host: any;
2022
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPComponentSlot, never>;
2023
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPComponentSlot, never, never, {}, {}, never, never, true, never>;
2024
+ }
2025
+
2026
+ declare class AXPComponentSlotDirective implements OnInit {
2027
+ name: i0.InputSignal<string>;
2028
+ host: i0.InputSignal<any>;
2029
+ context: i0.InputSignal<any>;
2030
+ private elementRef;
2031
+ private registryService;
2032
+ private injector;
2033
+ private evaluator;
2034
+ viewContainerRef: ViewContainerRef;
2035
+ contextStore: {
2036
+ data: i0.Signal<AXPContextData>;
2037
+ state: i0.Signal<_acorex_platform_core.AXPContextState>;
2038
+ initialSnapshot: i0.Signal<{}>;
2039
+ previousSnapshot: i0.Signal<{}>;
2040
+ userDirtyPaths: i0.Signal<string[]>;
2041
+ lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
2042
+ isChanged: i0.Signal<boolean>;
2043
+ isReset: i0.Signal<boolean>;
2044
+ isInitiated: i0.Signal<boolean>;
2045
+ isEmpty: i0.Signal<boolean>;
2046
+ isDirty: i0.Signal<boolean>;
2047
+ isUserDirty: i0.Signal<boolean>;
2048
+ snapshot: i0.Signal<AXPContextData>;
2049
+ initial: i0.Signal<{}>;
2050
+ previous: i0.Signal<{}>;
2051
+ changeEvent: i0.Signal<_acorex_platform_core.AXPContextChangeEvent>;
2052
+ update: (path: string, value: any, options?: _acorex_platform_core.AXPContextUpdateOptions) => void;
2053
+ applyObjectPaths: (obj: Record<string, unknown>, options?: _acorex_platform_core.AXPContextUpdateOptions, prefix?: string) => void;
2054
+ patch: (context: Record<string, any>, second?: boolean | _acorex_platform_core.AXPContextPatchOptions) => void;
2055
+ reset: () => void;
2056
+ set: (initialData: any) => void;
2057
+ getValue: (path: string) => any;
2058
+ hasValue: (path: string) => boolean;
2059
+ commitBaseline: () => void;
2060
+ clearUserDirtyPaths: () => void;
2061
+ } & _ngrx_signals.StateSource<{
2062
+ data: AXPContextData;
2063
+ state: _acorex_platform_core.AXPContextState;
2064
+ initialSnapshot: {};
2065
+ previousSnapshot: {};
2066
+ userDirtyPaths: string[];
2067
+ lastChange: _acorex_platform_core.AXPContextChangeEvent;
2068
+ }>;
2069
+ isEmpty: i0.Signal<boolean>;
2070
+ private _viewCount;
2071
+ private componentRefs;
2072
+ private placeholderRefs;
2073
+ constructor();
2074
+ ngOnInit(): Promise<void>;
2075
+ loadComponents(): Promise<void>;
2076
+ private evaluateCondition;
2077
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPComponentSlotDirective, never>;
2078
+ 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>;
2079
+ }
2080
+
2081
+ declare class AXPComponentSlotRegistryService {
2082
+ private registry;
2083
+ register(slotName: string, config: AXPComponentSlotConfig): void;
2084
+ get(slotName: string): AXPComponentSlotConfig[];
2085
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPComponentSlotRegistryService, never>;
2086
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPComponentSlotRegistryService>;
2087
+ }
2088
+
2089
+ declare class AXPComponentSlotModule {
2090
+ static forRoot(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule>;
2091
+ static forChild(configs?: AXPComponentSlotModuleConfigs): ModuleWithProviders<AXPComponentSlotModule>;
2092
+ /**
2093
+ * @ignore
2094
+ */
2095
+ constructor(instances: any[]);
2096
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPComponentSlotModule, [{ optional: true; }]>;
2097
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXPComponentSlotModule, [typeof AXPComponentSlotDirective], never, [typeof AXPComponentSlotDirective]>;
2098
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXPComponentSlotModule>;
2099
+ }
2100
+
2101
+ /**
2102
+ * Compact hints for assembling platform context into LLM system prompts.
2103
+ * Mirrors fields used by {@link AXPAiPlatformRuntimeContext} and the mock engine runtime prompt
2104
+ * formatter — keep labels short and values bounded.
2105
+ */
2106
+ interface AXPContextDefinitionAiHints {
2107
+ /**
2108
+ * Short English label for bullet lists (e.g. `UI locale`, `Current instant (UTC, ISO 8601)`).
2109
+ */
2110
+ promptLabel?: string;
2111
+ /**
2112
+ * One-line guidance for the model (when to use this value, what not to ask the user).
2113
+ */
2114
+ usageHint?: string;
2115
+ /**
2116
+ * When `false`, this definition is omitted from AI system-prompt assembly. Default `true`.
2117
+ */
2118
+ includeInSystemPrompt?: boolean;
2119
+ /**
2120
+ * How to stringify the value compactly in prompts.
2121
+ */
2122
+ valueKind?: 'string' | 'number' | 'boolean' | 'instant' | 'locale' | 'dateTime' | 'object';
2123
+ /**
2124
+ * When `true`, the value must not be sent to the model (PII, secrets, tokens).
2125
+ */
2126
+ sensitive?: boolean;
2127
+ /**
2128
+ * Sort order when rendering the AI context block (lower first).
2129
+ */
2130
+ order?: number;
2131
+ }
2132
+ /**
2133
+ * Describes a named platform context key (e.g. `currentDate`, `language`).
2134
+ */
2135
+ interface AXPContextDefinition {
2136
+ /** Stable identifier used as the context key and in expressions. */
2137
+ name: string;
2138
+ /** Human-readable title for designers and tooling. */
2139
+ title: string;
2140
+ /** What this context represents and when consumers should use it. */
2141
+ description: string;
2142
+ /** Optional metadata for AI system-prompt assembly. */
2143
+ ai?: AXPContextDefinitionAiHints;
2144
+ }
2145
+
2146
+ interface AXPContextDefinitionProvider {
2147
+ items(): Promise<AXPContextDefinition[]>;
2148
+ }
2149
+ declare const AXP_CONTEXT_DEFINITION_PROVIDER: InjectionToken<AXPContextDefinitionProvider[]>;
2150
+
2151
+ /**
2152
+ * Collects {@link AXPContextDefinition} entries from all registered {@link AXPContextDefinitionProvider} instances.
2153
+ */
2154
+ declare class AXPContextDefinitionProviderService implements AXPContextDefinitionProvider {
2155
+ private readonly providers;
2156
+ items(): Promise<AXPContextDefinition[]>;
2157
+ get(name: string): Promise<AXPContextDefinition | undefined>;
2158
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPContextDefinitionProviderService, never>;
2159
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPContextDefinitionProviderService>;
2160
+ }
2161
+
1514
2162
  declare class AXPDataGenerator {
1515
2163
  static uuid(): string;
1516
2164
  static number(max: number): number;
@@ -1547,40 +2195,22 @@ type AXPValueTransformerFunctions = {
1547
2195
  };
1548
2196
  declare function objectKeyValueTransforms(keyName: string): AXPValueTransformerFunctions;
1549
2197
 
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[]>;
2198
+ declare class AXPContentCheckerDirective {
2199
+ viewContainerRef: ViewContainerRef;
2200
+ elementRef: ElementRef<HTMLDivElement>;
2201
+ isEmpty: i0.Signal<boolean>;
2202
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPContentCheckerDirective, never>;
2203
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPContentCheckerDirective, "[axp-content-checker]", ["checker"], {}, {}, never, never, true, never>;
1576
2204
  }
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>;
2205
+
2206
+ declare class AXPDblClickDirective {
2207
+ onDblClick: EventEmitter<Event>;
2208
+ private lastTap;
2209
+ private readonly doubleTapThreshold;
2210
+ handleOnDblClick(event: Event): void;
2211
+ onTouchEnd(event: TouchEvent): void;
2212
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDblClickDirective, never>;
2213
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AXPDblClickDirective, "[onDblClick]", never, {}, { "onDblClick": "onDblClick"; }, never, never, true, never>;
1584
2214
  }
1585
2215
 
1586
2216
  declare class AXPElementDataDirective implements OnInit {
@@ -1602,16 +2232,6 @@ declare class AXPElementDataDirective implements OnInit {
1602
2232
  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
2233
  }
1604
2234
 
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
2235
  declare class AXPGridLayoutDirective implements OnChanges {
1616
2236
  private el;
1617
2237
  private renderer;
@@ -1625,77 +2245,6 @@ declare class AXPGridLayoutDirective implements OnChanges {
1625
2245
  static ɵdir: i0.ɵɵDirectiveDeclaration<AXPGridLayoutDirective, "[axp-grid-layout]", never, { "options": { "alias": "axp-grid-layout"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1626
2246
  }
1627
2247
 
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
2248
  type AXPDistributedEventListenerProviderToken<T> = AXPDistributedEventListenerProvider<T> | Promise<AXPDistributedEventListenerProvider<T>>;
1700
2249
  declare const AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER: InjectionToken<AXPDistributedEventListenerProviderToken<any>[]>;
1701
2250
  interface AXPDistributedEventListenerProvider<TInput = any, TOutput = void> {
@@ -1822,7 +2371,7 @@ declare class AXPExpressionEvaluatorScopeProviderContext {
1822
2371
  type AXPExpressionEvaluatorScopeProviders = AXPExpressionEvaluatorScopeProvider[] | (() => AXPExpressionEvaluatorScopeProvider[]);
1823
2372
  declare const AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER: InjectionToken<AXPExpressionEvaluatorScopeProviders>;
1824
2373
  declare class AXPExpressionEvaluatorScopeProviderService {
1825
- private providers;
2374
+ private readonly injector;
1826
2375
  private cache;
1827
2376
  private load;
1828
2377
  getScopesAsync(): Promise<AXPExpressionEvaluatorScope>;
@@ -1965,6 +2514,18 @@ interface AXPFeatureDefinition extends AXPModuleFeatureDefinition {
1965
2514
  key: string;
1966
2515
  }
1967
2516
 
2517
+ /**
2518
+ * Registered module manifests for select widgets via dataSource name {@link MODULE_MANIFESTS_DATASOURCE_NAME}.
2519
+ */
2520
+ declare const MODULE_MANIFESTS_DATASOURCE_NAME = "platform-module-manifests";
2521
+ /**
2522
+ * Data source definition for module names/titles from {@link AXPModuleManifestRegistry}.
2523
+ */
2524
+ declare class AXPModuleManifestsDataSourceDefinition implements AXPDataSourceDefinitionProvider {
2525
+ private readonly manifestRegistry;
2526
+ items(): Promise<AXPDataSourceDefinition[]>;
2527
+ }
2528
+
1968
2529
  /**
1969
2530
  * Registry service for module manifests.
1970
2531
  * Collects and manages all registered module manifests.
@@ -2047,12 +2608,13 @@ declare class AXPModuleManifestRegistry {
2047
2608
 
2048
2609
  interface AXPStartUpTask {
2049
2610
  name: string;
2050
- statusText: string;
2611
+ statusText: AXPMultiLanguageString;
2051
2612
  priority: number;
2052
2613
  run: () => Promise<void>;
2053
2614
  }
2054
2615
 
2055
2616
  declare class AXPAppStartUpService {
2617
+ private readonly translationService;
2056
2618
  private tasks;
2057
2619
  registerTask(task: AXPStartUpTask): void;
2058
2620
  runAllTasks(): Promise<void>;
@@ -2132,6 +2694,21 @@ declare const AXP_SESSION_SERVICE: InjectionToken<AXPISessionService>;
2132
2694
  */
2133
2695
  declare const AXP_MODULE_MANIFEST_PROVIDER: InjectionToken<AXPModuleManifest[]>;
2134
2696
 
2697
+ /**
2698
+ * Locale-aware comparison of {@link AXPMultiLanguageString} values (plain string, `@scope:key`, or locale map).
2699
+ * Resolves each side with {@link resolveMultiLanguageString} for `locale`, then compares with `String#localeCompare`.
2700
+ */
2701
+ declare function compareMultiLanguageStrings(a: AXPMultiLanguageString | null | undefined, b: AXPMultiLanguageString | null | undefined, locale: string, collatorOptions?: Intl.CollatorOptions): number;
2702
+ /**
2703
+ * Stable sort copy: orders items by resolved string for `getValue(item)` using the active `locale`.
2704
+ */
2705
+ declare function sortByMultiLanguageString<T>(items: readonly T[], getValue: (item: T) => AXPMultiLanguageString | null | undefined, locale: string, collatorOptions?: Intl.CollatorOptions): T[];
2706
+ /**
2707
+ * True when the resolved value contains `query` (case-insensitive) for `locale`.
2708
+ * Useful for search/filter flows over {@link AXPMultiLanguageString}.
2709
+ */
2710
+ declare function searchInMultiLanguageString(value: AXPMultiLanguageString | null | undefined, query: string, locale: string): boolean;
2711
+
2135
2712
  /**
2136
2713
  * Represents a tag with text, color, and metadata
2137
2714
  */
@@ -2332,6 +2909,16 @@ declare class AXPDeviceService {
2332
2909
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPDeviceService>;
2333
2910
  }
2334
2911
 
2912
+ /**
2913
+ * Returns whether `current` differs from the saved/clean `baseline` snapshot.
2914
+ * Used by entity details pages, layout-builder dialogs, and {@link AXPContextStore}.
2915
+ */
2916
+ declare function isFormContextDirty(current: Record<string, unknown>, baseline: Record<string, unknown>): boolean;
2917
+ /**
2918
+ * Clones a context object for use as a dirty-tracking baseline.
2919
+ */
2920
+ declare function captureFormContextBaseline(context: Record<string, unknown>): Record<string, unknown>;
2921
+
2335
2922
  /**
2336
2923
  * Service for applying and resetting text highlighting within specified HTML elements.
2337
2924
  */
@@ -2417,26 +3004,54 @@ declare function createProviderWithInjectionContext<T>(loader: () => Promise<new
2417
3004
  *
2418
3005
  * @param token - The injection token to provide
2419
3006
  * @param loader - Function that returns a promise resolving to the provider class
2420
- * @param multi - Whether the provider is multi-provider (defaults to true)
3007
+ * @param multi - Optional. Whether the provider is a multi-provider (array of values). Defaults to `true`. Pass `false` for a single provider.
2421
3008
  * @returns Provider configuration object
2422
3009
  *
2423
3010
  * @example
2424
3011
  * ```typescript
2425
- * providers: [
2426
- * provideLazyProvider(
2427
- * AXP_SETTING_DEFINITION_PROVIDER,
2428
- * () => import('./settings.provider').then(m => m.AXMSettingProvider)
2429
- * )
2430
- * ]
3012
+ * // Multi-provider (default)
3013
+ * provideLazyProvider(
3014
+ * AXP_DATASOURCE_DEFINITION_PROVIDER,
3015
+ * () => import('./datasource.provider').then(m => m.AXMDataSourceProvider)
3016
+ * )
3017
+ *
3018
+ * // Single provider
3019
+ * provideLazyProvider(
3020
+ * SOME_TOKEN,
3021
+ * () => import('./my.provider').then(m => m.MyProvider),
3022
+ * false
3023
+ * )
2431
3024
  * ```
2432
3025
  */
2433
3026
  declare function provideLazyProvider<TProvider>(token: InjectionToken<any>, loader: () => Promise<new () => TProvider>, multi?: boolean): Provider;
2434
3027
 
3028
+ /**
3029
+ * If `raw` is a plain non-array object with a `value` property, returns `value`; otherwise returns `raw`.
3030
+ */
3031
+ declare function unwrapValueProperty(raw: unknown): unknown;
3032
+ /**
3033
+ * Coerces to a trimmed string. Plain objects may carry `{ value }` from setting widgets or `{ id }` from select payloads using `valueField: 'id'`.
3034
+ */
3035
+ declare function coerceUnknownToTrimmedString(raw: unknown): string;
3036
+ /**
3037
+ * Coerces to boolean: direct booleans pass through; wrapped `{ value: true | 'true' }` is respected; otherwise false.
3038
+ */
3039
+ declare function coerceUnknownToBoolean(raw: unknown): boolean;
3040
+ /** Parses a finite number after optional `{ value }` unwrap; non-finite or empty string yields NaN. */
3041
+ declare function coerceUnknownToFiniteNumber(raw: unknown): number;
3042
+ /** Parses a Date after optional `{ value }` unwrap; invalid input yields Invalid Date. */
3043
+ declare function coerceUnknownToDate(raw: unknown): Date;
3044
+
2435
3045
  declare function extractTextFromHtml(value: string): string;
3046
+ /**
3047
+ * True when the string likely contains HTML markup (e.g. `<p>`, `<ul>`), as opposed to plain text.
3048
+ * Used to choose innerHTML vs text interpolation for multilingual fields.
3049
+ */
3050
+ declare function containsHtmlMarkup(value: string | null | undefined): boolean;
2436
3051
  /**
2437
3052
  * Generate kebab-case group name from title
2438
3053
  */
2439
3054
  declare function generateKebabCase(title: string): string;
2440
3055
 
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 };
3056
+ 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, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPModuleManifestsDataSourceDefinition, 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, MODULE_MANIFESTS_DATASOURCE_NAME, PLATFORM_CATALOG_SCOPES_DATASOURCE_NAME, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, captureFormContextBaseline, cleanDeep, coerceUnknownToBoolean, coerceUnknownToDate, coerceUnknownToFiniteNumber, coerceUnknownToTrimmedString, compareMultiLanguageStrings, containsHtmlMarkup, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, isFormContextDirty, normalizeDefinitionCategories, objectKeyValueTransforms, provideLazyProvider, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, searchInMultiLanguageString, setSmart, sortByMultiLanguageString, unwrapValueProperty };
3057
+ 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, 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, AXPSortDefinition, AXPSortQuery, AXPStartUpTask, AXPStringValidationRules, AXPSystemAction, AXPTag, AXPTagFilterOptions, AXPUserReference, AXPValidationRule, AXPValidationRules, AXPValueTransformerFunction, AXPValueTransformerFunctions, AXPValueUnit, AXPValueUnits, AXPViewBlockDefinition, AXPViewDefinition, AXPViewFieldDefinition, AXPViewQuery, AXPWidgetTrigger, AXPWidgetTriggers, ColumnNameMatcher, ColumnWidthValue, IColumnWithWidth, WidgetTypeMatcher };