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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/auth/index.d.ts +235 -5
  2. package/common/index.d.ts +220 -218
  3. package/core/index.d.ts +370 -434
  4. package/fesm2022/acorex-platform-auth.mjs +200 -37
  5. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  6. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs → acorex-platform-common-common-settings.provider-O8usQ0VC.mjs} +4 -4
  7. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map → acorex-platform-common-common-settings.provider-O8usQ0VC.mjs.map} +1 -1
  8. package/fesm2022/acorex-platform-common.mjs +215 -198
  9. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-core.mjs +548 -585
  11. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-domain.mjs +16 -16
  13. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-builder.mjs +84 -37
  15. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-components.mjs +303 -195
  17. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-designer.mjs +72 -72
  19. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-entity.mjs +3528 -1698
  21. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-views.mjs +25 -17
  23. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs +190 -110
  25. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  26. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-D-NsRvRl.mjs} +4 -4
  27. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map → acorex-platform-layout-widgets-button-widget-designer.component-D-NsRvRl.mjs.map} +1 -1
  28. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs → acorex-platform-layout-widgets-file-list-popup.component-CCcKHSHj.mjs} +4 -4
  29. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map → acorex-platform-layout-widgets-file-list-popup.component-CCcKHSHj.mjs.map} +1 -1
  30. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-IrT52Nh1.mjs} +4 -4
  31. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map → acorex-platform-layout-widgets-image-preview.popup-IrT52Nh1.mjs.map} +1 -1
  32. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-DFbfh-OX.mjs} +4 -4
  33. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map → acorex-platform-layout-widgets-page-widget-designer.component-DFbfh-OX.mjs.map} +1 -1
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-Dw6naXvq.mjs +111 -0
  35. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-Dw6naXvq.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component--4R3TUdJ.mjs} +4 -4
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map → acorex-platform-layout-widgets-tabular-data-edit-popup.component--4R3TUdJ.mjs.map} +1 -1
  38. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BeVQuHFj.mjs} +4 -4
  39. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-BeVQuHFj.mjs.map} +1 -1
  40. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-CdQxqi0D.mjs} +4 -4
  41. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map → acorex-platform-layout-widgets-text-block-widget-designer.component-CdQxqi0D.mjs.map} +1 -1
  42. package/fesm2022/acorex-platform-layout-widgets.mjs +2247 -1226
  43. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  44. package/fesm2022/acorex-platform-native.mjs +7 -7
  45. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-runtime.mjs +43 -43
  47. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  48. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs → acorex-platform-themes-default-entity-master-create-view.component-D2ucwC3F.mjs} +4 -4
  49. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-D2ucwC3F.mjs.map} +1 -1
  50. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs → acorex-platform-themes-default-entity-master-list-view.component-CD4Q_UIG.mjs} +13 -13
  51. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CD4Q_UIG.mjs.map +1 -0
  52. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs → acorex-platform-themes-default-entity-master-modify-view.component-D5BYbUGK.mjs} +7 -8
  53. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-D5BYbUGK.mjs.map +1 -0
  54. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-Cf4ei46_.mjs} +7 -7
  55. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-Cf4ei46_.mjs.map} +1 -1
  56. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-DdMToZ9q.mjs} +4 -4
  57. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map → acorex-platform-themes-default-error-401.component-DdMToZ9q.mjs.map} +1 -1
  58. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-CKsa5aPE.mjs} +4 -4
  59. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map → acorex-platform-themes-default-error-404.component-CKsa5aPE.mjs.map} +1 -1
  60. package/fesm2022/{acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs → acorex-platform-themes-default-error-offline.component-1gxFTAuX.mjs} +4 -4
  61. package/fesm2022/{acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map → acorex-platform-themes-default-error-offline.component-1gxFTAuX.mjs.map} +1 -1
  62. package/fesm2022/acorex-platform-themes-default.mjs +39 -42
  63. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  64. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-Ds8eRMuV.mjs} +4 -4
  65. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map → acorex-platform-themes-shared-icon-chooser-column.component-Ds8eRMuV.mjs.map} +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-Dv38sOzr.mjs} +4 -4
  67. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map → acorex-platform-themes-shared-icon-chooser-view.component-Dv38sOzr.mjs.map} +1 -1
  68. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-DcO6P6OG.mjs} +11 -11
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DcO6P6OG.mjs.map +1 -0
  70. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-B7T2qtaI.mjs} +4 -4
  71. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map → acorex-platform-themes-shared-theme-color-chooser-view.component-B7T2qtaI.mjs.map} +1 -1
  72. package/fesm2022/acorex-platform-themes-shared.mjs +41 -41
  73. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  74. package/fesm2022/acorex-platform-workflow.mjs +1529 -1758
  75. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  76. package/layout/builder/index.d.ts +15 -3
  77. package/layout/components/index.d.ts +23 -6
  78. package/layout/entity/index.d.ts +438 -159
  79. package/layout/views/index.d.ts +16 -11
  80. package/layout/widget-core/index.d.ts +47 -10
  81. package/layout/widgets/index.d.ts +213 -42
  82. package/package.json +5 -5
  83. package/themes/default/index.d.ts +0 -1
  84. package/workflow/index.d.ts +1050 -1759
  85. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +0 -1
  86. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  87. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
@@ -1,11 +1,11 @@
1
- import { AXPExecuteCommandResult, AXPMetaData, AXPGridLayoutOptions, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPUserReference, AXPQueryRequest, AXPPagedListResult, AXPCategoryEntity as AXPCategoryEntity$1, AXPMiddlewareErrorResponse, AXHighlightService, AXPExpression, AXPColumnQuery, AXPSortDefinition, AXPDeviceService, AXPBroadcastEventService, AXPActionMenuItem } from '@acorex/platform/core';
1
+ import { AXPExecuteCommandResult, AXPMetaData, AXPGridLayoutOptions, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPUserReference, AXPQueryRequest, AXPPagedListResult, AXPCategoryEntity as AXPCategoryEntity$1, AXPEntityOp, AXPMiddlewareErrorResponse, AXHighlightService, AXPExpression, AXPColumnQuery, AXPSortDefinition, AXPDeviceService, AXPBroadcastEventService, AXPActionMenuItem } from '@acorex/platform/core';
2
2
  import { AXPCommand, AXPQueryExecutor, AXPCommandService, AXPQuery } from '@acorex/platform/runtime';
3
3
  import * as _angular_core from '@angular/core';
4
4
  import { ElementRef, InjectionToken, Injector, Type, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
5
5
  import { AXPopoverComponent } from '@acorex/components/popover';
6
6
  import * as i3 from '@acorex/platform/layout/widget-core';
7
7
  import { AXPWidgetNode, AXPWidgetColumnNode, AXPWidgetCoreService, AXPColumnWidgetComponent, AXPValueWidgetComponent, AXPWidgetConfig, AXPWidgetRendererDirective } from '@acorex/platform/layout/widget-core';
8
- import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXValueChangedEvent, AXClickEvent, AXFocusEvent, AXHtmlEvent, AXDataSourceSortOption } from '@acorex/cdk/common';
8
+ import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXValueChangedEvent, AXClickEvent, AXFocusEvent, AXHtmlEvent } from '@acorex/cdk/common';
9
9
  import * as _acorex_platform_common from '@acorex/platform/common';
10
10
  import { AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPRelatedEntity, AXPEntitySectionView, AXPEntityPropertyCreateView, AXPEntityPropertyLayoutConfig, AXPQueryView, AXPEntityPropertyView, AXPCategoryEntity, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterListView, AXPEntityDetailListView, AXPQueryFilter } from '@acorex/platform/common';
11
11
  import * as i1 from '@angular/router';
@@ -21,9 +21,9 @@ import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
21
21
  import { IActionBuilder, IFormFieldBuilder, AXPDialogRef } from '@acorex/platform/layout/builder';
22
22
  import { AXBasePageComponent } from '@acorex/components/page';
23
23
  import { AXFormatService } from '@acorex/core/format';
24
+ import { AXPColumnItemListItem, AXPCategoryTreeDataSource } from '@acorex/platform/layout/components';
24
25
  import { AXTagBoxComponent } from '@acorex/components/tag-box';
25
26
  import { AXPDataListWidgetComponentOptions } from '@acorex/platform/layout/widgets';
26
- import { AXSelectBoxComponent } from '@acorex/components/select-box';
27
27
 
28
28
  declare class AXPCreateEntityCommand implements AXPCommand<any, any> {
29
29
  private entityForm;
@@ -89,6 +89,7 @@ declare class AXPEntityDetailPopoverComponent {
89
89
  textField: _angular_core.InputSignal<string>;
90
90
  valueField: _angular_core.InputSignal<string>;
91
91
  item: _angular_core.InputSignal<AXPMetaData | undefined>;
92
+ breadcrumb: _angular_core.InputSignal<string | null>;
92
93
  protected detailPopover: _angular_core.Signal<AXPopoverComponent | undefined>;
93
94
  protected entityDetails: _angular_core.WritableSignal<any>;
94
95
  protected isLoadingDetails: _angular_core.WritableSignal<boolean>;
@@ -124,7 +125,7 @@ declare class AXPEntityDetailPopoverComponent {
124
125
  node: AXPWidgetNode;
125
126
  }>;
126
127
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDetailPopoverComponent, never>;
127
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDetailPopoverComponent, "axp-entity-detail-popover", never, { "entity": { "alias": "entity"; "required": true; "isSignal": true; }; "entityId": { "alias": "entityId"; "required": true; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
128
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDetailPopoverComponent, "axp-entity-detail-popover", never, { "entity": { "alias": "entity"; "required": true; "isSignal": true; }; "entityId": { "alias": "entityId"; "required": true; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
128
129
  }
129
130
 
130
131
  interface AXPEntityDetailPopoverOptions {
@@ -133,6 +134,7 @@ interface AXPEntityDetailPopoverOptions {
133
134
  item: AXPMetaData;
134
135
  textField?: string;
135
136
  valueField?: string;
137
+ breadcrumb?: string;
136
138
  }
137
139
  declare class AXPEntityDetailPopoverService {
138
140
  private readonly applicationRef;
@@ -718,8 +720,6 @@ interface AXPEntityDefinitionPreloader {
718
720
  }
719
721
  declare class AXPEntityDefinitionRegistryService {
720
722
  private middleware;
721
- private moduleProviderLoader;
722
- private manifestRegistry;
723
723
  private onChanged;
724
724
  get onChanged$(): rxjs.Observable<{
725
725
  name: string;
@@ -769,12 +769,6 @@ declare class AXPEntityDefinitionRegistryService {
769
769
  */
770
770
  resolve(moduleName: string, entityName: string): Promise<AXPEntity>;
771
771
  exists(moduleName: string, entityName: string): Promise<boolean>;
772
- /**
773
- * Waits for module provider to be loaded if the module exists in manifest but provider isn't registered yet.
774
- * This handles race conditions where entity resolution happens before module providers finish loading.
775
- * Only waits for required modules or waits briefly for non-required modules (which may not be accessible to current user).
776
- */
777
- private waitForModuleProviderIfNeeded;
778
772
  /**
779
773
  * Creates a unique key for an entity based on its module and name.
780
774
  *
@@ -918,7 +912,6 @@ interface AXPEntityDefinitionLoader {
918
912
  declare const AXP_ENTITY_DEFINITION_LOADER: InjectionToken<AXPEntityDefinitionLoader>;
919
913
  declare class AXPEntityResolver {
920
914
  private providers;
921
- private providerRegistry;
922
915
  get(moduleName: string, entityName: string): Promise<AXPEntity | null>;
923
916
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityResolver, never>;
924
917
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityResolver>;
@@ -1037,7 +1030,6 @@ declare class AXPEntityService {
1037
1030
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityService>;
1038
1031
  }
1039
1032
 
1040
- type AXPEntityOp = 'initial' | 'create' | 'update' | 'delete' | 'getOne' | 'getAll' | 'query';
1041
1033
  interface AXPEntityStorageContext<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
1042
1034
  op: AXPEntityOp;
1043
1035
  entityName: string;
@@ -1086,26 +1078,13 @@ declare function isAXPMiddlewareAbortError(error: unknown): error is AXPMiddlewa
1086
1078
  declare const eventDispatchMiddleware: AXPEntityStorageMiddleware;
1087
1079
 
1088
1080
  /**
1089
- * Map of column name -> width value
1090
- * Example: { title: '300px', description: '300px' }
1091
- */
1092
- type ColumnWidthConfig = Record<string, string | number>;
1093
- /**
1094
- * Default widths for common text columns
1095
- */
1096
- declare const DEFAULT_COLUMN_WIDTHS: ColumnWidthConfig;
1097
- /**
1098
- * Factory to create a column width middleware using provided config map.
1099
- * Sets width for columns defined in the map if not already defined on the column.
1100
- */
1101
- declare const columnWidthMiddlewareFactory: (widths: ColumnWidthConfig) => AXPEntityModifier;
1102
- /**
1103
- * Helper to create a provider for the column width middleware.
1104
- * By default it applies to all entities using the '*' pattern.
1081
+ * Entity modifier that applies column widths using the column width service
1082
+ * Uses the generic column width resolution system from core library
1083
+ * Note: inject() works here because modifiers are executed via runInInjectionContext()
1105
1084
  */
1106
- declare const createColumnWidthMiddlewareProvider: (widths: ColumnWidthConfig, entityName?: string | RegExp) => AXPEntityModifierProvider;
1085
+ declare const columnWidthMiddleware: AXPEntityModifier;
1107
1086
  /**
1108
- * Default provider registered with the default map.
1087
+ * Default provider that applies column width middleware to all entities
1109
1088
  */
1110
1089
  declare const columnWidthMiddlewareProvider: AXPEntityModifierProvider;
1111
1090
 
@@ -1272,6 +1251,8 @@ interface IPropertyFilterStage {
1272
1251
  actions(delegate: (a: IActionBuilder) => void): IPropertyFilterStage;
1273
1252
  /** Add an extra field into a specific group, using the original field builder API */
1274
1253
  field(groupId: string, path: string, delegate?: (field: CompatFormFieldBuilder) => void): IPropertyFilterStage;
1254
+ /** Build and return the widget node without showing dialog */
1255
+ build(): Promise<AXPWidgetNode>;
1275
1256
  /** Show dialog */
1276
1257
  show(): Promise<AXPDialogRef>;
1277
1258
  mode(mode: 'edit' | 'view'): IPropertyFilterStage;
@@ -1281,6 +1262,13 @@ declare class AXPEntityFormBuilderService implements IEntitySelectorStage {
1281
1262
  private readonly layoutBuilder;
1282
1263
  private readonly deviceService;
1283
1264
  entity(fullName: string): IInterfaceSelectorStage;
1265
+ /**
1266
+ * Fetches a record by ID for the specified entity.
1267
+ * @param fullName - Entity full name in "module.entity" format
1268
+ * @param id - Record ID to fetch
1269
+ * @returns Promise resolving to the record data, or empty object if not found
1270
+ */
1271
+ getRecordById(fullName: string, id: string): Promise<Record<string, any>>;
1284
1272
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityFormBuilderService, never>;
1285
1273
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityFormBuilderService>;
1286
1274
  }
@@ -1362,6 +1350,7 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1362
1350
  protected readonly categoryTreeService: AXPCategoryTreeService;
1363
1351
  private readonly translationService;
1364
1352
  protected readonly highlightService: AXHighlightService;
1353
+ private readonly changeDetectorRef;
1365
1354
  entityKey: _angular_core.WritableSignal<string>;
1366
1355
  textField: _angular_core.WritableSignal<string>;
1367
1356
  valueField: _angular_core.WritableSignal<string>;
@@ -1439,6 +1428,10 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1439
1428
  protected datasource: (id?: string) => Promise<AXTreeViewNode[]>;
1440
1429
  protected onConfirm(): Promise<void>;
1441
1430
  protected onCancel(): Promise<void>;
1431
+ /**
1432
+ * Clears all selected items
1433
+ */
1434
+ protected onClearAll(): void;
1442
1435
  /**
1443
1436
  * Checks if a node matches the current search term
1444
1437
  */
@@ -1449,10 +1442,27 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1449
1442
  protected isNodeSelected(nodeId: string | number | undefined): boolean;
1450
1443
  /**
1451
1444
  * Handles checkbox change event to toggle node selection
1452
- * In multiple mode: recursively selects/deselects children
1453
- * Parent states are handled automatically by tree component's intermediate-nested behavior
1445
+ * In multiple mode: recursively selects/deselects LEAF children only
1446
+ * Parent states are calculated based on leaf descendants
1454
1447
  */
1455
1448
  protected handleCheckboxChange(nodeId: string | number | undefined, checked: boolean): Promise<void>;
1449
+ /**
1450
+ * Selects all leaf descendants of a node (and the node itself if it's a leaf)
1451
+ */
1452
+ private selectLeafDescendants;
1453
+ /**
1454
+ * Deselects all leaf descendants of a node (and the node itself if it's a leaf)
1455
+ */
1456
+ private deselectLeafDescendants;
1457
+ /**
1458
+ * Collects all LEAF descendant node IDs recursively
1459
+ * A leaf node is one that has no children
1460
+ */
1461
+ private collectLeafDescendants;
1462
+ /**
1463
+ * Refreshes parent states in the tree based on leaf selection
1464
+ */
1465
+ private refreshParentStatesInTree;
1456
1466
  /**
1457
1467
  * Selects a node and recursively selects all its children
1458
1468
  */
@@ -1481,24 +1491,26 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1481
1491
  private loadAndSelectChildrenRecursively;
1482
1492
  private updateSelectedNodes;
1483
1493
  /**
1484
- * Updates all parent states based on their children's selection
1485
- * Used during initialization to ensure proper parent states (select/intermediate)
1494
+ * Builds complete ancestor chains for all selected node IDs.
1495
+ * Returns a Map where key is the selected node ID and value is array of ancestor IDs from root to parent.
1486
1496
  */
1487
- private updateAllParentStates;
1497
+ private buildAncestorChains;
1488
1498
  /**
1489
- * Expands parents of selected nodes so they're visible when popup opens
1499
+ * Expands ancestor nodes in order from root to leaf.
1500
+ * This ensures parent nodes are loaded into the tree before selecting children.
1490
1501
  */
1491
- private expandParentsOfSelectedNodes;
1502
+ private expandAncestorNodesInOrder;
1492
1503
  /**
1493
- * Selects parents whose all children are selected
1494
- * This ensures that when all children of a parent are selected, the parent also appears selected
1504
+ * Syncs selection state with the tree component.
1505
+ * Selects leaf nodes and manually updates parent states (indeterminate/selected).
1495
1506
  */
1496
- private selectParentsWithAllChildrenSelected;
1507
+ private syncSelectionWithTree;
1497
1508
  /**
1498
- * Syncs selection state with the tree component
1499
- * Handles cases where nodes might not be in the tree structure yet
1509
+ * Updates parent node states (selected/indeterminate) based on children selection.
1510
+ * Called after leaf nodes are selected to properly show parent states.
1511
+ * Works bottom-up from deepest parents to root, tracking states in a Map.
1500
1512
  */
1501
- private syncSelectionWithTree;
1513
+ private updateParentStatesAfterSelection;
1502
1514
  /**
1503
1515
  * Loads node data for IDs that are selected but not yet in the cache.
1504
1516
  * This is critical for pre-selected values in collapsed branches.
@@ -1535,7 +1547,7 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
1535
1547
  private cacheNodeDataFromNodes;
1536
1548
  /**
1537
1549
  * Calculate the full path from root to the selected node.
1538
- * Returns an array of strings like ["C", "B"] for node B under parent C.
1550
+ * Returns an array of strings like ["Operations", "IT Operations"] for node "IT Operations" under parent "Operations".
1539
1551
  * Uses tree-view's getNodePath() API when available, otherwise falls back to manual calculation.
1540
1552
  */
1541
1553
  private calculateNodePath;
@@ -1579,12 +1591,15 @@ declare class AXPEntityCategoryWidgetColumnComponent extends AXPColumnWidgetComp
1579
1591
  private efEntity;
1580
1592
  private efDisplay;
1581
1593
  protected visibleItems: _angular_core.Signal<any[]>;
1594
+ protected columnItems: _angular_core.Signal<AXPColumnItemListItem[]>;
1582
1595
  protected showItemDetail(item: any, index: number): Promise<void>;
1583
- protected handleItemClick(index: number): void;
1596
+ protected handleItemClick(listItem: AXPColumnItemListItem): void;
1584
1597
  protected getItemPath(item: any): string[];
1585
1598
  protected hasParent(item: any): boolean;
1586
1599
  protected getItemText(item: any): string;
1600
+ protected joinPath(path: string[]): string;
1587
1601
  protected getItemId(item: any): string;
1602
+ protected getBreadcrumbPath(item: any): string;
1588
1603
  private extractItemWithPath;
1589
1604
  /**
1590
1605
  * Calculate the full path from root to the item.
@@ -1642,6 +1657,11 @@ declare class AXPEntityCategoryWidgetEditComponent extends AXPValueWidgetCompone
1642
1657
  protected tagBox: _angular_core.Signal<AXTagBoxComponent | undefined>;
1643
1658
  protected searchTerm: _angular_core.WritableSignal<string | null>;
1644
1659
  private entityDef;
1660
+ /**
1661
+ * Flag to prevent the value effect from running during internal updates.
1662
+ * This prevents circular dependency when setItems() calls setValue().
1663
+ */
1664
+ private isInternalUpdate;
1645
1665
  protected handleAddClick(e: AXClickEvent): void;
1646
1666
  protected handleValueChange(e: AXValueChangedEvent): void;
1647
1667
  protected handleOnBlur(e: AXFocusEvent): void;
@@ -1700,109 +1720,49 @@ declare class AXPEntityCategoryWidgetViewComponent extends AXPValueWidgetCompone
1700
1720
  declare const AXPEntityCategoryWidget: AXPWidgetConfig;
1701
1721
 
1702
1722
  declare class AXPTruncatedBreadcrumbComponent implements OnDestroy {
1703
- /**
1704
- * Array of path sections to display
1705
- */
1706
1723
  sections: _angular_core.InputSignal<string[]>;
1707
- /**
1708
- * Maximum number of characters per section.
1709
- * Can be a number or 'auto' to calculate based on available space.
1710
- */
1711
1724
  characterLimit: _angular_core.InputSignal<number | "auto">;
1712
- /**
1713
- * Maximum number of sections to display before showing ellipsis.
1714
- * Can be a number or 'auto' to calculate based on available space.
1715
- */
1716
1725
  sectionLimit: _angular_core.InputSignal<number | "auto">;
1717
- /**
1718
- * Icon class for separator between sections
1719
- */
1720
1726
  separatorIcon: _angular_core.InputSignal<string>;
1721
- /**
1722
- * Icon class for ellipsis
1723
- */
1724
1727
  ellipsisIcon: _angular_core.InputSignal<string>;
1725
- /**
1726
- * Icon class for eye icon (collapse button)
1727
- */
1728
1728
  eyeIcon: _angular_core.InputSignal<string>;
1729
1729
  protected container: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
1730
1730
  protected isExpanded: _angular_core.WritableSignal<boolean>;
1731
1731
  private containerWidth;
1732
1732
  private resizeObserver;
1733
- /**
1734
- * Effective character limit (calculated if 'auto', otherwise uses input value)
1735
- */
1736
1733
  protected effectiveCharacterLimit: _angular_core.Signal<number>;
1737
- /**
1738
- * Effective section limit (calculated if 'auto', otherwise uses input value)
1739
- */
1740
1734
  protected effectiveSectionLimit: _angular_core.Signal<number>;
1735
+ protected hasTruncatedText: _angular_core.Signal<boolean>;
1736
+ protected hasHiddenSections: _angular_core.Signal<boolean>;
1741
1737
  /**
1742
- * All sections with truncated text (for collapsed display)
1738
+ * canToggle: If this is false, NO Eye Icon and NO Click events will exist.
1743
1739
  */
1744
- protected allSections: _angular_core.Signal<{
1740
+ protected canToggle: _angular_core.Signal<boolean>;
1741
+ protected allSectionsTruncated: _angular_core.Signal<{
1745
1742
  text: string;
1746
1743
  original: string;
1747
1744
  }[]>;
1748
- /**
1749
- * All sections with full text (for expanded display)
1750
- */
1751
- protected allSectionsFull: _angular_core.Signal<string[]>;
1752
- /**
1753
- * Sections to display (first N sections) when collapsed
1754
- */
1755
1745
  protected displayedSections: _angular_core.Signal<{
1756
1746
  text: string;
1757
1747
  original: string;
1758
1748
  }[]>;
1759
- /**
1760
- * Last section (always shown if there are hidden sections)
1761
- */
1762
1749
  protected lastSection: _angular_core.Signal<{
1763
1750
  text: string;
1764
1751
  original: string;
1765
1752
  }>;
1766
- /**
1767
- * Check if there are hidden sections
1768
- */
1769
- protected hasHiddenSections: _angular_core.Signal<boolean>;
1770
1753
  constructor();
1771
1754
  ngOnDestroy(): void;
1772
- /**
1773
- * Handles click on separator icon to expand
1774
- */
1775
1755
  protected handleSeparatorClick(event: Event): void;
1776
- /**
1777
- * Handles click on ellipsis icon to expand
1778
- */
1779
1756
  protected handleEllipsisClick(event: Event): void;
1780
- /**
1781
- * Handles click on eye icon to collapse
1782
- */
1783
1757
  protected handleCollapseClick(event: Event): void;
1784
- /**
1785
- * Initializes ResizeObserver to track container width
1786
- */
1787
1758
  private initializeResizeObserver;
1788
- /**
1789
- * Calculates automatic character limit based on available space
1790
- */
1791
- private calculateAutoCharacterLimit;
1792
- /**
1793
- * Calculates automatic section limit based on available space
1794
- */
1795
- private calculateAutoSectionLimit;
1796
- /**
1797
- * Truncates text to character limit with ellipsis
1798
- */
1799
- private truncateText;
1800
1759
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTruncatedBreadcrumbComponent, never>;
1801
1760
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPTruncatedBreadcrumbComponent, "axp-truncated-breadcrumb", never, { "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "characterLimit": { "alias": "characterLimit"; "required": false; "isSignal": true; }; "sectionLimit": { "alias": "sectionLimit"; "required": false; "isSignal": true; }; "separatorIcon": { "alias": "separatorIcon"; "required": false; "isSignal": true; }; "ellipsisIcon": { "alias": "ellipsisIcon"; "required": false; "isSignal": true; }; "eyeIcon": { "alias": "eyeIcon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1802
1761
  }
1803
1762
 
1804
1763
  declare class AXPEntityListTableService {
1805
1764
  private readonly workflow;
1765
+ private readonly commandService;
1806
1766
  private readonly expressionEvaluator;
1807
1767
  /**
1808
1768
  * Convert Entity to List Widget Options
@@ -2000,6 +1960,14 @@ interface AXPEntityDataSelectorOptions {
2000
1960
  searchFields?: string[];
2001
1961
  initialSearchTerm?: string;
2002
1962
  selectedItemIds?: string[] | number[];
1963
+ categoryFilter?: {
1964
+ title: string;
1965
+ dataSource: AXPCategoryTreeDataSource;
1966
+ filterField: string;
1967
+ filterOperator?: 'equal' | 'contains' | 'in';
1968
+ width?: string;
1969
+ };
1970
+ showCategoryFilter?: boolean;
2003
1971
  }
2004
1972
  interface AXPEntityDataSelectorResult {
2005
1973
  items: any[];
@@ -2008,20 +1976,11 @@ declare class AXPEntityDataSelectorService {
2008
1976
  private readonly dataSelectorService;
2009
1977
  private readonly filterOperatorMiddleware;
2010
1978
  private readonly widgetResolver;
1979
+ private readonly entityResolver;
2011
1980
  /**
2012
1981
  * Open entity data selector popup
2013
1982
  */
2014
1983
  open(options: AXPEntityDataSelectorOptions): Promise<AXPEntityDataSelectorResult | null>;
2015
- /**
2016
- * Open entity data selector with category filter
2017
- */
2018
- openWithCategoryFilter(options: Omit<AXPEntityDataSelectorOptions, 'allowCreate'>, categoryFilterConfig: {
2019
- title: string;
2020
- dataSource: any;
2021
- filterField: string;
2022
- filterOperator?: 'equal' | 'contains' | 'in';
2023
- width?: string;
2024
- }): Promise<AXPEntityDataSelectorResult | null>;
2025
1984
  /**
2026
1985
  * Create data selector configuration from entity options
2027
1986
  */
@@ -2042,6 +2001,10 @@ declare class AXPEntityDataSelectorService {
2042
2001
  * Check if entity supports create operation
2043
2002
  */
2044
2003
  private canCreate;
2004
+ /**
2005
+ * Create category tree data source from category entity key
2006
+ */
2007
+ private createCategoryTreeDataSource;
2045
2008
  /**
2046
2009
  * Merge custom and parent filters into data source query
2047
2010
  */
@@ -2061,17 +2024,23 @@ interface AXPLookupWidgetOptions {
2061
2024
  displayFormat?: string;
2062
2025
  }
2063
2026
 
2027
+ /**
2028
+ * Base interface for lookup widget look components
2029
+ * All look components should implement this interface to ensure consistency
2030
+ */
2031
+ declare abstract class LookupWidgetLookBase {
2032
+ abstract refresh(): void;
2033
+ abstract focus(): void;
2034
+ abstract clear(): void;
2035
+ }
2036
+
2064
2037
  declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any> {
2065
2038
  #private;
2066
2039
  protected readonly injector: Injector;
2067
2040
  protected readonly entityResolver: AXPEntityDefinitionRegistryService;
2068
- protected readonly formatService: AXFormatService;
2069
- protected readonly popupService: AXPopupService;
2041
+ protected readonly entityService: AXPEntityService;
2070
2042
  protected readonly entityDataSelectorService: AXPEntityDataSelectorService;
2071
- private readonly translateService;
2072
- protected selectBox: _angular_core.Signal<AXSelectBoxComponent | undefined>;
2073
- protected tagBox: _angular_core.Signal<AXTagBoxComponent | undefined>;
2074
- private shouldFocus;
2043
+ protected componentLook: _angular_core.Signal<LookupWidgetLookBase | undefined>;
2075
2044
  protected expose: _angular_core.Signal<string | any[] | undefined>;
2076
2045
  protected entity: _angular_core.Signal<string>;
2077
2046
  protected disabled: _angular_core.Signal<string>;
@@ -2084,43 +2053,28 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
2084
2053
  protected allowClear: _angular_core.Signal<boolean>;
2085
2054
  protected defaultTextField: _angular_core.Signal<string>;
2086
2055
  protected displayField: _angular_core.Signal<string>;
2087
- protected selectedItemsText: _angular_core.Signal<string>;
2088
2056
  protected valueField: _angular_core.Signal<string>;
2089
2057
  protected displayFormat: _angular_core.Signal<string | undefined>;
2090
2058
  protected conditions?: AXPQueryFilter[];
2091
2059
  protected filter: AXDataSourceFilterOption | null;
2092
- private entityDef;
2093
- /**
2094
- * Get default sort order from entity's first list view
2095
- */
2096
- protected defaultSorts: _angular_core.Signal<AXDataSourceSortOption[]>;
2097
- protected dataSource: _angular_core.Signal<AXDataSource<unknown> | null>;
2098
- protected searchTerm: _angular_core.WritableSignal<string | null>;
2060
+ protected entityDef: _angular_core.WritableSignal<AXPEntity | null>;
2099
2061
  protected selectedItems: _angular_core.WritableSignal<any[]>;
2100
- textbox: _angular_core.Signal<AXTagBoxComponent | undefined>;
2062
+ protected initialItems: _angular_core.WritableSignal<boolean>;
2063
+ protected initialized: _angular_core.WritableSignal<boolean>;
2064
+ protected previousValue: _angular_core.WritableSignal<any>;
2101
2065
  protected isLoading: _angular_core.WritableSignal<boolean>;
2102
- protected isOpen: _angular_core.WritableSignal<boolean>;
2103
- private placeholderUpdateToken;
2066
+ private hasValue;
2104
2067
  private findByValue;
2105
- protected handleOnClick(e: AXClickEvent): void;
2106
- private showSelector;
2107
- protected selectBoxValueChange(e: AXValueChangedEvent): void;
2108
- protected handleValueChange(e: AXValueChangedEvent): void;
2109
- protected handleSearchInputChange(e: AXValueChangedEvent): void;
2110
- protected handleOnBlur(e: AXFocusEvent): void;
2111
- protected handleKeyUp(e: AXHtmlEvent): Promise<void>;
2112
- private setItems;
2113
- protected handleClearClick(): void;
2114
- refresh(): void;
2115
- clear(): void;
2116
- clearInput(): void;
2117
- protected getTagLabel(item: any): string;
2118
- private searchByValue;
2119
- private mergeFilter;
2120
- private singleOrMultiple;
2068
+ protected handleComponentValueChanged(items: any[] | null): void;
2069
+ protected setLoading: (loading: boolean) => void;
2070
+ protected setItems: (items: any[]) => void;
2121
2071
  /**
2122
- * Public focus method to trigger focusing
2072
+ * Update expose data for empty state
2123
2073
  */
2074
+ private expoesItems;
2075
+ private singleOrMultiple;
2076
+ refresh(): void;
2077
+ clear(): void;
2124
2078
  focus(): void;
2125
2079
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLookupWidgetEditComponent, never>;
2126
2080
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLookupWidgetEditComponent, "axp-lookup-widget-edit", never, {}, {}, never, never, true, never>;
@@ -2160,6 +2114,331 @@ declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<an
2160
2114
 
2161
2115
  declare const AXPLookupWidget: AXPWidgetConfig;
2162
2116
 
2117
+ /**
2118
+ * Unified reference format for all sources
2119
+ */
2120
+ interface AXPMultiSourceRef {
2121
+ /** Source identifier (e.g., 'site-location', 'inline-address', 'employee-user') */
2122
+ sourceKey: string;
2123
+ /** Entity ID if entity source (optional for inline sources) */
2124
+ refId?: string;
2125
+ /** Always present - used for display */
2126
+ displayName: string;
2127
+ /** Full data (for inline sources or denormalized entity data) */
2128
+ data?: any;
2129
+ /** Additional metadata */
2130
+ meta?: Record<string, unknown>;
2131
+ }
2132
+ /**
2133
+ * Stored value type
2134
+ * - Single: AXPMultiSourceRef
2135
+ * - Multiple: AXPMultiSourceRef[]
2136
+ */
2137
+ type AXPMultiSourceValue = AXPMultiSourceRef | AXPMultiSourceRef[];
2138
+ /**
2139
+ * Source type
2140
+ */
2141
+ declare enum AXPMultiSourceType {
2142
+ Entity = "entity",
2143
+ Inline = "inline"
2144
+ }
2145
+ /**
2146
+ * Single source item definition
2147
+ */
2148
+ interface AXPMultiSourceItem {
2149
+ /** Unique identifier for this source */
2150
+ key: string;
2151
+ /** Display information */
2152
+ title: string;
2153
+ icon?: string;
2154
+ badge?: string;
2155
+ description?: string;
2156
+ /** Source type */
2157
+ type: AXPMultiSourceType;
2158
+ /** For entity sources: entity name (e.g., 'LocationManagement.Location') */
2159
+ entity?: string;
2160
+ /** For inline sources: command key to execute for inline creation (e.g., 'Module.Entity:CreateInline') */
2161
+ inlineCreateCommand?: string;
2162
+ /** Optional: Filter/constraints for this source */
2163
+ filters?: AXDataSourceFilterOption;
2164
+ /** Optional: Custom search fields */
2165
+ searchFields?: string[];
2166
+ /** Display format template for results */
2167
+ displayFormat?: string;
2168
+ /** Value transformation (how to store this source) */
2169
+ valueTransform?: (item: any) => AXPMultiSourceRef;
2170
+ }
2171
+ /**
2172
+ * Complete source configuration (from provider)
2173
+ */
2174
+ interface AXPMultiSourceDefinition {
2175
+ /** Provider name */
2176
+ name: string;
2177
+ /** Display title */
2178
+ title: string;
2179
+ /** Sources array */
2180
+ sources: AXPMultiSourceItem[];
2181
+ /** Default search strategy */
2182
+ searchStrategy: 'unified' | 'tabs' | 'grouped';
2183
+ /** Default display format */
2184
+ defaultDisplayFormat?: string;
2185
+ /** Default multiple selection */
2186
+ defaultMultiple?: boolean;
2187
+ }
2188
+ /**
2189
+ * Widget options
2190
+ */
2191
+ interface AXPMultiSourceSelectorWidgetOptions {
2192
+ /** Provider name (required) */
2193
+ providerName: string;
2194
+ /** Override multiple selection (optional, uses provider default if not specified) */
2195
+ multiple?: boolean;
2196
+ /** Override display format (optional, uses provider default if not specified) */
2197
+ displayFormat?: string;
2198
+ /** Additional filters to apply to all sources */
2199
+ filters?: AXDataSourceFilterOption;
2200
+ /** Custom placeholder */
2201
+ placeholder?: string;
2202
+ /** Allow clear */
2203
+ allowClear?: boolean;
2204
+ }
2205
+
2206
+ /**
2207
+ * Injection token for multi-source definition providers
2208
+ */
2209
+ declare const AXP_MULTI_SOURCE_DEFINITION_PROVIDER: InjectionToken<AXPMultiSourceDefinitionProvider[]>;
2210
+ /**
2211
+ * Provider context for building definitions
2212
+ */
2213
+ declare class AXPMultiSourceDefinitionProviderContext {
2214
+ private definitions;
2215
+ addDefinition(definition: AXPMultiSourceDefinition): void;
2216
+ getDefinitions(): AXPMultiSourceDefinition[];
2217
+ findDefinition(name: string): AXPMultiSourceDefinition | undefined;
2218
+ }
2219
+ /**
2220
+ * Provider interface
2221
+ */
2222
+ interface AXPMultiSourceDefinitionProvider {
2223
+ provide(context: AXPMultiSourceDefinitionProviderContext): Promise<void> | void;
2224
+ }
2225
+ /**
2226
+ * Service for managing multi-source definitions
2227
+ */
2228
+ declare class AXPMultiSourceDefinitionProviderService {
2229
+ private readonly providers;
2230
+ private cache;
2231
+ private load;
2232
+ /**
2233
+ * Get definition by name
2234
+ */
2235
+ getDefinition(name: string): Promise<AXPMultiSourceDefinition>;
2236
+ /**
2237
+ * Reload definitions (clear cache)
2238
+ */
2239
+ reload(): Promise<void>;
2240
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMultiSourceDefinitionProviderService, never>;
2241
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMultiSourceDefinitionProviderService>;
2242
+ }
2243
+
2244
+ declare const AXPMultiSourceSelectorWidget: AXPWidgetConfig;
2245
+
2246
+ /**
2247
+ * Search result item with source information
2248
+ */
2249
+ interface AXPMultiSourceSearchResultItem {
2250
+ source: AXPMultiSourceItem;
2251
+ item: any;
2252
+ }
2253
+ /**
2254
+ * Search result
2255
+ */
2256
+ interface AXPMultiSourceSearchResult {
2257
+ items: AXPMultiSourceSearchResultItem[];
2258
+ total: number;
2259
+ }
2260
+ declare class AXPMultiSourceFederatedSearchService {
2261
+ private readonly entityResolver;
2262
+ /**
2263
+ * Search across all enabled sources
2264
+ */
2265
+ search(definition: AXPMultiSourceDefinition, searchTerm: string, filters?: AXDataSourceFilterOption): Promise<AXPMultiSourceSearchResult>;
2266
+ /**
2267
+ * Search single source
2268
+ */
2269
+ searchSource(source: AXPMultiSourceItem, searchTerm: string, filters?: AXDataSourceFilterOption): Promise<{
2270
+ items: any[];
2271
+ total: number;
2272
+ }>;
2273
+ /**
2274
+ * Resolve entity from entity name string (e.g., 'LocationManagement.Location')
2275
+ */
2276
+ private resolveEntity;
2277
+ /**
2278
+ * Search entity using entity queries
2279
+ */
2280
+ private searchEntity;
2281
+ /**
2282
+ * Build search filters from search term
2283
+ */
2284
+ private buildSearchFilters;
2285
+ /**
2286
+ * Get default searchable fields from entity
2287
+ */
2288
+ private getDefaultSearchFields;
2289
+ /**
2290
+ * Merge multiple filters
2291
+ */
2292
+ private mergeFilters;
2293
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMultiSourceFederatedSearchService, never>;
2294
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMultiSourceFederatedSearchService>;
2295
+ }
2296
+
2297
+ /**
2298
+ * Selector open configuration
2299
+ */
2300
+ interface AXPMultiSourceSelectorOpenConfig {
2301
+ definition: AXPMultiSourceDefinition;
2302
+ multiple: boolean;
2303
+ selectedValues?: AXPMultiSourceValue;
2304
+ filters?: AXDataSourceFilterOption;
2305
+ title?: string;
2306
+ }
2307
+ /**
2308
+ * Selector result
2309
+ */
2310
+ interface AXPMultiSourceSelectorResult {
2311
+ items: AXPMultiSourceRef[];
2312
+ }
2313
+ declare class AXPMultiSourceSelectorService {
2314
+ private readonly popupService;
2315
+ private readonly definitionService;
2316
+ /**
2317
+ * Open selector popup by provider name
2318
+ */
2319
+ openByProviderName(providerName: string, config: {
2320
+ multiple: boolean;
2321
+ selectedValues?: AXPMultiSourceValue;
2322
+ filters?: AXDataSourceFilterOption;
2323
+ title?: string;
2324
+ }): Promise<AXPMultiSourceSelectorResult | null>;
2325
+ /**
2326
+ * Open selector popup
2327
+ */
2328
+ open(config: AXPMultiSourceSelectorOpenConfig): Promise<AXPMultiSourceSelectorResult | null>;
2329
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMultiSourceSelectorService, never>;
2330
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMultiSourceSelectorService>;
2331
+ }
2332
+
2333
+ /**
2334
+ * Multi-source selector popup component
2335
+ */
2336
+ declare class AXPMultiSourceSelectorComponent extends AXBasePageComponent {
2337
+ private readonly entityDataSelectorService;
2338
+ private readonly entityResolver;
2339
+ private readonly translationService;
2340
+ protected config: _angular_core.WritableSignal<AXPMultiSourceSelectorOpenConfig>;
2341
+ protected definition: _angular_core.Signal<AXPMultiSourceDefinition>;
2342
+ protected activeTabKey: _angular_core.WritableSignal<string | null>;
2343
+ protected activeSource: _angular_core.Signal<AXPMultiSourceItem | null>;
2344
+ protected selectedItems: _angular_core.WritableSignal<AXPMultiSourceRef[]>;
2345
+ protected readonly AXPMultiSourceType: typeof AXPMultiSourceType;
2346
+ protected ngOnInit(): void;
2347
+ protected handleTabClick(source: AXPMultiSourceItem): void;
2348
+ protected handleSelectFromSource(source: AXPMultiSourceItem): Promise<void>;
2349
+ protected handleCancel(): void;
2350
+ protected handleConfirm(): void;
2351
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMultiSourceSelectorComponent, never>;
2352
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPMultiSourceSelectorComponent, "axp-multi-source-selector", never, {}, {}, never, never, true, never>;
2353
+ }
2354
+
2355
+ declare class AXPMultiSourceSelectorWidgetEditComponent extends AXPValueWidgetComponent<any> {
2356
+ protected readonly popupService: AXPopupService;
2357
+ protected readonly definitionService: AXPMultiSourceDefinitionProviderService;
2358
+ protected readonly selectorService: AXPMultiSourceSelectorService;
2359
+ protected tagBox: _angular_core.Signal<AXTagBoxComponent | undefined>;
2360
+ protected providerName: _angular_core.Signal<string>;
2361
+ protected disabled: _angular_core.Signal<boolean>;
2362
+ protected multiple: _angular_core.Signal<boolean>;
2363
+ protected allowClear: _angular_core.Signal<boolean>;
2364
+ protected placeholderText: _angular_core.Signal<string>;
2365
+ protected searchTerm: _angular_core.WritableSignal<string | null>;
2366
+ protected selectedItems: _angular_core.WritableSignal<AXPMultiSourceRef[]>;
2367
+ protected isLoading: _angular_core.WritableSignal<boolean>;
2368
+ protected isOpen: _angular_core.WritableSignal<boolean>;
2369
+ protected definition: _angular_core.WritableSignal<AXPMultiSourceDefinition | null>;
2370
+ private efProvider;
2371
+ private efValue;
2372
+ protected handleOnClick(e: AXClickEvent): void;
2373
+ protected handleValueChange(e: AXValueChangedEvent): void;
2374
+ protected handleSearchInputChange(e: AXValueChangedEvent): void;
2375
+ protected handleOnBlur(e: AXFocusEvent): void;
2376
+ protected handleKeyUp(e: AXHtmlEvent): Promise<void>;
2377
+ protected handleClearClick(): void;
2378
+ private findByValue;
2379
+ private normalizeToRef;
2380
+ private showSelector;
2381
+ private setItems;
2382
+ refresh(): void;
2383
+ clear(): void;
2384
+ private clearInput;
2385
+ protected getTagLabel(item: AXPMultiSourceRef): string;
2386
+ private singleOrMultiple;
2387
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMultiSourceSelectorWidgetEditComponent, never>;
2388
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPMultiSourceSelectorWidgetEditComponent, "axp-multi-source-selector-widget-edit", never, {}, {}, never, never, true, never>;
2389
+ }
2390
+
2391
+ declare class AXPMultiSourceSelectorWidgetViewComponent extends AXPValueWidgetComponent<any> {
2392
+ protected readonly formatService: AXFormatService;
2393
+ protected readonly definitionService: AXPMultiSourceDefinitionProviderService;
2394
+ protected providerName: _angular_core.Signal<string>;
2395
+ protected multiple: _angular_core.Signal<boolean>;
2396
+ protected badgeClass: _angular_core.Signal<string>;
2397
+ protected displayFormat: _angular_core.Signal<string | undefined>;
2398
+ protected loading: _angular_core.WritableSignal<boolean>;
2399
+ private definition;
2400
+ protected displayItems: _angular_core.WritableSignal<{
2401
+ id: string;
2402
+ text: string;
2403
+ }[]>;
2404
+ private efProvider;
2405
+ private efDisplay;
2406
+ private extractDisplayItem;
2407
+ private getDisplayText;
2408
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMultiSourceSelectorWidgetViewComponent, never>;
2409
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPMultiSourceSelectorWidgetViewComponent, "axp-multi-source-selector-widget-view", never, {}, {}, never, never, true, never>;
2410
+ }
2411
+
2412
+ declare class AXPMultiSourceSelectorWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
2413
+ private readonly formatService;
2414
+ private readonly definitionService;
2415
+ protected providerName: string;
2416
+ protected columnName: string;
2417
+ protected maxVisible: number;
2418
+ protected displayFormat: _angular_core.Signal<string | undefined>;
2419
+ private definition;
2420
+ constructor();
2421
+ protected displayItems: _angular_core.Signal<{
2422
+ id: string;
2423
+ text: string;
2424
+ }[]>;
2425
+ protected allItems: _angular_core.Signal<{
2426
+ id: string;
2427
+ text: string;
2428
+ }[]>;
2429
+ protected visibleItems: _angular_core.Signal<{
2430
+ id: string;
2431
+ text: string;
2432
+ }[]>;
2433
+ protected hasMoreItems: _angular_core.Signal<boolean>;
2434
+ protected remainingItemsCount: _angular_core.Signal<number>;
2435
+ private loadDefinition;
2436
+ private extractDisplayItem;
2437
+ private getDisplayText;
2438
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMultiSourceSelectorWidgetColumnComponent, never>;
2439
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPMultiSourceSelectorWidgetColumnComponent, "axp-multi-source-selector-widget-column", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; }, {}, never, never, true, never>;
2440
+ }
2441
+
2163
2442
  declare const AXPEntityCreateEvent: {
2164
2443
  (payload: {
2165
2444
  entity: string;
@@ -2290,5 +2569,5 @@ declare class AXPShowListViewAction extends AXPWorkflowAction {
2290
2569
  }
2291
2570
  declare const AXPShowListViewWorkflow: AXPWorkflow;
2292
2571
 
2293
- export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListTableService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPLookupFilterWidget, AXPLookupFilterWidgetEditComponent, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, DEFAULT_COLUMN_WIDTHS, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, EntityBuilder, EntityDataAccessor, actionExists, cloneLayoutArrays, columnWidthMiddlewareFactory, columnWidthMiddlewareProvider, createColumnWidthMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, isAXPMiddlewareAbortError, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider };
2294
- export type { AXPAuditEvent, AXPAuditInfo, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListItemDto, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOp, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupWidgetLookType, AXPLookupWidgetOptions, AXPOpenEntityDetailsCommandInput, AXPRecordOwnershipInfo, AXPRecordStateInfo, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, ColumnWidthConfig, SectionOrderConfig };
2572
+ export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListTableService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPLookupFilterWidget, AXPLookupFilterWidgetEditComponent, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, EntityBuilder, EntityDataAccessor, actionExists, cloneLayoutArrays, columnWidthMiddleware, columnWidthMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, isAXPMiddlewareAbortError, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider };
2573
+ export type { AXPAuditEvent, AXPAuditInfo, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListItemDto, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupWidgetLookType, AXPLookupWidgetOptions, AXPMultiSourceDefinition, AXPMultiSourceDefinitionProvider, AXPMultiSourceItem, AXPMultiSourceRef, AXPMultiSourceSearchResult, AXPMultiSourceSearchResultItem, AXPMultiSourceSelectorOpenConfig, AXPMultiSourceSelectorResult, AXPMultiSourceSelectorWidgetOptions, AXPMultiSourceValue, AXPOpenEntityDetailsCommandInput, AXPRecordOwnershipInfo, AXPRecordStateInfo, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, SectionOrderConfig };