@acorex/platform 20.8.5 → 21.0.0-beta.0
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.
- package/fesm2022/acorex-platform-auth.mjs +121 -27
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-41RhWqb4.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +4 -4
- package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +669 -268
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +333 -140
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +557 -826
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +539 -110
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CWV4XD36.mjs} +15 -15
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CWV4XD36.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +3285 -1035
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +488 -284
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +15955 -11978
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +410 -170
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +548 -474
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs → acorex-platform-layout-widgets-button-widget-designer.component-fLjWiSFE.mjs} +11 -11
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-fLjWiSFE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs → acorex-platform-layout-widgets-file-list-popup.component-3oRAKxTo.mjs} +22 -77
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-3oRAKxTo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs → acorex-platform-layout-widgets-image-preview.popup-CazpERbX.mjs} +8 -9
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-CazpERbX.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs → acorex-platform-layout-widgets-page-widget-designer.component-BQ4G6aYf.mjs} +17 -17
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BQ4G6aYf.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-DWuWxUF_.mjs +116 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-DWuWxUF_.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-fV94u3t2.mjs} +25 -19
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-fV94u3t2.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DyuvQhgN.mjs} +9 -9
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DyuvQhgN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-EJMMdpIs.mjs} +7 -7
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-EJMMdpIs.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +6396 -4058
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +8 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +328 -166
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CkptOSO3.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CkptOSO3.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DXC2qtvK.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DXC2qtvK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs → acorex-platform-themes-default-entity-master-single-view.component-DYyunzKZ.mjs} +16 -23
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-DYyunzKZ.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-C5lQECDP.mjs +31 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-C5lQECDP.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-D5wBXAB-.mjs +25 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-D5wBXAB-.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-AhDiY3DI.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-AhDiY3DI.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +1687 -69
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs → acorex-platform-themes-shared-icon-chooser-column.component-QL2-ZUVg.mjs} +8 -8
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-QL2-ZUVg.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BXydqPt_.mjs} +8 -8
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BXydqPt_.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs} +2 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Cb9iY6k9.mjs +88 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-Cb9iY6k9.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-KP4-BND5.mjs +80 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-KP4-BND5.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +572 -465
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +276 -98
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/package.json +33 -33
- package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
- package/{common/index.d.ts → types/acorex-platform-common.d.ts} +261 -24
- package/{core/index.d.ts → types/acorex-platform-core.d.ts} +163 -42
- package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
- package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +137 -38
- package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +808 -131
- package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
- package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +686 -61
- package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +80 -47
- package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +274 -197
- package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +583 -104
- package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
- package/types/acorex-platform-runtime.d.ts +565 -0
- package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +105 -4
- package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +14 -5
- package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +96 -81
- package/fesm2022/acorex-platform-common-common-settings.provider-41RhWqb4.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs +0 -111
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs +0 -160
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CLDoygoI.mjs +0 -1610
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-CLDoygoI.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs +0 -120
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs +0 -31
- package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs +0 -25
- package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs +0 -65
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs +0 -64
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs.map +0 -1
- package/runtime/index.d.ts +0 -307
- /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
|
@@ -3,12 +3,13 @@ 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,
|
|
6
|
+
import { AXPWidgetNode, AXPWidgetRenderMode, AXPWidgetContainerComponent, AXPWidgetCoreElementAction } from '@acorex/platform/layout/widget-core';
|
|
7
|
+
import { AXPMetaData, AXPGridLayoutOptions, AXPActionMenuItem, AXPMultiLanguageString, AXPExpression, AXPValidationRules, AXPOptionsData, AXPContextChangeEvent, AXPExecuteCommandResult } from '@acorex/platform/core';
|
|
7
8
|
import { AXDataSource } from '@acorex/cdk/common';
|
|
8
9
|
import { AXPopupSizeType } from '@acorex/components/popup';
|
|
9
10
|
import { AXStepWizardLook } from '@acorex/components/step-wizard';
|
|
10
|
-
import { AXPGridLayoutOptions, AXPExpression, AXPValidationRules, AXPOptionsData, AXPActionMenuItem } from '@acorex/platform/core';
|
|
11
11
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
12
|
+
import { AXPCommand } from '@acorex/platform/runtime';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Extended widget node properties (excluding type, path, name, options, children)
|
|
@@ -29,9 +30,9 @@ type AXPDynamicFormMode = 'view' | 'edit';
|
|
|
29
30
|
type AXPDynamicFormDirection = 'vertical' | 'horizontal' | 'grid';
|
|
30
31
|
interface AXPDynamicFormFieldDefinition {
|
|
31
32
|
path: string;
|
|
32
|
-
title?:
|
|
33
|
+
title?: AXPMultiLanguageString;
|
|
33
34
|
badge?: string;
|
|
34
|
-
description?:
|
|
35
|
+
description?: AXPMultiLanguageString;
|
|
35
36
|
widget: AXPWidgetNode;
|
|
36
37
|
/**
|
|
37
38
|
* Optional per-field rendering mode. Takes precedence over section and form modes.
|
|
@@ -41,8 +42,8 @@ interface AXPDynamicFormFieldDefinition {
|
|
|
41
42
|
}
|
|
42
43
|
interface AXPDynamicFormGroupDefinition {
|
|
43
44
|
name: string;
|
|
44
|
-
title?:
|
|
45
|
-
description?:
|
|
45
|
+
title?: AXPMultiLanguageString;
|
|
46
|
+
description?: AXPMultiLanguageString;
|
|
46
47
|
parameters: AXPDynamicFormFieldDefinition[];
|
|
47
48
|
/**
|
|
48
49
|
* Optional per-section rendering mode. Takes precedence over form mode and is overridden by field mode.
|
|
@@ -64,7 +65,7 @@ interface AXPDialogRef {
|
|
|
64
65
|
/**
|
|
65
66
|
* Manually close the dialog (optional - dialog closes automatically after user interaction)
|
|
66
67
|
*/
|
|
67
|
-
close(): void;
|
|
68
|
+
close(result?: any): void;
|
|
68
69
|
/**
|
|
69
70
|
* Get the form data from the dialog
|
|
70
71
|
*/
|
|
@@ -77,6 +78,17 @@ interface AXPDialogRef {
|
|
|
77
78
|
* Set the loading state of the dialog
|
|
78
79
|
*/
|
|
79
80
|
setLoading(loading: boolean): void;
|
|
81
|
+
/**
|
|
82
|
+
* Deep-merge partial values into the dialog layout context (e.g. after create returns an id).
|
|
83
|
+
*/
|
|
84
|
+
patchContext?(partial: Record<string, unknown>): void;
|
|
85
|
+
/**
|
|
86
|
+
* Invoke a registered widget's public `api()` method (e.g. step-wizard `next`).
|
|
87
|
+
*/
|
|
88
|
+
invokeWidget?(widgetName: string, method: string, options?: {
|
|
89
|
+
setLoading?: (loading: boolean) => void;
|
|
90
|
+
close?: (result?: any) => void;
|
|
91
|
+
}): Promise<void>;
|
|
80
92
|
}
|
|
81
93
|
interface LayoutWidgetOptions {
|
|
82
94
|
name?: string;
|
|
@@ -87,7 +99,7 @@ interface ValueWidgetOptions extends LayoutWidgetOptions {
|
|
|
87
99
|
validations?: AXPValidationRules;
|
|
88
100
|
}
|
|
89
101
|
interface TextBoxOptions extends ValueWidgetOptions {
|
|
90
|
-
placeholder?:
|
|
102
|
+
placeholder?: AXPMultiLanguageString;
|
|
91
103
|
maxLength?: number;
|
|
92
104
|
minLength?: number;
|
|
93
105
|
prefix?: string;
|
|
@@ -98,14 +110,14 @@ interface NumberBoxOptions extends ValueWidgetOptions {
|
|
|
98
110
|
min?: number;
|
|
99
111
|
max?: number;
|
|
100
112
|
step?: number;
|
|
101
|
-
placeholder?:
|
|
113
|
+
placeholder?: AXPMultiLanguageString;
|
|
102
114
|
format?: string;
|
|
103
115
|
}
|
|
104
116
|
interface SelectBoxOptions extends ValueWidgetOptions {
|
|
105
117
|
dataSource: any[] | (() => any[]) | (() => Promise<any[]>) | AXDataSource<any>;
|
|
106
118
|
valueField?: string;
|
|
107
119
|
textField?: string;
|
|
108
|
-
placeholder?:
|
|
120
|
+
placeholder?: AXPMultiLanguageString;
|
|
109
121
|
multiple?: boolean;
|
|
110
122
|
searchable?: boolean;
|
|
111
123
|
clearButton?: boolean;
|
|
@@ -116,7 +128,7 @@ interface DateTimeBoxOptions extends ValueWidgetOptions {
|
|
|
116
128
|
format?: string;
|
|
117
129
|
min?: Date | string;
|
|
118
130
|
max?: Date | string;
|
|
119
|
-
placeholder?:
|
|
131
|
+
placeholder?: AXPMultiLanguageString;
|
|
120
132
|
clearButton?: boolean;
|
|
121
133
|
}
|
|
122
134
|
interface ToggleSwitchOptions extends ValueWidgetOptions {
|
|
@@ -128,7 +140,7 @@ interface LargeTextBoxOptions extends ValueWidgetOptions {
|
|
|
128
140
|
rows?: number;
|
|
129
141
|
maxLength?: number;
|
|
130
142
|
minLength?: number;
|
|
131
|
-
placeholder?:
|
|
143
|
+
placeholder?: AXPMultiLanguageString;
|
|
132
144
|
resizable?: boolean;
|
|
133
145
|
}
|
|
134
146
|
interface ColorBoxOptions extends ValueWidgetOptions {
|
|
@@ -227,12 +239,18 @@ interface AXPFieldsetContainerOptions extends LayoutWidgetOptions {
|
|
|
227
239
|
isOpen?: boolean;
|
|
228
240
|
look?: 'fieldset' | 'card' | 'group' | 'container';
|
|
229
241
|
disabled?: boolean;
|
|
242
|
+
showTitle?: boolean;
|
|
230
243
|
showHeader?: boolean;
|
|
231
244
|
cols?: number;
|
|
232
245
|
}
|
|
246
|
+
/** How optional `hint` text is rendered in `form-field` layout widgets. */
|
|
247
|
+
type AXPFormFieldHintDisplayMode = 'icon' | 'note';
|
|
233
248
|
interface AXPFormFieldOptions extends LayoutWidgetOptions {
|
|
234
249
|
label?: string;
|
|
235
250
|
showLabel?: boolean;
|
|
251
|
+
/** Translated/helper copy; pairing with {@link hintDisplayMode}. */
|
|
252
|
+
hint?: AXPMultiLanguageString;
|
|
253
|
+
hintDisplayMode?: AXPFormFieldHintDisplayMode;
|
|
236
254
|
}
|
|
237
255
|
interface AXPDialogContainerOptions extends LayoutWidgetOptions {
|
|
238
256
|
title?: string;
|
|
@@ -240,14 +258,36 @@ interface AXPDialogContainerOptions extends LayoutWidgetOptions {
|
|
|
240
258
|
size?: AXPopupSizeType;
|
|
241
259
|
closeButton?: boolean;
|
|
242
260
|
context?: any;
|
|
261
|
+
metadata?: AXPMetaData;
|
|
262
|
+
/**
|
|
263
|
+
* When set, invoked on footer action with {@link AXPDialogRef}.
|
|
264
|
+
* Set via {@link IDialogBuilder.onAction}.
|
|
265
|
+
*/
|
|
266
|
+
onAction?: (dialogRef: AXPDialogRef) => unknown | Promise<unknown>;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Popup payload for `AXPDialogRendererComponent` (`data.config`) and the `layout-builder.dialog.config` hook.
|
|
270
|
+
*/
|
|
271
|
+
interface AXPLayoutBuilderDialogConfig {
|
|
272
|
+
title: string;
|
|
273
|
+
message?: string;
|
|
274
|
+
context: Record<string, unknown>;
|
|
275
|
+
definition: AXPWidgetNode;
|
|
276
|
+
metadata?: AXPMetaData;
|
|
277
|
+
actions: NonNullable<DialogBuilderState['actions']>;
|
|
278
|
+
onAction?: (dialogRef: AXPDialogRef) => unknown | Promise<unknown>;
|
|
243
279
|
}
|
|
244
280
|
interface RichTextOptions extends ValueWidgetOptions {
|
|
245
|
-
placeholder?:
|
|
281
|
+
placeholder?: AXPMultiLanguageString;
|
|
246
282
|
toolbar?: string[];
|
|
247
283
|
readonly?: boolean;
|
|
284
|
+
/** Max height (px) for scrollable full preview when `showFullContent` is true. */
|
|
285
|
+
height?: number;
|
|
286
|
+
/** When true, view mode renders full HTML in a scrollable area instead of a truncated snippet. */
|
|
287
|
+
showFullContent?: boolean;
|
|
248
288
|
}
|
|
249
289
|
interface PasswordBoxOptions extends ValueWidgetOptions {
|
|
250
|
-
placeholder?:
|
|
290
|
+
placeholder?: AXPMultiLanguageString;
|
|
251
291
|
revealToggle?: boolean;
|
|
252
292
|
maxLength?: number;
|
|
253
293
|
}
|
|
@@ -269,7 +309,7 @@ interface SelectionListOptions extends ValueWidgetOptions {
|
|
|
269
309
|
textField?: string;
|
|
270
310
|
multiple?: boolean;
|
|
271
311
|
searchable?: boolean;
|
|
272
|
-
placeholder?:
|
|
312
|
+
placeholder?: AXPMultiLanguageString;
|
|
273
313
|
}
|
|
274
314
|
interface AXPListWidgetColumn {
|
|
275
315
|
name: string;
|
|
@@ -408,7 +448,9 @@ type DialogBuilderState = AXPWidgetNode & {
|
|
|
408
448
|
interface IActionBuilder {
|
|
409
449
|
cancel(text?: string): IActionBuilder;
|
|
410
450
|
submit(text?: string): IActionBuilder;
|
|
411
|
-
custom(action: AXPActionMenuItem
|
|
451
|
+
custom(action: AXPActionMenuItem & {
|
|
452
|
+
position?: 'prefix' | 'suffix';
|
|
453
|
+
}): IActionBuilder;
|
|
412
454
|
}
|
|
413
455
|
interface ILayoutBuilder {
|
|
414
456
|
grid(delegate: (container: IGridContainerBuilder) => void): ILayoutBuilder;
|
|
@@ -508,6 +550,8 @@ interface IGridContainerBuilder extends IBaseContainerBuilder<IGridContainerBuil
|
|
|
508
550
|
setBackgroundColor(color: string): IGridContainerBuilder;
|
|
509
551
|
setPadding(padding: string): IGridContainerBuilder;
|
|
510
552
|
setMargin(margin: string): IGridContainerBuilder;
|
|
553
|
+
/** Add a grid-item-layout child with optional placement; delegate builds the fieldset content. */
|
|
554
|
+
item(layoutOptions: Partial<AXPGridLayoutOptions> | null | undefined, delegate: (container: IFieldsetContainerBuilder) => void): IGridContainerBuilder;
|
|
511
555
|
}
|
|
512
556
|
interface IPanelContainerBuilder extends IBaseContainerBuilder<IPanelContainerBuilder>, ILayoutContainerBuilder<IPanelContainerBuilder>, IChildContainerBuilder<IPanelContainerBuilder>, IWidgetContainerBuilder<IPanelContainerBuilder> {
|
|
513
557
|
setOptions(options: AXPPanelContainerOptions): IPanelContainerBuilder;
|
|
@@ -659,6 +703,11 @@ declare class AXPLayoutRendererComponent implements OnInit {
|
|
|
659
703
|
*/
|
|
660
704
|
mode: _angular_core.InputSignal<AXPDynamicFormMode>;
|
|
661
705
|
protected widgetTree: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
706
|
+
/**
|
|
707
|
+
* Prefer explicit {@link AXPWidgetNode.mode} on the root node (e.g. dialog flex `mode('view')`)
|
|
708
|
+
* so nested widgets resolve view vs edit correctly; fall back to the layout `mode` input.
|
|
709
|
+
*/
|
|
710
|
+
protected effectiveRenderMode: _angular_core.Signal<"view" | "edit" | "column" | "designer" | "print" | "filter">;
|
|
662
711
|
/**
|
|
663
712
|
* Convert layout data to widget tree when inputs change
|
|
664
713
|
*/
|
|
@@ -685,7 +734,7 @@ declare class AXPLayoutRendererComponent implements OnInit {
|
|
|
685
734
|
/**
|
|
686
735
|
* Handle context change events from widget container (optimized with RxJS)
|
|
687
736
|
*/
|
|
688
|
-
protected handleContextChanged(event:
|
|
737
|
+
protected handleContextChanged(event: AXPContextChangeEvent): void;
|
|
689
738
|
/**
|
|
690
739
|
* Get the form component instance
|
|
691
740
|
*/
|
|
@@ -740,8 +789,25 @@ declare class LayoutBuilderModule {
|
|
|
740
789
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<LayoutBuilderModule>;
|
|
741
790
|
}
|
|
742
791
|
|
|
792
|
+
/**
|
|
793
|
+
* Runs after dialog options and context are prepared and **before** footer customization and popup open.
|
|
794
|
+
* Listeners may mutate {@link AXPLayoutBuilderDialogBeforeOpenPayload.context} by reference.
|
|
795
|
+
*/
|
|
796
|
+
declare const AXP_LAYOUT_BUILDER_DIALOG_BEFORE_OPEN_HOOK_KEY = "layout-builder.dialog.before-open";
|
|
797
|
+
interface AXPLayoutBuilderDialogBeforeOpenPayload {
|
|
798
|
+
context: Record<string, unknown>;
|
|
799
|
+
dialogOptions: AXPDialogContainerOptions;
|
|
800
|
+
}
|
|
801
|
+
/**
|
|
802
|
+
* Runs after builder-defined footer actions exist and **before** the dialog opens.
|
|
803
|
+
* Listeners receive the live `actions.footer.prefix` / `suffix` arrays (same references as the dialog)
|
|
804
|
+
* so they may push, splice, filter, or replace items. They may also mutate {@link AXPLayoutBuilderDialogFooterPayload.context} by reference.
|
|
805
|
+
*/
|
|
806
|
+
declare const AXP_LAYOUT_BUILDER_DIALOG_CONFIG_HOOK_KEY = "layout-builder.dialog.config";
|
|
807
|
+
|
|
743
808
|
declare class AXPLayoutBuilderService {
|
|
744
809
|
private popupService;
|
|
810
|
+
private readonly hookService;
|
|
745
811
|
/**
|
|
746
812
|
* Create a new layout builder
|
|
747
813
|
*/
|
|
@@ -816,23 +882,7 @@ declare class AXPLayoutConversionService {
|
|
|
816
882
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPLayoutConversionService>;
|
|
817
883
|
}
|
|
818
884
|
|
|
819
|
-
|
|
820
|
-
title: string;
|
|
821
|
-
message?: string;
|
|
822
|
-
context: any;
|
|
823
|
-
definition: AXPWidgetNode;
|
|
824
|
-
actions?: {
|
|
825
|
-
footer?: {
|
|
826
|
-
prefix?: any[];
|
|
827
|
-
suffix?: any[];
|
|
828
|
-
};
|
|
829
|
-
};
|
|
830
|
-
/**
|
|
831
|
-
* When present, handler is called on action click with AXPDialogRef.
|
|
832
|
-
* Throw = stay open for retry. Return = close and resolve show() with return value.
|
|
833
|
-
*/
|
|
834
|
-
onAction?: (dialogRef: AXPDialogRef) => any | Promise<any>;
|
|
835
|
-
}
|
|
885
|
+
type DialogRendererConfig = AXPLayoutBuilderDialogConfig;
|
|
836
886
|
interface DialogRendererResult {
|
|
837
887
|
context: any;
|
|
838
888
|
action?: string;
|
|
@@ -845,7 +895,7 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
|
|
|
845
895
|
private expressionEvaluator;
|
|
846
896
|
private dialogResult?;
|
|
847
897
|
context: _angular_core.WritableSignal<any>;
|
|
848
|
-
callBack: (
|
|
898
|
+
callBack: (result: unknown) => void;
|
|
849
899
|
data: any;
|
|
850
900
|
private isDialogLoading;
|
|
851
901
|
footerPrefix: _angular_core.WritableSignal<AXPWidgetCoreElementAction[]>;
|
|
@@ -860,18 +910,67 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
|
|
|
860
910
|
isFormLoading(): boolean;
|
|
861
911
|
isSubmitting(): boolean;
|
|
862
912
|
executeAction(action: AXPWidgetCoreElementAction): Promise<void>;
|
|
913
|
+
/** Whether the layout form should be validated before running this footer command. */
|
|
914
|
+
private shouldValidateBeforeAction;
|
|
915
|
+
private createDialogRef;
|
|
916
|
+
private closeWithOptionalSkipValidate;
|
|
917
|
+
/** Resolves footer/widget action command to a string (e.g. `cancel`, `submit`, `widget:...`). */
|
|
918
|
+
private resolveActionCommandName;
|
|
863
919
|
private parseWidgetCommand;
|
|
864
|
-
private
|
|
920
|
+
private invokeWidget;
|
|
865
921
|
close(result?: DialogRendererResult): Promise<void>;
|
|
866
922
|
private aggregateAndEvaluateActions;
|
|
867
923
|
private collectWidgetActions;
|
|
868
924
|
private collectDialogActionsFromConfig;
|
|
869
925
|
private evaluatePredicates;
|
|
870
926
|
private evalBool;
|
|
927
|
+
/** Resolves footer action title when it contains {{ ... }} (e.g. wizard labels from dialog context). */
|
|
928
|
+
private evalActionTitle;
|
|
871
929
|
private resolveApi;
|
|
872
930
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDialogRendererComponent, never>;
|
|
873
931
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDialogRendererComponent, "axp-dialog-renderer", never, {}, { "result": "result"; }, never, never, true, never>;
|
|
874
932
|
}
|
|
875
933
|
|
|
876
|
-
|
|
877
|
-
|
|
934
|
+
/** Registration key for {@link AXPPreviewWidgetFieldCommand}; lives alone so `LayoutBuilderModule` can reference it without static-importing the command implementation. */
|
|
935
|
+
declare const AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY = "Widget:Preview";
|
|
936
|
+
|
|
937
|
+
/** See `AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY` in `preview-widget-field.command.key.ts`. */
|
|
938
|
+
interface AXPPreviewWidgetFieldCommandInput {
|
|
939
|
+
/** Widget node to render (same shape as `widget-field-configurator` model). */
|
|
940
|
+
widget?: AXPWidgetNode;
|
|
941
|
+
/**
|
|
942
|
+
* Alternate property name for the widget node (matches metadata definition `interface` field).
|
|
943
|
+
*/
|
|
944
|
+
interface?: AXPWidgetNode | string;
|
|
945
|
+
fieldName?: string;
|
|
946
|
+
fieldTitle?: AXPMultiLanguageString;
|
|
947
|
+
name?: string;
|
|
948
|
+
title?: AXPMultiLanguageString;
|
|
949
|
+
}
|
|
950
|
+
type AXPPreviewWidgetFieldInvocation = AXPPreviewWidgetFieldCommandInput & {
|
|
951
|
+
__context__?: {
|
|
952
|
+
data?: Record<string, unknown>;
|
|
953
|
+
options?: Record<string, unknown>;
|
|
954
|
+
};
|
|
955
|
+
};
|
|
956
|
+
/**
|
|
957
|
+
* Opens a dialog that previews a widget configuration (same behavior as the preview button on
|
|
958
|
+
* `axp-widget-field-configurator`). Invoked from that component and from entity list actions.
|
|
959
|
+
*/
|
|
960
|
+
declare class AXPPreviewWidgetFieldCommand implements AXPCommand<AXPPreviewWidgetFieldCommandInput, void> {
|
|
961
|
+
private readonly formBuilderService;
|
|
962
|
+
private readonly widgetRegistry;
|
|
963
|
+
private readonly translationService;
|
|
964
|
+
private readonly crudService;
|
|
965
|
+
execute(input: AXPPreviewWidgetFieldInvocation): Promise<AXPExecuteCommandResult<void>>;
|
|
966
|
+
private mergeInvocation;
|
|
967
|
+
private normalizeWidget;
|
|
968
|
+
private resolveFieldTitleLabel;
|
|
969
|
+
private isCancelDialogOutcome;
|
|
970
|
+
private resolveWidgetDisplayTitle;
|
|
971
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPreviewWidgetFieldCommand, never>;
|
|
972
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPreviewWidgetFieldCommand>;
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
export { AXPDialogRendererComponent, AXPLayoutBuilderService, AXPLayoutConversionService, AXPLayoutRendererComponent, AXPPreviewWidgetFieldCommand, AXP_LAYOUT_BUILDER_DIALOG_BEFORE_OPEN_HOOK_KEY, AXP_LAYOUT_BUILDER_DIALOG_CONFIG_HOOK_KEY, AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY, LayoutBuilderModule };
|
|
976
|
+
export type { AXPDialogContainerOptions, AXPDialogRef, AXPDynamicFormDefinition, AXPDynamicFormDirection, AXPDynamicFormFieldDefinition, AXPDynamicFormGroupDefinition, AXPDynamicFormLook, AXPDynamicFormMode, AXPFieldsetContainerOptions, AXPFlexContainerOptions, AXPFormFieldHintDisplayMode, AXPFormFieldOptions, AXPGridContainerOptions, AXPLayoutBuilderDialogBeforeOpenPayload, AXPLayoutBuilderDialogConfig, 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 };
|