@acorex/platform 0.0.0-ACOREX
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/README.md +7 -0
- package/auth/README.md +3 -0
- package/common/README.md +3 -0
- package/core/README.md +4 -0
- package/fesm2022/acorex-platform-auth.mjs +1362 -0
- package/fesm2022/acorex-platform-auth.mjs.map +1 -0
- package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs +127 -0
- package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +4601 -0
- package/fesm2022/acorex-platform-common.mjs.map +1 -0
- package/fesm2022/acorex-platform-core.mjs +4374 -0
- package/fesm2022/acorex-platform-core.mjs.map +1 -0
- package/fesm2022/acorex-platform-domain.mjs +3234 -0
- package/fesm2022/acorex-platform-domain.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-builder.mjs +2847 -0
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +8583 -0
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-designer.mjs +2474 -0
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity.mjs +19150 -0
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-views.mjs +1468 -0
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widget-core.mjs +2950 -0
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs +72 -0
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs +158 -0
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs +29 -0
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs +172 -0
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs +274 -0
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs +64 -0
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs +34 -0
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +29791 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -0
- package/fesm2022/acorex-platform-native.mjs +155 -0
- package/fesm2022/acorex-platform-native.mjs.map +1 -0
- package/fesm2022/acorex-platform-runtime-catalog-command-definition.mjs +20 -0
- package/fesm2022/acorex-platform-runtime-catalog-command-definition.mjs.map +1 -0
- package/fesm2022/acorex-platform-runtime-catalog-query-definition.mjs +20 -0
- package/fesm2022/acorex-platform-runtime-catalog-query-definition.mjs.map +1 -0
- package/fesm2022/acorex-platform-runtime.mjs +899 -0
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs +237 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs +31 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs +25 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +2589 -0
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs +55 -0
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs +57 -0
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs +168 -0
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs +65 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs +64 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +2125 -0
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -0
- package/fesm2022/acorex-platform-workflow.mjs +2501 -0
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -0
- package/fesm2022/acorex-platform.mjs +6 -0
- package/fesm2022/acorex-platform.mjs.map +1 -0
- package/layout/builder/README.md +1578 -0
- package/layout/components/README.md +3 -0
- package/layout/designer/README.md +4 -0
- package/layout/entity/README.md +4 -0
- package/layout/views/README.md +3 -0
- package/layout/widget-core/README.md +4 -0
- package/layout/widgets/README.md +3 -0
- package/native/README.md +4 -0
- package/package.json +103 -0
- package/runtime/README.md +3 -0
- package/themes/default/README.md +3 -0
- package/themes/shared/README.md +3 -0
- package/types/acorex-platform-auth.d.ts +680 -0
- package/types/acorex-platform-common.d.ts +2926 -0
- package/types/acorex-platform-core.d.ts +2896 -0
- package/types/acorex-platform-domain.d.ts +2353 -0
- package/types/acorex-platform-layout-builder.d.ts +926 -0
- package/types/acorex-platform-layout-components.d.ts +2903 -0
- package/types/acorex-platform-layout-designer.d.ts +422 -0
- package/types/acorex-platform-layout-entity.d.ts +3189 -0
- package/types/acorex-platform-layout-views.d.ts +667 -0
- package/types/acorex-platform-layout-widget-core.d.ts +1086 -0
- package/types/acorex-platform-layout-widgets.d.ts +5478 -0
- package/types/acorex-platform-native.d.ts +28 -0
- package/types/acorex-platform-runtime-catalog-command-definition.d.ts +137 -0
- package/types/acorex-platform-runtime-catalog-query-definition.d.ts +125 -0
- package/types/acorex-platform-runtime.d.ts +470 -0
- package/types/acorex-platform-themes-default.d.ts +573 -0
- package/types/acorex-platform-themes-shared.d.ts +170 -0
- package/types/acorex-platform-workflow.d.ts +1806 -0
- package/types/acorex-platform.d.ts +2 -0
- package/workflow/README.md +4 -0
|
@@ -0,0 +1,1086 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { Signal, InjectionToken, ComponentRef, OnInit, EventEmitter, TemplateRef, Injector, WritableSignal, SimpleChanges } from '@angular/core';
|
|
3
|
+
import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
|
|
4
|
+
import * as _ngrx_signals from '@ngrx/signals';
|
|
5
|
+
import * as _acorex_platform_core from '@acorex/platform/core';
|
|
6
|
+
import { AXPOptionsData, AXPDataType, AXPExpression, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPValidationRules, AXPPartialNested, AXPContextChangeEvent, AXPExpressionEvaluatorService } from '@acorex/platform/core';
|
|
7
|
+
import { AXValueChangedEvent, AXDataSource } from '@acorex/cdk/common';
|
|
8
|
+
import { Subject, BehaviorSubject } from 'rxjs';
|
|
9
|
+
import { AXDataTableColumnComponent } from '@acorex/components/data-table';
|
|
10
|
+
import * as i7 from '@acorex/core/translation';
|
|
11
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
12
|
+
import { AXUnsubscriber } from '@acorex/core/utils';
|
|
13
|
+
import * as i4 from '@angular/common';
|
|
14
|
+
import * as i5 from '@angular/cdk/portal';
|
|
15
|
+
import * as i6 from '@acorex/components/skeleton';
|
|
16
|
+
|
|
17
|
+
declare enum AXPPageStatus {
|
|
18
|
+
Idle = "idle",// The page is idle.
|
|
19
|
+
Rendering = "rendering",// The page is being rendered.
|
|
20
|
+
Rendered = "rendered",// The rendering process is complete. should be renamed to idle
|
|
21
|
+
Processing = "processing",// The page is performing a task or interaction.
|
|
22
|
+
Submitting = "submitting",// The form is being submitted.
|
|
23
|
+
Submitted = "submitted",// Submission is completed.
|
|
24
|
+
Validating = "validating",// The form is being validated.
|
|
25
|
+
Validated = "validated",// Validation is completed.
|
|
26
|
+
Error = "error"
|
|
27
|
+
}
|
|
28
|
+
declare enum AXPWidgetStatus {
|
|
29
|
+
Rendering = "rendering",// The widget is being rendered.
|
|
30
|
+
Rendered = "rendered",// The rendering process is complete.
|
|
31
|
+
Processing = "processing",// The widget is performing a task or interaction.
|
|
32
|
+
Error = "error"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type AXPWidgetCoreElementAPI = {
|
|
36
|
+
[name: string]: Subject<any> | Function;
|
|
37
|
+
};
|
|
38
|
+
type AXPWidgetCoreElementAction = {
|
|
39
|
+
title: string;
|
|
40
|
+
command: string;
|
|
41
|
+
icon?: string;
|
|
42
|
+
color?: string;
|
|
43
|
+
disabled?: boolean | string;
|
|
44
|
+
hidden?: boolean | string;
|
|
45
|
+
zone?: 'header' | 'footer';
|
|
46
|
+
placement?: 'prefix' | 'suffix';
|
|
47
|
+
scope?: 'primary' | 'secondary';
|
|
48
|
+
};
|
|
49
|
+
declare abstract class AXPWidgetCoreElement {
|
|
50
|
+
abstract get id(): string | null;
|
|
51
|
+
abstract get status(): Signal<AXPWidgetStatus>;
|
|
52
|
+
api(): AXPWidgetCoreElementAPI;
|
|
53
|
+
actions(): AXPWidgetCoreElementAction[];
|
|
54
|
+
}
|
|
55
|
+
declare class AXPWidgetCoreService {
|
|
56
|
+
private readonly variables$;
|
|
57
|
+
private readonly functions$;
|
|
58
|
+
readonly onRefresh: Subject<void>;
|
|
59
|
+
private widgets;
|
|
60
|
+
private readonly onWidgetRegistered;
|
|
61
|
+
private readonly status$;
|
|
62
|
+
readonly status: Signal<AXPPageStatus>;
|
|
63
|
+
readonly isBusy: Signal<boolean>;
|
|
64
|
+
registeredWidgetsCount: _angular_core.WritableSignal<number>;
|
|
65
|
+
get variables(): any;
|
|
66
|
+
get functions(): {
|
|
67
|
+
[key: string]: Function;
|
|
68
|
+
};
|
|
69
|
+
updateStatus(): void;
|
|
70
|
+
private detectStatus;
|
|
71
|
+
refresh(): void;
|
|
72
|
+
setStatus(status: AXPPageStatus): void;
|
|
73
|
+
setVariables(keysValues: any): void;
|
|
74
|
+
setVariables(key: string, value: any): void;
|
|
75
|
+
setFunctions(keysValues: any): void;
|
|
76
|
+
setFunctions(key: string, value: any): void;
|
|
77
|
+
registerWidget(id: string, widget: AXPWidgetCoreElement): void;
|
|
78
|
+
getWidget(id: string): AXPWidgetCoreElement | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* Waits until a widget with the given id is registered, then resolves with it.
|
|
81
|
+
* If the widget is already registered, resolves immediately.
|
|
82
|
+
* Optionally accepts a timeout (in ms) after which it resolves with undefined.
|
|
83
|
+
*/
|
|
84
|
+
waitForWidget(id: string, timeoutMs?: number): Promise<AXPWidgetCoreElement | undefined>;
|
|
85
|
+
/**
|
|
86
|
+
* Returns a list of registered widget ids (names).
|
|
87
|
+
*/
|
|
88
|
+
listRegisteredWidgetNames(): string[];
|
|
89
|
+
ngOnDestroy(): void;
|
|
90
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetCoreService, never>;
|
|
91
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetCoreService>;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
interface AXPWidgetCategory {
|
|
95
|
+
name: string;
|
|
96
|
+
title: string;
|
|
97
|
+
order: number;
|
|
98
|
+
}
|
|
99
|
+
/** Normalizes widget categories to an array for iteration and serialization. */
|
|
100
|
+
declare function normalizeWidgetCategories(categories?: AXPWidgetCategory | AXPWidgetCategory[]): AXPWidgetCategory[];
|
|
101
|
+
declare const AXP_WIDGETS_LAYOUT_CATEGORY: AXPWidgetCategory;
|
|
102
|
+
declare const AXP_WIDGETS_EDITOR_CATEGORY: AXPWidgetCategory;
|
|
103
|
+
declare const AXP_WIDGETS_ACTION_CATEGORY: AXPWidgetCategory;
|
|
104
|
+
declare const AXP_WIDGETS_ADVANCE_CATEGORY: AXPWidgetCategory;
|
|
105
|
+
/** Widgets exposed to AI assistants for structured rendering (see Widgets:GetForAI). */
|
|
106
|
+
declare const AXP_WIDGETS_AI_CATEGORY: AXPWidgetCategory;
|
|
107
|
+
declare const AXP_WIDGETS_CATEGORIES: AXPWidgetCategory[];
|
|
108
|
+
|
|
109
|
+
type AXPWidgetGroup = 'form-element' | 'dashboard-widget' | 'form-template' | 'property-editor' | 'meta-data' | 'setting-widget' | 'entity-widget' | 'utility-widget';
|
|
110
|
+
declare enum AXPWidgetGroupEnum {
|
|
111
|
+
FormElement = "form-element",
|
|
112
|
+
DashboardWidget = "dashboard-widget",
|
|
113
|
+
FormTemplate = "form-template",
|
|
114
|
+
PropertyEditor = "property-editor",
|
|
115
|
+
MetaData = "meta-data",
|
|
116
|
+
SettingWidget = "setting-widget",
|
|
117
|
+
EntityWidget = "entity-widget",
|
|
118
|
+
UtilityWidget = "utility-widget"
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
interface AXPWidgetTypesMap {
|
|
122
|
+
timeDuration: 'time-duration';
|
|
123
|
+
checkbox: 'checkbox-editor';
|
|
124
|
+
color: 'color-editor';
|
|
125
|
+
connectedLists: 'connected-lists-editor';
|
|
126
|
+
contact: 'contact-editor';
|
|
127
|
+
dateTime: 'date-time-editor';
|
|
128
|
+
largeText: 'large-text-editor';
|
|
129
|
+
number: 'number-editor';
|
|
130
|
+
numberUnit: 'number-unit-editor';
|
|
131
|
+
password: 'password-editor';
|
|
132
|
+
richText: 'rich-text-editor';
|
|
133
|
+
select: 'select-editor';
|
|
134
|
+
selectionList: 'selection-list-editor';
|
|
135
|
+
text: 'text-editor';
|
|
136
|
+
table: 'table-editor';
|
|
137
|
+
toggle: 'toggle-editor';
|
|
138
|
+
blockLayout: 'block-layout';
|
|
139
|
+
pageLayout: 'page-layout';
|
|
140
|
+
repeaterLayout: 'repeater-layout';
|
|
141
|
+
textBlockLayout: 'text-block-layout';
|
|
142
|
+
alertBoxLayout: 'alert-box-layout';
|
|
143
|
+
fileUploader: 'file-uploader';
|
|
144
|
+
fileTypeExtension: 'file-type-extension';
|
|
145
|
+
map: 'map';
|
|
146
|
+
imageMarker: 'image-marker';
|
|
147
|
+
image: 'image';
|
|
148
|
+
gallery: 'gallery';
|
|
149
|
+
signature: 'signature';
|
|
150
|
+
buttonAction: 'button-action';
|
|
151
|
+
document: 'document-layout';
|
|
152
|
+
lookup: 'lookup-editor';
|
|
153
|
+
formField: 'form-field';
|
|
154
|
+
advancedGrid: 'advanced-grid-layout';
|
|
155
|
+
advancedGridItem: 'advanced-grid-item-layout';
|
|
156
|
+
grid: 'grid-layout';
|
|
157
|
+
gridItem: 'grid-item-layout';
|
|
158
|
+
qrcode: 'qrcode';
|
|
159
|
+
schedulerPicker: 'scheduler-picker';
|
|
160
|
+
template: 'template';
|
|
161
|
+
templateDesigner: 'template-designer';
|
|
162
|
+
cronJob: 'cron-job';
|
|
163
|
+
spacing: 'spacing';
|
|
164
|
+
border: 'border';
|
|
165
|
+
direction: 'direction';
|
|
166
|
+
flexLayout: 'flex-layout';
|
|
167
|
+
flexItem: 'flex-item-layout';
|
|
168
|
+
tableLayout: 'table-layout';
|
|
169
|
+
tableItem: 'table-item-layout';
|
|
170
|
+
avatar: 'avatar';
|
|
171
|
+
stringFilter: 'string-filter';
|
|
172
|
+
numberFilter: 'number-filter';
|
|
173
|
+
dateTimeFilter: 'datetime-filter';
|
|
174
|
+
booleanFilter: 'boolean-filter';
|
|
175
|
+
lookupFilter: 'lookup-filter';
|
|
176
|
+
timeDurationFilter: 'time-duration-filter';
|
|
177
|
+
flexOptions: 'flex-options';
|
|
178
|
+
flexItemOptions: 'flex-item-options';
|
|
179
|
+
gridOptions: 'grid-options';
|
|
180
|
+
gridItemOptions: 'grid-item-options';
|
|
181
|
+
advancedGridOptions: 'advanced-grid-options';
|
|
182
|
+
selectFilter: 'select-filter';
|
|
183
|
+
requiredValidation: 'required-validation';
|
|
184
|
+
regularExpressionValidation: 'regular-expression-validation';
|
|
185
|
+
minLengthValidation: 'min-length-validation';
|
|
186
|
+
maxLengthValidation: 'max-length-validation';
|
|
187
|
+
lessThanValidation: 'less-than-validation';
|
|
188
|
+
greaterThanValidation: 'greater-than-validation';
|
|
189
|
+
betweenValidation: 'between-validation';
|
|
190
|
+
equalValidation: 'equal-validation';
|
|
191
|
+
callbackValidation: 'callback-validation';
|
|
192
|
+
donutChart: 'donut-chart';
|
|
193
|
+
barChart: 'bar-chart';
|
|
194
|
+
lineChart: 'line-chart';
|
|
195
|
+
gaugeChart: 'gauge-chart';
|
|
196
|
+
stickyNote: 'sticky-note';
|
|
197
|
+
clockCalendar: 'clock-calendar';
|
|
198
|
+
analogClock: 'analog-clock';
|
|
199
|
+
weather: 'weather';
|
|
200
|
+
minimalWeather: 'minimal-weather';
|
|
201
|
+
advancedWeather: 'advanced-weather';
|
|
202
|
+
metaData: 'meta-data-editor';
|
|
203
|
+
templateEditor: 'template-box-editor';
|
|
204
|
+
templateContentEditor: 'template-content-editor';
|
|
205
|
+
themePaletteChooser: 'theme-palette-chooser';
|
|
206
|
+
themeModeChooser: 'theme-mode-chooser';
|
|
207
|
+
menuOrientationChooser: 'menu-orientation-chooser';
|
|
208
|
+
fontStyleChooser: 'font-style-chooser';
|
|
209
|
+
fontSizeChooser: 'font-size-chooser';
|
|
210
|
+
iconChooser: 'icon-chooser';
|
|
211
|
+
icon: 'icon';
|
|
212
|
+
themeColorChooser: 'theme-color-chooser';
|
|
213
|
+
panel: 'panel';
|
|
214
|
+
notification: 'notification';
|
|
215
|
+
taskBoard: 'task-board';
|
|
216
|
+
comment: 'comment';
|
|
217
|
+
list: 'list-editor';
|
|
218
|
+
dataList: 'data-list';
|
|
219
|
+
listToolbar: 'list-toolbar';
|
|
220
|
+
entityList: 'entity-list';
|
|
221
|
+
stepWizard: 'step-wizard';
|
|
222
|
+
documentUploader: 'document-uploader';
|
|
223
|
+
documentFileTypeFilter: 'document-file-type-filter';
|
|
224
|
+
editorJs: 'editor-js-editor';
|
|
225
|
+
progressBar: 'progress-bar-editor';
|
|
226
|
+
rate: 'rate-picker-editor';
|
|
227
|
+
entityDefinitionProvider: 'entity-definition-provider-editor';
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/** Inclusion mode for AI widget catalog queries (Widgets:GetForAI). */
|
|
231
|
+
type AXPWidgetAiCatalogMode = 'include' | 'exclude' | 'inherit';
|
|
232
|
+
interface AXPWidgetPropertyGroup {
|
|
233
|
+
name: string;
|
|
234
|
+
title: string;
|
|
235
|
+
order: number;
|
|
236
|
+
}
|
|
237
|
+
interface AXPWidgetProperty {
|
|
238
|
+
name: string;
|
|
239
|
+
title: string;
|
|
240
|
+
description?: string;
|
|
241
|
+
group: AXPWidgetPropertyGroup;
|
|
242
|
+
order?: number;
|
|
243
|
+
/**
|
|
244
|
+
* Controls whether the property title label is shown in the property viewer panel.
|
|
245
|
+
* Defaults to true when omitted.
|
|
246
|
+
*/
|
|
247
|
+
showLabel?: boolean;
|
|
248
|
+
schema: {
|
|
249
|
+
dataType: AXPDataType;
|
|
250
|
+
nullable?: boolean;
|
|
251
|
+
defaultValue?: any | string | ((context: any | null) => any);
|
|
252
|
+
interface: Required<Pick<AXPWidgetNode, 'path'>> & Omit<AXPWidgetNode, 'path'>;
|
|
253
|
+
};
|
|
254
|
+
validations?: AXPValidationRules;
|
|
255
|
+
visible: boolean | AXPExpression;
|
|
256
|
+
binding?: {
|
|
257
|
+
enabled: boolean;
|
|
258
|
+
/** When set, the expression is edited at path + '.' + optionKey (e.g. options.visibility). */
|
|
259
|
+
optionKey?: string;
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
declare function cloneProperty(property: AXPWidgetProperty, values: AXPPartialNested<AXPWidgetProperty>): AXPWidgetProperty;
|
|
263
|
+
declare function createStringProperty(ctor: {
|
|
264
|
+
defaultValue?: string;
|
|
265
|
+
name: string;
|
|
266
|
+
title: string;
|
|
267
|
+
path?: string;
|
|
268
|
+
group: AXPWidgetPropertyGroup;
|
|
269
|
+
visible?: boolean | AXPExpression;
|
|
270
|
+
}): AXPWidgetProperty;
|
|
271
|
+
declare function createNumberProperty(ctor: {
|
|
272
|
+
defaultValue?: number;
|
|
273
|
+
name: string;
|
|
274
|
+
title: string;
|
|
275
|
+
path?: string;
|
|
276
|
+
group: AXPWidgetPropertyGroup;
|
|
277
|
+
visible?: boolean | AXPExpression;
|
|
278
|
+
options?: {
|
|
279
|
+
minValue?: number;
|
|
280
|
+
maxValue?: number;
|
|
281
|
+
decimals?: number;
|
|
282
|
+
};
|
|
283
|
+
}): AXPWidgetProperty;
|
|
284
|
+
declare function createBooleanProperty(ctor: {
|
|
285
|
+
defaultValue?: boolean;
|
|
286
|
+
name: string;
|
|
287
|
+
title: string;
|
|
288
|
+
path?: string;
|
|
289
|
+
group: AXPWidgetPropertyGroup;
|
|
290
|
+
visible?: boolean | AXPExpression;
|
|
291
|
+
}): AXPWidgetProperty;
|
|
292
|
+
declare function createSelectProperty<T = string | {
|
|
293
|
+
id: string;
|
|
294
|
+
title: string;
|
|
295
|
+
}>(ctor: {
|
|
296
|
+
defaultValue: T | T[] | any;
|
|
297
|
+
dataSource: T[];
|
|
298
|
+
name: string;
|
|
299
|
+
title: string;
|
|
300
|
+
path?: string;
|
|
301
|
+
group: AXPWidgetPropertyGroup;
|
|
302
|
+
visible?: boolean | AXPExpression;
|
|
303
|
+
}): AXPWidgetProperty;
|
|
304
|
+
interface AXPWidgetNode {
|
|
305
|
+
type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;
|
|
306
|
+
mode?: AXPWidgetRenderMode;
|
|
307
|
+
path?: string;
|
|
308
|
+
name?: string;
|
|
309
|
+
visible?: boolean | AXPExpression;
|
|
310
|
+
defaultValue?: any;
|
|
311
|
+
children?: AXPWidgetNode[];
|
|
312
|
+
options?: AXPOptionsData;
|
|
313
|
+
triggers?: AXPWidgetTriggers;
|
|
314
|
+
meta?: AXPMetaData;
|
|
315
|
+
valueTransforms?: AXPValueTransformerFunctions;
|
|
316
|
+
}
|
|
317
|
+
interface AXPWidgetNodeToken<TOptions extends AXPOptionsData = AXPOptionsData> {
|
|
318
|
+
defaultValue?: any;
|
|
319
|
+
config: AXPWidgetConfig;
|
|
320
|
+
node: AXPWidgetNode;
|
|
321
|
+
options?: TOptions;
|
|
322
|
+
}
|
|
323
|
+
interface AXPWidgetColumnNode {
|
|
324
|
+
type: string;
|
|
325
|
+
path: string;
|
|
326
|
+
options?: AXPOptionsData;
|
|
327
|
+
}
|
|
328
|
+
interface AXPWidgetColumnNodeToken extends AXPWidgetColumnNode {
|
|
329
|
+
config: AXPWidgetConfig;
|
|
330
|
+
}
|
|
331
|
+
declare const AXP_WIDGET_TOKEN: InjectionToken<AXPWidgetNodeToken<Record<string, any>>>;
|
|
332
|
+
declare const AXP_WIDGET_COLUMN_TOKEN: InjectionToken<AXPWidgetColumnNodeToken>;
|
|
333
|
+
interface AXPWidgetComponentConfig {
|
|
334
|
+
component: () => Promise<any>;
|
|
335
|
+
properties?: AXPWidgetProperty[];
|
|
336
|
+
}
|
|
337
|
+
interface AXPWidgetConfigComponents {
|
|
338
|
+
designer?: AXPWidgetComponentConfig;
|
|
339
|
+
view?: AXPWidgetComponentConfig;
|
|
340
|
+
edit?: AXPWidgetComponentConfig;
|
|
341
|
+
print?: AXPWidgetComponentConfig;
|
|
342
|
+
column?: AXPWidgetComponentConfig;
|
|
343
|
+
filter?: AXPWidgetComponentConfig;
|
|
344
|
+
}
|
|
345
|
+
type AXPWidgetViewType = 'container' | 'editor' | 'action' | 'view' | 'filter' | 'validation' | 'dashboard';
|
|
346
|
+
type AXPWidgetDesignerOptionsMap = {
|
|
347
|
+
container: {
|
|
348
|
+
canInsert: boolean;
|
|
349
|
+
};
|
|
350
|
+
editor: {
|
|
351
|
+
needLabel: boolean;
|
|
352
|
+
};
|
|
353
|
+
action: {};
|
|
354
|
+
view: {};
|
|
355
|
+
};
|
|
356
|
+
type AXPExtractWidgetConfig<T> = {
|
|
357
|
+
type: AXPWidgetViewType;
|
|
358
|
+
designer: T extends {
|
|
359
|
+
type: infer V;
|
|
360
|
+
} ? V extends keyof AXPWidgetDesignerOptionsMap ? AXPWidgetDesignerOptionsMap[V] : any : any;
|
|
361
|
+
};
|
|
362
|
+
interface AXPWidgetConfig<T = any> {
|
|
363
|
+
name: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | keyof AXPWidgetTypesMap | string;
|
|
364
|
+
alias?: string | string[];
|
|
365
|
+
title: string;
|
|
366
|
+
icon?: string;
|
|
367
|
+
description?: string;
|
|
368
|
+
/**
|
|
369
|
+
* Optional guidance for AI assistants (Widgets:GetForAI). Explains when and how to use this widget
|
|
370
|
+
* for structured output; unrelated to end-user UI copy.
|
|
371
|
+
*/
|
|
372
|
+
aiDescription?: string | null;
|
|
373
|
+
categories?: AXPWidgetCategory | AXPWidgetCategory[];
|
|
374
|
+
groups?: AXPWidgetGroup[];
|
|
375
|
+
properties?: AXPWidgetProperty[];
|
|
376
|
+
components: AXPWidgetConfigComponents;
|
|
377
|
+
meta?: AXPMetaData;
|
|
378
|
+
type: AXPExtractWidgetConfig<T>['type'];
|
|
379
|
+
designer?: AXPExtractWidgetConfig<T>['designer'];
|
|
380
|
+
options?: Record<string, any>;
|
|
381
|
+
defaultFilterWidgetName?: 'string-filter' | 'number-filter' | 'datetime-filter' | 'boolean-filter' | 'select-filter' | 'lookup-filter' | 'time-duration-filter' | string;
|
|
382
|
+
/**
|
|
383
|
+
* Optional layout for Change History. When set, this AXPWidgetNode is rendered for
|
|
384
|
+
* changes of this widget type instead of the default fieldKey/actionKey text.
|
|
385
|
+
* Context passed to renderer: the AXPActivityLogChange object.
|
|
386
|
+
* If omitted, the default display is used.
|
|
387
|
+
*/
|
|
388
|
+
historyLayout?: AXPWidgetNode;
|
|
389
|
+
/**
|
|
390
|
+
* Controls inclusion in AI-facing widget catalog queries (e.g. Widgets:GetForAI).
|
|
391
|
+
* `inherit` (default): include only when `categories` contains the AI category (`AXP_WIDGETS_AI_CATEGORY`).
|
|
392
|
+
* `include` / `exclude`: force include or exclude regardless of categories.
|
|
393
|
+
*/
|
|
394
|
+
aiCatalog?: AXPWidgetAiCatalogMode;
|
|
395
|
+
}
|
|
396
|
+
interface extendedWidget {
|
|
397
|
+
widget: AXPWidgetConfig;
|
|
398
|
+
parentName: string;
|
|
399
|
+
}
|
|
400
|
+
type AXPWidgetRenderMode = keyof AXPWidgetConfigComponents;
|
|
401
|
+
interface AXPLayoutBuilderStatusChangedEvent {
|
|
402
|
+
status: AXPPageStatus;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
type AXPClassMap = Readonly<Record<string, boolean>>;
|
|
406
|
+
type AXPStyleMap = Readonly<Record<string, string | number>>;
|
|
407
|
+
declare abstract class AXPBaseWidgetComponent<TOptions extends Record<string, unknown> = AXPOptionsData> extends AXPWidgetCoreElement {
|
|
408
|
+
#private;
|
|
409
|
+
protected readonly token: AXPWidgetNodeToken<TOptions>;
|
|
410
|
+
readonly host: HTMLDivElement;
|
|
411
|
+
protected readonly layoutService: AXPWidgetCoreService;
|
|
412
|
+
protected readonly contextService: {
|
|
413
|
+
data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
|
|
414
|
+
state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
|
|
415
|
+
initialSnapshot: _angular_core.Signal<{}>;
|
|
416
|
+
previousSnapshot: _angular_core.Signal<{}>;
|
|
417
|
+
lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
|
|
418
|
+
isChanged: _angular_core.Signal<boolean>;
|
|
419
|
+
isReset: _angular_core.Signal<boolean>;
|
|
420
|
+
isInitiated: _angular_core.Signal<boolean>;
|
|
421
|
+
isEmpty: _angular_core.Signal<boolean>;
|
|
422
|
+
isDirty: _angular_core.Signal<boolean>;
|
|
423
|
+
snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
|
|
424
|
+
initial: _angular_core.Signal<{}>;
|
|
425
|
+
previous: _angular_core.Signal<{}>;
|
|
426
|
+
changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
|
|
427
|
+
update: (path: string, value: any) => void;
|
|
428
|
+
patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
|
|
429
|
+
reset: () => void;
|
|
430
|
+
set: (initialData: any) => void;
|
|
431
|
+
getValue: (path: string) => any;
|
|
432
|
+
hasValue: (path: string) => boolean;
|
|
433
|
+
} & _ngrx_signals.StateSource<{
|
|
434
|
+
data: _acorex_platform_core.AXPContextData;
|
|
435
|
+
state: _acorex_platform_core.AXPContextState;
|
|
436
|
+
initialSnapshot: {};
|
|
437
|
+
previousSnapshot: {};
|
|
438
|
+
lastChange: _acorex_platform_core.AXPContextChangeEvent;
|
|
439
|
+
}>;
|
|
440
|
+
readonly config: _acorex_platform_layout_widget_core.AXPWidgetConfig<any>;
|
|
441
|
+
readonly node: AXPWidgetNode;
|
|
442
|
+
protected readonly name: string | undefined;
|
|
443
|
+
protected component: this;
|
|
444
|
+
protected _id: string | null;
|
|
445
|
+
get id(): string | null;
|
|
446
|
+
protected _options: _angular_core.WritableSignal<TOptions>;
|
|
447
|
+
options: _angular_core.Signal<TOptions>;
|
|
448
|
+
onOptionsChanged: Subject<{
|
|
449
|
+
sender: AXPBaseWidgetComponent;
|
|
450
|
+
}>;
|
|
451
|
+
private _status;
|
|
452
|
+
status: _angular_core.Signal<AXPWidgetStatus>;
|
|
453
|
+
readonly onStatusChanged: BehaviorSubject<AXPWidgetStatus>;
|
|
454
|
+
isBusy: _angular_core.Signal<boolean>;
|
|
455
|
+
parent: AXPLayoutBaseWidgetComponent<any> | null | undefined;
|
|
456
|
+
parentComponent: ComponentRef<any> | null | undefined;
|
|
457
|
+
parentElement: HTMLElement | null | undefined;
|
|
458
|
+
index: number | null | undefined;
|
|
459
|
+
mode: AXPWidgetRenderMode;
|
|
460
|
+
locked: boolean;
|
|
461
|
+
protected outputs(): (string | {
|
|
462
|
+
[name: string]: unknown;
|
|
463
|
+
})[];
|
|
464
|
+
ngOnInit(): void;
|
|
465
|
+
setStatus(status: AXPWidgetStatus): void;
|
|
466
|
+
setOptions(values: Partial<TOptions>): void;
|
|
467
|
+
output<T = any>(name: string): T;
|
|
468
|
+
call(name: string, ...args: any[]): void;
|
|
469
|
+
protected readonly _children: _angular_core.WritableSignal<AXPWidgetNode[]>;
|
|
470
|
+
protected children: _angular_core.Signal<AXPWidgetNode[]>;
|
|
471
|
+
setChildren(children: AXPWidgetNode[]): void;
|
|
472
|
+
onAdded(): void;
|
|
473
|
+
hostClass?(): AXPClassMap;
|
|
474
|
+
hostStyle?(): AXPStyleMap;
|
|
475
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPBaseWidgetComponent<any>, never>;
|
|
476
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPBaseWidgetComponent<any>>;
|
|
477
|
+
}
|
|
478
|
+
declare abstract class AXPLayoutBaseWidgetComponent<TOptions extends AXPOptionsData = AXPOptionsData> extends AXPBaseWidgetComponent<TOptions> {
|
|
479
|
+
ngOnInit(): void;
|
|
480
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutBaseWidgetComponent<any>, never>;
|
|
481
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPLayoutBaseWidgetComponent<any>>;
|
|
482
|
+
}
|
|
483
|
+
declare abstract class AXPValueWidgetComponent<T = any | null, TOptions extends AXPOptionsData = AXPOptionsData> extends AXPLayoutBaseWidgetComponent<TOptions> implements OnInit {
|
|
484
|
+
protected readonly path: string | undefined;
|
|
485
|
+
protected readonly defaultValue: any;
|
|
486
|
+
private _isValueWidget;
|
|
487
|
+
private isValueWidget;
|
|
488
|
+
onValueChanged: Subject<{
|
|
489
|
+
sender: AXPBaseWidgetComponent;
|
|
490
|
+
}>;
|
|
491
|
+
fullPath: _angular_core.WritableSignal<string | null>;
|
|
492
|
+
parentPath: _angular_core.WritableSignal<string | null>;
|
|
493
|
+
ngOnInit(): void;
|
|
494
|
+
getValue: _angular_core.Signal<T>;
|
|
495
|
+
protected validationRules: _angular_core.Signal<AXPValidationRules>;
|
|
496
|
+
protected extractValue(path: string): any;
|
|
497
|
+
setValue(value: T | null | undefined): void;
|
|
498
|
+
protected detectFullPath(): void;
|
|
499
|
+
protected handleValueChanged(e: AXValueChangedEvent<T>): void;
|
|
500
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPValueWidgetComponent<any, any>, never>;
|
|
501
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPValueWidgetComponent<any, any>>;
|
|
502
|
+
}
|
|
503
|
+
declare abstract class AXPDataListWidgetComponent extends AXPValueWidgetComponent<any> {
|
|
504
|
+
private dataService;
|
|
505
|
+
protected textField: _angular_core.Signal<string>;
|
|
506
|
+
protected valueField: _angular_core.Signal<string>;
|
|
507
|
+
protected textTemplate: _angular_core.Signal<string | undefined>;
|
|
508
|
+
protected dataSource: _angular_core.WritableSignal<AXDataSource<any>>;
|
|
509
|
+
selectedItems: _angular_core.WritableSignal<any[]>;
|
|
510
|
+
/**
|
|
511
|
+
* Track the last loaded string dataSource reference to prevent infinite loops
|
|
512
|
+
* Only used for string-based datasources (not arrays or AXDataSource instances)
|
|
513
|
+
*/
|
|
514
|
+
private lastStringDataSourceRef;
|
|
515
|
+
private rf;
|
|
516
|
+
protected extractItem(item: unknown): Promise<any>;
|
|
517
|
+
private effect2;
|
|
518
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDataListWidgetComponent, never>;
|
|
519
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDataListWidgetComponent>;
|
|
520
|
+
}
|
|
521
|
+
declare abstract class AXPColumnWidgetComponent<T = any | null | void> {
|
|
522
|
+
private readonly token;
|
|
523
|
+
protected readonly path: string;
|
|
524
|
+
protected readonly options: Record<string, any>;
|
|
525
|
+
protected readonly rawValue: T;
|
|
526
|
+
protected readonly rowData: any;
|
|
527
|
+
protected readonly nullText: any;
|
|
528
|
+
protected readonly nullValue: T;
|
|
529
|
+
protected value: () => T;
|
|
530
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPColumnWidgetComponent<any>, never>;
|
|
531
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPColumnWidgetComponent<any>>;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
declare abstract class AXPBoxModelLayoutWidgetComponent extends AXPLayoutBaseWidgetComponent {
|
|
535
|
+
hostBoxStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
|
|
536
|
+
protected blockStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
|
|
537
|
+
protected inlineStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
|
|
538
|
+
protected blockClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
|
|
539
|
+
protected inlineClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
|
|
540
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPBoxModelLayoutWidgetComponent, never>;
|
|
541
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPBoxModelLayoutWidgetComponent>;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
declare abstract class AXPBlockBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {
|
|
545
|
+
hostClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
|
|
546
|
+
hostStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
|
|
547
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPBlockBaseLayoutWidgetComponent, never>;
|
|
548
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPBlockBaseLayoutWidgetComponent>;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
type AXPPropertyEditorSideValues = 'top' | 'left' | 'bottom' | 'right';
|
|
552
|
+
type AXPPropertyEditorCornerValues = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
553
|
+
type AXPPropertyEditorSideGeneric<T extends string, U extends string | number = string> = Record<T, U>;
|
|
554
|
+
type AXPPropertySides<T extends string | number = string> = AXPPropertyEditorSideGeneric<AXPPropertyEditorSideValues, T>;
|
|
555
|
+
type AXPPropertyCorners<T extends string | number = string> = AXPPropertyEditorSideGeneric<AXPPropertyEditorCornerValues, T>;
|
|
556
|
+
interface AXPSpacingBox<T extends string | number = string> {
|
|
557
|
+
margin: AXPPropertySides<T>;
|
|
558
|
+
padding: AXPPropertySides<T>;
|
|
559
|
+
}
|
|
560
|
+
interface AXPBorderBox<T extends string | number = string> {
|
|
561
|
+
width: AXPPropertySides<T>;
|
|
562
|
+
radius: AXPPropertyCorners<T>;
|
|
563
|
+
color: AXPPropertySides<T>;
|
|
564
|
+
style: AXPPropertySides<T>;
|
|
565
|
+
}
|
|
566
|
+
interface AXPSpacingBoxString {
|
|
567
|
+
margin: string;
|
|
568
|
+
padding: string;
|
|
569
|
+
}
|
|
570
|
+
interface AXPBorderBoxString {
|
|
571
|
+
width: string;
|
|
572
|
+
radius: string;
|
|
573
|
+
color: string;
|
|
574
|
+
style: string;
|
|
575
|
+
}
|
|
576
|
+
interface AXPFlexBoxString {
|
|
577
|
+
flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
|
|
578
|
+
flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
|
|
579
|
+
justifyContent?: 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around';
|
|
580
|
+
alignItems?: 'stretch' | 'flex-start' | 'flex-end' | 'center' | 'baseline';
|
|
581
|
+
gap?: string;
|
|
582
|
+
}
|
|
583
|
+
interface AXPFlexItemBoxString {
|
|
584
|
+
order?: string;
|
|
585
|
+
grow?: string;
|
|
586
|
+
shrink?: string;
|
|
587
|
+
basis?: string;
|
|
588
|
+
alignSelf?: string;
|
|
589
|
+
}
|
|
590
|
+
interface AXPGridBoxString {
|
|
591
|
+
columns?: number;
|
|
592
|
+
rows?: number;
|
|
593
|
+
gap?: string;
|
|
594
|
+
justifyItems?: 'start' | 'end' | 'center' | 'stretch';
|
|
595
|
+
alignItems?: 'start' | 'end' | 'center' | 'stretch';
|
|
596
|
+
autoFlow?: 'row' | 'column' | 'dense' | 'row dense' | 'column dense';
|
|
597
|
+
}
|
|
598
|
+
interface AXPGridItemBoxString {
|
|
599
|
+
colSpan?: string | number;
|
|
600
|
+
colStart?: string | number;
|
|
601
|
+
colEnd?: string | number;
|
|
602
|
+
rowSpan?: string | number;
|
|
603
|
+
rowStart?: string | number;
|
|
604
|
+
rowEnd?: string | number;
|
|
605
|
+
alignSelf?: 'start' | 'end' | 'center' | 'stretch';
|
|
606
|
+
justifySelf?: 'start' | 'end' | 'center' | 'stretch';
|
|
607
|
+
}
|
|
608
|
+
type AXPGridBreakpointValues = AXPBreakpointValues<AXPGridBoxString>;
|
|
609
|
+
type AXPBreakpoints = 'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
|
|
610
|
+
type AXPBreakpointValues<T> = {
|
|
611
|
+
[key in AXPBreakpoints]?: T;
|
|
612
|
+
};
|
|
613
|
+
|
|
614
|
+
declare class AXPPropertyEditorHelper {
|
|
615
|
+
private static expandShorthand;
|
|
616
|
+
private static condenseShorthand;
|
|
617
|
+
private static parseSides;
|
|
618
|
+
private static parseSidesWithUnits;
|
|
619
|
+
private static parseCorners;
|
|
620
|
+
static parseSpacingBox(input: AXPSpacingBoxString): AXPSpacingBox<number>;
|
|
621
|
+
static parseBorderBox(input: AXPBorderBoxString): AXPBorderBox<number | string>;
|
|
622
|
+
static parseSpacingBoxReverse(input: AXPSpacingBox<number>, units: AXPSpacingBox<string>): AXPSpacingBoxString;
|
|
623
|
+
static parseBorderBoxReverse(input: AXPBorderBox<number | string>, units: AXPBorderBox<string>): AXPBorderBoxString;
|
|
624
|
+
static getValueWithUnit(input: string | number): {
|
|
625
|
+
value: number;
|
|
626
|
+
unit: string;
|
|
627
|
+
};
|
|
628
|
+
static getValueFromUnit(value: number, unit: string): string;
|
|
629
|
+
static parseGap(gap: string): {
|
|
630
|
+
values: Record<'x' | 'y', number>;
|
|
631
|
+
unit: string;
|
|
632
|
+
};
|
|
633
|
+
static parseGridTemplate(gridTemplate: string): number;
|
|
634
|
+
static createGridTemplate(repetitionCount: number): string;
|
|
635
|
+
}
|
|
636
|
+
declare function findNonEmptyBreakpoints<T>(values: AXPBreakpointValues<T>): AXPBreakpoints[];
|
|
637
|
+
|
|
638
|
+
/**
|
|
639
|
+
* Helper class for serializing and deserializing AXPWidgetNode to/from JSON
|
|
640
|
+
*/
|
|
641
|
+
declare class AXPWidgetSerializationHelper {
|
|
642
|
+
/**
|
|
643
|
+
* Removes non-serializable properties from widget node
|
|
644
|
+
* @param node - The widget node to clean
|
|
645
|
+
* @param options - Serialization options
|
|
646
|
+
* @returns Cleaned widget node ready for JSON serialization
|
|
647
|
+
*/
|
|
648
|
+
private static cleanNode;
|
|
649
|
+
/**
|
|
650
|
+
* Recursively removes functions from object properties
|
|
651
|
+
*/
|
|
652
|
+
private static removeFunctions;
|
|
653
|
+
/**
|
|
654
|
+
* Converts AXPWidgetNode to JSON string
|
|
655
|
+
* @param node - The widget node to serialize
|
|
656
|
+
* @param options - Serialization options
|
|
657
|
+
* @returns JSON string representation of the widget node
|
|
658
|
+
*/
|
|
659
|
+
static toJson(node: AXPWidgetNode, options?: {
|
|
660
|
+
removeMeta?: boolean;
|
|
661
|
+
removeFunctions?: boolean;
|
|
662
|
+
pretty?: boolean;
|
|
663
|
+
}): string;
|
|
664
|
+
/**
|
|
665
|
+
* Converts JSON string to AXPWidgetNode
|
|
666
|
+
* @param json - JSON string to deserialize
|
|
667
|
+
* @returns Parsed AXPWidgetNode object
|
|
668
|
+
* @throws Error if JSON is invalid or doesn't match AXPWidgetNode structure
|
|
669
|
+
*/
|
|
670
|
+
static fromJson(json: string): AXPWidgetNode;
|
|
671
|
+
/**
|
|
672
|
+
* Removes meta property from widget node (similar to designer service)
|
|
673
|
+
* @param node - The widget node to process
|
|
674
|
+
* @returns Widget node without meta property
|
|
675
|
+
*/
|
|
676
|
+
static removeMeta(node: AXPWidgetNode): AXPWidgetNode;
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
declare abstract class AXPFlexBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
|
|
680
|
+
protected flex: _angular_core.Signal<AXPFlexBoxString | undefined>;
|
|
681
|
+
hostFlexStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
682
|
+
hostFlexClass: _angular_core.Signal<Record<string, boolean>>;
|
|
683
|
+
hostClass: _angular_core.Signal<Record<string, boolean>>;
|
|
684
|
+
hostStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
685
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPFlexBaseLayoutWidgetComponent, never>;
|
|
686
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPFlexBaseLayoutWidgetComponent>;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
declare abstract class AXPInlineBaseLayoutWidgetComponent extends AXPBoxModelLayoutWidgetComponent {
|
|
690
|
+
hostClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
|
|
691
|
+
hostStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
|
|
692
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPInlineBaseLayoutWidgetComponent, never>;
|
|
693
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPInlineBaseLayoutWidgetComponent>;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
declare abstract class AXPFlexItemBaseLayoutWidgetComponent extends AXPInlineBaseLayoutWidgetComponent {
|
|
697
|
+
protected flexItem: _angular_core.Signal<AXPFlexItemBoxString | undefined>;
|
|
698
|
+
hostFlexItemStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
699
|
+
hostFlexItemClass: _angular_core.Signal<{
|
|
700
|
+
[x: string]: boolean;
|
|
701
|
+
}>;
|
|
702
|
+
hostClass: _angular_core.Signal<{
|
|
703
|
+
[x: string]: boolean;
|
|
704
|
+
}>;
|
|
705
|
+
hostStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
706
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPFlexItemBaseLayoutWidgetComponent, never>;
|
|
707
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPFlexItemBaseLayoutWidgetComponent>;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
declare abstract class AXPGridBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
|
|
711
|
+
private grid;
|
|
712
|
+
hostGridStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
713
|
+
hostGridClass: _angular_core.Signal<Record<string, boolean>>;
|
|
714
|
+
hostClass: _angular_core.Signal<Record<string, boolean>>;
|
|
715
|
+
hostStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
716
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPGridBaseLayoutWidgetComponent, never>;
|
|
717
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPGridBaseLayoutWidgetComponent>;
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
declare abstract class AXPGridItemBaseLayoutWidgetComponent extends AXPFlexBaseLayoutWidgetComponent {
|
|
721
|
+
private gridItem;
|
|
722
|
+
hostGridItemStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
723
|
+
hostGridItemClass: _angular_core.Signal<Record<string, boolean>>;
|
|
724
|
+
hostClass: _angular_core.Signal<Record<string, boolean>>;
|
|
725
|
+
hostStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
726
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPGridItemBaseLayoutWidgetComponent, never>;
|
|
727
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPGridItemBaseLayoutWidgetComponent>;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
declare abstract class AXPTableBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
|
|
731
|
+
hostTableClass: _angular_core.Signal<{
|
|
732
|
+
[x: string]: boolean;
|
|
733
|
+
}>;
|
|
734
|
+
hostTableStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
735
|
+
hostClass: _angular_core.Signal<{
|
|
736
|
+
[x: string]: boolean;
|
|
737
|
+
}>;
|
|
738
|
+
hostStyle: _angular_core.Signal<Record<string, string | number>>;
|
|
739
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTableBaseLayoutWidgetComponent, never>;
|
|
740
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTableBaseLayoutWidgetComponent>;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
declare abstract class AXPTableItemOpsBaseLayoutWidgetComponent extends AXPBlockBaseLayoutWidgetComponent {
|
|
744
|
+
abstract insertColumnLeft(): void;
|
|
745
|
+
abstract insertColumnRight(): void;
|
|
746
|
+
abstract insertRowAbove(): void;
|
|
747
|
+
abstract insertRowBelow(): void;
|
|
748
|
+
abstract insertCellShiftRight(): void;
|
|
749
|
+
abstract insertCellShiftDown(): void;
|
|
750
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTableItemOpsBaseLayoutWidgetComponent, never>;
|
|
751
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTableItemOpsBaseLayoutWidgetComponent>;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
declare abstract class AXPTableItemBaseLayoutWidgetComponent extends AXPTableItemOpsBaseLayoutWidgetComponent {
|
|
755
|
+
protected colSpan: _angular_core.Signal<number>;
|
|
756
|
+
protected rowSpan: _angular_core.Signal<number>;
|
|
757
|
+
hostClass: _angular_core.Signal<Readonly<Record<string, boolean>>>;
|
|
758
|
+
hostStyle: _angular_core.Signal<Readonly<Record<string, string | number>>>;
|
|
759
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPTableItemBaseLayoutWidgetComponent, never>;
|
|
760
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPTableItemBaseLayoutWidgetComponent>;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
declare class AXPWidgetContainerComponent {
|
|
764
|
+
readonly contextService: {
|
|
765
|
+
data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
|
|
766
|
+
state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
|
|
767
|
+
initialSnapshot: _angular_core.Signal<{}>;
|
|
768
|
+
previousSnapshot: _angular_core.Signal<{}>;
|
|
769
|
+
lastChange: _ngrx_signals.DeepSignal<AXPContextChangeEvent>;
|
|
770
|
+
isChanged: _angular_core.Signal<boolean>;
|
|
771
|
+
isReset: _angular_core.Signal<boolean>;
|
|
772
|
+
isInitiated: _angular_core.Signal<boolean>;
|
|
773
|
+
isEmpty: _angular_core.Signal<boolean>;
|
|
774
|
+
isDirty: _angular_core.Signal<boolean>;
|
|
775
|
+
snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
|
|
776
|
+
initial: _angular_core.Signal<{}>;
|
|
777
|
+
previous: _angular_core.Signal<{}>;
|
|
778
|
+
changeEvent: _angular_core.Signal<AXPContextChangeEvent>;
|
|
779
|
+
update: (path: string, value: any) => void;
|
|
780
|
+
patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
|
|
781
|
+
reset: () => void;
|
|
782
|
+
set: (initialData: any) => void;
|
|
783
|
+
getValue: (path: string) => any;
|
|
784
|
+
hasValue: (path: string) => boolean;
|
|
785
|
+
} & _ngrx_signals.StateSource<{
|
|
786
|
+
data: _acorex_platform_core.AXPContextData;
|
|
787
|
+
state: _acorex_platform_core.AXPContextState;
|
|
788
|
+
initialSnapshot: {};
|
|
789
|
+
previousSnapshot: {};
|
|
790
|
+
lastChange: AXPContextChangeEvent;
|
|
791
|
+
}>;
|
|
792
|
+
readonly builderService: AXPWidgetCoreService;
|
|
793
|
+
readonly onContextChanged: EventEmitter<AXPContextChangeEvent>;
|
|
794
|
+
set context(value: any);
|
|
795
|
+
set functions(v: any);
|
|
796
|
+
constructor();
|
|
797
|
+
status: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPPageStatus>;
|
|
798
|
+
isBusy: _angular_core.Signal<boolean>;
|
|
799
|
+
refresh(): void;
|
|
800
|
+
find(name: string): Promise<_acorex_platform_layout_widget_core.AXPWidgetCoreElement | undefined>;
|
|
801
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetContainerComponent, never>;
|
|
802
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetContainerComponent, "axp-widgets-container", never, { "context": { "alias": "context"; "required": false; }; "functions": { "alias": "functions"; "required": false; }; }, { "onContextChanged": "onContextChanged"; }, never, ["*"], false, never>;
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
/**
|
|
806
|
+
* Provider interface for widget definitions.
|
|
807
|
+
* Implement this interface and register via AXP_WIDGET_DEFINITION_PROVIDER to contribute widgets.
|
|
808
|
+
*/
|
|
809
|
+
interface AXPWidgetDefinitionProvider {
|
|
810
|
+
getWidgets(): AXPWidgetConfig[];
|
|
811
|
+
getExtendedWidgets?(): extendedWidget[];
|
|
812
|
+
}
|
|
813
|
+
/**
|
|
814
|
+
* Injection token for widget definition providers.
|
|
815
|
+
* Modules register their widget providers using this token (multi: true).
|
|
816
|
+
*/
|
|
817
|
+
declare const AXP_WIDGET_DEFINITION_PROVIDER: InjectionToken<AXPWidgetDefinitionProvider[]>;
|
|
818
|
+
|
|
819
|
+
/**
|
|
820
|
+
* Merges core + extended widgets the same way as AXPWidgetRegistryService.ensureBuilt().
|
|
821
|
+
* Use with concrete providers (e.g. AXPCoreWidgetsProvider, AXPEntityWidgetsProvider) in Node scripts without DI.
|
|
822
|
+
*/
|
|
823
|
+
declare function buildWidgetRegistryMapFromProviders(providers: AXPWidgetDefinitionProvider[]): Map<string, AXPWidgetConfig>;
|
|
824
|
+
/**
|
|
825
|
+
* Aggregates widgets from all AXP_WIDGET_DEFINITION_PROVIDER instances.
|
|
826
|
+
* Token-based like AXP_MENU_PROVIDER / AXP_PERMISSION_DEFINITION_PROVIDER / AXP_SETTING_DEFINITION_PROVIDER.
|
|
827
|
+
* No separate registry - widgets come solely from providers.
|
|
828
|
+
*/
|
|
829
|
+
declare class AXPWidgetRegistryService {
|
|
830
|
+
private readonly _providers;
|
|
831
|
+
private _types;
|
|
832
|
+
/**
|
|
833
|
+
* Lazy-build widget map from all providers.
|
|
834
|
+
*/
|
|
835
|
+
private ensureBuilt;
|
|
836
|
+
resolve(name: string): AXPWidgetConfig;
|
|
837
|
+
/**
|
|
838
|
+
* Registered widget config when present; otherwise `undefined`. Does not throw — use when
|
|
839
|
+
* {@link resolve}'s value may be a non-widget id (e.g. data-source row id in dynamic field configurator).
|
|
840
|
+
*/
|
|
841
|
+
getOptional(name: string): AXPWidgetConfig | undefined;
|
|
842
|
+
all(): AXPWidgetConfig[];
|
|
843
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetRegistryService, never>;
|
|
844
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetRegistryService>;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
declare class AXPWidgetColumnRendererComponent extends AXDataTableColumnComponent {
|
|
848
|
+
protected widgetRegistery: AXPWidgetRegistryService;
|
|
849
|
+
private grid;
|
|
850
|
+
private expressionEvaluator;
|
|
851
|
+
customExpandIcon: string;
|
|
852
|
+
customCollapseIcon: string;
|
|
853
|
+
customWidth: string;
|
|
854
|
+
private _node;
|
|
855
|
+
get node(): AXPWidgetColumnNode;
|
|
856
|
+
set node(v: AXPWidgetColumnNode);
|
|
857
|
+
private mergedOptions;
|
|
858
|
+
protected loadingRow: _angular_core.WritableSignal<null>;
|
|
859
|
+
private rowInjectorsCache;
|
|
860
|
+
private hasExpressions;
|
|
861
|
+
private pendingEvaluations;
|
|
862
|
+
private changeDetectionScheduled;
|
|
863
|
+
private readonly MAX_CACHE_SIZE;
|
|
864
|
+
footerTemplate: TemplateRef<unknown>;
|
|
865
|
+
private _contentFooterTemplate;
|
|
866
|
+
get renderFooterTemplate(): TemplateRef<unknown>;
|
|
867
|
+
expandHandler: boolean;
|
|
868
|
+
cellTemplate: TemplateRef<unknown>;
|
|
869
|
+
private _contentCellTemplate;
|
|
870
|
+
get renderCellTemplate(): TemplateRef<unknown>;
|
|
871
|
+
headerTemplate: TemplateRef<unknown>;
|
|
872
|
+
private _contentHeaderTemplate;
|
|
873
|
+
/**
|
|
874
|
+
* True when the row should show the expand icon: either hasChild is true (from server/initial load)
|
|
875
|
+
* or the row has loaded children (e.g. after refreshItemChildren when children go from 0 to 1).
|
|
876
|
+
*/
|
|
877
|
+
protected hasExpandableRow(row: {
|
|
878
|
+
data?: Record<string, unknown>;
|
|
879
|
+
}): boolean;
|
|
880
|
+
protected handleExpandRow(row: any): Promise<void>;
|
|
881
|
+
get renderHeaderTemplate(): TemplateRef<unknown>;
|
|
882
|
+
get loadingEnabled(): boolean;
|
|
883
|
+
get name(): string;
|
|
884
|
+
private injector;
|
|
885
|
+
private cdr;
|
|
886
|
+
protected widgetInjector: Injector;
|
|
887
|
+
protected component: any;
|
|
888
|
+
ngOnInit(): Promise<void>;
|
|
889
|
+
/**
|
|
890
|
+
* Check if options contain any expressions that need evaluation
|
|
891
|
+
*/
|
|
892
|
+
private checkForExpressions;
|
|
893
|
+
/**
|
|
894
|
+
* Get cache key for row data - optimized to avoid JSON.stringify when possible
|
|
895
|
+
*/
|
|
896
|
+
private getCacheKey;
|
|
897
|
+
/**
|
|
898
|
+
* Schedule change detection (debounced to batch multiple updates)
|
|
899
|
+
*/
|
|
900
|
+
private scheduleChangeDetection;
|
|
901
|
+
/**
|
|
902
|
+
* Limit cache size using simple FIFO eviction
|
|
903
|
+
*/
|
|
904
|
+
private evictCacheIfNeeded;
|
|
905
|
+
getInputs(data: any): any;
|
|
906
|
+
getRowInjector(data: any): Injector;
|
|
907
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetColumnRendererComponent, never>;
|
|
908
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetColumnRendererComponent, "axp-widget-column-renderer", never, { "caption": { "alias": "caption"; "required": false; }; "customExpandIcon": { "alias": "customExpandIcon"; "required": false; }; "customCollapseIcon": { "alias": "customCollapseIcon"; "required": false; }; "customWidth": { "alias": "customWidth"; "required": false; }; "node": { "alias": "node"; "required": true; }; "footerTemplate": { "alias": "footerTemplate"; "required": false; }; "expandHandler": { "alias": "expandHandler"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "headerTemplate": { "alias": "headerTemplate"; "required": false; }; }, {}, never, never, false, never>;
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
type AXPWidgetRendererDirectiveOptions = AXPMetaData;
|
|
912
|
+
declare class AXPWidgetRendererDirective {
|
|
913
|
+
parentNode: _angular_core.InputSignal<AXPLayoutBaseWidgetComponent<Record<string, any>> | null | undefined>;
|
|
914
|
+
index: _angular_core.InputSignal<number | null | undefined>;
|
|
915
|
+
mode: _angular_core.InputSignal<keyof _acorex_platform_layout_widget_core.AXPWidgetConfigComponents>;
|
|
916
|
+
node: _angular_core.InputSignal<AXPWidgetNode>;
|
|
917
|
+
private _options;
|
|
918
|
+
options: _angular_core.Signal<AXPMetaData>;
|
|
919
|
+
onOptionsChanged: _angular_core.OutputEmitterRef<{
|
|
920
|
+
sender: AXPWidgetRendererDirective;
|
|
921
|
+
widget: AXPBaseWidgetComponent;
|
|
922
|
+
}>;
|
|
923
|
+
onValueChanged: _angular_core.OutputEmitterRef<{
|
|
924
|
+
sender: AXPWidgetRendererDirective;
|
|
925
|
+
widget: AXPValueWidgetComponent;
|
|
926
|
+
}>;
|
|
927
|
+
onLoad: _angular_core.OutputEmitterRef<{
|
|
928
|
+
sender: AXPWidgetRendererDirective;
|
|
929
|
+
widget: AXPBaseWidgetComponent;
|
|
930
|
+
}>;
|
|
931
|
+
/**
|
|
932
|
+
* Signal that emits the component reference when it's ready
|
|
933
|
+
*/
|
|
934
|
+
private _componentRefSignal;
|
|
935
|
+
componentRefSignal: _angular_core.Signal<ComponentRef<any> | null>;
|
|
936
|
+
protected mergedOptions: WritableSignal<any>;
|
|
937
|
+
private injector;
|
|
938
|
+
protected builderService: AXPWidgetCoreService;
|
|
939
|
+
protected contextService: {
|
|
940
|
+
data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
|
|
941
|
+
state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
|
|
942
|
+
initialSnapshot: _angular_core.Signal<{}>;
|
|
943
|
+
previousSnapshot: _angular_core.Signal<{}>;
|
|
944
|
+
lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
|
|
945
|
+
isChanged: _angular_core.Signal<boolean>;
|
|
946
|
+
isReset: _angular_core.Signal<boolean>;
|
|
947
|
+
isInitiated: _angular_core.Signal<boolean>;
|
|
948
|
+
isEmpty: _angular_core.Signal<boolean>;
|
|
949
|
+
isDirty: _angular_core.Signal<boolean>;
|
|
950
|
+
snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
|
|
951
|
+
initial: _angular_core.Signal<{}>;
|
|
952
|
+
previous: _angular_core.Signal<{}>;
|
|
953
|
+
changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
|
|
954
|
+
update: (path: string, value: any) => void;
|
|
955
|
+
patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
|
|
956
|
+
reset: () => void;
|
|
957
|
+
set: (initialData: any) => void;
|
|
958
|
+
getValue: (path: string) => any;
|
|
959
|
+
hasValue: (path: string) => boolean;
|
|
960
|
+
} & _ngrx_signals.StateSource<{
|
|
961
|
+
data: _acorex_platform_core.AXPContextData;
|
|
962
|
+
state: _acorex_platform_core.AXPContextState;
|
|
963
|
+
initialSnapshot: {};
|
|
964
|
+
previousSnapshot: {};
|
|
965
|
+
lastChange: _acorex_platform_core.AXPContextChangeEvent;
|
|
966
|
+
}>;
|
|
967
|
+
protected widgetRegistery: AXPWidgetRegistryService;
|
|
968
|
+
protected unsubscriber: AXUnsubscriber;
|
|
969
|
+
protected translateService: AXTranslationService;
|
|
970
|
+
protected widgetService: AXPWidgetRegistryService;
|
|
971
|
+
protected expressionEvaluator: AXPExpressionEvaluatorService;
|
|
972
|
+
private viewContainerRef;
|
|
973
|
+
protected isLoading: WritableSignal<boolean>;
|
|
974
|
+
protected isVisible: WritableSignal<boolean>;
|
|
975
|
+
instance: AXPValueWidgetComponent;
|
|
976
|
+
private expressionEvaluators;
|
|
977
|
+
private componentRef;
|
|
978
|
+
private renderTimeoutId;
|
|
979
|
+
private hasInitialRender;
|
|
980
|
+
private onContextChanged;
|
|
981
|
+
private onLoadEvent;
|
|
982
|
+
private contextUpdateQueue;
|
|
983
|
+
private contextUpdateTimeout;
|
|
984
|
+
private readonly CONTEXT_UPDATE_DEBOUNCE_MS;
|
|
985
|
+
private expressionCache;
|
|
986
|
+
private readonly EXPRESSION_CACHE_TTL;
|
|
987
|
+
private lastAppliedOptions;
|
|
988
|
+
private lastExpressionResults;
|
|
989
|
+
private preRenderContextQueue;
|
|
990
|
+
constructor();
|
|
991
|
+
private getCachedExpressionResult;
|
|
992
|
+
private setCachedExpressionResult;
|
|
993
|
+
private clearExpressionCache;
|
|
994
|
+
private isPathAffectingExpressions;
|
|
995
|
+
private queueContextUpdate;
|
|
996
|
+
private processBatchedUpdates;
|
|
997
|
+
private isRelevantContextChange;
|
|
998
|
+
/**
|
|
999
|
+
* True when a context store path used in an expression (`context.eval`, `context.options`) is
|
|
1000
|
+
* affected by `changedPath`.
|
|
1001
|
+
*/
|
|
1002
|
+
private contextStorePathDependsOnChangedPath;
|
|
1003
|
+
/**
|
|
1004
|
+
* Whether an expression template string reads context store paths affected by `changedPath`.
|
|
1005
|
+
*/
|
|
1006
|
+
private expressionTextDependsOnContextPath;
|
|
1007
|
+
private hasExpressionDependency;
|
|
1008
|
+
private isPathAlias;
|
|
1009
|
+
private getExpressionValueFromNode;
|
|
1010
|
+
private hasTriggerDependency;
|
|
1011
|
+
private hasVisibilityDependency;
|
|
1012
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
1013
|
+
private rerenderComponent;
|
|
1014
|
+
ngOnDestroy(): void;
|
|
1015
|
+
private loadComponent;
|
|
1016
|
+
private applyOptions;
|
|
1017
|
+
private hasOptionsChanged;
|
|
1018
|
+
preprocessAndInitialOptions(obj: any, pathPrefix?: string): void;
|
|
1019
|
+
updateOptionsBasedOnContext(): Promise<number>;
|
|
1020
|
+
updateVisibility(): Promise<void>;
|
|
1021
|
+
private show;
|
|
1022
|
+
private hide;
|
|
1023
|
+
private evaluateExpression;
|
|
1024
|
+
private buildExpressionScope;
|
|
1025
|
+
private getContextScope;
|
|
1026
|
+
private getEventScope;
|
|
1027
|
+
private getWidgetScope;
|
|
1028
|
+
private getFunctionScope;
|
|
1029
|
+
private getVariablesScope;
|
|
1030
|
+
private assignTriggers;
|
|
1031
|
+
private evaluateTrigger;
|
|
1032
|
+
private evaluateAction;
|
|
1033
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetRendererDirective, never>;
|
|
1034
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXPWidgetRendererDirective, "[axp-widget-renderer]", ["widgetRenderer"], { "parentNode": { "alias": "parentNode"; "required": false; "isSignal": true; }; "index": { "alias": "index"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": true; "isSignal": true; }; "node": { "alias": "node"; "required": true; "isSignal": true; }; }, { "onOptionsChanged": "onOptionsChanged"; "onValueChanged": "onValueChanged"; "onLoad": "onLoad"; }, never, never, false, never>;
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
interface AXPWidgetCoreModuleConfigs {
|
|
1038
|
+
widgets?: AXPWidgetConfig[];
|
|
1039
|
+
extendedWidgets?: extendedWidget[];
|
|
1040
|
+
}
|
|
1041
|
+
declare class AXPWidgetCoreModule {
|
|
1042
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetCoreModule, never>;
|
|
1043
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXPWidgetCoreModule, [typeof AXPWidgetContainerComponent, typeof AXPWidgetColumnRendererComponent, typeof AXPWidgetRendererDirective], [typeof i4.CommonModule, typeof i5.PortalModule, typeof i6.AXSkeletonModule, typeof i7.AXTranslationModule], [typeof AXPWidgetContainerComponent, typeof AXPWidgetColumnRendererComponent, typeof AXPWidgetRendererDirective]>;
|
|
1044
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPWidgetCoreModule>;
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
interface AXPMetaDataFeatures {
|
|
1048
|
+
searchable?: {
|
|
1049
|
+
enabled: boolean;
|
|
1050
|
+
fullText: boolean;
|
|
1051
|
+
};
|
|
1052
|
+
filterable?: {
|
|
1053
|
+
enabled: boolean;
|
|
1054
|
+
inline: boolean;
|
|
1055
|
+
};
|
|
1056
|
+
sortable?: {
|
|
1057
|
+
enabled: boolean;
|
|
1058
|
+
};
|
|
1059
|
+
auditable?: {
|
|
1060
|
+
enabled: boolean;
|
|
1061
|
+
};
|
|
1062
|
+
}
|
|
1063
|
+
interface AXPMetaDataDefinition {
|
|
1064
|
+
name: string;
|
|
1065
|
+
title: string;
|
|
1066
|
+
defaultValue?: any;
|
|
1067
|
+
interface: string | AXPWidgetNode | (() => Promise<AXPWidgetNode>);
|
|
1068
|
+
features?: AXPMetaDataFeatures;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
declare const AXPWidgetsCatalog: AXPWidgetTypesMap;
|
|
1072
|
+
|
|
1073
|
+
/**
|
|
1074
|
+
* True when the widget declares the AI category (see {@link AXP_WIDGETS_AI_CATEGORY}).
|
|
1075
|
+
*/
|
|
1076
|
+
declare function hasAiWidgetCategory(config: AXPWidgetConfig): boolean;
|
|
1077
|
+
/**
|
|
1078
|
+
* Resolves AI catalog visibility using {@link AXPWidgetConfig.aiCatalog} and the AI widget category.
|
|
1079
|
+
* - `exclude`: never listed.
|
|
1080
|
+
* - `include`: always listed (override when the widget cannot declare the AI category yet).
|
|
1081
|
+
* - `inherit` / omitted: listed only if {@link hasAiWidgetCategory} is true.
|
|
1082
|
+
*/
|
|
1083
|
+
declare function isWidgetAiCatalogIncluded(config: AXPWidgetConfig): boolean;
|
|
1084
|
+
|
|
1085
|
+
export { AXPBaseWidgetComponent, AXPBlockBaseLayoutWidgetComponent, AXPBoxModelLayoutWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPFlexBaseLayoutWidgetComponent, AXPFlexItemBaseLayoutWidgetComponent, AXPGridBaseLayoutWidgetComponent, AXPGridItemBaseLayoutWidgetComponent, AXPInlineBaseLayoutWidgetComponent, AXPLayoutBaseWidgetComponent, AXPPageStatus, AXPPropertyEditorHelper, AXPTableBaseLayoutWidgetComponent, AXPTableItemBaseLayoutWidgetComponent, AXPTableItemOpsBaseLayoutWidgetComponent, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetCoreElement, AXPWidgetCoreModule, AXPWidgetCoreService, AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetSerializationHelper, AXPWidgetStatus, AXPWidgetsCatalog, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_AI_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_DEFINITION_PROVIDER, AXP_WIDGET_TOKEN, buildWidgetRegistryMapFromProviders, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty, findNonEmptyBreakpoints, hasAiWidgetCategory, isWidgetAiCatalogIncluded, normalizeWidgetCategories };
|
|
1086
|
+
export type { AXPBorderBox, AXPBorderBoxString, AXPBreakpointValues, AXPBreakpoints, AXPClassMap, AXPExtractWidgetConfig, AXPFlexBoxString, AXPFlexItemBoxString, AXPGridBoxString, AXPGridBreakpointValues, AXPGridItemBoxString, AXPLayoutBuilderStatusChangedEvent, AXPMetaDataDefinition, AXPMetaDataFeatures, AXPPropertyCorners, AXPPropertyEditorCornerValues, AXPPropertyEditorSideGeneric, AXPPropertyEditorSideValues, AXPPropertySides, AXPSpacingBox, AXPSpacingBoxString, AXPStyleMap, AXPWidgetAiCatalogMode, AXPWidgetCategory, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents, AXPWidgetCoreElementAPI, AXPWidgetCoreElementAction, AXPWidgetCoreModuleConfigs, AXPWidgetDefinitionProvider, AXPWidgetDesignerOptionsMap, AXPWidgetGroup, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetProperty, AXPWidgetPropertyGroup, AXPWidgetRenderMode, AXPWidgetRendererDirectiveOptions, AXPWidgetTypesMap, AXPWidgetViewType, extendedWidget };
|