@praxisui/dynamic-form 3.0.0-beta.0 → 3.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -4
- package/fesm2022/praxisui-dynamic-form.mjs +3450 -1189
- package/index.d.ts +106 -35
- package/package.json +7 -7
- package/fesm2022/praxisui-dynamic-form.mjs.map +0 -1
package/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { OnChanges, OnDestroy, EventEmitter, SimpleChanges, OnInit, ChangeDetectorRef, Provider, AfterViewInit, ElementRef } from '@angular/core';
|
|
3
|
-
import { FormGroup, FormBuilder } from '@angular/forms';
|
|
3
|
+
import { FormGroup, FormBuilder, FormArray } from '@angular/forms';
|
|
4
4
|
import { Router, ActivatedRoute } from '@angular/router';
|
|
5
5
|
import { MatDialog } from '@angular/material/dialog';
|
|
6
6
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
7
7
|
import { CdkDragStart, CdkDragMove, CdkDragEnd, CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
8
|
-
import
|
|
8
|
+
import * as _praxisui_core from '@praxisui/core';
|
|
9
|
+
import { AsyncConfigStorage, FormLayout, FieldMetadata, FormLayoutRule, FormRuleTargetType as FormRuleTargetType$1, FormSection, FormRow, FormColumn, FormConfig, FormActionButton, BackConfig, FormHooksLayout, EndpointConfig, FormSubmitEvent, FormReadyEvent, FormValueChangeEvent, SyncResult, FormInitializationError, LoadingState, FormCustomActionEvent, FormActionConfirmationEvent, WidgetEventEnvelope, WidgetDefinition, GenericCrudService, ConnectionStorage, DynamicFormService, ErrorMessageService, SchemaNormalizerService, ComponentMetadataRegistry, GlobalConfigService, ComponentKeyService, LoadingOrchestrator, PraxisLoadingRenderer, FormHooksRegistry, FormHookPreset, LoggerService, FormSectionHeaderAction, FormSectionHeaderConfig, FormConfigState, FieldDefinition, ComponentDocMeta, Breakpoint, IconPickerService, SurfaceOpenPayload, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog } from '@praxisui/core';
|
|
9
10
|
import * as rxjs from 'rxjs';
|
|
10
11
|
import { Observable, BehaviorSubject } from 'rxjs';
|
|
11
12
|
import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
|
|
@@ -53,6 +54,7 @@ interface RuleApplicationResult {
|
|
|
53
54
|
columnProps: Record<string, Record<string, any>>;
|
|
54
55
|
}
|
|
55
56
|
declare class FormRulesService {
|
|
57
|
+
private normalizeLegacyConditionSyntax;
|
|
56
58
|
/**
|
|
57
59
|
* Evaluates a set of form rules against the current value of a FormGroup.
|
|
58
60
|
*
|
|
@@ -491,6 +493,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
491
493
|
private hooksRegistry?;
|
|
492
494
|
private hookPresets?;
|
|
493
495
|
private logger?;
|
|
496
|
+
private readonly i18n;
|
|
494
497
|
private readonly DEBUG;
|
|
495
498
|
resourcePath?: string;
|
|
496
499
|
resourceId?: string | number;
|
|
@@ -503,26 +506,26 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
503
506
|
mode: 'create' | 'edit' | 'view';
|
|
504
507
|
config: FormConfig;
|
|
505
508
|
/**
|
|
506
|
-
* Fonte de schema para construir o
|
|
507
|
-
* 'resource' (
|
|
509
|
+
* Fonte de schema para construir o formulário.
|
|
510
|
+
* 'resource' (padrão) usa o schema do recurso (/{resource}/schemas -> .../all response)
|
|
508
511
|
* 'filter' usa o schema do DTO de filtro (via /schemas/filtered no POST /filter request)
|
|
509
512
|
*/
|
|
510
513
|
schemaSource: 'resource' | 'filter';
|
|
511
514
|
/**
|
|
512
|
-
*
|
|
515
|
+
* CUSTOMIZAÇÃO DE LAYOUT - NÃO confundir com edição de dados do formulário
|
|
513
516
|
*
|
|
514
|
-
* Este flag controla se o
|
|
517
|
+
* Este flag controla se o usuário pode customizar a ESTRUTURA do formulário:
|
|
515
518
|
* - Mover sections, rows, columns
|
|
516
|
-
* - Configurar layout e
|
|
517
|
-
* - Acessar editor de
|
|
519
|
+
* - Configurar layout e aparência
|
|
520
|
+
* - Acessar editor de configuração
|
|
518
521
|
*
|
|
519
|
-
*
|
|
522
|
+
* É INDEPENDENTE do mode (view/edit/create) que controla os DADOS do registro
|
|
520
523
|
*
|
|
521
524
|
* @example
|
|
522
|
-
* //
|
|
525
|
+
* // Formulário em modo VIEW de dados + customização HABILITADA
|
|
523
526
|
* <praxis-dynamic-form mode="view" [enableCustomization]="true">
|
|
524
527
|
*
|
|
525
|
-
* //
|
|
528
|
+
* // Formulário em modo EDIT de dados + customização DESABILITADA
|
|
526
529
|
* <praxis-dynamic-form mode="edit" [enableCustomization]="false">
|
|
527
530
|
*/
|
|
528
531
|
enableCustomization: boolean;
|
|
@@ -581,11 +584,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
581
584
|
/** Forwarded from DynamicFieldLoader to allow host-side observability. */
|
|
582
585
|
fieldRenderError: EventEmitter<DynamicFieldRenderErrorEvent>;
|
|
583
586
|
/** Re-emits events from editorial widgets hosted before, before actions, or after the form. */
|
|
584
|
-
widgetEvent: EventEmitter<{
|
|
587
|
+
widgetEvent: EventEmitter<WidgetEventEnvelope & {
|
|
585
588
|
placement: "before" | "beforeActions" | "after";
|
|
586
|
-
sourceId: string;
|
|
587
|
-
output?: string;
|
|
588
|
-
payload?: any;
|
|
589
589
|
}>;
|
|
590
590
|
isLoading: boolean;
|
|
591
591
|
submitting: boolean;
|
|
@@ -641,11 +641,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
641
641
|
* In-place mutations do not invalidate the cached merged context snapshot.
|
|
642
642
|
*/
|
|
643
643
|
getEditorialWidgetContext(): Record<string, unknown>;
|
|
644
|
-
onEditorialWidgetEvent(placement: 'before' | 'beforeActions' | 'after', event:
|
|
645
|
-
sourceId: string;
|
|
646
|
-
output?: string;
|
|
647
|
-
payload?: any;
|
|
648
|
-
}): void;
|
|
644
|
+
onEditorialWidgetEvent(placement: 'before' | 'beforeActions' | 'after', event: WidgetEventEnvelope): void;
|
|
649
645
|
private reactiveValidate$?;
|
|
650
646
|
private warnedMissingId;
|
|
651
647
|
private schemaState;
|
|
@@ -685,6 +681,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
685
681
|
private hasMountedAnimation;
|
|
686
682
|
private mountAnimationTimer;
|
|
687
683
|
protected isMounting: boolean;
|
|
684
|
+
private hasBuiltFormFromConfig;
|
|
688
685
|
constructor(crud: GenericCrudService<any>, fb: FormBuilder, cdr: ChangeDetectorRef, layoutService: FormLayoutService, contextService: FormContextService, rulesService: FormRulesService, settingsPanel: SettingsPanelService, dialog: MatDialog, asyncConfigStorage: AsyncConfigStorage, connectionStorage: ConnectionStorage, dynamicForm: DynamicFormService, snackBar: MatSnackBar, canvasState: CanvasStateService, dynamicLayout: DynamicFormLayoutService, errorMessages: ErrorMessageService, schemaNormalizer: SchemaNormalizerService, componentMetaRegistry: ComponentMetadataRegistry, global: GlobalConfigService, componentKeys: ComponentKeyService, loadingOrchestrator: LoadingOrchestrator, loadingRenderer?: PraxisLoadingRenderer | undefined, router?: Router | undefined, route?: ActivatedRoute | undefined, hooksRegistry?: FormHooksRegistry | undefined, hookPresets?: FormHookPreset[] | null | undefined, logger?: LoggerService | undefined);
|
|
689
686
|
private emitLoadingState;
|
|
690
687
|
private buildLoadingContext;
|
|
@@ -701,6 +698,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
701
698
|
private formInputsKey;
|
|
702
699
|
private crudBackKey;
|
|
703
700
|
private tryInitializeForm;
|
|
701
|
+
private hasRenderableConfig;
|
|
702
|
+
private initializeStandaloneConfig;
|
|
704
703
|
private reloadForModeChange;
|
|
705
704
|
ngOnInit(): void;
|
|
706
705
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -747,10 +746,21 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
747
746
|
getSectionTitleStyle(section: FormSection): string | undefined;
|
|
748
747
|
getSectionDescriptionStyle(section: FormSection): string | undefined;
|
|
749
748
|
getSectionHeaderTooltip(section: FormSection): string | undefined;
|
|
749
|
+
getSectionHeaderActions(section: FormSection): FormSectionHeaderAction[];
|
|
750
750
|
getSectionHeaderAlign(section: FormSection): 'start' | 'center' | undefined;
|
|
751
751
|
getSectionGapBottom(section: FormSection): number | null;
|
|
752
752
|
getSectionTitleGapBottom(section: FormSection): number | null;
|
|
753
753
|
getSectionDescriptionGapBottom(section: FormSection): number | null;
|
|
754
|
+
getSectionHeaderActionColor(action: FormSectionHeaderAction): 'primary' | 'accent' | 'warn' | undefined;
|
|
755
|
+
getSectionHeaderActionTooltip(action: FormSectionHeaderAction): string;
|
|
756
|
+
isSectionHeaderActionDisabled(action: FormSectionHeaderAction): boolean;
|
|
757
|
+
getSectionHeaderActionNgClass(action: FormSectionHeaderAction): Record<string, boolean>;
|
|
758
|
+
getSectionHeaderActionStyles(action: FormSectionHeaderAction): Record<string, any> | null;
|
|
759
|
+
getSectionHeaderActionLoadingLabel(action: FormSectionHeaderAction): string;
|
|
760
|
+
onSectionHeaderActionClick(section: FormSection, action: FormSectionHeaderAction, event: Event): void;
|
|
761
|
+
private applySectionHeaderActionOverrides;
|
|
762
|
+
private getSectionHeaderActionEventId;
|
|
763
|
+
private getSectionHeaderActionRuleKeys;
|
|
754
764
|
private getRowRuleProps;
|
|
755
765
|
isRowVisible(row?: FormRow): boolean;
|
|
756
766
|
getRowGap(row: FormRow): number | null;
|
|
@@ -759,6 +769,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
759
769
|
getRowStyles(row: FormRow): Record<string, any> | null;
|
|
760
770
|
getSectionIcon(section: FormSection): string | undefined;
|
|
761
771
|
getSectionHeaderVisual(section: FormSection): ResolvedSectionHeaderVisual;
|
|
772
|
+
getSectionHeaderAvatarSize(section: FormSection): NonNullable<FormSectionHeaderConfig['size']> | null;
|
|
762
773
|
private getSectionHeaderConfig;
|
|
763
774
|
private getSectionHeaderFieldValue;
|
|
764
775
|
private getSectionHeaderInitialsSourceValue;
|
|
@@ -793,6 +804,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
793
804
|
getColumnPadding(column: FormColumn): number | undefined;
|
|
794
805
|
getColumnStyles(column: FormColumn): Record<string, any> | null;
|
|
795
806
|
private _getConfirmationMessage;
|
|
807
|
+
private _getConfirmationMessageForAliases;
|
|
796
808
|
private _showConfirmationDialog;
|
|
797
809
|
onFormAction(event: PraxisFormActionEvent): void;
|
|
798
810
|
private _executeAction;
|
|
@@ -800,13 +812,13 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
800
812
|
private navigateAfterSave;
|
|
801
813
|
private shouldConfirmCancelOnDirty;
|
|
802
814
|
/**
|
|
803
|
-
* TOGGLE DE
|
|
815
|
+
* TOGGLE DE CUSTOMIZAÇÃO DE LAYOUT - NÃO É EDIÇÃO DE DADOS
|
|
804
816
|
*
|
|
805
|
-
* Este
|
|
806
|
-
* - Modo normal:
|
|
807
|
-
* - Modo
|
|
817
|
+
* Este método alterna entre:
|
|
818
|
+
* - Modo normal: Usuário interage com dados do formulário (conforme mode: view/edit/create)
|
|
819
|
+
* - Modo customização: Usuário pode mover sections/rows/columns e configurar layout
|
|
808
820
|
*
|
|
809
|
-
* IMPORTANTE: Independe completamente do mode do
|
|
821
|
+
* IMPORTANTE: Independe completamente do mode do formulário
|
|
810
822
|
*/
|
|
811
823
|
toggleEditMode(): void;
|
|
812
824
|
openConfigEditor(): Promise<void>;
|
|
@@ -854,10 +866,11 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
854
866
|
private openRowEditor;
|
|
855
867
|
private openColumnEditor;
|
|
856
868
|
openSectionEditor(section: any, focusTarget?: 'title' | 'description'): void;
|
|
869
|
+
private resolveControlTypeEditorial;
|
|
857
870
|
private getControlTypeIcon;
|
|
858
871
|
/**
|
|
859
|
-
* Friendly control type name resolved from
|
|
860
|
-
* Falls back to
|
|
872
|
+
* Friendly control type name resolved from the canonical editorial resolver when available.
|
|
873
|
+
* Falls back only to neutral technical defaults when nothing can be resolved.
|
|
861
874
|
*/
|
|
862
875
|
private getControlTypeName;
|
|
863
876
|
private applyNullDeletionPatch;
|
|
@@ -1145,6 +1158,9 @@ declare class PraxisFilterForm implements OnChanges, OnDestroy {
|
|
|
1145
1158
|
submit: EventEmitter<{
|
|
1146
1159
|
formData: Record<string, any>;
|
|
1147
1160
|
}>;
|
|
1161
|
+
requestSearch: EventEmitter<{
|
|
1162
|
+
formData: Record<string, any>;
|
|
1163
|
+
}>;
|
|
1148
1164
|
validityChange: EventEmitter<boolean>;
|
|
1149
1165
|
form: FormGroup<Record<string, any>>;
|
|
1150
1166
|
private valueChangesSub?;
|
|
@@ -1153,16 +1169,24 @@ declare class PraxisFilterForm implements OnChanges, OnDestroy {
|
|
|
1153
1169
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1154
1170
|
ngOnDestroy(): void;
|
|
1155
1171
|
private buildForm;
|
|
1172
|
+
private buildRestorableValues;
|
|
1173
|
+
private hasExplicitDefaultValue;
|
|
1156
1174
|
onFormSubmit(): void;
|
|
1157
1175
|
getColumnFields(column: FormColumn): FieldMetadata[];
|
|
1176
|
+
get fieldMetadata(): FieldMetadata[];
|
|
1158
1177
|
get hasLayout(): boolean;
|
|
1159
1178
|
trackBySection(i: number, section: FormSection): string;
|
|
1160
1179
|
trackByRow(i: number, _row: FormRow): string;
|
|
1161
1180
|
trackByColumn(i: number, col: FormColumn): string;
|
|
1162
1181
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterForm, never>;
|
|
1163
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterForm, "praxis-filter-form", never, { "config": { "alias": "config"; "required": true; }; "formId": { "alias": "formId"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, { "formReady": "formReady"; "valueChange": "valueChange"; "submit": "submit"; "validityChange": "validityChange"; }, never, never, true, never>;
|
|
1182
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterForm, "praxis-filter-form", never, { "config": { "alias": "config"; "required": true; }; "formId": { "alias": "formId"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, { "formReady": "formReady"; "valueChange": "valueChange"; "submit": "submit"; "requestSearch": "requestSearch"; "validityChange": "validityChange"; }, never, never, true, never>;
|
|
1164
1183
|
}
|
|
1165
1184
|
|
|
1185
|
+
/** Metadata for PraxisFilterForm component */
|
|
1186
|
+
declare const PRAXIS_FILTER_FORM_COMPONENT_METADATA: ComponentDocMeta;
|
|
1187
|
+
/** Provider to register PraxisFilterForm metadata. */
|
|
1188
|
+
declare function providePraxisFilterFormMetadata(): Provider;
|
|
1189
|
+
|
|
1166
1190
|
/** Tokens for theme colors used across the layout editor. */
|
|
1167
1191
|
declare enum LayoutColorToken {
|
|
1168
1192
|
Surface = "--md-sys-color-surface",
|
|
@@ -1336,10 +1360,8 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1336
1360
|
declare class FieldConfiguratorComponent {
|
|
1337
1361
|
private readonly registry;
|
|
1338
1362
|
field: FieldMetadata;
|
|
1339
|
-
private readonly controlTypeMap;
|
|
1340
1363
|
private readonly categoryByType;
|
|
1341
|
-
private
|
|
1342
|
-
get meta(): ComponentDocMeta | undefined;
|
|
1364
|
+
private resolveEditorialMeta;
|
|
1343
1365
|
get icon(): string;
|
|
1344
1366
|
get typeClass(): string;
|
|
1345
1367
|
get typeSpecificClass(): string;
|
|
@@ -1442,6 +1464,19 @@ declare class CanvasToolbarComponent {
|
|
|
1442
1464
|
static ɵcmp: i0.ɵɵComponentDeclaration<CanvasToolbarComponent, "praxis-canvas-toolbar", never, { "selectedElement": { "alias": "selectedElement"; "required": false; }; }, { "editMetadata": "editMetadata"; "delete": "delete"; "moveUp": "moveUp"; "moveDown": "moveDown"; "selectPath": "selectPath"; "requestClose": "requestClose"; "toggleReadonly": "toggleReadonly"; "toggleRequired": "toggleRequired"; "toggleHidden": "toggleHidden"; "toggleDisabled": "toggleDisabled"; }, never, never, true, never>;
|
|
1443
1465
|
}
|
|
1444
1466
|
|
|
1467
|
+
type ActionCatalogOption = {
|
|
1468
|
+
id: string;
|
|
1469
|
+
label: string;
|
|
1470
|
+
description?: string;
|
|
1471
|
+
param?: {
|
|
1472
|
+
required?: boolean;
|
|
1473
|
+
label?: string;
|
|
1474
|
+
placeholder?: string;
|
|
1475
|
+
hint?: string;
|
|
1476
|
+
example?: string;
|
|
1477
|
+
};
|
|
1478
|
+
};
|
|
1479
|
+
|
|
1445
1480
|
interface EditableFormSection extends FormSection {
|
|
1446
1481
|
sectionHeader?: FormSectionHeaderConfig;
|
|
1447
1482
|
appearance?: 'card' | 'plain' | 'step';
|
|
@@ -1472,7 +1507,6 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1472
1507
|
private fb;
|
|
1473
1508
|
private data;
|
|
1474
1509
|
private iconPicker;
|
|
1475
|
-
private i18n;
|
|
1476
1510
|
focusTarget?: 'title' | 'description';
|
|
1477
1511
|
fieldMetadata: FieldMetadata[];
|
|
1478
1512
|
section: EditableFormSection;
|
|
@@ -1485,21 +1519,50 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1485
1519
|
isDirty$: BehaviorSubject<boolean>;
|
|
1486
1520
|
isValid$: BehaviorSubject<boolean>;
|
|
1487
1521
|
isBusy$: BehaviorSubject<boolean>;
|
|
1522
|
+
private readonly globalActionCatalogSource;
|
|
1523
|
+
private readonly i18n;
|
|
1524
|
+
readonly legacyActionSpecs: _praxisui_core.GlobalActionSpec[];
|
|
1525
|
+
readonly globalActionCatalog: ActionCatalogOption[];
|
|
1526
|
+
readonly customActionValue = "__custom__";
|
|
1488
1527
|
private destroy$;
|
|
1489
1528
|
titleInput?: ElementRef<HTMLInputElement>;
|
|
1490
1529
|
descriptionInput?: ElementRef<HTMLTextAreaElement>;
|
|
1491
1530
|
constructor(fb: FormBuilder, data: {
|
|
1492
1531
|
section: EditableFormSection;
|
|
1493
1532
|
fieldMetadata?: FieldMetadata[];
|
|
1494
|
-
}, iconPicker: IconPickerService
|
|
1533
|
+
}, iconPicker: IconPickerService);
|
|
1495
1534
|
ngOnInit(): void;
|
|
1496
1535
|
ngAfterViewInit(): void;
|
|
1497
1536
|
ngOnDestroy(): void;
|
|
1498
1537
|
getSettingsValue(): any;
|
|
1538
|
+
get headerActionsArray(): FormArray;
|
|
1539
|
+
getHeaderActionStylePlaceholder(): string;
|
|
1540
|
+
getActionCatalogLabel(spec: {
|
|
1541
|
+
label?: string;
|
|
1542
|
+
}): string;
|
|
1543
|
+
getHeaderActionSpecById(id: string): ActionCatalogOption | undefined;
|
|
1544
|
+
getHeaderActionSelectValue(value?: string): string;
|
|
1545
|
+
getHeaderActionParam(value?: string): string;
|
|
1546
|
+
getHeaderActionCustomValue(value?: string): string;
|
|
1547
|
+
getHeaderGlobalActionSchema(value?: string): _praxisui_core.GlobalActionUiSchema | undefined;
|
|
1548
|
+
getHeaderSurfaceOpenActionPayload(value?: string): SurfaceOpenPayload;
|
|
1549
|
+
isHeaderActionParamMissing(value?: string): boolean;
|
|
1550
|
+
onHeaderActionSelectChange(index: number, value: string): void;
|
|
1551
|
+
onHeaderActionParamChange(index: number, value: string): void;
|
|
1552
|
+
onHeaderActionCustomChange(index: number, value: string): void;
|
|
1553
|
+
pickHeaderActionIcon(index: number): Promise<void>;
|
|
1554
|
+
clearHeaderActionIcon(index: number): void;
|
|
1555
|
+
applyHeaderActionStylePreset(index: number, preset: 'default' | 'soft-pill' | 'primary-pill' | 'critical-pill'): void;
|
|
1556
|
+
getHeaderActionPreviewStyles(index: number): Record<string, any> | null;
|
|
1557
|
+
onHeaderSurfaceOpenActionPayloadChange(index: number, payload: SurfaceOpenPayload): void;
|
|
1499
1558
|
pickIcon(): Promise<void>;
|
|
1500
1559
|
clearIcon(): void;
|
|
1501
1560
|
pickFallbackIcon(): Promise<void>;
|
|
1502
1561
|
clearFallbackIcon(): void;
|
|
1562
|
+
addHeaderAction(): void;
|
|
1563
|
+
removeHeaderAction(index: number): void;
|
|
1564
|
+
moveHeaderActionUp(index: number): void;
|
|
1565
|
+
moveHeaderActionDown(index: number): void;
|
|
1503
1566
|
private syncCollapsedControlState;
|
|
1504
1567
|
applyPreset(key: 'default' | 'simple' | 'collapsible' | 'denseGrid'): void;
|
|
1505
1568
|
setCustomColors(value: string): void;
|
|
@@ -1508,10 +1571,18 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1508
1571
|
trackFieldOption(index: number, field: {
|
|
1509
1572
|
value: string;
|
|
1510
1573
|
}): string;
|
|
1511
|
-
tx(key: string, fallback: string): string;
|
|
1574
|
+
tx(key: string, fallback: string, params?: Record<string, string | number>): string;
|
|
1512
1575
|
private applyNormalizedFormValue;
|
|
1513
1576
|
private normalizeSectionFormValue;
|
|
1514
1577
|
private normalizeSectionHeader;
|
|
1578
|
+
private createHeaderActionGroup;
|
|
1579
|
+
private moveHeaderAction;
|
|
1580
|
+
private normalizeHeaderActions;
|
|
1581
|
+
private mapCatalogEntryToActionSpec;
|
|
1582
|
+
private getActionCatalogDescription;
|
|
1583
|
+
private headerActionStyleValidator;
|
|
1584
|
+
private stringifyHeaderActionStyle;
|
|
1585
|
+
private parseHeaderActionStyle;
|
|
1515
1586
|
private normalizeOptionalString;
|
|
1516
1587
|
private normalizeOptionalNumber;
|
|
1517
1588
|
static ɵfac: i0.ɵɵFactoryDeclaration<SectionEditorComponent, never>;
|
|
@@ -1789,5 +1860,5 @@ declare const FORM_COMPONENT_AI_CAPABILITIES: CapabilityCatalog;
|
|
|
1789
1860
|
*/
|
|
1790
1861
|
declare function getFormAiCatalog(formConfig?: FormConfig): AiCapabilityCatalog;
|
|
1791
1862
|
|
|
1792
|
-
export { ActionsEditorComponent, CanvasStateService, CanvasToolbarComponent, ColumnEditorComponent, DynamicFormLayoutService, FORM_AI_CAPABILITIES, FORM_COMPONENT_AI_CAPABILITIES, FieldConfiguratorComponent, FieldEditorComponent, FormConfigService, FormContextService, FormLayoutService, JsonConfigEditorComponent, LayoutColorToken, LayoutEditorComponent, LayoutPrefsService, PRAXIS_DYNAMIC_FORM_COMPONENT_METADATA, PraxisDynamicForm, PraxisDynamicFormConfigEditor, PraxisFilterForm, PraxisFormActionsComponent, RowConfiguratorComponent, RowEditorComponent, SETTINGS_PANEL_DYNAMIC_FORM_PROVIDER, SectionEditorComponent, TASK_PRESETS, applyVisibilityRules, buildDynamicFormApplyPlan, createDynamicFormAuthoringDocument, formLayoutRulesToBuilderState, getFormAiCatalog, getFormCapabilities, getFormEnum, isRuleSatisfied, normalizeDateArrays, normalizeDynamicFormAuthoringDocument, parseLegacyOrDynamicFormDocument, providePraxisDynamicFormMetadata, provideSettingsPanelDynamicForm, ruleBuilderStateToFormLayoutRules, serializeDynamicFormAuthoringDocument, stripLegacyFieldMetadata, toCanonicalDynamicFormConfig, validateDynamicFormAuthoringDocument, validateDynamicFormAuthoringInput };
|
|
1863
|
+
export { ActionsEditorComponent, CanvasStateService, CanvasToolbarComponent, ColumnEditorComponent, DynamicFormLayoutService, FORM_AI_CAPABILITIES, FORM_COMPONENT_AI_CAPABILITIES, FieldConfiguratorComponent, FieldEditorComponent, FormConfigService, FormContextService, FormLayoutService, JsonConfigEditorComponent, LayoutColorToken, LayoutEditorComponent, LayoutPrefsService, PRAXIS_DYNAMIC_FORM_COMPONENT_METADATA, PRAXIS_FILTER_FORM_COMPONENT_METADATA, PraxisDynamicForm, PraxisDynamicFormConfigEditor, PraxisFilterForm, PraxisFormActionsComponent, RowConfiguratorComponent, RowEditorComponent, SETTINGS_PANEL_DYNAMIC_FORM_PROVIDER, SectionEditorComponent, TASK_PRESETS, applyVisibilityRules, buildDynamicFormApplyPlan, createDynamicFormAuthoringDocument, formLayoutRulesToBuilderState, getFormAiCatalog, getFormCapabilities, getFormEnum, isRuleSatisfied, normalizeDateArrays, normalizeDynamicFormAuthoringDocument, parseLegacyOrDynamicFormDocument, providePraxisDynamicFormMetadata, providePraxisFilterFormMetadata, provideSettingsPanelDynamicForm, ruleBuilderStateToFormLayoutRules, serializeDynamicFormAuthoringDocument, stripLegacyFieldMetadata, toCanonicalDynamicFormConfig, validateDynamicFormAuthoringDocument, validateDynamicFormAuthoringInput };
|
|
1793
1864
|
export type { CanvasElement, CanvasElementType, CanvasPathPart, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, DynamicFieldRenderErrorEvent, DynamicFormApplyPlan, DynamicFormAuthoringDocument, DynamicFormBindings, DynamicFormContextSnapshot, DynamicFormMode, DynamicFormPresentationSnapshot, DynamicFormProjectionContext, DynamicFormRuntimeContext, DynamicFormSchemaPrefsSnapshot, DynamicFormValidationContext, EditorDiagnostic, EditorDocument, FieldPath, FieldPathContainer, FieldPathWithIndex, Capability as FormComponentCapability, CapabilityCatalog as FormComponentCapabilityCatalog, CapabilityCategory as FormComponentCapabilityCategory, ValueKind as FormComponentValueKind, FormConfigLike, IdPath, JsonEditorEvent, JsonValidationResult, LayoutChange, LayoutResult, Operation, Path, PathWithIndex, PraxisFormActionEvent, RemovePolicy, ValidationReport, ValueKind$1 as ValueKind };
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/dynamic-form",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.10",
|
|
4
4
|
"description": "Angular dynamic form engine for Praxis UI: metadata-driven forms, hooks, and services integrating @praxisui/* packages.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^20.0.0",
|
|
7
7
|
"@angular/core": "^20.0.0",
|
|
8
8
|
"@angular/cdk": "^20.0.0",
|
|
9
|
-
"@praxisui/settings-panel": "^3.0.0-beta.
|
|
10
|
-
"@praxisui/visual-builder": "^3.0.0-beta.
|
|
11
|
-
"@praxisui/specification-core": "^3.0.0-beta.
|
|
12
|
-
"@praxisui/specification": "^3.0.0-beta.
|
|
13
|
-
"@praxisui/core": "^3.0.0-beta.
|
|
14
|
-
"@praxisui/cron-builder": "^3.0.0-beta.
|
|
9
|
+
"@praxisui/settings-panel": "^3.0.0-beta.10",
|
|
10
|
+
"@praxisui/visual-builder": "^3.0.0-beta.10",
|
|
11
|
+
"@praxisui/specification-core": "^3.0.0-beta.10",
|
|
12
|
+
"@praxisui/specification": "^3.0.0-beta.10",
|
|
13
|
+
"@praxisui/core": "^3.0.0-beta.10",
|
|
14
|
+
"@praxisui/cron-builder": "^3.0.0-beta.10"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"tslib": "^2.3.0",
|