@acorex/platform 20.6.0-next.9 → 21.0.0-next.1

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 (88) hide show
  1. package/auth/index.d.ts +91 -12
  2. package/common/index.d.ts +615 -44
  3. package/core/index.d.ts +718 -422
  4. package/fesm2022/acorex-platform-auth.mjs +152 -39
  5. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-common.mjs +1009 -112
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-core.mjs +887 -408
  9. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-domain.mjs +99 -11
  11. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-builder.mjs +555 -492
  13. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-components.mjs +2446 -2733
  15. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-designer.mjs +9 -9
  17. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-entity.mjs +9708 -4721
  19. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-views.mjs +32 -26
  21. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-widget-core.mjs +252 -182
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  24. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs → acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs} +2 -2
  25. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +1 -0
  26. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs +30 -0
  27. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +1 -0
  28. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs} +2 -2
  29. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +1 -0
  30. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs} +2 -2
  31. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +1 -0
  32. package/fesm2022/acorex-platform-layout-widgets.mjs +9791 -6928
  33. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  34. package/fesm2022/acorex-platform-runtime.mjs +79 -3
  35. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  36. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +157 -0
  37. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs +1542 -0
  39. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +1 -0
  40. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +101 -0
  41. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs → acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs} +3 -3
  43. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-themes-default.mjs +282 -43
  45. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs +55 -0
  47. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +1 -0
  48. package/fesm2022/acorex-platform-themes-shared.mjs +42 -137
  49. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  50. package/fesm2022/acorex-platform-workflow.mjs +658 -45
  51. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  52. package/layout/builder/index.d.ts +10 -34
  53. package/layout/components/index.d.ts +694 -375
  54. package/layout/designer/index.d.ts +4 -4
  55. package/layout/entity/index.d.ts +802 -183
  56. package/layout/views/index.d.ts +5 -58
  57. package/layout/widget-core/index.d.ts +63 -75
  58. package/layout/widgets/README.md +0 -1
  59. package/layout/widgets/index.d.ts +493 -129
  60. package/package.json +1 -1
  61. package/runtime/index.d.ts +36 -8
  62. package/themes/default/index.d.ts +44 -75
  63. package/themes/shared/index.d.ts +11 -49
  64. package/workflow/index.d.ts +401 -90
  65. package/fesm2022/acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs +0 -52
  66. package/fesm2022/acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs.map +0 -1
  67. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs +0 -50
  68. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs.map +0 -1
  69. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs +0 -42
  70. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs +0 -55
  72. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs.map +0 -1
  73. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs +0 -50
  74. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs.map +0 -1
  75. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs +0 -48
  76. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs.map +0 -1
  77. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs +0 -42
  78. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs.map +0 -1
  79. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs.map +0 -1
  80. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs.map +0 -1
  81. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs.map +0 -1
  82. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-WbPPqDON.mjs +0 -115
  83. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-WbPPqDON.mjs.map +0 -1
  84. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CD7rJIMh.mjs +0 -803
  85. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CD7rJIMh.mjs.map +0 -1
  86. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs +0 -101
  87. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs.map +0 -1
  88. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs.map +0 -1
@@ -1,11 +1,11 @@
1
- import { AXPCommand, AXPQuery } from '@acorex/platform/runtime';
1
+ import { AXPExecuteCommandResult, AXPMetaData, AXPGridLayoutOptions, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPUserReference, AXPQueryRequest, AXPPagedListResult, AXPCategoryEntity as AXPCategoryEntity$1, AXPMiddlewareErrorResponse, AXHighlightService, AXPExpression, AXPColumnQuery, AXPSortDefinition, AXPDeviceService, AXPBroadcastEventService, AXPActionMenuItem } from '@acorex/platform/core';
2
+ import { AXPCommand, AXPQueryExecutor, AXPCommandService, AXPQuery } from '@acorex/platform/runtime';
2
3
  import * as _angular_core from '@angular/core';
3
- import { ElementRef, InjectionToken, Injector, Type } from '@angular/core';
4
+ import { ElementRef, InjectionToken, Injector, Type, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
4
5
  import { AXPopoverComponent } from '@acorex/components/popover';
5
- import { AXPMetaData, AXPGridLayoutOptions, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPUserReference, AXPQueryRequest, AXPPagedListResult, AXPCategoryEntity as AXPCategoryEntity$1, AXPAppStartUpService, AXPMiddlewareErrorResponse, AXPColumnQuery, AXPSortDefinition, AXPActionMenuItem, AXPExpression } from '@acorex/platform/core';
6
6
  import * as i3 from '@acorex/platform/layout/widget-core';
7
- import { AXPWidgetNode, AXPWidgetColumnNode, AXPWidgetCoreService, AXPValueWidgetComponent, AXPWidgetRendererDirective, AXPWidgetConfig, AXPLayoutBaseWidgetComponent, AXPColumnWidgetComponent } from '@acorex/platform/layout/widget-core';
8
- import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXClickEvent, AXValueChangedEvent, AXFocusEvent, AXHtmlEvent } from '@acorex/cdk/common';
7
+ import { AXPWidgetNode, AXPWidgetColumnNode, AXPWidgetCoreService, AXPColumnWidgetComponent, AXPValueWidgetComponent, AXPWidgetConfig, AXPWidgetRendererDirective } from '@acorex/platform/layout/widget-core';
8
+ import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXValueChangedEvent, AXClickEvent, AXFocusEvent, AXHtmlEvent, AXDataSourceSortOption } from '@acorex/cdk/common';
9
9
  import * as _acorex_platform_common from '@acorex/platform/common';
10
10
  import { AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPRelatedEntity, AXPEntitySectionView, AXPEntityPropertyCreateView, AXPEntityPropertyLayoutConfig, AXPQueryView, AXPEntityPropertyView, AXPCategoryEntity, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterListView, AXPEntityDetailListView, AXPQueryFilter } from '@acorex/platform/common';
11
11
  import * as i1 from '@angular/router';
@@ -14,16 +14,50 @@ import * as rxjs from 'rxjs';
14
14
  import { Subject } from 'rxjs';
15
15
  import * as i2 from '@acorex/platform/workflow';
16
16
  import { AXPWorkflowService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
17
+ import { AXPSessionService } from '@acorex/platform/auth';
18
+ import { AXTreeViewNode, AXTreeViewComponent, AXTreeViewNodeToggleEvent, AXTreeViewNodeSelectEvent, AXTreeViewSelectionChangeEvent } from '@acorex/components/tree-view';
19
+ import { AXTranslationService } from '@acorex/core/translation';
17
20
  import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
18
21
  import { IActionBuilder, IFormFieldBuilder, AXPDialogRef } from '@acorex/platform/layout/builder';
19
- import { AXPDataListWidgetComponentOptions } from '@acorex/platform/layout/widgets';
20
- import * as _ngrx_signals from '@ngrx/signals';
21
- import * as _acorex_platform_themes_shared from '@acorex/platform/themes/shared';
22
+ import { AXBasePageComponent } from '@acorex/components/page';
22
23
  import { AXFormatService } from '@acorex/core/format';
23
- import { AXSelectBoxComponent } from '@acorex/components/select-box';
24
24
  import { AXTagBoxComponent } from '@acorex/components/tag-box';
25
- import { AXTextBoxComponent } from '@acorex/components/text-box';
26
- import { AXPWidgetPropertiesChangedEvent } from '@acorex/platform/layout/components';
25
+ import { AXPDataListWidgetComponentOptions } from '@acorex/platform/layout/widgets';
26
+ import { AXSelectBoxComponent } from '@acorex/components/select-box';
27
+
28
+ declare class AXPCreateEntityCommand implements AXPCommand<any, any> {
29
+ private entityForm;
30
+ private settingsService;
31
+ private entityService;
32
+ private toastService;
33
+ private translationService;
34
+ private eventService;
35
+ protected context: {};
36
+ execute(input: any): Promise<AXPExecuteCommandResult<any>>;
37
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPCreateEntityCommand, never>;
38
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPCreateEntityCommand>;
39
+ }
40
+
41
+ declare class AXPUpdateEntityCommand implements AXPCommand<any, any> {
42
+ private readonly entityForm;
43
+ private readonly settingsService;
44
+ private readonly entityService;
45
+ private readonly toastService;
46
+ private readonly translationService;
47
+ private readonly eventService;
48
+ execute(input: any): Promise<AXPExecuteCommandResult<any>>;
49
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPUpdateEntityCommand, never>;
50
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPUpdateEntityCommand>;
51
+ }
52
+
53
+ declare class AXPViewEntityDetailsCommand implements AXPCommand<any, any> {
54
+ private readonly entityForm;
55
+ private readonly entityService;
56
+ private readonly translationService;
57
+ execute(input: any): Promise<AXPExecuteCommandResult<any>>;
58
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPViewEntityDetailsCommand, never>;
59
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPViewEntityDetailsCommand>;
60
+ }
27
61
 
28
62
  interface AXPOpenEntityDetailsCommandInput {
29
63
  entity: string;
@@ -31,21 +65,18 @@ interface AXPOpenEntityDetailsCommandInput {
31
65
  id: string;
32
66
  };
33
67
  }
34
- interface AXPOpenEntityDetailsCommandResult {
35
- success: boolean;
36
- }
37
68
  /**
38
69
  * Generic command to open entity details view
39
70
  * Can be used by any entity to navigate to its detail page
40
71
  */
41
- declare class AXPOpenEntityDetailsCommand implements AXPCommand<AXPOpenEntityDetailsCommandInput, AXPOpenEntityDetailsCommandResult> {
72
+ declare class AXPOpenEntityDetailsCommand implements AXPCommand<AXPOpenEntityDetailsCommandInput, AXPExecuteCommandResult> {
42
73
  private readonly router;
43
74
  private readonly sessionService;
44
75
  /**
45
76
  * Execute the command to navigate to entity details
46
77
  * @param input - Command input containing entity and data information
47
78
  */
48
- execute(input: AXPOpenEntityDetailsCommandInput): Promise<AXPOpenEntityDetailsCommandResult>;
79
+ execute(input: AXPOpenEntityDetailsCommandInput): Promise<AXPExecuteCommandResult>;
49
80
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPOpenEntityDetailsCommand, never>;
50
81
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPOpenEntityDetailsCommand>;
51
82
  }
@@ -138,6 +169,7 @@ declare class AXPDataSeederService {
138
169
 
139
170
  declare class AXPEntityCommandTriggerViewModel {
140
171
  priority: 'primary' | 'secondary';
172
+ order: number;
141
173
  color: AXStyleColorType;
142
174
  icon: string;
143
175
  title: string;
@@ -174,7 +206,8 @@ declare class AXPEntityDetailListViewModel {
174
206
  private workflow;
175
207
  private filterOperatorMiddleware;
176
208
  private expressionEvaluator;
177
- dataSource: AXDataSource<unknown>;
209
+ private queryExecutor;
210
+ dataSource: AXDataSource<any>;
178
211
  parentKey: _angular_core.Signal<string | undefined>;
179
212
  constructor(injector: Injector, detailEntityConfig: AXPRelatedEntity, parent: {
180
213
  entity: AXPEntity;
@@ -212,6 +245,11 @@ declare class AXPEntityDetailListViewModel {
212
245
  getSecondaryActions(): Promise<AXPEntityCommandTriggerViewModel[]>;
213
246
  }
214
247
 
248
+ declare const AXPEntityEventsKeys: {
249
+ REFRESH_LAYOUT: string;
250
+ REFRESH_DATA: string;
251
+ };
252
+
215
253
  /**
216
254
  * Entity Event Dispatcher - A wrapper for entity-specific events
217
255
  * Handles pattern-based dispatching for entity operations with wildcard support
@@ -251,6 +289,7 @@ declare class AXPEntityCreateViewElementViewModel {
251
289
  title: _angular_core.WritableSignal<string>;
252
290
  description: _angular_core.WritableSignal<string | undefined>;
253
291
  editable: _angular_core.Signal<boolean>;
292
+ isVisible: _angular_core.Signal<string | boolean>;
254
293
  isRequired: _angular_core.Signal<boolean>;
255
294
  layout: _angular_core.Signal<AXPEntityPropertyLayoutConfig>;
256
295
  node: _angular_core.Signal<AXPWidgetNode>;
@@ -317,6 +356,7 @@ declare class AXPEntityMasterListViewModel {
317
356
  private readonly expressionEvaluator;
318
357
  private readonly commandService;
319
358
  private readonly eventService;
359
+ private readonly queryExecutor;
320
360
  private readonly filterOperatorMiddleware;
321
361
  private settingEntityKey;
322
362
  private readonly destroyed;
@@ -329,7 +369,7 @@ declare class AXPEntityMasterListViewModel {
329
369
  views: _angular_core.Signal<AXPEntityMasterListViewQueryViewModel[]>;
330
370
  view: _angular_core.WritableSignal<AXPEntityMasterListViewQueryViewModel>;
331
371
  setView(viewName?: string | null): Promise<void>;
332
- dataSource: AXDataSource<unknown>;
372
+ dataSource: AXDataSource<any>;
333
373
  constructor(injector: Injector, config: AXPEntity);
334
374
  applySettings(): Promise<void>;
335
375
  saveSettings(changesType: 'columnSizes' | 'columnOrders' | 'view' | 'pageSize' | 'filters' | 'sorts', data?: any): Promise<void>;
@@ -621,6 +661,27 @@ interface AXPEntityModifierProvider {
621
661
 
622
662
  declare function ensureListActions(ctx: AXPEntityModifierContext): void;
623
663
  declare function actionExists(actions: any[] | undefined, commandName: string, name?: string): boolean;
664
+ interface AXPEntityLayoutSectionLike {
665
+ id: string;
666
+ }
667
+ interface AXPEntityLayoutPropertyLike {
668
+ name: string;
669
+ }
670
+ interface AXPEntityLayoutLike<TSection extends AXPEntityLayoutSectionLike = AXPEntityLayoutSectionLike, TProperty extends AXPEntityLayoutPropertyLike = AXPEntityLayoutPropertyLike> {
671
+ sections: TSection[];
672
+ properties?: TProperty[];
673
+ }
674
+ /**
675
+ * Clones `sections` and `properties` arrays to prevent accidental cross-interface mutations.
676
+ * Many entity definitions reuse the same array instances across create/update/single interfaces.
677
+ */
678
+ declare function cloneLayoutArrays<TLayout extends AXPEntityLayoutLike>(layout: TLayout): TLayout & {
679
+ properties: NonNullable<TLayout['properties']>;
680
+ };
681
+ declare function ensureLayoutSection<TLayout extends AXPEntityLayoutLike>(layout: TLayout, section: TLayout['sections'][number]): void;
682
+ declare function ensureLayoutPropertyView<TLayout extends AXPEntityLayoutLike>(layout: TLayout & {
683
+ properties: NonNullable<TLayout['properties']>;
684
+ }, prop: NonNullable<TLayout['properties']>[number]): void;
624
685
 
625
686
  interface AXPEntityActionPlugin {
626
687
  name: string;
@@ -656,14 +717,13 @@ interface AXPEntityDefinitionPreloader {
656
717
  preload(): AXPEntityPreloadEntity[];
657
718
  }
658
719
  declare class AXPEntityDefinitionRegistryService {
659
- private providers;
660
- private resolver;
661
720
  private middleware;
721
+ private moduleProviderLoader;
722
+ private manifestRegistry;
662
723
  private onChanged;
663
724
  get onChanged$(): rxjs.Observable<{
664
725
  name: string;
665
726
  }>;
666
- preload(): Promise<void>;
667
727
  private entities;
668
728
  private entityResolver;
669
729
  /**
@@ -691,6 +751,12 @@ declare class AXPEntityDefinitionRegistryService {
691
751
  * @returns An array of AXPEntity objects.
692
752
  */
693
753
  getAll(): AXPEntity[];
754
+ /**
755
+ * Clear all registered entity configurations.
756
+ * Should be called when modules are cleared to prevent stale entity data.
757
+ * @param preserveModules Optional list of module names whose entities should be preserved
758
+ */
759
+ clear(preserveModules?: string[]): void;
694
760
  /**
695
761
  * Resolves an entity configuration based on module and entity name. If the configuration
696
762
  * is not already registered, attempts to load it dynamically. Throws an error if the
@@ -702,6 +768,13 @@ declare class AXPEntityDefinitionRegistryService {
702
768
  * @throws Error if the entity configuration cannot be resolved.
703
769
  */
704
770
  resolve(moduleName: string, entityName: string): Promise<AXPEntity>;
771
+ exists(moduleName: string, entityName: string): Promise<boolean>;
772
+ /**
773
+ * Waits for module provider to be loaded if the module exists in manifest but provider isn't registered yet.
774
+ * This handles race conditions where entity resolution happens before module providers finish loading.
775
+ * Only waits for required modules or waits briefly for non-required modules (which may not be accessible to current user).
776
+ */
777
+ private waitForModuleProviderIfNeeded;
705
778
  /**
706
779
  * Creates a unique key for an entity based on its module and name.
707
780
  *
@@ -714,36 +787,32 @@ declare class AXPEntityDefinitionRegistryService {
714
787
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDefinitionRegistryService>;
715
788
  }
716
789
 
717
- interface AXPAuditable {
718
- created?: {
719
- at?: Date;
720
- by?: AXPUserReference;
721
- };
722
- updated?: {
723
- at?: Date;
724
- by?: AXPUserReference;
725
- };
726
- deleted?: {
727
- at?: Date;
728
- by?: AXPUserReference;
729
- };
730
- }
731
- interface AXPRecordControl {
732
- isReadOnly?: boolean;
790
+ interface AXPAuditEvent {
791
+ at?: Date;
792
+ by?: AXPUserReference;
793
+ reason?: string;
794
+ source?: string;
795
+ }
796
+ interface AXPAuditInfo {
797
+ created?: AXPAuditEvent;
798
+ updated?: AXPAuditEvent;
799
+ deleted?: AXPAuditEvent;
800
+ }
801
+ interface AXPRecordStateInfo {
733
802
  isHidden?: boolean;
734
803
  isSystem?: boolean;
735
804
  isImmutable?: boolean;
736
805
  isDistributed?: boolean;
737
806
  }
738
- interface AXPRecordOwnership {
807
+ interface AXPRecordOwnershipInfo {
739
808
  tenantId?: string;
740
- ownerId?: string;
809
+ applicationId?: string;
741
810
  }
742
811
  interface AXPEntityModel<Id> {
743
812
  id: Id;
744
- auditInfo?: AXPAuditable;
745
- stateInfo?: AXPRecordControl;
746
- ownershipInfo?: AXPRecordOwnership;
813
+ auditInfo?: AXPAuditInfo;
814
+ stateInfo?: AXPRecordStateInfo;
815
+ ownershipInfo?: AXPRecordOwnershipInfo;
747
816
  }
748
817
  interface AXPEntityCreateDto {
749
818
  }
@@ -824,6 +893,7 @@ declare class AXMEntityCrudServiceImpl<TKey, TDetailDto extends AXPEntityDetailD
824
893
  }): Promise<AXPPagedListResult<TListItemDto>>;
825
894
  getCategoriesList(request?: AXPQueryRequest): Promise<AXPPagedListResult<AXPCategoryEntity$1<TKey>>>;
826
895
  get storageService(): AXPEntityStorageService<any, any, any, any, any>;
896
+ custom<Req, Res>(request: Req): Promise<void>;
827
897
  }
828
898
 
829
899
  interface AXPEntityConfigs {
@@ -848,21 +918,121 @@ interface AXPEntityDefinitionLoader {
848
918
  declare const AXP_ENTITY_DEFINITION_LOADER: InjectionToken<AXPEntityDefinitionLoader>;
849
919
  declare class AXPEntityResolver {
850
920
  private providers;
921
+ private providerRegistry;
851
922
  get(moduleName: string, entityName: string): Promise<AXPEntity | null>;
852
923
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityResolver, never>;
853
924
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityResolver>;
854
925
  }
855
926
 
856
927
  declare class AXPEntityModule {
857
- constructor(appInitService: AXPAppStartUpService, injector: Injector);
858
928
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityModule, never>;
859
929
  static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPEntityModule, never, [typeof i1.RouterModule, typeof i2.AXPWorkflowModule, typeof i3.AXPWidgetCoreModule], never>;
860
930
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPEntityModule>;
861
931
  }
862
932
 
933
+ /**
934
+ * Data accessor for entity operations.
935
+ * Provides methods to query and execute commands with smart resolution:
936
+ * 1. Checks entity definition queries/commands first
937
+ * 2. Falls back to CRUD service if not defined
938
+ */
939
+ declare class EntityDataAccessor<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = Omit<TDetailDto, 'id'>, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> {
940
+ private module;
941
+ private entity;
942
+ private entityRegistry;
943
+ private queryExecutor;
944
+ private commandService;
945
+ private crudService;
946
+ private entityDef;
947
+ private entityDefPromise;
948
+ constructor(module: string, entity: string, entityRegistry: AXPEntityDefinitionRegistryService, queryExecutor: AXPQueryExecutor, commandService: AXPCommandService);
949
+ /**
950
+ * Resolves the entity definition lazily and caches it.
951
+ * @returns The resolved entity definition
952
+ */
953
+ private resolveEntityDef;
954
+ /**
955
+ * Gets a single entity by key.
956
+ * @param key - The entity key
957
+ * @returns The entity detail or null if not found
958
+ */
959
+ byKey(key: TKey): Promise<TDetailDto | null>;
960
+ /**
961
+ * Queries a list of entities.
962
+ * @param request - The query request (optional)
963
+ * @returns The paged list result
964
+ */
965
+ query(request?: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
966
+ /**
967
+ * Creates a new entity.
968
+ * @param data - The entity data to create
969
+ * @returns The created entity key
970
+ */
971
+ create(data: TCreateDto): Promise<TKey>;
972
+ /**
973
+ * Updates an existing entity.
974
+ * @param id - The entity key
975
+ * @param data - The entity data to update
976
+ * @returns The updated entity
977
+ */
978
+ update(id: TKey, data: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
979
+ /**
980
+ * Deletes an entity.
981
+ * @param id - The entity key
982
+ */
983
+ delete(id: TKey): Promise<void>;
984
+ }
985
+ /**
986
+ * Builder class for entity operations.
987
+ * Provides methods to create paths and access entity data.
988
+ */
989
+ declare class EntityBuilder {
990
+ private sessionService;
991
+ private entityRegistry;
992
+ private queryExecutor;
993
+ private commandService;
994
+ readonly module: string;
995
+ readonly entity: string;
996
+ constructor(module: string, entity: string, sessionService: AXPSessionService, entityRegistry: AXPEntityDefinitionRegistryService, queryExecutor: AXPQueryExecutor, commandService: AXPCommandService);
997
+ /**
998
+ * Creates a path for the entity.
999
+ * @param path - The path segment (defaults to 'list')
1000
+ * @returns The full path string
1001
+ */
1002
+ createPath(path?: string): string;
1003
+ /**
1004
+ * Gets the data accessor for the entity with generic type support.
1005
+ * Entity definition is resolved lazily on first method call.
1006
+ * @returns An EntityDataAccessor instance
1007
+ */
1008
+ data<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = Omit<TDetailDto, 'id'>, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto>(): EntityDataAccessor<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>;
1009
+ }
863
1010
  declare class AXPEntityService {
864
1011
  private sessionService;
1012
+ private entityRegistry;
1013
+ private queryExecutor;
1014
+ private commandService;
1015
+ /**
1016
+ * @deprecated Use `withEntity(module, entity).createPath(path)` instead.
1017
+ * This method will be removed in a future version.
1018
+ */
865
1019
  createPath(module: string, entity: string, path?: string): string;
1020
+ /**
1021
+ * Creates a builder for entity operations.
1022
+ * Entity definition is resolved lazily when data accessor methods are called.
1023
+ * @param module - The module name
1024
+ * @param entity - The entity name
1025
+ * @returns An EntityBuilder instance
1026
+ */
1027
+ withEntity(module: string, entity: string): EntityBuilder;
1028
+ /**
1029
+ * Creates a builder for entity operations using dot notation.
1030
+ * Entity definition is resolved lazily when data accessor methods are called.
1031
+ * @param entityKey - The entity key in format "module.entity"
1032
+ * @returns An EntityBuilder instance
1033
+ * @throws Error if the entity key format is invalid
1034
+ */
1035
+ withEntity(entityKey: string): EntityBuilder;
866
1036
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityService, never>;
867
1037
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityService>;
868
1038
  }
@@ -939,6 +1109,44 @@ declare const createColumnWidthMiddlewareProvider: (widths: ColumnWidthConfig, e
939
1109
  */
940
1110
  declare const columnWidthMiddlewareProvider: AXPEntityModifierProvider;
941
1111
 
1112
+ /**
1113
+ * Configuration for section ordering
1114
+ */
1115
+ interface SectionOrderConfig {
1116
+ /**
1117
+ * Default order for common sections
1118
+ * Lower numbers appear first
1119
+ */
1120
+ sections: Record<string, number>;
1121
+ /**
1122
+ * Default order for properties within sections
1123
+ * Key format: 'sectionId.propertyName' or just 'propertyName' for any section
1124
+ */
1125
+ properties: Record<string, number>;
1126
+ }
1127
+ /**
1128
+ * Default order for common sections
1129
+ */
1130
+ declare const DEFAULT_SECTION_ORDER: Record<string, number>;
1131
+ /**
1132
+ * Default order for common properties
1133
+ * Format: 'sectionId.propertyName' for section-specific or 'propertyName' for any section
1134
+ */
1135
+ declare const DEFAULT_PROPERTY_ORDER: Record<string, number>;
1136
+ /**
1137
+ * Factory to create a layout ordering middleware
1138
+ */
1139
+ declare const layoutOrderingMiddlewareFactory: (config: SectionOrderConfig) => AXPEntityModifier;
1140
+ /**
1141
+ * Helper to create a provider for the layout ordering middleware
1142
+ * By default it applies to all entities using the '*' pattern
1143
+ */
1144
+ declare const createLayoutOrderingMiddlewareProvider: (config?: Partial<SectionOrderConfig>, entityName?: string | RegExp) => AXPEntityModifierProvider;
1145
+ /**
1146
+ * Default provider registered with the default configuration
1147
+ */
1148
+ declare const layoutOrderingMiddlewareProvider: AXPEntityModifierProvider;
1149
+
942
1150
  interface AXPGetEntityDetailsQueryInput {
943
1151
  entity: string;
944
1152
  id: string;
@@ -972,15 +1180,82 @@ declare class AXPGetEntityDetailsQuery implements AXPQuery<AXPGetEntityDetailsQu
972
1180
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPGetEntityDetailsQuery>;
973
1181
  }
974
1182
 
1183
+ interface CategoryQueryEvent {
1184
+ skip: number;
1185
+ take: number;
1186
+ filter?: {
1187
+ field?: string;
1188
+ value?: unknown;
1189
+ operator?: {
1190
+ type: string;
1191
+ };
1192
+ filters?: unknown[];
1193
+ logic?: string;
1194
+ };
1195
+ }
1196
+ interface CategoryQueryResult {
1197
+ items: Record<string, unknown>[];
1198
+ total?: number;
1199
+ totalCount?: number;
1200
+ }
1201
+ type CategoryQueryFunction = (event: CategoryQueryEvent) => Promise<CategoryQueryResult>;
1202
+ interface CategoryTreeConfig {
1203
+ entityKey: string;
1204
+ textField?: string;
1205
+ valueField?: string;
1206
+ parentKey?: string;
1207
+ }
1208
+ interface CategoryTreeNodeData {
1209
+ categoryEntityDef: AXPEntity | null;
1210
+ categoryEntityQueryFunc: CategoryQueryFunction | null;
1211
+ basicQueryEvent: CategoryQueryEvent;
1212
+ }
1213
+ declare class AXPCategoryTreeService {
1214
+ protected readonly entityResolver: AXPEntityDefinitionRegistryService;
1215
+ protected readonly translate: AXTranslationService;
1216
+ /**
1217
+ * Initialize category tree data source
1218
+ */
1219
+ initializeCategoryTree(config: CategoryTreeConfig): Promise<CategoryTreeNodeData | null>;
1220
+ /**
1221
+ * Create root node with children from items
1222
+ */
1223
+ createRootNode(items: Record<string, unknown>[], config: CategoryTreeConfig): Promise<AXTreeViewNode>;
1224
+ /**
1225
+ * Convert entity item to AXTreeViewNode format
1226
+ */
1227
+ convertToTreeNode(item: Record<string, unknown>, config: CategoryTreeConfig): AXTreeViewNode;
1228
+ /**
1229
+ * Load root categories
1230
+ */
1231
+ loadRootCategories(treeData: CategoryTreeNodeData, config: CategoryTreeConfig): Promise<Record<string, unknown>[] | null>;
1232
+ /**
1233
+ * Load children for a given node
1234
+ */
1235
+ loadChildren(node: AXTreeViewNode, treeData: CategoryTreeNodeData, config: CategoryTreeConfig): Promise<AXTreeViewNode[]>;
1236
+ /**
1237
+ * Search categories recursively (all levels)
1238
+ */
1239
+ searchCategories(searchValue: string, treeData: CategoryTreeNodeData, config: CategoryTreeConfig): Promise<Record<string, unknown>[] | null>;
1240
+ /**
1241
+ * Update children at a specific node in the tree
1242
+ */
1243
+ updateChildrenAtPath(nodes: AXTreeViewNode[], targetId: string, childNodes: AXTreeViewNode[]): AXTreeViewNode[];
1244
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPCategoryTreeService, never>;
1245
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPCategoryTreeService>;
1246
+ }
1247
+
975
1248
  interface IEntitySelectorStage {
976
1249
  /** Select target entity using "module.entity" format */
977
1250
  entity(fullName: string): IInterfaceSelectorStage;
978
1251
  }
979
1252
  interface IInterfaceSelectorStage {
980
1253
  /** Use master.create interface */
981
- create(): IPropertyFilterStage;
982
- /** Use master.update interface */
983
- update(id: string): IPropertyFilterStage;
1254
+ create(initialData?: any): IPropertyFilterStage;
1255
+ /** Use master.update interface. Accepts id (string) or full record data (object). */
1256
+ update(data: string | Record<string, any>): IPropertyFilterStage;
1257
+ /** Use master.single interface (read-only view). Accepts id (string) or full record data (object). */
1258
+ single(data: string | Record<string, any>): IPropertyFilterStage;
984
1259
  }
985
1260
  interface IPropertyFilterStage {
986
1261
  /** Only include provided property names (by AXPEntityProperty.name). Mutually exclusive with exclude(). */
@@ -1001,13 +1276,13 @@ interface IPropertyFilterStage {
1001
1276
  show(): Promise<AXPDialogRef>;
1002
1277
  mode(mode: 'edit' | 'view'): IPropertyFilterStage;
1003
1278
  }
1004
- declare class AXPEntityDynamicDialogService implements IEntitySelectorStage {
1279
+ declare class AXPEntityFormBuilderService implements IEntitySelectorStage {
1005
1280
  private readonly entityRegistry;
1006
1281
  private readonly layoutBuilder;
1007
- private readonly layoutTheme;
1282
+ private readonly deviceService;
1008
1283
  entity(fullName: string): IInterfaceSelectorStage;
1009
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDynamicDialogService, never>;
1010
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDynamicDialogService>;
1284
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityFormBuilderService, never>;
1285
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityFormBuilderService>;
1011
1286
  }
1012
1287
  type CompatFormFieldBuilder = {
1013
1288
  path(path: string): any;
@@ -1058,8 +1333,14 @@ declare function entityDetailsCreateActions(parentId: string): AXPEntityAction;
1058
1333
  declare function entityDetailsSimpleCondition(fk: string): AXPQueryFilter;
1059
1334
  declare function entityDetailsReferenceCondition(type: string): AXPQueryFilter[];
1060
1335
  declare function entityDetailsEditAction(): AXPEntityAction;
1336
+ declare function entityDetailsNewEditAction(): AXPEntityAction;
1061
1337
  declare function entityOverrideDetailsViewAction(): AXPEntityAction;
1062
- declare function entityDetailsCrudActions(parentId: string): AXPEntityAction[];
1338
+ declare function entityDetailsCrudActions(parentId: string, options?: {
1339
+ create?: boolean;
1340
+ delete?: boolean;
1341
+ view?: boolean;
1342
+ edit?: boolean;
1343
+ }): AXPEntityAction[];
1063
1344
  declare function entityDetailsReferenceCreateActions(type: string): AXPEntityAction[];
1064
1345
  type AXPEntityChangeSet = {
1065
1346
  [key: string]: {
@@ -1077,6 +1358,449 @@ type AXPEntityChangeSet = {
1077
1358
  */
1078
1359
  declare function detectEntityChanges(oldObj: any, newObj: any): AXPEntityChangeSet;
1079
1360
 
1361
+ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent implements OnInit {
1362
+ protected readonly categoryTreeService: AXPCategoryTreeService;
1363
+ private readonly translationService;
1364
+ protected readonly highlightService: AXHighlightService;
1365
+ entityKey: _angular_core.WritableSignal<string>;
1366
+ textField: _angular_core.WritableSignal<string>;
1367
+ valueField: _angular_core.WritableSignal<string>;
1368
+ allowMultiple: _angular_core.WritableSignal<boolean>;
1369
+ selectedValues: _angular_core.WritableSignal<string[]>;
1370
+ searchPlaceholder: _angular_core.WritableSignal<string>;
1371
+ excludedNodeId: _angular_core.WritableSignal<string | undefined>;
1372
+ searchWithChildren: _angular_core.WritableSignal<boolean>;
1373
+ protected tree: _angular_core.Signal<AXTreeViewComponent | undefined>;
1374
+ protected loading: _angular_core.WritableSignal<boolean>;
1375
+ protected selectedNodeIds: _angular_core.WritableSignal<string[]>;
1376
+ protected searchValue: _angular_core.WritableSignal<string>;
1377
+ protected searchResultCount: _angular_core.WritableSignal<number>;
1378
+ protected isSearching: _angular_core.WritableSignal<boolean>;
1379
+ protected resultsFoundText: _angular_core.WritableSignal<string>;
1380
+ protected noRecordsTitle: _angular_core.WritableSignal<string>;
1381
+ private currentSearchTerm;
1382
+ private isRefreshing;
1383
+ private isUpdatingSelection;
1384
+ /**
1385
+ * Computed property to check if we should show the "no search results" empty state.
1386
+ * Returns true when search is active, not searching, and no results found.
1387
+ */
1388
+ protected readonly showNoSearchResults: _angular_core.Signal<boolean>;
1389
+ protected treeData: CategoryTreeNodeData | null;
1390
+ private treeConfig;
1391
+ private nodeDataCache;
1392
+ private matchingNodeIds;
1393
+ private relevantNodeIds;
1394
+ private expandedNodesBeforeSearch;
1395
+ private nodesExpandedDuringSearch;
1396
+ private isInitializing;
1397
+ ngOnInit(): void;
1398
+ private initializeTree;
1399
+ /**
1400
+ * Handles search input value changes - Uses server-side search for efficiency and reliability
1401
+ */
1402
+ handleSearchChange(event: AXValueChangedEvent<string>): Promise<void>;
1403
+ /**
1404
+ * Collects all parent IDs for the given search results
1405
+ * Handles both nested 'parent' object and 'parentId' field in search results
1406
+ * Recursively fetches parent nodes to build the full parent chain
1407
+ */
1408
+ private collectParentIds;
1409
+ /**
1410
+ * Collects children IDs for matching search results recursively
1411
+ * Adds all descendants (children, grandchildren, etc.) to relevantNodeIds so they appear in the filtered tree
1412
+ */
1413
+ private collectChildrenIds;
1414
+ /**
1415
+ * Recursively collects all descendant IDs for a given node
1416
+ */
1417
+ private collectChildrenRecursively;
1418
+ /**
1419
+ * Fetches a single item by ID from the server
1420
+ */
1421
+ private fetchItemById;
1422
+ /**
1423
+ * Sorts parent IDs by their depth (root first, leaves last)
1424
+ * Optimized to use cached data and batch fetch missing items
1425
+ */
1426
+ private sortParentsByDepth;
1427
+ /**
1428
+ * Updates translated messages for search results
1429
+ */
1430
+ private updateTranslatedMessages;
1431
+ /**
1432
+ * Resets search state and restores tree to original expanded state
1433
+ */
1434
+ private resetSearch;
1435
+ protected onNodeToggle(event: AXTreeViewNodeToggleEvent): Promise<void>;
1436
+ protected onNodeSelect(event: AXTreeViewNodeSelectEvent): Promise<void>;
1437
+ protected onSelectionChange(event: AXTreeViewSelectionChangeEvent): Promise<void>;
1438
+ /** Datasource callback for tree-view component. */
1439
+ protected datasource: (id?: string) => Promise<AXTreeViewNode[]>;
1440
+ protected onConfirm(): Promise<void>;
1441
+ protected onCancel(): Promise<void>;
1442
+ /**
1443
+ * Checks if a node matches the current search term
1444
+ */
1445
+ protected isMatchingNode(nodeId: string): boolean;
1446
+ /**
1447
+ * Checks if a node is currently selected
1448
+ */
1449
+ protected isNodeSelected(nodeId: string | number | undefined): boolean;
1450
+ /**
1451
+ * Handles checkbox change event to toggle node selection
1452
+ * In multiple mode: recursively selects/deselects children
1453
+ * Parent states are handled automatically by tree component's intermediate-nested behavior
1454
+ */
1455
+ protected handleCheckboxChange(nodeId: string | number | undefined, checked: boolean): Promise<void>;
1456
+ /**
1457
+ * Selects a node and recursively selects all its children
1458
+ */
1459
+ private selectNodeAndChildren;
1460
+ /**
1461
+ * Collects all descendant node IDs recursively
1462
+ */
1463
+ private collectAllDescendants;
1464
+ /**
1465
+ * Deselects a node and recursively deselects all its children
1466
+ */
1467
+ private deselectNodeAndChildren;
1468
+ /**
1469
+ * Recursively deselects all children of a parent node
1470
+ */
1471
+ private loadAndDeselectChildrenRecursively;
1472
+ /**
1473
+ * Updates parent states based on children selection (select/intermediate)
1474
+ * Called after a node is selected/deselected to update parent checkbox states
1475
+ */
1476
+ private updateParentStates;
1477
+ /**
1478
+ * Recursively loads and selects all children of a parent node using the datasource
1479
+ * This method directly calls datasource without expanding/collapsing nodes to avoid UI glitches
1480
+ */
1481
+ private loadAndSelectChildrenRecursively;
1482
+ private updateSelectedNodes;
1483
+ /**
1484
+ * Updates all parent states based on their children's selection
1485
+ * Used during initialization to ensure proper parent states (select/intermediate)
1486
+ */
1487
+ private updateAllParentStates;
1488
+ /**
1489
+ * Expands parents of selected nodes so they're visible when popup opens
1490
+ */
1491
+ private expandParentsOfSelectedNodes;
1492
+ /**
1493
+ * Selects parents whose all children are selected
1494
+ * This ensures that when all children of a parent are selected, the parent also appears selected
1495
+ */
1496
+ private selectParentsWithAllChildrenSelected;
1497
+ /**
1498
+ * Syncs selection state with the tree component
1499
+ * Handles cases where nodes might not be in the tree structure yet
1500
+ */
1501
+ private syncSelectionWithTree;
1502
+ /**
1503
+ * Loads node data for IDs that are selected but not yet in the cache.
1504
+ * This is critical for pre-selected values in collapsed branches.
1505
+ */
1506
+ private loadMissingNodeData;
1507
+ /**
1508
+ * Marks nodes as selected in the tree structure based on selectedNodeIds.
1509
+ * This ensures pre-selected nodes appear selected when the tree is rendered.
1510
+ */
1511
+ private markNodesAsSelected;
1512
+ /**
1513
+ * Marks a single node as selected if it's in the selectedNodeIds list.
1514
+ */
1515
+ private markNodeAsSelectedIfNeeded;
1516
+ /**
1517
+ * Marks a node and its children as disabled if the node ID matches the excluded ID.
1518
+ */
1519
+ private markNodeAsDisabled;
1520
+ /**
1521
+ * Processes root node: marks excluded as disabled, marks selected, and syncs selection with tree component
1522
+ */
1523
+ private processRootNode;
1524
+ /**
1525
+ * Processes child nodes: marks excluded as disabled, marks selected, and syncs selection
1526
+ */
1527
+ private processChildNodes;
1528
+ /**
1529
+ * Caches node data from items array
1530
+ */
1531
+ private cacheNodeData;
1532
+ /**
1533
+ * Caches node data from tree nodes
1534
+ */
1535
+ private cacheNodeDataFromNodes;
1536
+ /**
1537
+ * Calculate the full path from root to the selected node.
1538
+ * Returns an array of strings like ["C", "B"] for node B under parent C.
1539
+ * Uses tree-view's getNodePath() API when available, otherwise falls back to manual calculation.
1540
+ */
1541
+ private calculateNodePath;
1542
+ /**
1543
+ * Manual path calculation fallback
1544
+ */
1545
+ private calculateNodePathManually;
1546
+ /**
1547
+ * Get the display title for a node.
1548
+ */
1549
+ private getNodeTitle;
1550
+ /**
1551
+ * Checks if a node is a leaf node (has no children)
1552
+ */
1553
+ private isLeafNode;
1554
+ /**
1555
+ * Checks if a node has children by querying the data source
1556
+ */
1557
+ private checkIfNodeHasChildren;
1558
+ private getSelectedItems;
1559
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCategoryTreeSelectorComponent, never>;
1560
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCategoryTreeSelectorComponent, "axp-entity-category-tree-selector", never, {}, {}, never, never, true, never>;
1561
+ }
1562
+
1563
+ declare class AXPEntityCategoryWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
1564
+ protected readonly entityDetailPopoverService: AXPEntityDetailPopoverService;
1565
+ protected readonly formatService: AXFormatService;
1566
+ protected readonly entityResolver: AXPEntityDefinitionRegistryService;
1567
+ private readonly rawValueSignal;
1568
+ set rawValueInput(value: any);
1569
+ protected entity: _angular_core.Signal<string>;
1570
+ protected valueField: _angular_core.Signal<string>;
1571
+ protected textField: _angular_core.Signal<string>;
1572
+ protected columnName: _angular_core.Signal<string>;
1573
+ protected defaultTextField: _angular_core.Signal<string>;
1574
+ protected displayField: _angular_core.Signal<string>;
1575
+ protected host: ElementRef<any>;
1576
+ private entityDef;
1577
+ protected displayItems: _angular_core.WritableSignal<any[]>;
1578
+ protected selectedItemIndex: _angular_core.WritableSignal<number>;
1579
+ private efEntity;
1580
+ private efDisplay;
1581
+ protected visibleItems: _angular_core.Signal<any[]>;
1582
+ protected showItemDetail(item: any, index: number): Promise<void>;
1583
+ protected handleItemClick(index: number): void;
1584
+ protected getItemPath(item: any): string[];
1585
+ protected hasParent(item: any): boolean;
1586
+ protected getItemText(item: any): string;
1587
+ protected getItemId(item: any): string;
1588
+ private extractItemWithPath;
1589
+ /**
1590
+ * Calculate the full path from root to the item.
1591
+ * Returns an array of strings like ["C", "B"] for item B under parent C.
1592
+ */
1593
+ private calculateItemPath;
1594
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCategoryWidgetColumnComponent, never>;
1595
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCategoryWidgetColumnComponent, "axp-entity-category-widget-column", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "rawValueInput": { "alias": "rawValue"; "required": false; }; }, {}, never, never, true, never>;
1596
+ }
1597
+
1598
+ interface AXPEntityCategoryWidgetOptions {
1599
+ disabled?: boolean | AXPExpression;
1600
+ readonly?: boolean | AXPExpression;
1601
+ placeholder?: string;
1602
+ entity?: string;
1603
+ multiple?: boolean;
1604
+ textField?: string;
1605
+ valueField?: string;
1606
+ parentKey?: string;
1607
+ expose?: Array<{
1608
+ source: string;
1609
+ target: string;
1610
+ }>;
1611
+ allowClear?: boolean;
1612
+ look?: 'select' | 'lookup';
1613
+ maxVisible?: number;
1614
+ characterLimit?: number | 'auto';
1615
+ sectionLimit?: number | 'auto';
1616
+ }
1617
+
1618
+ declare class AXPEntityCategoryWidgetEditComponent extends AXPValueWidgetComponent<any, AXPEntityCategoryWidgetOptions> {
1619
+ #private;
1620
+ protected readonly entityResolver: AXPEntityDefinitionRegistryService;
1621
+ protected readonly popupService: AXPopupService;
1622
+ private readonly translateService;
1623
+ protected readonly cdr: ChangeDetectorRef;
1624
+ protected entity: _angular_core.Signal<string>;
1625
+ protected multiple: _angular_core.Signal<boolean>;
1626
+ protected disabled: _angular_core.Signal<boolean>;
1627
+ protected textField: _angular_core.Signal<string>;
1628
+ protected valueField: _angular_core.Signal<string>;
1629
+ protected expose: _angular_core.Signal<{
1630
+ source: string;
1631
+ target: string;
1632
+ }[] | undefined>;
1633
+ protected allowClear: _angular_core.Signal<boolean>;
1634
+ protected characterLimit: _angular_core.Signal<number | "auto">;
1635
+ protected sectionLimit: _angular_core.Signal<number | "auto">;
1636
+ protected defaultTextField: _angular_core.Signal<string>;
1637
+ protected displayField: _angular_core.Signal<string>;
1638
+ protected searchPlaceholderText: _angular_core.WritableSignal<string>;
1639
+ protected selectedItems: _angular_core.WritableSignal<any[]>;
1640
+ protected isLoading: _angular_core.WritableSignal<boolean>;
1641
+ protected isOpen: _angular_core.WritableSignal<boolean>;
1642
+ protected tagBox: _angular_core.Signal<AXTagBoxComponent | undefined>;
1643
+ protected searchTerm: _angular_core.WritableSignal<string | null>;
1644
+ private entityDef;
1645
+ protected handleAddClick(e: AXClickEvent): void;
1646
+ protected handleValueChange(e: AXValueChangedEvent): void;
1647
+ protected handleOnBlur(e: AXFocusEvent): void;
1648
+ protected handleKeyUp(e: AXHtmlEvent): Promise<void>;
1649
+ protected handleClearClick(): void;
1650
+ protected handleRemoveItem(event: Event, index: number): Promise<void>;
1651
+ clearInput(): void;
1652
+ private showTreeSelector;
1653
+ clear(): void;
1654
+ private findByValue;
1655
+ private setItems;
1656
+ private singleOrMultiple;
1657
+ protected getItemLabel(item: any): string;
1658
+ /**
1659
+ * Get item path as array for breadcrumb component
1660
+ */
1661
+ protected getItemPath(item: any): string[];
1662
+ /**
1663
+ * Join path array with separator.
1664
+ * Override this method to customize the separator (e.g., " > ", " -> ", " / ")
1665
+ */
1666
+ protected joinPath(path: string[]): string;
1667
+ protected getItemId(item: any): string;
1668
+ /**
1669
+ * Calculate the full path from root to the item.
1670
+ * Returns an array of strings like ["C", "B"] for item B under parent C.
1671
+ */
1672
+ private calculateItemPath;
1673
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCategoryWidgetEditComponent, never>;
1674
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCategoryWidgetEditComponent, "axp-entity-category-widget-edit", never, {}, {}, never, never, true, never>;
1675
+ }
1676
+
1677
+ declare class AXPEntityCategoryWidgetViewComponent extends AXPValueWidgetComponent<any> {
1678
+ protected readonly formatService: AXFormatService;
1679
+ protected readonly entityResolver: AXPEntityDefinitionRegistryService;
1680
+ protected entity: _angular_core.Signal<string>;
1681
+ protected multiple: _angular_core.Signal<boolean>;
1682
+ protected valueField: _angular_core.Signal<string>;
1683
+ protected textField: _angular_core.Signal<string>;
1684
+ protected badgeClass: _angular_core.Signal<string>;
1685
+ protected displayField: _angular_core.Signal<string>;
1686
+ protected loading: _angular_core.WritableSignal<boolean>;
1687
+ private entityDef;
1688
+ protected displayItems: _angular_core.WritableSignal<{
1689
+ id: string;
1690
+ text: string;
1691
+ }[]>;
1692
+ private efEntity;
1693
+ private efDisplay;
1694
+ private extractItem;
1695
+ private getDisplayText;
1696
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityCategoryWidgetViewComponent, never>;
1697
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityCategoryWidgetViewComponent, "axp-entity-category-widget-view", never, {}, {}, never, never, true, never>;
1698
+ }
1699
+
1700
+ declare const AXPEntityCategoryWidget: AXPWidgetConfig;
1701
+
1702
+ declare class AXPTruncatedBreadcrumbComponent implements OnDestroy {
1703
+ /**
1704
+ * Array of path sections to display
1705
+ */
1706
+ sections: _angular_core.InputSignal<string[]>;
1707
+ /**
1708
+ * Maximum number of characters per section.
1709
+ * Can be a number or 'auto' to calculate based on available space.
1710
+ */
1711
+ characterLimit: _angular_core.InputSignal<number | "auto">;
1712
+ /**
1713
+ * Maximum number of sections to display before showing ellipsis.
1714
+ * Can be a number or 'auto' to calculate based on available space.
1715
+ */
1716
+ sectionLimit: _angular_core.InputSignal<number | "auto">;
1717
+ /**
1718
+ * Icon class for separator between sections
1719
+ */
1720
+ separatorIcon: _angular_core.InputSignal<string>;
1721
+ /**
1722
+ * Icon class for ellipsis
1723
+ */
1724
+ ellipsisIcon: _angular_core.InputSignal<string>;
1725
+ /**
1726
+ * Icon class for eye icon (collapse button)
1727
+ */
1728
+ eyeIcon: _angular_core.InputSignal<string>;
1729
+ protected container: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
1730
+ protected isExpanded: _angular_core.WritableSignal<boolean>;
1731
+ private containerWidth;
1732
+ private resizeObserver;
1733
+ /**
1734
+ * Effective character limit (calculated if 'auto', otherwise uses input value)
1735
+ */
1736
+ protected effectiveCharacterLimit: _angular_core.Signal<number>;
1737
+ /**
1738
+ * Effective section limit (calculated if 'auto', otherwise uses input value)
1739
+ */
1740
+ protected effectiveSectionLimit: _angular_core.Signal<number>;
1741
+ /**
1742
+ * All sections with truncated text (for collapsed display)
1743
+ */
1744
+ protected allSections: _angular_core.Signal<{
1745
+ text: string;
1746
+ original: string;
1747
+ }[]>;
1748
+ /**
1749
+ * All sections with full text (for expanded display)
1750
+ */
1751
+ protected allSectionsFull: _angular_core.Signal<string[]>;
1752
+ /**
1753
+ * Sections to display (first N sections) when collapsed
1754
+ */
1755
+ protected displayedSections: _angular_core.Signal<{
1756
+ text: string;
1757
+ original: string;
1758
+ }[]>;
1759
+ /**
1760
+ * Last section (always shown if there are hidden sections)
1761
+ */
1762
+ protected lastSection: _angular_core.Signal<{
1763
+ text: string;
1764
+ original: string;
1765
+ }>;
1766
+ /**
1767
+ * Check if there are hidden sections
1768
+ */
1769
+ protected hasHiddenSections: _angular_core.Signal<boolean>;
1770
+ constructor();
1771
+ ngOnDestroy(): void;
1772
+ /**
1773
+ * Handles click on separator icon to expand
1774
+ */
1775
+ protected handleSeparatorClick(event: Event): void;
1776
+ /**
1777
+ * Handles click on ellipsis icon to expand
1778
+ */
1779
+ protected handleEllipsisClick(event: Event): void;
1780
+ /**
1781
+ * Handles click on eye icon to collapse
1782
+ */
1783
+ protected handleCollapseClick(event: Event): void;
1784
+ /**
1785
+ * Initializes ResizeObserver to track container width
1786
+ */
1787
+ private initializeResizeObserver;
1788
+ /**
1789
+ * Calculates automatic character limit based on available space
1790
+ */
1791
+ private calculateAutoCharacterLimit;
1792
+ /**
1793
+ * Calculates automatic section limit based on available space
1794
+ */
1795
+ private calculateAutoSectionLimit;
1796
+ /**
1797
+ * Truncates text to character limit with ellipsis
1798
+ */
1799
+ private truncateText;
1800
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTruncatedBreadcrumbComponent, never>;
1801
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPTruncatedBreadcrumbComponent, "axp-truncated-breadcrumb", never, { "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "characterLimit": { "alias": "characterLimit"; "required": false; "isSignal": true; }; "sectionLimit": { "alias": "sectionLimit"; "required": false; "isSignal": true; }; "separatorIcon": { "alias": "separatorIcon"; "required": false; "isSignal": true; }; "ellipsisIcon": { "alias": "ellipsisIcon"; "required": false; "isSignal": true; }; "eyeIcon": { "alias": "eyeIcon"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1802
+ }
1803
+
1080
1804
  declare class AXPEntityListTableService {
1081
1805
  private readonly workflow;
1082
1806
  private readonly expressionEvaluator;
@@ -1149,68 +1873,9 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
1149
1873
  protected workflow: AXPWorkflowService;
1150
1874
  protected entityListTableService: AXPEntityListTableService;
1151
1875
  protected entityListToolbarService: AXPEntityListToolbarService;
1152
- protected layoutThemeService: {
1153
- currentMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
1154
- currentPalette: _angular_core.Signal<string>;
1155
- systemThemeMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
1156
- font: _ngrx_signals.DeepSignal<{
1157
- family: string;
1158
- size: string;
1159
- }>;
1160
- screenSize: _angular_core.Signal<_acorex_platform_themes_shared.AXPScreenSize>;
1161
- deviceType: _angular_core.Signal<_acorex_platform_themes_shared.AXPDeviceType>;
1162
- isTouchDevice: _angular_core.Signal<boolean>;
1163
- overlayLoading: _angular_core.Signal<boolean>;
1164
- navigationLoading: _angular_core.Signal<boolean>;
1165
- overlayLoadingTaskCount: _angular_core.Signal<number>;
1166
- navigationLoadingTaskCount: _angular_core.Signal<number>;
1167
- sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
1168
- sideMenuWidth: _angular_core.Signal<number>;
1169
- menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
1170
- isPrinting: _angular_core.Signal<boolean>;
1171
- isDarkMode: _angular_core.Signal<boolean>;
1172
- isLightMode: _angular_core.Signal<boolean>;
1173
- isSystemMode: _angular_core.Signal<boolean>;
1174
- isSideMenuOpen: _angular_core.Signal<boolean>;
1175
- isSideMenuOverlay: _angular_core.Signal<boolean>;
1176
- isSmall: _angular_core.Signal<boolean>;
1177
- isMedium: _angular_core.Signal<boolean>;
1178
- isLarge: _angular_core.Signal<boolean>;
1179
- isMobileDevice: _angular_core.Signal<boolean>;
1180
- isTabletDevice: _angular_core.Signal<boolean>;
1181
- isDesktopDevice: _angular_core.Signal<boolean>;
1182
- isTouchScreen: _angular_core.Signal<boolean>;
1183
- isOverlayLoading: _angular_core.Signal<boolean>;
1184
- isNavigationLoading: _angular_core.Signal<boolean>;
1185
- isMenuHorizontal: _angular_core.Signal<boolean>;
1186
- changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
1187
- openSideMenu: () => void;
1188
- closeSideMenu: () => void;
1189
- setSideMenuWidth: (width: number) => void;
1190
- toggleSideMenu: () => void;
1191
- setNavigationLoading: (value: boolean, delay?: number) => void;
1192
- setOverlayLoading: (value: boolean, delay?: number) => void;
1193
- loadSettings: () => Promise<void>;
1194
- } & _ngrx_signals.StateSource<{
1195
- currentMode: _acorex_platform_themes_shared.AXPThemeMode;
1196
- currentPalette: string;
1197
- systemThemeMode: _acorex_platform_themes_shared.AXPThemeMode;
1198
- font: {
1199
- family: string;
1200
- size: string;
1201
- };
1202
- screenSize: _acorex_platform_themes_shared.AXPScreenSize;
1203
- deviceType: _acorex_platform_themes_shared.AXPDeviceType;
1204
- isTouchDevice: boolean;
1205
- overlayLoading: boolean;
1206
- navigationLoading: boolean;
1207
- overlayLoadingTaskCount: number;
1208
- navigationLoadingTaskCount: number;
1209
- sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
1210
- sideMenuWidth: number;
1211
- menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
1212
- isPrinting: boolean;
1213
- }>;
1876
+ protected deviceService: AXPDeviceService;
1877
+ protected commandService: AXPCommandService;
1878
+ protected eventService: AXPBroadcastEventService;
1214
1879
  protected isMounted: _angular_core.WritableSignal<boolean>;
1215
1880
  readonly entity: _angular_core.WritableSignal<AXPEntity | null>;
1216
1881
  protected listNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
@@ -1235,6 +1900,7 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
1235
1900
  protected handleActionClick(item: AXPActionMenuItem): void;
1236
1901
  protected handleSecondaryActionClick(item: AXPActionMenuItem): void;
1237
1902
  protected execute(commandName: string, data: any): Promise<void>;
1903
+ protected queries: undefined;
1238
1904
  /**
1239
1905
  * Validates that all required dependencies are available
1240
1906
  */
@@ -1271,38 +1937,6 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
1271
1937
 
1272
1938
  declare const AXPEntityListWidget: AXPWidgetConfig;
1273
1939
 
1274
- declare class AXPEntityReferenceWidgetViewComponent extends AXPLayoutBaseWidgetComponent {
1275
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityReferenceWidgetViewComponent, never>;
1276
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityReferenceWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
1277
- }
1278
-
1279
- declare class AXPEntityReferenceWidgetEditComponent extends AXPLayoutBaseWidgetComponent {
1280
- #private;
1281
- protected readonly injector: Injector;
1282
- protected readonly entityResolver: AXPEntityResolver;
1283
- protected entity: _angular_core.Signal<string>;
1284
- protected entityDef: _angular_core.WritableSignal<AXPEntity | null>;
1285
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityReferenceWidgetEditComponent, never>;
1286
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityReferenceWidgetEditComponent, "ng-component", never, {}, {}, never, never, true, never>;
1287
- }
1288
-
1289
- declare class AXPEntityReferenceWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
1290
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityReferenceWidgetColumnComponent, never>;
1291
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityReferenceWidgetColumnComponent, "ng-component", never, { "rawValue": { "alias": "rawValue"; "required": false; }; }, {}, never, never, true, never>;
1292
- }
1293
-
1294
- declare class AXPEntityReferenceWidgetPrintComponent extends AXPLayoutBaseWidgetComponent {
1295
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityReferenceWidgetPrintComponent, never>;
1296
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityReferenceWidgetPrintComponent, "ng-component", never, {}, {}, never, never, true, never>;
1297
- }
1298
-
1299
- declare class AXPEntityReferenceWidgetDesignerComponent extends AXPLayoutBaseWidgetComponent {
1300
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityReferenceWidgetDesignerComponent, never>;
1301
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityReferenceWidgetDesignerComponent, "ng-component", never, {}, {}, never, never, true, never>;
1302
- }
1303
-
1304
- declare const AXPEntityReferenceWidget: AXPWidgetConfig;
1305
-
1306
1940
  declare class AXPLookupFilterWidgetEditComponent extends AXPValueWidgetComponent<any> {
1307
1941
  #private;
1308
1942
  protected editorPath: string;
@@ -1331,12 +1965,13 @@ declare module '@acorex/platform/layout/widget-core' {
1331
1965
 
1332
1966
  declare class AXPLookupWidgetViewComponent extends AXPValueWidgetComponent<any> {
1333
1967
  protected readonly formatService: AXFormatService;
1334
- protected readonly entityResolver: AXPEntityResolver;
1968
+ protected readonly entityResolver: AXPEntityDefinitionRegistryService;
1335
1969
  protected entity: _angular_core.Signal<string>;
1336
1970
  protected multiple: _angular_core.Signal<boolean>;
1337
1971
  protected valueField: _angular_core.Signal<string>;
1338
1972
  protected textField: _angular_core.Signal<string>;
1339
1973
  protected badgeClass: _angular_core.Signal<string>;
1974
+ protected displayFormat: _angular_core.Signal<string | undefined>;
1340
1975
  protected displayField: _angular_core.Signal<string>;
1341
1976
  protected loading: _angular_core.WritableSignal<boolean>;
1342
1977
  private entityDef;
@@ -1344,6 +1979,7 @@ declare class AXPLookupWidgetViewComponent extends AXPValueWidgetComponent<any>
1344
1979
  private efEntity;
1345
1980
  private efDisplay;
1346
1981
  private extractItem;
1982
+ private getDisplayText;
1347
1983
  private get __class();
1348
1984
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLookupWidgetViewComponent, never>;
1349
1985
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLookupWidgetViewComponent, "axp-lookup-widget-view", never, {}, {}, never, never, true, never>;
@@ -1362,6 +1998,8 @@ interface AXPEntityDataSelectorOptions {
1362
1998
  }[];
1363
1999
  allowCreate?: boolean;
1364
2000
  searchFields?: string[];
2001
+ initialSearchTerm?: string;
2002
+ selectedItemIds?: string[] | number[];
1365
2003
  }
1366
2004
  interface AXPEntityDataSelectorResult {
1367
2005
  items: any[];
@@ -1420,12 +2058,13 @@ interface AXPLookupWidgetOptions {
1420
2058
  expose?: string | string[];
1421
2059
  look?: AXPLookupWidgetLookType;
1422
2060
  allowClear?: boolean;
2061
+ displayFormat?: string;
1423
2062
  }
1424
2063
 
1425
2064
  declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any> {
1426
2065
  #private;
1427
2066
  protected readonly injector: Injector;
1428
- protected readonly entityResolver: AXPEntityResolver;
2067
+ protected readonly entityResolver: AXPEntityDefinitionRegistryService;
1429
2068
  protected readonly formatService: AXFormatService;
1430
2069
  protected readonly popupService: AXPopupService;
1431
2070
  protected readonly entityDataSelectorService: AXPEntityDataSelectorService;
@@ -1438,6 +2077,7 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
1438
2077
  protected disabled: _angular_core.Signal<string>;
1439
2078
  protected columns: _angular_core.Signal<string[]>;
1440
2079
  protected textField: _angular_core.Signal<string>;
2080
+ protected hasClearButton: _angular_core.Signal<boolean>;
1441
2081
  protected customFilter: _angular_core.Signal<AXDataSourceFilterOption>;
1442
2082
  protected multiple: _angular_core.Signal<boolean>;
1443
2083
  protected look: _angular_core.Signal<AXPLookupWidgetLookType>;
@@ -1446,21 +2086,27 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
1446
2086
  protected displayField: _angular_core.Signal<string>;
1447
2087
  protected selectedItemsText: _angular_core.Signal<string>;
1448
2088
  protected valueField: _angular_core.Signal<string>;
2089
+ protected displayFormat: _angular_core.Signal<string | undefined>;
1449
2090
  protected conditions?: AXPQueryFilter[];
1450
2091
  protected filter: AXDataSourceFilterOption | null;
1451
2092
  private entityDef;
2093
+ /**
2094
+ * Get default sort order from entity's first list view
2095
+ */
2096
+ protected defaultSorts: _angular_core.Signal<AXDataSourceSortOption[]>;
1452
2097
  protected dataSource: _angular_core.Signal<AXDataSource<unknown> | null>;
1453
2098
  protected searchTerm: _angular_core.WritableSignal<string | null>;
1454
2099
  protected selectedItems: _angular_core.WritableSignal<any[]>;
1455
2100
  textbox: _angular_core.Signal<AXTagBoxComponent | undefined>;
1456
2101
  protected isLoading: _angular_core.WritableSignal<boolean>;
1457
2102
  protected isOpen: _angular_core.WritableSignal<boolean>;
1458
- protected placeholder: _angular_core.Signal<string>;
2103
+ private placeholderUpdateToken;
1459
2104
  private findByValue;
1460
2105
  protected handleOnClick(e: AXClickEvent): void;
1461
2106
  private showSelector;
1462
2107
  protected selectBoxValueChange(e: AXValueChangedEvent): void;
1463
2108
  protected handleValueChange(e: AXValueChangedEvent): void;
2109
+ protected handleSearchInputChange(e: AXValueChangedEvent): void;
1464
2110
  protected handleOnBlur(e: AXFocusEvent): void;
1465
2111
  protected handleKeyUp(e: AXHtmlEvent): Promise<void>;
1466
2112
  private setItems;
@@ -1468,6 +2114,7 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
1468
2114
  refresh(): void;
1469
2115
  clear(): void;
1470
2116
  clearInput(): void;
2117
+ protected getTagLabel(item: any): string;
1471
2118
  private searchByValue;
1472
2119
  private mergeFilter;
1473
2120
  private singleOrMultiple;
@@ -1481,6 +2128,7 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
1481
2128
 
1482
2129
  declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
1483
2130
  private readonly entityDetailPopoverService;
2131
+ private readonly formatService;
1484
2132
  protected moreButton: _angular_core.Signal<ElementRef<any> | undefined>;
1485
2133
  protected morePopover: _angular_core.Signal<AXPopoverComponent | undefined>;
1486
2134
  protected host: ElementRef<any>;
@@ -1489,6 +2137,8 @@ declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<an
1489
2137
  protected entity: string;
1490
2138
  protected columnName: string;
1491
2139
  protected maxVisible: number;
2140
+ protected displayFormat: _angular_core.Signal<string | undefined>;
2141
+ protected displayField: _angular_core.Signal<string>;
1492
2142
  protected isMorePopoverOpen: _angular_core.WritableSignal<boolean>;
1493
2143
  protected selectedItemIndex: _angular_core.WritableSignal<number>;
1494
2144
  protected displayItems: _angular_core.Signal<any[]>;
@@ -1503,44 +2153,13 @@ declare class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent<an
1503
2153
  private openMorePopover;
1504
2154
  private closeMorePopover;
1505
2155
  private extractItem;
2156
+ protected getDisplayText(item: any): string;
1506
2157
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLookupWidgetColumnComponent, never>;
1507
2158
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLookupWidgetColumnComponent, "ng-component", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; }, {}, never, never, true, never>;
1508
2159
  }
1509
2160
 
1510
2161
  declare const AXPLookupWidget: AXPWidgetConfig;
1511
2162
 
1512
- declare class AXPWidgetSelectorWidgetEditComponent extends AXPValueWidgetComponent<any> {
1513
- private popupService;
1514
- private widgetRegisteryService;
1515
- textbox: AXTextBoxComponent;
1516
- protected searchTerm: _angular_core.WritableSignal<string | null>;
1517
- protected isOpen: _angular_core.WritableSignal<boolean>;
1518
- protected textField: _angular_core.WritableSignal<string>;
1519
- protected displayText: _angular_core.Signal<any>;
1520
- protected selectedWidgetNode: _angular_core.WritableSignal<AXPWidgetNode | null>;
1521
- protected selectedItem: _angular_core.WritableSignal<any>;
1522
- protected placeholder: _angular_core.Signal<any>;
1523
- protected loading: _angular_core.Signal<boolean>;
1524
- ngAfterViewInit(): void;
1525
- showSelector(): Promise<void>;
1526
- protected convertWidgetConfigToNode(config: AXPWidgetConfig): AXPWidgetNode;
1527
- protected handleChangeWidget(e: AXPWidgetPropertiesChangedEvent): void;
1528
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetSelectorWidgetEditComponent, never>;
1529
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetSelectorWidgetEditComponent, "ng-component", never, {}, {}, never, never, true, never>;
1530
- }
1531
-
1532
- declare class AXPWidgetSelectorWidgetViewComponent extends AXPValueWidgetComponent<any> {
1533
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetSelectorWidgetViewComponent, never>;
1534
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetSelectorWidgetViewComponent, "ng-component", never, {}, {}, never, never, true, never>;
1535
- }
1536
-
1537
- declare const AXPWidgetSelectorWidget: AXPWidgetConfig;
1538
- declare module '@acorex/platform/layout/widget-core' {
1539
- interface AXPWidgetTypesMap {
1540
- widgetSelector: 'widget-selector';
1541
- }
1542
- }
1543
-
1544
2163
  declare const AXPEntityCreateEvent: {
1545
2164
  (payload: {
1546
2165
  entity: string;
@@ -1596,7 +2215,7 @@ declare class AXPEntityPerformDeleteAction extends AXPWorkflowAction {
1596
2215
  private dialogService;
1597
2216
  private loadingDialog;
1598
2217
  private translationService;
1599
- private settingService;
2218
+ private settingsService;
1600
2219
  execute(context: AXPWorkflowContext): Promise<void>;
1601
2220
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityPerformDeleteAction, never>;
1602
2221
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityPerformDeleteAction>;
@@ -1671,5 +2290,5 @@ declare class AXPShowListViewAction extends AXPWorkflowAction {
1671
2290
  }
1672
2291
  declare const AXPShowListViewWorkflow: AXPWorkflow;
1673
2292
 
1674
- export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityDynamicDialogService, AXPEntityEventDispatcherService, AXPEntityListTableService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityReferenceWidget, AXPEntityReferenceWidgetColumnComponent, AXPEntityReferenceWidgetDesignerComponent, AXPEntityReferenceWidgetEditComponent, AXPEntityReferenceWidgetPrintComponent, AXPEntityReferenceWidgetViewComponent, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPLookupFilterWidget, AXPLookupFilterWidgetEditComponent, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPWidgetSelectorWidget, AXPWidgetSelectorWidgetEditComponent, AXPWidgetSelectorWidgetViewComponent, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, DEFAULT_COLUMN_WIDTHS, actionExists, columnWidthMiddlewareFactory, columnWidthMiddlewareProvider, createColumnWidthMiddlewareProvider, createModifierContext, detectEntityChanges, ensureListActions, entityDetailsCreateActions, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, isAXPMiddlewareAbortError };
1675
- export type { AXPAuditable, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityListItemDto, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOp, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupWidgetLookType, AXPLookupWidgetOptions, AXPOpenEntityDetailsCommandInput, AXPOpenEntityDetailsCommandResult, AXPRecordControl, AXPRecordOwnership, ColumnWidthConfig };
2293
+ export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorService, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListTableService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPLookupFilterWidget, AXPLookupFilterWidgetEditComponent, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, DEFAULT_COLUMN_WIDTHS, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, EntityBuilder, EntityDataAccessor, actionExists, cloneLayoutArrays, columnWidthMiddlewareFactory, columnWidthMiddlewareProvider, createColumnWidthMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, isAXPMiddlewareAbortError, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider };
2294
+ export type { AXPAuditEvent, AXPAuditInfo, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListItemDto, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOp, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupWidgetLookType, AXPLookupWidgetOptions, AXPOpenEntityDetailsCommandInput, AXPRecordOwnershipInfo, AXPRecordStateInfo, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, ColumnWidthConfig, SectionOrderConfig };