@acorex-platform/framework-client 0.0.57 → 0.0.59
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-framework-client-common.mjs +31 -33
- package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-core.mjs +157 -2
- package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +55 -19
- package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CyZpdazq.mjs} +6 -6
- package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs.map → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-CyZpdazq.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs +639 -212
- package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +34 -18
- package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Cmzwhmjw.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BBuYugjl.mjs} +312 -160
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-BBuYugjl.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-K9HAtqL6.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-DZDf_nVq.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-K9HAtqL6.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-DZDf_nVq.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-BZECKfez.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-CFFv3jDs.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-BZECKfez.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-CFFv3jDs.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-BuDpC58x.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-BDNPJg_6.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-BuDpC58x.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-BDNPJg_6.mjs.map} +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +59 -3
- package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-D5pndfBW.mjs → acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-Rv0K9r_e.mjs} +226 -137
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-Rv0K9r_e.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs → acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-DqJIiEyu.mjs} +9 -3
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-DqJIiEyu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BFgrSnfT.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Dzqn3rGa.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-BFgrSnfT.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-Dzqn3rGa.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-Ctjz1PjP.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-C97rrrmu.mjs} +2 -2
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-Ctjz1PjP.mjs.map → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-C97rrrmu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-B_OM0T7i.mjs → acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-C-r7txgg.mjs} +21 -17
- package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-C-r7txgg.mjs.map +1 -0
- package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +48 -9
- package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-framework-client-workflow.mjs +47 -1
- package/fesm2022/acorex-platform-framework-client-workflow.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-platform-framework-client-common.d.ts +2 -3
- package/types/acorex-platform-framework-client-core.d.ts +67 -2
- package/types/acorex-platform-framework-client-layout-builder.d.ts +4 -3
- package/types/acorex-platform-framework-client-layout-components.d.ts +119 -7
- package/types/acorex-platform-framework-client-layout-designer.d.ts +2 -0
- package/types/acorex-platform-framework-client-layout-entity.d.ts +33 -9
- package/types/acorex-platform-framework-client-layout-widget-core.d.ts +14 -1
- package/types/acorex-platform-framework-client-layout-widgets.d.ts +6 -0
- package/types/acorex-platform-framework-client-workflow.d.ts +29 -2
- package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-Cmzwhmjw.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-D5pndfBW.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs.map +0 -1
- package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-B_OM0T7i.mjs.map +0 -1
|
@@ -3,8 +3,8 @@ import { CommonModule, DOCUMENT } from '@angular/common';
|
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { Injectable, inject, input, model, signal, computed, effect, output, viewChild, ChangeDetectionStrategy, Component, NgModule, EventEmitter, ElementRef, DestroyRef, untracked, Output } from '@angular/core';
|
|
5
5
|
import * as i4 from '@acorex-platform/framework-client/core';
|
|
6
|
-
import { AXPHookService, resolveDialogActionShortcuts, DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS, AXP_SETTINGS_DEFINITION_DIALOG_OPENER, findOverlayContainerAncestor, getNestedVisibleOverlayPanes, getTopVisibleOverlayContainer, AXPExpressionEvaluatorService, AXPKeyboardShortcutRegistry, normalizeDialogActionShortcutChord, isDialogShortcutAllowedInEditableField, resolveConfiguredFooterActionShortcuts, AXPComponentSlotModule, AXPContextStore } from '@acorex-platform/framework-client/core';
|
|
7
|
-
export { DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS } from '@acorex-platform/framework-client/core';
|
|
6
|
+
import { AXPHookService, AXPDialogOpener, resolveDialogActionShortcuts, DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS, AXP_SETTINGS_DEFINITION_DIALOG_OPENER, findOverlayContainerAncestor, getNestedVisibleOverlayPanes, getTopVisibleOverlayContainer, AXPExpressionEvaluatorService, AXPKeyboardShortcutRegistry, normalizeDialogActionShortcutChord, isDialogShortcutAllowedInEditableField, resolveConfiguredFooterActionShortcuts, AXPComponentSlotModule, AXPContextStore } from '@acorex-platform/framework-client/core';
|
|
7
|
+
export { AXPDialogOpener, AXP_ROOT_LOADING, DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS } from '@acorex-platform/framework-client/core';
|
|
8
8
|
import { provideCommandSetups, AXPCommandService } from '@acorex-platform/framework-client/runtime';
|
|
9
9
|
import { toAxpGridItemWidgetOptions, AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY, createRandomUuid, AXPKeyboardShortcutPriority } from '@acorex-platform/framework-shared/core';
|
|
10
10
|
import { AXPopupService } from '@acorex/components/popup';
|
|
@@ -479,12 +479,13 @@ class AXPLayoutBuilderService {
|
|
|
479
479
|
constructor() {
|
|
480
480
|
this.popupService = inject(AXPopupService);
|
|
481
481
|
this.hookService = inject(AXPHookService, { optional: true }) ?? undefined;
|
|
482
|
+
this.dialogOpener = inject(AXPDialogOpener);
|
|
482
483
|
}
|
|
483
484
|
/**
|
|
484
485
|
* Create a new layout builder
|
|
485
486
|
*/
|
|
486
487
|
create() {
|
|
487
|
-
return new LayoutBuilder(this.popupService, this.hookService);
|
|
488
|
+
return new LayoutBuilder(this.popupService, this.hookService, this.dialogOpener);
|
|
488
489
|
}
|
|
489
490
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLayoutBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
490
491
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPLayoutBuilderService, providedIn: 'root' }); }
|
|
@@ -502,9 +503,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
502
503
|
* Open/Closed: Extensible through container delegates
|
|
503
504
|
*/
|
|
504
505
|
class LayoutBuilder {
|
|
505
|
-
constructor(popupService, hookService) {
|
|
506
|
+
constructor(popupService, hookService, dialogOpener) {
|
|
506
507
|
this.popupService = popupService;
|
|
507
508
|
this.hookService = hookService;
|
|
509
|
+
this.dialogOpener = dialogOpener;
|
|
508
510
|
this.root = {
|
|
509
511
|
children: [],
|
|
510
512
|
mode: 'edit',
|
|
@@ -586,7 +588,7 @@ class LayoutBuilder {
|
|
|
586
588
|
if (!this.popupService) {
|
|
587
589
|
throw new Error('LayoutBuilder requires AXPopupService to create dialogs. Please inject it in the service constructor.');
|
|
588
590
|
}
|
|
589
|
-
const container = new DialogContainerBuilder(this.popupService, this.hookService);
|
|
591
|
+
const container = new DialogContainerBuilder(this.popupService, this.hookService, this.dialogOpener);
|
|
590
592
|
if (delegate) {
|
|
591
593
|
delegate(container);
|
|
592
594
|
}
|
|
@@ -1550,7 +1552,7 @@ class ListWidgetBuilder extends WidgetContainerMixin {
|
|
|
1550
1552
|
* Uses composition instead of inheritance for cleaner separation
|
|
1551
1553
|
*/
|
|
1552
1554
|
class DialogContainerBuilder {
|
|
1553
|
-
constructor(popupService, hookService) {
|
|
1555
|
+
constructor(popupService, hookService, dialogOpener) {
|
|
1554
1556
|
this.dialogState = {
|
|
1555
1557
|
type: 'flex-layout', // This will be overridden when content layout exists
|
|
1556
1558
|
children: [],
|
|
@@ -1574,6 +1576,7 @@ class DialogContainerBuilder {
|
|
|
1574
1576
|
this.popupService = inject(AXPopupService);
|
|
1575
1577
|
}
|
|
1576
1578
|
this.hookService = hookService ?? inject(AXPHookService, { optional: true }) ?? undefined;
|
|
1579
|
+
this.dialogOpener = dialogOpener ?? inject(AXPDialogOpener);
|
|
1577
1580
|
}
|
|
1578
1581
|
setOptions(options) {
|
|
1579
1582
|
this.dialogState.dialogOptions = { ...this.dialogState.dialogOptions, ...options };
|
|
@@ -1670,10 +1673,40 @@ class DialogContainerBuilder {
|
|
|
1670
1673
|
return result;
|
|
1671
1674
|
}
|
|
1672
1675
|
// Dialog-specific methods
|
|
1673
|
-
async show() {
|
|
1676
|
+
async show(options) {
|
|
1677
|
+
const outcome = await this.dialogOpener.run({
|
|
1678
|
+
load: () => Promise.resolve().then(function () { return dialogRenderer_component; }).then((module) => module.AXPDialogRendererComponent),
|
|
1679
|
+
data: this.dialogOpenKeyData(),
|
|
1680
|
+
present: (notifyShown, component) => this.presentDialog(component, notifyShown, options),
|
|
1681
|
+
});
|
|
1682
|
+
if (outcome.duplicate) {
|
|
1683
|
+
return createDismissedDialogRef();
|
|
1684
|
+
}
|
|
1685
|
+
return outcome.result;
|
|
1686
|
+
}
|
|
1687
|
+
dialogOpenKeyData() {
|
|
1688
|
+
const dialogOptions = this.dialogState.dialogOptions;
|
|
1689
|
+
return {
|
|
1690
|
+
title: dialogOptions?.title ?? '',
|
|
1691
|
+
size: String(dialogOptions?.size ?? 'md'),
|
|
1692
|
+
widget: this.contentWidgetName(this.contentLayout),
|
|
1693
|
+
};
|
|
1694
|
+
}
|
|
1695
|
+
contentWidgetName(node) {
|
|
1696
|
+
if (!node) {
|
|
1697
|
+
return '';
|
|
1698
|
+
}
|
|
1699
|
+
if (node.name) {
|
|
1700
|
+
return node.name;
|
|
1701
|
+
}
|
|
1702
|
+
const child = node.children?.[0];
|
|
1703
|
+
if (child) {
|
|
1704
|
+
return this.contentWidgetName(child);
|
|
1705
|
+
}
|
|
1706
|
+
return node.type ?? '';
|
|
1707
|
+
}
|
|
1708
|
+
async presentDialog(component, notifyShown, options) {
|
|
1674
1709
|
const dialogNode = this.build();
|
|
1675
|
-
// Import the dialog renderer component dynamically
|
|
1676
|
-
const { AXPDialogRendererComponent } = await Promise.resolve().then(function () { return dialogRenderer_component; });
|
|
1677
1710
|
this.dialogState.dialogOptions ??= {};
|
|
1678
1711
|
if (this.dialogState.dialogOptions.context == null || typeof this.dialogState.dialogOptions.context !== 'object') {
|
|
1679
1712
|
this.dialogState.dialogOptions.context = {};
|
|
@@ -1692,11 +1725,8 @@ class DialogContainerBuilder {
|
|
|
1692
1725
|
await hookService.runAsync(AXP_LAYOUT_BUILDER_DIALOG_BEFORE_OPEN_HOOK_KEY, beforePayload);
|
|
1693
1726
|
}
|
|
1694
1727
|
const confirmCloseWhenDirty = normalizeDialogCloseConfirmation(this.dialogState.dialogOptions?.confirmCloseWhenDirty);
|
|
1695
|
-
// Create dialog configuration
|
|
1696
1728
|
const dialogConfig = {
|
|
1697
1729
|
title: this.dialogState.dialogOptions?.title || '',
|
|
1698
|
-
//TODO: why we need message?
|
|
1699
|
-
//message: this.dialogState.dialogOptions?.message,
|
|
1700
1730
|
context: initialContext,
|
|
1701
1731
|
definition: dialogNode,
|
|
1702
1732
|
metadata: this.dialogState.dialogOptions.metadata,
|
|
@@ -1704,14 +1734,12 @@ class DialogContainerBuilder {
|
|
|
1704
1734
|
onAction: this.dialogState.dialogOptions?.onAction,
|
|
1705
1735
|
confirmCloseWhenDirty,
|
|
1706
1736
|
};
|
|
1707
|
-
//
|
|
1708
1737
|
if (hookService) {
|
|
1709
1738
|
await hookService.runAsync(AXP_LAYOUT_BUILDER_DIALOG_CONFIG_HOOK_KEY, dialogConfig);
|
|
1710
1739
|
}
|
|
1711
|
-
|
|
1712
|
-
return new Promise(async (resolve) => {
|
|
1740
|
+
return new Promise((resolve) => {
|
|
1713
1741
|
let flag = false;
|
|
1714
|
-
|
|
1742
|
+
const opened = this.popupService.open(component, {
|
|
1715
1743
|
title: dialogConfig.title,
|
|
1716
1744
|
size: this.dialogState.dialogOptions?.size || 'md',
|
|
1717
1745
|
closeButton: this.dialogState.dialogOptions?.closeButton || false,
|
|
@@ -1725,9 +1753,17 @@ class DialogContainerBuilder {
|
|
|
1725
1753
|
},
|
|
1726
1754
|
},
|
|
1727
1755
|
});
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1756
|
+
notifyShown();
|
|
1757
|
+
options?.onShown?.();
|
|
1758
|
+
void Promise.resolve(opened).then(() => {
|
|
1759
|
+
if (!flag) {
|
|
1760
|
+
resolve(createDismissedDialogRef());
|
|
1761
|
+
}
|
|
1762
|
+
}, () => {
|
|
1763
|
+
if (!flag) {
|
|
1764
|
+
resolve(createDismissedDialogRef());
|
|
1765
|
+
}
|
|
1766
|
+
});
|
|
1731
1767
|
});
|
|
1732
1768
|
}
|
|
1733
1769
|
}
|