@acorex/platform 20.3.0-next.20 → 20.3.0-next.21
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/core/index.d.ts +14 -1
- package/fesm2022/acorex-platform-auth.mjs +19 -19
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +126 -105
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +55 -42
- 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 +182 -159
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +542 -2387
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +72 -72
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-entity-create-entity.command-BXExgI3W.mjs → acorex-platform-layout-entity-create-entity.command-DyXF9zAh.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-entity-create-entity.command-BXExgI3W.mjs.map → acorex-platform-layout-entity-create-entity.command-DyXF9zAh.mjs.map} +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +156 -156
- 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-layout-widget-core.mjs +73 -73
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-BzsfTNs2.mjs → acorex-platform-layout-widgets-button-widget-designer.component-C_3IWNkj.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-BzsfTNs2.mjs.map → acorex-platform-layout-widgets-button-widget-designer.component-C_3IWNkj.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-Dvk76-2W.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CJltEgut.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-Dvk76-2W.mjs.map → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CJltEgut.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-BYLaipWi.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-pM-TIuk0.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-BYLaipWi.mjs.map → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-pM-TIuk0.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-DcSllNik.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-BqI96-fU.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-DcSllNik.mjs.map → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-BqI96-fU.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-view.component-BT-U4BiA.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-C-AhenaM.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-view.component-BT-U4BiA.mjs.map → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-C-AhenaM.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-edit.component-Il7jnRBg.mjs → acorex-platform-layout-widgets-extra-properties-widget-edit.component-DCAya5ne.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-edit.component-Il7jnRBg.mjs.map → acorex-platform-layout-widgets-extra-properties-widget-edit.component-DCAya5ne.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-view.component-CBEPu7Fl.mjs → acorex-platform-layout-widgets-extra-properties-widget-view.component-D-PnBqLb.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-view.component-CBEPu7Fl.mjs.map → acorex-platform-layout-widgets-extra-properties-widget-view.component-D-PnBqLb.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-BPzn8lr3.mjs → acorex-platform-layout-widgets-file-list-popup.component-DuuFHWvB.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-BPzn8lr3.mjs.map → acorex-platform-layout-widgets-file-list-popup.component-DuuFHWvB.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-C_JrGoXy.mjs → acorex-platform-layout-widgets-page-widget-designer.component-Bss0xUcu.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-C_JrGoXy.mjs.map → acorex-platform-layout-widgets-page-widget-designer.component-Bss0xUcu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-C6DaBt_N.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-Cy9mHnNP.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-C6DaBt_N.mjs.map → acorex-platform-layout-widgets-tabular-data-edit-popup.component-Cy9mHnNP.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-Bth3jI9T.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DznLtuer.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-Bth3jI9T.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-DznLtuer.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-CUHptbP4.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-ndOUSFi9.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-CUHptbP4.mjs.map → acorex-platform-layout-widgets-text-block-widget-designer.component-ndOUSFi9.mjs.map} +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +742 -892
- package/fesm2022/acorex-platform-layout-widgets.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-entity-master-create-view.component-eGzN6g2Y.mjs → acorex-platform-themes-default-entity-master-create-view.component-Fnj54AxV.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-eGzN6g2Y.mjs.map → acorex-platform-themes-default-entity-master-create-view.component-Fnj54AxV.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-nDHfQQ3O.mjs → acorex-platform-themes-default-entity-master-list-view.component-C60W6UnN.mjs} +60 -13
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-C60W6UnN.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-HJyalvcu.mjs → acorex-platform-themes-default-entity-master-modify-view.component-B3NyKGIG.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-HJyalvcu.mjs.map → acorex-platform-themes-default-entity-master-modify-view.component-B3NyKGIG.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-e7m70Wls.mjs → acorex-platform-themes-default-entity-master-single-view.component-B8gx5cG7.mjs} +7 -7
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-e7m70Wls.mjs.map → acorex-platform-themes-default-entity-master-single-view.component-B8gx5cG7.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-401.component-CoBaQFTn.mjs → acorex-platform-themes-default-error-401.component-CcvGfdhu.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-401.component-CoBaQFTn.mjs.map → acorex-platform-themes-default-error-401.component-CcvGfdhu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BLlVOsS2.mjs → acorex-platform-themes-default-error-404.component-4-CaEsnV.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BLlVOsS2.mjs.map → acorex-platform-themes-default-error-404.component-4-CaEsnV.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-CybYQI9F.mjs → acorex-platform-themes-default-error-offline.component-BNecbFEj.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-CybYQI9F.mjs.map → acorex-platform-themes-default-error-offline.component-BNecbFEj.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-icon-chooser-view.component-ReKSoVeN.mjs → acorex-platform-themes-shared-icon-chooser-view.component-Dc_Txe32.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-ReKSoVeN.mjs.map → acorex-platform-themes-shared-icon-chooser-view.component-Dc_Txe32.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-B2HDyY2z.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-hgWLhhle.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-B2HDyY2z.mjs.map → acorex-platform-themes-shared-theme-color-chooser-column.component-hgWLhhle.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CeZxa49U.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-CY3JZK_W.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CeZxa49U.mjs.map → acorex-platform-themes-shared-theme-color-chooser-view.component-CY3JZK_W.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-workflow.mjs +25 -25
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/README.md +1577 -2
- package/layout/builder/index.d.ts +182 -125
- package/layout/components/index.d.ts +8 -805
- package/layout/entity/index.d.ts +2 -2
- package/layout/widgets/index.d.ts +11 -36
- package/package.json +9 -9
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-nDHfQQ3O.mjs.map +0 -1
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnInit, OnDestroy, Type, ViewContainerRef, ModuleWithProviders, WritableSignal, QueryList, EventEmitter } from '@angular/core';
|
|
3
3
|
import * as _acorex_platform_core from '@acorex/platform/core';
|
|
4
|
-
import { AXPActivityLog, AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPContextData, AXPOptionsData, AXPGridLayoutOptions,
|
|
4
|
+
import { AXPActivityLog, AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPContextData, AXPOptionsData, AXPGridLayoutOptions, AXPFilterDefinition, AXPFilterQuery, AXPSortDefinition, AXPSortQuery, AXPMetaData, AXPViewQuery } from '@acorex/platform/core';
|
|
5
5
|
import { AXPMenuItem } from '@acorex/platform/common';
|
|
6
|
-
import
|
|
7
|
-
import { AXValueChangedEvent, AXClickEvent, AXDataSource, AXDataSourceFilterOption, AXOrientation, AXHtmlEvent, AXEvent } from '@acorex/cdk/common';
|
|
6
|
+
import { AXValueChangedEvent, AXClickEvent, AXDataSource, AXDataSourceFilterOption, AXHtmlEvent, AXEvent } from '@acorex/cdk/common';
|
|
8
7
|
import { AXTreeViewComponent, AXTreeItemClickBaseEvent } from '@acorex/components/tree-view';
|
|
9
8
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
10
9
|
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
11
|
-
import { AXPWidgetNode, AXPWidgetCoreContextChangeEvent,
|
|
10
|
+
import { AXPWidgetNode, AXPWidgetCoreContextChangeEvent, AXPWidgetProperty, AXPWidgetConfig } from '@acorex/platform/layout/widget-core';
|
|
12
11
|
import * as _ngrx_signals from '@ngrx/signals';
|
|
13
12
|
import { AXDataTableComponent, AXDataTableRowDbClick, AXDataTableRowClick } from '@acorex/components/data-table';
|
|
14
13
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
15
|
-
import {
|
|
16
|
-
import * as _acorex_platform_layout_components from '@acorex/platform/layout/components';
|
|
17
|
-
import { AXFormComponent } from '@acorex/components/form';
|
|
14
|
+
import { AXPDynamicFormFieldDefinition, AXPDynamicFormGroupDefinition, AXPDynamicFormDefinition } from '@acorex/platform/layout/builder';
|
|
18
15
|
import { AXPopoverComponent } from '@acorex/components/popover';
|
|
19
16
|
import { AXTagBoxComponent } from '@acorex/components/tag-box';
|
|
20
17
|
import { AXCalendarService } from '@acorex/core/date-time';
|
|
21
18
|
import { AXTabStripChangedEvent, AXTabsComponent } from '@acorex/components/tabs';
|
|
19
|
+
import { AXFormComponent } from '@acorex/components/form';
|
|
20
|
+
import { AXPopupSizeType, AXPopupService } from '@acorex/components/popup';
|
|
22
21
|
import { Observable } from 'rxjs';
|
|
23
22
|
|
|
24
23
|
declare class AXPActivityLogComponent {
|
|
@@ -541,801 +540,6 @@ declare class AXPDataSelectorService {
|
|
|
541
540
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDataSelectorService>;
|
|
542
541
|
}
|
|
543
542
|
|
|
544
|
-
/**
|
|
545
|
-
* Form appearance and density styling (using fieldset widget look)
|
|
546
|
-
*/
|
|
547
|
-
type AXPDynamicFormLook = 'fieldset' | 'card' | 'group' | 'container';
|
|
548
|
-
/**
|
|
549
|
-
* Form rendering mode
|
|
550
|
-
*/
|
|
551
|
-
type AXPDynamicFormMode = 'view' | 'edit';
|
|
552
|
-
/**
|
|
553
|
-
* Form layout direction and flow
|
|
554
|
-
*/
|
|
555
|
-
type AXPDynamicFormDirection = 'vertical' | 'horizontal' | 'grid';
|
|
556
|
-
interface AXPDynamicFormFieldDefinition {
|
|
557
|
-
path: string;
|
|
558
|
-
title?: string;
|
|
559
|
-
description?: string;
|
|
560
|
-
widget: AXPWidgetNode;
|
|
561
|
-
/**
|
|
562
|
-
* Optional per-field rendering mode. Takes precedence over section and form modes.
|
|
563
|
-
*/
|
|
564
|
-
mode?: AXPDynamicFormMode;
|
|
565
|
-
layout?: AXPGridLayoutOptions;
|
|
566
|
-
}
|
|
567
|
-
interface AXPDynamicFormGroupDefinition {
|
|
568
|
-
name: string;
|
|
569
|
-
title?: string;
|
|
570
|
-
description?: string;
|
|
571
|
-
parameters: AXPDynamicFormFieldDefinition[];
|
|
572
|
-
/**
|
|
573
|
-
* Optional per-section rendering mode. Takes precedence over form mode and is overridden by field mode.
|
|
574
|
-
*/
|
|
575
|
-
mode?: AXPDynamicFormMode;
|
|
576
|
-
}
|
|
577
|
-
interface AXPDynamicFormDefinition {
|
|
578
|
-
groups: AXPDynamicFormGroupDefinition[];
|
|
579
|
-
/**
|
|
580
|
-
* Optional form-level rendering mode
|
|
581
|
-
*/
|
|
582
|
-
mode?: AXPDynamicFormMode;
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
/**
|
|
586
|
-
* Describes a single step of the dynamic form stepper.
|
|
587
|
-
* Each step contains one or more groups rendered by AXPDynamicFormComponent.
|
|
588
|
-
*/
|
|
589
|
-
interface AXPDynamicFormStepperStepDefinition {
|
|
590
|
-
/** Unique identifier for the step */
|
|
591
|
-
id: string;
|
|
592
|
-
/** Display title for the step */
|
|
593
|
-
title?: string;
|
|
594
|
-
/** Optional descriptive text for the step */
|
|
595
|
-
description?: string;
|
|
596
|
-
/** Optional icon name for the step header */
|
|
597
|
-
icon?: string;
|
|
598
|
-
/** Field groups to render in this step */
|
|
599
|
-
groups: AXPDynamicFormGroupDefinition[];
|
|
600
|
-
/** Optional layout direction override for this step's form */
|
|
601
|
-
formDirection?: AXPDynamicFormDirection;
|
|
602
|
-
/** Whether the user may skip this step (defaults to false) */
|
|
603
|
-
canSkip?: boolean;
|
|
604
|
-
/** Whether the user may navigate back from this step (defaults to true) */
|
|
605
|
-
canGoBack?: boolean;
|
|
606
|
-
/** Optional data path inside the shared context for this step's data */
|
|
607
|
-
dataPath?: string;
|
|
608
|
-
}
|
|
609
|
-
/**
|
|
610
|
-
* Root definition for the dynamic form stepper.
|
|
611
|
-
*/
|
|
612
|
-
interface AXPDynamicFormStepperDefinition {
|
|
613
|
-
/** Ordered collection of steps */
|
|
614
|
-
steps: AXPDynamicFormStepperStepDefinition[];
|
|
615
|
-
/** Enforce sequential navigation (no jumping to future steps) */
|
|
616
|
-
linear?: boolean;
|
|
617
|
-
/** Show progress indicator above the content */
|
|
618
|
-
showProgress?: boolean;
|
|
619
|
-
/** Show step numbers in the header */
|
|
620
|
-
showStepNumbers?: boolean;
|
|
621
|
-
}
|
|
622
|
-
|
|
623
|
-
declare class AXPDynamicFormStepperComponent {
|
|
624
|
-
#private;
|
|
625
|
-
/**
|
|
626
|
-
* Stepper definition providing steps metadata and behavior configuration
|
|
627
|
-
*/
|
|
628
|
-
definition: _angular_core.InputSignal<AXPDynamicFormStepperDefinition>;
|
|
629
|
-
/**
|
|
630
|
-
* Shared root context for all steps
|
|
631
|
-
*/
|
|
632
|
-
context: _angular_core.InputSignal<any>;
|
|
633
|
-
/**
|
|
634
|
-
* Optional pass-through layout props for inner forms
|
|
635
|
-
*/
|
|
636
|
-
layoutLook: _angular_core.InputSignal<AXPDynamicFormLook>;
|
|
637
|
-
stepperDirection: _angular_core.InputSignal<AXOrientation>;
|
|
638
|
-
layoutConfig: _angular_core.InputSignal<AXPGridLayoutOptions | undefined>;
|
|
639
|
-
/**
|
|
640
|
-
* Optional guard that controls advancing to the next step (async only)
|
|
641
|
-
*/
|
|
642
|
-
guardNext: _angular_core.InputSignal<((e: {
|
|
643
|
-
index: number;
|
|
644
|
-
id: string;
|
|
645
|
-
fullContext: any;
|
|
646
|
-
}) => Promise<boolean>) | undefined>;
|
|
647
|
-
/**
|
|
648
|
-
* Emits when the shared root context changes
|
|
649
|
-
*/
|
|
650
|
-
contextChange: _angular_core.OutputEmitterRef<any>;
|
|
651
|
-
/**
|
|
652
|
-
* Emits when the active step changes
|
|
653
|
-
*/
|
|
654
|
-
stepChange: _angular_core.OutputEmitterRef<{
|
|
655
|
-
index: number;
|
|
656
|
-
id: string;
|
|
657
|
-
}>;
|
|
658
|
-
/**
|
|
659
|
-
* Emits after successful finish
|
|
660
|
-
*/
|
|
661
|
-
finished: _angular_core.OutputEmitterRef<any>;
|
|
662
|
-
/**
|
|
663
|
-
* Emits when cancelled by API
|
|
664
|
-
*/
|
|
665
|
-
cancel: _angular_core.OutputEmitterRef<void>;
|
|
666
|
-
/**
|
|
667
|
-
* Emits when navigation is blocked by validation or policy
|
|
668
|
-
*/
|
|
669
|
-
navigationBlocked: _angular_core.OutputEmitterRef<{
|
|
670
|
-
reason: "invalid" | "linear" | "cannot-skip" | "cannot-go-back";
|
|
671
|
-
stepId: string;
|
|
672
|
-
targetIndex?: number;
|
|
673
|
-
}>;
|
|
674
|
-
/**
|
|
675
|
-
* Internal reactive copy of the shared context
|
|
676
|
-
*/
|
|
677
|
-
private internalContext;
|
|
678
|
-
/**
|
|
679
|
-
* Active step index
|
|
680
|
-
*/
|
|
681
|
-
protected currentStepIndex: _angular_core.WritableSignal<number>;
|
|
682
|
-
/**
|
|
683
|
-
* Navigation lock while async guards are pending
|
|
684
|
-
*/
|
|
685
|
-
private navigationLocked;
|
|
686
|
-
/**
|
|
687
|
-
* Reference to underlying step wizard to sync visual navigation
|
|
688
|
-
*/
|
|
689
|
-
private readonly wizard;
|
|
690
|
-
/**
|
|
691
|
-
* References to rendered dynamic forms (usually one active)
|
|
692
|
-
*/
|
|
693
|
-
private readonly forms;
|
|
694
|
-
protected steps: _angular_core.Signal<_acorex_platform_layout_components.AXPDynamicFormStepperStepDefinition[]>;
|
|
695
|
-
protected stepCount: _angular_core.Signal<number>;
|
|
696
|
-
protected currentStep: _angular_core.Signal<_acorex_platform_layout_components.AXPDynamicFormStepperStepDefinition>;
|
|
697
|
-
protected isFirstComputed: _angular_core.Signal<boolean>;
|
|
698
|
-
protected isLastComputed: _angular_core.Signal<boolean>;
|
|
699
|
-
/**
|
|
700
|
-
* Non-undefined layout config for inner dynamic forms
|
|
701
|
-
*/
|
|
702
|
-
protected effectiveLayoutConfig: _angular_core.Signal<AXPGridLayoutOptions>;
|
|
703
|
-
/**
|
|
704
|
-
* Returns the current step pointer
|
|
705
|
-
*/
|
|
706
|
-
getCurrentStep(): {
|
|
707
|
-
index: number;
|
|
708
|
-
id: string;
|
|
709
|
-
};
|
|
710
|
-
/**
|
|
711
|
-
* Public helpers for templates/consumers
|
|
712
|
-
*/
|
|
713
|
-
isFirst(): boolean;
|
|
714
|
-
isLast(): boolean;
|
|
715
|
-
/**
|
|
716
|
-
* Returns the root context
|
|
717
|
-
*/
|
|
718
|
-
getContext(): any;
|
|
719
|
-
/**
|
|
720
|
-
* Replaces the root context programmatically
|
|
721
|
-
*/
|
|
722
|
-
setContext(ctx: any): void;
|
|
723
|
-
/**
|
|
724
|
-
* Validates the current step.
|
|
725
|
-
*/
|
|
726
|
-
validateCurrentStep(): Promise<boolean>;
|
|
727
|
-
/**
|
|
728
|
-
* Attempts to advance to the next step applying validation and guard
|
|
729
|
-
*/
|
|
730
|
-
next(): Promise<void>;
|
|
731
|
-
/**
|
|
732
|
-
* Goes back to the previous step if possible
|
|
733
|
-
*/
|
|
734
|
-
previous(): Promise<void>;
|
|
735
|
-
/**
|
|
736
|
-
* Navigates to a specific step by id or index
|
|
737
|
-
*/
|
|
738
|
-
goTo(stepIdOrIndex: string | number): Promise<void>;
|
|
739
|
-
/**
|
|
740
|
-
* Validates all steps and emits finished when successful
|
|
741
|
-
*/
|
|
742
|
-
finish(): Promise<void>;
|
|
743
|
-
/**
|
|
744
|
-
* Emits cancel event without state changes
|
|
745
|
-
*/
|
|
746
|
-
cancelFlow(): void;
|
|
747
|
-
/**
|
|
748
|
-
* Handle per-step context changes and keep internal root context in sync.
|
|
749
|
-
*/
|
|
750
|
-
protected onStepContextChange(stepId: string, stepContext: any): void;
|
|
751
|
-
/**
|
|
752
|
-
* Exposes reading a step slice to the template
|
|
753
|
-
*/
|
|
754
|
-
readStepSlice(path?: string): {
|
|
755
|
-
slice: any;
|
|
756
|
-
exists: boolean;
|
|
757
|
-
};
|
|
758
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDynamicFormStepperComponent, never>;
|
|
759
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDynamicFormStepperComponent, "axp-dynamic-form-stepper", never, { "definition": { "alias": "definition"; "required": true; "isSignal": true; }; "context": { "alias": "context"; "required": true; "isSignal": true; }; "layoutLook": { "alias": "layoutLook"; "required": false; "isSignal": true; }; "stepperDirection": { "alias": "stepperDirection"; "required": false; "isSignal": true; }; "layoutConfig": { "alias": "layoutConfig"; "required": false; "isSignal": true; }; "guardNext": { "alias": "guardNext"; "required": false; "isSignal": true; }; }, { "contextChange": "contextChange"; "stepChange": "stepChange"; "finished": "finished"; "cancel": "cancel"; "navigationBlocked": "navigationBlocked"; }, never, never, true, never>;
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
interface AXPDynamicDialogConfig {
|
|
763
|
-
title: string;
|
|
764
|
-
message?: string;
|
|
765
|
-
/**
|
|
766
|
-
* Legacy: If provided, dialog renders only dynamic-form.
|
|
767
|
-
*/
|
|
768
|
-
formDefinition?: AXPDynamicFormDefinition;
|
|
769
|
-
/**
|
|
770
|
-
* Preferred definition: dynamic form (no steps or single step) or a multi-step stepper definition.
|
|
771
|
-
*/
|
|
772
|
-
definition?: AXPDynamicFormDefinition | AXPDynamicFormStepperDefinition;
|
|
773
|
-
/**
|
|
774
|
-
* Shared context passed to the rendered control
|
|
775
|
-
*/
|
|
776
|
-
context: any;
|
|
777
|
-
/**
|
|
778
|
-
* Shared layout options applied to form/stepper unless overridden
|
|
779
|
-
*/
|
|
780
|
-
layoutConfig?: AXPGridLayoutOptions;
|
|
781
|
-
layoutLook?: AXPDynamicFormLook;
|
|
782
|
-
mode?: AXPDynamicFormMode;
|
|
783
|
-
size?: AXPopupSizeType;
|
|
784
|
-
closeButton?: boolean;
|
|
785
|
-
/**
|
|
786
|
-
* Optional stepper-only options. Ignored when rendering dynamic-form.
|
|
787
|
-
*/
|
|
788
|
-
stepper?: {
|
|
789
|
-
guardNext?: (e: {
|
|
790
|
-
index: number;
|
|
791
|
-
id: string;
|
|
792
|
-
fullContext: unknown;
|
|
793
|
-
}) => Promise<boolean>;
|
|
794
|
-
stepperDirection?: AXOrientation;
|
|
795
|
-
};
|
|
796
|
-
/**
|
|
797
|
-
* Footer actions. In stepper mode, footer is replaced by Prev/Next/Confirm.
|
|
798
|
-
*/
|
|
799
|
-
actions?: {
|
|
800
|
-
footer?: {
|
|
801
|
-
prefix?: AXPActionMenuItem[];
|
|
802
|
-
suffix?: AXPActionMenuItem[];
|
|
803
|
-
};
|
|
804
|
-
};
|
|
805
|
-
}
|
|
806
|
-
interface AXPDynamicDialogResult {
|
|
807
|
-
context: any;
|
|
808
|
-
action?: string;
|
|
809
|
-
}
|
|
810
|
-
interface AXPDialogRef {
|
|
811
|
-
/**
|
|
812
|
-
* Manually close the dialog (optional - dialog closes automatically after user interaction)
|
|
813
|
-
*/
|
|
814
|
-
close(): void;
|
|
815
|
-
/**
|
|
816
|
-
* Get the form data from the dialog
|
|
817
|
-
*/
|
|
818
|
-
context(): any;
|
|
819
|
-
/**
|
|
820
|
-
* Get the action that was clicked by the user
|
|
821
|
-
*/
|
|
822
|
-
action(): string | undefined;
|
|
823
|
-
/**
|
|
824
|
-
* Set the loading state of the dialog
|
|
825
|
-
*/
|
|
826
|
-
setLoading(loading: boolean): void;
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
declare class AXPDynamicDialogComponent extends AXBasePageComponent {
|
|
830
|
-
config: AXPDynamicDialogConfig;
|
|
831
|
-
private readonly dynamicForm;
|
|
832
|
-
protected readonly stepper: _angular_core.Signal<AXPDynamicFormStepperComponent | undefined>;
|
|
833
|
-
isSubmitting: _angular_core.WritableSignal<boolean>;
|
|
834
|
-
private previousContext;
|
|
835
|
-
private formData;
|
|
836
|
-
dialogResult: AXPDynamicDialogResult | null;
|
|
837
|
-
isSubmittingFromDialog: boolean;
|
|
838
|
-
data: any;
|
|
839
|
-
callBack: (dialogRef: AXPDialogRef) => void;
|
|
840
|
-
/**
|
|
841
|
-
* Form context for widget container
|
|
842
|
-
*/
|
|
843
|
-
protected formContext: _angular_core.Signal<Record<string, any>>;
|
|
844
|
-
/**
|
|
845
|
-
* Combined loading state from both signal and dialog
|
|
846
|
-
*/
|
|
847
|
-
protected isFormLoading: _angular_core.Signal<boolean>;
|
|
848
|
-
protected defaultLayout: () => AXPGridLayoutOptions;
|
|
849
|
-
/**
|
|
850
|
-
* Determine rendering mode and effective definitions
|
|
851
|
-
*/
|
|
852
|
-
protected readonly hasLegacyForm: _angular_core.Signal<boolean>;
|
|
853
|
-
protected readonly providedDefinition: _angular_core.Signal<_acorex_platform_layout_components.AXPDynamicFormDefinition | _acorex_platform_layout_components.AXPDynamicFormStepperDefinition | undefined>;
|
|
854
|
-
protected readonly providedMode: _angular_core.Signal<_acorex_platform_layout_components.AXPDynamicFormMode>;
|
|
855
|
-
protected readonly isStepperDefinition: _angular_core.Signal<boolean>;
|
|
856
|
-
protected readonly shouldRenderForm: _angular_core.Signal<boolean>;
|
|
857
|
-
protected readonly effectiveFormDefinition: _angular_core.Signal<any>;
|
|
858
|
-
protected readonly resolvedFormDefinition: _angular_core.Signal<any>;
|
|
859
|
-
protected readonly effectiveLayoutLook: _angular_core.Signal<_acorex_platform_layout_components.AXPDynamicFormLook>;
|
|
860
|
-
protected readonly effectiveLayoutConfig: _angular_core.Signal<AXPGridLayoutOptions>;
|
|
861
|
-
protected readonly stepperGuardNext: _angular_core.Signal<((e: {
|
|
862
|
-
index: number;
|
|
863
|
-
id: string;
|
|
864
|
-
fullContext: unknown;
|
|
865
|
-
}) => Promise<boolean>) | undefined>;
|
|
866
|
-
protected readonly stepperDirection: _angular_core.Signal<_acorex_cdk_common.AXOrientation>;
|
|
867
|
-
protected readonly stepperDefinition: _angular_core.Signal<any>;
|
|
868
|
-
stepperIsFirst: _angular_core.Signal<boolean>;
|
|
869
|
-
stepperIsLast: _angular_core.Signal<boolean>;
|
|
870
|
-
/**
|
|
871
|
-
* Effective form direction when rendering dynamic-form (single-step or legacy form).
|
|
872
|
-
* If a single-step definition is provided and that step specifies formDirection, use it.
|
|
873
|
-
*/
|
|
874
|
-
protected readonly effectiveFormDirection: _angular_core.Signal<AXPDynamicFormDirection>;
|
|
875
|
-
/**
|
|
876
|
-
* Footer actions for dynamic button system
|
|
877
|
-
*/
|
|
878
|
-
protected footerPrefixActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
879
|
-
protected footerSuffixActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
880
|
-
protected visibleFooterPrefixActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
881
|
-
protected visibleFooterSuffixActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
882
|
-
protected hasFooterActions: _angular_core.Signal<boolean>;
|
|
883
|
-
/** Stepper footer: choose a single confirm action from provided suffix actions (first visible). */
|
|
884
|
-
protected confirmAction: _angular_core.Signal<AXPActionMenuItem | undefined>;
|
|
885
|
-
protected confirmActionTitle: _angular_core.Signal<string>;
|
|
886
|
-
ngOnInit(): void;
|
|
887
|
-
protected handleContextInitiated(context: any): void;
|
|
888
|
-
protected handleContextChanged(context: any): void;
|
|
889
|
-
/**
|
|
890
|
-
* Execute a dynamic action
|
|
891
|
-
*/
|
|
892
|
-
protected executeAction(action: AXPActionMenuItem): Promise<void>;
|
|
893
|
-
/**
|
|
894
|
-
* Execute a command
|
|
895
|
-
*/
|
|
896
|
-
protected executeCommand(command: AXPExecuteCommand): Promise<void>;
|
|
897
|
-
/**
|
|
898
|
-
* Check if form is valid
|
|
899
|
-
*/
|
|
900
|
-
protected isFormValid(): Promise<boolean>;
|
|
901
|
-
/** Stepper navigation handlers */
|
|
902
|
-
protected goPrev(): void;
|
|
903
|
-
protected goNext(): void;
|
|
904
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDynamicDialogComponent, never>;
|
|
905
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDynamicDialogComponent, "axp-dynamic-dialog", never, { "config": { "alias": "config"; "required": true; }; }, {}, never, never, true, never>;
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
declare class AXPDynamicDialogService {
|
|
909
|
-
private readonly popupService;
|
|
910
|
-
/**
|
|
911
|
-
* Show a dynamic dialog with the given configuration
|
|
912
|
-
* @param config Dialog configuration including fields, validation, and UI options
|
|
913
|
-
* @returns Promise resolving to dialog reference for controlling the dialog
|
|
914
|
-
*/
|
|
915
|
-
showDialog(config: AXPDynamicDialogConfig): Promise<AXPDialogRef>;
|
|
916
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDynamicDialogService, never>;
|
|
917
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDynamicDialogService>;
|
|
918
|
-
}
|
|
919
|
-
|
|
920
|
-
declare class AXPDynamicFormComponent implements OnInit {
|
|
921
|
-
#private;
|
|
922
|
-
private evaluatorService;
|
|
923
|
-
private formBuilderService;
|
|
924
|
-
/**
|
|
925
|
-
* Tracks the latest scheduled evaluation to ensure last-write-wins for async evaluate
|
|
926
|
-
*/
|
|
927
|
-
private evaluationRunId;
|
|
928
|
-
/**
|
|
929
|
-
* Form definition containing groups and fields OR widget tree
|
|
930
|
-
*/
|
|
931
|
-
data: _angular_core.InputSignal<AXPWidgetNode | AXPDynamicFormDefinition>;
|
|
932
|
-
/**
|
|
933
|
-
* Form context/model data
|
|
934
|
-
*/
|
|
935
|
-
context: _angular_core.InputSignal<any>;
|
|
936
|
-
/**
|
|
937
|
-
* Form appearance and density styling (normal, compact, spacious)
|
|
938
|
-
*/
|
|
939
|
-
layoutLook: _angular_core.InputSignal<AXPDynamicFormLook>;
|
|
940
|
-
/**
|
|
941
|
-
* Default form mode. Can be overridden by section/group and field.
|
|
942
|
-
*/
|
|
943
|
-
mode: _angular_core.InputSignal<AXPDynamicFormMode>;
|
|
944
|
-
/**
|
|
945
|
-
* Convert input data to widget tree
|
|
946
|
-
*/
|
|
947
|
-
private convertToWidgetTree;
|
|
948
|
-
protected widgetTree: _angular_core.WritableSignal<AXPWidgetNode | null>;
|
|
949
|
-
/**
|
|
950
|
-
* Convert and evaluate data when inputs change
|
|
951
|
-
*/
|
|
952
|
-
conversionEffect: _angular_core.EffectRef;
|
|
953
|
-
protected expressionEvaluator(expression: any, context: any): Promise<any>;
|
|
954
|
-
/**
|
|
955
|
-
* Apply layout look to all fieldset widgets in the widget tree
|
|
956
|
-
*/
|
|
957
|
-
private applyLayoutLookToWidgetTree;
|
|
958
|
-
/**
|
|
959
|
-
* Emitted when form context changes
|
|
960
|
-
*/
|
|
961
|
-
contextChange: _angular_core.OutputEmitterRef<any>;
|
|
962
|
-
/**
|
|
963
|
-
* Emitted when context change is initiated
|
|
964
|
-
*/
|
|
965
|
-
contextInitiated: _angular_core.OutputEmitterRef<any>;
|
|
966
|
-
/**
|
|
967
|
-
* Emitted when form becomes valid/invalid
|
|
968
|
-
*/
|
|
969
|
-
validityChange: _angular_core.OutputEmitterRef<boolean>;
|
|
970
|
-
private form;
|
|
971
|
-
private container;
|
|
972
|
-
/**
|
|
973
|
-
* Internal context signal for reactivity
|
|
974
|
-
*/
|
|
975
|
-
protected internalContext: _angular_core.WritableSignal<any>;
|
|
976
|
-
/**
|
|
977
|
-
* Host classes based on layout look and mode
|
|
978
|
-
*/
|
|
979
|
-
protected hostClasses: _angular_core.Signal<string>;
|
|
980
|
-
ngOnInit(): void;
|
|
981
|
-
/**
|
|
982
|
-
* Handle context change events from widget container
|
|
983
|
-
*/
|
|
984
|
-
protected handleContextChanged(event: AXPWidgetCoreContextChangeEvent): void;
|
|
985
|
-
/**
|
|
986
|
-
* Get the form component instance
|
|
987
|
-
*/
|
|
988
|
-
getForm(): AXFormComponent | undefined;
|
|
989
|
-
/**
|
|
990
|
-
* Get the widget container component instance
|
|
991
|
-
*/
|
|
992
|
-
getContainer(): AXPWidgetContainerComponent | undefined;
|
|
993
|
-
/**
|
|
994
|
-
* Get current form context
|
|
995
|
-
*/
|
|
996
|
-
getContext(): any;
|
|
997
|
-
/**
|
|
998
|
-
* Update form context programmatically
|
|
999
|
-
*/
|
|
1000
|
-
updateContext(context: any): void;
|
|
1001
|
-
/**
|
|
1002
|
-
* Get the current widget tree
|
|
1003
|
-
*/
|
|
1004
|
-
getWidgetTree(): AXPWidgetNode | null;
|
|
1005
|
-
/**
|
|
1006
|
-
* Validate the form
|
|
1007
|
-
*/
|
|
1008
|
-
validate(): Promise<boolean>;
|
|
1009
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDynamicFormComponent, never>;
|
|
1010
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPDynamicFormComponent, "axp-dynamic-form", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "context": { "alias": "context"; "required": true; "isSignal": true; }; "layoutLook": { "alias": "layoutLook"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, { "contextChange": "contextChange"; "contextInitiated": "contextInitiated"; "validityChange": "validityChange"; }, never, never, true, never>;
|
|
1011
|
-
}
|
|
1012
|
-
|
|
1013
|
-
interface TextBoxOptions {
|
|
1014
|
-
placeholder?: string;
|
|
1015
|
-
maxLength?: number;
|
|
1016
|
-
minLength?: number;
|
|
1017
|
-
mask?: string;
|
|
1018
|
-
disabled?: boolean;
|
|
1019
|
-
readonly?: boolean;
|
|
1020
|
-
validations?: AXPValidationRules;
|
|
1021
|
-
}
|
|
1022
|
-
interface LargeTextBoxOptions {
|
|
1023
|
-
placeholder?: string;
|
|
1024
|
-
maxLength?: number;
|
|
1025
|
-
minLength?: number;
|
|
1026
|
-
rows?: number;
|
|
1027
|
-
disabled?: boolean;
|
|
1028
|
-
readonly?: boolean;
|
|
1029
|
-
validations?: AXPValidationRules;
|
|
1030
|
-
}
|
|
1031
|
-
interface RichTextOptions {
|
|
1032
|
-
placeholder?: string;
|
|
1033
|
-
toolbar?: string[];
|
|
1034
|
-
height?: number;
|
|
1035
|
-
disabled?: boolean;
|
|
1036
|
-
readonly?: boolean;
|
|
1037
|
-
validations?: AXPValidationRules;
|
|
1038
|
-
}
|
|
1039
|
-
interface SelectBoxOptions<TItem extends Record<string, unknown> = Record<string, unknown>> {
|
|
1040
|
-
valueField: keyof TItem & string;
|
|
1041
|
-
textField: keyof TItem & string;
|
|
1042
|
-
dataSource: TItem[];
|
|
1043
|
-
multiple?: boolean;
|
|
1044
|
-
placeholder?: string;
|
|
1045
|
-
disabled?: boolean;
|
|
1046
|
-
readonly?: boolean;
|
|
1047
|
-
allowSearch?: boolean;
|
|
1048
|
-
validations?: AXPValidationRules;
|
|
1049
|
-
}
|
|
1050
|
-
interface LookupBoxOptions {
|
|
1051
|
-
entity: string;
|
|
1052
|
-
multiple?: boolean;
|
|
1053
|
-
expose?: Array<{
|
|
1054
|
-
source: string;
|
|
1055
|
-
target: string;
|
|
1056
|
-
}>;
|
|
1057
|
-
placeholder?: string;
|
|
1058
|
-
textField?: string;
|
|
1059
|
-
valueField?: string;
|
|
1060
|
-
look?: string;
|
|
1061
|
-
columns?: string[];
|
|
1062
|
-
allowClear?: boolean;
|
|
1063
|
-
disabled?: boolean;
|
|
1064
|
-
readonly?: boolean;
|
|
1065
|
-
validations?: AXPValidationRules;
|
|
1066
|
-
}
|
|
1067
|
-
interface NumberBoxOptions {
|
|
1068
|
-
minValue?: number;
|
|
1069
|
-
maxValue?: number;
|
|
1070
|
-
step?: number;
|
|
1071
|
-
format?: string;
|
|
1072
|
-
placeholder?: string;
|
|
1073
|
-
disabled?: boolean;
|
|
1074
|
-
readonly?: boolean;
|
|
1075
|
-
validations?: AXPValidationRules;
|
|
1076
|
-
}
|
|
1077
|
-
interface DateTimeBoxOptions {
|
|
1078
|
-
format?: string;
|
|
1079
|
-
min?: Date;
|
|
1080
|
-
max?: Date;
|
|
1081
|
-
showTime?: boolean;
|
|
1082
|
-
placeholder?: string;
|
|
1083
|
-
disabled?: boolean;
|
|
1084
|
-
readonly?: boolean;
|
|
1085
|
-
validations?: AXPValidationRules;
|
|
1086
|
-
}
|
|
1087
|
-
interface ToggleSwitchOptions {
|
|
1088
|
-
onText?: string;
|
|
1089
|
-
offText?: string;
|
|
1090
|
-
validations?: AXPValidationRules;
|
|
1091
|
-
}
|
|
1092
|
-
interface PasswordBoxOptions {
|
|
1093
|
-
placeholder?: string;
|
|
1094
|
-
maxLength?: number;
|
|
1095
|
-
minLength?: number;
|
|
1096
|
-
showToggle?: boolean;
|
|
1097
|
-
validations?: AXPValidationRules;
|
|
1098
|
-
}
|
|
1099
|
-
interface SelectionListOptions<TItem extends Record<string, unknown> = Record<string, unknown>> {
|
|
1100
|
-
valueField: keyof TItem & string;
|
|
1101
|
-
textField: keyof TItem & string;
|
|
1102
|
-
dataSource: TItem[];
|
|
1103
|
-
multiple?: boolean;
|
|
1104
|
-
placeholder?: string;
|
|
1105
|
-
disabled?: boolean;
|
|
1106
|
-
readonly?: boolean;
|
|
1107
|
-
validations?: AXPValidationRules;
|
|
1108
|
-
}
|
|
1109
|
-
interface ColorBoxOptions {
|
|
1110
|
-
defaultColor?: string;
|
|
1111
|
-
showAlpha?: boolean;
|
|
1112
|
-
disabled?: boolean;
|
|
1113
|
-
readonly?: boolean;
|
|
1114
|
-
validations?: AXPValidationRules;
|
|
1115
|
-
}
|
|
1116
|
-
interface IFieldOptions {
|
|
1117
|
-
hidden?: string | boolean;
|
|
1118
|
-
readonly?: string | boolean;
|
|
1119
|
-
disabled?: string | boolean;
|
|
1120
|
-
defaultValue?: any;
|
|
1121
|
-
}
|
|
1122
|
-
interface IFieldBuilder {
|
|
1123
|
-
title(title: string): IFieldBuilder;
|
|
1124
|
-
description(description: string): IFieldBuilder;
|
|
1125
|
-
mode(mode: AXPDynamicFormMode): IFieldBuilder;
|
|
1126
|
-
options(values: IFieldOptions): IFieldBuilder;
|
|
1127
|
-
layout(layout: AXPGridLayoutOptions | number): IFieldBuilder;
|
|
1128
|
-
textBox(options?: TextBoxOptions): IFieldBuilder;
|
|
1129
|
-
largeTextBox(options?: LargeTextBoxOptions): IFieldBuilder;
|
|
1130
|
-
richText(options?: RichTextOptions): IFieldBuilder;
|
|
1131
|
-
passwordBox(options?: PasswordBoxOptions): IFieldBuilder;
|
|
1132
|
-
selectBox(options: SelectBoxOptions): IFieldBuilder;
|
|
1133
|
-
lookupBox(options: LookupBoxOptions): IFieldBuilder;
|
|
1134
|
-
selectionList(options: SelectionListOptions): IFieldBuilder;
|
|
1135
|
-
numberBox(options?: NumberBoxOptions): IFieldBuilder;
|
|
1136
|
-
dateTimeBox(options?: DateTimeBoxOptions): IFieldBuilder;
|
|
1137
|
-
toggleSwitch(options?: ToggleSwitchOptions): IFieldBuilder;
|
|
1138
|
-
colorBox(options?: ColorBoxOptions): IFieldBuilder;
|
|
1139
|
-
widget(type: string, options?: unknown): IFieldBuilder;
|
|
1140
|
-
}
|
|
1141
|
-
interface IGroupBuilder {
|
|
1142
|
-
title(title: string): IGroupBuilder;
|
|
1143
|
-
description(description: string): IGroupBuilder;
|
|
1144
|
-
mode(mode: AXPDynamicFormMode): IGroupBuilder;
|
|
1145
|
-
field(path: string, delegate?: (field: IFieldBuilder) => void): IGroupBuilder;
|
|
1146
|
-
group(name: string, delegate?: (group: IGroupBuilder) => void): IGroupBuilder;
|
|
1147
|
-
}
|
|
1148
|
-
interface IStepBuilder {
|
|
1149
|
-
title(title: string): IStepBuilder;
|
|
1150
|
-
description(description: string): IStepBuilder;
|
|
1151
|
-
icon(icon: string): IStepBuilder;
|
|
1152
|
-
group(name: string, delegate?: (group: IGroupBuilder) => void): IStepBuilder;
|
|
1153
|
-
}
|
|
1154
|
-
interface IFormBuilder {
|
|
1155
|
-
group(name: string, delegate?: (group: IGroupBuilder) => void): IFormBuilder;
|
|
1156
|
-
layout(config: Partial<AXPGridLayoutOptions>): IFormBuilder;
|
|
1157
|
-
look(look: AXPDynamicFormLook): IFormBuilder;
|
|
1158
|
-
mode(mode: AXPDynamicFormMode): IFormBuilder;
|
|
1159
|
-
build(): AXPDynamicFormDefinition;
|
|
1160
|
-
export(): AXPWidgetNode;
|
|
1161
|
-
import(widgetTree: AXPWidgetNode): IFormBuilder;
|
|
1162
|
-
}
|
|
1163
|
-
interface IActionBuilder {
|
|
1164
|
-
cancel(text?: string): IActionBuilder;
|
|
1165
|
-
submit(text?: string): IActionBuilder;
|
|
1166
|
-
custom(action: AXPActionMenuItem): IActionBuilder;
|
|
1167
|
-
}
|
|
1168
|
-
interface IDialogBuilder extends IFormBuilder {
|
|
1169
|
-
group(name: string, delegate?: (group: IGroupBuilder) => void): IDialogBuilder;
|
|
1170
|
-
layout(config: Partial<AXPGridLayoutOptions>): IDialogBuilder;
|
|
1171
|
-
look(look: AXPDynamicFormLook): IDialogBuilder;
|
|
1172
|
-
closeButton(closeButton: boolean): IDialogBuilder;
|
|
1173
|
-
step(id: string, delegate?: (step: IStepBuilder) => void): IDialogBuilder;
|
|
1174
|
-
stepperDirection(direction: AXOrientation): IDialogBuilder;
|
|
1175
|
-
guardNext(guard: (e: {
|
|
1176
|
-
index: number;
|
|
1177
|
-
id: string;
|
|
1178
|
-
fullContext: unknown;
|
|
1179
|
-
}) => Promise<boolean>): IDialogBuilder;
|
|
1180
|
-
title(title: string): IDialogBuilder;
|
|
1181
|
-
message(message?: string): IDialogBuilder;
|
|
1182
|
-
size(size: AXPopupSizeType): IDialogBuilder;
|
|
1183
|
-
context(context: AXPContextData): IDialogBuilder;
|
|
1184
|
-
actions(delegate?: (actions: IActionBuilder) => void): IDialogBuilder;
|
|
1185
|
-
show(): Promise<AXPDialogRef>;
|
|
1186
|
-
}
|
|
1187
|
-
interface FormBuilderState {
|
|
1188
|
-
groups: AXPDynamicFormGroupDefinition[];
|
|
1189
|
-
layoutConfig: AXPGridLayoutOptions;
|
|
1190
|
-
look: AXPDynamicFormLook;
|
|
1191
|
-
mode?: AXPDynamicFormMode;
|
|
1192
|
-
}
|
|
1193
|
-
interface DialogBuilderState extends FormBuilderState {
|
|
1194
|
-
title?: string;
|
|
1195
|
-
message?: string;
|
|
1196
|
-
size?: AXPopupSizeType;
|
|
1197
|
-
context?: AXPContextData;
|
|
1198
|
-
steps: StepBuilderState[];
|
|
1199
|
-
stepperDirection?: AXOrientation;
|
|
1200
|
-
closeButton?: boolean;
|
|
1201
|
-
guardNext?: (e: {
|
|
1202
|
-
index: number;
|
|
1203
|
-
id: string;
|
|
1204
|
-
fullContext: unknown;
|
|
1205
|
-
}) => Promise<boolean>;
|
|
1206
|
-
actions?: {
|
|
1207
|
-
footer?: {
|
|
1208
|
-
prefix?: AXPActionMenuItem[];
|
|
1209
|
-
suffix?: AXPActionMenuItem[];
|
|
1210
|
-
};
|
|
1211
|
-
};
|
|
1212
|
-
}
|
|
1213
|
-
interface FieldBuilderState {
|
|
1214
|
-
path: string;
|
|
1215
|
-
title?: string;
|
|
1216
|
-
description?: string;
|
|
1217
|
-
defaultValue?: any;
|
|
1218
|
-
hidden?: string | boolean;
|
|
1219
|
-
readonly?: string | boolean;
|
|
1220
|
-
disabled?: string | boolean;
|
|
1221
|
-
widget?: AXPWidgetNode;
|
|
1222
|
-
layout?: AXPGridLayoutOptions;
|
|
1223
|
-
mode?: AXPDynamicFormMode;
|
|
1224
|
-
}
|
|
1225
|
-
interface GroupBuilderState {
|
|
1226
|
-
name: string;
|
|
1227
|
-
title?: string;
|
|
1228
|
-
description?: string;
|
|
1229
|
-
parameters: AXPDynamicFormFieldDefinition[];
|
|
1230
|
-
mode?: AXPDynamicFormMode;
|
|
1231
|
-
}
|
|
1232
|
-
interface StepBuilderState {
|
|
1233
|
-
id: string;
|
|
1234
|
-
title?: string;
|
|
1235
|
-
description?: string;
|
|
1236
|
-
icon?: string;
|
|
1237
|
-
groups: AXPDynamicFormGroupDefinition[];
|
|
1238
|
-
}
|
|
1239
|
-
|
|
1240
|
-
declare class AXPDynamicFormBuilderService {
|
|
1241
|
-
private readonly dialogService;
|
|
1242
|
-
private widgetTreeCache;
|
|
1243
|
-
private formDefinitionCache;
|
|
1244
|
-
/**
|
|
1245
|
-
* Create a new form builder
|
|
1246
|
-
*/
|
|
1247
|
-
form(): IFormBuilder;
|
|
1248
|
-
/**
|
|
1249
|
-
* Export form definition to AXPWidgetNode
|
|
1250
|
-
*/
|
|
1251
|
-
exportFormDefinition(formDefinition: AXPDynamicFormDefinition): AXPWidgetNode;
|
|
1252
|
-
/**
|
|
1253
|
-
* Import form definition from AXPWidgetNode
|
|
1254
|
-
*/
|
|
1255
|
-
importFormDefinition(widgetTree: AXPWidgetNode): AXPDynamicFormDefinition;
|
|
1256
|
-
/**
|
|
1257
|
-
* Export widget tree to AXPWidgetNode (deep clone)
|
|
1258
|
-
*/
|
|
1259
|
-
exportWidgetTree(widgetTree: AXPWidgetNode): AXPWidgetNode;
|
|
1260
|
-
/**
|
|
1261
|
-
* Import widget tree from AXPWidgetNode (with validation)
|
|
1262
|
-
*/
|
|
1263
|
-
importWidgetTree(widgetTree: AXPWidgetNode): AXPWidgetNode;
|
|
1264
|
-
/**
|
|
1265
|
-
* Create a new dialog builder
|
|
1266
|
-
*/
|
|
1267
|
-
dialog(): IDialogBuilder;
|
|
1268
|
-
/**
|
|
1269
|
-
* Convert AXPDynamicFormDefinition to AXPWidgetNode tree structure
|
|
1270
|
-
* Groups become Grid Layouts with Grid Items
|
|
1271
|
-
* Fields become Form Field widgets with Editor widgets as children
|
|
1272
|
-
*/
|
|
1273
|
-
serializeToWidgetTree(formDefinition: AXPDynamicFormDefinition): AXPWidgetNode;
|
|
1274
|
-
/**
|
|
1275
|
-
* Convert AXPWidgetNode tree back to AXPDynamicFormDefinition
|
|
1276
|
-
* Parses Grid Layouts back to Groups
|
|
1277
|
-
* Parses Form Field widgets back to Fields
|
|
1278
|
-
*/
|
|
1279
|
-
deserializeFromWidgetTree(widgetTree: AXPWidgetNode): AXPDynamicFormDefinition;
|
|
1280
|
-
/**
|
|
1281
|
-
* Validate that a widget tree represents a valid dynamic form structure
|
|
1282
|
-
*/
|
|
1283
|
-
validateFormWidgetTree(widgetTree: AXPWidgetNode): boolean;
|
|
1284
|
-
/**
|
|
1285
|
-
* Convert a single group to Fieldset widget structure
|
|
1286
|
-
*/
|
|
1287
|
-
private createGroupAsFieldsetWidget;
|
|
1288
|
-
/**
|
|
1289
|
-
* Convert fields to Form Field widgets
|
|
1290
|
-
*/
|
|
1291
|
-
private createFieldWidgets;
|
|
1292
|
-
/**
|
|
1293
|
-
* Convert a single field to Form Field widget with editor as child
|
|
1294
|
-
*/
|
|
1295
|
-
private createFormFieldWidget;
|
|
1296
|
-
/**
|
|
1297
|
-
* Extract group information from Grid Layout widget
|
|
1298
|
-
*/
|
|
1299
|
-
private extractGroupFromFieldset;
|
|
1300
|
-
/**
|
|
1301
|
-
* Extract field information from Form Field widget
|
|
1302
|
-
*/
|
|
1303
|
-
private extractFieldFromFormWidget;
|
|
1304
|
-
/**
|
|
1305
|
-
* Create cache key for form definition
|
|
1306
|
-
*/
|
|
1307
|
-
private createFormDefinitionCacheKey;
|
|
1308
|
-
/**
|
|
1309
|
-
* Create cache key for widget tree
|
|
1310
|
-
*/
|
|
1311
|
-
private createWidgetTreeCacheKey;
|
|
1312
|
-
/**
|
|
1313
|
-
* Clear all caches
|
|
1314
|
-
*/
|
|
1315
|
-
clearCaches(): void;
|
|
1316
|
-
/**
|
|
1317
|
-
* Get cache statistics
|
|
1318
|
-
*/
|
|
1319
|
-
getCacheStats(): {
|
|
1320
|
-
widgetTreeCacheSize: number;
|
|
1321
|
-
formDefinitionCacheSize: number;
|
|
1322
|
-
};
|
|
1323
|
-
/**
|
|
1324
|
-
* Create a simple hash from a string
|
|
1325
|
-
*/
|
|
1326
|
-
private createSimpleHash;
|
|
1327
|
-
/**
|
|
1328
|
-
* Validate widget tree structure recursively
|
|
1329
|
-
*/
|
|
1330
|
-
private validateWidgetTreeStructure;
|
|
1331
|
-
/**
|
|
1332
|
-
* Deep clone AXPWidgetNode
|
|
1333
|
-
*/
|
|
1334
|
-
private deepCloneWidgetNode;
|
|
1335
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPDynamicFormBuilderService, never>;
|
|
1336
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPDynamicFormBuilderService>;
|
|
1337
|
-
}
|
|
1338
|
-
|
|
1339
543
|
interface AXPDynamicFormDesignerField {
|
|
1340
544
|
id: string;
|
|
1341
545
|
name: string;
|
|
@@ -1392,7 +596,6 @@ declare class AXPDynamicFormDesignerComponent {
|
|
|
1392
596
|
private readonly widgetRegistry;
|
|
1393
597
|
private readonly formBuilderService;
|
|
1394
598
|
private readonly widgetPropertyViewerService;
|
|
1395
|
-
private readonly dialogService;
|
|
1396
599
|
protected selectedFieldId: _angular_core.WritableSignal<string | null>;
|
|
1397
600
|
private designerState;
|
|
1398
601
|
protected availableWidgets: _angular_core.Signal<AXPFormElementWidget[]>;
|
|
@@ -2024,5 +1227,5 @@ declare class AXPWidgetItemComponent {
|
|
|
2024
1227
|
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>;
|
|
2025
1228
|
}
|
|
2026
1229
|
|
|
2027
|
-
export { AXPActivityLogComponent, AXPCategoryTreeComponent, AXPCompareViewComponent, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPDataSelectorComponent, AXPDataSelectorService,
|
|
2028
|
-
export type { AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPComponentSlotConfig, AXPComponentSlotModuleConfigs, AXPDataSelectorColumn, AXPDataSelectorConfig,
|
|
1230
|
+
export { AXPActivityLogComponent, AXPCategoryTreeComponent, AXPCompareViewComponent, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPDataSelectorComponent, AXPDataSelectorService, AXPDynamicFormDesignerComponent, AXPExtraPropertiesComponent, AXPExtraPropertiesSchemaComponent, AXPExtraPropertiesValuesComponent, AXPImageEditorPopupComponent, AXPImageEditorService, AXPMenuBadgeHelper, AXPQueryColumnsComponent, AXPQueryFiltersComponent, AXPQuerySortsComponent, AXPQueryViewsComponent, AXPStateMessageComponent, AXPTaskBadgeDirective, AXPTaskBadgeProvider, AXPTaskBadgeService, AXPTemplateViewerComponent, AXPTemplateViewerService, AXPThemeLayoutActionsComponent, AXPThemeLayoutBlockComponent, AXPThemeLayoutContainerComponent, AXPThemeLayoutEndSideComponent, AXPThemeLayoutFooterComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutListComponent, AXPThemeLayoutListItemComponent, AXPThemeLayoutListItemsGroupComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent, AXPThemeLayoutSectionComponent, AXPThemeLayoutStartSideComponent, AXPThemeLayoutToolbarComponent, AXPUserAvatarComponent, AXPUserAvatarService, AXPWidgetItemComponent, AXPWidgetPropertyViewerComponent, AXPWidgetPropertyViewerPopupComponent, AXPWidgetPropertyViewerService, AXP_EXTRA_PROPERTY_TYPES, AXP_TASK_BADGE_PROVIDERS, AXP_USER_AVATAR_PROVIDER, convertDesignerFieldToFormField, convertDesignerGroupToFormGroup, convertDesignerStateToFormDefinition };
|
|
1231
|
+
export type { AXPCategoryTreeActions, AXPCategoryTreeConfig, AXPCategoryTreeDataSource, AXPCategoryTreeEvents, AXPCategoryTreeNode, AXPCompareViewField, AXPCompareViewInputs, AXPCompareViewMode, AXPCompareViewObject, AXPComponentSlotConfig, AXPComponentSlotModuleConfigs, AXPDataSelectorColumn, AXPDataSelectorConfig, AXPDynamicFormDesignerField, AXPDynamicFormDesignerGroup, AXPDynamicFormDesignerState, AXPExtraPropertyItem, AXPExtraPropertySchemaItem, AXPExtraPropertyType, AXPFormElementWidget, AXPImageEditorOpenOptions, AXPTemplateViewerConfig, AXPTemplateViewerResult, AXPUserAvatarData, AXPUserAvatarProvider, AXPUserAvatarSize, AXPUserAvatarStatus, AXPWidgetItemClickEvent, AXPWidgetItemData, AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyTab, AXPWidgetPropertyViewerConfig, AXPWidgetPropertyViewerResult, StateMode };
|