@acorex/platform 20.2.0-next.2 → 20.2.0-next.3
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 +25 -42
- package/core/index.d.ts +104 -9
- package/fesm2022/acorex-platform-auth.mjs +20 -20
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +133 -115
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +276 -37
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +16 -16
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +88 -67
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +137 -83
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +262 -218
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +1040 -104
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +15 -15
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +40 -40
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-create-entity-view.component-CzHp6G3a.mjs → acorex-platform-themes-default-create-entity-view.component-DBkuhSDb.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-create-entity-view.component-CzHp6G3a.mjs.map → acorex-platform-themes-default-create-entity-view.component-DBkuhSDb.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-8S2CXBAi.mjs +115 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-8S2CXBAi.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-C8UhVBSM.mjs → acorex-platform-themes-default-entity-master-list-view.component-Bf8N5e5h.mjs} +23 -23
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-C8UhVBSM.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-Bf8N5e5h.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-Cn-0fTWn.mjs → acorex-platform-themes-default-entity-master-modify-view.component-DF0gS61P.mjs} +5 -5
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DF0gS61P.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-B8XrO58H.mjs → acorex-platform-themes-default-entity-master-single-view.component-CEnHe_cU.mjs} +8 -8
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-CEnHe_cU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-Ycd9latx.mjs → acorex-platform-themes-default-error-401.component-BYI4xP23.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-401.component-Ycd9latx.mjs.map → acorex-platform-themes-default-error-401.component-BYI4xP23.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-404.component-DHbzH27Q.mjs → acorex-platform-themes-default-error-404.component-1gM0Vlbv.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-404.component-DHbzH27Q.mjs.map → acorex-platform-themes-default-error-404.component-1gM0Vlbv.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BSdZOCbW.mjs → acorex-platform-themes-default-error-offline.component-Y3w3K60c.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BSdZOCbW.mjs.map → acorex-platform-themes-default-error-offline.component-Y3w3K60c.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +39 -39
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-column.component-EZGn900W.mjs → acorex-platform-themes-shared-color-chooser-column.component-BLFvyMvH.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-column.component-EZGn900W.mjs.map → acorex-platform-themes-shared-color-chooser-column.component-BLFvyMvH.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-view.component-DTLYX00a.mjs → acorex-platform-themes-shared-color-chooser-view.component-CN1lEEOY.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-view.component-DTLYX00a.mjs.map → acorex-platform-themes-shared-color-chooser-view.component-CN1lEEOY.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-DMPET9Fu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-UJ2abdzQ.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-DMPET9Fu.mjs.map → acorex-platform-themes-shared-icon-chooser-view.component-UJ2abdzQ.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +41 -41
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BUx-nksc.mjs → acorex-platform-widgets-button-widget-designer.component-BMsEt6Lq.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-BUx-nksc.mjs.map → acorex-platform-widgets-button-widget-designer.component-BMsEt6Lq.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-CezBQ0iO.mjs +85 -0
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-CezBQ0iO.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-Dj3Go0tj.mjs → acorex-platform-widgets-checkbox-widget-designer.component-BkH4hBUc.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-Dj3Go0tj.mjs.map → acorex-platform-widgets-checkbox-widget-designer.component-BkH4hBUc.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-Y12esByc.mjs → acorex-platform-widgets-checkbox-widget-view.component-BwlHVBRW.mjs} +19 -6
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BwlHVBRW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-CihtTd0F.mjs → acorex-platform-widgets-color-box-widget-designer.component-BPLG8mY4.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-CihtTd0F.mjs.map → acorex-platform-widgets-color-box-widget-designer.component-BPLG8mY4.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-n3nuXZNq.mjs → acorex-platform-widgets-file-list-popup.component-Bwbrw1xo.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-n3nuXZNq.mjs.map → acorex-platform-widgets-file-list-popup.component-Bwbrw1xo.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-file-rename-popup.component-DBRV6X7W.mjs → acorex-platform-widgets-file-rename-popup.component-CXRHtjFu.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-file-rename-popup.component-DBRV6X7W.mjs.map → acorex-platform-widgets-file-rename-popup.component-CXRHtjFu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-D_970YBz.mjs → acorex-platform-widgets-page-widget-designer.component-Cf5bTu-k.mjs} +6 -6
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-Cf5bTu-k.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-DPuTM42n.mjs → acorex-platform-widgets-rich-text-popup.component-DOGwSrH1.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-DPuTM42n.mjs.map → acorex-platform-widgets-rich-text-popup.component-DOGwSrH1.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-BH1_BkJh.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-CFg2-tyF.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-BH1_BkJh.mjs.map → acorex-platform-widgets-tabular-data-edit-popup.component-CFg2-tyF.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-DCsLuXR9.mjs → acorex-platform-widgets-tabular-data-view-popup.component-BvVF-vJF.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-DCsLuXR9.mjs.map → acorex-platform-widgets-tabular-data-view-popup.component-BvVF-vJF.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-C_iu3jCG.mjs → acorex-platform-widgets-text-block-widget-designer.component-BhXq3JZ1.mjs} +4 -4
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-C_iu3jCG.mjs.map → acorex-platform-widgets-text-block-widget-designer.component-BhXq3JZ1.mjs.map} +1 -1
- package/fesm2022/acorex-platform-widgets.mjs +744 -701
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +33 -25
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/index.d.ts +6 -29
- package/layout/components/index.d.ts +62 -2
- package/layout/designer/index.d.ts +11 -20
- package/layout/entity/index.d.ts +302 -7
- package/package.json +5 -5
- package/widgets/index.d.ts +14 -16
- package/workflow/index.d.ts +154 -18
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-nzWNHDO7.mjs +0 -115
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-nzWNHDO7.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Cn-0fTWn.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B8XrO58H.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-C7mpTEda.mjs +0 -56
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-C7mpTEda.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-Y12esByc.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-D_970YBz.mjs.map +0 -1
|
@@ -541,11 +541,14 @@ declare abstract class AXPValueWidgetComponent<T = any | null> extends AXPLayout
|
|
|
541
541
|
}
|
|
542
542
|
declare abstract class AXPDataListWidgetComponent extends AXPValueWidgetComponent<any> {
|
|
543
543
|
private dataService;
|
|
544
|
-
protected dataSource: _angular_core.WritableSignal<AXDataSource<unknown>>;
|
|
545
544
|
protected textField: _angular_core.Signal<string>;
|
|
546
545
|
protected valueField: _angular_core.Signal<string>;
|
|
546
|
+
protected dataSource: _angular_core.WritableSignal<AXDataSource<unknown>>;
|
|
547
|
+
protected isReady: _angular_core.Signal<boolean>;
|
|
547
548
|
selectedItems: _angular_core.WritableSignal<any[]>;
|
|
548
549
|
private rf;
|
|
550
|
+
protected extractItem(item: unknown): Promise<any>;
|
|
551
|
+
private effect2;
|
|
549
552
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDataListWidgetComponent, never>;
|
|
550
553
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDataListWidgetComponent>;
|
|
551
554
|
}
|
|
@@ -658,32 +661,6 @@ declare class AXPLayoutBuilderModule {
|
|
|
658
661
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPLayoutBuilderModule>;
|
|
659
662
|
}
|
|
660
663
|
|
|
661
|
-
interface AXPWidgetDataSourceColumn {
|
|
662
|
-
name: string;
|
|
663
|
-
title: string;
|
|
664
|
-
type?: string;
|
|
665
|
-
}
|
|
666
|
-
interface AXPWidgetDataSource<T = any> {
|
|
667
|
-
name: string;
|
|
668
|
-
title: string;
|
|
669
|
-
valueField: string;
|
|
670
|
-
textField: string;
|
|
671
|
-
columns: AXPWidgetDataSourceColumn[];
|
|
672
|
-
samples?: any[];
|
|
673
|
-
source: () => AXDataSource<T> | Promise<AXDataSource<T>>;
|
|
674
|
-
}
|
|
675
|
-
interface AXPWidgetDataSourceProvider {
|
|
676
|
-
items(): Promise<AXPWidgetDataSource[]>;
|
|
677
|
-
}
|
|
678
|
-
declare const AXP_WIDGET_DATASOURCE_PROVIDER: InjectionToken<AXPWidgetDataSourceProvider[]>;
|
|
679
|
-
declare class AXPWidgetDataSourceProviderService implements AXPWidgetDataSourceProvider {
|
|
680
|
-
private providers;
|
|
681
|
-
items(): Promise<AXPWidgetDataSource[]>;
|
|
682
|
-
get(name: string): Promise<AXPWidgetDataSource | undefined>;
|
|
683
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetDataSourceProviderService, never>;
|
|
684
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetDataSourceProviderService>;
|
|
685
|
-
}
|
|
686
|
-
|
|
687
664
|
interface AXPMetaDataDefinition {
|
|
688
665
|
name: string;
|
|
689
666
|
title: string;
|
|
@@ -693,5 +670,5 @@ interface AXPMetaDataDefinition {
|
|
|
693
670
|
|
|
694
671
|
declare const AXPWidgetsCatalog: AXPWidgetTypesMap;
|
|
695
672
|
|
|
696
|
-
export { AXPBaseWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPLayoutBuilderContextStore, AXPLayoutBuilderModule, AXPLayoutBuilderService, AXPLayoutContextChangeEvent, AXPLayoutElement, AXPLayoutWidgetComponent, AXPPageStatus, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent,
|
|
697
|
-
export type { AXPExtractWidgetConfig, AXPLayoutBuilderModuleConfigs, AXPLayoutBuilderStatusChangedEvent, AXPLayoutContextState, AXPLayoutElementAPI, AXPMetaDataDefinition, AXPWidgetCategory, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents,
|
|
673
|
+
export { AXPBaseWidgetComponent, AXPColumnWidgetComponent, AXPDataListWidgetComponent, AXPLayoutBuilderContextStore, AXPLayoutBuilderModule, AXPLayoutBuilderService, AXPLayoutContextChangeEvent, AXPLayoutElement, AXPLayoutWidgetComponent, AXPPageStatus, AXPValueWidgetComponent, AXPWidgetColumnRendererComponent, AXPWidgetContainerComponent, AXPWidgetGroupEnum, AXPWidgetRegistryService, AXPWidgetRendererDirective, AXPWidgetStatus, AXPWidgetsCatalog, AXP_WIDGETS_ACTION_CATEGORY, AXP_WIDGETS_ADVANCE_CATEGORY, AXP_WIDGETS_CATEGORIES, AXP_WIDGETS_EDITOR_CATEGORY, AXP_WIDGETS_LAYOUT_CATEGORY, AXP_WIDGET_COLUMN_TOKEN, AXP_WIDGET_TOKEN, cloneProperty, createBooleanProperty, createNumberProperty, createSelectProperty, createStringProperty };
|
|
674
|
+
export type { AXPExtractWidgetConfig, AXPLayoutBuilderModuleConfigs, AXPLayoutBuilderStatusChangedEvent, AXPLayoutContextState, AXPLayoutElementAPI, AXPMetaDataDefinition, AXPWidgetCategory, AXPWidgetColumnNode, AXPWidgetColumnNodeToken, AXPWidgetComponentConfig, AXPWidgetConfig, AXPWidgetConfigComponents, AXPWidgetDesignerOptionsMap, AXPWidgetGroup, AXPWidgetNode, AXPWidgetNodeToken, AXPWidgetProperty, AXPWidgetPropertyGroup, AXPWidgetRenderMode, AXPWidgetRendererDirectiveOptions, AXPWidgetTypesMap, AXPWidgetViewType, extendedWidget };
|
|
@@ -591,5 +591,65 @@ declare class AXPUserAvatarComponent implements OnInit, OnDestroy {
|
|
|
591
591
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPUserAvatarComponent, "axp-user-avatar", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "userId": { "alias": "userId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
592
592
|
}
|
|
593
593
|
|
|
594
|
-
|
|
595
|
-
|
|
594
|
+
/**
|
|
595
|
+
* Generic interface for widget item data
|
|
596
|
+
*/
|
|
597
|
+
interface AXPWidgetItemData {
|
|
598
|
+
/** Display title of the widget */
|
|
599
|
+
title: string;
|
|
600
|
+
/** Description text for the widget */
|
|
601
|
+
description?: string;
|
|
602
|
+
/** Icon class (e.g., FontAwesome classes) */
|
|
603
|
+
icon?: string;
|
|
604
|
+
/** Whether the widget is pinned/favorited */
|
|
605
|
+
isPinned: boolean;
|
|
606
|
+
/** Generic data payload - can be any type based on use case */
|
|
607
|
+
data?: unknown;
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* Event data for widget item interactions
|
|
611
|
+
*/
|
|
612
|
+
interface AXPWidgetItemClickEvent<T = unknown> {
|
|
613
|
+
/** The mouse event */
|
|
614
|
+
event: MouseEvent;
|
|
615
|
+
/** The widget item data */
|
|
616
|
+
widget: AXPWidgetItemData & {
|
|
617
|
+
data?: T;
|
|
618
|
+
};
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
/**
|
|
622
|
+
* Generic widget item component for displaying selectable widgets with icons, titles, and descriptions.
|
|
623
|
+
* Can be used across different modules for consistent widget display and interaction.
|
|
624
|
+
*/
|
|
625
|
+
declare class AXPWidgetItemComponent {
|
|
626
|
+
/** The widget data to display */
|
|
627
|
+
widget: _angular_core.InputSignal<AXPWidgetItemData>;
|
|
628
|
+
/** Whether this widget is currently selected */
|
|
629
|
+
isSelected: _angular_core.InputSignal<boolean>;
|
|
630
|
+
/** Whether to show the pin button */
|
|
631
|
+
showPinButton: _angular_core.InputSignal<boolean>;
|
|
632
|
+
/** Custom CSS classes to apply to the widget item */
|
|
633
|
+
customClasses: _angular_core.InputSignal<string>;
|
|
634
|
+
/** Emitted when the widget item is clicked */
|
|
635
|
+
onWidgetClick: _angular_core.OutputEmitterRef<AXPWidgetItemClickEvent<unknown>>;
|
|
636
|
+
/** Emitted when the pin button is clicked */
|
|
637
|
+
onPinClick: _angular_core.OutputEmitterRef<AXPWidgetItemClickEvent<unknown>>;
|
|
638
|
+
/**
|
|
639
|
+
* Handle widget item click event
|
|
640
|
+
*/
|
|
641
|
+
handleClick(event: MouseEvent): void;
|
|
642
|
+
/**
|
|
643
|
+
* Handle pin button click event
|
|
644
|
+
*/
|
|
645
|
+
handlePinClick(event: MouseEvent): void;
|
|
646
|
+
/**
|
|
647
|
+
* Get the effective icon to display
|
|
648
|
+
*/
|
|
649
|
+
getIconClass(): string;
|
|
650
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetItemComponent, never>;
|
|
651
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetItemComponent, "axp-widget-item", never, { "widget": { "alias": "widget"; "required": true; "isSignal": true; }; "isSelected": { "alias": "isSelected"; "required": false; "isSignal": true; }; "showPinButton": { "alias": "showPinButton"; "required": false; "isSignal": true; }; "customClasses": { "alias": "customClasses"; "required": false; "isSignal": true; }; }, { "onWidgetClick": "onWidgetClick"; "onPinClick": "onPinClick"; }, never, never, true, never>;
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
export { AXPActivityLogComponent, AXPCompareViewComponent, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPDynamicFormComponent, AXPLayoutFiltersComponent, AXPMenuBadgeHelper, AXPTaskBadgeDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutEndSideComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPUserAvatarComponent, AXPUserAvatarService, AXPWidgetItemComponent, AXP_TASK_BADGE_PROVIDERS, AXP_USER_AVATAR_PROVIDER };
|
|
655
|
+
export type { AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPComponentSlotConfig, AXPComponentSlotModuleConfigs, AXPDynamicFormDefinition, AXPDynamicFormFieldDefinition, AXPDynamicFormGroupDefinition, AXPDynamicFormLayoutConfig, AXPDynamicFormLayoutStyle, AXPUserAvatarData, AXPUserAvatarProvider, AXPUserAvatarSize, AXPUserAvatarStatus, AXPWidgetItemClickEvent, AXPWidgetItemData };
|
|
@@ -4,7 +4,8 @@ import { EventEmitter, OnChanges, OnDestroy, WritableSignal, NgZone, SimpleChang
|
|
|
4
4
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
5
5
|
import { AXTabStripChangedEvent } from '@acorex/components/tabs';
|
|
6
6
|
import * as _acorex_platform_layout_builder from '@acorex/platform/layout/builder';
|
|
7
|
-
import { AXPWidgetConfig, AXPWidgetCategory, AXPWidgetGroupEnum, AXPWidgetNode, AXPBaseWidgetComponent, AXPWidgetRegistryService, AXPLayoutWidgetComponent,
|
|
7
|
+
import { AXPWidgetConfig, AXPWidgetCategory, AXPWidgetGroupEnum, AXPWidgetNode, AXPBaseWidgetComponent, AXPWidgetRegistryService, AXPLayoutWidgetComponent, AXPLayoutContextChangeEvent, AXPWidgetProperty } from '@acorex/platform/layout/builder';
|
|
8
|
+
import { AXPWidgetItemData, AXPWidgetItemClickEvent } from '@acorex/platform/layout/components';
|
|
8
9
|
import { AXMenuItem } from '@acorex/components/menu';
|
|
9
10
|
import { Subject } from 'rxjs';
|
|
10
11
|
import { AXPBroadcastEventService } from '@acorex/platform/core';
|
|
@@ -50,7 +51,7 @@ declare class AXPDesignerGridDrawerComponent {
|
|
|
50
51
|
protected rangeC: _angular_core.WritableSignal<number>;
|
|
51
52
|
protected handleMouseHover(r: number, c: number): void;
|
|
52
53
|
protected handleClick(r: number, c: number): void;
|
|
53
|
-
|
|
54
|
+
protected handleMouseLeave(event: MouseEvent): void;
|
|
54
55
|
private get __style();
|
|
55
56
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDesignerGridDrawerComponent, never>;
|
|
56
57
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDesignerGridDrawerComponent, "axp-designer-grid-drawer", never, { "rowsCount": { "alias": "rows"; "required": false; "isSignal": true; }; "colsCount": { "alias": "columns"; "required": false; "isSignal": true; }; }, { "rowsCount": "rowsChange"; "colsCount": "columnsChange"; "onSelect": "onSelect"; }, never, never, true, never>;
|
|
@@ -71,6 +72,8 @@ declare class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
|
|
|
71
72
|
private orderedList;
|
|
72
73
|
protected pinnedList: _angular_core.Signal<AXPDisplayWidgetConfig[]>;
|
|
73
74
|
protected regularList: _angular_core.Signal<AXPDisplayWidgetConfig[]>;
|
|
75
|
+
protected pinnedWidgetItems: _angular_core.Signal<AXPWidgetItemData[]>;
|
|
76
|
+
protected regularWidgetItems: _angular_core.Signal<AXPWidgetItemData[]>;
|
|
74
77
|
protected categories: _angular_core.Signal<AXPWidgetCategory[]>;
|
|
75
78
|
protected tabs: _angular_core.Signal<AXPWidgetCategory[]>;
|
|
76
79
|
protected maxVisibleWidgets: _angular_core.Signal<number>;
|
|
@@ -78,9 +81,10 @@ declare class AXPDesignerWidgetPickerComponent extends AXBasePageComponent {
|
|
|
78
81
|
protected selectedTab: _angular_core.Signal<AXPWidgetCategory>;
|
|
79
82
|
protected ngOnInit(): Promise<void>;
|
|
80
83
|
protected handleTabChange(event: AXTabStripChangedEvent): void;
|
|
81
|
-
protected
|
|
82
|
-
protected
|
|
84
|
+
protected handleWidgetClick(clickEvent: AXPWidgetItemClickEvent): void;
|
|
85
|
+
protected handleWidgetPinClick(clickEvent: AXPWidgetItemClickEvent): Promise<void>;
|
|
83
86
|
protected isWidgetSelected(widget: AXPDisplayWidgetConfig): boolean;
|
|
87
|
+
protected isWidgetItemSelected(widgetItem: AXPWidgetItemData): boolean;
|
|
84
88
|
protected handleConfirmSelection(): void;
|
|
85
89
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDesignerWidgetPickerComponent, never>;
|
|
86
90
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDesignerWidgetPickerComponent, "ng-component", never, { "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; }, { "searchTerm": "searchTermChange"; }, never, never, true, never>;
|
|
@@ -325,11 +329,13 @@ declare function cloneWidgetMenu(item: AXMenuItem, options?: Partial<AXMenuItem>
|
|
|
325
329
|
declare class AXPWidgetDesignerRendererDirective implements OnChanges, OnDestroy {
|
|
326
330
|
protected mergedOptions: WritableSignal<any>;
|
|
327
331
|
private injector;
|
|
328
|
-
protected
|
|
332
|
+
protected widgetRegistry: AXPWidgetRegistryService;
|
|
329
333
|
protected zone: NgZone;
|
|
330
334
|
protected isLoading: WritableSignal<boolean>;
|
|
331
335
|
private instance;
|
|
332
336
|
private config?;
|
|
337
|
+
private isLoadingComponent;
|
|
338
|
+
private currentNodeId;
|
|
333
339
|
private service;
|
|
334
340
|
private viewContainerRef;
|
|
335
341
|
parentNode: _angular_core.InputSignal<AXPLayoutWidgetComponent | null | undefined>;
|
|
@@ -367,17 +373,12 @@ declare class AXPLayoutDesignerPreviewViewerComponent {
|
|
|
367
373
|
protected readonly document: _angular_core.WritableSignal<AXPWidgetNode>;
|
|
368
374
|
protected readonly currentPageIndex: _angular_core.WritableSignal<number>;
|
|
369
375
|
protected connector: AXPDesignerConnector<any>;
|
|
370
|
-
protected dataSourceProvider: AXPWidgetDataSourceProviderService;
|
|
371
376
|
protected eventService: AXPBroadcastEventService;
|
|
372
377
|
protected unsubscriber: AXUnsubscriber;
|
|
373
378
|
protected readonly currentPage: _angular_core.Signal<AXPWidgetNode>;
|
|
374
379
|
constructor();
|
|
375
380
|
ngAfterViewInit(): void;
|
|
376
381
|
protected handleContextChanged(e: AXPLayoutContextChangeEvent): void;
|
|
377
|
-
protected functions: {
|
|
378
|
-
getDataSourceNames: (name: string) => Promise<AXPWidgetDataSource | undefined>;
|
|
379
|
-
};
|
|
380
|
-
private getDataSources;
|
|
381
382
|
ngOnDestroy(): void;
|
|
382
383
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutDesignerPreviewViewerComponent, never>;
|
|
383
384
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutDesignerPreviewViewerComponent, "axp-layout-builder-viewer", never, {}, {}, never, never, true, never>;
|
|
@@ -422,7 +423,6 @@ declare class AXPWidgetPropertyViewerComponent {
|
|
|
422
423
|
mode: _angular_core.InputSignal<"simple" | "advanced">;
|
|
423
424
|
private widgetRegistryService;
|
|
424
425
|
protected connector: AXPDesignerConnector<any>;
|
|
425
|
-
protected dataSourceProvider: AXPWidgetDataSourceProviderService;
|
|
426
426
|
protected currentTabIndex: WritableSignal<number>;
|
|
427
427
|
protected config: WritableSignal<AXPWidgetConfig<any> | null>;
|
|
428
428
|
protected allPoperties: AXPWidgetProperty[];
|
|
@@ -443,15 +443,6 @@ declare class AXPWidgetPropertyViewerComponent {
|
|
|
443
443
|
protected handleContextChange(e: AXPLayoutContextChangeEvent): void;
|
|
444
444
|
protected handleTabChange(event: AXTabStripChangedEvent): void;
|
|
445
445
|
protected handleCollapsedChange(group: string, collapsed: boolean): void;
|
|
446
|
-
protected functions: {
|
|
447
|
-
getDataSourceNames: () => Promise<{
|
|
448
|
-
id: string;
|
|
449
|
-
title: string;
|
|
450
|
-
valueField: string;
|
|
451
|
-
textField: string;
|
|
452
|
-
}[]>;
|
|
453
|
-
};
|
|
454
|
-
private getDataSourceNames;
|
|
455
446
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetPropertyViewerComponent, never>;
|
|
456
447
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetPropertyViewerComponent, "axp-widget-property-viewer", never, { "widget": { "alias": "widget"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "onChanged": "onChanged"; }, never, never, true, never>;
|
|
457
448
|
}
|
package/layout/entity/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injector, Type } from '@angular/core';
|
|
3
|
-
import { AXStyleColorType, AXDataSource } from '@acorex/cdk/common';
|
|
2
|
+
import { InjectionToken, Injector, EnvironmentProviders, Type } from '@angular/core';
|
|
3
|
+
import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption } from '@acorex/cdk/common';
|
|
4
4
|
import * as _acorex_platform_common from '@acorex/platform/common';
|
|
5
|
-
import { AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPRelatedEntity, AXPEntitySectionView, AXPGridLayoutOptions, AXPEntityPropertyCreateView, AXPQueryView, AXPEntityPropertyView, AXPCategoryEntity, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityDetailListView, AXPQueryFilter } from '@acorex/platform/common';
|
|
5
|
+
import { AXPEntityCommandScope, AXPEntity, AXPEntityAction, AXPEntityProperty, AXPEntityTableColumn, AXPRelatedEntity, AXPEntitySectionView, AXPGridLayoutOptions, AXPEntityPropertyCreateView, AXPEntityPropertyLayoutConfig, AXPQueryView, AXPEntityPropertyView, AXPCategoryEntity, AXPEntityPropertyGroup, AXPEntityMasterCreateLayoutView, AXPEntityMasterUpdateLayoutView, AXPEntityMasterSingleLayoutView, AXPEntityDetailListView, AXPQueryFilter } from '@acorex/platform/common';
|
|
6
6
|
import { AXPMetaData, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPQueryRequest, AXPPagedListResult, AXPAppStartUpService } from '@acorex/platform/core';
|
|
7
7
|
import * as i3 from '@acorex/platform/layout/builder';
|
|
8
8
|
import { AXPWidgetColumnNode, AXPWidgetNode, AXPLayoutBuilderService } from '@acorex/platform/layout/builder';
|
|
@@ -112,7 +112,7 @@ declare class AXPEntityCreateViewElementViewModel {
|
|
|
112
112
|
description: _angular_core.WritableSignal<string | undefined>;
|
|
113
113
|
editable: _angular_core.Signal<boolean>;
|
|
114
114
|
isRequired: _angular_core.Signal<boolean>;
|
|
115
|
-
layout: _angular_core.Signal<
|
|
115
|
+
layout: _angular_core.Signal<AXPEntityPropertyLayoutConfig>;
|
|
116
116
|
node: _angular_core.Signal<AXPWidgetNode>;
|
|
117
117
|
}
|
|
118
118
|
declare class AXPEntityMasterCreateViewModel {
|
|
@@ -250,6 +250,7 @@ declare class AXPEntityMasterSingleViewGroupViewModel {
|
|
|
250
250
|
group: _acorex_platform_common.AXPEntityPropertyGroup;
|
|
251
251
|
name: _angular_core.WritableSignal<string>;
|
|
252
252
|
isLoading: _angular_core.WritableSignal<boolean>;
|
|
253
|
+
type: _angular_core.WritableSignal<"wrapper" | "section">;
|
|
253
254
|
title: _angular_core.Signal<string>;
|
|
254
255
|
description: _angular_core.Signal<string | null | undefined>;
|
|
255
256
|
layout: _angular_core.Signal<AXPGridLayoutOptions>;
|
|
@@ -283,6 +284,7 @@ declare class AXPEntityMasterSingleViewModel {
|
|
|
283
284
|
private readonly destroyed;
|
|
284
285
|
private translateService;
|
|
285
286
|
private entityService;
|
|
287
|
+
private expressionEvaluator;
|
|
286
288
|
constructor(injector: Injector, config: AXPEntity, entityData: any);
|
|
287
289
|
context: _angular_core.WritableSignal<any>;
|
|
288
290
|
private actions;
|
|
@@ -293,6 +295,7 @@ declare class AXPEntityMasterSingleViewModel {
|
|
|
293
295
|
title: _angular_core.Signal<string>;
|
|
294
296
|
description: _angular_core.Signal<string | null>;
|
|
295
297
|
beardcrumbs: _angular_core.Signal<AXPBreadcrumbItem[]>;
|
|
298
|
+
private evaluateExpressions;
|
|
296
299
|
relatedEntities: _angular_core.Signal<Promise<AXPEntityDetailListViewModel[]>>;
|
|
297
300
|
executeCommand(commandName: string, data?: any): Promise<void>;
|
|
298
301
|
execute(command: AXPExecuteCommand): Promise<void>;
|
|
@@ -317,7 +320,7 @@ declare class AXPEntityMasterUpdateElementViewModel {
|
|
|
317
320
|
description: _angular_core.WritableSignal<string | undefined>;
|
|
318
321
|
editable: _angular_core.Signal<boolean>;
|
|
319
322
|
isRequired: _angular_core.Signal<boolean>;
|
|
320
|
-
layout: _angular_core.Signal<
|
|
323
|
+
layout: _angular_core.Signal<AXPEntityPropertyLayoutConfig>;
|
|
321
324
|
node: _angular_core.Signal<AXPWidgetNode>;
|
|
322
325
|
}
|
|
323
326
|
declare class AXPEntityMasterUpdateViewModel {
|
|
@@ -595,6 +598,7 @@ declare class AXMEntityCrudServiceImpl<TKey, TDetailDto extends AXPEntityDetailD
|
|
|
595
598
|
deleteOne(id: TKey): Promise<void>;
|
|
596
599
|
updateOne(id: TKey, values: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
597
600
|
query(request?: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
601
|
+
findOne(filter: AXDataSourceFilterOption): Promise<TListItemDto>;
|
|
598
602
|
getRoots(request: {}): Promise<AXPPagedListResult<TListItemDto>>;
|
|
599
603
|
getChildren(request: {
|
|
600
604
|
parentId: TKey;
|
|
@@ -607,6 +611,296 @@ declare class AXMEntityCrudServiceImpl<TKey, TDetailDto extends AXPEntityDetailD
|
|
|
607
611
|
get storageService(): AXPEntityStorageService<any, any, any, any, any>;
|
|
608
612
|
}
|
|
609
613
|
|
|
614
|
+
/**
|
|
615
|
+
* Context object for entity storage operations
|
|
616
|
+
*/
|
|
617
|
+
interface AXPEntityStorageContext<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
|
|
618
|
+
/** Operation type being performed */
|
|
619
|
+
operation: 'getOne' | 'getAll' | 'insertOne' | 'updateOne' | 'deleteOne' | 'query' | 'initial';
|
|
620
|
+
/** Entity name */
|
|
621
|
+
entityName: string;
|
|
622
|
+
/** Database name */
|
|
623
|
+
dbName: string;
|
|
624
|
+
/** Input parameters for the operation */
|
|
625
|
+
input: {
|
|
626
|
+
id?: TKey;
|
|
627
|
+
entity?: TCreateDto;
|
|
628
|
+
keyValues?: Omit<Partial<TUpdateDto>, 'id'>;
|
|
629
|
+
request?: AXPQueryRequest;
|
|
630
|
+
collection?: TCreateDto[];
|
|
631
|
+
options?: {
|
|
632
|
+
mergeType?: 'merge' | 'replace';
|
|
633
|
+
uniqueKeys?: string[];
|
|
634
|
+
};
|
|
635
|
+
};
|
|
636
|
+
/** Metadata for the operation */
|
|
637
|
+
metadata: {
|
|
638
|
+
startTime: number;
|
|
639
|
+
requestId: string;
|
|
640
|
+
user?: any;
|
|
641
|
+
[key: string]: any;
|
|
642
|
+
};
|
|
643
|
+
}
|
|
644
|
+
/**
|
|
645
|
+
* Entity Storage Middleware function type
|
|
646
|
+
*/
|
|
647
|
+
type AXPEntityStorageMiddleware<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any, TResult = any> = (context: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>, next: (context: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>) => Promise<TResult>) => Promise<TResult>;
|
|
648
|
+
/**
|
|
649
|
+
* Compose entity storage middlewares into a pipeline
|
|
650
|
+
*/
|
|
651
|
+
declare function composeEntityStorageMiddlewares<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any, TResult = any>(middlewares: AXPEntityStorageMiddleware<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto, TResult>[]): (handler: (context: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>) => Promise<TResult>) => (context: AXPEntityStorageContext<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>) => Promise<TResult>;
|
|
652
|
+
/**
|
|
653
|
+
* Helper function to generate unique request ID
|
|
654
|
+
*/
|
|
655
|
+
declare function generateRequestId(): string;
|
|
656
|
+
|
|
657
|
+
/**
|
|
658
|
+
* Registry for managing entity storage middlewares
|
|
659
|
+
*/
|
|
660
|
+
declare class AXPEntityStorageRegistry {
|
|
661
|
+
private globalMiddlewares;
|
|
662
|
+
private entitySpecificMiddlewares;
|
|
663
|
+
private operationSpecificMiddlewares;
|
|
664
|
+
/**
|
|
665
|
+
* Add a global middleware that applies to all operations
|
|
666
|
+
*/
|
|
667
|
+
useGlobal(middleware: AXPEntityStorageMiddleware): void;
|
|
668
|
+
/**
|
|
669
|
+
* Add middleware for specific entity
|
|
670
|
+
*/
|
|
671
|
+
useForEntity(entityName: string, middleware: AXPEntityStorageMiddleware): void;
|
|
672
|
+
/**
|
|
673
|
+
* Add middleware for specific operation (getOne, insertOne, etc.)
|
|
674
|
+
*/
|
|
675
|
+
useForOperation(operation: string, middleware: AXPEntityStorageMiddleware): void;
|
|
676
|
+
/**
|
|
677
|
+
* Get all applicable middlewares for a given context
|
|
678
|
+
*/
|
|
679
|
+
getMiddlewares(entityName: string, operation: string): AXPEntityStorageMiddleware[];
|
|
680
|
+
/**
|
|
681
|
+
* Get all global middlewares
|
|
682
|
+
*/
|
|
683
|
+
getGlobalMiddlewares(): readonly AXPEntityStorageMiddleware[];
|
|
684
|
+
/**
|
|
685
|
+
* Remove middleware from global middlewares
|
|
686
|
+
*/
|
|
687
|
+
removeGlobalMiddleware(middleware: AXPEntityStorageMiddleware): boolean;
|
|
688
|
+
/**
|
|
689
|
+
* Clear all middlewares
|
|
690
|
+
*/
|
|
691
|
+
clear(): void;
|
|
692
|
+
/**
|
|
693
|
+
* Get registered entity names that have specific middlewares
|
|
694
|
+
*/
|
|
695
|
+
getRegisteredEntityNames(): string[];
|
|
696
|
+
/**
|
|
697
|
+
* Get registered operation names that have specific middlewares
|
|
698
|
+
*/
|
|
699
|
+
getRegisteredOperations(): string[];
|
|
700
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityStorageRegistry, never>;
|
|
701
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityStorageRegistry>;
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
/**
|
|
705
|
+
* Executor that wraps entity storage operations with middleware pipeline
|
|
706
|
+
*/
|
|
707
|
+
declare class AXPEntityStorageExecutor<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> {
|
|
708
|
+
private storageService;
|
|
709
|
+
private readonly injector;
|
|
710
|
+
private readonly registry;
|
|
711
|
+
constructor(storageService: AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>);
|
|
712
|
+
/**
|
|
713
|
+
* Execute getOne operation with middleware pipeline
|
|
714
|
+
*/
|
|
715
|
+
getOne(entityName: string, id: TKey): Promise<TDetailDto>;
|
|
716
|
+
/**
|
|
717
|
+
* Execute getAll operation with middleware pipeline
|
|
718
|
+
*/
|
|
719
|
+
getAll(entityName: string): Promise<TListItemDto[]>;
|
|
720
|
+
/**
|
|
721
|
+
* Execute insertOne operation with middleware pipeline
|
|
722
|
+
*/
|
|
723
|
+
insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;
|
|
724
|
+
/**
|
|
725
|
+
* Execute updateOne operation with middleware pipeline
|
|
726
|
+
*/
|
|
727
|
+
updateOne(entityName: string, id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
728
|
+
/**
|
|
729
|
+
* Execute deleteOne operation with middleware pipeline
|
|
730
|
+
*/
|
|
731
|
+
deleteOne(entityName: string, id: TKey): Promise<void>;
|
|
732
|
+
/**
|
|
733
|
+
* Execute query operation with middleware pipeline
|
|
734
|
+
*/
|
|
735
|
+
query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
736
|
+
/**
|
|
737
|
+
* Execute initial operation with middleware pipeline
|
|
738
|
+
*/
|
|
739
|
+
initial(entityName: string, collection: TCreateDto[], options?: {
|
|
740
|
+
mergeType?: 'merge' | 'replace';
|
|
741
|
+
uniqueKeys?: string[];
|
|
742
|
+
}): Promise<TCreateDto[]>;
|
|
743
|
+
/**
|
|
744
|
+
* Execute operation with middleware pipeline
|
|
745
|
+
*/
|
|
746
|
+
private executeWithMiddleware;
|
|
747
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityStorageExecutor<any, any, any, any, any>, never>;
|
|
748
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityStorageExecutor<any, any, any, any, any>>;
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
/**
|
|
752
|
+
* Entity Storage Service with middleware support
|
|
753
|
+
*
|
|
754
|
+
* This service wraps the original AXPEntityStorageService and adds middleware pipeline support.
|
|
755
|
+
* It delegates all operations to the middleware executor which applies the middleware chain.
|
|
756
|
+
*/
|
|
757
|
+
declare class AXPEntityStorageWithMiddlewareService<TKey = any, TDetailDto extends AXPEntityDetailDto<TKey> = any, TListItemDto extends AXPEntityListItemDto<TKey> = any, TCreateDto extends AXPEntityCreateDto = any, TUpdateDto extends AXPEntityUpdateDto<TKey> = any> extends AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto> {
|
|
758
|
+
private originalStorageService;
|
|
759
|
+
private registry;
|
|
760
|
+
private executor;
|
|
761
|
+
constructor(originalStorageService: AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>, registry: AXPEntityStorageRegistry);
|
|
762
|
+
get dbName(): string;
|
|
763
|
+
/**
|
|
764
|
+
* Add a global middleware that applies to all operations
|
|
765
|
+
*/
|
|
766
|
+
useGlobal(middleware: AXPEntityStorageMiddleware): void;
|
|
767
|
+
/**
|
|
768
|
+
* Add middleware for specific entity
|
|
769
|
+
*/
|
|
770
|
+
useForEntity(entityName: string, middleware: AXPEntityStorageMiddleware): void;
|
|
771
|
+
/**
|
|
772
|
+
* Add middleware for specific operation
|
|
773
|
+
*/
|
|
774
|
+
useForOperation(operation: string, middleware: AXPEntityStorageMiddleware): void;
|
|
775
|
+
initial(entityName: string, collection: TCreateDto[], options?: {
|
|
776
|
+
mergeType?: 'merge' | 'replace';
|
|
777
|
+
uniqueKeys?: string[];
|
|
778
|
+
}): Promise<TCreateDto[]>;
|
|
779
|
+
getOne(entityName: string, id: TKey): Promise<TDetailDto>;
|
|
780
|
+
updateOne(entityName: string, id: TKey, keyValues: Omit<Partial<TUpdateDto>, 'id'>): Promise<TDetailDto>;
|
|
781
|
+
deleteOne(entityName: string, id: TKey): Promise<void>;
|
|
782
|
+
insertOne(entityName: string, entity: TCreateDto): Promise<TKey>;
|
|
783
|
+
getAll(entityName: string): Promise<TListItemDto[]>;
|
|
784
|
+
query(entityName: string, request: AXPQueryRequest): Promise<AXPPagedListResult<TListItemDto>>;
|
|
785
|
+
get originalService(): AXPEntityStorageService<TKey, TDetailDto, TListItemDto, TCreateDto, TUpdateDto>;
|
|
786
|
+
get middlewareRegistry(): AXPEntityStorageRegistry;
|
|
787
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityStorageWithMiddlewareService<any, any, any, any, any>, never>;
|
|
788
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityStorageWithMiddlewareService<any, any, any, any, any>>;
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
/**
|
|
792
|
+
* Injection token for entity storage middleware setup
|
|
793
|
+
*/
|
|
794
|
+
declare const AXP_ENTITY_STORAGE_MIDDLEWARE_SETUP: InjectionToken<void>;
|
|
795
|
+
/**
|
|
796
|
+
* Injection token for entity storage middleware extensions
|
|
797
|
+
*/
|
|
798
|
+
declare const AXP_ENTITY_STORAGE_EXTENSION: InjectionToken<{
|
|
799
|
+
target: string | RegExp;
|
|
800
|
+
middleware: AXPEntityStorageMiddleware;
|
|
801
|
+
}>;
|
|
802
|
+
/**
|
|
803
|
+
* Configuration for entity-specific middleware
|
|
804
|
+
*/
|
|
805
|
+
interface AXPEntityStorageMiddlewareConfig {
|
|
806
|
+
/** Global middlewares that apply to all operations */
|
|
807
|
+
global?: AXPEntityStorageMiddleware[];
|
|
808
|
+
/** Entity-specific middlewares */
|
|
809
|
+
entities?: {
|
|
810
|
+
[entityName: string]: AXPEntityStorageMiddleware[];
|
|
811
|
+
};
|
|
812
|
+
/** Operation-specific middlewares */
|
|
813
|
+
operations?: {
|
|
814
|
+
[operation: string]: AXPEntityStorageMiddleware[];
|
|
815
|
+
};
|
|
816
|
+
/** Advanced middleware configurations with targets */
|
|
817
|
+
extensions?: {
|
|
818
|
+
target: string | RegExp;
|
|
819
|
+
middleware: AXPEntityStorageMiddleware;
|
|
820
|
+
}[];
|
|
821
|
+
}
|
|
822
|
+
/**
|
|
823
|
+
* Provide entity storage middleware configuration
|
|
824
|
+
*/
|
|
825
|
+
declare function provideEntityStorageMiddleware(config: AXPEntityStorageMiddlewareConfig): EnvironmentProviders;
|
|
826
|
+
/**
|
|
827
|
+
* Simplified provider for global middleware only
|
|
828
|
+
*/
|
|
829
|
+
declare function provideGlobalEntityStorageMiddleware(middlewares: AXPEntityStorageMiddleware[]): EnvironmentProviders;
|
|
830
|
+
/**
|
|
831
|
+
* Provider for entity-specific middlewares
|
|
832
|
+
*/
|
|
833
|
+
declare function provideEntitySpecificMiddleware(entityName: string, middlewares: AXPEntityStorageMiddleware[]): EnvironmentProviders;
|
|
834
|
+
/**
|
|
835
|
+
* Provider for operation-specific middlewares
|
|
836
|
+
*/
|
|
837
|
+
declare function provideOperationSpecificMiddleware(operation: string, middlewares: AXPEntityStorageMiddleware[]): EnvironmentProviders;
|
|
838
|
+
|
|
839
|
+
/**
|
|
840
|
+
* Logging middleware for entity storage operations
|
|
841
|
+
*/
|
|
842
|
+
declare const loggingMiddleware: AXPEntityStorageMiddleware;
|
|
843
|
+
/**
|
|
844
|
+
* Performance monitoring middleware
|
|
845
|
+
*/
|
|
846
|
+
declare const performanceMiddleware: AXPEntityStorageMiddleware;
|
|
847
|
+
/**
|
|
848
|
+
* Error handling middleware with retry logic
|
|
849
|
+
*/
|
|
850
|
+
declare const errorHandlingMiddleware: AXPEntityStorageMiddleware;
|
|
851
|
+
/**
|
|
852
|
+
* Validation middleware
|
|
853
|
+
*/
|
|
854
|
+
declare const validationMiddleware: AXPEntityStorageMiddleware;
|
|
855
|
+
/**
|
|
856
|
+
* Caching middleware (simple in-memory cache)
|
|
857
|
+
*/
|
|
858
|
+
declare const cachingMiddleware: AXPEntityStorageMiddleware;
|
|
859
|
+
|
|
860
|
+
/**
|
|
861
|
+
* Audit trail entry interface
|
|
862
|
+
*/
|
|
863
|
+
interface AXPAuditEntry {
|
|
864
|
+
id: string;
|
|
865
|
+
entityName: string;
|
|
866
|
+
operation: string;
|
|
867
|
+
entityId?: any;
|
|
868
|
+
changes?: any;
|
|
869
|
+
user?: string;
|
|
870
|
+
timestamp: Date;
|
|
871
|
+
requestId: string;
|
|
872
|
+
metadata?: any;
|
|
873
|
+
}
|
|
874
|
+
/**
|
|
875
|
+
* Audit trail storage interface
|
|
876
|
+
*/
|
|
877
|
+
interface AXPAuditStorage {
|
|
878
|
+
save(entry: AXPAuditEntry): Promise<void>;
|
|
879
|
+
}
|
|
880
|
+
/**
|
|
881
|
+
* Simple in-memory audit storage (for demo purposes)
|
|
882
|
+
*/
|
|
883
|
+
declare class InMemoryAuditStorage implements AXPAuditStorage {
|
|
884
|
+
private entries;
|
|
885
|
+
save(entry: AXPAuditEntry): Promise<void>;
|
|
886
|
+
getEntries(): AXPAuditEntry[];
|
|
887
|
+
getEntriesForEntity(entityName: string): AXPAuditEntry[];
|
|
888
|
+
clear(): void;
|
|
889
|
+
}
|
|
890
|
+
declare const auditStorage: InMemoryAuditStorage;
|
|
891
|
+
/**
|
|
892
|
+
* Audit middleware that tracks all entity operations
|
|
893
|
+
*/
|
|
894
|
+
declare const auditMiddleware: AXPEntityStorageMiddleware;
|
|
895
|
+
/**
|
|
896
|
+
* User context middleware - adds user information to context
|
|
897
|
+
*/
|
|
898
|
+
declare const userContextMiddleware: AXPEntityStorageMiddleware;
|
|
899
|
+
/**
|
|
900
|
+
* Data sanitization middleware - removes sensitive data from logs
|
|
901
|
+
*/
|
|
902
|
+
declare const dataSanitizationMiddleware: AXPEntityStorageMiddleware;
|
|
903
|
+
|
|
610
904
|
interface AXPEntityConfigs {
|
|
611
905
|
viewers: {
|
|
612
906
|
root: () => Type<any> | Promise<Type<any>>;
|
|
@@ -781,10 +1075,11 @@ declare function entityMasterBulkDeleteAction(): AXPEntityAction;
|
|
|
781
1075
|
declare function entityMasterViewAction(): AXPEntityAction;
|
|
782
1076
|
declare function entityMasterDeleteAction(): AXPEntityAction;
|
|
783
1077
|
declare function entityMasterCrudActions(): AXPEntityAction[];
|
|
1078
|
+
declare function entityMasterRecordActions(): AXPEntityAction[];
|
|
784
1079
|
declare function entityDetailsCreateActions(parentId: string): AXPEntityAction;
|
|
785
1080
|
declare function entityDetailsSimpleCondition(fk: string): AXPQueryFilter;
|
|
786
1081
|
declare function entityDetailsEditAction(): AXPEntityAction;
|
|
787
1082
|
declare function entityDetailsCrudActions(parentId: string): AXPEntityAction[];
|
|
788
1083
|
|
|
789
|
-
export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPModifyEntitySectionWorkflow, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, createModifierContext, entityDetailsCreateActions, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterViewAction };
|
|
790
|
-
export type { AXPAuditable, AXPDataSeeder, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityListItemDto, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityUpdateDto };
|
|
1084
|
+
export { AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEntityApplyUpdatesAction, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityMasterCreateViewModel, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityResolver, AXPEntityService, AXPEntityStorageExecutor, AXPEntityStorageRegistry, AXPEntityStorageService, AXPEntityStorageWithMiddlewareService, AXPModifyEntitySectionWorkflow, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_EXTENSION, AXP_ENTITY_STORAGE_MIDDLEWARE_SETUP, auditMiddleware, auditStorage, cachingMiddleware, composeEntityStorageMiddlewares, createModifierContext, dataSanitizationMiddleware, entityDetailsCreateActions, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterRecordActions, entityMasterViewAction, errorHandlingMiddleware, generateRequestId, loggingMiddleware, performanceMiddleware, provideEntitySpecificMiddleware, provideEntityStorageMiddleware, provideGlobalEntityStorageMiddleware, provideOperationSpecificMiddleware, userContextMiddleware, validationMiddleware };
|
|
1085
|
+
export type { AXPAuditEntry, AXPAuditStorage, AXPAuditable, AXPDataSeeder, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityListItemDto, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityStorageMiddlewareConfig, AXPEntityUpdateDto };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/platform",
|
|
3
|
-
"version": "20.2.0-next.
|
|
3
|
+
"version": "20.2.0-next.3",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=19.0.0",
|
|
6
6
|
"@angular/core": ">=19.0.0",
|
|
@@ -44,14 +44,14 @@
|
|
|
44
44
|
"types": "./auth/index.d.ts",
|
|
45
45
|
"default": "./fesm2022/acorex-platform-auth.mjs"
|
|
46
46
|
},
|
|
47
|
-
"./common": {
|
|
48
|
-
"types": "./common/index.d.ts",
|
|
49
|
-
"default": "./fesm2022/acorex-platform-common.mjs"
|
|
50
|
-
},
|
|
51
47
|
"./core": {
|
|
52
48
|
"types": "./core/index.d.ts",
|
|
53
49
|
"default": "./fesm2022/acorex-platform-core.mjs"
|
|
54
50
|
},
|
|
51
|
+
"./common": {
|
|
52
|
+
"types": "./common/index.d.ts",
|
|
53
|
+
"default": "./fesm2022/acorex-platform-common.mjs"
|
|
54
|
+
},
|
|
55
55
|
"./domain": {
|
|
56
56
|
"types": "./domain/index.d.ts",
|
|
57
57
|
"default": "./fesm2022/acorex-platform-domain.mjs"
|