@acorex/platform 21.0.0-next.39 → 21.0.0-next.41

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 (59) hide show
  1. package/fesm2022/acorex-platform-common.mjs +6 -2
  2. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-core.mjs +8 -1
  4. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-domain.mjs +3 -0
  6. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-builder.mjs +137 -34
  8. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-components.mjs +25 -13
  10. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-designer.mjs +261 -58
  12. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-entity.mjs +1583 -632
  14. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-widget-core.mjs +169 -85
  16. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs → acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs} +9 -4
  18. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-widgets.mjs +1053 -409
  20. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-runtime.mjs +120 -9
  22. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  23. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs → acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs} +3 -3
  24. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +1 -0
  25. package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs → acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs} +3 -3
  26. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs → acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs} +3 -3
  28. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-themes-default.mjs +10 -10
  30. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  31. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs} +2 -2
  32. package/fesm2022/acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  34. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs} +38 -16
  36. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-themes-shared.mjs +183 -84
  38. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  39. package/fesm2022/acorex-platform-workflow.mjs +52 -11
  40. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  41. package/package.json +1 -1
  42. package/types/acorex-platform-common.d.ts +14 -10
  43. package/types/acorex-platform-core.d.ts +13 -2
  44. package/types/acorex-platform-domain.d.ts +28 -2
  45. package/types/acorex-platform-layout-builder.d.ts +61 -29
  46. package/types/acorex-platform-layout-designer.d.ts +88 -16
  47. package/types/acorex-platform-layout-entity.d.ts +190 -15
  48. package/types/acorex-platform-layout-widget-core.d.ts +81 -71
  49. package/types/acorex-platform-layout-widgets.d.ts +131 -54
  50. package/types/acorex-platform-runtime.d.ts +156 -61
  51. package/types/acorex-platform-workflow.d.ts +37 -2
  52. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +0 -1
  53. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +0 -1
  54. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +0 -1
  55. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +0 -1
  56. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  57. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs +0 -65
  58. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +0 -1
  59. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +0 -1
@@ -84,6 +84,7 @@ declare const axpCreateEntityCommandDefinition: {
84
84
  summary: string;
85
85
  derivesFrom: string;
86
86
  };
87
+ capabilities: "ai"[];
87
88
  ai: {
88
89
  shortDescription: string;
89
90
  usage: {
@@ -102,6 +103,7 @@ declare const axpCreateEntityCommandDefinition: {
102
103
  };
103
104
  };
104
105
  };
106
+ categories: _acorex_platform_core.AXPDefinitionCategory[];
105
107
  };
106
108
 
107
109
  declare class AXPUpdateEntityCommand implements AXPCommand<any, any> {
@@ -160,6 +162,15 @@ declare class AXPEntityDetailPopoverComponent {
160
162
  protected entityDetails: _angular_core.WritableSignal<any>;
161
163
  protected isLoadingDetails: _angular_core.WritableSignal<boolean>;
162
164
  protected isDetailPopoverOpen: _angular_core.WritableSignal<boolean>;
165
+ /**
166
+ * Stable list of property widgets for the template. Must be a signal (computed), not a method:
167
+ * calling a method from the template rebuilds nodes every CD cycle and can make the widget renderer loop.
168
+ */
169
+ protected readonly entityPropertiesWithWidgets: _angular_core.Signal<{
170
+ name: string;
171
+ title: string;
172
+ node: AXPWidgetNode;
173
+ }[]>;
163
174
  /**
164
175
  * Show the entity detail popover
165
176
  */
@@ -185,11 +196,7 @@ declare class AXPEntityDetailPopoverComponent {
185
196
  * Name priority MUST come before widget-type priority.
186
197
  */
187
198
  private getNameImportanceScore;
188
- protected getEntityPropertiesWithWidgets(): Array<{
189
- name: string;
190
- title: string;
191
- node: AXPWidgetNode;
192
- }>;
199
+ private buildEntityPropertiesWithWidgets;
193
200
  /**
194
201
  * Resolves the data path for a property. For lookups with expose, returns the expanded path
195
202
  * when data has it (e.g. personTitle). Otherwise returns property name (e.g. personTitleId).
@@ -563,6 +570,11 @@ declare class AXPEntityMasterListViewModel {
563
570
  * pre-fills categoryIds and categories for the create form.
564
571
  */
565
572
  private mergeDefaultCategoryForCreate;
573
+ /**
574
+ * Seeds create payloads with fixed list-view conditions (e.g. scope=T on the tenant dashboards view)
575
+ * so new rows match the view context and downstream queries (such as home dashboard) can find them.
576
+ */
577
+ private mergeViewConditionsForCreate;
566
578
  private evaluateExpressions;
567
579
  execute(command: AXPExecuteCommand): Promise<void>;
568
580
  destroy(): void;
@@ -734,6 +746,15 @@ declare const AXPEntityPreloadFiltersViewModelResolver: ResolveFn<Promise<AXPEnt
734
746
 
735
747
  interface AXPEntityModifierContext {
736
748
  readonly entity: AXPEntity;
749
+ plugins: {
750
+ list(): NonNullable<AXPEntity['plugins']>;
751
+ add(...items: NonNullable<AXPEntity['plugins']>): AXPEntityModifierContext;
752
+ remove(predicate: (p: NonNullable<AXPEntity['plugins']>[number]) => boolean): AXPEntityModifierContext;
753
+ find(name: string): {
754
+ get(): NonNullable<AXPEntity['plugins']>[number] | undefined;
755
+ update(updater: (p: NonNullable<AXPEntity['plugins']>[number]) => NonNullable<AXPEntity['plugins']>[number]): AXPEntityModifierContext;
756
+ };
757
+ };
737
758
  title: {
738
759
  get(): string;
739
760
  set(newTitle: string): AXPEntityModifierContext;
@@ -959,28 +980,71 @@ declare class AXPEntityDefinitionRegistryService {
959
980
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDefinitionRegistryService>;
960
981
  }
961
982
 
983
+ /**
984
+ * One audit point in time for a record lifecycle event.
985
+ *
986
+ * Used inside {@link AXPRecordAuditInfo} (`created`, `updated`, `deleted`).
987
+ * Backends and mock middleware typically set `at` and `by`; `reason` and `source`
988
+ * (for example `api`, `system`, `import`) are optional diagnostic fields.
989
+ */
962
990
  interface AXPAuditEvent {
963
991
  at?: Date;
964
992
  by?: AXPUserReference;
993
+ /** Optional business or technical reason for the event. */
965
994
  reason?: string;
995
+ /** Optional origin of the change (for example `api`, `system`, `import`). */
966
996
  source?: string;
967
997
  }
998
+ /**
999
+ * Aggregated audit trail for a persisted row.
1000
+ *
1001
+ * Filled by APIs or connectivity mock middleware when creating, updating, or
1002
+ * soft-deleting records. UI surfaces may show these via the history plugin or
1003
+ * custom columns. Version snapshot pipelines often **omit** this object from
1004
+ * stored snapshots while still applying it to live payloads.
1005
+ *
1006
+ * @remarks Fields are optional today; callers should tolerate partial data.
1007
+ */
968
1008
  interface AXPRecordAuditInfo {
969
1009
  created?: AXPAuditEvent;
970
1010
  updated?: AXPAuditEvent;
971
1011
  deleted?: AXPAuditEvent;
972
1012
  }
1013
+ /**
1014
+ * Cross-cutting flags that are not part of the domain schema but affect how a
1015
+ * row is shown or edited (visibility, built-in/system rows, immutability).
1016
+ *
1017
+ * Module entity models sometimes expose only this slice (for example
1018
+ * `stateInfo` on business units) when the rest of the row uses a bespoke shape.
1019
+ *
1020
+ * @remarks Entity list/detail flows should honor these flags where applicable.
1021
+ */
973
1022
  interface AXPRecordStateInfo {
974
1023
  isHidden?: boolean;
975
1024
  isSystem?: boolean;
976
1025
  isImmutable?: boolean;
1026
+ /** @deprecated Prefer explicit domain modeling over this flag. */
977
1027
  isDistributed?: boolean;
978
1028
  }
1029
+ /**
1030
+ * Tenancy and actor scope for a row in a multi-tenant application.
1031
+ *
1032
+ * Used to associate a record with a tenant, application instance, or owning
1033
+ * user when the API returns ownership metadata alongside domain fields.
1034
+ */
979
1035
  interface AXPRecordOwnershipInfo {
980
1036
  tenantId?: string;
981
1037
  applicationId?: string;
982
1038
  userId?: string;
983
1039
  }
1040
+ /**
1041
+ * Base shape for **entity row** TypeScript models across modules: a stable
1042
+ * identifier plus optional platform metadata.
1043
+ *
1044
+ * Module-specific interfaces extend this with domain properties
1045
+ * (`extends AXPEntityModel<string>` / `AXPEntityModel<Id>`) while reusing
1046
+ * `auditInfo`, `stateInfo`, and `ownershipInfo` when the backend sends them.
1047
+ */
984
1048
  interface AXPEntityModel<Id> {
985
1049
  id: Id;
986
1050
  auditInfo?: AXPRecordAuditInfo;
@@ -1628,6 +1692,7 @@ declare class AXPEntityFormBuilderService implements IEntitySelectorStage {
1628
1692
  private readonly entityRegistry;
1629
1693
  private readonly layoutBuilder;
1630
1694
  private readonly deviceService;
1695
+ private readonly expressionEvaluator;
1631
1696
  entity(fullName: string): IInterfaceSelectorStage;
1632
1697
  /**
1633
1698
  * Fetches a record by ID for the specified entity.
@@ -1689,12 +1754,23 @@ declare function entityMasterCrudActions(options?: {
1689
1754
  }): AXPEntityAction[];
1690
1755
  declare function entityMasterRecordActions(): AXPEntityAction[];
1691
1756
  declare function entityDetailsCreateActions(parentId: string): AXPEntityAction;
1757
+ /**
1758
+ * Type-level Create with empty `process.data`; the FK is supplied from `relatedEntity.persistence.foreignKeyField`
1759
+ * when the related list is built (see `mergeForeignKeyFieldIntoCreateActions`).
1760
+ */
1761
+ declare function entityDetailsCreateActionsDeferredParent(): AXPEntityAction;
1762
+ /**
1763
+ * Ensures each type-level `Entity:Create` action includes `process.data[foreignKeyField]` bound to the parent row id.
1764
+ */
1765
+ declare function mergeForeignKeyFieldIntoCreateActions(foreignKeyField: string | undefined, actions: AXPEntityAction[] | undefined): AXPEntityAction[];
1766
+ /** Property names hidden on nested Create from a related list (`excludeProperties` plus `foreignKeyField` when set). */
1767
+ declare function collectNestedCreateHiddenProperties(relatedEntity: AXPRelatedEntity): string[] | undefined;
1692
1768
  declare function entityDetailsSimpleCondition(fk: string): AXPQueryFilter;
1693
1769
  declare function entityDetailsReferenceCondition(type: string): AXPQueryFilter[];
1694
1770
  declare function entityDetailsEditAction(): AXPEntityAction;
1695
1771
  declare function entityDetailsNewEditAction(): AXPEntityAction;
1696
1772
  declare function entityOverrideDetailsViewAction(): AXPEntityAction;
1697
- declare function entityDetailsCrudActions(parentId: string, options?: {
1773
+ declare function entityDetailsCrudActions(parentId?: string, options?: {
1698
1774
  create?: boolean;
1699
1775
  delete?: boolean;
1700
1776
  view?: boolean;
@@ -2225,6 +2301,11 @@ declare class AXPEntityListTableService {
2225
2301
  * Handle execution of a row command (shared by double-click and command handlers)
2226
2302
  */
2227
2303
  private handleRowCommand;
2304
+ /**
2305
+ * When a related entity list declares `excludeProperties`, row commands bypass the details page
2306
+ * `execute()` merge — apply the same exclusions for embedded create/update commands.
2307
+ */
2308
+ private mergeRelatedListFormOptions;
2228
2309
  /**
2229
2310
  * Create default events
2230
2311
  */
@@ -2313,6 +2394,23 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
2313
2394
  protected handleSecondaryActionClick(item: AXPActionMenuItem): void;
2314
2395
  protected execute(commandName: string, _data: unknown): Promise<void>;
2315
2396
  private evaluateToolbarExpressions;
2397
+ /**
2398
+ * Re-evaluates related-entity list filters from the live dialog form context (e.g. after create saves the main row id).
2399
+ */
2400
+ private applyRelatedFiltersFromContext;
2401
+ /**
2402
+ * Pushes current toolbar filters to the embedded list data source when both exist.
2403
+ * Returns false while data-list is still mounting (see deferred listNode.set in ngOnInit).
2404
+ */
2405
+ private pushToolbarFiltersToDataSource;
2406
+ /**
2407
+ * Writes toolbar filters from specs and pushes them onto the data source so refresh/reload keeps the parent scope.
2408
+ */
2409
+ private applyRelatedFiltersFromContextAndDatasource;
2410
+ /**
2411
+ * Refreshes the embedded data list (toolbar / workflow). In wizard mode, `refresh` is patched to re-apply scoped filters first.
2412
+ */
2413
+ private refreshGridWithParentScopedFilters;
2316
2414
  protected queries: undefined;
2317
2415
  /**
2318
2416
  * Validates that all required dependencies are available
@@ -2472,6 +2570,37 @@ declare abstract class LookupWidgetLookBase {
2472
2570
  }
2473
2571
 
2474
2572
  type AXPLookupWidgetLookType = 'select' | 'lookup';
2573
+ /**
2574
+ * How the lookup column resolves related items for display in entity lists.
2575
+ * - `hydrated`: titles (and optional ids) are already on the row; inline preview + overflow popover use row data only.
2576
+ * - `idsWithCount`: ids and optional count live on the row; the cell shows a count summary and loads titles via entity `byKey` when the popover opens.
2577
+ * - `countOnly`: only a count is on the row; the popover loads ids/titles via a registered `AXPQuery` when opened.
2578
+ */
2579
+ type AXPLookupColumnResolveStrategy = 'hydrated' | 'idsWithCount' | 'countOnly';
2580
+ /**
2581
+ * Column list only: controls how the lookup column loads and displays related items in grids.
2582
+ * Omitted or empty strategy defaults to `hydrated` at runtime.
2583
+ */
2584
+ interface AXPLookupColumnResolveOptions {
2585
+ /** Default `hydrated` when omitted. */
2586
+ strategy?: AXPLookupColumnResolveStrategy;
2587
+ /** Lodash-style path on `rowData` for the displayed count (e.g. `rolesCount`). */
2588
+ countFieldPath?: string;
2589
+ /** Lodash-style path on `rowData` for the related id list (`idsWithCount`). If omitted, the column `rawValue` is used. */
2590
+ idsPath?: string;
2591
+ /** Registered query key for `AXPQueryExecutor.fetch` when using `countOnly`. */
2592
+ queryKey?: string;
2593
+ /**
2594
+ * Maps query input property names to lodash-style paths on `rowData` (e.g. `{ "userId": "id" }`).
2595
+ * May be a JSON string when set from the layout designer text field.
2596
+ */
2597
+ queryParams?: Record<string, string> | string;
2598
+ /**
2599
+ * Dot path into the named query result for the items array. Defaults to `items` when the result is an object.
2600
+ * If the query returns an array directly, leave unset and handle at runtime.
2601
+ */
2602
+ queryResultItemsPath?: string;
2603
+ }
2475
2604
  interface AXPLookupWidgetOptions {
2476
2605
  disabled?: boolean | AXPExpression;
2477
2606
  readonly?: boolean | AXPExpression;
@@ -2480,6 +2609,8 @@ interface AXPLookupWidgetOptions {
2480
2609
  look?: AXPLookupWidgetLookType;
2481
2610
  allowClear?: boolean;
2482
2611
  displayFormat?: string;
2612
+ /** Column list: lazy resolve and summary behavior. */
2613
+ columnResolve?: AXPLookupColumnResolveOptions;
2483
2614
  }
2484
2615
 
2485
2616
  declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any> {
@@ -2522,7 +2653,10 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
2522
2653
  protected setLoading: (loading: boolean) => void;
2523
2654
  protected setItems: (items: any[]) => void;
2524
2655
  /**
2525
- * Update expose data for empty state
2656
+ * Writes expose targets into context using per-path updates.
2657
+ * Avoids `contextService.patch()` with nested objects: patch shallow-merges top-level keys only,
2658
+ * so e.g. `{ person: { educationLevel: { id, title } } }` would replace the entire `person`
2659
+ * object and drop sibling fields like `person.educationLevelId`, causing a value/effect loop.
2526
2660
  */
2527
2661
  private expoesItems;
2528
2662
  private singleOrMultiple;
@@ -2535,9 +2669,12 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
2535
2669
 
2536
2670
  declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
2537
2671
  private readonly entityDetailPopoverService;
2538
- private readonly mlResolver;
2672
+ private readonly translation;
2539
2673
  private readonly formatService;
2674
+ private readonly entityService;
2675
+ private readonly queryExecutor;
2540
2676
  protected moreButton: _angular_core.Signal<ElementRef<any> | undefined>;
2677
+ protected lazyTrigger: _angular_core.Signal<ElementRef<any> | undefined>;
2541
2678
  protected morePopover: _angular_core.Signal<AXPopoverComponent | undefined>;
2542
2679
  protected host: ElementRef<any>;
2543
2680
  protected valueField: string;
@@ -2547,21 +2684,50 @@ declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<an
2547
2684
  protected maxVisible: number;
2548
2685
  protected displayFormat: _angular_core.Signal<string | undefined>;
2549
2686
  protected displayField: _angular_core.Signal<string>;
2687
+ protected columnResolve: _angular_core.Signal<AXPLookupColumnResolveOptions | undefined>;
2688
+ protected resolveStrategy: _angular_core.Signal<AXPLookupColumnResolveStrategy>;
2689
+ protected isHydratedStrategy: _angular_core.Signal<boolean>;
2550
2690
  protected isMorePopoverOpen: _angular_core.WritableSignal<boolean>;
2551
2691
  protected selectedItemIndex: _angular_core.WritableSignal<number>;
2692
+ protected resolvedPopoverItems: _angular_core.WritableSignal<any[]>;
2693
+ protected resolveStatus: _angular_core.WritableSignal<"error" | "idle" | "loading" | "ready">;
2694
+ protected resolveError: _angular_core.WritableSignal<string | null>;
2695
+ protected summaryLabel: _angular_core.WritableSignal<string>;
2696
+ protected popoverHeader: _angular_core.WritableSignal<string>;
2552
2697
  protected displayItems: _angular_core.Signal<any[]>;
2553
2698
  protected allItems: _angular_core.Signal<any[]>;
2554
2699
  protected visibleItems: _angular_core.Signal<any[]>;
2555
2700
  protected hasMoreItems: _angular_core.Signal<boolean>;
2556
- protected remainingItemsCount: _angular_core.Signal<number>;
2701
+ protected idsFromRow: _angular_core.Signal<any[]>;
2702
+ protected displayCount: _angular_core.Signal<number>;
2703
+ protected popoverListItems: _angular_core.Signal<any[]>;
2704
+ /** Avoid resetting lazy cache on every CD when `rowData` is a new object reference for the same row. */
2705
+ private previousLazyRowId;
2706
+ constructor();
2557
2707
  protected showMoreItems(): void;
2558
- protected onMorePopoverOpenChange(event: any): void;
2708
+ protected openLazyPopover(): void;
2709
+ protected onPopoverOpenChange(event: unknown): void;
2559
2710
  protected showItemDetail(item: any, index: number): Promise<void>;
2560
2711
  protected handleItemClick(index: number): void;
2561
- private openMorePopover;
2712
+ protected handleResolvedItemClick(index: number): void;
2713
+ protected handlePopoverItemClick(index: number): void;
2714
+ protected getDisplayRaw(item: any): string;
2715
+ private refreshSummaryLabel;
2716
+ private refreshPopoverHeader;
2717
+ private resetLazyState;
2718
+ private openPopoverFromRef;
2562
2719
  private closeMorePopover;
2720
+ private ensureLazyItemsLoaded;
2721
+ /**
2722
+ * ax-popover may emit a boolean, CustomEvent with detail, or a DOM Event depending on version.
2723
+ */
2724
+ private coercePopoverOpenEvent;
2725
+ private loadByIds;
2726
+ private loadByNamedQuery;
2727
+ private buildNamedQueryInput;
2728
+ private parseQueryParamsMap;
2729
+ private extractItemsFromQueryResult;
2563
2730
  private extractItem;
2564
- protected getDisplayRaw(item: any): string;
2565
2731
  private resolveDisplayValue;
2566
2732
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLookupWidgetColumnComponent, never>;
2567
2733
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLookupWidgetColumnComponent, "ng-component", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; }, {}, never, never, true, never>;
@@ -3183,14 +3349,23 @@ declare class AXPShowDetailViewAction extends AXPWorkflowAction {
3183
3349
  }
3184
3350
  declare const AXPShowDetailsViewWorkflow: AXPWorkflow;
3185
3351
 
3352
+ /** Optional list filters passed into `show-list-view` (e.g. from `Entity:List` with `conditions`). */
3353
+ interface AXPShowListViewCondition {
3354
+ name?: string;
3355
+ field?: string;
3356
+ operator?: {
3357
+ type: string;
3358
+ };
3359
+ value?: unknown;
3360
+ }
3186
3361
  declare class AXPShowListViewAction extends AXPWorkflowAction {
3187
3362
  private navigation;
3188
3363
  private sessionService;
3189
- execute(context?: any): Promise<void>;
3364
+ execute(context: AXPWorkflowContext): Promise<void>;
3190
3365
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPShowListViewAction, never>;
3191
3366
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPShowListViewAction>;
3192
3367
  }
3193
3368
  declare const AXPShowListViewWorkflow: AXPWorkflow;
3194
3369
 
3195
- export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntitiesListDataSourceDefinition, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionProviderWidget, AXPEntityDefinitionProviderWidgetEditComponent, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListTableService, AXPEntityListToolbarService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityPreloadFiltersContainerComponent, AXPEntityPreloadFiltersViewModel, AXPEntityPreloadFiltersViewModelResolver, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPLayoutOrderingConfigService, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPRelatedColumnEnrichmentService, AXPRelatedColumnMetadataResolver, AXPSelectorStructureWidget, AXPSelectorStructureWidgetColumnComponent, AXPSelectorStructureWidgetEditComponent, AXPSelectorStructureWidgetViewComponent, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, DEFAULT_COLUMN_ORDER, DEFAULT_PAIR_SPAN_RULES, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, EntityBuilder, EntityDataAccessor, actionExists, axpCreateEntityAiToolInputDefaults, axpCreateEntityCommandDefinition, cloneLayoutArrays, columnOrderingMiddleware, columnOrderingMiddlewareProvider, columnWidthMiddleware, columnWidthMiddlewareProvider, createColumnOrderingMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, defaultMultiLanguageMiddleware, defaultMultiLanguageMiddlewareProvider, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, getMasterInterfacePropertySortKey, isAXPMiddlewareAbortError, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, provideEntity, resolveEntityPluginDetailPageOrder, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider };
3196
- export type { AXPAuditEvent, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListEntry, AXPEntityListInput, AXPEntityListItemDto, AXPEntityListToolbarConvertOptions, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupWidgetLookType, AXPLookupWidgetOptions, AXPMultiSourceDefinition, AXPMultiSourceDefinitionProvider, AXPMultiSourceItem, AXPMultiSourceRef, AXPMultiSourceSearchResult, AXPMultiSourceSearchResultItem, AXPMultiSourceSelectorOpenConfig, AXPMultiSourceSelectorResult, AXPMultiSourceSelectorWidgetOptions, AXPMultiSourceValue, AXPOpenEntityDetailsCommandInput, AXPRecordAuditInfo, AXPRecordOwnershipInfo, AXPRecordStateInfo, AXPRelatedColumnMetadata, AXPSelectorStructureFieldDef, AXPSelectorStructureIdentityDisplay, AXPSelectorStructurePresentationMode, AXPSelectorStructureSelectorMode, AXPSelectorStructureStructureMode, AXPSelectorStructureWidgetColumnOptions, AXPSelectorStructureWidgetDesignerOptions, AXPSelectorStructureWidgetEditOptions, AXPSelectorStructureWidgetOptions, AXPSelectorStructureWidgetPrintOptions, AXPSelectorStructureWidgetViewOptions, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, EntityDetailPluginPageSlot, PairSpanRule, ResolveEntityPluginDetailPageOrderOptions, SectionOrderConfig, SkipEntityComponentPageRef };
3370
+ export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntitiesListDataSourceDefinition, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionProviderWidget, AXPEntityDefinitionProviderWidgetEditComponent, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListTableService, AXPEntityListToolbarService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityPreloadFiltersContainerComponent, AXPEntityPreloadFiltersViewModel, AXPEntityPreloadFiltersViewModelResolver, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPLayoutOrderingConfigService, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPRelatedColumnEnrichmentService, AXPRelatedColumnMetadataResolver, AXPSelectorStructureWidget, AXPSelectorStructureWidgetColumnComponent, AXPSelectorStructureWidgetEditComponent, AXPSelectorStructureWidgetViewComponent, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, DEFAULT_COLUMN_ORDER, DEFAULT_PAIR_SPAN_RULES, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, EntityBuilder, EntityDataAccessor, actionExists, axpCreateEntityAiToolInputDefaults, axpCreateEntityCommandDefinition, cloneLayoutArrays, collectNestedCreateHiddenProperties, columnOrderingMiddleware, columnOrderingMiddlewareProvider, columnWidthMiddleware, columnWidthMiddlewareProvider, createColumnOrderingMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, defaultMultiLanguageMiddleware, defaultMultiLanguageMiddlewareProvider, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, getMasterInterfacePropertySortKey, isAXPMiddlewareAbortError, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, mergeForeignKeyFieldIntoCreateActions, provideEntity, resolveEntityPluginDetailPageOrder, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider };
3371
+ export type { AXPAuditEvent, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListEntry, AXPEntityListInput, AXPEntityListItemDto, AXPEntityListToolbarConvertOptions, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupColumnResolveOptions, AXPLookupColumnResolveStrategy, AXPLookupWidgetLookType, AXPLookupWidgetOptions, AXPMultiSourceDefinition, AXPMultiSourceDefinitionProvider, AXPMultiSourceItem, AXPMultiSourceRef, AXPMultiSourceSearchResult, AXPMultiSourceSearchResultItem, AXPMultiSourceSelectorOpenConfig, AXPMultiSourceSelectorResult, AXPMultiSourceSelectorWidgetOptions, AXPMultiSourceValue, AXPOpenEntityDetailsCommandInput, AXPRecordAuditInfo, AXPRecordOwnershipInfo, AXPRecordStateInfo, AXPRelatedColumnMetadata, AXPSelectorStructureFieldDef, AXPSelectorStructureIdentityDisplay, AXPSelectorStructurePresentationMode, AXPSelectorStructureSelectorMode, AXPSelectorStructureStructureMode, AXPSelectorStructureWidgetColumnOptions, AXPSelectorStructureWidgetDesignerOptions, AXPSelectorStructureWidgetEditOptions, AXPSelectorStructureWidgetOptions, AXPSelectorStructureWidgetPrintOptions, AXPSelectorStructureWidgetViewOptions, AXPShowListViewCondition, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, EntityDetailPluginPageSlot, PairSpanRule, ResolveEntityPluginDetailPageOrderOptions, SectionOrderConfig, SkipEntityComponentPageRef };
@@ -3,7 +3,8 @@ import { Signal, InjectionToken, ComponentRef, OnInit, EventEmitter, TemplateRef
3
3
  import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
4
4
  import * as _ngrx_signals from '@ngrx/signals';
5
5
  import * as _acorex_platform_core from '@acorex/platform/core';
6
- import { AXPMultiLanguageString, AXPOptionsData, AXPDataType, AXPExpression, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPValidationRules, AXPPartialNested, AXPContextChangeEvent, AXPExpressionEvaluatorService, AXPProperty } from '@acorex/platform/core';
6
+ import { AXPOptionsData, AXPMultiLanguageString, AXPDefinitionCategory, AXPDataType, AXPExpression, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPValidationRules, AXPPartialNested, AXPProperty, AXPContextChangeEvent, AXPExpressionEvaluatorService } from '@acorex/platform/core';
7
+ export { AXPDefinitionCategory, normalizeDefinitionCategories } from '@acorex/platform/core';
7
8
  import { AXValueChangedEvent, AXDataSource } from '@acorex/cdk/common';
8
9
  import { Subject, BehaviorSubject } from 'rxjs';
9
10
  import { AXDataTableColumnComponent } from '@acorex/components/data-table';
@@ -45,6 +46,8 @@ type AXPWidgetCoreElementAction = {
45
46
  zone?: 'header' | 'footer';
46
47
  placement?: 'prefix' | 'suffix';
47
48
  scope?: 'primary' | 'secondary';
49
+ /** When `command` is not `widget:<name>.<action>`, widget name used to resolve `api` for `hidden` / `disabled` expressions. */
50
+ predicateApiWidgetName?: string;
48
51
  };
49
52
  declare abstract class AXPWidgetCoreElement {
50
53
  abstract get id(): string | null;
@@ -91,22 +94,7 @@ declare class AXPWidgetCoreService {
91
94
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetCoreService>;
92
95
  }
93
96
 
94
- interface AXPWidgetCategory {
95
- name: string;
96
- title: AXPMultiLanguageString;
97
- order: number;
98
- }
99
- /** Normalizes widget categories to an array for iteration and serialization. */
100
- declare function normalizeWidgetCategories(categories?: AXPWidgetCategory | AXPWidgetCategory[]): AXPWidgetCategory[];
101
- declare const AXP_WIDGETS_LAYOUT_CATEGORY: AXPWidgetCategory;
102
- declare const AXP_WIDGETS_EDITOR_CATEGORY: AXPWidgetCategory;
103
- declare const AXP_WIDGETS_ACTION_CATEGORY: AXPWidgetCategory;
104
- declare const AXP_WIDGETS_ADVANCE_CATEGORY: AXPWidgetCategory;
105
- /** Widgets exposed to AI assistants for structured rendering (see Widgets:GetForAI). */
106
- declare const AXP_WIDGETS_AI_CATEGORY: AXPWidgetCategory;
107
- declare const AXP_WIDGETS_CATEGORIES: AXPWidgetCategory[];
108
-
109
- type AXPWidgetGroup = 'form-element' | 'dashboard-widget' | 'form-template' | 'property-editor' | 'meta-data' | 'setting-widget' | 'entity-widget' | 'utility-widget';
97
+ type AXPWidgetGroup = 'form-element' | 'dashboard-widget' | 'form-template' | 'property-editor' | 'meta-data' | 'setting-widget' | 'entity-widget' | 'utility-widget' | 'base-widget';
110
98
  declare enum AXPWidgetGroupEnum {
111
99
  FormElement = "form-element",
112
100
  DashboardWidget = "dashboard-widget",
@@ -115,7 +103,8 @@ declare enum AXPWidgetGroupEnum {
115
103
  MetaData = "meta-data",
116
104
  SettingWidget = "setting-widget",
117
105
  EntityWidget = "entity-widget",
118
- UtilityWidget = "utility-widget"
106
+ UtilityWidget = "utility-widget",
107
+ BaseWidget = "base-widget"
119
108
  }
120
109
 
121
110
  interface AXPWidgetTypesMap {
@@ -192,7 +181,6 @@ interface AXPWidgetTypesMap {
192
181
  metaData: 'meta-data-editor';
193
182
  templateEditor: 'template-box-editor';
194
183
  templateContentEditor: 'template-content-editor';
195
- themePaletteChooser: 'theme-palette-chooser';
196
184
  themeModeChooser: 'theme-mode-chooser';
197
185
  menuOrientationChooser: 'menu-orientation-chooser';
198
186
  fontStyleChooser: 'font-style-chooser';
@@ -216,8 +204,6 @@ interface AXPWidgetTypesMap {
216
204
  entityDefinitionProvider: 'entity-definition-provider-editor';
217
205
  }
218
206
 
219
- /** Inclusion mode for AI widget catalog queries (Widgets:GetForAI). */
220
- type AXPWidgetAiCatalogMode = 'include' | 'exclude' | 'inherit';
221
207
  interface AXPWidgetPropertyGroup {
222
208
  name: string;
223
209
  title: string;
@@ -313,6 +299,8 @@ interface AXPWidgetColumnNode {
313
299
  type: string;
314
300
  path: string;
315
301
  options?: AXPOptionsData;
302
+ /** Column header caption from data-table (`title || name`); often an i18n key. */
303
+ caption?: string;
316
304
  }
317
305
  interface AXPWidgetColumnNodeToken extends AXPWidgetColumnNode {
318
306
  config: AXPWidgetConfig;
@@ -355,11 +343,20 @@ interface AXPWidgetConfig<T = any> {
355
343
  icon?: string;
356
344
  description?: AXPMultiLanguageString;
357
345
  /**
358
- * Optional guidance for AI assistants (Widgets:GetForAI). Explains when and how to use this widget
359
- * for structured output; unrelated to end-user UI copy.
346
+ * Picker tabs and section headings in the widget gallery (when the widget is included in the picker list).
347
+ */
348
+ categories?: AXPDefinitionCategory | AXPDefinitionCategory[];
349
+ /**
350
+ * Optional sub-group within a parent category tab in the widget picker.
351
+ * Ignored on the "All" tab (widgets are grouped by parent category only).
352
+ */
353
+ subCategory?: AXPDefinitionCategory;
354
+ /**
355
+ * Which surfaces may offer this widget. The designer widget picker includes a widget only when this list
356
+ * intersects the requested groups (e.g. the layout designer requests `AXPWidgetGroupEnum.FormElement`).
357
+ * Use `AXPWidgetGroupEnum.BaseWidget` alone for types that must stay registered (filters, renderers, AI tools)
358
+ * but must not appear in form or dashboard pickers.
360
359
  */
361
- aiDescription?: string | null;
362
- categories?: AXPWidgetCategory | AXPWidgetCategory[];
363
360
  groups?: AXPWidgetGroup[];
364
361
  properties?: AXPWidgetProperty[];
365
362
  components: AXPWidgetConfigComponents;
@@ -375,12 +372,6 @@ interface AXPWidgetConfig<T = any> {
375
372
  * If omitted, the default display is used.
376
373
  */
377
374
  historyLayout?: AXPWidgetNode;
378
- /**
379
- * Controls inclusion in AI-facing widget catalog queries (e.g. Widgets:GetForAI).
380
- * `inherit` (default): include only when `categories` contains the AI category (`AXP_WIDGETS_AI_CATEGORY`).
381
- * `include` / `exclude`: force include or exclude regardless of categories.
382
- */
383
- aiCatalog?: AXPWidgetAiCatalogMode;
384
375
  }
385
376
  interface AXPExtendedWidget {
386
377
  widget: AXPWidgetConfig;
@@ -511,6 +502,8 @@ declare abstract class AXPColumnWidgetComponent<T = any | null | void> {
511
502
  private readonly token;
512
503
  protected readonly path: string;
513
504
  protected readonly options: Record<string, any>;
505
+ /** Column header caption when rendered inside `axp-widget-column-renderer`. */
506
+ protected readonly columnCaption: string | undefined;
514
507
  protected readonly rawValue: T;
515
508
  protected readonly rowData: any;
516
509
  protected readonly nullText: any;
@@ -537,6 +530,33 @@ declare abstract class AXPBlockBaseLayoutWidgetComponent extends AXPBoxModelLayo
537
530
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPBlockBaseLayoutWidgetComponent>;
538
531
  }
539
532
 
533
+ /**
534
+ * Maps a platform {@link AXPProperty} to a property viewer row model ({@link AXPWidgetProperty}).
535
+ * Kept in widget-core (not platform/core) to avoid a dependency cycle: widget-core already depends on platform/core.
536
+ */
537
+ interface MapAXPPropertyToWidgetPropertyOptions {
538
+ group: AXPWidgetPropertyGroup;
539
+ order: number;
540
+ /**
541
+ * Dot path prefix for {@link AXPWidgetProperty.schema.interface.path}.
542
+ * Example: `input` → `input.requestId`; `properties` → `properties.message`.
543
+ */
544
+ valuePathPrefix: string;
545
+ /**
546
+ * Resolves a display title (supports multi-language strings on the source property).
547
+ */
548
+ resolveTitle: (property: AXPProperty) => string;
549
+ /**
550
+ * Optional description line for the viewer row.
551
+ */
552
+ resolveDescription?: (property: AXPProperty) => string | undefined;
553
+ }
554
+ /**
555
+ * Converts a domain {@link AXPProperty} into a {@link AXPWidgetProperty} row for
556
+ * the layout property viewer (`AXPPropertyViewerService` and `buildPropertyViewerTabsFromProperties`).
557
+ */
558
+ declare function mapAXPPropertyToWidgetProperty(property: AXPProperty, options: MapAXPPropertyToWidgetPropertyOptions): AXPWidgetProperty;
559
+
540
560
  type AXPPropertyEditorSideValues = 'top' | 'left' | 'bottom' | 'right';
541
561
  type AXPPropertyEditorCornerValues = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
542
562
  type AXPPropertyEditorSideGeneric<T extends string, U extends string | number = string> = Record<T, U>;
@@ -1059,44 +1079,34 @@ interface AXPMetaDataDefinition {
1059
1079
 
1060
1080
  declare const AXPWidgetsCatalog: AXPWidgetTypesMap;
1061
1081
 
1062
- /**
1063
- * Maps a platform {@link AXPProperty} to a property viewer row model ({@link AXPWidgetProperty}).
1064
- * Kept in widget-core (not platform/core) to avoid a dependency cycle: widget-core already depends on platform/core.
1065
- */
1066
- interface MapAXPPropertyToWidgetPropertyOptions {
1067
- group: AXPWidgetPropertyGroup;
1068
- order: number;
1069
- /**
1070
- * Dot path prefix for {@link AXPWidgetProperty.schema.interface.path}.
1071
- * Example: `input` → `input.requestId`; `properties` → `properties.message`.
1072
- */
1073
- valuePathPrefix: string;
1074
- /**
1075
- * Resolves a display title (supports multi-language strings on the source property).
1076
- */
1077
- resolveTitle: (property: AXPProperty) => string;
1078
- /**
1079
- * Optional description line for the viewer row.
1080
- */
1081
- resolveDescription?: (property: AXPProperty) => string | undefined;
1082
- }
1083
- /**
1084
- * Converts a domain {@link AXPProperty} into a {@link AXPWidgetProperty} row for
1085
- * the layout property viewer (`AXPPropertyViewerService` and `buildPropertyViewerTabsFromProperties`).
1086
- */
1087
- declare function mapAXPPropertyToWidgetProperty(property: AXPProperty, options: MapAXPPropertyToWidgetPropertyOptions): AXPWidgetProperty;
1088
-
1089
- /**
1090
- * True when the widget declares the AI category (see {@link AXP_WIDGETS_AI_CATEGORY}).
1091
- */
1092
- declare function hasAiWidgetCategory(config: AXPWidgetConfig): boolean;
1093
- /**
1094
- * Resolves AI catalog visibility using {@link AXPWidgetConfig.aiCatalog} and the AI widget category.
1095
- * - `exclude`: never listed.
1096
- * - `include`: always listed (override when the widget cannot declare the AI category yet).
1097
- * - `inherit` / omitted: listed only if {@link hasAiWidgetCategory} is true.
1098
- */
1099
- declare function isWidgetAiCatalogIncluded(config: AXPWidgetConfig): boolean;
1082
+ declare const AXP_WIDGETS_EDITOR_SUB_TEXT_INPUTS: AXPDefinitionCategory;
1083
+ declare const AXP_WIDGETS_EDITOR_SUB_NUMERIC: AXPDefinitionCategory;
1084
+ declare const AXP_WIDGETS_EDITOR_SUB_DATETIME: AXPDefinitionCategory;
1085
+ declare const AXP_WIDGETS_EDITOR_SUB_CHOICE: AXPDefinitionCategory;
1086
+ declare const AXP_WIDGETS_EDITOR_SUB_RICH: AXPDefinitionCategory;
1087
+ declare const AXP_WIDGETS_EDITOR_SUB_VISUAL: AXPDefinitionCategory;
1088
+ declare const AXP_WIDGETS_EDITOR_SUB_COMPOSITE: AXPDefinitionCategory;
1089
+ declare const AXP_WIDGETS_EDITOR_SUB_CONFIG: AXPDefinitionCategory;
1090
+ declare const AXP_WIDGETS_LAYOUT_SUB_SHELL: AXPDefinitionCategory;
1091
+ declare const AXP_WIDGETS_LAYOUT_SUB_GRID: AXPDefinitionCategory;
1092
+ declare const AXP_WIDGETS_LAYOUT_SUB_SURFACES: AXPDefinitionCategory;
1093
+ declare const AXP_WIDGETS_LAYOUT_SUB_TABS: AXPDefinitionCategory;
1094
+ declare const AXP_WIDGETS_LAYOUT_SUB_LISTS: AXPDefinitionCategory;
1095
+ declare const AXP_WIDGETS_LAYOUT_SUB_UTILITY: AXPDefinitionCategory;
1096
+ declare const AXP_WIDGETS_ACTION_SUB_CONTROLS: AXPDefinitionCategory;
1097
+ declare const AXP_WIDGETS_ADVANCE_SUB_MEDIA: AXPDefinitionCategory;
1098
+ declare const AXP_WIDGETS_ADVANCE_SUB_INPUT: AXPDefinitionCategory;
1099
+ declare const AXP_WIDGETS_ADVANCE_SUB_DATA: AXPDefinitionCategory;
1100
+ declare const AXP_WIDGETS_ADVANCE_SUB_TOOLS: AXPDefinitionCategory;
1101
+ /** Normalizes widget categories to an array for iteration and serialization. */
1102
+ declare function normalizeWidgetCategories(categories?: AXPDefinitionCategory | AXPDefinitionCategory[]): AXPDefinitionCategory[];
1103
+ declare const AXP_WIDGETS_LAYOUT_CATEGORY: AXPDefinitionCategory;
1104
+ declare const AXP_WIDGETS_EDITOR_CATEGORY: AXPDefinitionCategory;
1105
+ declare const AXP_WIDGETS_ACTION_CATEGORY: AXPDefinitionCategory;
1106
+ declare const AXP_WIDGETS_ADVANCE_CATEGORY: AXPDefinitionCategory;
1107
+ /** AI category tab in the widget picker (metadata); unrelated to Widgets:GetForAI listing scope. */
1108
+ declare const AXP_WIDGETS_AI_CATEGORY: AXPDefinitionCategory;
1109
+ declare const AXP_WIDGETS_CATEGORIES: AXPDefinitionCategory[];
1100
1110
 
1101
- export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPageStatus, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetCoreElement, AXPWidgetCoreModule, AXPWidgetCoreService, AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetSerializationHelper, AXPWidgetStatus, AXPWidgetsCatalog, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_AI_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_DEFINITION_PROVIDER, AXP_WIDGET_TOKEN, buildWidgetRegistryMapFromProviders, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty, findNonEmptyBreakpoints, hasAiWidgetCategory, isWidgetAiCatalogIncluded, mapAXPPropertyToWidgetProperty, normalizeWidgetCategories };
1102
- export type { AXPBorderBox, AXPBorderBoxString, AXPBreakpointValues, AXPBreakpoints, AXPClassMap, AXPExtendedWidget, AXPExtractWidgetConfig, AXPFlexBoxString, AXPFlexItemBoxString, AXPGridBoxString, AXPGridBreakpointValues, AXPGridItemBoxString, AXPLayoutBuilderStatusChangedEvent, AXPMetaDataDefinition, AXPMetaDataFeatures, AXPPropertyCorners, AXPPropertyEditorCornerValues, AXPPropertyEditorSideGeneric, AXPPropertyEditorSideValues, AXPPropertySides, AXPSpacingBox, AXPSpacingBoxString, AXPStyleMap, AXPWidgetAiCatalogMode, AXPWidgetCategory, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents, AXPWidgetCoreElementAPI, AXPWidgetCoreElementAction, AXPWidgetCoreModuleConfigs, AXPWidgetDefinitionProvider, AXPWidgetDesignerOptionsMap, AXPWidgetGroup, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetProperty, AXPWidgetPropertyGroup, AXPWidgetRenderMode, AXPWidgetRendererDirectiveOptions, AXPWidgetTypesMap, AXPWidgetViewType, MapAXPPropertyToWidgetPropertyOptions };
1111
+ export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPageStatus, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetCoreElement, AXPWidgetCoreModule, AXPWidgetCoreService, AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetSerializationHelper, AXPWidgetStatus, AXPWidgetsCatalog, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ACTION_SUB_CONTROLS, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_ADVANCE_SUB_DATA, AXP_WIDGETS_ADVANCE_SUB_INPUT, AXP_WIDGETS_ADVANCE_SUB_MEDIA, AXP_WIDGETS_ADVANCE_SUB_TOOLS, AXP_WIDGETS_AI_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_EDITOR_SUB_CHOICE, AXP_WIDGETS_EDITOR_SUB_COMPOSITE, AXP_WIDGETS_EDITOR_SUB_CONFIG, AXP_WIDGETS_EDITOR_SUB_DATETIME, AXP_WIDGETS_EDITOR_SUB_NUMERIC, AXP_WIDGETS_EDITOR_SUB_RICH, AXP_WIDGETS_EDITOR_SUB_TEXT_INPUTS, AXP_WIDGETS_EDITOR_SUB_VISUAL, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGETS_LAYOUT_SUB_GRID, AXP_WIDGETS_LAYOUT_SUB_LISTS, AXP_WIDGETS_LAYOUT_SUB_SHELL, AXP_WIDGETS_LAYOUT_SUB_SURFACES, AXP_WIDGETS_LAYOUT_SUB_TABS, AXP_WIDGETS_LAYOUT_SUB_UTILITY, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_DEFINITION_PROVIDER, AXP_WIDGET_TOKEN, buildWidgetRegistryMapFromProviders, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty, findNonEmptyBreakpoints, mapAXPPropertyToWidgetProperty, normalizeWidgetCategories };
1112
+ export type { AXPBorderBox, AXPBorderBoxString, AXPBreakpointValues, AXPBreakpoints, AXPClassMap, AXPExtendedWidget, AXPExtractWidgetConfig, AXPFlexBoxString, AXPFlexItemBoxString, AXPGridBoxString, AXPGridBreakpointValues, AXPGridItemBoxString, AXPLayoutBuilderStatusChangedEvent, AXPMetaDataDefinition, AXPMetaDataFeatures, AXPPropertyCorners, AXPPropertyEditorCornerValues, AXPPropertyEditorSideGeneric, AXPPropertyEditorSideValues, AXPPropertySides, AXPSpacingBox, AXPSpacingBoxString, AXPStyleMap, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents, AXPWidgetCoreElementAPI, AXPWidgetCoreElementAction, AXPWidgetCoreModuleConfigs, AXPWidgetDefinitionProvider, AXPWidgetDesignerOptionsMap, AXPWidgetGroup, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetProperty, AXPWidgetPropertyGroup, AXPWidgetRenderMode, AXPWidgetRendererDirectiveOptions, AXPWidgetTypesMap, AXPWidgetViewType, MapAXPPropertyToWidgetPropertyOptions };