@acorex/platform 20.8.5 → 21.0.0-beta.0

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 (125) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +121 -27
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-41RhWqb4.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +4 -4
  4. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +669 -268
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +333 -140
  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 +539 -110
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CWV4XD36.mjs} +15 -15
  14. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CWV4XD36.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-components.mjs +3285 -1035
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +488 -284
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +15955 -11978
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +410 -170
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +548 -474
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs → acorex-platform-layout-widgets-button-widget-designer.component-fLjWiSFE.mjs} +11 -11
  26. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-fLjWiSFE.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs → acorex-platform-layout-widgets-file-list-popup.component-3oRAKxTo.mjs} +22 -77
  28. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-3oRAKxTo.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs → acorex-platform-layout-widgets-image-preview.popup-CazpERbX.mjs} +8 -9
  30. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-CazpERbX.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs → acorex-platform-layout-widgets-page-widget-designer.component-BQ4G6aYf.mjs} +17 -17
  32. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BQ4G6aYf.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-DWuWxUF_.mjs +116 -0
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-DWuWxUF_.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-fV94u3t2.mjs} +25 -19
  36. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-fV94u3t2.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DyuvQhgN.mjs} +9 -9
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DyuvQhgN.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-EJMMdpIs.mjs} +7 -7
  40. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-EJMMdpIs.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets.mjs +6396 -4058
  42. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  43. package/fesm2022/acorex-platform-native.mjs +8 -7
  44. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-runtime.mjs +328 -166
  46. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CkptOSO3.mjs +160 -0
  48. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CkptOSO3.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DXC2qtvK.mjs +120 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DXC2qtvK.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs → acorex-platform-themes-default-entity-master-single-view.component-DYyunzKZ.mjs} +16 -23
  52. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DYyunzKZ.mjs.map +1 -0
  53. package/fesm2022/acorex-platform-themes-default-error-401.component-C5lQECDP.mjs +31 -0
  54. package/fesm2022/acorex-platform-themes-default-error-401.component-C5lQECDP.mjs.map +1 -0
  55. package/fesm2022/acorex-platform-themes-default-error-404.component-D5wBXAB-.mjs +25 -0
  56. package/fesm2022/acorex-platform-themes-default-error-404.component-D5wBXAB-.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-error-offline.component-AhDiY3DI.mjs +19 -0
  58. package/fesm2022/acorex-platform-themes-default-error-offline.component-AhDiY3DI.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default.mjs +1687 -69
  60. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  61. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs → acorex-platform-themes-shared-icon-chooser-column.component-QL2-ZUVg.mjs} +8 -8
  62. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-QL2-ZUVg.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BXydqPt_.mjs} +8 -8
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BXydqPt_.mjs.map +1 -0
  65. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs} +2 -2
  66. package/fesm2022/acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs.map +1 -0
  67. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Cb9iY6k9.mjs +88 -0
  68. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Cb9iY6k9.mjs.map +1 -0
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-KP4-BND5.mjs +80 -0
  70. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-KP4-BND5.mjs.map +1 -0
  71. package/fesm2022/acorex-platform-themes-shared.mjs +572 -465
  72. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  73. package/fesm2022/acorex-platform-workflow.mjs +276 -98
  74. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  75. package/fesm2022/acorex-platform.mjs.map +1 -1
  76. package/package.json +33 -33
  77. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
  78. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +261 -24
  79. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +163 -42
  80. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
  81. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +137 -38
  82. package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +808 -131
  83. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
  84. package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +686 -61
  85. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +80 -47
  86. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +274 -197
  87. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +583 -104
  88. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  89. package/types/acorex-platform-runtime.d.ts +565 -0
  90. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +105 -4
  91. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +14 -5
  92. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +96 -81
  93. package/fesm2022/acorex-platform-common-common-settings.provider-41RhWqb4.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs +0 -111
  100. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs +0 -160
  105. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CLDoygoI.mjs +0 -1610
  107. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CLDoygoI.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs +0 -120
  109. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs +0 -31
  112. package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs +0 -25
  114. package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs +0 -19
  116. package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  120. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs +0 -65
  121. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs.map +0 -1
  122. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs +0 -64
  123. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs.map +0 -1
  124. package/runtime/index.d.ts +0 -307
  125. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -1,7 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Type, InjectionToken, OnInit, ViewContainerRef, ModuleWithProviders, ElementRef, EventEmitter, OnChanges, Renderer2, SimpleChanges, OnDestroy, Injector, PipeTransform, Provider } from '@angular/core';
3
3
  import { AXStyleColorType, AXDataSource, AXDataSourceSortOption, AXDataSourceFilterOption, 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
 
@@ -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,9 +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[];
948
- type AXPDataType = 'string' | 'number' | 'object' | 'boolean' | 'array';
973
+ type AXPDataType = 'string' | 'number' | 'boolean' | 'date' | 'object' | 'array' | 'blob';
949
974
  interface AXPPagedListResult<T = any> {
950
975
  items: T[];
951
976
  total: number;
@@ -986,9 +1011,9 @@ interface AXPCategoryEntity<TKey = string> {
986
1011
  /** Unique identifier for the category */
987
1012
  id: TKey;
988
1013
  /** Display name of the category (required) */
989
- title: string;
1014
+ title: AXPMultiLanguageString;
990
1015
  /** Optional description of the category */
991
- description?: string;
1016
+ description?: AXPMultiLanguageString;
992
1017
  /** Parent category ID (undefined for root categories) */
993
1018
  parentId?: TKey;
994
1019
  /**
@@ -1079,15 +1104,20 @@ interface AXPCategoryEntityWithItems<T> extends AXPCategoryEntity {
1079
1104
  items: T[];
1080
1105
  children?: AXPCategoryEntityWithItems<T>[];
1081
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
+ }
1082
1115
  interface AXPCategorizedEntity {
1083
1116
  categoryIds: string[];
1084
1117
  }
1085
1118
  interface AXPCategorizedEntityDto {
1086
1119
  categoryIds: string[];
1087
- categories: {
1088
- id: string;
1089
- title: string;
1090
- }[];
1120
+ categories: AXPCategoryListItem[];
1091
1121
  }
1092
1122
  type AXPEntityOp = 'initial' | 'create' | 'update' | 'delete' | 'getOne' | 'getAll' | 'query';
1093
1123
 
@@ -1119,6 +1149,15 @@ interface AXPFileListItem {
1119
1149
  description?: string;
1120
1150
  }
1121
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
+ }
1122
1161
  interface AXPFilterClause extends AXDataSourceFilterOption {
1123
1162
  id?: string;
1124
1163
  order?: number;
@@ -1141,6 +1180,13 @@ interface AXPFilterDefinition extends AXPFilterClause {
1141
1180
  };
1142
1181
  };
1143
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[];
1144
1190
  }
1145
1191
  interface AXPFilterQuery extends Pick<AXPFilterDefinition, 'field' | 'value' | 'operator' | 'logic' | 'hidden'> {
1146
1192
  filters?: AXPFilterQuery[];
@@ -1149,7 +1195,7 @@ interface AXPFilterQuery extends Pick<AXPFilterDefinition, 'field' | 'value' | '
1149
1195
 
1150
1196
  type AXPActionMenuItem = {
1151
1197
  name?: string;
1152
- title: string;
1198
+ title: AXPMultiLanguageString;
1153
1199
  icon?: string;
1154
1200
  iconOnly?: boolean;
1155
1201
  color?: string;
@@ -1161,11 +1207,11 @@ type AXPActionMenuItem = {
1161
1207
  policy?: string;
1162
1208
  };
1163
1209
  type AXPBackButton = {
1164
- title: string;
1210
+ title: AXPMultiLanguageString;
1165
1211
  };
1166
1212
  type AXPBreadcrumbItem = {
1167
1213
  name?: string;
1168
- title: string;
1214
+ title: AXPMultiLanguageString;
1169
1215
  icon?: string;
1170
1216
  command?: AXPExecuteCommand;
1171
1217
  };
@@ -1183,7 +1229,7 @@ type AXPPageStatus = {
1183
1229
  interface AXPCommandMessage {
1184
1230
  type?: 'info' | 'success' | 'warning' | 'error';
1185
1231
  code?: string;
1186
- text: string;
1232
+ text: AXPMultiLanguageString;
1187
1233
  details?: unknown;
1188
1234
  }
1189
1235
  type AXPExecuteCommand = {
@@ -1205,7 +1251,7 @@ interface AXPQueryFetchResult<T = any> {
1205
1251
  };
1206
1252
  message?: {
1207
1253
  code?: string;
1208
- text?: string;
1254
+ text?: AXPMultiLanguageString;
1209
1255
  details?: any;
1210
1256
  };
1211
1257
  }
@@ -1218,7 +1264,7 @@ type AXPNavigateActionOptions = {
1218
1264
  };
1219
1265
  modal: {
1220
1266
  component: Type<any>;
1221
- title: string;
1267
+ title: AXPMultiLanguageString;
1222
1268
  options?: any;
1223
1269
  };
1224
1270
  };
@@ -1270,23 +1316,6 @@ declare class AXPIconLogoConfig implements AXPLogoConfig {
1270
1316
  constructor(icon: string, color?: string | undefined);
1271
1317
  }
1272
1318
 
1273
- type AXPPlatformScopeKey = 'P' | 'T' | 'U';
1274
- declare enum AXPPlatformScope {
1275
- Platform = "P",
1276
- Tenant = "T",
1277
- User = "U"
1278
- }
1279
- declare function resolvePlatformScopeKey(name: string): AXPPlatformScopeKey;
1280
- declare function resolvePlatformScopeName(scope: AXPPlatformScopeKey): string;
1281
-
1282
- interface AXPSortDefinition {
1283
- name: string;
1284
- title: string;
1285
- dir?: 'asc' | 'desc';
1286
- }
1287
- interface AXPSortQuery extends Pick<AXPSortDefinition, 'name' | 'dir'> {
1288
- }
1289
-
1290
1319
  type AXPValidationRule = {
1291
1320
  rule: string;
1292
1321
  message?: string;
@@ -1323,6 +1352,52 @@ interface AXPReqexValidationRule extends AXPValidationRule {
1323
1352
  }
1324
1353
  type AXPStringValidationRules = (AXPRequiredValidationRule | AXPMinLengthValidationRule | AXPMaxLengthValidationRule | AXPEqualValidationRule<string> | AXPReqexValidationRule)[];
1325
1354
 
1355
+ interface AXPPropertyGroup {
1356
+ name: string;
1357
+ title: AXPMultiLanguageString;
1358
+ icon?: string;
1359
+ description?: AXPMultiLanguageString;
1360
+ order?: number;
1361
+ }
1362
+ interface AXPPropertyInterface {
1363
+ type: string;
1364
+ options: AXPOptionsData;
1365
+ triggers?: AXPWidgetTriggers;
1366
+ }
1367
+ /**
1368
+ * Platform property bag (entity fields, workflow inputs, etc.).
1369
+ *
1370
+ * For property viewer rows, use `mapAXPPropertyToWidgetProperty` from `@acorex/platform/layout/widget-core`
1371
+ * (keeps `platform/core` free of a dependency on `layout/widget-core`).
1372
+ */
1373
+ interface AXPProperty {
1374
+ name: string;
1375
+ title: AXPMultiLanguageString;
1376
+ description?: AXPMultiLanguageString;
1377
+ dataType: AXPDataType;
1378
+ validations?: AXPValidationRules;
1379
+ group?: AXPPropertyGroup | string;
1380
+ order?: number;
1381
+ interface: AXPPropertyInterface;
1382
+ }
1383
+
1384
+ type AXPPlatformScopeKey = 'P' | 'T' | 'U';
1385
+ declare enum AXPPlatformScope {
1386
+ Platform = "P",
1387
+ Tenant = "T",
1388
+ User = "U"
1389
+ }
1390
+ declare function resolvePlatformScopeKey(name: string): AXPPlatformScopeKey;
1391
+ declare function resolvePlatformScopeName(scope: AXPPlatformScopeKey): string;
1392
+
1393
+ interface AXPSortDefinition {
1394
+ name: string;
1395
+ title: string;
1396
+ dir?: 'asc' | 'desc';
1397
+ }
1398
+ interface AXPSortQuery extends Pick<AXPSortDefinition, 'name' | 'dir'> {
1399
+ }
1400
+
1326
1401
  interface AXPViewQuery {
1327
1402
  name: string;
1328
1403
  fixed: boolean;
@@ -1442,6 +1517,18 @@ interface AXPMiddlewareErrorResponse {
1442
1517
  interface AXPActivityLogChange {
1443
1518
  type: AXPSystemActionType;
1444
1519
  description: string;
1520
+ /** I18n key for field label. When set with actionKey, used for translated display. */
1521
+ fieldKey?: string;
1522
+ /** Params for fieldKey translation (e.g. for unknown-field with {{name}}). */
1523
+ fieldKeyParams?: Record<string, string>;
1524
+ /** I18n key for action (e.g. @activity-log:changes.replaced). When set with fieldKey, overrides description. */
1525
+ actionKey?: string;
1526
+ oldValue?: unknown;
1527
+ newValue?: unknown;
1528
+ /** Short human-readable summary for Change History (e.g. "Updated from 'X' to 'Y'"). Used when layout is present. */
1529
+ summary?: string;
1530
+ /** Custom layout (AXPWidgetNode) for Change History. When set, rendered via AXPLayoutRenderer instead of default fieldKey/actionKey text. */
1531
+ layout?: unknown;
1445
1532
  }
1446
1533
  interface AXPActivityLog {
1447
1534
  id: string;
@@ -1789,10 +1876,11 @@ declare const AXPContextStore: i0.Type<{
1789
1876
  previous: i0.Signal<{}>;
1790
1877
  changeEvent: i0.Signal<AXPContextChangeEvent>;
1791
1878
  update: (path: string, value: any) => void;
1792
- patch: (context: {}) => void;
1879
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
1793
1880
  reset: () => void;
1794
1881
  set: (initialData: any) => void;
1795
1882
  getValue: (path: string) => any;
1883
+ hasValue: (path: string) => boolean;
1796
1884
  } & _ngrx_signals.StateSource<{
1797
1885
  data: AXPContextData;
1798
1886
  state: AXPContextState;
@@ -1830,10 +1918,10 @@ declare class AXPComponentSlotDirective implements OnInit {
1830
1918
  viewContainerRef: ViewContainerRef;
1831
1919
  contextStore: {
1832
1920
  data: i0.Signal<AXPContextData>;
1833
- state: i0.Signal<AXPContextState>;
1921
+ state: i0.Signal<_acorex_platform_core.AXPContextState>;
1834
1922
  initialSnapshot: i0.Signal<{}>;
1835
1923
  previousSnapshot: i0.Signal<{}>;
1836
- lastChange: _ngrx_signals.DeepSignal<AXPContextChangeEvent>;
1924
+ lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
1837
1925
  isChanged: i0.Signal<boolean>;
1838
1926
  isReset: i0.Signal<boolean>;
1839
1927
  isInitiated: i0.Signal<boolean>;
@@ -1842,18 +1930,19 @@ declare class AXPComponentSlotDirective implements OnInit {
1842
1930
  snapshot: i0.Signal<AXPContextData>;
1843
1931
  initial: i0.Signal<{}>;
1844
1932
  previous: i0.Signal<{}>;
1845
- changeEvent: i0.Signal<AXPContextChangeEvent>;
1933
+ changeEvent: i0.Signal<_acorex_platform_core.AXPContextChangeEvent>;
1846
1934
  update: (path: string, value: any) => void;
1847
- patch: (context: {}) => void;
1935
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
1848
1936
  reset: () => void;
1849
1937
  set: (initialData: any) => void;
1850
1938
  getValue: (path: string) => any;
1939
+ hasValue: (path: string) => boolean;
1851
1940
  } & _ngrx_signals.StateSource<{
1852
1941
  data: AXPContextData;
1853
- state: AXPContextState;
1942
+ state: _acorex_platform_core.AXPContextState;
1854
1943
  initialSnapshot: {};
1855
1944
  previousSnapshot: {};
1856
- lastChange: AXPContextChangeEvent;
1945
+ lastChange: _acorex_platform_core.AXPContextChangeEvent;
1857
1946
  }>;
1858
1947
  isEmpty: i0.Signal<boolean>;
1859
1948
  private _viewCount;
@@ -1930,6 +2019,11 @@ interface AXPDataSourceDataFieldDefinition {
1930
2019
  type: string;
1931
2020
  options?: AXPOptionsData;
1932
2021
  }
2022
+ type AXPLazyDataSource<T = unknown> = AXPMaybePromise<AXDataSource<T>>;
2023
+ type AXPDataSourceArray<T = unknown> = AXPMaybePromise<Array<T>>;
2024
+ type AXPDataSourceValue<T = unknown> = AXPMaybePromise<T>;
2025
+ type AXPDataSourceType<T = any> = AXPLazyDataSource<T> | AXPDataSourceArray<T> | AXPDataSourceValue<T>;
2026
+ type AXPDataSourceSample<T = any> = AXPDataSourceArray<T> | AXPDataSourceValue<T>;
1933
2027
  interface AXPDataSourceDefinition<T = any> {
1934
2028
  name: string;
1935
2029
  title: string;
@@ -1943,9 +2037,9 @@ interface AXPDataSourceDefinition<T = any> {
1943
2037
  };
1944
2038
  columns: AXPDataSourceDataFieldDefinition[];
1945
2039
  filters: AXPFilterDefinition[];
1946
- samples?: any[];
2040
+ samples?: AXPDataSourceSample<T>;
1947
2041
  visible?: boolean;
1948
- source: () => AXDataSource<T> | Promise<AXDataSource<T>>;
2042
+ source: () => AXPDataSourceType<T>;
1949
2043
  }
1950
2044
  interface AXPDataSourceDefinitionProvider {
1951
2045
  items(): Promise<AXPDataSourceDefinition[]>;
@@ -1954,7 +2048,7 @@ declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDe
1954
2048
  declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
1955
2049
  private providers;
1956
2050
  items(): Promise<AXPDataSourceDefinition[]>;
1957
- get(name: string): Promise<AXPDataSourceDefinition | undefined>;
2051
+ get<T = any>(name: string): Promise<AXPDataSourceDefinition<T> | undefined>;
1958
2052
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
1959
2053
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPDataSourceDefinitionProviderService>;
1960
2054
  }
@@ -2278,6 +2372,18 @@ interface AXPFeatureDefinition extends AXPModuleFeatureDefinition {
2278
2372
  key: string;
2279
2373
  }
2280
2374
 
2375
+ /**
2376
+ * Registered module manifests for select widgets via dataSource name {@link MODULE_MANIFESTS_DATASOURCE_NAME}.
2377
+ */
2378
+ declare const MODULE_MANIFESTS_DATASOURCE_NAME = "platform-module-manifests";
2379
+ /**
2380
+ * Data source definition for module names/titles from {@link AXPModuleManifestRegistry}.
2381
+ */
2382
+ declare class AXPModuleManifestsDataSourceDefinition implements AXPDataSourceDefinitionProvider {
2383
+ private readonly manifestRegistry;
2384
+ items(): Promise<AXPDataSourceDefinition[]>;
2385
+ }
2386
+
2281
2387
  /**
2282
2388
  * Registry service for module manifests.
2283
2389
  * Collects and manages all registered module manifests.
@@ -2445,6 +2551,16 @@ declare const AXP_SESSION_SERVICE: InjectionToken<AXPISessionService>;
2445
2551
  */
2446
2552
  declare const AXP_MODULE_MANIFEST_PROVIDER: InjectionToken<AXPModuleManifest[]>;
2447
2553
 
2554
+ /**
2555
+ * Locale-aware comparison of {@link AXPMultiLanguageString} values (plain string, `@scope:key`, or locale map).
2556
+ * Resolves each side with {@link resolveMultiLanguageString} for `locale`, then compares with `String#localeCompare`.
2557
+ */
2558
+ declare function compareMultiLanguageStrings(a: AXPMultiLanguageString | null | undefined, b: AXPMultiLanguageString | null | undefined, locale: string, collatorOptions?: Intl.CollatorOptions): number;
2559
+ /**
2560
+ * Stable sort copy: orders items by resolved string for `getValue(item)` using the active `locale`.
2561
+ */
2562
+ declare function sortByMultiLanguageString<T>(items: readonly T[], getValue: (item: T) => AXPMultiLanguageString | null | undefined, locale: string, collatorOptions?: Intl.CollatorOptions): T[];
2563
+
2448
2564
  /**
2449
2565
  * Represents a tag with text, color, and metadata
2450
2566
  */
@@ -2752,10 +2868,15 @@ declare function createProviderWithInjectionContext<T>(loader: () => Promise<new
2752
2868
  declare function provideLazyProvider<TProvider>(token: InjectionToken<any>, loader: () => Promise<new () => TProvider>, multi?: boolean): Provider;
2753
2869
 
2754
2870
  declare function extractTextFromHtml(value: string): string;
2871
+ /**
2872
+ * True when the string likely contains HTML markup (e.g. `<p>`, `<ul>`), as opposed to plain text.
2873
+ * Used to choose innerHTML vs text interpolation for multilingual fields.
2874
+ */
2875
+ declare function containsHtmlMarkup(value: string | null | undefined): boolean;
2755
2876
  /**
2756
2877
  * Generate kebab-case group name from title
2757
2878
  */
2758
2879
  declare function generateKebabCase(title: string): string;
2759
2880
 
2760
- export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPImageUrlLogoConfig, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPPlatformScope, AXPScreenSize, AXPSystemActionType, AXPSystemActions, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_SESSION_SERVICE, AXP_TAG_PROVIDER, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, cleanDeep, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, objectKeyValueTransforms, provideLazyProvider, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, setSmart };
2761
- export type { AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, AXPColumnWidthMatcher, AXPColumnWidthProvider, AXPCommandMessage, AXPComponentSlotConfig, AXPComponentSlotModuleConfigs, AXPContent, AXPContentDirection, AXPContentType, AXPContextData, AXPContextState, AXPDataSource, AXPDataSourceDataFieldDefinition, AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPDataType, AXPDistributedEventListenerProvider, AXPDistributedEventListenerProviderToken, AXPEntityOp, AXPEntityReference, AXPEqualValidationRule, AXPExecuteCommand, AXPExecuteCommandResult, AXPExportCsvOptions, AXPExportExcelOptions, AXPExportOptions, AXPExportPdfOptions, AXPExportPrintOptions, AXPExpression, AXPExpressionEvaluatorScope, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviders, AXPFeatureDefinition, AXPFeatureDefinitionProvider, AXPFeatureName, AXPFileListItem, AXPFileSource, AXPFileStatus, AXPFilterClause, AXPFilterDefinition, AXPFilterQuery, AXPFlowDirection, AXPGridLayoutOptions, AXPGridPlacement, AXPISessionService, AXPLogoConfig, AXPMaxLengthValidationRule, AXPMetaData, AXPMiddlewareErrorResponse, AXPMinLengthValidationRule, AXPModuleFeatureDefinition, AXPModuleFeatureDefinitionWithKey, AXPModuleManifest, AXPNavigateActionCommand, AXPNavigateActionOptions, AXPOptionsData, AXPPageStatus, AXPPagedListResult, AXPPartialNested, AXPPlatformScopeKey, AXPQueryFetchResult, AXPQueryRequest, AXPReqexValidationRule, AXPRequiredValidationRule, AXPSortDefinition, AXPSortQuery, AXPStartUpTask, AXPStringValidationRules, AXPSystemAction, AXPTag, AXPTagFilterOptions, AXPUserReference, AXPValidationRule, AXPValidationRules, AXPValueTransformerFunction, AXPValueTransformerFunctions, AXPValueUnit, AXPValueUnits, AXPViewBlockDefinition, AXPViewDefinition, AXPViewFieldDefinition, AXPViewQuery, AXPWidgetTrigger, AXPWidgetTriggers, ColumnNameMatcher, ColumnWidthValue, IColumnWithWidth, WidgetTypeMatcher };
2881
+ export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextChangeEvent, 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_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_SESSION_SERVICE, AXP_TAG_PROVIDER, MODULE_MANIFESTS_DATASOURCE_NAME, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, cleanDeep, compareMultiLanguageStrings, containsHtmlMarkup, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, normalizeDefinitionCategories, objectKeyValueTransforms, provideLazyProvider, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, setSmart, sortByMultiLanguageString };
2882
+ export type { AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPCategoryListItem, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, AXPColumnWidthMatcher, AXPColumnWidthProvider, AXPCommandMessage, AXPComponentSlotConfig, AXPComponentSlotModuleConfigs, AXPContent, AXPContentDirection, AXPContentType, AXPContextData, AXPContextState, 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 };