@acorex/platform 21.0.0-next.3 → 21.0.0-next.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +295 -45
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +60 -4
  4. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +960 -319
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +1352 -832
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +554 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +530 -154
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  14. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-components.mjs +5969 -2347
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +15380 -9274
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +393 -110
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +511 -450
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  26. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +39 -16
  28. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  30. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  32. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +6 -6
  36. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  40. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets.mjs +7865 -4026
  42. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  43. package/fesm2022/acorex-platform-native.mjs +8 -7
  44. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-runtime.mjs +220 -169
  46. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
  48. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +18 -25
  52. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  54. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  58. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default.mjs +1717 -66
  60. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  61. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  62. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +11 -11
  67. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
  70. package/fesm2022/acorex-platform-themes-shared.mjs +563 -561
  71. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  72. package/fesm2022/acorex-platform-workflow.mjs +1735 -1750
  73. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  74. package/fesm2022/acorex-platform.mjs.map +1 -1
  75. package/package.json +31 -31
  76. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +247 -10
  77. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +492 -31
  78. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +606 -392
  79. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
  80. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +128 -56
  81. package/types/acorex-platform-layout-components.d.ts +2927 -0
  82. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
  83. package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +1133 -237
  84. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +90 -31
  85. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +206 -102
  86. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +942 -137
  87. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  88. package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
  89. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +113 -5
  90. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +1 -1
  91. package/types/acorex-platform-workflow.d.ts +1806 -0
  92. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  101. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs +0 -1542
  103. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  105. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  110. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  115. package/layout/components/index.d.ts +0 -1669
  116. package/workflow/index.d.ts +0 -2443
  117. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -1,15 +1,21 @@
1
- import * as _angular_core from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
2
  import { OnInit, EventEmitter } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { AXFormComponent } from '@acorex/components/form';
5
5
  import { AXValidationSummary } from '@acorex/core/validation';
6
- import { AXPWidgetNode, AXPWidgetRenderMode, AXPWidgetCoreContextChangeEvent, AXPWidgetContainerComponent, AXPWidgetCoreElementAction } from '@acorex/platform/layout/widget-core';
6
+ import { AXPWidgetNode, AXPWidgetRenderMode, AXPWidgetContainerComponent, AXPWidgetCoreElementAction } from '@acorex/platform/layout/widget-core';
7
7
  import { AXDataSource } from '@acorex/cdk/common';
8
8
  import { AXPopupSizeType } from '@acorex/components/popup';
9
9
  import { AXStepWizardLook } from '@acorex/components/step-wizard';
10
- import { AXPGridLayoutOptions, AXPExpression, AXPValidationRules, AXPOptionsData, AXPActionMenuItem } from '@acorex/platform/core';
10
+ import { AXPMultiLanguageString, AXPGridLayoutOptions, AXPExpression, AXPValidationRules, AXPOptionsData, AXPActionMenuItem, AXPContextChangeEvent, AXPExecuteCommandResult } from '@acorex/platform/core';
11
11
  import { AXBasePageComponent } from '@acorex/components/page';
12
+ import { AXPCommand } from '@acorex/platform/runtime';
12
13
 
14
+ /**
15
+ * Extended widget node properties (excluding type, path, name, options, children)
16
+ * These properties can be passed as a third parameter to customWidget method
17
+ */
18
+ type AXPWidgetNodeExtendedProperties = Omit<AXPWidgetNode, 'type' | 'path' | 'name' | 'options'>;
13
19
  /**
14
20
  * Form appearance and density styling (using fieldset widget look)
15
21
  */
@@ -24,9 +30,9 @@ type AXPDynamicFormMode = 'view' | 'edit';
24
30
  type AXPDynamicFormDirection = 'vertical' | 'horizontal' | 'grid';
25
31
  interface AXPDynamicFormFieldDefinition {
26
32
  path: string;
27
- title?: string;
33
+ title?: AXPMultiLanguageString;
28
34
  badge?: string;
29
- description?: string;
35
+ description?: AXPMultiLanguageString;
30
36
  widget: AXPWidgetNode;
31
37
  /**
32
38
  * Optional per-field rendering mode. Takes precedence over section and form modes.
@@ -36,8 +42,8 @@ interface AXPDynamicFormFieldDefinition {
36
42
  }
37
43
  interface AXPDynamicFormGroupDefinition {
38
44
  name: string;
39
- title?: string;
40
- description?: string;
45
+ title?: AXPMultiLanguageString;
46
+ description?: AXPMultiLanguageString;
41
47
  parameters: AXPDynamicFormFieldDefinition[];
42
48
  /**
43
49
  * Optional per-section rendering mode. Takes precedence over form mode and is overridden by field mode.
@@ -82,7 +88,7 @@ interface ValueWidgetOptions extends LayoutWidgetOptions {
82
88
  validations?: AXPValidationRules;
83
89
  }
84
90
  interface TextBoxOptions extends ValueWidgetOptions {
85
- placeholder?: string;
91
+ placeholder?: AXPMultiLanguageString;
86
92
  maxLength?: number;
87
93
  minLength?: number;
88
94
  prefix?: string;
@@ -93,14 +99,14 @@ interface NumberBoxOptions extends ValueWidgetOptions {
93
99
  min?: number;
94
100
  max?: number;
95
101
  step?: number;
96
- placeholder?: string;
102
+ placeholder?: AXPMultiLanguageString;
97
103
  format?: string;
98
104
  }
99
105
  interface SelectBoxOptions extends ValueWidgetOptions {
100
106
  dataSource: any[] | (() => any[]) | (() => Promise<any[]>) | AXDataSource<any>;
101
107
  valueField?: string;
102
108
  textField?: string;
103
- placeholder?: string;
109
+ placeholder?: AXPMultiLanguageString;
104
110
  multiple?: boolean;
105
111
  searchable?: boolean;
106
112
  clearButton?: boolean;
@@ -111,7 +117,7 @@ interface DateTimeBoxOptions extends ValueWidgetOptions {
111
117
  format?: string;
112
118
  min?: Date | string;
113
119
  max?: Date | string;
114
- placeholder?: string;
120
+ placeholder?: AXPMultiLanguageString;
115
121
  clearButton?: boolean;
116
122
  }
117
123
  interface ToggleSwitchOptions extends ValueWidgetOptions {
@@ -123,7 +129,7 @@ interface LargeTextBoxOptions extends ValueWidgetOptions {
123
129
  rows?: number;
124
130
  maxLength?: number;
125
131
  minLength?: number;
126
- placeholder?: string;
132
+ placeholder?: AXPMultiLanguageString;
127
133
  resizable?: boolean;
128
134
  }
129
135
  interface ColorBoxOptions extends ValueWidgetOptions {
@@ -237,12 +243,12 @@ interface AXPDialogContainerOptions extends LayoutWidgetOptions {
237
243
  context?: any;
238
244
  }
239
245
  interface RichTextOptions extends ValueWidgetOptions {
240
- placeholder?: string;
246
+ placeholder?: AXPMultiLanguageString;
241
247
  toolbar?: string[];
242
248
  readonly?: boolean;
243
249
  }
244
250
  interface PasswordBoxOptions extends ValueWidgetOptions {
245
- placeholder?: string;
251
+ placeholder?: AXPMultiLanguageString;
246
252
  revealToggle?: boolean;
247
253
  maxLength?: number;
248
254
  }
@@ -264,7 +270,7 @@ interface SelectionListOptions extends ValueWidgetOptions {
264
270
  textField?: string;
265
271
  multiple?: boolean;
266
272
  searchable?: boolean;
267
- placeholder?: string;
273
+ placeholder?: AXPMultiLanguageString;
268
274
  }
269
275
  interface AXPListWidgetColumn {
270
276
  name: string;
@@ -384,7 +390,7 @@ interface AXPWidgetConfiguration {
384
390
  options?: AXPOptionsData;
385
391
  }
386
392
  type LayoutBuilderState = AXPWidgetNode;
387
- type WidgetBuilderState = Omit<AXPWidgetNode, 'children'> & {
393
+ type WidgetBuilderState = AXPWidgetNode & {
388
394
  layout?: AXPGridLayoutOptions;
389
395
  };
390
396
  type FormFieldBuilderState = AXPWidgetNode & {
@@ -403,7 +409,9 @@ type DialogBuilderState = AXPWidgetNode & {
403
409
  interface IActionBuilder {
404
410
  cancel(text?: string): IActionBuilder;
405
411
  submit(text?: string): IActionBuilder;
406
- custom(action: AXPActionMenuItem): IActionBuilder;
412
+ custom(action: AXPActionMenuItem & {
413
+ position?: 'prefix' | 'suffix';
414
+ }): IActionBuilder;
407
415
  }
408
416
  interface ILayoutBuilder {
409
417
  grid(delegate: (container: IGridContainerBuilder) => void): ILayoutBuilder;
@@ -412,9 +420,14 @@ interface ILayoutBuilder {
412
420
  page(delegate: (container: IPageContainerBuilder) => void): ILayoutBuilder;
413
421
  tabset(delegate: (container: ITabsetContainerBuilder) => void): ILayoutBuilder;
414
422
  fieldset(delegate: (container: IFieldsetContainerBuilder) => void): ILayoutBuilder;
415
- dialog(delegate: (container: IDialogBuilder) => void): IDialogBuilder;
423
+ dialog<T = AXPDialogRef>(delegate: (container: IDialogBuilder<T>) => void): IDialogBuilder<T>;
416
424
  stepWizard(delegate: (wizard: IStepWizardBuilder) => void): ILayoutBuilder;
417
425
  build(): AXPWidgetNode;
426
+ toJson(options?: {
427
+ removeMeta?: boolean;
428
+ removeFunctions?: boolean;
429
+ pretty?: boolean;
430
+ }): string;
418
431
  }
419
432
  interface IWidgetBuilder {
420
433
  name(name: string): IWidgetBuilder;
@@ -498,6 +511,8 @@ interface IGridContainerBuilder extends IBaseContainerBuilder<IGridContainerBuil
498
511
  setBackgroundColor(color: string): IGridContainerBuilder;
499
512
  setPadding(padding: string): IGridContainerBuilder;
500
513
  setMargin(margin: string): IGridContainerBuilder;
514
+ /** Add a grid-item-layout child with optional placement; delegate builds the fieldset content. */
515
+ item(layoutOptions: Partial<AXPGridLayoutOptions> | null | undefined, delegate: (container: IFieldsetContainerBuilder) => void): IGridContainerBuilder;
501
516
  }
502
517
  interface IPanelContainerBuilder extends IBaseContainerBuilder<IPanelContainerBuilder>, ILayoutContainerBuilder<IPanelContainerBuilder>, IChildContainerBuilder<IPanelContainerBuilder>, IWidgetContainerBuilder<IPanelContainerBuilder> {
503
518
  setOptions(options: AXPPanelContainerOptions): IPanelContainerBuilder;
@@ -540,6 +555,7 @@ interface IFormFieldBuilder extends IBaseContainerBuilder<IFormFieldBuilder>, IL
540
555
  toggleSwitch(options?: Omit<ToggleSwitchOptions, 'path'>): IFormFieldBuilder;
541
556
  colorBox(options?: Omit<ColorBoxOptions, 'path'>): IFormFieldBuilder;
542
557
  customWidget<T>(type: string, options?: Omit<T, 'path'>): IFormFieldBuilder;
558
+ customWidget<T>(type: string, options?: Omit<T, 'path'> & Partial<AXPWidgetNodeExtendedProperties>): IFormFieldBuilder;
543
559
  }
544
560
  interface IFieldsetContainerBuilder extends IBaseContainerBuilder<IFieldsetContainerBuilder>, ILayoutContainerBuilder<IFieldsetContainerBuilder> {
545
561
  setOptions(options: AXPFieldsetContainerOptions): IFieldsetContainerBuilder;
@@ -553,19 +569,26 @@ interface IFieldsetContainerBuilder extends IBaseContainerBuilder<IFieldsetConta
553
569
  setCols(cols: number): IFieldsetContainerBuilder;
554
570
  formField(label: string, delegate?: (field: IFormFieldBuilder) => void): IFieldsetContainerBuilder;
555
571
  }
556
- interface IDialogBuilder {
572
+ interface IDialogBuilder<T = AXPDialogRef> {
557
573
  }
558
- interface IDialogBuilder {
559
- setOptions(options: AXPDialogContainerOptions): IDialogBuilder;
560
- setTitle(title: string): IDialogBuilder;
561
- setMessage(message?: string): IDialogBuilder;
562
- setSize(size: AXPopupSizeType): IDialogBuilder;
563
- setCloseButton(closeButton: boolean): IDialogBuilder;
564
- setContext(context: any): IDialogBuilder;
565
- content(delegate: (layoutBuilder: IFlexContainerBuilder) => void): IDialogBuilder;
566
- setActions(delegate?: (actions: IActionBuilder) => void): IDialogBuilder;
567
- addCustomAction(action: AXPActionMenuItem): IDialogBuilder;
568
- show(): Promise<AXPDialogRef>;
574
+ interface IDialogBuilder<T = AXPDialogRef> {
575
+ setOptions(options: AXPDialogContainerOptions): IDialogBuilder<T>;
576
+ setTitle(title: string): IDialogBuilder<T>;
577
+ setMessage(message?: string): IDialogBuilder<T>;
578
+ setSize(size: AXPopupSizeType): IDialogBuilder<T>;
579
+ setCloseButton(closeButton: boolean): IDialogBuilder<T>;
580
+ setContext(context: any): IDialogBuilder<T>;
581
+ content(delegate: (layoutBuilder: IFlexContainerBuilder) => void): IDialogBuilder<T>;
582
+ setActions(delegate?: (actions: IActionBuilder) => void): IDialogBuilder<T>;
583
+ /**
584
+ * Handler invoked when user clicks an action. Receives AXPDialogRef (context, action, setLoading, close).
585
+ * If handler throws, dialog stays open for retry.
586
+ * If handler returns, dialog closes and show() resolves with the return value.
587
+ */
588
+ onAction(handler: (dialogRef: AXPDialogRef) => T | Promise<T>): IDialogBuilder<T>;
589
+ addCustomAction(action: AXPActionMenuItem): IDialogBuilder<T>;
590
+ build(): AXPWidgetNode;
591
+ show(): Promise<T>;
569
592
  }
570
593
  interface IListWidgetBuilder extends IBaseContainerBuilder<IListWidgetBuilder>, ILayoutContainerBuilder<IListWidgetBuilder>, IChildContainerBuilder<IListWidgetBuilder>, IWidgetContainerBuilder<IListWidgetBuilder> {
571
594
  setOptions(options: AXPListWidgetOptions): IListWidgetBuilder;
@@ -627,38 +650,38 @@ declare class AXPLayoutRendererComponent implements OnInit {
627
650
  /**
628
651
  * Form definition containing groups and fields OR widget tree
629
652
  */
630
- layout: _angular_core.InputSignal<AXPWidgetNode | AXPDynamicFormDefinition>;
653
+ layout: i0.InputSignal<AXPWidgetNode | AXPDynamicFormDefinition>;
631
654
  /**
632
655
  * Form context/model data
633
656
  */
634
- context: _angular_core.ModelSignal<any>;
657
+ context: i0.ModelSignal<any>;
635
658
  /**
636
659
  * Form appearance and density styling (normal, compact, spacious)
637
660
  */
638
- look: _angular_core.InputSignal<AXPDynamicFormLook>;
661
+ look: i0.InputSignal<AXPDynamicFormLook>;
639
662
  /**
640
663
  * Default form mode. Can be overridden by section/group and field.
641
664
  */
642
- mode: _angular_core.InputSignal<AXPDynamicFormMode>;
643
- protected widgetTree: _angular_core.WritableSignal<AXPWidgetNode | null>;
665
+ mode: i0.InputSignal<AXPDynamicFormMode>;
666
+ protected widgetTree: i0.WritableSignal<AXPWidgetNode | null>;
644
667
  /**
645
668
  * Convert layout data to widget tree when inputs change
646
669
  */
647
- conversionEffect: _angular_core.EffectRef;
670
+ conversionEffect: i0.EffectRef;
648
671
  /**
649
672
  * Emitted when context change is initiated
650
673
  */
651
- contextInitiated: _angular_core.OutputEmitterRef<any>;
674
+ contextInitiated: i0.OutputEmitterRef<any>;
652
675
  /**
653
676
  * Emitted when form becomes valid/invalid
654
677
  */
655
- validityChange: _angular_core.OutputEmitterRef<boolean>;
678
+ validityChange: i0.OutputEmitterRef<boolean>;
656
679
  private form;
657
680
  private container;
658
681
  /**
659
682
  * Internal context signal for reactivity
660
683
  */
661
- protected internalContext: _angular_core.WritableSignal<any>;
684
+ protected internalContext: i0.WritableSignal<any>;
662
685
  /**
663
686
  * Initial context for reset functionality
664
687
  */
@@ -667,7 +690,7 @@ declare class AXPLayoutRendererComponent implements OnInit {
667
690
  /**
668
691
  * Handle context change events from widget container (optimized with RxJS)
669
692
  */
670
- protected handleContextChanged(event: AXPWidgetCoreContextChangeEvent): void;
693
+ protected handleContextChanged(event: AXPContextChangeEvent): void;
671
694
  /**
672
695
  * Get the form component instance
673
696
  */
@@ -712,14 +735,14 @@ declare class AXPLayoutRendererComponent implements OnInit {
712
735
  * Type guard to check if the input is a widget node
713
736
  */
714
737
  private isWidgetNode;
715
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutRendererComponent, never>;
716
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutRendererComponent, "axp-layout-renderer", never, { "layout": { "alias": "layout"; "required": true; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "context": "contextChange"; "contextInitiated": "contextInitiated"; "validityChange": "validityChange"; }, never, never, true, never>;
738
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPLayoutRendererComponent, never>;
739
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPLayoutRendererComponent, "axp-layout-renderer", never, { "layout": { "alias": "layout"; "required": true; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "context": "contextChange"; "contextInitiated": "contextInitiated"; "validityChange": "validityChange"; }, never, never, true, never>;
717
740
  }
718
741
 
719
742
  declare class LayoutBuilderModule {
720
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LayoutBuilderModule, never>;
721
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<LayoutBuilderModule, never, [typeof i1.CommonModule, typeof AXPLayoutRendererComponent], [typeof AXPLayoutRendererComponent]>;
722
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<LayoutBuilderModule>;
743
+ static ɵfac: i0.ɵɵFactoryDeclaration<LayoutBuilderModule, never>;
744
+ static ɵmod: i0.ɵɵNgModuleDeclaration<LayoutBuilderModule, never, [typeof i1.CommonModule, typeof AXPLayoutRendererComponent], [typeof AXPLayoutRendererComponent]>;
745
+ static ɵinj: i0.ɵɵInjectorDeclaration<LayoutBuilderModule>;
723
746
  }
724
747
 
725
748
  declare class AXPLayoutBuilderService {
@@ -728,8 +751,8 @@ declare class AXPLayoutBuilderService {
728
751
  * Create a new layout builder
729
752
  */
730
753
  create(): ILayoutBuilder;
731
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutBuilderService, never>;
732
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPLayoutBuilderService>;
754
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPLayoutBuilderService, never>;
755
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPLayoutBuilderService>;
733
756
  }
734
757
 
735
758
  declare class AXPLayoutConversionService {
@@ -794,8 +817,8 @@ declare class AXPLayoutConversionService {
794
817
  * Create a simple hash from a string
795
818
  */
796
819
  private createSimpleHash;
797
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutConversionService, never>;
798
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPLayoutConversionService>;
820
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPLayoutConversionService, never>;
821
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPLayoutConversionService>;
799
822
  }
800
823
 
801
824
  interface DialogRendererConfig {
@@ -809,6 +832,11 @@ interface DialogRendererConfig {
809
832
  suffix?: any[];
810
833
  };
811
834
  };
835
+ /**
836
+ * When present, handler is called on action click with AXPDialogRef.
837
+ * Throw = stay open for retry. Return = close and resolve show() with return value.
838
+ */
839
+ onAction?: (dialogRef: AXPDialogRef) => any | Promise<any>;
812
840
  }
813
841
  interface DialogRendererResult {
814
842
  context: any;
@@ -821,12 +849,12 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
821
849
  private widgetCoreService;
822
850
  private expressionEvaluator;
823
851
  private dialogResult?;
824
- context: _angular_core.WritableSignal<any>;
852
+ context: i0.WritableSignal<any>;
825
853
  callBack: (dialogRef: AXPDialogRef) => void;
826
854
  data: any;
827
855
  private isDialogLoading;
828
- footerPrefix: _angular_core.WritableSignal<AXPWidgetCoreElementAction[]>;
829
- footerSuffix: _angular_core.WritableSignal<AXPWidgetCoreElementAction[]>;
856
+ footerPrefix: i0.WritableSignal<AXPWidgetCoreElementAction[]>;
857
+ footerSuffix: i0.WritableSignal<AXPWidgetCoreElementAction[]>;
830
858
  ngOnInit(): void;
831
859
  private layoutRenderer;
832
860
  private debounceTimer?;
@@ -837,6 +865,8 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
837
865
  isFormLoading(): boolean;
838
866
  isSubmitting(): boolean;
839
867
  executeAction(action: AXPWidgetCoreElementAction): Promise<void>;
868
+ /** Resolves footer/widget action command to a string (e.g. `cancel`, `submit`, `widget:...`). */
869
+ private resolveActionCommandName;
840
870
  private parseWidgetCommand;
841
871
  private executeWidgetApi;
842
872
  close(result?: DialogRendererResult): Promise<void>;
@@ -846,9 +876,51 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
846
876
  private evaluatePredicates;
847
877
  private evalBool;
848
878
  private resolveApi;
849
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDialogRendererComponent, never>;
850
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDialogRendererComponent, "axp-dialog-renderer", never, { "config": { "alias": "config"; "required": false; }; }, { "result": "result"; }, never, never, true, never>;
879
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDialogRendererComponent, never>;
880
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPDialogRendererComponent, "axp-dialog-renderer", never, {}, { "result": "result"; }, never, never, true, never>;
881
+ }
882
+
883
+ /** Registration key for {@link AXPPreviewWidgetFieldCommand}; lives alone so `LayoutBuilderModule` can reference it without static-importing the command implementation. */
884
+ declare const AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY = "Widget:Preview";
885
+
886
+ /** See `AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY` in `preview-widget-field.command.key.ts`. */
887
+ interface AXPPreviewWidgetFieldCommandInput {
888
+ /** Widget node to render (same shape as `widget-field-configurator` model). */
889
+ widget?: AXPWidgetNode;
890
+ /**
891
+ * Alternate property name for the widget node (matches metadata definition `interface` field).
892
+ */
893
+ interface?: AXPWidgetNode | string;
894
+ fieldName?: string;
895
+ fieldTitle?: AXPMultiLanguageString;
896
+ name?: string;
897
+ title?: AXPMultiLanguageString;
898
+ }
899
+ type AXPPreviewWidgetFieldInvocation = AXPPreviewWidgetFieldCommandInput & {
900
+ __context__?: {
901
+ data?: Record<string, unknown>;
902
+ options?: Record<string, unknown>;
903
+ };
904
+ };
905
+ /**
906
+ * Opens a dialog that previews a widget configuration (same behavior as the preview button on
907
+ * `axp-widget-field-configurator`). Invoked from that component and from entity list actions.
908
+ */
909
+ declare class AXPPreviewWidgetFieldCommand implements AXPCommand<AXPPreviewWidgetFieldCommandInput, void> {
910
+ private readonly formBuilderService;
911
+ private readonly widgetRegistry;
912
+ private readonly translationService;
913
+ private readonly mlResolver;
914
+ private readonly crudService;
915
+ execute(input: AXPPreviewWidgetFieldInvocation): Promise<AXPExecuteCommandResult<void>>;
916
+ private mergeInvocation;
917
+ private normalizeWidget;
918
+ private resolveFieldTitleLabel;
919
+ private isCancelDialogOutcome;
920
+ private resolveWidgetDisplayTitle;
921
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPPreviewWidgetFieldCommand, never>;
922
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPPreviewWidgetFieldCommand>;
851
923
  }
852
924
 
853
- export { AXPDialogRendererComponent, AXPLayoutBuilderService, AXPLayoutConversionService, AXPLayoutRendererComponent, LayoutBuilderModule };
854
- export type { AXPDialogContainerOptions, AXPDialogRef, AXPDynamicFormDefinition, AXPDynamicFormDirection, AXPDynamicFormFieldDefinition, AXPDynamicFormGroupDefinition, AXPDynamicFormLook, AXPDynamicFormMode, AXPFieldsetContainerOptions, AXPFlexContainerOptions, AXPFormFieldOptions, AXPGridContainerOptions, AXPListWidgetColumn, AXPListWidgetOptions, AXPListWidgetRowCommand, AXPPageContainerOptions, AXPPanelContainerOptions, AXPStepDefinition, AXPStepWizardContainerOptions, AXPStepWizardDefinition, AXPStepWizardGuardPayload, AXPStepWizardStatus, AXPTabsetContainerOptions, AXPWidgetConfiguration, AXPWizardActionDefinition, AXPWizardActions, ColorBoxOptions, DateTimeBoxOptions, DialogBuilderState, DialogRendererConfig, DialogRendererResult, FormFieldBuilderState, IActionBuilder, IBaseContainerBuilder, IChildContainerBuilder, IDialogBuilder, IFieldsetContainerBuilder, IFlexContainerBuilder, IFormFieldBuilder, IGridContainerBuilder, ILayoutBuilder, ILayoutContainerBuilder, IListWidgetBuilder, IPageContainerBuilder, IPanelContainerBuilder, IStepBuilder, IStepWizardBuilder, ITabsetContainerBuilder, IWidgetBuilder, IWidgetContainerBuilder, InheritanceContext, InheritedProperties, LargeTextBoxOptions, LayoutBuilderState, LayoutWidgetOptions, LookupBoxOptions, NumberBoxOptions, PasswordBoxOptions, RichTextOptions, SelectBoxOptions, SelectionListOptions, TextBoxOptions, ToggleSwitchOptions, ValueWidgetOptions, WidgetBuilderState };
925
+ export { AXPDialogRendererComponent, AXPLayoutBuilderService, AXPLayoutConversionService, AXPLayoutRendererComponent, AXPPreviewWidgetFieldCommand, AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY, LayoutBuilderModule };
926
+ export type { AXPDialogContainerOptions, AXPDialogRef, AXPDynamicFormDefinition, AXPDynamicFormDirection, AXPDynamicFormFieldDefinition, AXPDynamicFormGroupDefinition, AXPDynamicFormLook, AXPDynamicFormMode, AXPFieldsetContainerOptions, AXPFlexContainerOptions, AXPFormFieldOptions, AXPGridContainerOptions, AXPListWidgetColumn, AXPListWidgetOptions, AXPListWidgetRowCommand, AXPPageContainerOptions, AXPPanelContainerOptions, AXPPreviewWidgetFieldCommandInput, AXPStepDefinition, AXPStepWizardContainerOptions, AXPStepWizardDefinition, AXPStepWizardGuardPayload, AXPStepWizardStatus, AXPTabsetContainerOptions, AXPWidgetConfiguration, AXPWidgetNodeExtendedProperties, AXPWizardActionDefinition, AXPWizardActions, ColorBoxOptions, DateTimeBoxOptions, DialogBuilderState, DialogRendererConfig, DialogRendererResult, FormFieldBuilderState, IActionBuilder, IBaseContainerBuilder, IChildContainerBuilder, IDialogBuilder, IFieldsetContainerBuilder, IFlexContainerBuilder, IFormFieldBuilder, IGridContainerBuilder, ILayoutBuilder, ILayoutContainerBuilder, IListWidgetBuilder, IPageContainerBuilder, IPanelContainerBuilder, IStepBuilder, IStepWizardBuilder, ITabsetContainerBuilder, IWidgetBuilder, IWidgetContainerBuilder, InheritanceContext, InheritedProperties, LargeTextBoxOptions, LayoutBuilderState, LayoutWidgetOptions, LookupBoxOptions, NumberBoxOptions, PasswordBoxOptions, RichTextOptions, SelectBoxOptions, SelectionListOptions, TextBoxOptions, ToggleSwitchOptions, ValueWidgetOptions, WidgetBuilderState };