@acorex/platform 20.3.0-next.0 → 20.3.0-next.10

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 (112) hide show
  1. package/common/index.d.ts +8 -9
  2. package/core/index.d.ts +597 -46
  3. package/fesm2022/acorex-platform-auth.mjs +19 -19
  4. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-common.mjs +111 -163
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +759 -113
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +16 -16
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +518 -95
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components.mjs +1997 -215
  14. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-designer.mjs +86 -79
  16. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs +52 -0
  18. package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-entity.mjs +1650 -916
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +37 -29
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-native.mjs +7 -7
  24. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-runtime.mjs +40 -40
  26. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  27. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs → acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs} +5 -5
  28. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-D3VUh8K8.mjs → acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs} +30 -31
  30. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs +101 -0
  32. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BMkhNfF4.mjs → acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs} +7 -7
  34. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BMkhNfF4.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs.map} +1 -1
  35. package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs} +4 -4
  36. package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs.map → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs} +4 -4
  38. package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs.map → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs.map} +1 -1
  39. package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs} +4 -4
  40. package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs.map → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs.map} +1 -1
  41. package/fesm2022/acorex-platform-themes-default.mjs +40 -40
  42. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  43. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs} +24 -14
  44. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs.map +1 -0
  45. package/fesm2022/{acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs → acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs} +2 -2
  46. package/fesm2022/acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs.map +1 -0
  47. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs} +23 -8
  48. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs.map +1 -0
  49. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs} +23 -8
  50. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-themes-shared.mjs +241 -74
  52. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  53. package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BJtkWusr.mjs → acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs} +5 -5
  54. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs → acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs} +4 -4
  56. package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs.map → acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs.map} +1 -1
  57. package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs → acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs} +4 -4
  58. package/fesm2022/{acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs.map → acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs.map} +1 -1
  59. package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs → acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs} +4 -4
  60. package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs.map → acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs.map} +1 -1
  61. package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs → acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs} +4 -4
  62. package/fesm2022/{acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs.map → acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs.map} +1 -1
  63. package/fesm2022/{acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs → acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs} +4 -4
  64. package/fesm2022/{acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs.map → acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs.map} +1 -1
  65. package/fesm2022/{acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs → acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs} +4 -4
  66. package/fesm2022/{acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs.map → acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs.map} +1 -1
  67. package/fesm2022/{acorex-platform-widgets-file-list-popup.component-BafU5Lfl.mjs → acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs} +5 -5
  68. package/fesm2022/acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs.map +1 -0
  69. package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-Cw9WcZze.mjs → acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs} +6 -6
  70. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs.map +1 -0
  71. package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs} +11 -11
  72. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs.map +1 -0
  73. package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs → acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs} +6 -5
  74. package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs.map +1 -0
  75. package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-DaR4Nkv4.mjs → acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs} +5 -6
  76. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs.map +1 -0
  77. package/fesm2022/acorex-platform-widgets.mjs +9725 -8964
  78. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  79. package/fesm2022/acorex-platform-workflow.mjs +25 -25
  80. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  81. package/layout/builder/index.d.ts +69 -21
  82. package/layout/components/index.d.ts +816 -58
  83. package/layout/designer/index.d.ts +4 -2
  84. package/layout/entity/index.d.ts +437 -231
  85. package/package.json +8 -8
  86. package/widgets/index.d.ts +1806 -732
  87. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-I7Eq8Nti.mjs.map +0 -1
  88. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D3VUh8K8.mjs.map +0 -1
  89. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs +0 -101
  90. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-16sdMBvH.mjs.map +0 -1
  91. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs.map +0 -1
  92. package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-widgets-button-widget-designer.component-BJtkWusr.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-DeKpl0uK.mjs +0 -84
  97. package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-DeKpl0uK.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs +0 -55
  99. package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Cv7dEMCm.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs +0 -76
  101. package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CohkI1w1.mjs +0 -55
  103. package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-CohkI1w1.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-widgets-file-list-popup.component-BafU5Lfl.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs +0 -211
  106. package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-widgets-page-widget-designer.component-Cw9WcZze.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs +0 -40
  109. package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-BDQIfr0g.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CmPqtt0G.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DaR4Nkv4.mjs.map +0 -1
@@ -1,18 +1,121 @@
1
+ import { AXPCommand, AXPQuery } from '@acorex/platform/runtime';
1
2
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, Injector, Type } from '@angular/core';
3
+ import { ElementRef, InjectionToken, Injector, Type } from '@angular/core';
4
+ import { AXPopoverComponent } from '@acorex/components/popover';
5
+ import { AXPMetaData, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPUserReference, AXPQueryRequest, AXPPagedListResult, AXPCategoryEntity as AXPCategoryEntity$1, AXPAppStartUpService, AXPMiddlewareErrorResponse } from '@acorex/platform/core';
6
+ import * as i3 from '@acorex/platform/layout/builder';
7
+ import { AXPWidgetNode, AXPWidgetColumnNode, AXPLayoutBuilderService } from '@acorex/platform/layout/builder';
3
8
  import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption } from '@acorex/cdk/common';
4
9
  import * as _acorex_platform_common from '@acorex/platform/common';
5
10
  import { AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPRelatedEntity, AXPEntitySectionView, AXPGridLayoutOptions, AXPEntityPropertyCreateView, AXPEntityPropertyLayoutConfig, AXPQueryView, AXPEntityPropertyView, AXPCategoryEntity, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityMasterListView, AXPEntityDetailListView, AXPQueryFilter } from '@acorex/platform/common';
6
- import { AXPMetaData, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPQueryRequest, AXPPagedListResult, AXPAppStartUpService } from '@acorex/platform/core';
7
- import * as i3 from '@acorex/platform/layout/builder';
8
- import { AXPWidgetColumnNode, AXPWidgetNode, AXPLayoutBuilderService } from '@acorex/platform/layout/builder';
9
11
  import * as i1 from '@angular/router';
10
12
  import { ResolveFn } from '@angular/router';
11
13
  import * as rxjs from 'rxjs';
12
14
  import { Subject } from 'rxjs';
13
15
  import * as i2 from '@acorex/platform/workflow';
14
16
  import { AXPWorkflowAction, AXPWorkflowContext, AXPWorkflow } from '@acorex/platform/workflow';
15
- import { AXPCommand } from '@acorex/platform/runtime';
17
+ import { AXPopupSizeType } from '@acorex/components/popup';
18
+ import { IActionBuilder, IFieldBuilder, AXPDialogRef } from '@acorex/platform/layout/components';
19
+
20
+ interface AXPOpenEntityDetailsCommandInput {
21
+ entity: string;
22
+ data: {
23
+ id: string;
24
+ };
25
+ }
26
+ interface AXPOpenEntityDetailsCommandResult {
27
+ success: boolean;
28
+ }
29
+ /**
30
+ * Generic command to open entity details view
31
+ * Can be used by any entity to navigate to its detail page
32
+ */
33
+ declare class AXPOpenEntityDetailsCommand implements AXPCommand<AXPOpenEntityDetailsCommandInput, AXPOpenEntityDetailsCommandResult> {
34
+ private readonly router;
35
+ private readonly sessionService;
36
+ /**
37
+ * Execute the command to navigate to entity details
38
+ * @param input - Command input containing entity and data information
39
+ */
40
+ execute(input: AXPOpenEntityDetailsCommandInput): Promise<AXPOpenEntityDetailsCommandResult>;
41
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPOpenEntityDetailsCommand, never>;
42
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPOpenEntityDetailsCommand>;
43
+ }
44
+
45
+ declare class AXPEntityDetailPopoverComponent {
46
+ private readonly commandService;
47
+ private readonly queryService;
48
+ entity: _angular_core.InputSignal<string>;
49
+ entityId: _angular_core.InputSignal<string | number>;
50
+ textField: _angular_core.InputSignal<string>;
51
+ valueField: _angular_core.InputSignal<string>;
52
+ item: _angular_core.InputSignal<AXPMetaData | undefined>;
53
+ protected detailPopover: _angular_core.Signal<AXPopoverComponent | undefined>;
54
+ protected entityDetails: _angular_core.WritableSignal<any>;
55
+ protected isLoadingDetails: _angular_core.WritableSignal<boolean>;
56
+ protected isDetailPopoverOpen: _angular_core.WritableSignal<boolean>;
57
+ /**
58
+ * Show the entity detail popover
59
+ */
60
+ show(target: ElementRef | HTMLElement): Promise<void>;
61
+ /**
62
+ * Hide the entity detail popover
63
+ */
64
+ hide(): void;
65
+ protected onDetailPopoverOpenChange(event: any): void;
66
+ protected navigateToDetails(): Promise<void>;
67
+ /**
68
+ * Returns true if a value is meaningful for display (non-empty/non-null).
69
+ */
70
+ private hasMeaningfulValue;
71
+ /**
72
+ * Calculates an importance score for a property based on its widget type,
73
+ * whether it currently has a meaningful value, and metadata like title.
74
+ */
75
+ private getPropertyImportanceScore;
76
+ /**
77
+ * Calculates a name-based importance score to prioritize common key fields
78
+ * like title, description, status, and important dates.
79
+ * Name priority MUST come before widget-type priority.
80
+ */
81
+ private getNameImportanceScore;
82
+ protected getEntityPropertiesWithWidgets(): Array<{
83
+ name: string;
84
+ title: string;
85
+ node: AXPWidgetNode;
86
+ }>;
87
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDetailPopoverComponent, never>;
88
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDetailPopoverComponent, "axp-entity-detail-popover", never, { "entity": { "alias": "entity"; "required": true; "isSignal": true; }; "entityId": { "alias": "entityId"; "required": true; "isSignal": true; }; "textField": { "alias": "textField"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
89
+ }
90
+
91
+ interface AXPEntityDetailPopoverOptions {
92
+ entity: string;
93
+ id: string | number;
94
+ item: AXPMetaData;
95
+ textField?: string;
96
+ valueField?: string;
97
+ }
98
+ declare class AXPEntityDetailPopoverService {
99
+ private readonly applicationRef;
100
+ private readonly environmentInjector;
101
+ private activePopoverRef;
102
+ /**
103
+ * Show entity detail popover
104
+ * @param target - The target element to position the popover
105
+ * @param options - Configuration options for the popover
106
+ */
107
+ show(target: ElementRef | HTMLElement, options: AXPEntityDetailPopoverOptions): Promise<void>;
108
+ /**
109
+ * Hide the active popover
110
+ */
111
+ hide(): void;
112
+ /**
113
+ * Check if a popover is currently active
114
+ */
115
+ get isActive(): boolean;
116
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDetailPopoverService, never>;
117
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDetailPopoverService>;
118
+ }
16
119
 
17
120
  interface AXPDataSeeder {
18
121
  seed(): Promise<void>;
@@ -101,6 +204,24 @@ declare class AXPEntityDetailListViewModel {
101
204
  getSecondaryActions(): Promise<AXPEntityCommandTriggerViewModel[]>;
102
205
  }
103
206
 
207
+ /**
208
+ * Entity Event Dispatcher - A wrapper for entity-specific events
209
+ * Handles pattern-based dispatching for entity operations with wildcard support
210
+ */
211
+ declare class AXPEntityEventDispatcherService {
212
+ private readonly eventService;
213
+ dispatchEntityEvent(operation: 'inserted' | 'updated' | 'deleted', entityName: string, data: any): Promise<void>;
214
+ private getAllMatchingEventKeys;
215
+ private findMatchingWildcardKeys;
216
+ private matchesEntityPattern;
217
+ private generateEventKeys;
218
+ dispatchInserted(entityName: string, data: any): Promise<void>;
219
+ dispatchUpdated(entityName: string, data: any): Promise<void>;
220
+ dispatchDeleted(entityName: string, data: any): Promise<void>;
221
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityEventDispatcherService, never>;
222
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityEventDispatcherService>;
223
+ }
224
+
104
225
  declare class AXPEntityCreateViewSectionViewModel {
105
226
  private entity;
106
227
  private section;
@@ -230,6 +351,7 @@ declare class AXPEntityMasterListViewModel {
230
351
  resetColumns(): void;
231
352
  onColumnsChanged(columns: AXPEntityListViewColumnViewModel[]): Promise<void>;
232
353
  applyViewColumns(): void;
354
+ onColumnsOrderChanged(event: any): void;
233
355
  sortableFields: () => {
234
356
  name: string;
235
357
  title: string;
@@ -330,6 +452,17 @@ declare class AXPEntityDetailViewModelFactory {
330
452
  }
331
453
  declare const AXPEntityDetailViewModelResolver: ResolveFn<Promise<AXPEntityMasterSingleViewModel>>;
332
454
 
455
+ declare class AXPEntityUpdateViewSectionViewModel {
456
+ private entity;
457
+ private section;
458
+ constructor(entity: AXPEntity, section: AXPEntitySectionView);
459
+ group: _acorex_platform_common.AXPEntityPropertyGroup;
460
+ name: _angular_core.WritableSignal<string>;
461
+ title: _angular_core.Signal<string>;
462
+ description: _angular_core.Signal<string | null | undefined>;
463
+ layout: _angular_core.Signal<AXPGridLayoutOptions>;
464
+ elements: _angular_core.Signal<AXPEntityMasterUpdateElementViewModel[]>;
465
+ }
333
466
  declare class AXPEntityMasterUpdateElementViewModel {
334
467
  private entity;
335
468
  private property;
@@ -358,6 +491,7 @@ declare class AXPEntityMasterUpdateViewModel {
358
491
  isInProgress: _angular_core.WritableSignal<boolean>;
359
492
  context: _angular_core.WritableSignal<any>;
360
493
  elements: _angular_core.Signal<AXPEntityMasterUpdateElementViewModel[]>;
494
+ sections: _angular_core.Signal<AXPEntityUpdateViewSectionViewModel[]>;
361
495
  save(): Promise<any>;
362
496
  reset(): void;
363
497
  }
@@ -384,10 +518,6 @@ interface AXPEntityModifierContext {
384
518
  get(): string;
385
519
  set(newName: string): AXPEntityModifierContext;
386
520
  };
387
- source: {
388
- get(): string;
389
- set(newSource: string): AXPEntityModifierContext;
390
- };
391
521
  parentKey: {
392
522
  get(): string | undefined;
393
523
  set(newKey: string | undefined): AXPEntityModifierContext;
@@ -509,14 +639,101 @@ declare function createModifierContext(entity: AXPEntity): AXPEntityModifierCont
509
639
 
510
640
  declare const AXP_ENTITY_MODIFIER: InjectionToken<AXPEntityModifierProvider[]>;
511
641
 
642
+ interface AXPEntityPreloadEntity {
643
+ module: string;
644
+ entity: string;
645
+ }
646
+ interface AXPEntityDefinitionPreloader {
647
+ preload(): AXPEntityPreloadEntity[];
648
+ }
649
+ declare class AXPEntityDefinitionRegistryService {
650
+ private providers;
651
+ private resolver;
652
+ private middleware;
653
+ private onChanged;
654
+ get onChanged$(): rxjs.Observable<{
655
+ name: string;
656
+ }>;
657
+ preload(): Promise<void>;
658
+ private entities;
659
+ private entityResolver;
660
+ /**
661
+ * Force re-load and re-process entity definitions, then re-register them.
662
+ * Overloads:
663
+ * - refresh(): refresh all registered entities
664
+ * - refresh(fullName: string): refresh by fully-qualified name `<module>.<entity>`
665
+ * - refresh(moduleName: string, entityName: string): refresh by parts
666
+ */
667
+ refresh(): Promise<void>;
668
+ refresh(fullName: string): Promise<void>;
669
+ refresh(moduleName: string, entityName: string): Promise<void>;
670
+ /** Executes the actual refresh for a single entity */
671
+ private refreshOne;
672
+ /**
673
+ * Registers a new entity configuration. Entities are identified uniquely by a combination
674
+ * of their module and name.
675
+ *
676
+ * @param config The configuration object of the entity to be registered.
677
+ */
678
+ register(config: AXPEntity): void;
679
+ /**
680
+ * Returns an array of all registered entity configurations.
681
+ *
682
+ * @returns An array of AXPEntity objects.
683
+ */
684
+ getAll(): AXPEntity[];
685
+ /**
686
+ * Resolves an entity configuration based on module and entity name. If the configuration
687
+ * is not already registered, attempts to load it dynamically. Throws an error if the
688
+ * entity cannot be found or loaded.
689
+ *
690
+ * @param moduleName The module name of the entity.
691
+ * @param entityName The name of the entity.
692
+ * @returns A promise resolving to the entity configuration.
693
+ * @throws Error if the entity configuration cannot be resolved.
694
+ */
695
+ resolve(moduleName: string, entityName: string): Promise<AXPEntity>;
696
+ /**
697
+ * Creates a unique key for an entity based on its module and name.
698
+ *
699
+ * @param moduleName The module name of the entity.
700
+ * @param entityName The name of the entity.
701
+ * @returns The unique key for the entity.
702
+ */
703
+ private createEntityKey;
704
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDefinitionRegistryService, never>;
705
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDefinitionRegistryService>;
706
+ }
707
+
512
708
  interface AXPAuditable {
513
- createdAt?: Date;
514
- updatedAt?: Date;
515
- createdBy?: string;
516
- updatedBy?: string;
709
+ created?: {
710
+ at?: Date;
711
+ by?: AXPUserReference;
712
+ };
713
+ updated?: {
714
+ at?: Date;
715
+ by?: AXPUserReference;
716
+ };
717
+ deleted?: {
718
+ at?: Date;
719
+ by?: AXPUserReference;
720
+ };
517
721
  }
518
- interface AXPEntityModel<Id> extends AXPAuditable {
722
+ interface AXPRecordControl {
723
+ isReadOnly?: boolean;
724
+ isHidden?: boolean;
725
+ isSystem?: boolean;
726
+ isImmutable?: boolean;
727
+ }
728
+ interface AXPRecordOwnership {
729
+ tenantId?: string;
730
+ ownerId?: string;
731
+ }
732
+ interface AXPEntityModel<Id> {
519
733
  id: Id;
734
+ auditInfo?: AXPAuditable;
735
+ stateInfo?: AXPRecordControl;
736
+ ownershipInfo?: AXPRecordOwnership;
520
737
  }
521
738
  interface AXPEntityCreateDto {
522
739
  }
@@ -531,31 +748,6 @@ interface AXPEntityDetailDto<Id> extends AXPEntityOutputDto<Id> {
531
748
  interface AXPEntityListItemDto<Id> extends AXPEntityOutputDto<Id> {
532
749
  }
533
750
 
534
- type AXPEntityOp = 'initial' | 'create' | 'update' | 'delete' | 'getOne' | 'getAll' | 'query';
535
- interface AXPEntityStorageContext<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
536
- op: AXPEntityOp;
537
- entityName: string;
538
- id?: TKey;
539
- data?: TCreateDto | Omit<Partial<TUpdateDto>, 'id'>;
540
- request?: AXPQueryRequest;
541
- previous?: TDetailDto;
542
- result?: any;
543
- locals: Map<string, unknown>;
544
- backend: {
545
- getOneRaw: (entityName: string, id: TKey) => Promise<TDetailDto>;
546
- insertOneRaw: (entityName: string, entity: TCreateDto) => Promise<TKey>;
547
- };
548
- }
549
- interface AXPEntityStorageMiddleware<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
550
- target?: {
551
- ops?: AXPEntityOp[];
552
- entity?: string | RegExp;
553
- predicate?: (ctx: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>) => boolean;
554
- order?: number;
555
- };
556
- execute: (ctx: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>, next: () => Promise<void>) => Promise<void>;
557
- }
558
-
559
751
  declare abstract class AXPEntityStorageService<TKey, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = TDetailDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> {
560
752
  abstract get dbName(): string;
561
753
  abstract initial(entityName: string, collection: TCreateDto[], options?: {
@@ -603,6 +795,7 @@ declare class AXMEntityCrudServiceImpl<TKey, TDetailDto extends AXPEntityDetailD
603
795
  private _storageService;
604
796
  private entityRegistery;
605
797
  private _entityDataProvider;
798
+ private _entityCategoryDataProvider;
606
799
  constructor(entityName: string);
607
800
  insertOne(request: TCreateDto): Promise<TKey>;
608
801
  getOne(id: TKey): Promise<TDetailDto>;
@@ -619,119 +812,10 @@ declare class AXMEntityCrudServiceImpl<TKey, TDetailDto extends AXPEntityDetailD
619
812
  categoryId: TKey;
620
813
  categoryKey?: string;
621
814
  }): Promise<AXPPagedListResult<TListItemDto>>;
815
+ getCategoriesList(request?: AXPQueryRequest): Promise<AXPPagedListResult<AXPCategoryEntity$1<TKey>>>;
622
816
  get storageService(): AXPEntityStorageService<any, any, any, any, any>;
623
817
  }
624
818
 
625
- declare const AXP_ENTITY_STORAGE_BACKEND: InjectionToken<AXPEntityStorageService<any, any, any, any, any>>;
626
- declare const AXP_ENTITY_STORAGE_MIDDLEWARE: InjectionToken<AXPEntityStorageMiddleware<any, any, any, any, any>[]>;
627
-
628
- declare class AXPMiddlewareEntityStorageService<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> extends AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto> {
629
- private readonly backend;
630
- private readonly allMiddlewares;
631
- private readonly injector;
632
- get dbName(): string;
633
- private filterMiddlewares;
634
- private compose;
635
- private run;
636
- private createCtx;
637
- initial(entityName: string, collection: TCreateDto[], options?: {
638
- mergeType?: 'merge' | 'replace';
639
- uniqueKeys?: string[];
640
- }): Promise<TCreateDto[]>;
641
- getOne(entityName: string, id: TKey): Promise<TDetailDto>;
642
- updateOne(entityName: string, id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
643
- deleteOne(entityName: string, id: TKey): Promise<void>;
644
- insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;
645
- getAll(entityName: string): Promise<TListItemDto[]>;
646
- query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
647
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>, never>;
648
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>>;
649
- }
650
-
651
- interface AXPEntityPreloadEntity {
652
- module: string;
653
- entity: string;
654
- }
655
- interface AXPEntityDefinitionPreloader {
656
- preload(): AXPEntityPreloadEntity[];
657
- }
658
- declare class AXPEntityDefinitionRegistryService {
659
- private providers;
660
- private resolver;
661
- private middleware;
662
- private onChanged;
663
- get onChanged$(): rxjs.Observable<{
664
- name: string;
665
- }>;
666
- preload(): Promise<void>;
667
- private entities;
668
- private entityResolver;
669
- /**
670
- * Force re-load and re-process entity definitions, then re-register them.
671
- * Overloads:
672
- * - refresh(): refresh all registered entities
673
- * - refresh(fullName: string): refresh by fully-qualified name `<module>.<entity>`
674
- * - refresh(moduleName: string, entityName: string): refresh by parts
675
- */
676
- refresh(): Promise<void>;
677
- refresh(fullName: string): Promise<void>;
678
- refresh(moduleName: string, entityName: string): Promise<void>;
679
- /** Executes the actual refresh for a single entity */
680
- private refreshOne;
681
- /**
682
- * Registers a new entity configuration. Entities are identified uniquely by a combination
683
- * of their module and name.
684
- *
685
- * @param config The configuration object of the entity to be registered.
686
- */
687
- register(config: AXPEntity): void;
688
- /**
689
- * Returns an array of all registered entity configurations.
690
- *
691
- * @returns An array of AXPEntity objects.
692
- */
693
- getAll(): AXPEntity[];
694
- /**
695
- * Resolves an entity configuration based on module and entity name. If the configuration
696
- * is not already registered, attempts to load it dynamically. Throws an error if the
697
- * entity cannot be found or loaded.
698
- *
699
- * @param moduleName The module name of the entity.
700
- * @param entityName The name of the entity.
701
- * @returns A promise resolving to the entity configuration.
702
- * @throws Error if the entity configuration cannot be resolved.
703
- */
704
- resolve(moduleName: string, entityName: string): Promise<AXPEntity>;
705
- /**
706
- * Creates a unique key for an entity based on its module and name.
707
- *
708
- * @param moduleName The module name of the entity.
709
- * @param entityName The name of the entity.
710
- * @returns The unique key for the entity.
711
- */
712
- private createEntityKey;
713
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDefinitionRegistryService, never>;
714
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDefinitionRegistryService>;
715
- }
716
-
717
- /**
718
- * Entity Event Dispatcher - A wrapper for entity-specific events
719
- * Handles pattern-based dispatching for entity operations with wildcard support
720
- */
721
- declare class AXPEntityEventDispatcherService {
722
- private readonly eventService;
723
- dispatchEntityEvent(operation: 'inserted' | 'updated' | 'deleted', entityName: string, data: any): Promise<void>;
724
- private getAllMatchingEventKeys;
725
- private findMatchingWildcardKeys;
726
- private matchesEntityPattern;
727
- private generateEventKeys;
728
- dispatchInserted(entityName: string, data: any): Promise<void>;
729
- dispatchUpdated(entityName: string, data: any): Promise<void>;
730
- dispatchDeleted(entityName: string, data: any): Promise<void>;
731
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityEventDispatcherService, never>;
732
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityEventDispatcherService>;
733
- }
734
-
735
819
  interface AXPEntityConfigs {
736
820
  viewers: {
737
821
  root: () => Type<any> | Promise<Type<any>>;
@@ -773,6 +857,208 @@ declare class AXPEntityService {
773
857
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityService>;
774
858
  }
775
859
 
860
+ type AXPEntityOp = 'initial' | 'create' | 'update' | 'delete' | 'getOne' | 'getAll' | 'query';
861
+ interface AXPEntityStorageContext<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
862
+ op: AXPEntityOp;
863
+ entityName: string;
864
+ id?: TKey;
865
+ data?: TCreateDto | Omit<Partial<TUpdateDto>, 'id'>;
866
+ request?: AXPQueryRequest;
867
+ previous?: TDetailDto;
868
+ result?: any;
869
+ locals: Map<string, unknown>;
870
+ backend: {
871
+ getOne: (entityName: string, id: TKey) => Promise<TDetailDto>;
872
+ insertOne: (entityName: string, entity: TCreateDto) => Promise<TKey>;
873
+ query: (entityName: string, request: AXPQueryRequest) => Promise<AXPPagedListResult<TListItemDto>>;
874
+ updateOne: (entityName: string, id: TKey, data: Partial<TUpdateDto>) => Promise<void>;
875
+ };
876
+ }
877
+ interface AXPEntityStorageMiddleware<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
878
+ target?: {
879
+ ops?: AXPEntityOp[];
880
+ entity?: string | RegExp;
881
+ predicate?: (ctx: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>) => boolean;
882
+ order?: number;
883
+ };
884
+ execute: (ctx: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>, next: () => Promise<void>) => Promise<void>;
885
+ }
886
+ /**
887
+ * Error type that can be thrown by middlewares to abort the chain with a structured payload.
888
+ */
889
+ declare class AXPMiddlewareAbortError extends Error {
890
+ readonly message: string;
891
+ readonly options: {
892
+ code?: string;
893
+ status?: number;
894
+ details?: any;
895
+ };
896
+ constructor(message: string, options?: {
897
+ code?: string;
898
+ status?: number;
899
+ details?: any;
900
+ });
901
+ toResponse(): AXPMiddlewareErrorResponse;
902
+ }
903
+ /** Type guard for AXPMiddlewareAbortError */
904
+ declare function isAXPMiddlewareAbortError(error: unknown): error is AXPMiddlewareAbortError;
905
+
906
+ declare const eventDispatchMiddleware: AXPEntityStorageMiddleware;
907
+
908
+ /**
909
+ * Map of column name -> width value
910
+ * Example: { title: '300px', description: '300px' }
911
+ */
912
+ type ColumnWidthConfig = Record<string, string | number>;
913
+ /**
914
+ * Default widths for common text columns
915
+ */
916
+ declare const DEFAULT_COLUMN_WIDTHS: ColumnWidthConfig;
917
+ /**
918
+ * Factory to create a column width middleware using provided config map.
919
+ * Sets width for columns defined in the map if not already defined on the column.
920
+ */
921
+ declare const columnWidthMiddlewareFactory: (widths: ColumnWidthConfig) => AXPEntityModifier;
922
+ /**
923
+ * Helper to create a provider for the column width middleware.
924
+ * By default it applies to all entities using the '*' pattern.
925
+ */
926
+ declare const createColumnWidthMiddlewareProvider: (widths: ColumnWidthConfig, entityName?: string | RegExp) => AXPEntityModifierProvider;
927
+ /**
928
+ * Default provider registered with the default map.
929
+ */
930
+ declare const columnWidthMiddlewareProvider: AXPEntityModifierProvider;
931
+
932
+ interface AXPGetEntityDetailsQueryInput {
933
+ entity: string;
934
+ id: string;
935
+ }
936
+ interface AXPGetEntityDetailsQueryResult {
937
+ success: boolean;
938
+ entityDefinition?: AXPEntity;
939
+ entityData?: any;
940
+ error?: string;
941
+ }
942
+ /**
943
+ * Generic query to get entity details including entity definition and entity data
944
+ * Can be used by any entity to retrieve its definition and data by ID
945
+ */
946
+ declare class AXPGetEntityDetailsQuery implements AXPQuery<AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult> {
947
+ private readonly entityDefinitionRegistry;
948
+ private readonly injector;
949
+ /**
950
+ * Execute the query to fetch entity definition and data
951
+ * @param input - Query input containing entity and ID information
952
+ */
953
+ fetch(input: AXPGetEntityDetailsQueryInput): Promise<AXPGetEntityDetailsQueryResult>;
954
+ /**
955
+ * Get entity data using the entity's CRUD service
956
+ * @param entity - Full entity path (ModuleName.EntityName)
957
+ * @param id - Entity ID
958
+ * @returns Promise resolving to entity data
959
+ */
960
+ private getEntityData;
961
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPGetEntityDetailsQuery, never>;
962
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPGetEntityDetailsQuery>;
963
+ }
964
+
965
+ interface IEntitySelectorStage {
966
+ /** Select target entity using "module.entity" format */
967
+ entity(fullName: string): IInterfaceSelectorStage;
968
+ }
969
+ interface IInterfaceSelectorStage {
970
+ /** Use master.create interface */
971
+ create(): IPropertyFilterStage;
972
+ /** Use master.update interface */
973
+ update(id: string): IPropertyFilterStage;
974
+ }
975
+ interface IPropertyFilterStage {
976
+ /** Only include provided property names (by AXPEntityProperty.name). Mutually exclusive with exclude(). */
977
+ include(...propertyNames: string[]): IPropertyFilterStage;
978
+ /** Exclude provided property names (by AXPEntityProperty.name). Ignored if include() was already set. */
979
+ exclude(...propertyNames: string[]): IPropertyFilterStage;
980
+ /** Optionally override dialog title */
981
+ title(text: string): IPropertyFilterStage;
982
+ /** Provide initial dialog context/model data */
983
+ context(context: any): IPropertyFilterStage;
984
+ /** Override dialog size (e.g., 'sm' | 'md' | 'lg' | 'xl' | 'full') */
985
+ size(size: AXPopupSizeType): IPropertyFilterStage;
986
+ /** Configure footer actions (cancel/submit/custom). If not called, defaults to cancel+submit. */
987
+ actions(delegate: (a: IActionBuilder) => void): IPropertyFilterStage;
988
+ /** Add an extra field into a specific group, using the original field builder API */
989
+ field(groupId: string, path: string, delegate?: (field: IFieldBuilder) => void): IPropertyFilterStage;
990
+ /** Show dialog */
991
+ show(): Promise<AXPDialogRef>;
992
+ }
993
+ declare class AXPEntityDynamicFormDialogService implements IEntitySelectorStage {
994
+ private readonly entityRegistry;
995
+ private readonly formBuilder;
996
+ private readonly layoutTheme;
997
+ entity(fullName: string): IInterfaceSelectorStage;
998
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityDynamicFormDialogService, never>;
999
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityDynamicFormDialogService>;
1000
+ }
1001
+
1002
+ declare const AXP_ENTITY_STORAGE_BACKEND: InjectionToken<AXPEntityStorageService<any, any, any, any, any>>;
1003
+ declare const AXP_ENTITY_STORAGE_MIDDLEWARE: InjectionToken<AXPEntityStorageMiddleware<any, any, any, any, any>[]>;
1004
+
1005
+ declare class AXPMiddlewareEntityStorageService<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> extends AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto> {
1006
+ private readonly backend;
1007
+ private readonly allMiddlewares;
1008
+ private readonly injector;
1009
+ get dbName(): string;
1010
+ private filterMiddlewares;
1011
+ private compose;
1012
+ private run;
1013
+ private createCtx;
1014
+ initial(entityName: string, collection: TCreateDto[], options?: {
1015
+ mergeType?: 'merge' | 'replace';
1016
+ uniqueKeys?: string[];
1017
+ }): Promise<TCreateDto[]>;
1018
+ getOne(entityName: string, id: TKey): Promise<TDetailDto>;
1019
+ updateOne(entityName: string, id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
1020
+ deleteOne(entityName: string, id: TKey): Promise<void>;
1021
+ insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;
1022
+ getAll(entityName: string): Promise<TListItemDto[]>;
1023
+ query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
1024
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>, never>;
1025
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPMiddlewareEntityStorageService<any, any, any, any, any>>;
1026
+ }
1027
+
1028
+ declare function entityMasterCreateAction(): AXPEntityAction;
1029
+ declare function entityMasterBulkDeleteAction(): AXPEntityAction;
1030
+ declare function entityMasterViewAction(): AXPEntityAction;
1031
+ declare function entityMasterDeleteAction(): AXPEntityAction;
1032
+ declare function entityMasterCrudActions(options?: {
1033
+ create?: boolean;
1034
+ delete?: boolean;
1035
+ view?: boolean;
1036
+ edit?: boolean;
1037
+ }): AXPEntityAction[];
1038
+ declare function entityMasterRecordActions(): AXPEntityAction[];
1039
+ declare function entityDetailsCreateActions(parentId: string): AXPEntityAction;
1040
+ declare function entityDetailsSimpleCondition(fk: string): AXPQueryFilter;
1041
+ declare function entityDetailsReferenceCondition(type: string): AXPQueryFilter[];
1042
+ declare function entityDetailsEditAction(): AXPEntityAction;
1043
+ declare function entityOverrideDetailsViewAction(): AXPEntityAction;
1044
+ declare function entityDetailsCrudActions(parentId: string): AXPEntityAction[];
1045
+ declare function entityDetailsReferenceCreateActions(type: string): AXPEntityAction[];
1046
+ type AXPEntityChangeSet = {
1047
+ [key: string]: {
1048
+ oldValue: any;
1049
+ newValue: any;
1050
+ added?: any[];
1051
+ removed?: any[];
1052
+ };
1053
+ };
1054
+ /**
1055
+ * Computes a diff between two plain objects with array-aware semantics.
1056
+ * - For arrays of objects with an id field, computes added/removed by id.
1057
+ * - For arrays of primitives or objects without id, uses deep equality.
1058
+ * - For scalars/objects, reports oldValue/newValue when changed.
1059
+ */
1060
+ declare function detectEntityChanges(oldObj: any, newObj: any): AXPEntityChangeSet;
1061
+
776
1062
  declare const AXPEntityCreateEvent: {
777
1063
  (payload: {
778
1064
  entity: string;
@@ -902,85 +1188,5 @@ declare class AXPShowListViewAction extends AXPWorkflowAction {
902
1188
  }
903
1189
  declare const AXPShowListViewWorkflow: AXPWorkflow;
904
1190
 
905
- interface AXPOpenEntityDetailsCommandInput {
906
- entity: string;
907
- data: {
908
- id: string;
909
- };
910
- }
911
- interface AXPOpenEntityDetailsCommandResult {
912
- success: boolean;
913
- }
914
- /**
915
- * Generic command to open entity details view
916
- * Can be used by any entity to navigate to its detail page
917
- */
918
- declare class AXPOpenEntityDetailsCommand implements AXPCommand<AXPOpenEntityDetailsCommandInput, AXPOpenEntityDetailsCommandResult> {
919
- private readonly navigation;
920
- private readonly sessionService;
921
- /**
922
- * Execute the command to navigate to entity details
923
- * @param input - Command input containing entity and data information
924
- */
925
- execute(input: AXPOpenEntityDetailsCommandInput): Promise<AXPOpenEntityDetailsCommandResult>;
926
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPOpenEntityDetailsCommand, never>;
927
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPOpenEntityDetailsCommand>;
928
- }
929
-
930
- declare function entityMasterCreateAction(): AXPEntityAction;
931
- declare function entityMasterBulkDeleteAction(): AXPEntityAction;
932
- declare function entityMasterViewAction(): AXPEntityAction;
933
- declare function entityMasterDeleteAction(): AXPEntityAction;
934
- declare function entityMasterCrudActions(): AXPEntityAction[];
935
- declare function entityMasterRecordActions(): AXPEntityAction[];
936
- declare function entityDetailsCreateActions(parentId: string): AXPEntityAction;
937
- declare function entityDetailsSimpleCondition(fk: string): AXPQueryFilter;
938
- declare function entityDetailsReferenceCondition(type: string): AXPQueryFilter[];
939
- declare function entityDetailsEditAction(): AXPEntityAction;
940
- declare function entityOverrideDetailsViewAction(): AXPEntityAction;
941
- declare function entityDetailsCrudActions(parentId: string): AXPEntityAction[];
942
- declare function entityDetailsReferenceCreateActions(type: string): AXPEntityAction[];
943
- type AXPEntityChangeSet = {
944
- [key: string]: {
945
- oldValue: any;
946
- newValue: any;
947
- added?: any[];
948
- removed?: any[];
949
- };
950
- };
951
- /**
952
- * Computes a diff between two plain objects with array-aware semantics.
953
- * - For arrays of objects with an id field, computes added/removed by id.
954
- * - For arrays of primitives or objects without id, uses deep equality.
955
- * - For scalars/objects, reports oldValue/newValue when changed.
956
- */
957
- declare function detectEntityChanges(oldObj: any, newObj: any): AXPEntityChangeSet;
958
-
959
- declare const eventDispatchMiddleware: AXPEntityStorageMiddleware;
960
-
961
- /**
962
- * Map of column name -> width value
963
- * Example: { title: '300px', description: '300px' }
964
- */
965
- type ColumnWidthConfig = Record<string, string | number>;
966
- /**
967
- * Default widths for common text columns
968
- */
969
- declare const DEFAULT_COLUMN_WIDTHS: ColumnWidthConfig;
970
- /**
971
- * Factory to create a column width middleware using provided config map.
972
- * Sets width for columns defined in the map if not already defined on the column.
973
- */
974
- declare const columnWidthMiddlewareFactory: (widths: ColumnWidthConfig) => AXPEntityModifier;
975
- /**
976
- * Helper to create a provider for the column width middleware.
977
- * By default it applies to all entities using the '*' pattern.
978
- */
979
- declare const createColumnWidthMiddlewareProvider: (widths: ColumnWidthConfig, entityName?: string | RegExp) => AXPEntityModifierProvider;
980
- /**
981
- * Default provider registered with the default map.
982
- */
983
- declare const columnWidthMiddlewareProvider: AXPEntityModifierProvider;
984
-
985
- export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, 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 };
986
- export type { AXPAuditable, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityListItemDto, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOp, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPOpenEntityDetailsCommandInput, AXPOpenEntityDetailsCommandResult, ColumnWidthConfig };
1191
+ export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityDynamicFormDialogService, AXPEntityEventDispatcherService, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPGetEntityDetailsQuery, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, 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 };
1192
+ export type { AXPAuditable, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityListItemDto, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOp, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPOpenEntityDetailsCommandInput, AXPOpenEntityDetailsCommandResult, AXPRecordControl, AXPRecordOwnership, ColumnWidthConfig };