@acorex-platform/framework-client 0.0.30 → 0.0.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 (58) hide show
  1. package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-CLm2BVk-.mjs → acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs} +23 -2
  2. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-framework-client-common.mjs +673 -110
  4. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-framework-client-core.mjs +76 -7
  6. package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +3 -6
  8. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +505 -111
  10. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  11. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CJemNxCu.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D1prdDvf.mjs} +3404 -2157
  12. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-D1prdDvf.mjs.map +1 -0
  13. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DQXGk8nF.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-CeVGNzup.mjs} +2 -2
  14. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-DQXGk8nF.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-CeVGNzup.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-DSLUUXfQ.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-CFScb-L4.mjs} +43 -15
  16. package/fesm2022/acorex-platform-framework-client-layout-entity-bulk-entity.command-CFScb-L4.mjs.map +1 -0
  17. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-p0hxDb0W.mjs → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3__csKW.mjs} +3 -3
  18. package/fesm2022/{acorex-platform-framework-client-layout-entity-file-list-popup.component-p0hxDb0W.mjs.map → acorex-platform-framework-client-layout-entity-file-list-popup.component-B3__csKW.mjs.map} +1 -1
  19. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-uf51NO5m.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-B17l6mbm.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-uf51NO5m.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-B17l6mbm.mjs.map} +1 -1
  21. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
  22. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +37 -6
  23. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  24. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +148 -130
  25. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  26. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-3CO4xJB3.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs} +3 -3
  27. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-3CO4xJB3.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs.map} +1 -1
  28. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1214 -860
  29. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
  30. package/fesm2022/acorex-platform-framework-client-realtime.mjs +70 -5
  31. package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-framework-client-runtime.mjs +121 -6
  33. package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
  34. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-C2Abf7Lb.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-DCpl6AXq.mjs} +51 -12
  35. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-DCpl6AXq.mjs.map +1 -0
  36. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +770 -679
  37. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  38. package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs → acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs} +76 -1
  39. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs.map +1 -0
  40. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +345 -54
  41. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
  42. package/package.json +7 -7
  43. package/types/acorex-platform-framework-client-common.d.ts +137 -9
  44. package/types/acorex-platform-framework-client-core.d.ts +4 -1
  45. package/types/acorex-platform-framework-client-layout-components.d.ts +141 -22
  46. package/types/acorex-platform-framework-client-layout-entity.d.ts +532 -255
  47. package/types/acorex-platform-framework-client-layout-views.d.ts +48 -0
  48. package/types/acorex-platform-framework-client-layout-widget-core.d.ts +2 -2
  49. package/types/acorex-platform-framework-client-layout-widgets.d.ts +143 -92
  50. package/types/acorex-platform-framework-client-realtime.d.ts +39 -2
  51. package/types/acorex-platform-framework-client-runtime.d.ts +56 -5
  52. package/types/acorex-platform-framework-client-themes-default.d.ts +144 -14
  53. package/types/acorex-platform-framework-client-themes-shared.d.ts +36 -3
  54. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CLm2BVk-.mjs.map +0 -1
  55. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CJemNxCu.mjs.map +0 -1
  56. package/fesm2022/acorex-platform-framework-client-layout-entity-bulk-entity.command-DSLUUXfQ.mjs.map +0 -1
  57. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-C2Abf7Lb.mjs.map +0 -1
  58. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-D2XPkc71.mjs.map +0 -1
@@ -1,19 +1,21 @@
1
1
  import * as _acorex_platform_framework_shared_entity from '@acorex-platform/framework-shared/entity';
2
- import { AXPRelatedEntity, AXPEntityPage, AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPCardField, AXPEntityPropertyLayoutConfig, AXPEntitySectionView, AXPEntityPropertyCreateView, AXPQueryView, AXPEntityMasterListLayoutType, AXPEntityMasterListDisplayMode, AXPEntityMasterListLayoutOption, AXPEntityListFilterDefinition, AXPEntityListSortableField, AXPEntityPropertyView, AXPEntityUpdateDto, AXPEntityCreateDto, AXPEntityQueryAllOptions, AXPEntityQueryAllResult, AXPEntityAggregateRequest, AXPEntityAggregateOptions, AXPEntityAggregateResult, AXPEntityDetailDto, AXPEntityListItemDto, AXPEntityModel, AXPEntityCategoryPlugin, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterListView, AXPEntityDetailListView, AXPLookupDisplayOptions, AXPEntitySelectorColumnInput, AXPLookupWidgetLookType, AXPLookupSelectorRowActionsConfig, AXPQueryFilter, AXPLookupColumnResolveOptions, AXPLookupColumnResolveStrategy } from '@acorex-platform/framework-shared/entity';
2
+ import { AXPEntityProperty, AXPCardField, AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityTableColumn, AXPEntityCardLayout, AXPCardBadgeColor, AXPRelatedEntity, AXPEntityPage, AXPEntityMasterListLayoutType, AXPEntityMasterListLayoutOption, AXPEntityMasterListDisplayMode, AXPEntityPropertyLayoutConfig, AXPEntitySectionView, AXPEntityPropertyCreateView, AXPQueryView, AXPEntityListFilterDefinition, AXPEntityListSortableField, AXPEntityPropertyView, AXPEntityUpdateDto, AXPEntityCreateDto, AXPEntityQueryAllOptions, AXPEntityQueryAllResult, AXPEntityAggregateRequest, AXPEntityAggregateOptions, AXPEntityAggregateResult, AXPEntityDetailDto, AXPEntityListItemDto, AXPEntityModel, AXPEntityCategoryPlugin, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterListView, AXPEntityDetailListView, AXPLocalEntityCatalog, AXPLookupDisplayOptions, AXPEntitySelectorColumnInput, AXPLookupWidgetLookType, AXPLookupColumnResolveOptions, AXPLookupColumnResolveStrategy } from '@acorex-platform/framework-shared/entity';
3
3
  export * from '@acorex-platform/framework-shared/entity';
4
4
  export { collectNestedCreateHiddenProperties, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, mergeForeignKeyFieldIntoCreateActions } from '@acorex-platform/framework-shared/entity';
5
5
  import { AXPCommand, AXPEntityActionCommandInput, AXPCommandExecuteResultPromise, AXPQuery, AXPQueryFetchResultPromise, AXPBulkCommandResultData } from '@acorex-platform/framework-shared/runtime';
6
6
  import * as _angular_core from '@angular/core';
7
- import { OnInit, OnDestroy, ElementRef, InjectionToken, Injector, EnvironmentInjector, Type, EnvironmentProviders, ChangeDetectorRef, Provider } from '@angular/core';
7
+ import { OnInit, OnDestroy, ElementRef, InjectionToken, WritableSignal, Injector, EnvironmentInjector, Type, EnvironmentProviders, ChangeDetectorRef, TemplateRef, Provider } from '@angular/core';
8
8
  import * as _acorex_platform_framework_shared_core from '@acorex-platform/framework-shared/core';
9
- import { AXPFileListItem, AXPMultiLanguageString, AXPMetaData, AXPWidgetNode, AXPGridLayoutOptions, AXPExpression, AXPFilterQuery, AXPBreadcrumbItem, AXPExecuteCommand, AXPQueryRequest, AXPPagedListResult, AXPEntityOp, AXPMiddlewareErrorResponse, AXPCategoryEntity, AXPFilterDefinition, AXPRuntimeCommandResult, AXPColumnQuery, AXPSortDefinition, AXPActionMenuItem, AXPContextData, AXPContextChangeEvent } from '@acorex-platform/framework-shared/core';
9
+ import { AXPFileListItem, AXPMultiLanguageString, AXPMetaData, AXPExpressionEvaluatorScope, AXPGridLayoutOptions, AXPWidgetNode, AXPFilterQuery, AXPBreadcrumbItem, AXPExecuteCommand, AXPExpression, AXPQueryRequest, AXPPagedListResult, AXPEntityOp, AXPMiddlewareErrorResponse, AXPCategoryEntity, AXPFilterDefinition, AXPRuntimeCommandResult, AXPColumnQuery, AXPSortDefinition, AXPActionMenuItem, AXPContextData, AXPContextChangeEvent } from '@acorex-platform/framework-shared/core';
10
10
  import { AXPWidgetConfig, AXPWidgetColumnNode } from '@acorex-platform/framework-shared/widget-core';
11
+ import { AXClickEvent, AXStyleColorType, AXValueChangedEvent, AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption, AXFocusEvent, AXHtmlEvent, NXValueComponent, AXItemSelectedEvent } from '@acorex/cdk/common';
12
+ import { AXPContextEvalFactory, AXPExpressionEvaluatorService, AXPHookService, AXHighlightService, AXPEntityBroadcastService, AXPDeviceService, AXPContextStore } from '@acorex-platform/framework-client/core';
13
+ import * as _acorex_core_translation from '@acorex/core/translation';
14
+ import { AXTranslationService } from '@acorex/core/translation';
11
15
  import * as _acorex_platform_framework_client_layout_components from '@acorex-platform/framework-client/layout/components';
12
16
  import { AXPFileChooserContext, AXPPreloadFiltersApplyEvent, AXPColumnItemListItem, AXPDataSelectorRowActionsHandler, AXPCategoryTreeDataSource, AXPDataSelectorAllowCreate, AXPDataSelectorFooterPrefixAction } from '@acorex-platform/framework-client/layout/components';
13
17
  import { AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';
14
18
  export { AXPEntityDefinitionCrudService, AXP_ENTITY_DEFINITION_CRUD_SERVICE } from '@acorex-platform/framework-client/domain';
15
- import { AXClickEvent, AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption, AXValueChangedEvent, AXFocusEvent, AXHtmlEvent } from '@acorex/cdk/common';
16
- import { AXPHookService, AXHighlightService, AXPEntityBroadcastService, AXPDeviceService, AXPExpressionEvaluatorService, AXPContextEvalFactory, AXPContextStore } from '@acorex-platform/framework-client/core';
17
19
  import * as i4 from '@acorex-platform/framework-client/layout/widget-core';
18
20
  import { AXPColumnWidgetComponent, AXPValueWidgetComponent, AXPWidgetCoreElementAPI, AXPWidgetCoreService, AXPWidgetRendererDirective } from '@acorex-platform/framework-client/layout/widget-core';
19
21
  import { ParamMap, ResolveFn, RedirectCommand } from '@angular/router';
@@ -25,7 +27,7 @@ import { AXPSessionService } from '@acorex-platform/framework-client/auth';
25
27
  import { AXPQueryExecutor, AXPCommandService, AXPCommandMiddleware, AXPQueryMiddleware } from '@acorex-platform/framework-client/runtime';
26
28
  import { AXCFileUploaderCapabilities, AXPFileStorageService, AXPLocalEntityPolicy, AXPLocalEntityRelatedOption, AXPLocalEntityEngine } from '@acorex-platform/framework-client/common';
27
29
  export { commandMessageTextForError } from '@acorex-platform/framework-client/common';
28
- import { AXTreeViewNode, AXTreeViewComponent, AXTreeViewNodeSelectEvent } from '@acorex/components/tree-view';
30
+ import { AXTreeViewNode, AXTreeViewComponent, AXTreeViewNodeSelectEvent, AXTreeViewDataSource } from '@acorex/components/tree-view';
29
31
  import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
30
32
  import { AXBasePageComponent } from '@acorex/components/page';
31
33
  import { AXFormatService } from '@acorex/core/format';
@@ -33,8 +35,7 @@ import { AXTagBoxComponent } from '@acorex/components/tag-box';
33
35
  import { AXPProviderSelectWidgetEditBase, AXPDataListWidgetComponentOptions } from '@acorex-platform/framework-client/layout/widgets';
34
36
  import * as _acorex_platform_framework_client_layout_entity from '@acorex-platform/framework-client/layout/entity';
35
37
  import { AXPopoverComponent } from '@acorex/components/popover';
36
- import * as _acorex_core_translation from '@acorex/core/translation';
37
- import { AXTranslationService } from '@acorex/core/translation';
38
+ import { AXLookupItem, AXLookupComponent, AXLookupMode, AXLookupSelectionChangedEvent } from '@acorex/components/lookup';
38
39
 
39
40
  declare class AXPCreateEntityCommand implements AXPCommand<any, any> {
40
41
  private entityForm;
@@ -815,74 +816,267 @@ declare class AXPOpenEntityDetailsCommand implements AXPCommand<AXPOpenEntityDet
815
816
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPOpenEntityDetailsCommand>;
816
817
  }
817
818
 
818
- declare class AXPEntityDetailPopoverComponent {
819
- private readonly commandService;
820
- private readonly queryService;
821
- private readonly formatService;
819
+ declare class AXPEntityCommandTriggerViewModel {
820
+ priority: 'primary' | 'secondary' | 'none';
821
+ order: number;
822
+ color: AXStyleColorType;
823
+ icon: string;
824
+ title: string;
825
+ name: string;
826
+ key?: string;
827
+ separated: boolean;
828
+ scope: AXPEntityCommandScope;
829
+ disabled: boolean | string;
830
+ hidden: boolean | string;
831
+ options: any;
832
+ metadata?: AXPMetaData;
833
+ default?: boolean;
834
+ shortcuts?: string[];
835
+ items?: AXPEntityCommandTriggerViewModel[];
836
+ isChild?: boolean;
837
+ constructor(entity: AXPEntity, action: AXPEntityAction, isChild?: boolean);
838
+ /** Stable trigger id for command lookup and list tracking when {@link AXPEntityAction.name} is omitted. */
839
+ private static buildTriggerName;
840
+ }
841
+ declare class AXPEntityListViewColumnViewModel {
842
+ readonly property: AXPEntityProperty;
843
+ readonly column: AXPEntityTableColumn;
844
+ constructor(property: AXPEntityProperty, column: AXPEntityTableColumn);
845
+ name: string;
846
+ title: string;
847
+ visible: string | boolean;
848
+ sortEnabled: boolean | undefined;
849
+ width: string | undefined;
850
+ node: _angular_core.Signal<AXPWidgetColumnNode>;
851
+ }
852
+ declare class AXPEntityListViewCardFieldViewModel {
853
+ readonly property: AXPEntityProperty;
854
+ readonly field: AXPCardField;
855
+ constructor(property: AXPEntityProperty, field: AXPCardField);
856
+ name: string;
857
+ title: string;
858
+ visible: string | boolean;
859
+ layout: _acorex_platform_framework_shared_entity.AXPEntityPropertyLayoutConfig | undefined;
860
+ display: string;
861
+ isBadgeDisplay: boolean;
862
+ isMetaDisplay: boolean;
863
+ isSimpleDisplay: boolean;
864
+ isMoreDisplay: boolean;
865
+ badgeColor: string | undefined;
866
+ isStatusWidget: boolean;
867
+ node: _angular_core.Signal<AXPWidgetColumnNode>;
868
+ /** Readonly column node for status fields shown as header badges. */
869
+ headerBadgeNode: _angular_core.Signal<AXPWidgetColumnNode>;
870
+ }
871
+
872
+ declare class AXPEntityCardFieldsResolver {
873
+ private readonly widgetResolver;
874
+ private readonly entityDefinitionRegistry;
875
+ resolve(entity: AXPEntity, layout?: AXPEntityCardLayout): AXPEntityListViewCardFieldViewModel[];
876
+ private resolveCardField;
877
+ private mergeDisplayFieldWithColumn;
878
+ private resolveDisplayFieldProperty;
879
+ private buildVirtualDisplayProperty;
880
+ private resolveMergeDetailProperty;
881
+ private normalizeRelatedColumnNames;
882
+ private findRelatedEntityForField;
883
+ private getRegisteredEntity;
884
+ private resolveRelatedEntityProperty;
885
+ private resolveRelatedEntityColumnDataPath;
886
+ private deriveDataPathFromLookupProperty;
887
+ private resolveParentDataPathForRelatedField;
888
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCardFieldsResolver, never>;
889
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityCardFieldsResolver>;
890
+ }
891
+
892
+ declare function createEntityCardDisplayScope(contextEvalFactory: AXPContextEvalFactory, data: unknown): AXPExpressionEvaluatorScope;
893
+ declare function createEntityCardLogicScope(data: unknown): AXPExpressionEvaluatorScope;
894
+ declare function normalizeEntityCardHeaderDisplayValue(value: unknown, translation: AXTranslationService): AXPMultiLanguageString;
895
+ declare function resolveEntityCardHeaderValue(value: string | undefined, rowData: unknown, expressionEvaluator: AXPExpressionEvaluatorService, contextEvalFactory: AXPContextEvalFactory, translation: AXTranslationService): Promise<AXPMultiLanguageString>;
896
+ declare function resolveEntityCardBadgeColorValue(color: AXPCardBadgeColor | undefined, rowData: unknown, expressionEvaluator: AXPExpressionEvaluatorService): Promise<AXStyleColorType>;
897
+
898
+ declare class AXPEntityCardSkeletonComponent {
899
+ fieldCount: _angular_core.InputSignal<number>;
900
+ badgeCount: _angular_core.InputSignal<number>;
901
+ showFooter: _angular_core.InputSignal<boolean>;
902
+ showHeaderMenu: _angular_core.InputSignal<boolean>;
903
+ showContent: _angular_core.InputSignal<boolean>;
904
+ rowLayout: _angular_core.InputSignal<boolean>;
905
+ showAvatar: _angular_core.InputSignal<boolean>;
906
+ fillHost: _angular_core.InputSignal<boolean>;
907
+ embedded: _angular_core.InputSignal<boolean>;
908
+ elevated: _angular_core.InputSignal<boolean>;
909
+ protected fieldPlaceholders: _angular_core.Signal<number[]>;
910
+ protected badgePlaceholders: _angular_core.Signal<number[]>;
911
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCardSkeletonComponent, never>;
912
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCardSkeletonComponent, "axp-entity-card-skeleton", never, { "fieldCount": { "alias": "fieldCount"; "required": false; "isSignal": true; }; "badgeCount": { "alias": "badgeCount"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "showHeaderMenu": { "alias": "showHeaderMenu"; "required": false; "isSignal": true; }; "showContent": { "alias": "showContent"; "required": false; "isSignal": true; }; "rowLayout": { "alias": "rowLayout"; "required": false; "isSignal": true; }; "showAvatar": { "alias": "showAvatar"; "required": false; "isSignal": true; }; "fillHost": { "alias": "fillHost"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "elevated": { "alias": "elevated"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
913
+ }
914
+
915
+ /** How the entity card is framed in the host. */
916
+ type AXPEntityCardVariant = 'card' | 'row' | 'compact';
917
+ /** Overflow / secondary action shown in the card header menu. */
918
+ interface AXPEntityCardSecondaryActionItem {
919
+ name: string;
920
+ title: string;
921
+ icon?: string;
922
+ color?: AXStyleColorType | string;
923
+ disabled?: boolean | string;
924
+ divided?: boolean;
925
+ isCardSelect?: boolean;
926
+ }
927
+ /** Built-in card action that toggles multi-select on list hosts. */
928
+ declare const AXPEntityCardSelectActionName = "axp-entity-card:select";
929
+
930
+ declare class AXPEntityCardComponent {
822
931
  private readonly translation;
932
+ private readonly fileStorage;
933
+ private readonly widgetRegistry;
934
+ private readonly entityRegistry;
823
935
  private readonly expressionEvaluator;
824
936
  private readonly contextEvalFactory;
825
- private readonly changeDetectorRef;
937
+ entity: _angular_core.InputSignal<AXPEntity>;
938
+ layout: _angular_core.InputSignal<AXPEntityCardLayout | undefined>;
939
+ row: _angular_core.InputSignal<Record<string, unknown>>;
940
+ fields: _angular_core.InputSignal<AXPEntityListViewCardFieldViewModel[]>;
941
+ variant: _angular_core.InputSignal<AXPEntityCardVariant>;
942
+ interactive: _angular_core.InputSignal<boolean>;
943
+ embedded: _angular_core.InputSignal<boolean>;
944
+ /** Stronger chrome when the card floats over other cards (entity detail popover). */
945
+ elevated: _angular_core.InputSignal<boolean>;
946
+ /**
947
+ * When true, lookup / category column widgets do not open a nested entity popover.
948
+ * Uses the existing lookup `popover.enabled` and category `disableDetailPopover` options.
949
+ */
950
+ disableLookupPopover: _angular_core.InputSignal<boolean>;
951
+ fillHost: _angular_core.InputSignal<boolean>;
952
+ /** When bound by a list, More/Less can be synced across a visual row. */
953
+ extraExpanded: _angular_core.ModelSignal<boolean>;
954
+ selected: _angular_core.InputSignal<boolean>;
955
+ showNewBadge: _angular_core.InputSignal<boolean>;
956
+ showSelection: _angular_core.InputSignal<boolean>;
957
+ /** Header dismiss control for floating hosts such as the lookup detail popover. */
958
+ showClose: _angular_core.InputSignal<boolean>;
959
+ primaryActions: _angular_core.InputSignal<AXPEntityCommandTriggerViewModel[]>;
960
+ primaryActionLook: _angular_core.InputSignal<"solid" | "outline" | "blank">;
961
+ secondaryActionLoader: _angular_core.InputSignal<((row: Record<string, unknown>) => Promise<AXPEntityCardSecondaryActionItem[]>) | undefined>;
962
+ selectionChange: _angular_core.OutputEmitterRef<boolean>;
963
+ commandClick: _angular_core.OutputEmitterRef<string>;
964
+ closeClick: _angular_core.OutputEmitterRef<void>;
965
+ protected badgeColorByField: _angular_core.WritableSignal<Record<string, AXStyleColorType>>;
966
+ protected titleText: _angular_core.WritableSignal<AXPMultiLanguageString>;
967
+ protected descriptionText: _angular_core.WritableSignal<AXPMultiLanguageString>;
968
+ protected iconClass: _angular_core.WritableSignal<string | null>;
969
+ protected avatarSrc: _angular_core.WritableSignal<string>;
970
+ protected secondaryActions: _angular_core.WritableSignal<AXPEntityCardSecondaryActionItem[]>;
971
+ protected recordStylingClass: _angular_core.WritableSignal<string | undefined>;
972
+ protected fieldStylingClassByName: _angular_core.WritableSignal<Record<string, string>>;
973
+ protected header: _angular_core.Signal<_acorex_platform_framework_shared_entity.AXPEntityCardHeader | undefined>;
974
+ protected isRowLayout: _angular_core.Signal<boolean>;
975
+ protected avatarPath: _angular_core.Signal<string | undefined>;
976
+ protected identityKind: _angular_core.Signal<_acorex_platform_framework_shared_entity.AXPEntityCardIdentityKind>;
977
+ protected showUserAvatar: _angular_core.Signal<boolean>;
978
+ protected showIdentityImage: _angular_core.Signal<boolean>;
979
+ protected identityQrField: _angular_core.Signal<AXPEntityListViewCardFieldViewModel | undefined>;
980
+ protected avatarSize: _angular_core.Signal<40 | 48>;
981
+ protected userAvatarId: _angular_core.Signal<string>;
982
+ protected headerBadgeFields: _angular_core.Signal<AXPEntityListViewCardFieldViewModel[]>;
983
+ protected headerTitleColumnName: _angular_core.Signal<string | undefined>;
984
+ protected allFactFields: _angular_core.Signal<AXPEntityListViewCardFieldViewModel[]>;
985
+ protected headerMetaFields: _angular_core.Signal<AXPEntityListViewCardFieldViewModel[]>;
986
+ protected factPartition: _angular_core.Signal<{
987
+ preview: AXPEntityListViewCardFieldViewModel[];
988
+ extra: AXPEntityListViewCardFieldViewModel[];
989
+ }>;
990
+ protected previewFields: _angular_core.Signal<AXPEntityListViewCardFieldViewModel[]>;
991
+ protected extraFields: _angular_core.Signal<AXPEntityListViewCardFieldViewModel[]>;
992
+ protected canShowMore: _angular_core.Signal<boolean>;
993
+ protected hasLabeledBody: _angular_core.Signal<boolean>;
994
+ protected hasCardBody: _angular_core.Signal<boolean>;
995
+ protected hasCardFooter: _angular_core.Signal<boolean>;
996
+ protected showInlineMore: _angular_core.Signal<boolean>;
997
+ protected showFooterMore: _angular_core.Signal<boolean>;
998
+ protected hasIdentityActions: _angular_core.Signal<boolean>;
999
+ /** Stable column nodes. Template must not allocate new node objects each CD (crashes widget-column-cell). */
1000
+ protected readonly columnNodes: _angular_core.Signal<Record<string, {
1001
+ node: AXPWidgetColumnNode;
1002
+ headerBadgeNode: AXPWidgetColumnNode;
1003
+ }>>;
1004
+ constructor();
1005
+ protected onCardClick(event: MouseEvent): void;
1006
+ protected onCardDblClick(event: MouseEvent): void;
1007
+ protected onCardKeydown(event: KeyboardEvent): void;
1008
+ protected onPrimaryActionClick(actionName: string, event: AXClickEvent): void;
1009
+ protected onSecondaryActionClick(item: AXPEntityCardSecondaryActionItem, event: AXClickEvent): void;
1010
+ protected onSelectionCheckboxChange(event: AXValueChangedEvent<boolean>): void;
1011
+ protected onSelectionCheckboxClick(event: MouseEvent): void;
1012
+ protected stopClickPropagation(event: AXClickEvent): void;
1013
+ protected onCloseClick(event: AXClickEvent): void;
1014
+ protected onToggleExtra(event: MouseEvent): void;
1015
+ protected fieldStylingClass(name: string): string | undefined;
1016
+ protected isStatusBadgeField(field: AXPEntityListViewCardFieldViewModel): boolean;
1017
+ protected resolveBadgeText(field: AXPEntityListViewCardFieldViewModel): string;
1018
+ protected resolveBadgeColor(field: AXPEntityListViewCardFieldViewModel): AXStyleColorType;
1019
+ protected isUnlabeledHeaderField(field: AXPEntityListViewCardFieldViewModel): boolean;
1020
+ protected resolveFieldIcon(field: AXPEntityListViewCardFieldViewModel): string | undefined;
1021
+ protected fieldColumnNode(field: AXPEntityListViewCardFieldViewModel): AXPWidgetColumnNode;
1022
+ protected fieldHeaderBadgeNode(field: AXPEntityListViewCardFieldViewModel): AXPWidgetColumnNode;
1023
+ protected isQrIdentityField(field: AXPEntityListViewCardFieldViewModel): boolean;
1024
+ protected hasMetaValue(field: AXPEntityListViewCardFieldViewModel): boolean;
1025
+ protected toDisplayName(value: AXPMultiLanguageString): string;
1026
+ private resolveStylingClasses;
1027
+ private withLookupPopoverDisabled;
1028
+ private partitionFactFields;
1029
+ private resolveContactTypeIcon;
1030
+ private hasRowValue;
1031
+ private loadSecondaryActions;
1032
+ private resolveBadgeColors;
1033
+ private resolveHeaderFields;
1034
+ private resolveIdentityQrField;
1035
+ private resolveAvatarPath;
1036
+ private resolveAvatarSrc;
1037
+ private toIconString;
1038
+ private toIconClass;
1039
+ private runDefaultAction;
1040
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCardComponent, never>;
1041
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCardComponent, "axp-entity-card", never, { "entity": { "alias": "entity"; "required": true; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "row": { "alias": "row"; "required": true; "isSignal": true; }; "fields": { "alias": "fields"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "elevated": { "alias": "elevated"; "required": false; "isSignal": true; }; "disableLookupPopover": { "alias": "disableLookupPopover"; "required": false; "isSignal": true; }; "fillHost": { "alias": "fillHost"; "required": false; "isSignal": true; }; "extraExpanded": { "alias": "extraExpanded"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "showNewBadge": { "alias": "showNewBadge"; "required": false; "isSignal": true; }; "showSelection": { "alias": "showSelection"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "primaryActions": { "alias": "primaryActions"; "required": false; "isSignal": true; }; "primaryActionLook": { "alias": "primaryActionLook"; "required": false; "isSignal": true; }; "secondaryActionLoader": { "alias": "secondaryActionLoader"; "required": false; "isSignal": true; }; }, { "extraExpanded": "extraExpandedChange"; "selectionChange": "selectionChange"; "commandClick": "commandClick"; "closeClick": "closeClick"; }, never, never, true, never>;
1042
+ }
1043
+
1044
+ declare class AXPEntityDetailPopoverComponent {
1045
+ private readonly commandService;
1046
+ private readonly queryService;
1047
+ private readonly cardFieldsResolver;
826
1048
  entity: _angular_core.InputSignal<string>;
827
1049
  entityId: _angular_core.InputSignal<string | number>;
828
- textField: _angular_core.InputSignal<string>;
829
- valueField: _angular_core.InputSignal<string>;
830
- displayTitle: _angular_core.InputSignal<string>;
831
- item: _angular_core.InputSignal<AXPMetaData | undefined>;
832
- breadcrumb: _angular_core.InputSignal<string | null>;
833
1050
  requestClose: _angular_core.InputSignal<(() => void) | undefined>;
834
- protected entityDetails: _angular_core.WritableSignal<any>;
1051
+ breadcrumb: _angular_core.InputSignal<string | null>;
1052
+ protected entityDefinition: _angular_core.WritableSignal<AXPEntity | null>;
1053
+ protected entityData: _angular_core.WritableSignal<Record<string, unknown> | null>;
835
1054
  protected isLoadingDetails: _angular_core.WritableSignal<boolean>;
836
- private headerTitleVersion;
837
- /** Placeholder rows for the loading skeleton (matches typical property count). */
838
- protected readonly loadingSkeletonRows: readonly [1, 2, 3, 4, 5];
839
- protected readonly headerTitle: _angular_core.WritableSignal<string>;
840
- constructor();
841
- /**
842
- * Stable list of property widgets for the template. Must be a signal (computed), not a method:
843
- * calling a method from the template rebuilds nodes every CD cycle and can make the widget renderer loop.
844
- */
845
- protected readonly entityPropertiesWithWidgets: _angular_core.Signal<{
846
- name: string;
847
- title: string;
848
- node: AXPWidgetNode;
849
- }[]>;
850
- /** Loads entity details after the overlay panel is created. */
1055
+ protected readonly cardLayout: _angular_core.Signal<AXPEntityCardLayout | undefined>;
1056
+ protected readonly cardFields: _angular_core.Signal<AXPEntityListViewCardFieldViewModel[]>;
1057
+ protected readonly showSkeletonAvatar: _angular_core.Signal<boolean>;
1058
+ protected readonly skeletonFieldCount: _angular_core.Signal<number>;
1059
+ protected readonly skeletonBadgeCount: _angular_core.Signal<number>;
1060
+ protected readonly canClose: _angular_core.Signal<boolean>;
1061
+ /** Same footer slot the master-list card uses for primary row actions. */
1062
+ protected readonly openDetailsActions: _angular_core.Signal<AXPEntityCommandTriggerViewModel[]>;
1063
+ protected onCardCommandClick(actionName: string): void;
1064
+ protected onClose(): void;
851
1065
  loadDetails(): Promise<void>;
852
1066
  protected navigateToDetails(): Promise<void>;
853
- private resolveHeaderTitle;
854
- private resolveLookupDisplayLabelAsync;
855
- /**
856
- * Returns true if a value is meaningful for display (non-empty/non-null).
857
- */
858
- private hasMeaningfulValue;
859
- /**
860
- * Calculates an importance score for a property based on its widget type,
861
- * whether it currently has a meaningful value, and metadata like title.
862
- */
863
- private getPropertyImportanceScore;
864
- /**
865
- * Calculates a name-based importance score to prioritize common key fields
866
- * like title, description, status, and important dates.
867
- * Name priority MUST come before widget-type priority.
868
- */
869
- private getNameImportanceScore;
870
- private buildEntityPropertiesWithWidgets;
871
- /**
872
- * Resolves the data path for a property. For lookups with expose, returns the expanded path
873
- * when data has it (e.g. personTitle). Otherwise returns property name (e.g. personTitleId).
874
- */
875
- private resolveDataPath;
876
1067
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDetailPopoverComponent, never>;
877
- 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; }; "displayTitle": { "alias": "displayTitle"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; "isSignal": true; }; "requestClose": { "alias": "requestClose"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1068
+ 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; }; "requestClose": { "alias": "requestClose"; "required": false; "isSignal": true; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
878
1069
  }
879
1070
 
880
1071
  interface AXPEntityDetailPopoverOptions {
881
1072
  entity: string;
882
1073
  id: string | number;
883
1074
  item: AXPMetaData;
1075
+ /** @deprecated Unused; the shared entity card resolves the title from the card layout. */
884
1076
  textField?: string;
1077
+ /** @deprecated Unused; the shared entity card uses the loaded row id. */
885
1078
  valueField?: string;
1079
+ /** @deprecated Unused; the shared entity card resolves the title from the card layout. */
886
1080
  displayTitle?: string;
887
1081
  breadcrumb?: string;
888
1082
  }
@@ -906,6 +1100,8 @@ declare class AXPEntityDetailPopoverService {
906
1100
  hide(): void;
907
1101
  /** Whether a popover is currently active */
908
1102
  get isActive(): boolean;
1103
+ /** Overlay pane keeps its own border/shadow; strip it so only the entity card has chrome. */
1104
+ private clearOverlayChrome;
909
1105
  private resolveAnchorElement;
910
1106
  /** Mirror popover placement for RTL so the panel aligns with the anchor's inline-start edge. */
911
1107
  private resolveOverlayPlacement;
@@ -996,55 +1192,57 @@ declare class AXPDataSeederService {
996
1192
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDataSeederService>;
997
1193
  }
998
1194
 
999
- declare class AXPEntityCommandTriggerViewModel {
1000
- priority: 'primary' | 'secondary' | 'none';
1001
- order: number;
1002
- color: AXStyleColorType;
1003
- icon: string;
1004
- title: string;
1005
- name: string;
1006
- key?: string;
1007
- separated: boolean;
1008
- scope: AXPEntityCommandScope;
1009
- disabled: boolean | string;
1010
- hidden: boolean | string;
1011
- options: any;
1012
- metadata?: AXPMetaData;
1013
- default?: boolean;
1014
- shortcuts?: string[];
1015
- items?: AXPEntityCommandTriggerViewModel[];
1016
- isChild?: boolean;
1017
- constructor(entity: AXPEntity, action: AXPEntityAction, isChild?: boolean);
1018
- /** Stable trigger id for command lookup and list tracking when {@link AXPEntityAction.name} is omitted. */
1019
- private static buildTriggerName;
1195
+ interface AXPEntityListPagingState {
1196
+ take: number;
1197
+ skip: number;
1020
1198
  }
1021
- declare class AXPEntityListViewColumnViewModel {
1022
- readonly property: AXPEntityProperty;
1023
- readonly column: AXPEntityTableColumn;
1024
- constructor(property: AXPEntityProperty, column: AXPEntityTableColumn);
1025
- name: string;
1026
- title: string;
1027
- visible: string | boolean;
1028
- sortEnabled: boolean | undefined;
1029
- width: string | undefined;
1030
- node: _angular_core.Signal<AXPWidgetColumnNode>;
1199
+ /** Default take used when loading hierarchical children via data-table expand. */
1200
+ declare const TREE_CHILDREN_QUERY_TAKE = 1000;
1201
+ /**
1202
+ * AXDataSource.getItemsByFilter reuses the current grid page skip/take.
1203
+ * When data-table expands a hierarchical row it sends a direct parentKey=equal filter;
1204
+ * reset paging so children are not clipped by the parent grid page.
1205
+ */
1206
+ declare function resetPagingForTreeChildrenLoad(request: {
1207
+ skip?: number;
1208
+ take?: number;
1209
+ filter?: AXDataSourceFilterOption | null;
1210
+ }, parentKey: string | undefined | null, take?: number): void;
1211
+ /**
1212
+ * Returns true when the filter tree already constrains `parentKey`
1213
+ * (root `isEmpty`, children `equal`, or nested equivalents).
1214
+ */
1215
+ declare function filterTouchesParentKey(filter: AXDataSourceFilterOption, parentKey: string): boolean;
1216
+ /**
1217
+ * Ensures hierarchical root loads keep `parentKey isEmpty` while preserving custom filters.
1218
+ * Call this in lookup/list loaders before query so storage does not replace custom filters.
1219
+ * Skips when the request already targets `parentKey` (e.g. children expand).
1220
+ */
1221
+ declare function ensureHierarchicalRootFilter(filter: AXDataSourceFilterOption | null | undefined, parentKey: string | undefined | null): AXDataSourceFilterOption | undefined;
1222
+ /**
1223
+ * Applies take/skip to the data source without triggering {@link AXDataSource.load}.
1224
+ */
1225
+ declare function applyDataSourcePagingWithoutLoad(dataSource: AXDataSource, paging: AXPEntityListPagingState): void;
1226
+ declare function getDataSourcePageIndex(dataSource: AXDataSource): number;
1227
+ declare function normalizeListPaging(paging: Partial<AXPEntityListPagingState> | undefined, defaultTake: number): AXPEntityListPagingState;
1228
+
1229
+ /** Shared contract for master and detail lists that host the identity-card grid. */
1230
+ interface AXPEntityCardListHost {
1231
+ readonly entityDef: AXPEntity;
1232
+ readonly dataSource: AXDataSource;
1233
+ readonly selectedItems: WritableSignal<any[]>;
1234
+ cardLayout(): AXPEntityCardLayout | undefined;
1235
+ cardFields(): AXPEntityListViewCardFieldViewModel[];
1236
+ activeListLayout(): AXPEntityMasterListLayoutType;
1237
+ primaryRowActions(): AXPEntityCommandTriggerViewModel[];
1238
+ cardSecondaryRowActions(row: Record<string, unknown>): Promise<AXPEntityCardSecondaryActionItem[]>;
1239
+ getResolvedListPaging(): AXPEntityListPagingState;
1240
+ executeCommand(name: string, row?: Record<string, unknown> | null): Promise<void> | void;
1031
1241
  }
1032
- declare class AXPEntityListViewCardFieldViewModel {
1033
- readonly property: AXPEntityProperty;
1034
- readonly field: AXPCardField;
1035
- constructor(property: AXPEntityProperty, field: AXPCardField);
1036
- name: string;
1242
+ declare const ENTITY_LIST_LAYOUT_META: Record<AXPEntityMasterListLayoutType, {
1037
1243
  title: string;
1038
- visible: string | boolean;
1039
- layout: _acorex_platform_framework_shared_entity.AXPEntityPropertyLayoutConfig | undefined;
1040
- display: string;
1041
- isBadgeDisplay: boolean;
1042
- badgeColor: string | undefined;
1043
- isStatusWidget: boolean;
1044
- node: _angular_core.Signal<AXPWidgetColumnNode>;
1045
- /** Readonly column node for status fields shown as header badges. */
1046
- headerBadgeNode: _angular_core.Signal<AXPWidgetColumnNode>;
1047
- }
1244
+ icon: string;
1245
+ }>;
1048
1246
 
1049
1247
  declare class AXPEntityDetailListViewModel {
1050
1248
  private injector;
@@ -1057,6 +1255,7 @@ declare class AXPEntityDetailListViewModel {
1057
1255
  private expressionEvaluator;
1058
1256
  private queryExecutor;
1059
1257
  private readonly settingsService;
1258
+ private readonly cardFieldsResolver;
1060
1259
  private readonly destroyed;
1061
1260
  private readonly showRowIndexColumnEnabled;
1062
1261
  private lastAppliedFilterKey;
@@ -1071,6 +1270,7 @@ declare class AXPEntityDetailListViewModel {
1071
1270
  private syncShowRowIndexColumnSetting;
1072
1271
  destroy(): void;
1073
1272
  initialize(): Promise<void>;
1273
+ get entityDef(): AXPEntity;
1074
1274
  selectedItems: _angular_core.WritableSignal<any[]>;
1075
1275
  hasSelectedItems: _angular_core.Signal<boolean>;
1076
1276
  clearSelection(): void;
@@ -1084,6 +1284,20 @@ declare class AXPEntityDetailListViewModel {
1084
1284
  secondaryActions: _angular_core.Signal<AXPEntityCommandTriggerViewModel[]>;
1085
1285
  primaryRowActions: _angular_core.Signal<AXPEntityCommandTriggerViewModel[]>;
1086
1286
  secondaryRowActions: _angular_core.Signal<AXPEntityCommandTriggerViewModel[]>;
1287
+ enabledListLayouts: _angular_core.Signal<AXPEntityMasterListLayoutType[]>;
1288
+ canSwitchListLayout: _angular_core.Signal<boolean>;
1289
+ activeListLayout: _angular_core.WritableSignal<AXPEntityMasterListLayoutType>;
1290
+ cardLayout: _angular_core.Signal<_acorex_platform_framework_shared_entity.AXPEntityCardLayout | undefined>;
1291
+ listDisplayMode: _angular_core.Signal<AXPEntityMasterListLayoutType>;
1292
+ isCardHostLayout: _angular_core.Signal<boolean>;
1293
+ cardFields: _angular_core.WritableSignal<AXPEntityListViewCardFieldViewModel[]>;
1294
+ availableListLayouts: _angular_core.Signal<AXPEntityMasterListLayoutOption[]>;
1295
+ setListDisplayMode(mode: AXPEntityMasterListDisplayMode): void;
1296
+ setListLayout(layout: AXPEntityMasterListLayoutType): void;
1297
+ getResolvedListPaging(): AXPEntityListPagingState;
1298
+ cardSecondaryRowActions(_rowData: Record<string, unknown>): Promise<AXPEntityCardSecondaryActionItem[]>;
1299
+ private resolveActiveListLayout;
1300
+ private applyGlobalListDisplayMode;
1087
1301
  private inlineFilters;
1088
1302
  applyInlineFilter(value: string): void;
1089
1303
  applyFilterAndSort(): Promise<void>;
@@ -1163,41 +1377,9 @@ declare function restoreEntityListExpandedRows(options: {
1163
1377
  expandRow: (row: AXPEntityListExpandRowRef) => Promise<void>;
1164
1378
  }): Promise<void>;
1165
1379
 
1166
- interface AXPEntityListPagingState {
1167
- take: number;
1168
- skip: number;
1169
- }
1170
- /** Default take used when loading hierarchical children via data-table expand. */
1171
- declare const TREE_CHILDREN_QUERY_TAKE = 1000;
1172
- /**
1173
- * AXDataSource.getItemsByFilter reuses the current grid page skip/take.
1174
- * When data-table expands a hierarchical row it sends a direct parentKey=equal filter;
1175
- * reset paging so children are not clipped by the parent grid page.
1176
- */
1177
- declare function resetPagingForTreeChildrenLoad(request: {
1178
- skip?: number;
1179
- take?: number;
1180
- filter?: AXDataSourceFilterOption | null;
1181
- }, parentKey: string | undefined | null, take?: number): void;
1182
- /**
1183
- * Returns true when the filter tree already constrains `parentKey`
1184
- * (root `isEmpty`, children `equal`, or nested equivalents).
1185
- */
1186
- declare function filterTouchesParentKey(filter: AXDataSourceFilterOption, parentKey: string): boolean;
1187
- /**
1188
- * Ensures hierarchical root loads keep `parentKey isEmpty` while preserving custom filters.
1189
- * Call this in lookup/list loaders before query so storage does not replace custom filters.
1190
- * Skips when the request already targets `parentKey` (e.g. children expand).
1380
+ /** How entity list UI state (columns, filters, paging, etc.) is persisted for the user.
1381
+ * List display (table / cards) is a separate user-level setting and is not included.
1191
1382
  */
1192
- declare function ensureHierarchicalRootFilter(filter: AXDataSourceFilterOption | null | undefined, parentKey: string | undefined | null): AXDataSourceFilterOption | undefined;
1193
- /**
1194
- * Applies take/skip to the data source without triggering {@link AXDataSource.load}.
1195
- */
1196
- declare function applyDataSourcePagingWithoutLoad(dataSource: AXDataSource, paging: AXPEntityListPagingState): void;
1197
- declare function getDataSourcePageIndex(dataSource: AXDataSource): number;
1198
- declare function normalizeListPaging(paging: Partial<AXPEntityListPagingState> | undefined, defaultTake: number): AXPEntityListPagingState;
1199
-
1200
- /** How entity list UI state (columns, filters, paging, etc.) is persisted for the user. */
1201
1383
  type AXPEntityListPersistenceMode = 'none' | 'persistent' | 'route';
1202
1384
  declare const AXPEntityListPersistenceModeDefault: AXPEntityListPersistenceMode;
1203
1385
  declare function normalizeEntityListPersistenceMode(value: unknown): AXPEntityListPersistenceMode;
@@ -1278,17 +1460,10 @@ interface AXPEntityMasterListViewSortPropViewModel {
1278
1460
  title: string;
1279
1461
  dir?: string;
1280
1462
  }
1281
- /** Built-in card list row action that toggles multi-select mode via {@link AXPEntityMasterListViewModel.selectedItems}. */
1463
+ /** @deprecated Use {@link AXPEntityCardSelectActionName}. */
1282
1464
  declare const AXPEntityMasterListCardSelectActionName = "axp-entity-card:select";
1283
- interface AXPEntityMasterListCardSecondaryActionItem {
1284
- name: string;
1285
- title: string;
1286
- icon?: string;
1287
- color?: string;
1288
- disabled?: boolean | string;
1289
- divided?: boolean;
1290
- isCardSelect?: boolean;
1291
- }
1465
+ /** @deprecated Use {@link AXPEntityCardSecondaryActionItem}. */
1466
+ type AXPEntityMasterListCardSecondaryActionItem = AXPEntityCardSecondaryActionItem;
1292
1467
  declare class AXPEntityMasterListViewQueryViewModel {
1293
1468
  private entity;
1294
1469
  private section;
@@ -1315,11 +1490,11 @@ declare class AXPEntityMasterListViewModel {
1315
1490
  private readonly widgetResolver;
1316
1491
  private readonly expressionEvaluator;
1317
1492
  private readonly contextEvalFactory;
1318
- private readonly translation;
1319
1493
  private readonly commandService;
1320
1494
  private readonly queryExecutor;
1321
1495
  private readonly filterOperatorMiddleware;
1322
1496
  private readonly entityDefinitionRegistry;
1497
+ private readonly cardFieldsResolver;
1323
1498
  private settingEntityKey;
1324
1499
  private readonly destroyed;
1325
1500
  private lastAppliedSortKey;
@@ -1351,39 +1526,19 @@ declare class AXPEntityMasterListViewModel {
1351
1526
  * if `indexCol` is omitted, visibility follows {@link AXPCommonSettings.ShowRowIndexColumn}.
1352
1527
  */
1353
1528
  showIndexColumn: _angular_core.Signal<boolean>;
1354
- /** Layouts enabled via `interfaces.master.list.layouts.*.enabled`. */
1529
+ /** Layouts enabled via table (always) and `interfaces.master.card.enabled`. */
1355
1530
  enabledListLayouts: _angular_core.Signal<AXPEntityMasterListLayoutType[]>;
1356
1531
  /** True when the user can switch between multiple enabled layouts. */
1357
1532
  canSwitchListLayout: _angular_core.Signal<boolean>;
1358
1533
  /** Active list layout for the current view. */
1359
1534
  activeListLayout: _angular_core.WritableSignal<AXPEntityMasterListLayoutType>;
1360
- tableLayout: _angular_core.Signal<{
1361
- enabled?: boolean;
1362
- columns: AXPEntityTableColumn[];
1363
- cssClass?: {
1364
- row?: AXPExpression;
1365
- cell?: AXPExpression;
1366
- };
1367
- } | undefined>;
1368
- cardLayout: _angular_core.Signal<{
1369
- enabled?: boolean;
1370
- header: {
1371
- title?: string;
1372
- description?: string;
1373
- icon?: string;
1374
- };
1375
- fields: AXPCardField[];
1376
- } | undefined>;
1377
- /** Global expanded state for all card bodies in card layout. */
1378
- cardContentExpanded: _angular_core.WritableSignal<boolean>;
1379
- /** Current presentation mode (table, compact cards, or expanded cards). */
1380
- listDisplayMode: _angular_core.Signal<AXPEntityMasterListDisplayMode>;
1381
- /**
1382
- * Sets global card body visibility for card layout.
1383
- */
1384
- setCardContentExpanded(expanded: boolean): void;
1535
+ cardLayout: _angular_core.Signal<_acorex_platform_framework_shared_entity.AXPEntityCardLayout | undefined>;
1536
+ /** Current presentation mode (table or card grid). */
1537
+ listDisplayMode: _angular_core.Signal<AXPEntityMasterListLayoutType>;
1538
+ /** Card grid uses the identity-card host. */
1539
+ isCardHostLayout: _angular_core.Signal<boolean>;
1385
1540
  /**
1386
- * Switches table vs compact/expanded card presentation.
1541
+ * Switches table or card-grid presentation.
1387
1542
  */
1388
1543
  setListDisplayMode(mode: AXPEntityMasterListDisplayMode): void;
1389
1544
  /** Enabled layouts with display metadata for the title layout switcher. */
@@ -1393,7 +1548,7 @@ declare class AXPEntityMasterListViewModel {
1393
1548
  private static readonly LAYOUT_META;
1394
1549
  /**
1395
1550
  * Switches to the given layout when it is enabled.
1396
- * Persists the choice at entity list level (shared across all views).
1551
+ * Persists the choice as a user-level default for all entity lists.
1397
1552
  */
1398
1553
  setListLayout(layout: AXPEntityMasterListLayoutType): void;
1399
1554
  /**
@@ -1402,7 +1557,12 @@ declare class AXPEntityMasterListViewModel {
1402
1557
  */
1403
1558
  switchListLayout(): AXPEntityMasterListLayoutType;
1404
1559
  private resolveActiveListLayout;
1405
- private applyListLayoutFromSettings;
1560
+ /**
1561
+ * Applies {@link AXPCommonSettings.EntityListDisplayMode} when that layout is enabled
1562
+ * for this entity; otherwise falls back to the entity's first enabled layout.
1563
+ */
1564
+ private applyGlobalListDisplayMode;
1565
+ private persistListDisplayMode;
1406
1566
  private createLogicExpressionScope;
1407
1567
  private createDisplayExpressionScope;
1408
1568
  /**
@@ -1412,31 +1572,13 @@ declare class AXPEntityMasterListViewModel {
1412
1572
  private resolveCommandNameExpression;
1413
1573
  private resolveTitleExpression;
1414
1574
  /**
1415
- * Resolves a card header value (title, description, icon) from a property path, expression, or literal.
1416
- * Supports multiple `{{ ... }}` segments in one string (e.g. `{{context.eval("a")}} - {{context.eval("b")}}`).
1417
- * Multi-language maps (e.g. `{ "en-US": "...", "fa-IR": "..." }`) are returned as-is for the translate pipe.
1418
- */
1419
- resolveCardHeaderValue(value: string | undefined, rowData: unknown): Promise<AXPMultiLanguageString>;
1420
- /**
1421
- * Keeps i18n payloads intact for `translate`; coerces only plain scalars to string.
1422
- */
1423
- private normalizeCardHeaderDisplayValue;
1424
- /**
1425
- * Resolves badge color for a card header field (semantic token or expression per row).
1426
- */
1427
- resolveCardBadgeColor(field: AXPEntityListViewCardFieldViewModel, rowData: unknown): Promise<AXStyleColorType>;
1428
- private resolveCardBadgeColorValue;
1429
- /**
1430
- * Resolves table row CSS classes from `layouts.table.cssClass.row` for the given row.
1575
+ * Resolves the record CSS class from `interfaces.master.styling.record`.
1431
1576
  */
1432
- resolveTableRowCssClass(rowData: unknown): Promise<string | undefined>;
1577
+ resolveRecordStylingClass(rowData: unknown): Promise<string | undefined>;
1433
1578
  /**
1434
- * Resolves table cell CSS classes from `layouts.table.cssClass.cell` for the given row and column.
1579
+ * Resolves the field CSS class from `interfaces.master.styling.fields`.
1435
1580
  */
1436
- resolveTableCellCssClass(rowData: unknown, columnName: string): Promise<string | undefined>;
1437
- private createTableCssClassExpressionScope;
1438
- private resolveTableCssClassValue;
1439
- private normalizeTableCssClassValue;
1581
+ resolveFieldStylingClass(rowData: unknown, fieldName: string): Promise<string | undefined>;
1440
1582
  private resolveTriggerName;
1441
1583
  setView(viewName?: string | null): Promise<void>;
1442
1584
  dataSource: AXDataSource<any>;
@@ -1469,7 +1611,7 @@ declare class AXPEntityMasterListViewModel {
1469
1611
  */
1470
1612
  getPersistableFilterQueries(queries?: AXPFilterQuery[]): AXPFilterQuery[];
1471
1613
  private enqueueSettingsUpdate;
1472
- saveSettings(changesType: 'columnSizes' | 'columnOrders' | 'view' | 'pageSize' | 'listPaging' | 'filters' | 'sorts' | 'expandedRows' | 'listLayout' | 'cardContentExpanded', data?: unknown): Promise<void>;
1614
+ saveSettings(changesType: 'columnSizes' | 'columnOrders' | 'view' | 'pageSize' | 'listPaging' | 'filters' | 'sorts' | 'expandedRows', data?: unknown): Promise<void>;
1473
1615
  selectedItems: _angular_core.WritableSignal<any[]>;
1474
1616
  /**
1475
1617
  * Selected category from the category sidebar (left panel).
@@ -1568,6 +1710,7 @@ declare class AXPEntityMasterListViewModel {
1568
1710
  private resolveMergeDetailProperty;
1569
1711
  private allAvailableColumns;
1570
1712
  visibleColumnCount: () => number;
1713
+ private collectCardLayoutQueryFields;
1571
1714
  /**
1572
1715
  * Builds path-based `fields` for entity list queries from all configured columns.
1573
1716
  * Visibility is client-only and does not change which fields are requested.
@@ -1594,10 +1737,10 @@ declare class AXPEntityMasterListViewModel {
1594
1737
  private getRegisteredEntity;
1595
1738
  private resolveRelatedEntityProperty;
1596
1739
  private resolveRelatedEntityColumnDataPath;
1740
+ private collectLookupExposeQueryFields;
1597
1741
  private deriveDataPathFromLookupProperty;
1598
1742
  private resolveParentDataPathForRelatedField;
1599
1743
  private resolveDisplayFieldProperty;
1600
- private resolveCardField;
1601
1744
  private allAvailableCardFields;
1602
1745
  cardFields: _angular_core.WritableSignal<AXPEntityListViewCardFieldViewModel[]>;
1603
1746
  applyCardFields(): void;
@@ -1717,6 +1860,8 @@ declare class AXPEntityMasterSingleViewModel {
1717
1860
  evaluateExpressions: (options: {
1718
1861
  [key: string]: string;
1719
1862
  }, data: any) => Promise<any>;
1863
+ resolveRecordStylingClass(data?: unknown): Promise<string | undefined>;
1864
+ resolveFieldStylingClass(fieldName: string, data?: unknown): Promise<string | undefined>;
1720
1865
  relatedEntities: _angular_core.Signal<Promise<AXPEntityDetailListViewModel[]>>;
1721
1866
  executeCommand(commandName: string, data?: any): Promise<void>;
1722
1867
  execute(command: AXPExecuteCommand): Promise<void>;
@@ -1733,6 +1878,13 @@ declare class AXPEntityDetailViewModelFactory {
1733
1878
  }
1734
1879
  declare const AXPEntityDetailViewModelResolver: ResolveFn<Promise<AXPEntityMasterSingleViewModel>>;
1735
1880
 
1881
+ /** Evaluates a compiled master-styling class expression against record (and optional field) data. */
1882
+ declare function resolveEntityMasterStylingClass(evaluator: AXPExpressionEvaluatorService, expression: AXPExpression | undefined, data: unknown, fieldName?: string): Promise<string | undefined>;
1883
+ /** Resolves `interfaces.master.styling.record` (compiled rules or `class` shortcut). */
1884
+ declare function resolveEntityMasterRecordStylingClass(evaluator: AXPExpressionEvaluatorService, entity: AXPEntity, data: unknown): Promise<string | undefined>;
1885
+ /** Resolves `interfaces.master.styling.fields[name]` for one property. Skips evaluate when no rule targets the field. */
1886
+ declare function resolveEntityMasterFieldStylingClass(evaluator: AXPExpressionEvaluatorService, entity: AXPEntity, data: unknown, fieldName: string): Promise<string | undefined>;
1887
+
1736
1888
  declare class AXPEntityUpdateViewSectionViewModel {
1737
1889
  private entity;
1738
1890
  private section;
@@ -2046,7 +2198,7 @@ declare class AXPMiddlewareEntityStorageService<TKey = unknown, TDetailDto exten
2046
2198
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>>;
2047
2199
  }
2048
2200
 
2049
- type AXPEntityMasterListCardLayout = NonNullable<NonNullable<AXPEntityMasterListView['layouts']>['card']>;
2201
+ type AXPEntityMasterListCardLayout = AXPEntityCardLayout;
2050
2202
  interface AXPEntityModifierContext {
2051
2203
  readonly entity: AXPEntity;
2052
2204
  plugins: {
@@ -2143,12 +2295,12 @@ interface AXPEntityModifierContext {
2143
2295
  list: {
2144
2296
  get(): AXPEntityMasterListView | undefined;
2145
2297
  update(updater: (c: AXPEntityMasterListView | undefined) => AXPEntityMasterListView): AXPEntityModifierContext;
2146
- card: {
2147
- get(): AXPEntityMasterListCardLayout | undefined;
2148
- set(layout: AXPEntityMasterListCardLayout): AXPEntityModifierContext;
2149
- update(updater: (layout: AXPEntityMasterListCardLayout | undefined) => AXPEntityMasterListCardLayout | undefined): AXPEntityModifierContext;
2150
- remove(): AXPEntityModifierContext;
2151
- };
2298
+ };
2299
+ card: {
2300
+ get(): AXPEntityMasterListCardLayout | undefined;
2301
+ set(layout: AXPEntityMasterListCardLayout): AXPEntityModifierContext;
2302
+ update(updater: (layout: AXPEntityMasterListCardLayout | undefined) => AXPEntityMasterListCardLayout | undefined): AXPEntityModifierContext;
2303
+ remove(): AXPEntityModifierContext;
2152
2304
  };
2153
2305
  };
2154
2306
  detail: {
@@ -2326,13 +2478,16 @@ interface AXPEntityBulkPatchPerformInput {
2326
2478
  * (`Entity:Update:Default` + `input.entity`), with the same richer failure UX as delete.
2327
2479
  */
2328
2480
  declare class AXPEntityBulkPatchPerformService {
2329
- private readonly dialogService;
2330
2481
  private readonly loadingDialog;
2482
+ private readonly toastService;
2331
2483
  private readonly translationService;
2332
2484
  private readonly settingsService;
2333
2485
  private readonly bulkCommands;
2486
+ private readonly bulkProgress;
2487
+ private readonly realtime;
2334
2488
  perform(input: AXPEntityBulkPatchPerformInput): AXPCommandExecuteResultPromise<AXPBulkCommandResultData>;
2335
2489
  private presentResult;
2490
+ private showResultToast;
2336
2491
  private resolveFailureContent;
2337
2492
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityBulkPatchPerformService, never>;
2338
2493
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityBulkPatchPerformService>;
@@ -2353,15 +2508,18 @@ interface AXPEntityDeletePerformInput {
2353
2508
  */
2354
2509
  declare class AXPEntityDeletePerformService {
2355
2510
  private readonly entityRegistry;
2356
- private readonly dialogService;
2357
2511
  private readonly loadingDialog;
2512
+ private readonly toastService;
2358
2513
  private readonly translationService;
2359
2514
  private readonly settingsService;
2360
2515
  private readonly entityEvents;
2361
2516
  private readonly bulkCommands;
2517
+ private readonly bulkProgress;
2518
+ private readonly realtime;
2362
2519
  perform(input: AXPEntityDeletePerformInput): Promise<{
2363
2520
  success: boolean;
2364
2521
  }>;
2522
+ private showResultToast;
2365
2523
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDeletePerformService, never>;
2366
2524
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDeletePerformService>;
2367
2525
  }
@@ -2394,6 +2552,11 @@ type AXPEntityListEntry = {
2394
2552
  fullName: string;
2395
2553
  };
2396
2554
  interface AXPEntityDefinitionLoader {
2555
+ /**
2556
+ * Local catalogs run before remote (`Domain:GetEntityLayout`) so an app can
2557
+ * ship layouts without calling the platform API.
2558
+ */
2559
+ readonly kind?: 'local' | 'remote';
2397
2560
  get(moduleName: string, entityName: string): Promise<AXPEntity | null>;
2398
2561
  list(): Promise<AXPEntityListInput[]>;
2399
2562
  }
@@ -2413,6 +2576,7 @@ declare class AXPEntityResolver {
2413
2576
  * Replaces per-module entity providers after contracts → server entity migration.
2414
2577
  */
2415
2578
  declare class AXPDomainQueryEntityDefinitionLoader implements AXPEntityDefinitionLoader {
2579
+ readonly kind: "remote";
2416
2580
  private readonly queryService;
2417
2581
  private readonly layoutCache;
2418
2582
  /** In-flight layout fetches keyed by `module.entity` — coalesces concurrent callers. */
@@ -2802,8 +2966,9 @@ declare const defaultMultiLanguageMiddleware: AXPEntityModifier;
2802
2966
  declare const defaultMultiLanguageMiddlewareProvider: AXPEntityModifierProvider;
2803
2967
 
2804
2968
  /**
2805
- * When an entity has no `interfaces.master.list.layouts.card`, creates a sensible default
2806
- * from list columns and property names (title, description, remaining columns as card fields).
2969
+ * When an entity has no `interfaces.master.card`, creates an identity-first
2970
+ * default (title, avatar, status badge, density-aware header extra) from list columns and formats.
2971
+ * The same layout is reused by the entity lookup popover.
2807
2972
  */
2808
2973
  declare const defaultCardLayoutMiddleware: AXPEntityModifier;
2809
2974
  declare const defaultCardLayoutMiddlewareProvider: AXPEntityModifierProvider;
@@ -2865,6 +3030,13 @@ declare function ensureLayoutPropertyView<TLayout extends AXPEntityLayoutLike>(l
2865
3030
  */
2866
3031
  declare function provideEntity(entityKeys: string[]): EnvironmentProviders;
2867
3032
 
3033
+ /**
3034
+ * Registers layout catalogs on the client. Each entity factory should use a
3035
+ * dynamic import so unused entities are not loaded. Local catalogs run before
3036
+ * `Domain:GetEntityLayout`. Do not add this to the demo app.
3037
+ */
3038
+ declare function provideLocalEntityCatalog(...catalogs: readonly AXPLocalEntityCatalog[]): EnvironmentProviders;
3039
+
2868
3040
  interface AXPGetEntityDetailsQueryInput {
2869
3041
  entity: string;
2870
3042
  id: string;
@@ -3670,6 +3842,8 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
3670
3842
  private readonly expressionEvaluator;
3671
3843
  private readonly columnWidthService;
3672
3844
  private readonly route;
3845
+ private readonly settingsService;
3846
+ private readonly cardFieldsResolver;
3673
3847
  protected isMounted: _angular_core.WritableSignal<boolean>;
3674
3848
  readonly entity: _angular_core.WritableSignal<AXPEntity | null>;
3675
3849
  protected listNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
@@ -3678,6 +3852,14 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
3678
3852
  protected listWidget: _angular_core.WritableSignal<AXPWidgetRendererDirective | undefined>;
3679
3853
  protected toolbarWidget: _angular_core.Signal<AXPWidgetRendererDirective | undefined>;
3680
3854
  protected selectedItems: _angular_core.WritableSignal<any[]>;
3855
+ protected listDisplayMode: _angular_core.WritableSignal<AXPEntityMasterListLayoutType>;
3856
+ protected isCardHostLayout: _angular_core.Signal<boolean>;
3857
+ protected isRowLayout: _angular_core.Signal<boolean>;
3858
+ protected cardLayout: _angular_core.Signal<AXPEntityCardLayout | undefined>;
3859
+ protected cardFields: _angular_core.WritableSignal<AXPEntityListViewCardFieldViewModel[]>;
3860
+ protected cardItems: _angular_core.WritableSignal<Record<string, unknown>[]>;
3861
+ private readonly listDataSource;
3862
+ protected primaryRowActions: _angular_core.Signal<AXPEntityCommandTriggerViewModel[]>;
3681
3863
  protected toolbarNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
3682
3864
  protected destroyed: Subject<void>;
3683
3865
  /** Invalidates in-flight filter/refresh work on remount, rapid page switches, or destroy. */
@@ -3698,6 +3880,13 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
3698
3880
  protected allActions: _angular_core.Signal<AXPEntityCommandTriggerViewModel[]>;
3699
3881
  protected primaryActions: _angular_core.Signal<AXPActionMenuItem[]>;
3700
3882
  protected handleUnselectAll(): void;
3883
+ private resolveListDataSource;
3884
+ private readWidgetDataSource;
3885
+ private readDataSourceRows;
3886
+ protected trackCardRow(row: Record<string, unknown>): string;
3887
+ protected isCardSelected(row: Record<string, unknown>): boolean;
3888
+ protected onCardSelectionChange(row: Record<string, unknown>, selected: boolean): void;
3889
+ protected onCardCommandClick(name: string, row: Record<string, unknown>): void;
3701
3890
  protected secondaryActions: _angular_core.Signal<AXPActionMenuItem[]>;
3702
3891
  protected handleActionClick(item: AXPActionMenuItem): void;
3703
3892
  protected handleSecondaryActionClick(item: AXPActionMenuItem): void;
@@ -3818,6 +4007,7 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
3818
4007
  */
3819
4008
  private handleColumnChanges;
3820
4009
  protected context: {};
4010
+ private applyGlobalListDisplayMode;
3821
4011
  protected previousQueries: any;
3822
4012
  ngOnInit(): Promise<void>;
3823
4013
  ngAfterViewInit(): Promise<void>;
@@ -3888,6 +4078,16 @@ declare class AXPLookupWidgetViewComponent extends AXPValueWidgetComponent<any>
3888
4078
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLookupWidgetViewComponent, "axp-lookup-widget-view", never, {}, {}, never, never, true, never>;
3889
4079
  }
3890
4080
 
4081
+ interface LookupWidgetTableColumnView {
4082
+ name: string;
4083
+ title: string;
4084
+ visible: boolean;
4085
+ width?: string;
4086
+ dataPath?: string;
4087
+ expandHandler?: boolean;
4088
+ node: AXPWidgetColumnNode;
4089
+ }
4090
+
3891
4091
  type AXPContextStoreInstance = InstanceType<typeof AXPContextStore>;
3892
4092
  type AXPLookupCreateContextStore = AXPContextStoreInstance;
3893
4093
 
@@ -4147,66 +4347,137 @@ declare class AXPEntityDataSelectorService {
4147
4347
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDataSelectorService>;
4148
4348
  }
4149
4349
 
4150
- /**
4151
- * Base interface for lookup widget look components
4152
- * All look components should implement this interface to ensure consistency
4153
- */
4154
- declare abstract class LookupWidgetLookBase {
4155
- abstract refresh(): void;
4156
- abstract focus(): void;
4157
- abstract clear(): void;
4350
+ interface LookupWidgetTableItemClickEvent {
4351
+ item: AXLookupItem;
4352
+ value: unknown;
4158
4353
  }
4159
4354
 
4355
+ declare class AXPLookupWidgetTableHostComponent extends NXValueComponent {
4356
+ #private;
4357
+ name: _angular_core.InputSignal<string>;
4358
+ placeholder: _angular_core.InputSignal<string>;
4359
+ caption: _angular_core.InputSignal<string>;
4360
+ searchPlaceholder: _angular_core.InputSignal<string>;
4361
+ dataSource: _angular_core.InputSignal<AXDataSource<AXLookupItem>>;
4362
+ columns: _angular_core.InputSignal<LookupWidgetTableColumnView[]>;
4363
+ valueField: _angular_core.InputSignal<string>;
4364
+ textField: _angular_core.InputSignal<string>;
4365
+ disabledField: _angular_core.InputSignal<string>;
4366
+ parentField: _angular_core.InputSignal<string | undefined>;
4367
+ value: _angular_core.ModelSignal<unknown>;
4368
+ valueItems: _angular_core.InputSignal<AXLookupItem[]>;
4369
+ disabled: _angular_core.InputSignal<boolean>;
4370
+ readonly: _angular_core.InputSignal<boolean>;
4371
+ searchable: _angular_core.InputSignal<boolean>;
4372
+ selectedTemplate: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
4373
+ onItemSelected: _angular_core.OutputEmitterRef<AXItemSelectedEvent<AXLookupItem>>;
4374
+ protected readonly triggerSearchInput: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
4375
+ protected readonly popoverRef: _angular_core.Signal<AXPopoverComponent | undefined>;
4376
+ protected readonly expanded: _angular_core.WritableSignal<boolean>;
4377
+ protected readonly selectedValues: _angular_core.Signal<any[]>;
4378
+ protected readonly displayText: _angular_core.Signal<string>;
4379
+ /** Syncs from the selected display text; typing updates via trigger input. */
4380
+ protected readonly searchText: _angular_core.WritableSignal<string>;
4381
+ /**
4382
+ * Renders `selectedTemplate` while the popup is closed and the trigger text still matches
4383
+ * the selection (same as ax-lookup).
4384
+ */
4385
+ protected readonly showSelectedTemplate: _angular_core.Signal<boolean>;
4386
+ /** Empty while the selected template is painted so the label is not shown twice. */
4387
+ protected readonly triggerInputValue: _angular_core.Signal<string>;
4388
+ protected readonly triggerSearchPlaceholder: _angular_core.Signal<string>;
4389
+ constructor();
4390
+ protected onTriggerClick(): void;
4391
+ protected onPopoverClosed(): void;
4392
+ protected onTriggerSearchInput(value: string): void;
4393
+ protected onTriggerKeydown(event: KeyboardEvent): void;
4394
+ protected handleTableItemClick(event: LookupWidgetTableItemClickEvent): void;
4395
+ /** Clears the selection. Used by projected `ax-clear-button`. */
4396
+ reset(_isUserInteraction?: boolean): void;
4397
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLookupWidgetTableHostComponent, never>;
4398
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLookupWidgetTableHostComponent, "axp-lookup-widget-table-host", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "parentField": { "alias": "parentField"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "valueItems": { "alias": "valueItems"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "selectedTemplate": { "alias": "selectedTemplate"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onItemSelected": "onItemSelected"; }, never, ["ax-clear-button", "ax-validation-rule"], true, never>;
4399
+ }
4400
+
4401
+ type LookupEditorValue = unknown | unknown[] | null;
4160
4402
  declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any> {
4161
4403
  #private;
4162
- protected readonly injector: Injector;
4163
4404
  protected readonly entityResolver: AXPEntityDefinitionRegistryService;
4164
4405
  protected readonly entityService: AXPEntityService;
4165
4406
  protected readonly entityDataSelectorService: AXPEntityDataSelectorService;
4166
4407
  private readonly mlsResolver;
4167
- protected componentLook: _angular_core.Signal<LookupWidgetLookBase | undefined>;
4408
+ private readonly filterOperatorMiddleware;
4409
+ private readonly formatService;
4410
+ private readonly expressionEvaluator;
4411
+ private readonly contextEvalFactory;
4412
+ private readonly localeService;
4413
+ private readonly destroyRef;
4414
+ protected lookup: _angular_core.Signal<AXLookupComponent<any> | undefined>;
4415
+ protected tableLookupHost: _angular_core.Signal<AXPLookupWidgetTableHostComponent | undefined>;
4416
+ /** Toggled to remount ax-lookup after locale / language changes. */
4417
+ protected readonly editorKey: _angular_core.WritableSignal<boolean>;
4418
+ private readonly localeEpoch;
4419
+ protected entityDef: _angular_core.WritableSignal<AXPEntity | null>;
4420
+ protected selectedItems: _angular_core.WritableSignal<any[]>;
4421
+ protected initialized: _angular_core.WritableSignal<boolean>;
4422
+ protected previousValue: _angular_core.WritableSignal<any>;
4423
+ protected isLoading: _angular_core.WritableSignal<boolean>;
4424
+ private readonly shouldFocus;
4425
+ /** Skips one {@link findByValue} pass after inline create when selection is already hydrated. */
4426
+ private skipFindByValueOnce;
4168
4427
  protected expose: _angular_core.Signal<string | any[] | undefined>;
4169
4428
  protected entity: _angular_core.Signal<string>;
4170
- protected disabled: _angular_core.Signal<string | boolean>;
4429
+ protected isDisabled: _angular_core.Signal<boolean>;
4430
+ protected isReadonly: _angular_core.Signal<boolean>;
4171
4431
  protected columns: _angular_core.Signal<AXPEntitySelectorColumnInput[]>;
4172
4432
  protected textField: _angular_core.Signal<string>;
4173
- /**
4174
- * Template for select look (`ax-select-box`). Uses `textTemplate` when set, otherwise
4175
- * falls back to `displayFormat` (same as tagbox). Single braces are expanded to `{{ }}`
4176
- * for the select box template engine (see `AXPDataListWidgetComponent.textTemplate`).
4177
- */
4178
- protected textTemplate: _angular_core.Signal<string | null>;
4179
4433
  protected hasClearButton: _angular_core.Signal<boolean>;
4180
- protected showItemTooltip: _angular_core.Signal<boolean>;
4181
- protected isItemTruncated: _angular_core.Signal<boolean>;
4182
- protected customFilter: _angular_core.Signal<AXDataSourceFilterOption>;
4434
+ protected customFilter: _angular_core.Signal<AXDataSourceFilterOption | null>;
4435
+ protected hasPendingCascadeFilter: _angular_core.Signal<boolean>;
4436
+ protected isLookupDisabled: _angular_core.Signal<boolean>;
4183
4437
  protected placeholder: _angular_core.Signal<string>;
4438
+ protected placeholderText: _angular_core.Signal<string>;
4184
4439
  protected filterMode: _angular_core.Signal<boolean>;
4185
4440
  protected multiple: _angular_core.Signal<boolean>;
4186
- protected allowUnselect: _angular_core.Signal<boolean>;
4187
4441
  protected look: _angular_core.Signal<AXPLookupWidgetLookType>;
4442
+ protected lookupMode: _angular_core.Signal<AXLookupMode>;
4443
+ protected isTableLookupMode: _angular_core.Signal<boolean>;
4444
+ protected treeParentField: _angular_core.Signal<string>;
4188
4445
  protected displayField: _angular_core.Signal<string>;
4189
4446
  protected resolvedCreate: _angular_core.Signal<_acorex_platform_framework_shared_entity.ResolvedLookupCreateOptions>;
4190
- protected rowActions: _angular_core.Signal<AXPLookupSelectorRowActionsConfig | undefined>;
4191
4447
  protected valueField: _angular_core.Signal<string>;
4192
- protected displayFormat: _angular_core.Signal<string | undefined>;
4193
- protected conditions?: AXPQueryFilter[];
4194
- protected filter: AXDataSourceFilterOption | null;
4195
- protected entityDef: _angular_core.WritableSignal<AXPEntity | null>;
4196
- protected selectedItems: _angular_core.WritableSignal<any[]>;
4197
- protected initialItems: _angular_core.WritableSignal<boolean>;
4198
- protected initialized: _angular_core.WritableSignal<boolean>;
4199
- protected previousValue: _angular_core.WritableSignal<any>;
4200
- protected isLoading: _angular_core.WritableSignal<boolean>;
4201
- /** Skips one {@link findByValue} pass after inline create when selection is already hydrated. */
4202
- private skipFindByValueOnce;
4448
+ protected lookupWidgetTableColumns: _angular_core.Signal<LookupWidgetTableColumnView[]>;
4449
+ protected lookupQueryFields: _angular_core.Signal<string[] | undefined>;
4450
+ protected entityDataSource: _angular_core.Signal<AXDataSource<AXLookupItem> | null>;
4451
+ protected entityTreeDataSource: _angular_core.Signal<AXTreeViewDataSource>;
4452
+ protected effectiveDataSource: _angular_core.Signal<AXDataSource<AXLookupItem> | null>;
4453
+ protected selectFilterDisplayValue: _angular_core.Signal<any>;
4454
+ /**
4455
+ * Primitive key(s) bound to ax-lookup. Full row objects are resolved on change.
4456
+ */
4457
+ protected editorValue: _angular_core.Signal<unknown>;
4458
+ /**
4459
+ * Writable copy of {@link editorValue}. Must not be a linkedSignal: ax-lookup emits
4460
+ * `valueChange` on click before context is written, and a linked source of `null`
4461
+ * would write `[value]` back over the pick during the same CD cycle.
4462
+ */
4463
+ protected boundValue: _angular_core.WritableSignal<unknown>;
4464
+ /** Rows picked in the open popup; used to resolve keys before datasource cache is queried. */
4465
+ private readonly pickedItems;
4466
+ private readonly editorLocaleChanged;
4467
+ protected handleLookupItemSelected(e: AXItemSelectedEvent<AXLookupItem>): void;
4468
+ /**
4469
+ * Commits from the model output (same tick as the click). `onValueChanged` is effect-based
4470
+ * and runs after CD, which lets a stale `[value]` binding wipe the pick.
4471
+ */
4472
+ protected handleLookupModelChange(value: LookupEditorValue): void;
4473
+ private commitLookupSelection;
4474
+ protected handleCreateClick(_e: AXClickEvent): Promise<void>;
4203
4475
  private hasValue;
4204
4476
  private findByValue;
4205
4477
  private getHydrationOptions;
4478
+ private rerenderEditor;
4206
4479
  protected handleComponentValueChanged(items: any[] | null): void;
4207
- protected handleCreateClick(_e: AXClickEvent): Promise<void>;
4208
4480
  private executeCreate;
4209
- protected setLoading: (loading: boolean) => void;
4210
4481
  /** @param syncContext When false, only updates UI (hydration/revert); skips context writes. */
4211
4482
  protected setItems: (items: any[], syncContext?: boolean) => void;
4212
4483
  /**
@@ -4221,9 +4492,14 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
4221
4492
  [name: string]: unknown;
4222
4493
  })[];
4223
4494
  private singleOrMultiple;
4495
+ protected getLookupItemLabel(item: AXLookupItem | null | undefined): string | Record<string, string>;
4496
+ private decorateLookupItem;
4497
+ private resolveLookupRows;
4498
+ /**
4499
+ * Hosts may emit a placeholder item whose title equals the raw id before byKey hydration.
4500
+ */
4501
+ private isStaleFallbackSelection;
4224
4502
  refresh(): Promise<void>;
4225
- /** Re-applies hydrated row objects to ax-select-box after refresh (avoids stale loading placeholders). */
4226
- private rebindSelectLook;
4227
4503
  clear(): void;
4228
4504
  focus(): void;
4229
4505
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLookupWidgetEditComponent, never>;
@@ -4741,6 +5017,7 @@ declare class AXPSelectorStructureWidgetEditComponent extends AXPValueWidgetComp
4741
5017
  protected valueField: _angular_core.Signal<string>;
4742
5018
  protected textField: _angular_core.Signal<string>;
4743
5019
  protected multiple: _angular_core.Signal<boolean>;
5020
+ protected lookupMode: _angular_core.Signal<AXLookupMode>;
4744
5021
  protected freeformPath: _angular_core.Signal<string>;
4745
5022
  protected lookupEntityKey: _angular_core.Signal<string | undefined>;
4746
5023
  protected lookupHasClearButton: _angular_core.Signal<boolean>;
@@ -4794,13 +5071,13 @@ declare class AXPSelectorStructureWidgetEditComponent extends AXPValueWidgetComp
4794
5071
  */
4795
5072
  protected exclusiveItemsForRow(index: number): unknown[];
4796
5073
  private newRowUid;
4797
- protected handleCompactSelectChange(index: number, e: AXValueChangedEvent): void;
5074
+ protected handleCompactSelectionChange(index: number, e: AXLookupSelectionChangedEvent): void;
4798
5075
  protected applyCompactRowFromItem(index: number, rawItem: unknown | undefined): void;
4799
5076
  protected clearCompactRow(index: number): void;
4800
5077
  protected removeCompactRow(index: number): void;
4801
5078
  protected addCompactRow(): void;
4802
- protected handleSelectValueChange(e: AXValueChangedEvent): void;
4803
- protected handleLookupValueChange(e: AXValueChangedEvent): void;
5079
+ protected handleSelectSelectionChange(e: AXLookupSelectionChangedEvent): void;
5080
+ protected handleLookupSelectionChange(e: AXLookupSelectionChangedEvent): void;
4804
5081
  protected applyRowsFromSourceItems(items: unknown[]): void;
4805
5082
  protected handleSchemaContextChange(rowKey: unknown, e: AXPContextChangeEvent): void;
4806
5083
  protected freeformEntries(row: Record<string, unknown>): {
@@ -4844,5 +5121,5 @@ declare function dispatchEntityModifiedSideEffects(entityEvents: AXPEntityBroadc
4844
5121
  */
4845
5122
  declare function provideEntityRealtimeHandlers(): Provider[];
4846
5123
 
4847
- export { ATTACHMENTS_PAGE_COMPONENT_KEY, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPClientLocalPluginModule, AXPCreateEntityCommand, AXPDataSeederService, AXPDeleteEntityCommand, AXPDomainQueryEntityDefinitionLoader, AXPEditFileUploaderCommand, AXPEntityBulkPatchPerformService, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorRowActionsService, AXPEntityDataSelectorService, AXPEntityDefinitionProviderWidget, AXPEntityDefinitionProviderWidgetEditComponent, AXPEntityDefinitionRegistryService, AXPEntityDeletePerformService, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityFormBuilderService, AXPEntityLifecycleHookKeys, AXPEntityListPersistenceModeDefault, AXPEntityListTableService, AXPEntityListToolbarService, AXPEntityListViewCardFieldViewModel, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListCardSelectActionName, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddlewareSkipContext, AXPEntityModule, AXPEntityPreloadFiltersContainerComponent, AXPEntityPreloadFiltersViewModel, AXPEntityPreloadFiltersViewModelResolver, AXPEntityResolver, AXPEntityRuntimeAccessorService, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPFileListComponent, AXPFileUploaderLoadFilesQuery, AXPFileUploaderSaveFilesCommand, AXPFileUploaderWidget, AXPFileUploaderWidgetColumnComponent, AXPFileUploaderWidgetEditComponent, AXPFileUploaderWidgetService, AXPFileUploaderWidgetViewComponent, AXPGetEntityDetailsQuery, AXPLayoutOrderingConfigService, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService as AXPMiddlewareEntityService, AXPMiddlewareEntityStorageService, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPOpenEntityListCommand, AXPRelatedColumnEnrichmentService, AXPRelatedColumnMetadataResolver, AXPSelectorStructureWidget, AXPSelectorStructureWidgetColumnComponent, AXPSelectorStructureWidgetEditComponent, AXPSelectorStructureWidgetViewComponent, AXPShowFileUploaderPopupCommand, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPUpdateEntityStatusCommand, AXPViewEntityDetailsCommand, AXP_APPEARANCE_SECTION_ORDER, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY, AXP_CLASSIFICATION_SECTION_ORDER, AXP_CLIENT_LOCAL_DEFAULT_MAX_ITEMS, AXP_CLIENT_LOCAL_PLUGIN_NAME, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MIDDLEWARE, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, DEFAULT_COLUMN_ORDER, DEFAULT_PAIR_SPAN_RULES, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, ENTITY_FORM_ACTION_FIRST_STEP_CONTINUE, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY, ENTITY_MASTER_LIST_TRACE_NS, EntityBuilder, EntityDataAccessor, GALLERY_PAGE_COMPONENT_KEY, TREE_CHILDREN_QUERY_TAKE, actionExists, applyDataSourcePagingWithoutLoad, attachmentFieldCount, attachmentNeedsHydration, attachmentsPlugin, attachmentsSemanticallyEqual, axpCreateEntityAiToolInputDefaults, axpCreateEntityCommandDefinition, axpDeleteEntityCommandDefinition, axpOpenEntityListCommandDefinition, axpShowFileUploaderPopupCommandDefinition, axpUpdateEntityStatusCommandDefinition, buildDataSourceTraceSnapshot, canPersistEntityListState, clientLocalPlugin, cloneLayoutArrays, columnOrderingMiddleware, columnOrderingMiddlewareProvider, columnWidthMiddleware, columnWidthMiddlewareProvider, committedAttachments, composeEntityMiddlewares, composeEntityStorageMiddlewares, computeEntityAggregates, createColumnOrderingMiddlewareProvider, createEntityMiddlewareContext, createEntityStorageContext, createLayoutOrderingMiddlewareProvider, defaultCardLayoutMiddleware, defaultCardLayoutMiddlewareProvider, defaultMultiLanguageMiddleware, defaultMultiLanguageMiddlewareProvider, detectEntityChanges, dispatchEntityModifiedSideEffects, ensureHierarchicalRootFilter, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityCreateBridgeMiddleware, entityDeleteBridgeMiddleware, entityGetOneBridgeMiddleware, entityQueryBridgeMiddleware, entityStorageCreateBridgeMiddleware, entityStorageDeleteBridgeMiddleware, entityStorageGetOneBridgeMiddleware, entityStorageQueryBridgeMiddleware, entityStorageUpdateBridgeMiddleware, entityUpdateBridgeMiddleware, eventDispatchMiddleware, filterEntityMiddlewares, filterEntityStorageMiddlewares, filterSortEntityRows, filterTouchesParentKey, findEntityListRowDataInTree, fingerprintAttachmentItem, fingerprintAttachments, fireEntityLifecycleHook, formatLookupItemDisplay, formatLookupItemDisplayAsync, galleryPlugin, getDataSourcePageIndex, getEntityListRowId, getMasterInterfacePropertySortKey, hasFileUploaderTitleOrDescriptionFields, hydrateAttachmentFieldToFileList, isAXPMiddlewareAbortError, isAttachmentFieldPresentOnRow, isAttachmentListEntry, isAttachmentStorageRef, isCategoryEntity, isCategoryFilter, isFileListItem, isFileUploaderEditDialogAuto, isLegacyEntityDataSelectorOptions, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, mapEntityStorageErrorToCommandResult, mapLegacyEntityDataSelectorOptions, normalizeEntityDataSelectorColumnSpecs, normalizeEntityDataSelectorOptions, normalizeEntityFieldToFileList, normalizeEntityListPersistenceMode, normalizeListPaging, persistedAttachments, prefetchClientLocalRelated, provideEntity, provideEntityMiddlewareBridge, provideEntityRealtimeHandlers, provideEntityStorageMiddlewareBridge, resetPagingForTreeChildrenLoad, resolveAttachmentFieldPath, resolveEntityPluginDetailPageOrder, resolveFileUploaderEditDialog, resolveFileUploaderEntityScope, resolveLookupDisplayField, resolveLookupDisplayTemplate, resolveLookupEntityKey, resolveMasterInterfacePropertyOrder, restoreEntityListExpandedRows, runEntityMiddlewarePipeline, runEntityQuery, runEntityStorageMiddlewarePipeline, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider, shouldLoadEntityListStateFromStorage, shouldResetEntityListStateOnRouteEntry, traceEntityMasterList };
4848
- export type { AXPClientLocalPluginOptions, AXPDataSeeder, AXPDeleteEntityCommandInput, AXPEntityAccessPort, AXPEntityActionPlugin, AXPEntityBulkPatchPerformInput, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityDataSelectorCategoryFilterOptions, AXPEntityDataSelectorCategoryOptions, AXPEntityDataSelectorCreateOptions, AXPEntityDataSelectorFilterOptions, AXPEntityDataSelectorGridOptions, AXPEntityDataSelectorOpenInput, AXPEntityDataSelectorOpenOptions, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDataSelectorRowActionsConfig, AXPEntityDataSelectorSearchOptions, AXPEntityDataSelectorSelectionOptions, AXPEntityDataSelectorSortOptions, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDeletePerformInput, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListEntry, AXPEntityListExpandRowRef, AXPEntityListInput, AXPEntityListPagingState, AXPEntityListPersistenceMode, AXPEntityListToolbarConvertOptions, AXPEntityMasterListCardLayout, AXPEntityMasterListCardSecondaryActionItem, AXPEntityMasterListViewSortPropViewModel, AXPEntityMiddleware, AXPEntityMiddlewareContext, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityPreloadEntity, AXPEntityStorageBackend, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPFileListLook, AXPFileUploaderEditDialogFieldOptions, AXPFileUploaderEditDialogMode, AXPFileUploaderEditDialogOptions, AXPFileUploaderEntityFilesScope, AXPFileUploaderLoadFilesQueryInput, AXPFileUploaderLoadFilesQueryResult, AXPFileUploaderSaveFilesCommandInput, AXPFileUploaderSaveFilesCommandResult, AXPFileUploaderShowFileListEntityContext, AXPFileUploaderShowFileListOptions, AXPFileUploaderUploadActionDescriptor, AXPFileUploaderWidgetColumnOptions, AXPFileUploaderWidgetDesignerOptions, AXPFileUploaderWidgetEditOptions, AXPFileUploaderWidgetOptions, AXPFileUploaderWidgetPrintOptions, AXPFileUploaderWidgetViewOptions, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupDisplayEvalDeps, AXPMultiSourceDefinition, AXPMultiSourceDefinitionProvider, AXPMultiSourceItem, AXPMultiSourceRef, AXPMultiSourceSearchResult, AXPMultiSourceSearchResultItem, AXPMultiSourceSelectorOpenConfig, AXPMultiSourceSelectorResult, AXPMultiSourceSelectorWidgetOptions, AXPMultiSourceValue, AXPOpenEntityDetailsCommandInput, AXPOpenEntityListCommandInput, AXPOpenEntityListCondition, AXPRelatedColumnMetadata, AXPSelectorStructureFieldDef, AXPSelectorStructureIdentityDisplay, AXPSelectorStructurePresentationMode, AXPSelectorStructureSelectorMode, AXPSelectorStructureStructureMode, AXPSelectorStructureWidgetColumnOptions, AXPSelectorStructureWidgetDesignerOptions, AXPSelectorStructureWidgetEditOptions, AXPSelectorStructureWidgetOptions, AXPSelectorStructureWidgetPrintOptions, AXPSelectorStructureWidgetViewOptions, AXPShowFileUploaderPopupCommandInput, AXPUpdateEntityStatusCommandInput, AttachmentsDisplayMode, AttachmentsPluginOptions, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, EntityDetailPluginPageSlot, EntityMasterListTraceArea, GalleryDisplayMode, GalleryPluginOptions, PairSpanRule, ResolveEntityPluginDetailPageOrderOptions, RunEntityQueryAdapters, SectionOrderConfig, SkipEntityComponentPageRef };
5124
+ export { ATTACHMENTS_PAGE_COMPONENT_KEY, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPClientLocalPluginModule, AXPCreateEntityCommand, AXPDataSeederService, AXPDeleteEntityCommand, AXPDomainQueryEntityDefinitionLoader, AXPEditFileUploaderCommand, AXPEntityBulkPatchPerformService, AXPEntityCardComponent, AXPEntityCardFieldsResolver, AXPEntityCardSelectActionName, AXPEntityCardSkeletonComponent, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorRowActionsService, AXPEntityDataSelectorService, AXPEntityDefinitionProviderWidget, AXPEntityDefinitionProviderWidgetEditComponent, AXPEntityDefinitionRegistryService, AXPEntityDeletePerformService, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityFormBuilderService, AXPEntityLifecycleHookKeys, AXPEntityListPersistenceModeDefault, AXPEntityListTableService, AXPEntityListToolbarService, AXPEntityListViewCardFieldViewModel, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListCardSelectActionName, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddlewareSkipContext, AXPEntityModule, AXPEntityPreloadFiltersContainerComponent, AXPEntityPreloadFiltersViewModel, AXPEntityPreloadFiltersViewModelResolver, AXPEntityResolver, AXPEntityRuntimeAccessorService, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPFileListComponent, AXPFileUploaderLoadFilesQuery, AXPFileUploaderSaveFilesCommand, AXPFileUploaderWidget, AXPFileUploaderWidgetColumnComponent, AXPFileUploaderWidgetEditComponent, AXPFileUploaderWidgetService, AXPFileUploaderWidgetViewComponent, AXPGetEntityDetailsQuery, AXPLayoutOrderingConfigService, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService as AXPMiddlewareEntityService, AXPMiddlewareEntityStorageService, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPOpenEntityListCommand, AXPRelatedColumnEnrichmentService, AXPRelatedColumnMetadataResolver, AXPSelectorStructureWidget, AXPSelectorStructureWidgetColumnComponent, AXPSelectorStructureWidgetEditComponent, AXPSelectorStructureWidgetViewComponent, AXPShowFileUploaderPopupCommand, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPUpdateEntityStatusCommand, AXPViewEntityDetailsCommand, AXP_APPEARANCE_SECTION_ORDER, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY, AXP_CLASSIFICATION_SECTION_ORDER, AXP_CLIENT_LOCAL_DEFAULT_MAX_ITEMS, AXP_CLIENT_LOCAL_PLUGIN_NAME, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MIDDLEWARE, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, DEFAULT_COLUMN_ORDER, DEFAULT_PAIR_SPAN_RULES, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, ENTITY_FORM_ACTION_FIRST_STEP_CONTINUE, ENTITY_LIST_LAYOUT_META, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY, ENTITY_MASTER_LIST_TRACE_NS, EntityBuilder, EntityDataAccessor, GALLERY_PAGE_COMPONENT_KEY, TREE_CHILDREN_QUERY_TAKE, actionExists, applyDataSourcePagingWithoutLoad, attachmentFieldCount, attachmentNeedsHydration, attachmentsPlugin, attachmentsSemanticallyEqual, axpCreateEntityAiToolInputDefaults, axpCreateEntityCommandDefinition, axpDeleteEntityCommandDefinition, axpOpenEntityListCommandDefinition, axpShowFileUploaderPopupCommandDefinition, axpUpdateEntityStatusCommandDefinition, buildDataSourceTraceSnapshot, canPersistEntityListState, clientLocalPlugin, cloneLayoutArrays, columnOrderingMiddleware, columnOrderingMiddlewareProvider, columnWidthMiddleware, columnWidthMiddlewareProvider, committedAttachments, composeEntityMiddlewares, composeEntityStorageMiddlewares, computeEntityAggregates, createColumnOrderingMiddlewareProvider, createEntityCardDisplayScope, createEntityCardLogicScope, createEntityMiddlewareContext, createEntityStorageContext, createLayoutOrderingMiddlewareProvider, defaultCardLayoutMiddleware, defaultCardLayoutMiddlewareProvider, defaultMultiLanguageMiddleware, defaultMultiLanguageMiddlewareProvider, detectEntityChanges, dispatchEntityModifiedSideEffects, ensureHierarchicalRootFilter, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityCreateBridgeMiddleware, entityDeleteBridgeMiddleware, entityGetOneBridgeMiddleware, entityQueryBridgeMiddleware, entityStorageCreateBridgeMiddleware, entityStorageDeleteBridgeMiddleware, entityStorageGetOneBridgeMiddleware, entityStorageQueryBridgeMiddleware, entityStorageUpdateBridgeMiddleware, entityUpdateBridgeMiddleware, eventDispatchMiddleware, filterEntityMiddlewares, filterEntityStorageMiddlewares, filterSortEntityRows, filterTouchesParentKey, findEntityListRowDataInTree, fingerprintAttachmentItem, fingerprintAttachments, fireEntityLifecycleHook, formatLookupItemDisplay, formatLookupItemDisplayAsync, galleryPlugin, getDataSourcePageIndex, getEntityListRowId, getMasterInterfacePropertySortKey, hasFileUploaderTitleOrDescriptionFields, hydrateAttachmentFieldToFileList, isAXPMiddlewareAbortError, isAttachmentFieldPresentOnRow, isAttachmentListEntry, isAttachmentStorageRef, isCategoryEntity, isCategoryFilter, isFileListItem, isFileUploaderEditDialogAuto, isLegacyEntityDataSelectorOptions, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, mapEntityStorageErrorToCommandResult, mapLegacyEntityDataSelectorOptions, normalizeEntityCardHeaderDisplayValue, normalizeEntityDataSelectorColumnSpecs, normalizeEntityDataSelectorOptions, normalizeEntityFieldToFileList, normalizeEntityListPersistenceMode, normalizeListPaging, persistedAttachments, prefetchClientLocalRelated, provideEntity, provideEntityMiddlewareBridge, provideEntityRealtimeHandlers, provideEntityStorageMiddlewareBridge, provideLocalEntityCatalog, resetPagingForTreeChildrenLoad, resolveAttachmentFieldPath, resolveEntityCardBadgeColorValue, resolveEntityCardHeaderValue, resolveEntityMasterFieldStylingClass, resolveEntityMasterRecordStylingClass, resolveEntityMasterStylingClass, resolveEntityPluginDetailPageOrder, resolveFileUploaderEditDialog, resolveFileUploaderEntityScope, resolveLookupDisplayField, resolveLookupDisplayTemplate, resolveLookupEntityKey, resolveMasterInterfacePropertyOrder, restoreEntityListExpandedRows, runEntityMiddlewarePipeline, runEntityQuery, runEntityStorageMiddlewarePipeline, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider, shouldLoadEntityListStateFromStorage, shouldResetEntityListStateOnRouteEntry, traceEntityMasterList };
5125
+ export type { AXPClientLocalPluginOptions, AXPDataSeeder, AXPDeleteEntityCommandInput, AXPEntityAccessPort, AXPEntityActionPlugin, AXPEntityBulkPatchPerformInput, AXPEntityCardListHost, AXPEntityCardSecondaryActionItem, AXPEntityCardVariant, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityDataSelectorCategoryFilterOptions, AXPEntityDataSelectorCategoryOptions, AXPEntityDataSelectorCreateOptions, AXPEntityDataSelectorFilterOptions, AXPEntityDataSelectorGridOptions, AXPEntityDataSelectorOpenInput, AXPEntityDataSelectorOpenOptions, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDataSelectorRowActionsConfig, AXPEntityDataSelectorSearchOptions, AXPEntityDataSelectorSelectionOptions, AXPEntityDataSelectorSortOptions, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDeletePerformInput, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListEntry, AXPEntityListExpandRowRef, AXPEntityListInput, AXPEntityListPagingState, AXPEntityListPersistenceMode, AXPEntityListToolbarConvertOptions, AXPEntityMasterListCardLayout, AXPEntityMasterListCardSecondaryActionItem, AXPEntityMasterListViewSortPropViewModel, AXPEntityMiddleware, AXPEntityMiddlewareContext, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityPreloadEntity, AXPEntityStorageBackend, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPFileListLook, AXPFileUploaderEditDialogFieldOptions, AXPFileUploaderEditDialogMode, AXPFileUploaderEditDialogOptions, AXPFileUploaderEntityFilesScope, AXPFileUploaderLoadFilesQueryInput, AXPFileUploaderLoadFilesQueryResult, AXPFileUploaderSaveFilesCommandInput, AXPFileUploaderSaveFilesCommandResult, AXPFileUploaderShowFileListEntityContext, AXPFileUploaderShowFileListOptions, AXPFileUploaderUploadActionDescriptor, AXPFileUploaderWidgetColumnOptions, AXPFileUploaderWidgetDesignerOptions, AXPFileUploaderWidgetEditOptions, AXPFileUploaderWidgetOptions, AXPFileUploaderWidgetPrintOptions, AXPFileUploaderWidgetViewOptions, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupDisplayEvalDeps, AXPMultiSourceDefinition, AXPMultiSourceDefinitionProvider, AXPMultiSourceItem, AXPMultiSourceRef, AXPMultiSourceSearchResult, AXPMultiSourceSearchResultItem, AXPMultiSourceSelectorOpenConfig, AXPMultiSourceSelectorResult, AXPMultiSourceSelectorWidgetOptions, AXPMultiSourceValue, AXPOpenEntityDetailsCommandInput, AXPOpenEntityListCommandInput, AXPOpenEntityListCondition, AXPRelatedColumnMetadata, AXPSelectorStructureFieldDef, AXPSelectorStructureIdentityDisplay, AXPSelectorStructurePresentationMode, AXPSelectorStructureSelectorMode, AXPSelectorStructureStructureMode, AXPSelectorStructureWidgetColumnOptions, AXPSelectorStructureWidgetDesignerOptions, AXPSelectorStructureWidgetEditOptions, AXPSelectorStructureWidgetOptions, AXPSelectorStructureWidgetPrintOptions, AXPSelectorStructureWidgetViewOptions, AXPShowFileUploaderPopupCommandInput, AXPUpdateEntityStatusCommandInput, AttachmentsDisplayMode, AttachmentsPluginOptions, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, EntityDetailPluginPageSlot, EntityMasterListTraceArea, GalleryDisplayMode, GalleryPluginOptions, PairSpanRule, ResolveEntityPluginDetailPageOrderOptions, RunEntityQueryAdapters, SectionOrderConfig, SkipEntityComponentPageRef };