@praxisui/dynamic-form 8.0.0-beta.2 → 8.0.0-beta.20
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 +155 -17
- package/docs/dynamic-form-authoring-document-semantics.md +80 -0
- package/docs/dynamic-form-llm-rule-authoring-guide.md +313 -0
- package/docs/dynamic-form-rules-authoring-plan.md +369 -0
- package/docs/hot-metadata-updates.md +141 -0
- package/docs/layout-items-visual-blocks.md +406 -0
- package/fesm2022/praxisui-dynamic-form.mjs +8607 -3284
- package/index.d.ts +461 -22
- package/package.json +12 -6
- package/src/lib/components/praxis-form-actions/praxis-form-actions.json-api.md +441 -0
- package/src/lib/config-editor/praxis-dynamic-form-config-editor.json-api.md +480 -0
- package/src/lib/filter-form/praxis-filter-form.json-api.md +507 -0
- package/src/lib/json-config-editor/form-json-config-editor.json-api.md +491 -0
- package/src/lib/layout-editor/praxis-layout-editor.json-api.md +432 -0
- package/src/lib/praxis-dynamic-form.json-api.md +955 -0
package/index.d.ts
CHANGED
|
@@ -7,12 +7,12 @@ import { MatDialog } from '@angular/material/dialog';
|
|
|
7
7
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
8
8
|
import { CdkDragStart, CdkDragMove, CdkDragEnd, CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
9
9
|
import * as _praxisui_core from '@praxisui/core';
|
|
10
|
-
import { AsyncConfigStorage, FormLayout, FieldMetadata, FormLayoutRule, FormRuleTargetType as FormRuleTargetType$1, PraxisJsonLogicService, FormSection, FormRow, FormColumn, FormConfig, FormActionButton, AiCapability, BackConfig, ApiEndpoint, ApiUrlEntry, FormHooksLayout, EndpointConfig, FormSubmitEvent, FormReadyEvent, FormValueChangeEvent, SyncResult, FormInitializationError, LoadingState, FormCustomActionEvent, FormActionConfirmationEvent, RichContentDocument, JsonLogicRecord, GenericCrudService, ConnectionStorage, DynamicFormService, ErrorMessageService, SchemaNormalizerService, ComponentMetadataRegistry, GlobalConfigService, ComponentKeyService, LoadingOrchestrator, ApiUrlConfig, PraxisLoadingRenderer, FormHooksRegistry, FormHookPreset, LoggerService, FormSectionHeaderAction, FormSectionHeaderConfig, FormConfigState, FieldDefinition, ComponentDocMeta, Breakpoint, IconPickerService, SurfaceOpenPayload, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
|
|
10
|
+
import { AsyncConfigStorage, FormLayout, FieldMetadata, FormLayoutRule, FormRuleTargetType as FormRuleTargetType$1, PraxisJsonLogicService, FormSection, FormRow, FormColumn, FormConfig, FormLayoutItem, FormActionButton, AiCapability, BackConfig, RichBlockHostCapabilities, ApiEndpoint, ApiUrlEntry, FormHooksLayout, EndpointConfig, FormSubmitEvent, FormReadyEvent, FormValueChangeEvent, SyncResult, FormInitializationError, LoadingState, FormCustomActionEvent, FormActionConfirmationEvent, RichContentDocument, JsonLogicRecord, GenericCrudService, ConnectionStorage, DynamicFormService, ErrorMessageService, SchemaNormalizerService, ComponentMetadataRegistry, GlobalConfigService, ComponentKeyService, LoadingOrchestrator, ApiUrlConfig, PraxisLoadingRenderer, FormHooksRegistry, FormHookPreset, LoggerService, FormSectionHeaderAction, FormSectionHeaderConfig, FormConfigState, GlobalActionCatalogEntry, FieldDefinition, ComponentDocMeta, Breakpoint, DomainRuleRequestOptions, DomainRuleService, DomainRuleMaterialization, IconPickerService, GlobalActionRef, SurfaceOpenPayload, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog, ComponentAuthoringManifest } from '@praxisui/core';
|
|
11
11
|
import * as rxjs from 'rxjs';
|
|
12
12
|
import { Observable, BehaviorSubject } from 'rxjs';
|
|
13
13
|
import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
|
|
14
14
|
import { KeyboardShortcutService } from '@praxisui/dynamic-fields';
|
|
15
|
-
import { BaseAiAdapter, PatchResult } from '@praxisui/ai';
|
|
15
|
+
import { BaseAiAdapter, AiResponseCompileResult, PatchResult } from '@praxisui/ai';
|
|
16
16
|
import { RuleBuilderConfig, RuleBuilderState } from '@praxisui/visual-builder';
|
|
17
17
|
|
|
18
18
|
declare class FormLayoutService {
|
|
@@ -44,6 +44,15 @@ declare class FormContextService {
|
|
|
44
44
|
static ɵprov: i0.ɵɵInjectableDeclaration<FormContextService>;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
type RuleApplicationDiagnosticCode = 'missing-targets' | 'missing-effect' | 'unsupported-target-type' | 'field-target-not-found' | 'target-not-found' | 'invalid-condition' | 'unsupported-property' | 'rule-evaluation-error';
|
|
48
|
+
interface RuleApplicationDiagnostic {
|
|
49
|
+
ruleId?: string;
|
|
50
|
+
ruleName?: string;
|
|
51
|
+
code: RuleApplicationDiagnosticCode;
|
|
52
|
+
targetType?: FormLayoutRule['targetType'];
|
|
53
|
+
targetId?: string;
|
|
54
|
+
details?: string[];
|
|
55
|
+
}
|
|
47
56
|
/**
|
|
48
57
|
* Structured properties resulting from rule evaluation.
|
|
49
58
|
*/
|
|
@@ -53,6 +62,13 @@ interface RuleApplicationResult {
|
|
|
53
62
|
actionProps: Record<string, Record<string, any>>;
|
|
54
63
|
rowProps: Record<string, Record<string, any>>;
|
|
55
64
|
columnProps: Record<string, Record<string, any>>;
|
|
65
|
+
visualBlockProps: Record<string, Record<string, any>>;
|
|
66
|
+
diagnostics: RuleApplicationDiagnostic[];
|
|
67
|
+
}
|
|
68
|
+
type RuleApplicationTargetType = NonNullable<FormLayoutRule['targetType']>;
|
|
69
|
+
type RuleApplicationTargetIndex = Partial<Record<RuleApplicationTargetType, ReadonlySet<string>>>;
|
|
70
|
+
interface RuleApplicationContext {
|
|
71
|
+
targetIndex?: RuleApplicationTargetIndex;
|
|
56
72
|
}
|
|
57
73
|
declare class FormRulesService {
|
|
58
74
|
private readonly jsonLogic;
|
|
@@ -64,8 +80,11 @@ declare class FormRulesService {
|
|
|
64
80
|
* @param formRules The array of rules to process.
|
|
65
81
|
* @returns A RuleEvaluationResult object containing the visibility and required states for the fields.
|
|
66
82
|
*/
|
|
67
|
-
applyRules(formGroup: FormGroup, formRules: FormLayoutRule[]): RuleApplicationResult;
|
|
83
|
+
applyRules(formGroup: FormGroup, formRules: FormLayoutRule[], context?: RuleApplicationContext): RuleApplicationResult;
|
|
84
|
+
private ruleTargetExists;
|
|
85
|
+
private normalizeRuleTargetId;
|
|
68
86
|
private evaluateCondition;
|
|
87
|
+
private addUnsupportedPropertyDiagnostics;
|
|
69
88
|
private setPath;
|
|
70
89
|
private deletePath;
|
|
71
90
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormRulesService, never>;
|
|
@@ -96,6 +115,7 @@ interface Operation {
|
|
|
96
115
|
sectionId?: string;
|
|
97
116
|
rowId?: string;
|
|
98
117
|
columnId?: string;
|
|
118
|
+
itemId?: string;
|
|
99
119
|
fieldName?: string;
|
|
100
120
|
sectionIndex?: number;
|
|
101
121
|
rowIndex?: number;
|
|
@@ -106,6 +126,7 @@ interface Operation {
|
|
|
106
126
|
sectionId?: string;
|
|
107
127
|
rowId?: string;
|
|
108
128
|
columnId?: string;
|
|
129
|
+
itemId?: string;
|
|
109
130
|
fieldName?: string;
|
|
110
131
|
sectionIndex?: number;
|
|
111
132
|
rowIndex?: number;
|
|
@@ -156,6 +177,23 @@ interface ValidationReport {
|
|
|
156
177
|
valid: boolean;
|
|
157
178
|
errors: string[];
|
|
158
179
|
}
|
|
180
|
+
type LocalFieldInsertionDiagnosticCode = 'missing-field-name' | 'missing-control-type' | 'field-name-already-exists' | 'schema-field-name-collision' | 'invalid-local-field-source';
|
|
181
|
+
interface LocalFieldInsertionDiagnostic {
|
|
182
|
+
code: LocalFieldInsertionDiagnosticCode;
|
|
183
|
+
severity: 'error' | 'warning';
|
|
184
|
+
message: string;
|
|
185
|
+
fieldName?: string;
|
|
186
|
+
}
|
|
187
|
+
interface InsertLocalFieldOptions {
|
|
188
|
+
atIndex?: number;
|
|
189
|
+
schemaFieldNames?: Iterable<string>;
|
|
190
|
+
correlationId?: string;
|
|
191
|
+
origin?: string;
|
|
192
|
+
}
|
|
193
|
+
interface InsertLocalFieldResult extends LayoutResult {
|
|
194
|
+
applied: boolean;
|
|
195
|
+
diagnostics: LocalFieldInsertionDiagnostic[];
|
|
196
|
+
}
|
|
159
197
|
declare class DynamicFormLayoutService {
|
|
160
198
|
private readonly changesSubject;
|
|
161
199
|
readonly changes$: rxjs.Observable<LayoutChange>;
|
|
@@ -178,6 +216,14 @@ declare class DynamicFormLayoutService {
|
|
|
178
216
|
private capitalizeFirstLetter;
|
|
179
217
|
private assertIndex;
|
|
180
218
|
private mutate;
|
|
219
|
+
private getFieldName;
|
|
220
|
+
private findFieldLayoutItemIndex;
|
|
221
|
+
private getLayoutInsertIndexForFieldIndex;
|
|
222
|
+
private applyLayoutItemsToColumn;
|
|
223
|
+
private insertFieldLayoutItem;
|
|
224
|
+
private removeFieldLayoutItem;
|
|
225
|
+
private hasLayoutItems;
|
|
226
|
+
private moveFieldLayoutItem;
|
|
181
227
|
moveSection(config: FormConfig, fromIndex: number, toIndex: number): LayoutResult;
|
|
182
228
|
insertSection(config: FormConfig, section: any, atIndex?: number): LayoutResult;
|
|
183
229
|
removeSection(config: FormConfig, index: number, _policy?: RemovePolicy): LayoutResult;
|
|
@@ -235,6 +281,44 @@ declare class DynamicFormLayoutService {
|
|
|
235
281
|
rowId: string;
|
|
236
282
|
columnId: string;
|
|
237
283
|
}, field: any, atIndex?: number): LayoutResult;
|
|
284
|
+
insertLocalFieldById(config: FormConfig, target: {
|
|
285
|
+
sectionId: string;
|
|
286
|
+
rowId: string;
|
|
287
|
+
columnId: string;
|
|
288
|
+
}, field: FieldMetadata, options?: InsertLocalFieldOptions): InsertLocalFieldResult;
|
|
289
|
+
insertLayoutItemById(config: FormConfig, target: {
|
|
290
|
+
sectionId: string;
|
|
291
|
+
rowId: string;
|
|
292
|
+
columnId: string;
|
|
293
|
+
}, item: FormLayoutItem, atIndex?: number): LayoutResult;
|
|
294
|
+
private prepareLocalFieldMetadata;
|
|
295
|
+
private validateLocalFieldInsertion;
|
|
296
|
+
moveLayoutItemById(config: FormConfig, from: {
|
|
297
|
+
sectionId: string;
|
|
298
|
+
rowId: string;
|
|
299
|
+
columnId: string;
|
|
300
|
+
itemId: string;
|
|
301
|
+
}, to: {
|
|
302
|
+
sectionId: string;
|
|
303
|
+
rowId: string;
|
|
304
|
+
columnId: string;
|
|
305
|
+
toIndex: number;
|
|
306
|
+
}, options?: {
|
|
307
|
+
policy?: RemovePolicy;
|
|
308
|
+
correlationId?: string;
|
|
309
|
+
origin?: string;
|
|
310
|
+
}): LayoutResult;
|
|
311
|
+
updateLayoutItemById(config: FormConfig, target: {
|
|
312
|
+
sectionId: string;
|
|
313
|
+
rowId: string;
|
|
314
|
+
columnId: string;
|
|
315
|
+
itemId: string;
|
|
316
|
+
}, item: FormLayoutItem): LayoutResult;
|
|
317
|
+
removeLayoutItemById(config: FormConfig, sectionId: string, rowId: string, columnId: string, itemId: string, options?: {
|
|
318
|
+
policy?: RemovePolicy;
|
|
319
|
+
correlationId?: string;
|
|
320
|
+
origin?: string;
|
|
321
|
+
}): LayoutResult;
|
|
238
322
|
removeFieldById(config: FormConfig, sectionId: string, rowId: string, columnId: string, fieldName: string, options?: {
|
|
239
323
|
policy?: RemovePolicy;
|
|
240
324
|
correlationId?: string;
|
|
@@ -349,6 +433,7 @@ declare class PraxisFormActionsComponent implements OnChanges, OnDestroy {
|
|
|
349
433
|
getInvalidSubmitHint(): string;
|
|
350
434
|
private applyOverrides;
|
|
351
435
|
private registerActionShortcuts;
|
|
436
|
+
private resolveButtonActionId;
|
|
352
437
|
private isSecondaryButton;
|
|
353
438
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFormActionsComponent, never>;
|
|
354
439
|
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFormActionsComponent, "praxis-form-actions", never, { "actions": { "alias": "actions"; "required": false; }; "editorialVisualContext": { "alias": "editorialVisualContext"; "required": false; }; "isSubmitting": { "alias": "isSubmitting"; "required": false; }; "formIsValid": { "alias": "formIsValid"; "required": false; }; "submitError": { "alias": "submitError"; "required": false; }; "invalidRequiredFieldLabels": { "alias": "invalidRequiredFieldLabels"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "actionOverrides": { "alias": "actionOverrides"; "required": false; }; }, { "action": "action"; }, never, never, true, never>;
|
|
@@ -374,13 +459,25 @@ declare class FormAiAdapter extends BaseAiAdapter<FormConfig> {
|
|
|
374
459
|
getCapabilities(): AiCapability[];
|
|
375
460
|
getTaskPresets(): Record<string, string[]>;
|
|
376
461
|
getRuntimeState(): Record<string, any>;
|
|
462
|
+
getAuthoringContext(): Record<string, any>;
|
|
463
|
+
compileAiResponse(response: Record<string, unknown>): AiResponseCompileResult | null;
|
|
377
464
|
createSnapshot(): FormConfig;
|
|
378
465
|
restoreSnapshot(snapshot: FormConfig): Promise<void>;
|
|
379
466
|
applyPatch(patch: Partial<FormConfig>, intent?: string): Promise<PatchResult>;
|
|
380
467
|
getContextDescription(): string;
|
|
381
468
|
private applyConfig;
|
|
382
469
|
private smartMergeFormConfig;
|
|
470
|
+
private extractIncomingRules;
|
|
471
|
+
private extractVisualBlockGuidanceOperationRule;
|
|
472
|
+
private coerceSingleOperationResponse;
|
|
473
|
+
private operationInputRecord;
|
|
474
|
+
private normalizeVisualBlockGuidanceOperationInput;
|
|
475
|
+
private visualBlockGuidanceParamsToRule;
|
|
476
|
+
private normalizeLlmRule;
|
|
477
|
+
private mergeRulesById;
|
|
383
478
|
private cloneConfig;
|
|
479
|
+
private asRecord;
|
|
480
|
+
private toNonEmptyString;
|
|
384
481
|
private isFilled;
|
|
385
482
|
}
|
|
386
483
|
|
|
@@ -481,6 +578,13 @@ interface DynamicFormApplyPlan {
|
|
|
481
578
|
diagnostics: EditorDiagnostic[];
|
|
482
579
|
}
|
|
483
580
|
|
|
581
|
+
interface PraxisDynamicFormDomainRulesOptions {
|
|
582
|
+
enabled?: boolean;
|
|
583
|
+
targetArtifactKey?: string | null;
|
|
584
|
+
targetLayer?: string | null;
|
|
585
|
+
targetArtifactType?: string | null;
|
|
586
|
+
status?: string | null;
|
|
587
|
+
}
|
|
484
588
|
interface DynamicFieldRenderErrorEvent {
|
|
485
589
|
phase: 'executeRendering' | 'detectChanges';
|
|
486
590
|
fieldName: string;
|
|
@@ -506,6 +610,21 @@ type ResolvedSectionHeaderVisual = {
|
|
|
506
610
|
text?: string;
|
|
507
611
|
ariaLabel: string;
|
|
508
612
|
};
|
|
613
|
+
interface FormColumnFieldsRenderItem {
|
|
614
|
+
kind: 'fields';
|
|
615
|
+
id: string;
|
|
616
|
+
fields: FieldMetadata[];
|
|
617
|
+
}
|
|
618
|
+
interface FormColumnRichContentRenderItem {
|
|
619
|
+
kind: 'richContent';
|
|
620
|
+
id: string;
|
|
621
|
+
document: RichContentDocument;
|
|
622
|
+
layout: 'block' | 'inline';
|
|
623
|
+
rootClassName?: string | null;
|
|
624
|
+
className?: string | null;
|
|
625
|
+
style?: Record<string, any> | null;
|
|
626
|
+
}
|
|
627
|
+
type FormColumnRenderItem = FormColumnFieldsRenderItem | FormColumnRichContentRenderItem;
|
|
509
628
|
declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
510
629
|
private crud;
|
|
511
630
|
private http;
|
|
@@ -537,12 +656,15 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
537
656
|
private hookPresets?;
|
|
538
657
|
private logger?;
|
|
539
658
|
private readonly i18n;
|
|
659
|
+
private readonly injector;
|
|
660
|
+
private readonly globalActions;
|
|
540
661
|
private readonly DEBUG;
|
|
541
662
|
private effectiveActionsCache?;
|
|
542
663
|
private effectiveActionsCacheBase?;
|
|
543
664
|
private effectiveActionsCacheOverride?;
|
|
544
665
|
private invalidRequiredFieldLabelsCache;
|
|
545
666
|
private invalidRequiredFieldLabelsSignature;
|
|
667
|
+
readonly richContentHostCapabilities: RichBlockHostCapabilities;
|
|
546
668
|
resourcePath?: string;
|
|
547
669
|
resourceId?: string | number;
|
|
548
670
|
initialValue?: Record<string, unknown> | null;
|
|
@@ -617,6 +739,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
617
739
|
disabledModeGlobal: boolean | null;
|
|
618
740
|
presentationModeGlobal: boolean | null;
|
|
619
741
|
visibleGlobal: boolean | null;
|
|
742
|
+
/** Opt-in loader for shared domain rule materializations persisted outside FormConfig. */
|
|
743
|
+
domainRules: PraxisDynamicFormDomainRulesOptions | boolean | null;
|
|
620
744
|
get effectivePresentation(): boolean;
|
|
621
745
|
get effectiveReadonly(): boolean;
|
|
622
746
|
get effectiveDisabledMode(): boolean | null;
|
|
@@ -649,6 +773,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
649
773
|
}>;
|
|
650
774
|
/** Forwarded from DynamicFieldLoader to allow host-side observability. */
|
|
651
775
|
fieldRenderError: EventEmitter<DynamicFieldRenderErrorEvent>;
|
|
776
|
+
/** Emits runtime rule diagnostics so hosts can surface or log invalid rules. */
|
|
777
|
+
ruleDiagnosticsChange: EventEmitter<RuleApplicationDiagnostic[]>;
|
|
652
778
|
isLoading: boolean;
|
|
653
779
|
submitting: boolean;
|
|
654
780
|
submitError: string | null;
|
|
@@ -667,6 +793,11 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
667
793
|
actionRuleProps: Record<string, Record<string, any>>;
|
|
668
794
|
private rowRuleProps;
|
|
669
795
|
private columnRuleProps;
|
|
796
|
+
private visualBlockRuleProps;
|
|
797
|
+
private materializedFormRules;
|
|
798
|
+
private materializedFormRulesLoadSignature;
|
|
799
|
+
ruleApplicationDiagnostics: RuleApplicationDiagnostic[];
|
|
800
|
+
private ruleApplicationDiagnosticsSignature;
|
|
670
801
|
private pendingEntityId;
|
|
671
802
|
private loadedEntityId;
|
|
672
803
|
private hydratedEntityId;
|
|
@@ -677,6 +808,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
677
808
|
private schemaRootHooks?;
|
|
678
809
|
private destroy$;
|
|
679
810
|
private formValueChangesSubscription;
|
|
811
|
+
private dependencyPolicySubscription;
|
|
680
812
|
private formBuildCycleId;
|
|
681
813
|
private suppressedValueChangeBuildId;
|
|
682
814
|
private pendingBootstrapValueChangeBuildId;
|
|
@@ -804,10 +936,21 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
804
936
|
private loadEntity;
|
|
805
937
|
private buildFormFromConfig;
|
|
806
938
|
private resetFormValueChangesSubscription;
|
|
939
|
+
private resetDependencyPolicySubscription;
|
|
940
|
+
private setupEntityLookupDependencyPolicies;
|
|
941
|
+
private applyEntityLookupDependencyPolicy;
|
|
942
|
+
private isEntityLookupField;
|
|
943
|
+
private resolveFieldDependencyNames;
|
|
944
|
+
private allowEntityLookupLegacyRetention;
|
|
945
|
+
private hasMeaningfulDependencyValue;
|
|
946
|
+
private setEntityLookupDependencyConflict;
|
|
947
|
+
private clearEntityLookupDependencyConflict;
|
|
948
|
+
private resolveEntityLookupDependencyValidationMessage;
|
|
807
949
|
private scheduleValueChangeBootstrapRelease;
|
|
808
950
|
private hasInteractiveFormState;
|
|
809
951
|
private captureFormRuntimeState;
|
|
810
952
|
private getDirtyFieldNames;
|
|
953
|
+
private collectDirtyFieldNames;
|
|
811
954
|
private buildCurrentFormRuntimeContext;
|
|
812
955
|
private buildRestoreTargetContext;
|
|
813
956
|
private isCompatibleRuntimeStateContext;
|
|
@@ -818,6 +961,12 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
818
961
|
* Some core builds do not enforce required start/end for dateRange fields.
|
|
819
962
|
*/
|
|
820
963
|
private applyDateRangeRequiredValidators;
|
|
964
|
+
/**
|
|
965
|
+
* Backward-compatible required validation for multiple entity lookups.
|
|
966
|
+
* Some form-control builders treat `required` correctly for single lookups but
|
|
967
|
+
* do not mark empty collections as required when `multiple=true`.
|
|
968
|
+
*/
|
|
969
|
+
private applyEntityLookupCollectionRequiredValidators;
|
|
821
970
|
private isMountAnimationDisabled;
|
|
822
971
|
private triggerMountAnimation;
|
|
823
972
|
protected getMountDurationVar(): string | null;
|
|
@@ -828,7 +977,12 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
828
977
|
private saveConnection;
|
|
829
978
|
disconnect(): void;
|
|
830
979
|
onToolbarRequestClose(): void;
|
|
980
|
+
private getActiveFormRules;
|
|
981
|
+
private refreshMaterializedFormRules;
|
|
982
|
+
private resolveDomainRulesOptions;
|
|
831
983
|
private evaluateAndApplyRules;
|
|
984
|
+
private buildRuleApplicationTargetIndex;
|
|
985
|
+
private setRuleApplicationDiagnostics;
|
|
832
986
|
isSectionCollapsed(section?: FormSection): boolean;
|
|
833
987
|
isSectionCollapsible(section?: FormSection): boolean;
|
|
834
988
|
private getSectionRuleProps;
|
|
@@ -888,11 +1042,19 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
888
1042
|
toggleSectionCollapse(event: Event, section: FormSection): void;
|
|
889
1043
|
sectionPanelId(section: FormSection, index: number): string;
|
|
890
1044
|
getSectionCollapsedSummary(section: FormSection): string;
|
|
1045
|
+
getColumnItems(column: FormColumn): FormLayoutItem[];
|
|
1046
|
+
getColumnRenderItems(column: FormColumn): FormColumnRenderItem[];
|
|
891
1047
|
getColumnFields(column: {
|
|
892
|
-
fields
|
|
1048
|
+
fields?: string[];
|
|
1049
|
+
items?: FormLayoutItem[];
|
|
893
1050
|
id?: string;
|
|
894
1051
|
}): FieldMetadata[];
|
|
1052
|
+
getRichContentLayoutItemDocument(item: FormLayoutItem): RichContentDocument | null;
|
|
1053
|
+
getRichContentLayoutItemLayout(item: FormLayoutItem): 'block' | 'inline';
|
|
1054
|
+
private getVisualBlockRuleProps;
|
|
1055
|
+
private isRichContentLayoutItemVisible;
|
|
895
1056
|
private getColumnFieldsSignature;
|
|
1057
|
+
private getColumnItemsSignature;
|
|
896
1058
|
private getColumnRuleProps;
|
|
897
1059
|
private buildFieldRuleMetadataOverrides;
|
|
898
1060
|
private normalizeRuleFieldOptions;
|
|
@@ -910,7 +1072,12 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
910
1072
|
private _getConfirmationMessageForAliases;
|
|
911
1073
|
private _showConfirmationDialog;
|
|
912
1074
|
onFormAction(event: PraxisFormActionEvent): void;
|
|
1075
|
+
private dispatchRichContentAction;
|
|
1076
|
+
private isRichContentActionAvailable;
|
|
1077
|
+
private hasRichContentCapability;
|
|
1078
|
+
private buildRichContentActionContext;
|
|
913
1079
|
private _executeAction;
|
|
1080
|
+
private getFormActionEventId;
|
|
914
1081
|
onSubmit(): Promise<void>;
|
|
915
1082
|
private navigateAfterSave;
|
|
916
1083
|
private shouldConfirmCancelOnDirty;
|
|
@@ -978,6 +1145,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
978
1145
|
private getControlTypeName;
|
|
979
1146
|
private applyNullDeletionPatch;
|
|
980
1147
|
private stripNullMarkersFromPatch;
|
|
1148
|
+
private mergeMetadataObjectPatch;
|
|
981
1149
|
private deleteMetadataPath;
|
|
982
1150
|
private getMetadataPath;
|
|
983
1151
|
/**
|
|
@@ -1069,7 +1237,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1069
1237
|
private applyPresentationVars;
|
|
1070
1238
|
private applyPresentationConfig;
|
|
1071
1239
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicForm, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
1072
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicForm, "praxis-dynamic-form", never, { "resourcePath": { "alias": "resourcePath"; "required": false; }; "resourceId": { "alias": "resourceId"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "editorialContext": { "alias": "editorialContext"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "config": { "alias": "config"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "schemaSource": { "alias": "schemaSource"; "required": false; }; "schemaUrl": { "alias": "schemaUrl"; "required": false; }; "submitUrl": { "alias": "submitUrl"; "required": false; }; "submitMethod": { "alias": "submitMethod"; "required": false; }; "responseSchemaUrl": { "alias": "responseSchemaUrl"; "required": false; }; "apiEndpointKey": { "alias": "apiEndpointKey"; "required": false; }; "apiUrlEntry": { "alias": "apiUrlEntry"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "backConfig": { "alias": "backConfig"; "required": false; }; "hooks": { "alias": "hooks"; "required": false; }; "removeEmptyContainersOnSave": { "alias": "removeEmptyContainersOnSave"; "required": false; }; "reactiveValidation": { "alias": "reactiveValidation"; "required": false; }; "reactiveValidationDebounceMs": { "alias": "reactiveValidationDebounceMs"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "readonlyModeGlobal": { "alias": "readonlyModeGlobal"; "required": false; }; "disabledModeGlobal": { "alias": "disabledModeGlobal"; "required": false; }; "presentationModeGlobal": { "alias": "presentationModeGlobal"; "required": false; }; "visibleGlobal": { "alias": "visibleGlobal"; "required": false; }; "customEndpoints": { "alias": "customEndpoints"; "required": false; }; }, { "formSubmit": "formSubmit"; "formCancel": "formCancel"; "formReset": "formReset"; "configChange": "configChange"; "formReady": "formReady"; "valueChange": "valueChange"; "syncCompleted": "syncCompleted"; "initializationError": "initializationError"; "loadingStateChange": "loadingStateChange"; "enableCustomizationChange": "enableCustomizationChange"; "customAction": "customAction"; "actionConfirmation": "actionConfirmation"; "schemaStatusChange": "schemaStatusChange"; "fieldRenderError": "fieldRenderError"; }, never, never, true, never>;
|
|
1240
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicForm, "praxis-dynamic-form", never, { "resourcePath": { "alias": "resourcePath"; "required": false; }; "resourceId": { "alias": "resourceId"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "editorialContext": { "alias": "editorialContext"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "config": { "alias": "config"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "schemaSource": { "alias": "schemaSource"; "required": false; }; "schemaUrl": { "alias": "schemaUrl"; "required": false; }; "submitUrl": { "alias": "submitUrl"; "required": false; }; "submitMethod": { "alias": "submitMethod"; "required": false; }; "responseSchemaUrl": { "alias": "responseSchemaUrl"; "required": false; }; "apiEndpointKey": { "alias": "apiEndpointKey"; "required": false; }; "apiUrlEntry": { "alias": "apiUrlEntry"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "backConfig": { "alias": "backConfig"; "required": false; }; "hooks": { "alias": "hooks"; "required": false; }; "removeEmptyContainersOnSave": { "alias": "removeEmptyContainersOnSave"; "required": false; }; "reactiveValidation": { "alias": "reactiveValidation"; "required": false; }; "reactiveValidationDebounceMs": { "alias": "reactiveValidationDebounceMs"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "readonlyModeGlobal": { "alias": "readonlyModeGlobal"; "required": false; }; "disabledModeGlobal": { "alias": "disabledModeGlobal"; "required": false; }; "presentationModeGlobal": { "alias": "presentationModeGlobal"; "required": false; }; "visibleGlobal": { "alias": "visibleGlobal"; "required": false; }; "domainRules": { "alias": "domainRules"; "required": false; }; "customEndpoints": { "alias": "customEndpoints"; "required": false; }; }, { "formSubmit": "formSubmit"; "formCancel": "formCancel"; "formReset": "formReset"; "configChange": "configChange"; "formReady": "formReady"; "valueChange": "valueChange"; "syncCompleted": "syncCompleted"; "initializationError": "initializationError"; "loadingStateChange": "loadingStateChange"; "enableCustomizationChange": "enableCustomizationChange"; "customAction": "customAction"; "actionConfirmation": "actionConfirmation"; "schemaStatusChange": "schemaStatusChange"; "fieldRenderError": "fieldRenderError"; "ruleDiagnosticsChange": "ruleDiagnosticsChange"; }, never, never, true, never>;
|
|
1073
1241
|
}
|
|
1074
1242
|
|
|
1075
1243
|
declare class FormConfigService {
|
|
@@ -1147,6 +1315,38 @@ declare class JsonConfigEditorComponent implements OnInit, OnDestroy {
|
|
|
1147
1315
|
static ɵcmp: i0.ɵɵComponentDeclaration<JsonConfigEditorComponent, "form-json-config-editor", never, { "config": { "alias": "config"; "required": false; }; "document": { "alias": "document"; "required": false; }; }, { "configChange": "configChange"; "documentChange": "documentChange"; "validationChange": "validationChange"; "editorEvent": "editorEvent"; }, never, never, true, never>;
|
|
1148
1316
|
}
|
|
1149
1317
|
|
|
1318
|
+
interface VisualBlockRuleNodeOption {
|
|
1319
|
+
id: string;
|
|
1320
|
+
label: string;
|
|
1321
|
+
kind: string;
|
|
1322
|
+
roles: Array<'text' | 'title' | 'message'>;
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
type RuleAuthoringStatus = 'valid' | 'invalid-target' | 'invalid-condition' | 'unsupported-property' | 'sanitized-property' | 'runtime-only' | 'visual-builder-compatible' | 'llm-generated-pending-review';
|
|
1326
|
+
interface FormRulePropertyIssue {
|
|
1327
|
+
property: string;
|
|
1328
|
+
reason: 'unsupported-property' | 'invalid-value' | 'sanitized-value';
|
|
1329
|
+
}
|
|
1330
|
+
interface FormRuleTargetDiagnostic {
|
|
1331
|
+
type: NonNullable<FormLayoutRule['targetType']>;
|
|
1332
|
+
id: string;
|
|
1333
|
+
exists: boolean;
|
|
1334
|
+
}
|
|
1335
|
+
interface FormRuleDiagnostics {
|
|
1336
|
+
ruleId: string;
|
|
1337
|
+
ruleName?: string;
|
|
1338
|
+
status: RuleAuthoringStatus[];
|
|
1339
|
+
targetRefs: FormRuleTargetDiagnostic[];
|
|
1340
|
+
conditionRefs: string[];
|
|
1341
|
+
acceptedProperties: string[];
|
|
1342
|
+
rejectedProperties: string[];
|
|
1343
|
+
acceptedPropertiesWhenFalse: string[];
|
|
1344
|
+
rejectedPropertiesWhenFalse: string[];
|
|
1345
|
+
propertyIssues?: FormRulePropertyIssue[];
|
|
1346
|
+
propertyIssuesWhenFalse?: FormRulePropertyIssue[];
|
|
1347
|
+
runtimeOnlyReason?: string;
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1150
1350
|
declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, OnInit, OnDestroy {
|
|
1151
1351
|
private storage;
|
|
1152
1352
|
private configService;
|
|
@@ -1157,6 +1357,15 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1157
1357
|
ruleBuilderConfig: RuleBuilderConfig;
|
|
1158
1358
|
ruleBuilderState?: RuleBuilderState;
|
|
1159
1359
|
currentRules: FormLayoutRule[];
|
|
1360
|
+
ruleDiagnostics: FormRuleDiagnostics[];
|
|
1361
|
+
visualBlockNodeOptions: Record<string, VisualBlockRuleNodeOption[]>;
|
|
1362
|
+
ruleDiagnosticsSummary: {
|
|
1363
|
+
total: number;
|
|
1364
|
+
invalid: number;
|
|
1365
|
+
runtimeOnly: number;
|
|
1366
|
+
unsupported: number;
|
|
1367
|
+
pendingReview: number;
|
|
1368
|
+
};
|
|
1160
1369
|
private initialConfig;
|
|
1161
1370
|
private initialDocument;
|
|
1162
1371
|
private readonly openedWithCanonicalDocument;
|
|
@@ -1200,13 +1409,16 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1200
1409
|
};
|
|
1201
1410
|
private destroy$;
|
|
1202
1411
|
private hasProcessedInitialRuleState;
|
|
1412
|
+
private jsonEditorIsValid;
|
|
1413
|
+
private globalActionValidationIssues;
|
|
1414
|
+
private readonly globalActionCatalog;
|
|
1203
1415
|
isDirty$: BehaviorSubject<boolean>;
|
|
1204
1416
|
isValid$: BehaviorSubject<boolean>;
|
|
1205
1417
|
isBusy$: BehaviorSubject<boolean>;
|
|
1206
1418
|
private lastRulesSignature;
|
|
1207
1419
|
private readonly DEBUG;
|
|
1208
1420
|
private debugLog;
|
|
1209
|
-
constructor(storage: AsyncConfigStorage, configService: FormConfigService, settingsPanel: SettingsPanelService, cdr: ChangeDetectorRef, injectedData?: any);
|
|
1421
|
+
constructor(storage: AsyncConfigStorage, configService: FormConfigService, settingsPanel: SettingsPanelService, cdr: ChangeDetectorRef, globalActionCatalogSource?: ReadonlyArray<GlobalActionCatalogEntry[]>, injectedData?: any);
|
|
1210
1422
|
ngOnInit(): void;
|
|
1211
1423
|
reset(): void;
|
|
1212
1424
|
updateDirtyState(reason?: string): void;
|
|
@@ -1216,7 +1428,24 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1216
1428
|
onJsonValidationChange(result: JsonValidationResult): void;
|
|
1217
1429
|
onJsonEditorEvent(_event: JsonEditorEvent): void;
|
|
1218
1430
|
onConfigChange(newConfig: FormConfig): void;
|
|
1431
|
+
private updateValidityState;
|
|
1432
|
+
private collectGlobalActionValidationIssues;
|
|
1433
|
+
private collectGlobalActionValidationTargets;
|
|
1434
|
+
private findGlobalActionCatalogEntry;
|
|
1435
|
+
private buildGlobalActionCatalog;
|
|
1219
1436
|
onRulesChanged(state: RuleBuilderState): void;
|
|
1437
|
+
onRulePropertiesChanged(rules: FormLayoutRule[]): void;
|
|
1438
|
+
private computeRuleDiagnosticsSummary;
|
|
1439
|
+
getRuleStatusLabel(diagnostic: FormRuleDiagnostics): string;
|
|
1440
|
+
getRuleStatusTone(diagnostic: FormRuleDiagnostics): 'ok' | 'warn' | 'error';
|
|
1441
|
+
canAcceptPendingLlmRule(diagnostic: FormRuleDiagnostics): boolean;
|
|
1442
|
+
canApplyRulePropertyFix(diagnostic: FormRuleDiagnostics): boolean;
|
|
1443
|
+
applyRulePropertyFix(ruleId: string): void;
|
|
1444
|
+
acceptPendingLlmRule(ruleId: string): void;
|
|
1445
|
+
getRuleDiagnosticDetails(diagnostic: FormRuleDiagnostics): string[];
|
|
1446
|
+
private getRulePropertyIssueNames;
|
|
1447
|
+
private markLlmRuleAccepted;
|
|
1448
|
+
private refreshRuleDiagnostics;
|
|
1220
1449
|
get jsonDocument(): DynamicFormAuthoringDocument;
|
|
1221
1450
|
onBackConfigChange(): void;
|
|
1222
1451
|
isBindingsBlockPersisted(): boolean;
|
|
@@ -1229,7 +1458,15 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1229
1458
|
onPresentationPrefsChange(reason: string): void;
|
|
1230
1459
|
onSchemaPrefsChange(reason: string): void;
|
|
1231
1460
|
private createRuleBuilderConfig;
|
|
1461
|
+
private getVisualBuilderRulePropertySchema;
|
|
1232
1462
|
private mapMetadataToSchema;
|
|
1463
|
+
private getVisualBlockTargetLabel;
|
|
1464
|
+
private getRuleFieldLabel;
|
|
1465
|
+
private getRuleFieldDescription;
|
|
1466
|
+
private refreshVisualBlockNodeOptions;
|
|
1467
|
+
private collectVisualBlockNodeOptions;
|
|
1468
|
+
private getVisualBlockNodeRoles;
|
|
1469
|
+
private findRichContentNodeText;
|
|
1233
1470
|
private mapDataTypeToFieldType;
|
|
1234
1471
|
ngOnDestroy(): void;
|
|
1235
1472
|
onLayoutSelect(event: any): void;
|
|
@@ -1248,7 +1485,7 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1248
1485
|
private toPresentationSnapshot;
|
|
1249
1486
|
private toSchemaPrefsSnapshot;
|
|
1250
1487
|
private toBackConfigSnapshot;
|
|
1251
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormConfigEditor, [null, null, null, null, { optional: true; }]>;
|
|
1488
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormConfigEditor, [null, null, null, null, { optional: true; }, { optional: true; }]>;
|
|
1252
1489
|
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicFormConfigEditor, "praxis-dynamic-form-config-editor", never, {}, {}, never, never, true, never>;
|
|
1253
1490
|
}
|
|
1254
1491
|
interface FormConfigLike {
|
|
@@ -1323,11 +1560,53 @@ declare class LayoutPrefsService {
|
|
|
1323
1560
|
static ɵprov: i0.ɵɵInjectableDeclaration<LayoutPrefsService>;
|
|
1324
1561
|
}
|
|
1325
1562
|
|
|
1563
|
+
type VisualBlockPresetId = 'text' | 'notice' | 'divider' | 'infoCard' | 'callout' | 'keyValueList' | 'recordSummary' | 'lookupCard' | 'disclosure' | 'emptyState';
|
|
1564
|
+
interface VisualBlockPreset {
|
|
1565
|
+
id: VisualBlockPresetId;
|
|
1566
|
+
labelKey: string;
|
|
1567
|
+
icon: string;
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1326
1570
|
interface FieldDropEvent {
|
|
1327
1571
|
event: CdkDragDrop<any>;
|
|
1328
1572
|
sectionIndex: number;
|
|
1329
1573
|
rowIndex: number;
|
|
1330
1574
|
}
|
|
1575
|
+
interface VisualBlockEvent {
|
|
1576
|
+
sectionIndex: number;
|
|
1577
|
+
rowIndex: number;
|
|
1578
|
+
columnIndex: number;
|
|
1579
|
+
itemId: string;
|
|
1580
|
+
}
|
|
1581
|
+
interface AddVisualBlockEvent {
|
|
1582
|
+
sectionIndex: number;
|
|
1583
|
+
rowIndex: number;
|
|
1584
|
+
columnIndex: number;
|
|
1585
|
+
presetId: VisualBlockPresetId;
|
|
1586
|
+
}
|
|
1587
|
+
interface AddApiFieldEvent {
|
|
1588
|
+
sectionIndex: number;
|
|
1589
|
+
rowIndex: number;
|
|
1590
|
+
columnIndex: number;
|
|
1591
|
+
fieldName: string;
|
|
1592
|
+
}
|
|
1593
|
+
interface AddLocalFieldEvent {
|
|
1594
|
+
sectionIndex: number;
|
|
1595
|
+
rowIndex: number;
|
|
1596
|
+
columnIndex: number;
|
|
1597
|
+
}
|
|
1598
|
+
interface EditFieldEvent {
|
|
1599
|
+
sectionIndex: number;
|
|
1600
|
+
rowIndex: number;
|
|
1601
|
+
columnIndex: number;
|
|
1602
|
+
fieldName: string;
|
|
1603
|
+
}
|
|
1604
|
+
interface MoveVisualBlockEvent extends VisualBlockEvent {
|
|
1605
|
+
direction: -1 | 1;
|
|
1606
|
+
}
|
|
1607
|
+
interface MoveVisualBlockToColumnEvent extends VisualBlockEvent {
|
|
1608
|
+
targetColumnIndex: number;
|
|
1609
|
+
}
|
|
1331
1610
|
/**
|
|
1332
1611
|
* Editor component for configuring sections, rows and fields of a dynamic form.
|
|
1333
1612
|
* Provides a collapsible palette of available fields.
|
|
@@ -1337,13 +1616,19 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1337
1616
|
configChange: EventEmitter<FormConfig>;
|
|
1338
1617
|
paletteCollapsed: boolean;
|
|
1339
1618
|
protected readonly prefs: LayoutPrefsService;
|
|
1619
|
+
private readonly layoutService;
|
|
1620
|
+
private readonly settingsPanel;
|
|
1621
|
+
private readonly i18n;
|
|
1622
|
+
private visualBlockIdSequence;
|
|
1623
|
+
private localFieldSequence;
|
|
1340
1624
|
protected readonly colorTokens: typeof LayoutColorToken;
|
|
1341
1625
|
selected: {
|
|
1342
|
-
type: 'section' | 'row' | 'column' | 'field';
|
|
1626
|
+
type: 'section' | 'row' | 'column' | 'field' | 'visualBlock';
|
|
1343
1627
|
sectionIndex?: number;
|
|
1344
1628
|
rowIndex?: number;
|
|
1345
1629
|
columnIndex?: number;
|
|
1346
1630
|
fieldName?: string;
|
|
1631
|
+
itemId?: string;
|
|
1347
1632
|
} | null;
|
|
1348
1633
|
gapGlobal: number;
|
|
1349
1634
|
setGapGlobal(val: number | string): void;
|
|
@@ -1368,6 +1653,7 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1368
1653
|
* Fields that are not yet placed in any section/column of the layout.
|
|
1369
1654
|
*/
|
|
1370
1655
|
get availableFields(): FieldMetadata[];
|
|
1656
|
+
t(key: string, params?: Record<string, string | number | boolean | null | undefined>): string;
|
|
1371
1657
|
get columnDropListIds(): string[];
|
|
1372
1658
|
getColumnId(sectionIndex: number, rowIndex: number, columnIndex: number): string;
|
|
1373
1659
|
private parseColumnId;
|
|
@@ -1378,10 +1664,30 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1378
1664
|
selectRow(sectionIndex: number, rowIndex: number): void;
|
|
1379
1665
|
selectColumn(sectionIndex: number, rowIndex: number, columnIndex: number): void;
|
|
1380
1666
|
dropField({ event }: FieldDropEvent): void;
|
|
1667
|
+
private getColumnLayoutItemByIndex;
|
|
1668
|
+
private getColumnTargetByIndex;
|
|
1669
|
+
private getLayoutItemTargetByIndex;
|
|
1381
1670
|
dropSection(event: CdkDragDrop<FormSection[]>): void;
|
|
1382
1671
|
addSection(): void;
|
|
1383
1672
|
removeSection(index: number): void;
|
|
1384
1673
|
onSectionUpdated(index: number, updatedSection: FormSection): void;
|
|
1674
|
+
addVisualBlockToColumn(event: AddVisualBlockEvent): void;
|
|
1675
|
+
private createVisualBlockItemId;
|
|
1676
|
+
addApiFieldToColumn(event: AddApiFieldEvent): void;
|
|
1677
|
+
addLocalFieldToColumn(event: AddLocalFieldEvent): void;
|
|
1678
|
+
openFieldMetadataEditor(event: EditFieldEvent): void;
|
|
1679
|
+
private openFieldMetadataEditorInternal;
|
|
1680
|
+
private applyFieldMetadataPatch;
|
|
1681
|
+
private createLocalFieldName;
|
|
1682
|
+
openVisualBlockEditor(event: {
|
|
1683
|
+
sectionIndex: number;
|
|
1684
|
+
rowIndex: number;
|
|
1685
|
+
columnIndex: number;
|
|
1686
|
+
itemId: string;
|
|
1687
|
+
}): void;
|
|
1688
|
+
moveVisualBlock(event: MoveVisualBlockEvent): void;
|
|
1689
|
+
moveVisualBlockToColumn(event: MoveVisualBlockToColumnEvent): void;
|
|
1690
|
+
removeVisualBlock(event: VisualBlockEvent): void;
|
|
1385
1691
|
private emitNewConfig;
|
|
1386
1692
|
onApplyStyleToAll(patch: Partial<FormSection>): void;
|
|
1387
1693
|
trackBySection(index: number, s: FormSection & {
|
|
@@ -1394,15 +1700,17 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1394
1700
|
declare class RowConfiguratorComponent implements OnChanges {
|
|
1395
1701
|
row: FormRow;
|
|
1396
1702
|
fieldMetadata: FieldMetadata[];
|
|
1703
|
+
availableFields: FieldMetadata[];
|
|
1397
1704
|
sectionIndex: number;
|
|
1398
1705
|
rowIndex: number;
|
|
1399
1706
|
isLastRow: boolean;
|
|
1400
1707
|
selected: {
|
|
1401
|
-
type: 'section' | 'row' | 'column' | 'field';
|
|
1708
|
+
type: 'section' | 'row' | 'column' | 'field' | 'visualBlock';
|
|
1402
1709
|
sectionIndex?: number;
|
|
1403
1710
|
rowIndex?: number;
|
|
1404
1711
|
columnIndex?: number;
|
|
1405
1712
|
fieldName?: string;
|
|
1713
|
+
itemId?: string;
|
|
1406
1714
|
} | null;
|
|
1407
1715
|
availableFieldsListId: string | null;
|
|
1408
1716
|
connectedDropListIds: string[];
|
|
@@ -1412,8 +1720,51 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1412
1720
|
remove: EventEmitter<void>;
|
|
1413
1721
|
applyRowGapAll: EventEmitter<number>;
|
|
1414
1722
|
fieldDrop: EventEmitter<CdkDragDrop<any, any, any>>;
|
|
1723
|
+
addVisualBlock: EventEmitter<{
|
|
1724
|
+
rowIndex: number;
|
|
1725
|
+
columnIndex: number;
|
|
1726
|
+
presetId: VisualBlockPresetId;
|
|
1727
|
+
}>;
|
|
1728
|
+
addApiField: EventEmitter<{
|
|
1729
|
+
rowIndex: number;
|
|
1730
|
+
columnIndex: number;
|
|
1731
|
+
fieldName: string;
|
|
1732
|
+
}>;
|
|
1733
|
+
addLocalField: EventEmitter<{
|
|
1734
|
+
rowIndex: number;
|
|
1735
|
+
columnIndex: number;
|
|
1736
|
+
}>;
|
|
1737
|
+
editField: EventEmitter<{
|
|
1738
|
+
rowIndex: number;
|
|
1739
|
+
columnIndex: number;
|
|
1740
|
+
fieldName: string;
|
|
1741
|
+
}>;
|
|
1742
|
+
editVisualBlock: EventEmitter<{
|
|
1743
|
+
rowIndex: number;
|
|
1744
|
+
columnIndex: number;
|
|
1745
|
+
itemId: string;
|
|
1746
|
+
}>;
|
|
1747
|
+
moveVisualBlock: EventEmitter<{
|
|
1748
|
+
rowIndex: number;
|
|
1749
|
+
columnIndex: number;
|
|
1750
|
+
itemId: string;
|
|
1751
|
+
direction: -1 | 1;
|
|
1752
|
+
}>;
|
|
1753
|
+
moveVisualBlockToColumn: EventEmitter<{
|
|
1754
|
+
rowIndex: number;
|
|
1755
|
+
columnIndex: number;
|
|
1756
|
+
targetColumnIndex: number;
|
|
1757
|
+
itemId: string;
|
|
1758
|
+
}>;
|
|
1759
|
+
removeVisualBlock: EventEmitter<{
|
|
1760
|
+
rowIndex: number;
|
|
1761
|
+
columnIndex: number;
|
|
1762
|
+
itemId: string;
|
|
1763
|
+
}>;
|
|
1415
1764
|
select: EventEmitter<any>;
|
|
1416
1765
|
activeDropIndex: number | null;
|
|
1766
|
+
protected readonly visualBlockPresets: readonly VisualBlockPreset[];
|
|
1767
|
+
private readonly i18n;
|
|
1417
1768
|
private hoverTimer;
|
|
1418
1769
|
protected readonly breakpoints: Breakpoint[];
|
|
1419
1770
|
previewBreakpoint: Breakpoint;
|
|
@@ -1426,11 +1777,26 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1426
1777
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1427
1778
|
private rebuildConnectedColumnsCache;
|
|
1428
1779
|
getFieldByName(fieldName: string): FieldMetadata;
|
|
1429
|
-
|
|
1780
|
+
getColumnLayoutItems(column: FormColumn): FormLayoutItem[];
|
|
1781
|
+
trackLayoutItem(_: number, item: FormLayoutItem): string;
|
|
1782
|
+
hasColumnContent(column: FormColumn): boolean;
|
|
1783
|
+
getVisualBlockLabel(item: FormLayoutItem): string;
|
|
1784
|
+
private findRichContentLabel;
|
|
1785
|
+
private findRichNodeLabel;
|
|
1786
|
+
t(key: string, params?: Record<string, string | number | boolean | null | undefined>): string;
|
|
1787
|
+
getFieldLabel(field: FieldMetadata): string;
|
|
1788
|
+
selectVisualBlock(columnIndex: number, item: FormLayoutItem, event: Event): void;
|
|
1789
|
+
openVisualBlockEditor(columnIndex: number, item: FormLayoutItem, event: Event): void;
|
|
1790
|
+
moveVisualBlockItem(columnIndex: number, item: FormLayoutItem, direction: -1 | 1, event: Event): void;
|
|
1791
|
+
canMoveVisualBlockToColumn(columnIndex: number, direction: -1 | 1): boolean;
|
|
1792
|
+
moveVisualBlockToAdjacentColumn(columnIndex: number, item: FormLayoutItem, direction: -1 | 1, event: Event): void;
|
|
1793
|
+
removeVisualBlockItem(columnIndex: number, item: FormLayoutItem, event: Event): void;
|
|
1794
|
+
drop(event: CdkDragDrop<FormLayoutItem[], FormLayoutItem[] | FieldMetadata[], FormLayoutItem | FieldMetadata>): void;
|
|
1430
1795
|
selectRow(): void;
|
|
1431
1796
|
openColumnConfig(index: number): void;
|
|
1432
1797
|
selectColumn(index: number, event: MouseEvent): void;
|
|
1433
|
-
selectField(fieldName: string, event: MouseEvent): void;
|
|
1798
|
+
selectField(fieldName: string, columnIndex: number, event: MouseEvent): void;
|
|
1799
|
+
openFieldEditor(fieldName: string, columnIndex: number, event: Event): void;
|
|
1434
1800
|
openRowMenu(): void;
|
|
1435
1801
|
onMenuClosed(): void;
|
|
1436
1802
|
onDropEnter(index: number): void;
|
|
@@ -1444,6 +1810,9 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1444
1810
|
removeRow(): void;
|
|
1445
1811
|
moveColumn(index: number, direction: number): void;
|
|
1446
1812
|
clearColumn(index: number): void;
|
|
1813
|
+
addVisualBlockToColumn(index: number, presetId: VisualBlockPresetId): void;
|
|
1814
|
+
addApiFieldToColumn(index: number, fieldName: string): void;
|
|
1815
|
+
addLocalFieldToColumn(index: number): void;
|
|
1447
1816
|
addFieldToColumn(index: number): void;
|
|
1448
1817
|
getColumnId(index: number): string;
|
|
1449
1818
|
private generateId;
|
|
@@ -1467,7 +1836,7 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1467
1836
|
adjustOffset(columnIndex: number, delta: number): void;
|
|
1468
1837
|
getSuggestedSpan(columnIndex: number): number | null;
|
|
1469
1838
|
static ɵfac: i0.ɵɵFactoryDeclaration<RowConfiguratorComponent, never>;
|
|
1470
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RowConfiguratorComponent, "praxis-row-configurator", never, { "row": { "alias": "row"; "required": false; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; "sectionIndex": { "alias": "sectionIndex"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "isLastRow": { "alias": "isLastRow"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "availableFieldsListId": { "alias": "availableFieldsListId"; "required": false; }; "connectedDropListIds": { "alias": "connectedDropListIds"; "required": false; }; "gapGlobal": { "alias": "gapGlobal"; "required": false; }; }, { "rowChange": "rowChange"; "remove": "remove"; "applyRowGapAll": "applyRowGapAll"; "fieldDrop": "fieldDrop"; "select": "select"; }, never, never, true, never>;
|
|
1839
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RowConfiguratorComponent, "praxis-row-configurator", never, { "row": { "alias": "row"; "required": false; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; "availableFields": { "alias": "availableFields"; "required": false; }; "sectionIndex": { "alias": "sectionIndex"; "required": false; }; "rowIndex": { "alias": "rowIndex"; "required": false; }; "isLastRow": { "alias": "isLastRow"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "availableFieldsListId": { "alias": "availableFieldsListId"; "required": false; }; "connectedDropListIds": { "alias": "connectedDropListIds"; "required": false; }; "gapGlobal": { "alias": "gapGlobal"; "required": false; }; }, { "rowChange": "rowChange"; "remove": "remove"; "applyRowGapAll": "applyRowGapAll"; "fieldDrop": "fieldDrop"; "addVisualBlock": "addVisualBlock"; "addApiField": "addApiField"; "addLocalField": "addLocalField"; "editField": "editField"; "editVisualBlock": "editVisualBlock"; "moveVisualBlock": "moveVisualBlock"; "moveVisualBlockToColumn": "moveVisualBlockToColumn"; "removeVisualBlock": "removeVisualBlock"; "select": "select"; }, never, never, true, never>;
|
|
1471
1840
|
}
|
|
1472
1841
|
|
|
1473
1842
|
declare class FieldConfiguratorComponent {
|
|
@@ -1490,6 +1859,30 @@ declare const PRAXIS_DYNAMIC_FORM_COMPONENT_METADATA: ComponentDocMeta;
|
|
|
1490
1859
|
/** Provider para auto-registrar metadados do componente Dynamic Form. */
|
|
1491
1860
|
declare function providePraxisDynamicFormMetadata(): Provider;
|
|
1492
1861
|
|
|
1862
|
+
interface DomainRuleFormRulesRequestOptions extends DomainRuleRequestOptions {
|
|
1863
|
+
targetLayer?: string;
|
|
1864
|
+
targetArtifactType?: string;
|
|
1865
|
+
status?: string;
|
|
1866
|
+
}
|
|
1867
|
+
type DomainRuleMaterializedFormLayoutRule = FormLayoutRule & {
|
|
1868
|
+
metadata?: Record<string, unknown>;
|
|
1869
|
+
};
|
|
1870
|
+
declare class DomainRuleFormRulesService {
|
|
1871
|
+
private readonly domainRules;
|
|
1872
|
+
constructor(domainRules: DomainRuleService);
|
|
1873
|
+
listRulesForForm(targetArtifactKey: string, options?: DomainRuleFormRulesRequestOptions): Observable<DomainRuleMaterializedFormLayoutRule[]>;
|
|
1874
|
+
materializationsToFormRules(materializations: DomainRuleMaterialization[] | null | undefined): DomainRuleMaterializedFormLayoutRule[];
|
|
1875
|
+
materializationToFormRule(materialization: DomainRuleMaterialization): DomainRuleMaterializedFormLayoutRule | null;
|
|
1876
|
+
private asDirectFormRule;
|
|
1877
|
+
private visualBlockGuidanceToRule;
|
|
1878
|
+
private withDomainMetadata;
|
|
1879
|
+
private asRecord;
|
|
1880
|
+
private asStringArray;
|
|
1881
|
+
private resolveString;
|
|
1882
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DomainRuleFormRulesService, never>;
|
|
1883
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DomainRuleFormRulesService>;
|
|
1884
|
+
}
|
|
1885
|
+
|
|
1493
1886
|
declare function isRuleSatisfied(rule: FormLayoutRule, data: unknown): boolean;
|
|
1494
1887
|
/**
|
|
1495
1888
|
* Applies all visibility rules to the provided data and
|
|
@@ -1581,6 +1974,7 @@ type ActionCatalogOption = {
|
|
|
1581
1974
|
id: string;
|
|
1582
1975
|
label: string;
|
|
1583
1976
|
description?: string;
|
|
1977
|
+
payloadSchema?: GlobalActionCatalogEntry['payloadSchema'];
|
|
1584
1978
|
param?: {
|
|
1585
1979
|
required?: boolean;
|
|
1586
1980
|
label?: string;
|
|
@@ -1634,7 +2028,6 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1634
2028
|
isBusy$: BehaviorSubject<boolean>;
|
|
1635
2029
|
private readonly globalActionCatalogSource;
|
|
1636
2030
|
private readonly i18n;
|
|
1637
|
-
readonly legacyActionSpecs: _praxisui_core.GlobalActionSpec[];
|
|
1638
2031
|
readonly globalActionCatalog: ActionCatalogOption[];
|
|
1639
2032
|
readonly customActionValue = "__custom__";
|
|
1640
2033
|
private destroy$;
|
|
@@ -1654,12 +2047,12 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1654
2047
|
label?: string;
|
|
1655
2048
|
}): string;
|
|
1656
2049
|
getHeaderActionSpecById(id: string): ActionCatalogOption | undefined;
|
|
1657
|
-
getHeaderActionSelectValue(value?: string): string;
|
|
1658
|
-
getHeaderActionParam(value?: string): string;
|
|
1659
|
-
getHeaderActionCustomValue(value?: string): string;
|
|
1660
|
-
getHeaderGlobalActionSchema(value?: string): _praxisui_core.GlobalActionUiSchema | undefined;
|
|
1661
|
-
getHeaderSurfaceOpenActionPayload(value?: string): SurfaceOpenPayload;
|
|
1662
|
-
isHeaderActionParamMissing(value?: string): boolean;
|
|
2050
|
+
getHeaderActionSelectValue(value?: string, globalAction?: GlobalActionRef): string;
|
|
2051
|
+
getHeaderActionParam(value?: string, globalAction?: GlobalActionRef): string;
|
|
2052
|
+
getHeaderActionCustomValue(value?: string, globalAction?: GlobalActionRef): string;
|
|
2053
|
+
getHeaderGlobalActionSchema(value?: string, globalAction?: GlobalActionRef): _praxisui_core.GlobalActionUiSchema | undefined;
|
|
2054
|
+
getHeaderSurfaceOpenActionPayload(value?: string, globalAction?: GlobalActionRef): SurfaceOpenPayload;
|
|
2055
|
+
isHeaderActionParamMissing(value?: string, globalAction?: GlobalActionRef): boolean;
|
|
1663
2056
|
onHeaderActionSelectChange(index: number, value: string): void;
|
|
1664
2057
|
onHeaderActionParamChange(index: number, value: string): void;
|
|
1665
2058
|
onHeaderActionCustomChange(index: number, value: string): void;
|
|
@@ -1693,6 +2086,7 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1693
2086
|
private normalizeHeaderActions;
|
|
1694
2087
|
private mapCatalogEntryToActionSpec;
|
|
1695
2088
|
private getActionCatalogDescription;
|
|
2089
|
+
private normalizeHeaderGlobalAction;
|
|
1696
2090
|
private headerActionStyleValidator;
|
|
1697
2091
|
private stringifyHeaderActionStyle;
|
|
1698
2092
|
private parseHeaderActionStyle;
|
|
@@ -1881,7 +2275,8 @@ declare enum FormRuleTargetType {
|
|
|
1881
2275
|
Section = "section",
|
|
1882
2276
|
Action = "action",
|
|
1883
2277
|
Row = "row",
|
|
1884
|
-
Column = "column"
|
|
2278
|
+
Column = "column",
|
|
2279
|
+
VisualBlock = "visualBlock"
|
|
1885
2280
|
}
|
|
1886
2281
|
declare enum FormRuleContext {
|
|
1887
2282
|
Visibility = "visibility",
|
|
@@ -1973,5 +2368,49 @@ declare const FORM_COMPONENT_AI_CAPABILITIES: CapabilityCatalog;
|
|
|
1973
2368
|
*/
|
|
1974
2369
|
declare function getFormAiCatalog(formConfig?: FormConfig): AiCapabilityCatalog;
|
|
1975
2370
|
|
|
1976
|
-
|
|
1977
|
-
|
|
2371
|
+
type DynamicFormRuleTargetType = NonNullable<FormLayoutRule['targetType']>;
|
|
2372
|
+
interface DynamicFormRuleAuthoringField {
|
|
2373
|
+
name: string;
|
|
2374
|
+
label?: string;
|
|
2375
|
+
type?: string;
|
|
2376
|
+
source?: string;
|
|
2377
|
+
submitPolicy?: string;
|
|
2378
|
+
}
|
|
2379
|
+
interface DynamicFormRuleAuthoringTarget {
|
|
2380
|
+
id: string;
|
|
2381
|
+
label?: string;
|
|
2382
|
+
}
|
|
2383
|
+
interface DynamicFormRuleAuthoringVisualBlockNode {
|
|
2384
|
+
id: string;
|
|
2385
|
+
label: string;
|
|
2386
|
+
kind: string;
|
|
2387
|
+
roles: Array<'text' | 'title' | 'message'>;
|
|
2388
|
+
}
|
|
2389
|
+
type DynamicFormRuleAuthoringTargets = Record<DynamicFormRuleTargetType, string[]>;
|
|
2390
|
+
type DynamicFormRuleAuthoringTargetDetails = Record<DynamicFormRuleTargetType, DynamicFormRuleAuthoringTarget[]>;
|
|
2391
|
+
type DynamicFormAllowedRuleProperties = Record<DynamicFormRuleTargetType, string[]>;
|
|
2392
|
+
interface DynamicFormRuleAuthoringContext {
|
|
2393
|
+
component: 'praxis-dynamic-form';
|
|
2394
|
+
capabilityCatalogVersion: string;
|
|
2395
|
+
fields: DynamicFormRuleAuthoringField[];
|
|
2396
|
+
targets: DynamicFormRuleAuthoringTargets;
|
|
2397
|
+
targetDetails: DynamicFormRuleAuthoringTargetDetails;
|
|
2398
|
+
allowedRuleProperties: DynamicFormAllowedRuleProperties;
|
|
2399
|
+
visualBlockNodes: Record<string, DynamicFormRuleAuthoringVisualBlockNode[]>;
|
|
2400
|
+
existingRules: FormLayoutRule[];
|
|
2401
|
+
diagnostics: FormRuleDiagnostics[];
|
|
2402
|
+
guardrails: string[];
|
|
2403
|
+
}
|
|
2404
|
+
declare function buildDynamicFormRuleAuthoringContext(config: Pick<FormConfig, 'fieldMetadata' | 'sections' | 'actions' | 'formRules'>): DynamicFormRuleAuthoringContext;
|
|
2405
|
+
|
|
2406
|
+
/**
|
|
2407
|
+
* Manifesto de authoring canônico para o componente praxis-dynamic-form.
|
|
2408
|
+
* Este arquivo define as operações permitidas pela IA para editar formulários.
|
|
2409
|
+
*
|
|
2410
|
+
* @version 1.5.0
|
|
2411
|
+
* @status COMPLIANT - Alinhado com contrato v2, gate de aceitação e semântica local/schema-backed.
|
|
2412
|
+
*/
|
|
2413
|
+
declare const PRAXIS_DYNAMIC_FORM_AUTHORING_MANIFEST: ComponentAuthoringManifest;
|
|
2414
|
+
|
|
2415
|
+
export { ActionsEditorComponent, CanvasStateService, CanvasToolbarComponent, ColumnEditorComponent, DomainRuleFormRulesService, DynamicFormLayoutService, FORM_AI_CAPABILITIES, FORM_COMPONENT_AI_CAPABILITIES, FieldConfiguratorComponent, FieldEditorComponent, FormConfigService, FormContextService, FormLayoutService, FormRulesService, JsonConfigEditorComponent, LayoutColorToken, LayoutEditorComponent, LayoutPrefsService, PRAXIS_DYNAMIC_FORM_AUTHORING_MANIFEST, 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, buildDynamicFormRuleAuthoringContext, createDynamicFormAuthoringDocument, formLayoutRulesToBuilderState, getFormAiCatalog, getFormCapabilities, getFormEnum, isRuleSatisfied, normalizeDateArrays, normalizeDynamicFormAuthoringDocument, parseLegacyOrDynamicFormDocument, providePraxisDynamicFormMetadata, providePraxisFilterFormMetadata, provideSettingsPanelDynamicForm, ruleBuilderStateToFormLayoutRules, serializeDynamicFormAuthoringDocument, stripLegacyFieldMetadata, toCanonicalDynamicFormConfig, validateDynamicFormAuthoringDocument, validateDynamicFormAuthoringInput };
|
|
2416
|
+
export type { CanvasElement, CanvasElementType, CanvasPathPart, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, DomainRuleFormRulesRequestOptions, DomainRuleMaterializedFormLayoutRule, DynamicFieldRenderErrorEvent, DynamicFormAllowedRuleProperties, DynamicFormApplyPlan, DynamicFormAuthoringDocument, DynamicFormBindings, DynamicFormContextSnapshot, DynamicFormMode, DynamicFormPresentationSnapshot, DynamicFormProjectionContext, DynamicFormResolvedRuntimeContract, DynamicFormRuleAuthoringContext, DynamicFormRuleAuthoringField, DynamicFormRuleAuthoringTarget, DynamicFormRuleAuthoringTargetDetails, DynamicFormRuleAuthoringTargets, DynamicFormRuleAuthoringVisualBlockNode, DynamicFormRuleTargetType, DynamicFormRuntimeContext, DynamicFormRuntimeValueSource, DynamicFormSchemaPrefsSnapshot, DynamicFormValidationContext, EditorDiagnostic, EditorDocument, FieldPath, FieldPathContainer, FieldPathWithIndex, Capability as FormComponentCapability, CapabilityCatalog as FormComponentCapabilityCatalog, CapabilityCategory as FormComponentCapabilityCategory, ValueKind as FormComponentValueKind, FormConfigLike, IdPath, InsertLocalFieldOptions, InsertLocalFieldResult, JsonEditorEvent, JsonValidationResult, LayoutChange, LayoutResult, LocalFieldInsertionDiagnostic, LocalFieldInsertionDiagnosticCode, Operation, Path, PathWithIndex, PraxisDynamicFormDomainRulesOptions, PraxisFormActionEvent, RemovePolicy, RuleApplicationContext, RuleApplicationDiagnostic, RuleApplicationDiagnosticCode, RuleApplicationResult, RuleApplicationTargetIndex, RuleApplicationTargetType, ValidationReport, ValueKind$1 as ValueKind };
|