@acorex/platform 20.2.4-next.0 → 20.2.4-next.2
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/common/index.d.ts +82 -1
- package/core/index.d.ts +24 -2
- package/fesm2022/acorex-platform-common.mjs +1 -1
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +47 -5
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +943 -39
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +15 -122
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +1329 -568
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +152 -40
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-ezrf2oBR.mjs → acorex-platform-themes-default-entity-master-list-view.component-DXGLsVis.mjs} +174 -50
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DXGLsVis.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-D8r3S2lI.mjs → acorex-platform-themes-default-entity-master-single-view.component-CVaJzWb2.mjs} +14 -11
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CVaJzWb2.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +19 -7
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs} +1 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DjKLg513.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs} +1 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DE0wO98F.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +11 -13
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs +50 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-B3SJUnGQ.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs +42 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-BLR0JkRt.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs +55 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-hzR2FgOm.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs +50 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-IDm6Clua.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs +48 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-BRO9tYDa.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs +42 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-CkpLimyW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-DFbPO0ud.mjs → acorex-platform-widgets-file-list-popup.component-B601gPsW.mjs} +66 -3
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-B601gPsW.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +824 -136
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +3 -0
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/index.d.ts +12 -2
- package/layout/components/index.d.ts +172 -6
- package/layout/designer/index.d.ts +3 -46
- package/layout/entity/index.d.ts +70 -7
- package/layout/views/index.d.ts +53 -7
- package/package.json +1 -1
- package/themes/default/index.d.ts +4 -1
- package/widgets/index.d.ts +20 -11
- package/workflow/index.d.ts +3 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-ezrf2oBR.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-D8r3S2lI.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-DFbPO0ud.mjs.map +0 -1
|
@@ -55,6 +55,7 @@ class AXPLayoutBuilderService {
|
|
|
55
55
|
this.functions$ = signal({}, ...(ngDevMode ? [{ debugName: "functions$" }] : []));
|
|
56
56
|
this.onRefresh = new Subject();
|
|
57
57
|
this.widgets = new Map();
|
|
58
|
+
this.onWidgetRegistered = new Subject();
|
|
58
59
|
this.status$ = signal(AXPPageStatus.Rendering, ...(ngDevMode ? [{ debugName: "status$" }] : []));
|
|
59
60
|
this.status = this.status$.asReadonly();
|
|
60
61
|
this.isBusy = computed(() => {
|
|
@@ -71,7 +72,7 @@ class AXPLayoutBuilderService {
|
|
|
71
72
|
this.status$.update(() => this.detectStatus());
|
|
72
73
|
}
|
|
73
74
|
detectStatus() {
|
|
74
|
-
const statuses = Array.from(this.widgets.values()).map(c => c.status());
|
|
75
|
+
const statuses = Array.from(this.widgets.values()).map((c) => c.status());
|
|
75
76
|
// Rendering statuses
|
|
76
77
|
if (statuses.some((status) => status === AXPWidgetStatus.Rendering)) {
|
|
77
78
|
return AXPPageStatus.Rendering;
|
|
@@ -117,12 +118,46 @@ class AXPLayoutBuilderService {
|
|
|
117
118
|
}
|
|
118
119
|
registerWidget(id, widget) {
|
|
119
120
|
this.widgets.set(id, widget);
|
|
121
|
+
this.onWidgetRegistered.next({ id, widget });
|
|
120
122
|
}
|
|
121
123
|
getWidget(id) {
|
|
122
124
|
return this.widgets.get(id);
|
|
123
125
|
}
|
|
124
|
-
|
|
126
|
+
/**
|
|
127
|
+
* Waits until a widget with the given id is registered, then resolves with it.
|
|
128
|
+
* If the widget is already registered, resolves immediately.
|
|
129
|
+
* Optionally accepts a timeout (in ms) after which it resolves with undefined.
|
|
130
|
+
*/
|
|
131
|
+
async waitForWidget(id, timeoutMs) {
|
|
132
|
+
const existing = this.widgets.get(id);
|
|
133
|
+
if (existing) {
|
|
134
|
+
return existing;
|
|
135
|
+
}
|
|
136
|
+
return new Promise((resolve) => {
|
|
137
|
+
let resolved = false;
|
|
138
|
+
let timer = null;
|
|
139
|
+
const sub = this.onWidgetRegistered.subscribe(({ id: registeredId, widget }) => {
|
|
140
|
+
if (registeredId === id && !resolved) {
|
|
141
|
+
resolved = true;
|
|
142
|
+
sub.unsubscribe();
|
|
143
|
+
if (timer) {
|
|
144
|
+
clearTimeout(timer);
|
|
145
|
+
}
|
|
146
|
+
resolve(widget);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
if (timeoutMs != null && timeoutMs > 0) {
|
|
150
|
+
timer = setTimeout(() => {
|
|
151
|
+
if (!resolved) {
|
|
152
|
+
resolved = true;
|
|
153
|
+
sub.unsubscribe();
|
|
154
|
+
resolve(undefined);
|
|
155
|
+
}
|
|
156
|
+
}, timeoutMs);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
125
159
|
}
|
|
160
|
+
ngOnDestroy() { }
|
|
126
161
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
127
162
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPLayoutBuilderService }); }
|
|
128
163
|
}
|
|
@@ -195,6 +230,7 @@ const AXPWidgetsCatalog = {
|
|
|
195
230
|
fileTypeExtension: 'file-type-extension',
|
|
196
231
|
map: 'map',
|
|
197
232
|
imageMarker: 'image-marker',
|
|
233
|
+
image: 'image',
|
|
198
234
|
gallery: 'gallery',
|
|
199
235
|
signature: 'signature',
|
|
200
236
|
buttonAction: 'button-action',
|
|
@@ -222,7 +258,7 @@ const AXPWidgetsCatalog = {
|
|
|
222
258
|
fontStyleChooser: 'font-style-chooser',
|
|
223
259
|
fontSizeChooser: 'font-size-chooser',
|
|
224
260
|
iconChooser: 'icon-chooser',
|
|
225
|
-
|
|
261
|
+
themeColorChooser: 'theme-color-chooser',
|
|
226
262
|
gridOptions: 'grid-options',
|
|
227
263
|
advancedGridOptions: 'advanced-grid-options',
|
|
228
264
|
stringFilter: 'string-filter',
|
|
@@ -255,7 +291,7 @@ const AXPWidgetsCatalog = {
|
|
|
255
291
|
templateEditor: 'template-box-editor',
|
|
256
292
|
panel: 'panel',
|
|
257
293
|
notification: 'notification',
|
|
258
|
-
|
|
294
|
+
taskBoard: 'task-board',
|
|
259
295
|
comment: 'comment',
|
|
260
296
|
list: 'list',
|
|
261
297
|
listToolbar: 'list-toolbar',
|
|
@@ -663,6 +699,12 @@ class AXPWidgetContainerComponent {
|
|
|
663
699
|
}
|
|
664
700
|
});
|
|
665
701
|
}
|
|
702
|
+
refresh() {
|
|
703
|
+
this.builderService.refresh();
|
|
704
|
+
}
|
|
705
|
+
find(name) {
|
|
706
|
+
return this.builderService.waitForWidget(name);
|
|
707
|
+
}
|
|
666
708
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPWidgetContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
667
709
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.6", type: AXPWidgetContainerComponent, isStandalone: false, selector: "axp-widgets-container", inputs: { context: "context", functions: "functions" }, outputs: { onContextChanged: "onContextChanged" }, host: { styleAttribute: "display: contents;" }, providers: [AXPLayoutBuilderService, AXPLayoutBuilderContextStore], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
668
710
|
}
|
|
@@ -905,7 +947,7 @@ class AXPWidgetRendererDirective {
|
|
|
905
947
|
Object.entries(obj).forEach(([key, value]) => {
|
|
906
948
|
const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;
|
|
907
949
|
// CRITICAL FIX: Skip trigger actions during options processing
|
|
908
|
-
//
|
|
950
|
+
//
|
|
909
951
|
// PROBLEM: Trigger actions were being evaluated immediately during widget setup/options processing,
|
|
910
952
|
// causing them to execute before the actual trigger event occurred. This meant triggers would fire
|
|
911
953
|
// during initialization instead of when the specified context path actually changed.
|