@acorex/platform 21.0.0-next.24 → 21.0.0-next.33

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 (118) 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-gyb6ohAE.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +46 -4
  4. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +677 -267
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +393 -111
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +554 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +345 -59
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs} +9 -9
  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 +3373 -872
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +14645 -11533
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +244 -170
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +367 -408
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  26. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +30 -22
  28. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  30. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  32. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +7 -7
  36. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  40. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets.mjs +5924 -4049
  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 +220 -169
  46. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
  48. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +15 -22
  52. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  54. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  58. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default.mjs +1667 -61
  60. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  61. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  62. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +4 -4
  67. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
  70. package/fesm2022/acorex-platform-themes-shared.mjs +231 -227
  71. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  72. package/fesm2022/acorex-platform-workflow.mjs +208 -91
  73. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  74. package/fesm2022/acorex-platform.mjs.map +1 -1
  75. package/package.json +34 -34
  76. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
  77. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +189 -16
  78. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +178 -15
  79. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
  80. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +91 -42
  81. package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +893 -138
  82. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
  83. package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +515 -26
  84. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +44 -9
  85. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +146 -95
  86. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +506 -98
  87. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  88. package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
  89. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +104 -4
  90. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +33 -30
  91. package/fesm2022/acorex-platform-common-common-settings.provider-gyb6ohAE.mjs.map +0 -1
  92. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs +0 -111
  98. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs +0 -160
  103. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs +0 -1611
  105. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs +0 -99
  107. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs +0 -19
  112. package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs.map +0 -1
  117. /package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +0 -0
  118. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -900,7 +900,7 @@ declare function getActionButton(actionType: string): {
900
900
  interface AXPColumnQuery {
901
901
  name: string;
902
902
  title: string;
903
- visible: boolean;
903
+ visible: boolean | string;
904
904
  }
905
905
 
906
906
  type AXPPartialNested<T> = {
@@ -908,6 +908,17 @@ type AXPPartialNested<T> = {
908
908
  };
909
909
  declare function getNestedKeys(obj: any, prefix?: string): string[];
910
910
  type AXPExpression = string;
911
+ /**
912
+ * Plain or rich text that may be localized: a single string or a map of locale code to string.
913
+ * Use when multi-language editing stores `Record<locale, string>` instead of one string.
914
+ *
915
+ * @example Single value (one locale or shared text)
916
+ * `"<p>Pick one</p>"`
917
+ *
918
+ * @example Per-locale map (e.g. after multi-language editor save)
919
+ * `{ "en-US": "<p>Pick one</p>", "fa-IR": "<p>یکی را انتخاب کنید</p>" }`
920
+ */
921
+ type AXPMultiLanguageString = string | Record<string, string>;
911
922
  type AXPMetaData = Record<string, any>;
912
923
  type AXPOptionsData<T extends Record<string, unknown> = Record<string, any>> = T;
913
924
  interface AXPValueUnit {
@@ -944,9 +955,10 @@ interface AXPContent {
944
955
  content: string;
945
956
  contentType: AXPContentType;
946
957
  }
958
+ type AXPMaybePromise<T = unknown> = T | Promise<T>;
947
959
 
948
960
  type AXPDataSource = string | AXDataSource | any[];
949
- type AXPDataType = 'string' | 'number' | 'object' | 'boolean' | 'array';
961
+ type AXPDataType = 'string' | 'number' | 'boolean' | 'date' | 'object' | 'array' | 'blob';
950
962
  interface AXPPagedListResult<T = any> {
951
963
  items: T[];
952
964
  total: number;
@@ -987,9 +999,9 @@ interface AXPCategoryEntity<TKey = string> {
987
999
  /** Unique identifier for the category */
988
1000
  id: TKey;
989
1001
  /** Display name of the category (required) */
990
- title: string;
1002
+ title: AXPMultiLanguageString;
991
1003
  /** Optional description of the category */
992
- description?: string;
1004
+ description?: AXPMultiLanguageString;
993
1005
  /** Parent category ID (undefined for root categories) */
994
1006
  parentId?: TKey;
995
1007
  /**
@@ -1080,15 +1092,20 @@ interface AXPCategoryEntityWithItems<T> extends AXPCategoryEntity {
1080
1092
  items: T[];
1081
1093
  children?: AXPCategoryEntityWithItems<T>[];
1082
1094
  }
1095
+ /**
1096
+ * Denormalized category row on entities and DTOs (id + localized display title).
1097
+ * Use for `categories` arrays expanded from {@link AXPCategoryEntity} assignments.
1098
+ */
1099
+ interface AXPCategoryListItem<TKey extends string = string> {
1100
+ id: TKey;
1101
+ title: AXPMultiLanguageString;
1102
+ }
1083
1103
  interface AXPCategorizedEntity {
1084
1104
  categoryIds: string[];
1085
1105
  }
1086
1106
  interface AXPCategorizedEntityDto {
1087
1107
  categoryIds: string[];
1088
- categories: {
1089
- id: string;
1090
- title: string;
1091
- }[];
1108
+ categories: AXPCategoryListItem[];
1092
1109
  }
1093
1110
  type AXPEntityOp = 'initial' | 'create' | 'update' | 'delete' | 'getOne' | 'getAll' | 'query';
1094
1111
 
@@ -1111,10 +1128,24 @@ interface AXPFileListItem {
1111
1128
  status: AXPFileStatus;
1112
1129
  source?: AXPFileSource;
1113
1130
  meta?: AXPMetaData;
1131
+ /**
1132
+ * When true, the item cannot be renamed, removed, or reverted from the UI.
1133
+ * Independent of widget `options.readonly` (widget-level disables all edits); use this for per-row locks from the server.
1134
+ */
1135
+ readOnly?: boolean;
1114
1136
  title?: string;
1115
1137
  description?: string;
1116
1138
  }
1117
1139
 
1140
+ /**
1141
+ * Filter toolbar trigger entries (same shape as entity `schema.interface.triggers`).
1142
+ * Declared on `AXPFilterDefinition` and populated when building list filter definitions.
1143
+ */
1144
+ interface AXPFilterTriggerDefinition {
1145
+ event: string;
1146
+ action: string;
1147
+ disabled?: boolean;
1148
+ }
1118
1149
  interface AXPFilterClause extends AXDataSourceFilterOption {
1119
1150
  id?: string;
1120
1151
  order?: number;
@@ -1131,8 +1162,19 @@ interface AXPFilterDefinition extends AXPFilterClause {
1131
1162
  filterType: {
1132
1163
  advance: boolean;
1133
1164
  inline: boolean;
1165
+ preload?: {
1166
+ enabled?: boolean;
1167
+ required?: boolean;
1168
+ };
1134
1169
  };
1135
1170
  hidden?: boolean;
1171
+ /**
1172
+ * When true, the filter is not selectable. When a string, it is evaluated as an expression (e.g. `{{ ... }}`)
1173
+ * using the current filters context.
1174
+ */
1175
+ disabled?: boolean | string;
1176
+ /** Expression-driven triggers (events/actions); same semantics as entity `schema.interface.triggers`. */
1177
+ triggers?: AXPFilterTriggerDefinition[];
1136
1178
  }
1137
1179
  interface AXPFilterQuery extends Pick<AXPFilterDefinition, 'field' | 'value' | 'operator' | 'logic' | 'hidden'> {
1138
1180
  filters?: AXPFilterQuery[];
@@ -1434,6 +1476,18 @@ interface AXPMiddlewareErrorResponse {
1434
1476
  interface AXPActivityLogChange {
1435
1477
  type: AXPSystemActionType;
1436
1478
  description: string;
1479
+ /** I18n key for field label. When set with actionKey, used for translated display. */
1480
+ fieldKey?: string;
1481
+ /** Params for fieldKey translation (e.g. for unknown-field with {{name}}). */
1482
+ fieldKeyParams?: Record<string, string>;
1483
+ /** I18n key for action (e.g. @activity-log:changes.replaced). When set with fieldKey, overrides description. */
1484
+ actionKey?: string;
1485
+ oldValue?: unknown;
1486
+ newValue?: unknown;
1487
+ /** Short human-readable summary for Change History (e.g. "Updated from 'X' to 'Y'"). Used when layout is present. */
1488
+ summary?: string;
1489
+ /** Custom layout (AXPWidgetNode) for Change History. When set, rendered via AXPLayoutRenderer instead of default fieldKey/actionKey text. */
1490
+ layout?: unknown;
1437
1491
  }
1438
1492
  interface AXPActivityLog {
1439
1493
  id: string;
@@ -1781,10 +1835,11 @@ declare const AXPContextStore: i0.Type<{
1781
1835
  previous: i0.Signal<{}>;
1782
1836
  changeEvent: i0.Signal<AXPContextChangeEvent>;
1783
1837
  update: (path: string, value: any) => void;
1784
- patch: (context: {}) => void;
1838
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
1785
1839
  reset: () => void;
1786
1840
  set: (initialData: any) => void;
1787
1841
  getValue: (path: string) => any;
1842
+ hasValue: (path: string) => boolean;
1788
1843
  } & _ngrx_signals.StateSource<{
1789
1844
  data: AXPContextData;
1790
1845
  state: AXPContextState;
@@ -1836,10 +1891,11 @@ declare class AXPComponentSlotDirective implements OnInit {
1836
1891
  previous: i0.Signal<{}>;
1837
1892
  changeEvent: i0.Signal<_acorex_platform_core.AXPContextChangeEvent>;
1838
1893
  update: (path: string, value: any) => void;
1839
- patch: (context: {}) => void;
1894
+ patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
1840
1895
  reset: () => void;
1841
1896
  set: (initialData: any) => void;
1842
1897
  getValue: (path: string) => any;
1898
+ hasValue: (path: string) => boolean;
1843
1899
  } & _ngrx_signals.StateSource<{
1844
1900
  data: AXPContextData;
1845
1901
  state: _acorex_platform_core.AXPContextState;
@@ -1922,6 +1978,11 @@ interface AXPDataSourceDataFieldDefinition {
1922
1978
  type: string;
1923
1979
  options?: AXPOptionsData;
1924
1980
  }
1981
+ type AXPLazyDataSource<T = unknown> = AXPMaybePromise<AXDataSource<T>>;
1982
+ type AXPDataSourceArray<T = unknown> = AXPMaybePromise<Array<T>>;
1983
+ type AXPDataSourceValue<T = unknown> = AXPMaybePromise<T>;
1984
+ type AXPDataSourceType<T = any> = AXPLazyDataSource<T> | AXPDataSourceArray<T> | AXPDataSourceValue<T>;
1985
+ type AXPDataSourceSample<T = any> = AXPDataSourceArray<T> | AXPDataSourceValue<T>;
1925
1986
  interface AXPDataSourceDefinition<T = any> {
1926
1987
  name: string;
1927
1988
  title: string;
@@ -1935,9 +1996,9 @@ interface AXPDataSourceDefinition<T = any> {
1935
1996
  };
1936
1997
  columns: AXPDataSourceDataFieldDefinition[];
1937
1998
  filters: AXPFilterDefinition[];
1938
- samples?: any[];
1999
+ samples?: AXPDataSourceSample<T>;
1939
2000
  visible?: boolean;
1940
- source: () => AXDataSource<T> | Promise<AXDataSource<T>>;
2001
+ source: () => AXPDataSourceType<T>;
1941
2002
  }
1942
2003
  interface AXPDataSourceDefinitionProvider {
1943
2004
  items(): Promise<AXPDataSourceDefinition[]>;
@@ -1946,7 +2007,7 @@ declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDe
1946
2007
  declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
1947
2008
  private providers;
1948
2009
  items(): Promise<AXPDataSourceDefinition[]>;
1949
- get(name: string): Promise<AXPDataSourceDefinition | undefined>;
2010
+ get<T = any>(name: string): Promise<AXPDataSourceDefinition<T> | undefined>;
1950
2011
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
1951
2012
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPDataSourceDefinitionProviderService>;
1952
2013
  }
@@ -2270,6 +2331,18 @@ interface AXPFeatureDefinition extends AXPModuleFeatureDefinition {
2270
2331
  key: string;
2271
2332
  }
2272
2333
 
2334
+ /**
2335
+ * Registered module manifests for select widgets via dataSource name {@link MODULE_MANIFESTS_DATASOURCE_NAME}.
2336
+ */
2337
+ declare const MODULE_MANIFESTS_DATASOURCE_NAME = "platform-module-manifests";
2338
+ /**
2339
+ * Data source definition for module names/titles from {@link AXPModuleManifestRegistry}.
2340
+ */
2341
+ declare class AXPModuleManifestsDataSourceDefinition implements AXPDataSourceDefinitionProvider {
2342
+ private readonly manifestRegistry;
2343
+ items(): Promise<AXPDataSourceDefinition[]>;
2344
+ }
2345
+
2273
2346
  /**
2274
2347
  * Registry service for module manifests.
2275
2348
  * Collects and manages all registered module manifests.
@@ -2437,6 +2510,91 @@ declare const AXP_SESSION_SERVICE: InjectionToken<AXPISessionService>;
2437
2510
  */
2438
2511
  declare const AXP_MODULE_MANIFEST_PROVIDER: InjectionToken<AXPModuleManifest[]>;
2439
2512
 
2513
+ /**
2514
+ * Resolves {@link AXPMultiLanguageString} using the active app locale, and exposes
2515
+ * {@link currentLocale$} for code that prefers an observable (e.g. manual subscriptions).
2516
+ * Templates usually use {@link AXPResolveMultiLanguageStringPipe} instead.
2517
+ */
2518
+ declare class AXPMultiLanguageStringResolverService {
2519
+ private readonly translation;
2520
+ /**
2521
+ * Emits the active locale on subscribe and whenever the language changes.
2522
+ */
2523
+ readonly currentLocale$: Observable<string>;
2524
+ /**
2525
+ * Resolves multi-language content for an optional locale (defaults to active).
2526
+ */
2527
+ resolve(content: AXPMultiLanguageString | null | undefined, locale?: string): string;
2528
+ /**
2529
+ * Checks if a value is a valid multi-language object map.
2530
+ * Key format must be `xx-XX` (e.g. en-US, fa-IR) or fallback `*-*`.
2531
+ * All values must be strings.
2532
+ */
2533
+ isValidMultiLanguageObject(value: unknown): value is Record<string, string>;
2534
+ /**
2535
+ * Normalizes multi-language content to a locale map for editors (e.g. multi-language popup `values`).
2536
+ * If `content` is already a locale-to-string map, returns a shallow copy.
2537
+ * If it is a plain string or empty, wraps it as `{ [activeLocale]: text }`.
2538
+ */
2539
+ toLocaleMap(content: AXPMultiLanguageString | null | undefined, activeLocale: string): Record<string, string>;
2540
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPMultiLanguageStringResolverService, never>;
2541
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPMultiLanguageStringResolverService>;
2542
+ }
2543
+
2544
+ /**
2545
+ * Resolves {@link AXPMultiLanguageString} via {@link AXPMultiLanguageStringResolverService}.
2546
+ * Impure and subscribes to {@link AXPMultiLanguageStringResolverService#currentLocale$} so
2547
+ * OnPush hosts (e.g. grid cells) still refresh when the language changes.
2548
+ *
2549
+ * Optional second argument: explicit locale (e.g. from a host `locale` input). When omitted or null/empty,
2550
+ * the active language is used.
2551
+ *
2552
+ * @example
2553
+ * ```html
2554
+ * {{ value | axpResolveMultiLanguageString }}
2555
+ * {{ value | axpResolveMultiLanguageString: locale() }}
2556
+ * ```
2557
+ */
2558
+ declare class AXPResolveMultiLanguageStringPipe implements PipeTransform, OnDestroy {
2559
+ private readonly resolver;
2560
+ private readonly cdr;
2561
+ private readonly localeSubscription;
2562
+ transform(value: AXPMultiLanguageString | null | undefined, locale?: string | null): string;
2563
+ ngOnDestroy(): void;
2564
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPResolveMultiLanguageStringPipe, never>;
2565
+ static ɵpipe: i0.ɵɵPipeDeclaration<AXPResolveMultiLanguageStringPipe, "axpResolveMultiLanguageString", true>;
2566
+ }
2567
+
2568
+ /**
2569
+ * Locale-aware comparison of {@link AXPMultiLanguageString} values (plain string, `@scope:key`, or locale map).
2570
+ * Resolves each side with {@link resolveMultiLanguageString} for `locale`, then compares with `String#localeCompare`.
2571
+ */
2572
+ declare function compareMultiLanguageStrings(a: AXPMultiLanguageString | null | undefined, b: AXPMultiLanguageString | null | undefined, locale: string, collatorOptions?: Intl.CollatorOptions): number;
2573
+ /**
2574
+ * Stable sort copy: orders items by resolved string for `getValue(item)` using the active `locale`.
2575
+ */
2576
+ declare function sortByMultiLanguageString<T>(items: readonly T[], getValue: (item: T) => AXPMultiLanguageString | null | undefined, locale: string, collatorOptions?: Intl.CollatorOptions): T[];
2577
+
2578
+ /**
2579
+ * Checks whether value is a valid locale map (`xx-XX` or `*-*` keys, string values).
2580
+ */
2581
+ declare function isValidMultiLanguageObject(value: unknown): value is Record<string, string>;
2582
+ /**
2583
+ * Resolves {@link AXPMultiLanguageString} to a single string for the given locale.
2584
+ * Fallback order: `currentLocale` → `en-US` → first map value.
2585
+ */
2586
+ declare function resolveMultiLanguageString(content: AXPMultiLanguageString | null | undefined, currentLocale: string): string;
2587
+ /**
2588
+ * Creates an {@link AXPMultiLanguageString} with `en-US` and `fa-IR` entries.
2589
+ * Use for seed data, tests, and demos that supply English and Persian copy explicitly.
2590
+ */
2591
+ declare function createMultiLanguageString(enUs: string, faIr: string): AXPMultiLanguageString;
2592
+ /**
2593
+ * True when there is no displayable text in any locale (plain string or ML map).
2594
+ * Pure helper for predicates (e.g. default section detection); prefer widgets / pipes for display.
2595
+ */
2596
+ declare function isEffectivelyEmptyLocalizedValue(value: unknown): boolean;
2597
+
2440
2598
  /**
2441
2599
  * Represents a tag with text, color, and metadata
2442
2600
  */
@@ -2744,10 +2902,15 @@ declare function createProviderWithInjectionContext<T>(loader: () => Promise<new
2744
2902
  declare function provideLazyProvider<TProvider>(token: InjectionToken<any>, loader: () => Promise<new () => TProvider>, multi?: boolean): Provider;
2745
2903
 
2746
2904
  declare function extractTextFromHtml(value: string): string;
2905
+ /**
2906
+ * True when the string likely contains HTML markup (e.g. `<p>`, `<ul>`), as opposed to plain text.
2907
+ * Used to choose innerHTML vs text interpolation for multilingual fields.
2908
+ */
2909
+ declare function containsHtmlMarkup(value: string | null | undefined): boolean;
2747
2910
  /**
2748
2911
  * Generate kebab-case group name from title
2749
2912
  */
2750
2913
  declare function generateKebabCase(title: string): string;
2751
2914
 
2752
- 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 };
2753
- 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 };
2915
+ 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, AXPMultiLanguageStringResolverService, AXPPlatformScope, AXPResolveMultiLanguageStringPipe, 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, createMultiLanguageString, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, isEffectivelyEmptyLocalizedValue, isValidMultiLanguageObject, objectKeyValueTransforms, provideLazyProvider, resolveActionLook, resolveMultiLanguageString, resolvePlatformScopeKey, resolvePlatformScopeName, setSmart, sortByMultiLanguageString };
2916
+ 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, 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, 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 };