@praxisui/dynamic-form 8.0.0-beta.1 → 8.0.0-beta.100
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 +172 -18
- package/docs/dynamic-form-authoring-document-semantics.md +80 -0
- package/docs/dynamic-form-llm-rule-authoring-guide.md +318 -0
- package/docs/dynamic-form-rules-authoring-plan.md +379 -0
- package/docs/hot-metadata-updates.md +141 -0
- package/docs/layout-items-visual-blocks.md +406 -0
- package/fesm2022/praxisui-dynamic-form-dynamic-form-agentic-authoring-turn-flow-CmFfx-VR.mjs +356 -0
- package/fesm2022/praxisui-dynamic-form.mjs +21310 -13719
- package/package.json +19 -12
- 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 +481 -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 +1016 -0
- package/{index.d.ts → types/praxisui-dynamic-form.d.ts} +681 -23
|
@@ -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,
|
|
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, JsonLogicExpression, GlobalActionCatalogEntry, PraxisRuntimeConditionalEffectRule, PraxisRuntimeGlobalActionEffect, GlobalActionField, FieldDefinition, ComponentDocMeta, Breakpoint, DomainRuleRequestOptions, DomainRuleService, DomainRuleMaterialization, IconPickerService, GlobalActionRef, SurfaceOpenPayload, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, 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
|
+
import { BaseAiAdapter, AiResponseCompileResult, PatchResult, PraxisAssistantShellLayout, PraxisAssistantTurnViewState, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantShellMessage } from '@praxisui/ai';
|
|
14
15
|
import { KeyboardShortcutService } from '@praxisui/dynamic-fields';
|
|
15
|
-
import { BaseAiAdapter, 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' | 'invalid-value-expression' | 'computed-value-iteration-limit' | '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,15 @@ 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
|
+
fieldValues: Record<string, any>;
|
|
67
|
+
formData: Record<string, any>;
|
|
68
|
+
diagnostics: RuleApplicationDiagnostic[];
|
|
69
|
+
}
|
|
70
|
+
type RuleApplicationTargetType = NonNullable<FormLayoutRule['targetType']>;
|
|
71
|
+
type RuleApplicationTargetIndex = Partial<Record<RuleApplicationTargetType, ReadonlySet<string>>>;
|
|
72
|
+
interface RuleApplicationContext {
|
|
73
|
+
targetIndex?: RuleApplicationTargetIndex;
|
|
56
74
|
}
|
|
57
75
|
declare class FormRulesService {
|
|
58
76
|
private readonly jsonLogic;
|
|
@@ -64,8 +82,15 @@ declare class FormRulesService {
|
|
|
64
82
|
* @param formRules The array of rules to process.
|
|
65
83
|
* @returns A RuleEvaluationResult object containing the visibility and required states for the fields.
|
|
66
84
|
*/
|
|
67
|
-
applyRules(formGroup: FormGroup, formRules: FormLayoutRule[]): RuleApplicationResult;
|
|
85
|
+
applyRules(formGroup: FormGroup, formRules: FormLayoutRule[], context?: RuleApplicationContext): RuleApplicationResult;
|
|
86
|
+
private ruleTargetExists;
|
|
87
|
+
private normalizeRuleTargetId;
|
|
68
88
|
private evaluateCondition;
|
|
89
|
+
private evaluateRuleValue;
|
|
90
|
+
private evaluateJsonLogicValue;
|
|
91
|
+
private resolveComputedRuleFormData;
|
|
92
|
+
private areRuleValuesEqual;
|
|
93
|
+
private addUnsupportedPropertyDiagnostics;
|
|
69
94
|
private setPath;
|
|
70
95
|
private deletePath;
|
|
71
96
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormRulesService, never>;
|
|
@@ -96,6 +121,7 @@ interface Operation {
|
|
|
96
121
|
sectionId?: string;
|
|
97
122
|
rowId?: string;
|
|
98
123
|
columnId?: string;
|
|
124
|
+
itemId?: string;
|
|
99
125
|
fieldName?: string;
|
|
100
126
|
sectionIndex?: number;
|
|
101
127
|
rowIndex?: number;
|
|
@@ -106,6 +132,7 @@ interface Operation {
|
|
|
106
132
|
sectionId?: string;
|
|
107
133
|
rowId?: string;
|
|
108
134
|
columnId?: string;
|
|
135
|
+
itemId?: string;
|
|
109
136
|
fieldName?: string;
|
|
110
137
|
sectionIndex?: number;
|
|
111
138
|
rowIndex?: number;
|
|
@@ -156,6 +183,23 @@ interface ValidationReport {
|
|
|
156
183
|
valid: boolean;
|
|
157
184
|
errors: string[];
|
|
158
185
|
}
|
|
186
|
+
type LocalFieldInsertionDiagnosticCode = 'missing-field-name' | 'missing-control-type' | 'field-name-already-exists' | 'schema-field-name-collision' | 'invalid-local-field-source';
|
|
187
|
+
interface LocalFieldInsertionDiagnostic {
|
|
188
|
+
code: LocalFieldInsertionDiagnosticCode;
|
|
189
|
+
severity: 'error' | 'warning';
|
|
190
|
+
message: string;
|
|
191
|
+
fieldName?: string;
|
|
192
|
+
}
|
|
193
|
+
interface InsertLocalFieldOptions {
|
|
194
|
+
atIndex?: number;
|
|
195
|
+
schemaFieldNames?: Iterable<string>;
|
|
196
|
+
correlationId?: string;
|
|
197
|
+
origin?: string;
|
|
198
|
+
}
|
|
199
|
+
interface InsertLocalFieldResult extends LayoutResult {
|
|
200
|
+
applied: boolean;
|
|
201
|
+
diagnostics: LocalFieldInsertionDiagnostic[];
|
|
202
|
+
}
|
|
159
203
|
declare class DynamicFormLayoutService {
|
|
160
204
|
private readonly changesSubject;
|
|
161
205
|
readonly changes$: rxjs.Observable<LayoutChange>;
|
|
@@ -178,6 +222,14 @@ declare class DynamicFormLayoutService {
|
|
|
178
222
|
private capitalizeFirstLetter;
|
|
179
223
|
private assertIndex;
|
|
180
224
|
private mutate;
|
|
225
|
+
private getFieldName;
|
|
226
|
+
private findFieldLayoutItemIndex;
|
|
227
|
+
private getLayoutInsertIndexForFieldIndex;
|
|
228
|
+
private applyLayoutItemsToColumn;
|
|
229
|
+
private insertFieldLayoutItem;
|
|
230
|
+
private removeFieldLayoutItem;
|
|
231
|
+
private hasLayoutItems;
|
|
232
|
+
private moveFieldLayoutItem;
|
|
181
233
|
moveSection(config: FormConfig, fromIndex: number, toIndex: number): LayoutResult;
|
|
182
234
|
insertSection(config: FormConfig, section: any, atIndex?: number): LayoutResult;
|
|
183
235
|
removeSection(config: FormConfig, index: number, _policy?: RemovePolicy): LayoutResult;
|
|
@@ -235,6 +287,44 @@ declare class DynamicFormLayoutService {
|
|
|
235
287
|
rowId: string;
|
|
236
288
|
columnId: string;
|
|
237
289
|
}, field: any, atIndex?: number): LayoutResult;
|
|
290
|
+
insertLocalFieldById(config: FormConfig, target: {
|
|
291
|
+
sectionId: string;
|
|
292
|
+
rowId: string;
|
|
293
|
+
columnId: string;
|
|
294
|
+
}, field: FieldMetadata, options?: InsertLocalFieldOptions): InsertLocalFieldResult;
|
|
295
|
+
insertLayoutItemById(config: FormConfig, target: {
|
|
296
|
+
sectionId: string;
|
|
297
|
+
rowId: string;
|
|
298
|
+
columnId: string;
|
|
299
|
+
}, item: FormLayoutItem, atIndex?: number): LayoutResult;
|
|
300
|
+
private prepareLocalFieldMetadata;
|
|
301
|
+
private validateLocalFieldInsertion;
|
|
302
|
+
moveLayoutItemById(config: FormConfig, from: {
|
|
303
|
+
sectionId: string;
|
|
304
|
+
rowId: string;
|
|
305
|
+
columnId: string;
|
|
306
|
+
itemId: string;
|
|
307
|
+
}, to: {
|
|
308
|
+
sectionId: string;
|
|
309
|
+
rowId: string;
|
|
310
|
+
columnId: string;
|
|
311
|
+
toIndex: number;
|
|
312
|
+
}, options?: {
|
|
313
|
+
policy?: RemovePolicy;
|
|
314
|
+
correlationId?: string;
|
|
315
|
+
origin?: string;
|
|
316
|
+
}): LayoutResult;
|
|
317
|
+
updateLayoutItemById(config: FormConfig, target: {
|
|
318
|
+
sectionId: string;
|
|
319
|
+
rowId: string;
|
|
320
|
+
columnId: string;
|
|
321
|
+
itemId: string;
|
|
322
|
+
}, item: FormLayoutItem): LayoutResult;
|
|
323
|
+
removeLayoutItemById(config: FormConfig, sectionId: string, rowId: string, columnId: string, itemId: string, options?: {
|
|
324
|
+
policy?: RemovePolicy;
|
|
325
|
+
correlationId?: string;
|
|
326
|
+
origin?: string;
|
|
327
|
+
}): LayoutResult;
|
|
238
328
|
removeFieldById(config: FormConfig, sectionId: string, rowId: string, columnId: string, fieldName: string, options?: {
|
|
239
329
|
policy?: RemovePolicy;
|
|
240
330
|
correlationId?: string;
|
|
@@ -349,6 +439,7 @@ declare class PraxisFormActionsComponent implements OnChanges, OnDestroy {
|
|
|
349
439
|
getInvalidSubmitHint(): string;
|
|
350
440
|
private applyOverrides;
|
|
351
441
|
private registerActionShortcuts;
|
|
442
|
+
private resolveButtonActionId;
|
|
352
443
|
private isSecondaryButton;
|
|
353
444
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFormActionsComponent, never>;
|
|
354
445
|
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>;
|
|
@@ -361,6 +452,10 @@ declare class PraxisFormActionsComponent implements OnChanges, OnDestroy {
|
|
|
361
452
|
interface FormAiHost {
|
|
362
453
|
config: FormConfig;
|
|
363
454
|
form: FormGroup;
|
|
455
|
+
mode?: 'create' | 'edit' | 'view';
|
|
456
|
+
enableCustomization?: boolean;
|
|
457
|
+
readonlyModeGlobal?: boolean | null;
|
|
458
|
+
effectiveReadonly?: boolean;
|
|
364
459
|
applyConfigFromAdapter(config: FormConfig): void;
|
|
365
460
|
}
|
|
366
461
|
|
|
@@ -374,13 +469,36 @@ declare class FormAiAdapter extends BaseAiAdapter<FormConfig> {
|
|
|
374
469
|
getCapabilities(): AiCapability[];
|
|
375
470
|
getTaskPresets(): Record<string, string[]>;
|
|
376
471
|
getRuntimeState(): Record<string, any>;
|
|
472
|
+
getAuthoringContext(): Record<string, any>;
|
|
473
|
+
compileAiResponse(response: Record<string, unknown>): AiResponseCompileResult | null;
|
|
377
474
|
createSnapshot(): FormConfig;
|
|
378
475
|
restoreSnapshot(snapshot: FormConfig): Promise<void>;
|
|
379
476
|
applyPatch(patch: Partial<FormConfig>, intent?: string): Promise<PatchResult>;
|
|
380
477
|
getContextDescription(): string;
|
|
381
478
|
private applyConfig;
|
|
382
479
|
private smartMergeFormConfig;
|
|
480
|
+
private extractIncomingRules;
|
|
481
|
+
private extractComponentEditOperationPatch;
|
|
482
|
+
private applyComponentEditOperation;
|
|
483
|
+
private applyLocalFieldAdd;
|
|
484
|
+
private applyFieldMetadataPatch;
|
|
485
|
+
private appendFieldToLayout;
|
|
486
|
+
private resolveFieldName;
|
|
487
|
+
private matchesText;
|
|
488
|
+
private normalizeSearchText;
|
|
489
|
+
private toBoolean;
|
|
490
|
+
private toSubmitPolicy;
|
|
491
|
+
private extractVisualBlockGuidanceOperationRule;
|
|
492
|
+
private coerceSingleOperationResponse;
|
|
493
|
+
private coerceOperationResponses;
|
|
494
|
+
private operationInputRecord;
|
|
495
|
+
private normalizeVisualBlockGuidanceOperationInput;
|
|
496
|
+
private visualBlockGuidanceParamsToRule;
|
|
497
|
+
private normalizeLlmRule;
|
|
498
|
+
private mergeRulesById;
|
|
383
499
|
private cloneConfig;
|
|
500
|
+
private asRecord;
|
|
501
|
+
private toNonEmptyString;
|
|
384
502
|
private isFilled;
|
|
385
503
|
}
|
|
386
504
|
|
|
@@ -481,6 +599,18 @@ interface DynamicFormApplyPlan {
|
|
|
481
599
|
diagnostics: EditorDiagnostic[];
|
|
482
600
|
}
|
|
483
601
|
|
|
602
|
+
interface DynamicFormConfigPatchChangeEvent {
|
|
603
|
+
inputPatch: {
|
|
604
|
+
config: FormConfig;
|
|
605
|
+
};
|
|
606
|
+
}
|
|
607
|
+
interface PraxisDynamicFormDomainRulesOptions {
|
|
608
|
+
enabled?: boolean;
|
|
609
|
+
targetArtifactKey?: string | null;
|
|
610
|
+
targetLayer?: string | null;
|
|
611
|
+
targetArtifactType?: string | null;
|
|
612
|
+
status?: string | null;
|
|
613
|
+
}
|
|
484
614
|
interface DynamicFieldRenderErrorEvent {
|
|
485
615
|
phase: 'executeRendering' | 'detectChanges';
|
|
486
616
|
fieldName: string;
|
|
@@ -506,6 +636,21 @@ type ResolvedSectionHeaderVisual = {
|
|
|
506
636
|
text?: string;
|
|
507
637
|
ariaLabel: string;
|
|
508
638
|
};
|
|
639
|
+
interface FormColumnFieldsRenderItem {
|
|
640
|
+
kind: 'fields';
|
|
641
|
+
id: string;
|
|
642
|
+
fields: FieldMetadata[];
|
|
643
|
+
}
|
|
644
|
+
interface FormColumnRichContentRenderItem {
|
|
645
|
+
kind: 'richContent';
|
|
646
|
+
id: string;
|
|
647
|
+
document: RichContentDocument;
|
|
648
|
+
layout: 'block' | 'inline';
|
|
649
|
+
rootClassName?: string | null;
|
|
650
|
+
className?: string | null;
|
|
651
|
+
style?: Record<string, any> | null;
|
|
652
|
+
}
|
|
653
|
+
type FormColumnRenderItem = FormColumnFieldsRenderItem | FormColumnRichContentRenderItem;
|
|
509
654
|
declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
510
655
|
private crud;
|
|
511
656
|
private http;
|
|
@@ -537,12 +682,20 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
537
682
|
private hookPresets?;
|
|
538
683
|
private logger?;
|
|
539
684
|
private readonly i18n;
|
|
685
|
+
private readonly injector;
|
|
686
|
+
private readonly aiApi;
|
|
687
|
+
private readonly assistantSessions;
|
|
688
|
+
private readonly aiTurnOrchestrator;
|
|
689
|
+
private readonly jsonLogic;
|
|
690
|
+
private readonly aiAssistantSessionEffect;
|
|
691
|
+
private readonly globalActions;
|
|
540
692
|
private readonly DEBUG;
|
|
541
693
|
private effectiveActionsCache?;
|
|
542
694
|
private effectiveActionsCacheBase?;
|
|
543
695
|
private effectiveActionsCacheOverride?;
|
|
544
696
|
private invalidRequiredFieldLabelsCache;
|
|
545
697
|
private invalidRequiredFieldLabelsSignature;
|
|
698
|
+
readonly richContentHostCapabilities: RichBlockHostCapabilities;
|
|
546
699
|
resourcePath?: string;
|
|
547
700
|
resourceId?: string | number;
|
|
548
701
|
initialValue?: Record<string, unknown> | null;
|
|
@@ -564,6 +717,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
564
717
|
schemaSource: 'resource' | 'filter';
|
|
565
718
|
/** Canonical schema URL published by the backend surface catalog. */
|
|
566
719
|
schemaUrl?: string | null;
|
|
720
|
+
/** Canonical read URL published by backend view/read-projection surfaces. */
|
|
721
|
+
readUrl?: string | null;
|
|
567
722
|
/** Canonical submit URL published by the backend surface catalog. */
|
|
568
723
|
submitUrl?: string | null;
|
|
569
724
|
/** Canonical submit method published by the backend surface catalog. */
|
|
@@ -590,11 +745,14 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
590
745
|
*
|
|
591
746
|
* // Formulário em modo EDIT de dados + customização DESABILITADA
|
|
592
747
|
* <praxis-dynamic-form mode="edit" [enableCustomization]="false">
|
|
593
|
-
|
|
748
|
+
*/
|
|
594
749
|
enableCustomization: boolean;
|
|
750
|
+
/** Shows Praxis AI assistant triggers for this form instance. */
|
|
751
|
+
showAiAssistant: boolean;
|
|
595
752
|
/** Identifier for persisting layouts */
|
|
596
753
|
formId?: string;
|
|
597
754
|
componentInstanceId?: string;
|
|
755
|
+
configPersistenceStrategy: 'local-first' | 'input-first';
|
|
598
756
|
/** Optional layout to use instead of generated one */
|
|
599
757
|
layout?: FormLayout;
|
|
600
758
|
/** Optional navigation back config (from CRUD host) */
|
|
@@ -617,6 +775,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
617
775
|
disabledModeGlobal: boolean | null;
|
|
618
776
|
presentationModeGlobal: boolean | null;
|
|
619
777
|
visibleGlobal: boolean | null;
|
|
778
|
+
/** Opt-in loader for shared domain rule materializations persisted outside FormConfig. */
|
|
779
|
+
domainRules: PraxisDynamicFormDomainRulesOptions | boolean | null;
|
|
620
780
|
get effectivePresentation(): boolean;
|
|
621
781
|
get effectiveReadonly(): boolean;
|
|
622
782
|
get effectiveDisabledMode(): boolean | null;
|
|
@@ -632,6 +792,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
632
792
|
formCancel: EventEmitter<void>;
|
|
633
793
|
formReset: EventEmitter<void>;
|
|
634
794
|
configChange: EventEmitter<FormConfig>;
|
|
795
|
+
configPatchChange: EventEmitter<DynamicFormConfigPatchChangeEvent>;
|
|
635
796
|
formReady: EventEmitter<FormReadyEvent>;
|
|
636
797
|
valueChange: EventEmitter<FormValueChangeEvent>;
|
|
637
798
|
syncCompleted: EventEmitter<SyncResult>;
|
|
@@ -649,6 +810,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
649
810
|
}>;
|
|
650
811
|
/** Forwarded from DynamicFieldLoader to allow host-side observability. */
|
|
651
812
|
fieldRenderError: EventEmitter<DynamicFieldRenderErrorEvent>;
|
|
813
|
+
/** Emits runtime rule diagnostics so hosts can surface or log invalid rules. */
|
|
814
|
+
ruleDiagnosticsChange: EventEmitter<RuleApplicationDiagnostic[]>;
|
|
652
815
|
isLoading: boolean;
|
|
653
816
|
submitting: boolean;
|
|
654
817
|
submitError: string | null;
|
|
@@ -659,6 +822,13 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
659
822
|
private isInitialized;
|
|
660
823
|
form: FormGroup;
|
|
661
824
|
aiAdapter: FormAiAdapter;
|
|
825
|
+
aiAssistantOpen: boolean;
|
|
826
|
+
aiAssistantPrompt: string;
|
|
827
|
+
aiAssistantLayout: PraxisAssistantShellLayout;
|
|
828
|
+
aiAssistantViewState: PraxisAssistantTurnViewState;
|
|
829
|
+
readonly aiAssistantLabels: Partial<PraxisAssistantShellLabels>;
|
|
830
|
+
private aiAssistantController;
|
|
831
|
+
private aiAssistantStateSubscription;
|
|
662
832
|
fieldVisibility: {
|
|
663
833
|
[fieldName: string]: boolean;
|
|
664
834
|
};
|
|
@@ -667,6 +837,12 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
667
837
|
actionRuleProps: Record<string, Record<string, any>>;
|
|
668
838
|
private rowRuleProps;
|
|
669
839
|
private columnRuleProps;
|
|
840
|
+
private visualBlockRuleProps;
|
|
841
|
+
private materializedFormRules;
|
|
842
|
+
private materializedFormRulesLoadSignature;
|
|
843
|
+
private readonly formCommandRuleStates;
|
|
844
|
+
ruleApplicationDiagnostics: RuleApplicationDiagnostic[];
|
|
845
|
+
private ruleApplicationDiagnosticsSignature;
|
|
670
846
|
private pendingEntityId;
|
|
671
847
|
private loadedEntityId;
|
|
672
848
|
private hydratedEntityId;
|
|
@@ -677,6 +853,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
677
853
|
private schemaRootHooks?;
|
|
678
854
|
private destroy$;
|
|
679
855
|
private formValueChangesSubscription;
|
|
856
|
+
private dependencyPolicySubscription;
|
|
680
857
|
private formBuildCycleId;
|
|
681
858
|
private suppressedValueChangeBuildId;
|
|
682
859
|
private pendingBootstrapValueChangeBuildId;
|
|
@@ -768,6 +945,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
768
945
|
private buildSubmitRequest;
|
|
769
946
|
private normalizeSubmitMethod;
|
|
770
947
|
private resolveSubmitHref;
|
|
948
|
+
private resolveReadHref;
|
|
949
|
+
private resolveEntityAwareHref;
|
|
771
950
|
private resolveApiHref;
|
|
772
951
|
private resolveApiOrigin;
|
|
773
952
|
private resolveApiEntry;
|
|
@@ -787,6 +966,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
787
966
|
private hasSchemaBackedRuntime;
|
|
788
967
|
private hasRenderableConfig;
|
|
789
968
|
private initializeStandaloneConfig;
|
|
969
|
+
private initializeDisconnectedEmptyState;
|
|
790
970
|
private reloadForModeChange;
|
|
791
971
|
ngOnInit(): void;
|
|
792
972
|
ngOnChanges(changes: SimpleChanges): void;
|
|
@@ -800,24 +980,45 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
800
980
|
private createDefaultConfig;
|
|
801
981
|
private createConfigFromHostConfig;
|
|
802
982
|
private reconcileLoadedConfigWithServerSchema;
|
|
983
|
+
private hostConfigHasAuthoredLocalFieldsNotInLocalConfig;
|
|
803
984
|
private syncWithServer;
|
|
804
985
|
private loadEntity;
|
|
805
986
|
private buildFormFromConfig;
|
|
806
987
|
private resetFormValueChangesSubscription;
|
|
988
|
+
private resetDependencyPolicySubscription;
|
|
989
|
+
private setupEntityLookupDependencyPolicies;
|
|
990
|
+
private applyEntityLookupDependencyPolicy;
|
|
991
|
+
private isEntityLookupField;
|
|
992
|
+
private resolveFieldDependencyNames;
|
|
993
|
+
private allowEntityLookupLegacyRetention;
|
|
994
|
+
private hasMeaningfulDependencyValue;
|
|
995
|
+
private setEntityLookupDependencyConflict;
|
|
996
|
+
private clearEntityLookupDependencyConflict;
|
|
997
|
+
private resolveEntityLookupDependencyValidationMessage;
|
|
807
998
|
private scheduleValueChangeBootstrapRelease;
|
|
808
999
|
private hasInteractiveFormState;
|
|
809
1000
|
private captureFormRuntimeState;
|
|
810
1001
|
private getDirtyFieldNames;
|
|
1002
|
+
private collectDirtyFieldNames;
|
|
811
1003
|
private buildCurrentFormRuntimeContext;
|
|
812
1004
|
private buildRestoreTargetContext;
|
|
813
1005
|
private isCompatibleRuntimeStateContext;
|
|
814
1006
|
private restoreFormRuntimeState;
|
|
815
1007
|
private getNormalizedInitialValue;
|
|
1008
|
+
private normalizeFormPatchValue;
|
|
1009
|
+
private isDateControlMetadata;
|
|
1010
|
+
private coerceDateControlValue;
|
|
816
1011
|
/**
|
|
817
1012
|
* Backward-compatible required validation for DATE_RANGE controls.
|
|
818
1013
|
* Some core builds do not enforce required start/end for dateRange fields.
|
|
819
1014
|
*/
|
|
820
1015
|
private applyDateRangeRequiredValidators;
|
|
1016
|
+
/**
|
|
1017
|
+
* Backward-compatible required validation for multiple entity lookups.
|
|
1018
|
+
* Some form-control builders treat `required` correctly for single lookups but
|
|
1019
|
+
* do not mark empty collections as required when `multiple=true`.
|
|
1020
|
+
*/
|
|
1021
|
+
private applyEntityLookupCollectionRequiredValidators;
|
|
821
1022
|
private isMountAnimationDisabled;
|
|
822
1023
|
private triggerMountAnimation;
|
|
823
1024
|
protected getMountDurationVar(): string | null;
|
|
@@ -828,7 +1029,19 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
828
1029
|
private saveConnection;
|
|
829
1030
|
disconnect(): void;
|
|
830
1031
|
onToolbarRequestClose(): void;
|
|
1032
|
+
private getActiveFormRules;
|
|
1033
|
+
private refreshMaterializedFormRules;
|
|
1034
|
+
private resolveDomainRulesOptions;
|
|
831
1035
|
private evaluateAndApplyRules;
|
|
1036
|
+
private applyRuleComputedFieldValues;
|
|
1037
|
+
private evaluateAndDispatchFormCommandRules;
|
|
1038
|
+
private evaluateFormCommandCondition;
|
|
1039
|
+
private executeFormCommandGlobalAction;
|
|
1040
|
+
private isPotentiallyDestructiveFormCommandAction;
|
|
1041
|
+
private resolveFormCommandPath;
|
|
1042
|
+
private areRuleValuesEqual;
|
|
1043
|
+
private buildRuleApplicationTargetIndex;
|
|
1044
|
+
private setRuleApplicationDiagnostics;
|
|
832
1045
|
isSectionCollapsed(section?: FormSection): boolean;
|
|
833
1046
|
isSectionCollapsible(section?: FormSection): boolean;
|
|
834
1047
|
private getSectionRuleProps;
|
|
@@ -846,6 +1059,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
846
1059
|
getSectionHeaderAlign(section: FormSection): 'start' | 'center' | undefined;
|
|
847
1060
|
getSectionGapBottom(section: FormSection): number | null;
|
|
848
1061
|
getSectionTitleGapBottom(section: FormSection): number | null;
|
|
1062
|
+
getEffectiveSectionTitleGapBottom(section: FormSection): number;
|
|
1063
|
+
isSectionHeaderTitleOnly(section: FormSection): boolean;
|
|
849
1064
|
getSectionDescriptionGapBottom(section: FormSection): number | null;
|
|
850
1065
|
getSectionHeaderActionColor(action: FormSectionHeaderAction): 'primary' | 'accent' | 'warn' | undefined;
|
|
851
1066
|
getSectionHeaderActionTooltip(action: FormSectionHeaderAction): string;
|
|
@@ -888,11 +1103,19 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
888
1103
|
toggleSectionCollapse(event: Event, section: FormSection): void;
|
|
889
1104
|
sectionPanelId(section: FormSection, index: number): string;
|
|
890
1105
|
getSectionCollapsedSummary(section: FormSection): string;
|
|
1106
|
+
getColumnItems(column: FormColumn): FormLayoutItem[];
|
|
1107
|
+
getColumnRenderItems(column: FormColumn): FormColumnRenderItem[];
|
|
891
1108
|
getColumnFields(column: {
|
|
892
|
-
fields
|
|
1109
|
+
fields?: string[];
|
|
1110
|
+
items?: FormLayoutItem[];
|
|
893
1111
|
id?: string;
|
|
894
1112
|
}): FieldMetadata[];
|
|
1113
|
+
getRichContentLayoutItemDocument(item: FormLayoutItem): RichContentDocument | null;
|
|
1114
|
+
getRichContentLayoutItemLayout(item: FormLayoutItem): 'block' | 'inline';
|
|
1115
|
+
private getVisualBlockRuleProps;
|
|
1116
|
+
private isRichContentLayoutItemVisible;
|
|
895
1117
|
private getColumnFieldsSignature;
|
|
1118
|
+
private getColumnItemsSignature;
|
|
896
1119
|
private getColumnRuleProps;
|
|
897
1120
|
private buildFieldRuleMetadataOverrides;
|
|
898
1121
|
private normalizeRuleFieldOptions;
|
|
@@ -910,7 +1133,12 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
910
1133
|
private _getConfirmationMessageForAliases;
|
|
911
1134
|
private _showConfirmationDialog;
|
|
912
1135
|
onFormAction(event: PraxisFormActionEvent): void;
|
|
1136
|
+
private dispatchRichContentAction;
|
|
1137
|
+
private isRichContentActionAvailable;
|
|
1138
|
+
private hasRichContentCapability;
|
|
1139
|
+
private buildRichContentActionContext;
|
|
913
1140
|
private _executeAction;
|
|
1141
|
+
private getFormActionEventId;
|
|
914
1142
|
onSubmit(): Promise<void>;
|
|
915
1143
|
private navigateAfterSave;
|
|
916
1144
|
private shouldConfirmCancelOnDirty;
|
|
@@ -924,6 +1152,35 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
924
1152
|
* IMPORTANTE: Independe completamente do mode do formulário
|
|
925
1153
|
*/
|
|
926
1154
|
toggleEditMode(): void;
|
|
1155
|
+
openAiAssistant(): void;
|
|
1156
|
+
openAiAssistantFromSession(session: PraxisAssistantSessionSnapshot): void;
|
|
1157
|
+
closeAiAssistant(): void;
|
|
1158
|
+
onAiAssistantPromptChange(prompt: string): void;
|
|
1159
|
+
onAiAssistantSubmit(prompt: string): void;
|
|
1160
|
+
onAiAssistantApply(): void;
|
|
1161
|
+
onAiAssistantRetry(): void;
|
|
1162
|
+
onAiAssistantCancel(): void;
|
|
1163
|
+
onAiAssistantQuickReply(reply: PraxisAssistantShellQuickReply): void;
|
|
1164
|
+
onAiAssistantEditMessage(message: PraxisAssistantShellMessage): void;
|
|
1165
|
+
onAiAssistantResendMessage(message: PraxisAssistantShellMessage): void;
|
|
1166
|
+
onAiAssistantLayoutChange(layout: PraxisAssistantShellLayout): void;
|
|
1167
|
+
aiAssistantTriggerTestId(position: string): string;
|
|
1168
|
+
private initializeAiAssistantController;
|
|
1169
|
+
private buildAiAssistantContextItems;
|
|
1170
|
+
private buildAiAssistantContextSnapshot;
|
|
1171
|
+
private syncAiAssistantSession;
|
|
1172
|
+
private hasAiAssistantSessionState;
|
|
1173
|
+
private resolveAiAssistantSessionId;
|
|
1174
|
+
private resolveAiAssistantOwnerId;
|
|
1175
|
+
private resolveAiAssistantRouteKey;
|
|
1176
|
+
private resolveAiAssistantSummary;
|
|
1177
|
+
private resolveAiAssistantBadge;
|
|
1178
|
+
private resolveAiAssistantIcon;
|
|
1179
|
+
private resolveAiAssistantSelectedTarget;
|
|
1180
|
+
private toAiAssistantTargetKind;
|
|
1181
|
+
private toAiAssistantTargetId;
|
|
1182
|
+
private toAiAssistantTargetLabel;
|
|
1183
|
+
private toAiAssistantPath;
|
|
927
1184
|
openConfigEditor(): Promise<void>;
|
|
928
1185
|
onElementMouseEnter(event: MouseEvent, type: CanvasElementType, data: any, element?: HTMLElement): void;
|
|
929
1186
|
onElementMouseLeave(event: MouseEvent): void;
|
|
@@ -969,6 +1226,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
969
1226
|
private openRowEditor;
|
|
970
1227
|
private openColumnEditor;
|
|
971
1228
|
openSectionEditor(section: any, focusTarget?: 'title' | 'description'): void;
|
|
1229
|
+
private applySectionEditorValue;
|
|
972
1230
|
private resolveControlTypeEditorial;
|
|
973
1231
|
private getControlTypeIcon;
|
|
974
1232
|
/**
|
|
@@ -978,6 +1236,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
978
1236
|
private getControlTypeName;
|
|
979
1237
|
private applyNullDeletionPatch;
|
|
980
1238
|
private stripNullMarkersFromPatch;
|
|
1239
|
+
private mergeMetadataObjectPatch;
|
|
981
1240
|
private deleteMetadataPath;
|
|
982
1241
|
private getMetadataPath;
|
|
983
1242
|
/**
|
|
@@ -1006,6 +1265,11 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1006
1265
|
field: FieldMetadata;
|
|
1007
1266
|
element: HTMLElement;
|
|
1008
1267
|
}): void;
|
|
1268
|
+
onFieldFocus(payload: {
|
|
1269
|
+
field: FieldMetadata;
|
|
1270
|
+
element: HTMLElement;
|
|
1271
|
+
}): void;
|
|
1272
|
+
private selectCanvasField;
|
|
1009
1273
|
onDragStarted(event: {
|
|
1010
1274
|
field: FieldMetadata;
|
|
1011
1275
|
index: number;
|
|
@@ -1050,6 +1314,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1050
1314
|
private captureCurrentSchemaPrefsSnapshot;
|
|
1051
1315
|
private executeDynamicFormEditorApplyPlan;
|
|
1052
1316
|
private attachRuntimeMetadataToDynamicFormConfig;
|
|
1317
|
+
private emitConfigPatchChange;
|
|
1318
|
+
private cloneFormConfigForPatch;
|
|
1053
1319
|
private parsePresentationCssNumber;
|
|
1054
1320
|
private clearDynamicFormEditorPersistence;
|
|
1055
1321
|
private clearStoredPresentationSnapshots;
|
|
@@ -1069,7 +1335,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1069
1335
|
private applyPresentationVars;
|
|
1070
1336
|
private applyPresentationConfig;
|
|
1071
1337
|
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>;
|
|
1338
|
+
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; }; "readUrl": { "alias": "readUrl"; "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; }; "showAiAssistant": { "alias": "showAiAssistant"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "configPersistenceStrategy": { "alias": "configPersistenceStrategy"; "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"; "configPatchChange": "configPatchChange"; "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
1339
|
}
|
|
1074
1340
|
|
|
1075
1341
|
declare class FormConfigService {
|
|
@@ -1147,6 +1413,53 @@ declare class JsonConfigEditorComponent implements OnInit, OnDestroy {
|
|
|
1147
1413
|
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
1414
|
}
|
|
1149
1415
|
|
|
1416
|
+
interface VisualBlockRuleNodeOption {
|
|
1417
|
+
id: string;
|
|
1418
|
+
label: string;
|
|
1419
|
+
kind: string;
|
|
1420
|
+
roles: Array<'text' | 'title' | 'message'>;
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
type RuleAuthoringStatus = 'valid' | 'invalid-target' | 'invalid-condition' | 'unsupported-property' | 'sanitized-property' | 'runtime-only' | 'visual-builder-compatible' | 'llm-generated-pending-review';
|
|
1424
|
+
interface FormRulePropertyIssue {
|
|
1425
|
+
property: string;
|
|
1426
|
+
reason: 'unsupported-property' | 'invalid-value' | 'sanitized-value';
|
|
1427
|
+
}
|
|
1428
|
+
interface FormRuleTargetDiagnostic {
|
|
1429
|
+
type: NonNullable<FormLayoutRule['targetType']>;
|
|
1430
|
+
id: string;
|
|
1431
|
+
exists: boolean;
|
|
1432
|
+
}
|
|
1433
|
+
interface FormRuleDiagnostics {
|
|
1434
|
+
ruleId: string;
|
|
1435
|
+
ruleName?: string;
|
|
1436
|
+
status: RuleAuthoringStatus[];
|
|
1437
|
+
targetRefs: FormRuleTargetDiagnostic[];
|
|
1438
|
+
conditionRefs: string[];
|
|
1439
|
+
acceptedProperties: string[];
|
|
1440
|
+
rejectedProperties: string[];
|
|
1441
|
+
acceptedPropertiesWhenFalse: string[];
|
|
1442
|
+
rejectedPropertiesWhenFalse: string[];
|
|
1443
|
+
propertyIssues?: FormRulePropertyIssue[];
|
|
1444
|
+
propertyIssuesWhenFalse?: FormRulePropertyIssue[];
|
|
1445
|
+
runtimeOnlyReason?: string;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
interface CommandRulePreviewModel {
|
|
1449
|
+
state: 'ready' | 'invalid';
|
|
1450
|
+
executionMode: 'preview-only';
|
|
1451
|
+
actionId: string;
|
|
1452
|
+
condition: JsonLogicExpression | null;
|
|
1453
|
+
payload?: unknown;
|
|
1454
|
+
payloadExpr?: string;
|
|
1455
|
+
policy: {
|
|
1456
|
+
trigger: 'on-condition-enter';
|
|
1457
|
+
distinct: boolean;
|
|
1458
|
+
distinctBy?: string;
|
|
1459
|
+
runOnInitialEvaluation?: boolean;
|
|
1460
|
+
};
|
|
1461
|
+
diagnostics: string[];
|
|
1462
|
+
}
|
|
1150
1463
|
declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, OnInit, OnDestroy {
|
|
1151
1464
|
private storage;
|
|
1152
1465
|
private configService;
|
|
@@ -1157,6 +1470,26 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1157
1470
|
ruleBuilderConfig: RuleBuilderConfig;
|
|
1158
1471
|
ruleBuilderState?: RuleBuilderState;
|
|
1159
1472
|
currentRules: FormLayoutRule[];
|
|
1473
|
+
selectedCommandRuleId: string;
|
|
1474
|
+
commandRuleCondition: JsonLogicExpression | null;
|
|
1475
|
+
commandRuleConditionJson: string;
|
|
1476
|
+
commandRuleActionId: string;
|
|
1477
|
+
commandRulePayloadJson: string;
|
|
1478
|
+
private commandRulePayloadExpr;
|
|
1479
|
+
commandRuleDistinct: boolean;
|
|
1480
|
+
commandRuleDistinctBy: string;
|
|
1481
|
+
commandRuleRunOnInitialEvaluation: boolean;
|
|
1482
|
+
commandRuleAuthoringError: string | null;
|
|
1483
|
+
commandRulePayloadFieldErrors: Record<string, string>;
|
|
1484
|
+
ruleDiagnostics: FormRuleDiagnostics[];
|
|
1485
|
+
visualBlockNodeOptions: Record<string, VisualBlockRuleNodeOption[]>;
|
|
1486
|
+
ruleDiagnosticsSummary: {
|
|
1487
|
+
total: number;
|
|
1488
|
+
invalid: number;
|
|
1489
|
+
runtimeOnly: number;
|
|
1490
|
+
unsupported: number;
|
|
1491
|
+
pendingReview: number;
|
|
1492
|
+
};
|
|
1160
1493
|
private initialConfig;
|
|
1161
1494
|
private initialDocument;
|
|
1162
1495
|
private readonly openedWithCanonicalDocument;
|
|
@@ -1200,13 +1533,16 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1200
1533
|
};
|
|
1201
1534
|
private destroy$;
|
|
1202
1535
|
private hasProcessedInitialRuleState;
|
|
1536
|
+
private jsonEditorIsValid;
|
|
1537
|
+
private globalActionValidationIssues;
|
|
1538
|
+
readonly globalActionCatalog: GlobalActionCatalogEntry[];
|
|
1203
1539
|
isDirty$: BehaviorSubject<boolean>;
|
|
1204
1540
|
isValid$: BehaviorSubject<boolean>;
|
|
1205
1541
|
isBusy$: BehaviorSubject<boolean>;
|
|
1206
1542
|
private lastRulesSignature;
|
|
1207
1543
|
private readonly DEBUG;
|
|
1208
1544
|
private debugLog;
|
|
1209
|
-
constructor(storage: AsyncConfigStorage, configService: FormConfigService, settingsPanel: SettingsPanelService, cdr: ChangeDetectorRef, injectedData?: any);
|
|
1545
|
+
constructor(storage: AsyncConfigStorage, configService: FormConfigService, settingsPanel: SettingsPanelService, cdr: ChangeDetectorRef, globalActionCatalogSource?: ReadonlyArray<GlobalActionCatalogEntry[]>, injectedData?: any);
|
|
1210
1546
|
ngOnInit(): void;
|
|
1211
1547
|
reset(): void;
|
|
1212
1548
|
updateDirtyState(reason?: string): void;
|
|
@@ -1216,7 +1552,53 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1216
1552
|
onJsonValidationChange(result: JsonValidationResult): void;
|
|
1217
1553
|
onJsonEditorEvent(_event: JsonEditorEvent): void;
|
|
1218
1554
|
onConfigChange(newConfig: FormConfig): void;
|
|
1555
|
+
private updateValidityState;
|
|
1556
|
+
private collectGlobalActionValidationIssues;
|
|
1557
|
+
private collectGlobalActionValidationTargets;
|
|
1558
|
+
private findGlobalActionCatalogEntry;
|
|
1559
|
+
private buildGlobalActionCatalog;
|
|
1219
1560
|
onRulesChanged(state: RuleBuilderState): void;
|
|
1561
|
+
onRulePropertiesChanged(rules: FormLayoutRule[]): void;
|
|
1562
|
+
get commandRules(): PraxisRuntimeConditionalEffectRule<PraxisRuntimeGlobalActionEffect>[];
|
|
1563
|
+
get selectedCommandRule(): PraxisRuntimeConditionalEffectRule<PraxisRuntimeGlobalActionEffect> | undefined;
|
|
1564
|
+
onCommandRuleSelectionChange(): void;
|
|
1565
|
+
onCommandActionChange(): void;
|
|
1566
|
+
onCommandConditionChanged(condition: JsonLogicExpression | null): void;
|
|
1567
|
+
addCommandRule(): void;
|
|
1568
|
+
applyCommandRule(): void;
|
|
1569
|
+
deleteCommandRule(): void;
|
|
1570
|
+
get commandRuleActionSchema(): _praxisui_core.GlobalActionUiSchema | undefined;
|
|
1571
|
+
shouldShowCommandActionField(field: GlobalActionField): boolean;
|
|
1572
|
+
isCommandActionFieldRequired(field: GlobalActionField): boolean;
|
|
1573
|
+
isCommandActionFieldMissing(field: GlobalActionField): boolean;
|
|
1574
|
+
hasCommandActionFieldError(key: string): boolean;
|
|
1575
|
+
getCommandActionFieldError(key: string): string;
|
|
1576
|
+
get commandRulePreview(): CommandRulePreviewModel;
|
|
1577
|
+
getCommandActionFieldValue(field: GlobalActionField): any;
|
|
1578
|
+
onCommandActionFieldChange(field: GlobalActionField, value: any): void;
|
|
1579
|
+
private initializeCommandRuleEditor;
|
|
1580
|
+
private loadCommandRuleEditor;
|
|
1581
|
+
private updateCommandRules;
|
|
1582
|
+
private parseCommandRuleCondition;
|
|
1583
|
+
private parseOptionalJson;
|
|
1584
|
+
private parseCommandPayloadObject;
|
|
1585
|
+
private collectCommandActionFieldValues;
|
|
1586
|
+
private setCommandActionFieldError;
|
|
1587
|
+
private clearCommandActionFieldError;
|
|
1588
|
+
private nextCommandRuleId;
|
|
1589
|
+
private getDefaultCommandActionId;
|
|
1590
|
+
private formatGlobalActionIssue;
|
|
1591
|
+
private computeRuleDiagnosticsSummary;
|
|
1592
|
+
getRuleStatusLabel(diagnostic: FormRuleDiagnostics): string;
|
|
1593
|
+
getRuleStatusTone(diagnostic: FormRuleDiagnostics): 'ok' | 'warn' | 'error';
|
|
1594
|
+
canAcceptPendingLlmRule(diagnostic: FormRuleDiagnostics): boolean;
|
|
1595
|
+
canApplyRulePropertyFix(diagnostic: FormRuleDiagnostics): boolean;
|
|
1596
|
+
applyRulePropertyFix(ruleId: string): void;
|
|
1597
|
+
acceptPendingLlmRule(ruleId: string): void;
|
|
1598
|
+
getRuleDiagnosticDetails(diagnostic: FormRuleDiagnostics): string[];
|
|
1599
|
+
private getRulePropertyIssueNames;
|
|
1600
|
+
private markLlmRuleAccepted;
|
|
1601
|
+
private refreshRuleDiagnostics;
|
|
1220
1602
|
get jsonDocument(): DynamicFormAuthoringDocument;
|
|
1221
1603
|
onBackConfigChange(): void;
|
|
1222
1604
|
isBindingsBlockPersisted(): boolean;
|
|
@@ -1229,7 +1611,15 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1229
1611
|
onPresentationPrefsChange(reason: string): void;
|
|
1230
1612
|
onSchemaPrefsChange(reason: string): void;
|
|
1231
1613
|
private createRuleBuilderConfig;
|
|
1614
|
+
private getVisualBuilderRulePropertySchema;
|
|
1232
1615
|
private mapMetadataToSchema;
|
|
1616
|
+
private getVisualBlockTargetLabel;
|
|
1617
|
+
private getRuleFieldLabel;
|
|
1618
|
+
private getRuleFieldDescription;
|
|
1619
|
+
private refreshVisualBlockNodeOptions;
|
|
1620
|
+
private collectVisualBlockNodeOptions;
|
|
1621
|
+
private getVisualBlockNodeRoles;
|
|
1622
|
+
private findRichContentNodeText;
|
|
1233
1623
|
private mapDataTypeToFieldType;
|
|
1234
1624
|
ngOnDestroy(): void;
|
|
1235
1625
|
onLayoutSelect(event: any): void;
|
|
@@ -1248,7 +1638,7 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1248
1638
|
private toPresentationSnapshot;
|
|
1249
1639
|
private toSchemaPrefsSnapshot;
|
|
1250
1640
|
private toBackConfigSnapshot;
|
|
1251
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormConfigEditor, [null, null, null, null, { optional: true; }]>;
|
|
1641
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormConfigEditor, [null, null, null, null, { optional: true; }, { optional: true; }]>;
|
|
1252
1642
|
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicFormConfigEditor, "praxis-dynamic-form-config-editor", never, {}, {}, never, never, true, never>;
|
|
1253
1643
|
}
|
|
1254
1644
|
interface FormConfigLike {
|
|
@@ -1286,6 +1676,7 @@ declare class PraxisFilterForm implements OnChanges, OnDestroy {
|
|
|
1286
1676
|
private hasExplicitDefaultValue;
|
|
1287
1677
|
onFormSubmit(): void;
|
|
1288
1678
|
getColumnFields(column: FormColumn): FieldMetadata[];
|
|
1679
|
+
getColumnClasses(column: FormColumn): string | null;
|
|
1289
1680
|
get fieldMetadata(): FieldMetadata[];
|
|
1290
1681
|
get hasLayout(): boolean;
|
|
1291
1682
|
trackBySection(i: number, section: FormSection): string;
|
|
@@ -1300,6 +1691,37 @@ declare const PRAXIS_FILTER_FORM_COMPONENT_METADATA: ComponentDocMeta;
|
|
|
1300
1691
|
/** Provider to register PraxisFilterForm metadata. */
|
|
1301
1692
|
declare function providePraxisFilterFormMetadata(): Provider;
|
|
1302
1693
|
|
|
1694
|
+
interface PraxisFilterFormWidgetEditorInputs {
|
|
1695
|
+
config?: FormConfig | null;
|
|
1696
|
+
formId?: string;
|
|
1697
|
+
resourcePath?: string;
|
|
1698
|
+
mode?: DynamicFormMode | string;
|
|
1699
|
+
[key: string]: unknown;
|
|
1700
|
+
}
|
|
1701
|
+
interface PraxisFilterFormWidgetEditorValue {
|
|
1702
|
+
inputs: PraxisFilterFormWidgetEditorInputs;
|
|
1703
|
+
}
|
|
1704
|
+
declare class PraxisFilterFormWidgetConfigEditor implements SettingsValueProvider, AfterViewInit, OnDestroy {
|
|
1705
|
+
inputs: PraxisFilterFormWidgetEditorInputs | null;
|
|
1706
|
+
widgetKey?: string;
|
|
1707
|
+
formEditor?: PraxisDynamicFormConfigEditor;
|
|
1708
|
+
readonly isDirty$: BehaviorSubject<boolean>;
|
|
1709
|
+
readonly isValid$: BehaviorSubject<boolean>;
|
|
1710
|
+
readonly isBusy$: BehaviorSubject<boolean>;
|
|
1711
|
+
private readonly subscription;
|
|
1712
|
+
ngAfterViewInit(): void;
|
|
1713
|
+
ngOnDestroy(): void;
|
|
1714
|
+
getSettingsValue(): PraxisFilterFormWidgetEditorValue;
|
|
1715
|
+
onSave(): PraxisFilterFormWidgetEditorValue;
|
|
1716
|
+
reset(): void;
|
|
1717
|
+
private initializeChildEditor;
|
|
1718
|
+
private buildValue;
|
|
1719
|
+
private createDocumentFromInputs;
|
|
1720
|
+
private normalizeMode;
|
|
1721
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterFormWidgetConfigEditor, never>;
|
|
1722
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterFormWidgetConfigEditor, "praxis-filter-form-widget-config-editor", never, { "inputs": { "alias": "inputs"; "required": false; }; "widgetKey": { "alias": "widgetKey"; "required": false; }; }, {}, never, never, true, never>;
|
|
1723
|
+
}
|
|
1724
|
+
|
|
1303
1725
|
/** Tokens for theme colors used across the layout editor. */
|
|
1304
1726
|
declare enum LayoutColorToken {
|
|
1305
1727
|
Surface = "--md-sys-color-surface",
|
|
@@ -1323,11 +1745,53 @@ declare class LayoutPrefsService {
|
|
|
1323
1745
|
static ɵprov: i0.ɵɵInjectableDeclaration<LayoutPrefsService>;
|
|
1324
1746
|
}
|
|
1325
1747
|
|
|
1748
|
+
type VisualBlockPresetId = 'text' | 'notice' | 'divider' | 'infoCard' | 'callout' | 'keyValueList' | 'recordSummary' | 'lookupCard' | 'disclosure' | 'emptyState';
|
|
1749
|
+
interface VisualBlockPreset {
|
|
1750
|
+
id: VisualBlockPresetId;
|
|
1751
|
+
labelKey: string;
|
|
1752
|
+
icon: string;
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1326
1755
|
interface FieldDropEvent {
|
|
1327
1756
|
event: CdkDragDrop<any>;
|
|
1328
1757
|
sectionIndex: number;
|
|
1329
1758
|
rowIndex: number;
|
|
1330
1759
|
}
|
|
1760
|
+
interface VisualBlockEvent {
|
|
1761
|
+
sectionIndex: number;
|
|
1762
|
+
rowIndex: number;
|
|
1763
|
+
columnIndex: number;
|
|
1764
|
+
itemId: string;
|
|
1765
|
+
}
|
|
1766
|
+
interface AddVisualBlockEvent {
|
|
1767
|
+
sectionIndex: number;
|
|
1768
|
+
rowIndex: number;
|
|
1769
|
+
columnIndex: number;
|
|
1770
|
+
presetId: VisualBlockPresetId;
|
|
1771
|
+
}
|
|
1772
|
+
interface AddApiFieldEvent {
|
|
1773
|
+
sectionIndex: number;
|
|
1774
|
+
rowIndex: number;
|
|
1775
|
+
columnIndex: number;
|
|
1776
|
+
fieldName: string;
|
|
1777
|
+
}
|
|
1778
|
+
interface AddLocalFieldEvent {
|
|
1779
|
+
sectionIndex: number;
|
|
1780
|
+
rowIndex: number;
|
|
1781
|
+
columnIndex: number;
|
|
1782
|
+
}
|
|
1783
|
+
interface EditFieldEvent {
|
|
1784
|
+
sectionIndex: number;
|
|
1785
|
+
rowIndex: number;
|
|
1786
|
+
columnIndex: number;
|
|
1787
|
+
fieldName: string;
|
|
1788
|
+
}
|
|
1789
|
+
interface MoveVisualBlockEvent extends VisualBlockEvent {
|
|
1790
|
+
direction: -1 | 1;
|
|
1791
|
+
}
|
|
1792
|
+
interface MoveVisualBlockToColumnEvent extends VisualBlockEvent {
|
|
1793
|
+
targetColumnIndex: number;
|
|
1794
|
+
}
|
|
1331
1795
|
/**
|
|
1332
1796
|
* Editor component for configuring sections, rows and fields of a dynamic form.
|
|
1333
1797
|
* Provides a collapsible palette of available fields.
|
|
@@ -1337,13 +1801,19 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1337
1801
|
configChange: EventEmitter<FormConfig>;
|
|
1338
1802
|
paletteCollapsed: boolean;
|
|
1339
1803
|
protected readonly prefs: LayoutPrefsService;
|
|
1804
|
+
private readonly layoutService;
|
|
1805
|
+
private readonly settingsPanel;
|
|
1806
|
+
private readonly i18n;
|
|
1807
|
+
private visualBlockIdSequence;
|
|
1808
|
+
private localFieldSequence;
|
|
1340
1809
|
protected readonly colorTokens: typeof LayoutColorToken;
|
|
1341
1810
|
selected: {
|
|
1342
|
-
type: 'section' | 'row' | 'column' | 'field';
|
|
1811
|
+
type: 'section' | 'row' | 'column' | 'field' | 'visualBlock';
|
|
1343
1812
|
sectionIndex?: number;
|
|
1344
1813
|
rowIndex?: number;
|
|
1345
1814
|
columnIndex?: number;
|
|
1346
1815
|
fieldName?: string;
|
|
1816
|
+
itemId?: string;
|
|
1347
1817
|
} | null;
|
|
1348
1818
|
gapGlobal: number;
|
|
1349
1819
|
setGapGlobal(val: number | string): void;
|
|
@@ -1368,6 +1838,7 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1368
1838
|
* Fields that are not yet placed in any section/column of the layout.
|
|
1369
1839
|
*/
|
|
1370
1840
|
get availableFields(): FieldMetadata[];
|
|
1841
|
+
t(key: string, params?: Record<string, string | number | boolean | null | undefined>): string;
|
|
1371
1842
|
get columnDropListIds(): string[];
|
|
1372
1843
|
getColumnId(sectionIndex: number, rowIndex: number, columnIndex: number): string;
|
|
1373
1844
|
private parseColumnId;
|
|
@@ -1378,10 +1849,30 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1378
1849
|
selectRow(sectionIndex: number, rowIndex: number): void;
|
|
1379
1850
|
selectColumn(sectionIndex: number, rowIndex: number, columnIndex: number): void;
|
|
1380
1851
|
dropField({ event }: FieldDropEvent): void;
|
|
1852
|
+
private getColumnLayoutItemByIndex;
|
|
1853
|
+
private getColumnTargetByIndex;
|
|
1854
|
+
private getLayoutItemTargetByIndex;
|
|
1381
1855
|
dropSection(event: CdkDragDrop<FormSection[]>): void;
|
|
1382
1856
|
addSection(): void;
|
|
1383
1857
|
removeSection(index: number): void;
|
|
1384
1858
|
onSectionUpdated(index: number, updatedSection: FormSection): void;
|
|
1859
|
+
addVisualBlockToColumn(event: AddVisualBlockEvent): void;
|
|
1860
|
+
private createVisualBlockItemId;
|
|
1861
|
+
addApiFieldToColumn(event: AddApiFieldEvent): void;
|
|
1862
|
+
addLocalFieldToColumn(event: AddLocalFieldEvent): void;
|
|
1863
|
+
openFieldMetadataEditor(event: EditFieldEvent): void;
|
|
1864
|
+
private openFieldMetadataEditorInternal;
|
|
1865
|
+
private applyFieldMetadataPatch;
|
|
1866
|
+
private createLocalFieldName;
|
|
1867
|
+
openVisualBlockEditor(event: {
|
|
1868
|
+
sectionIndex: number;
|
|
1869
|
+
rowIndex: number;
|
|
1870
|
+
columnIndex: number;
|
|
1871
|
+
itemId: string;
|
|
1872
|
+
}): void;
|
|
1873
|
+
moveVisualBlock(event: MoveVisualBlockEvent): void;
|
|
1874
|
+
moveVisualBlockToColumn(event: MoveVisualBlockToColumnEvent): void;
|
|
1875
|
+
removeVisualBlock(event: VisualBlockEvent): void;
|
|
1385
1876
|
private emitNewConfig;
|
|
1386
1877
|
onApplyStyleToAll(patch: Partial<FormSection>): void;
|
|
1387
1878
|
trackBySection(index: number, s: FormSection & {
|
|
@@ -1394,15 +1885,17 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
1394
1885
|
declare class RowConfiguratorComponent implements OnChanges {
|
|
1395
1886
|
row: FormRow;
|
|
1396
1887
|
fieldMetadata: FieldMetadata[];
|
|
1888
|
+
availableFields: FieldMetadata[];
|
|
1397
1889
|
sectionIndex: number;
|
|
1398
1890
|
rowIndex: number;
|
|
1399
1891
|
isLastRow: boolean;
|
|
1400
1892
|
selected: {
|
|
1401
|
-
type: 'section' | 'row' | 'column' | 'field';
|
|
1893
|
+
type: 'section' | 'row' | 'column' | 'field' | 'visualBlock';
|
|
1402
1894
|
sectionIndex?: number;
|
|
1403
1895
|
rowIndex?: number;
|
|
1404
1896
|
columnIndex?: number;
|
|
1405
1897
|
fieldName?: string;
|
|
1898
|
+
itemId?: string;
|
|
1406
1899
|
} | null;
|
|
1407
1900
|
availableFieldsListId: string | null;
|
|
1408
1901
|
connectedDropListIds: string[];
|
|
@@ -1412,8 +1905,51 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1412
1905
|
remove: EventEmitter<void>;
|
|
1413
1906
|
applyRowGapAll: EventEmitter<number>;
|
|
1414
1907
|
fieldDrop: EventEmitter<CdkDragDrop<any, any, any>>;
|
|
1908
|
+
addVisualBlock: EventEmitter<{
|
|
1909
|
+
rowIndex: number;
|
|
1910
|
+
columnIndex: number;
|
|
1911
|
+
presetId: VisualBlockPresetId;
|
|
1912
|
+
}>;
|
|
1913
|
+
addApiField: EventEmitter<{
|
|
1914
|
+
rowIndex: number;
|
|
1915
|
+
columnIndex: number;
|
|
1916
|
+
fieldName: string;
|
|
1917
|
+
}>;
|
|
1918
|
+
addLocalField: EventEmitter<{
|
|
1919
|
+
rowIndex: number;
|
|
1920
|
+
columnIndex: number;
|
|
1921
|
+
}>;
|
|
1922
|
+
editField: EventEmitter<{
|
|
1923
|
+
rowIndex: number;
|
|
1924
|
+
columnIndex: number;
|
|
1925
|
+
fieldName: string;
|
|
1926
|
+
}>;
|
|
1927
|
+
editVisualBlock: EventEmitter<{
|
|
1928
|
+
rowIndex: number;
|
|
1929
|
+
columnIndex: number;
|
|
1930
|
+
itemId: string;
|
|
1931
|
+
}>;
|
|
1932
|
+
moveVisualBlock: EventEmitter<{
|
|
1933
|
+
rowIndex: number;
|
|
1934
|
+
columnIndex: number;
|
|
1935
|
+
itemId: string;
|
|
1936
|
+
direction: -1 | 1;
|
|
1937
|
+
}>;
|
|
1938
|
+
moveVisualBlockToColumn: EventEmitter<{
|
|
1939
|
+
rowIndex: number;
|
|
1940
|
+
columnIndex: number;
|
|
1941
|
+
targetColumnIndex: number;
|
|
1942
|
+
itemId: string;
|
|
1943
|
+
}>;
|
|
1944
|
+
removeVisualBlock: EventEmitter<{
|
|
1945
|
+
rowIndex: number;
|
|
1946
|
+
columnIndex: number;
|
|
1947
|
+
itemId: string;
|
|
1948
|
+
}>;
|
|
1415
1949
|
select: EventEmitter<any>;
|
|
1416
1950
|
activeDropIndex: number | null;
|
|
1951
|
+
protected readonly visualBlockPresets: readonly VisualBlockPreset[];
|
|
1952
|
+
private readonly i18n;
|
|
1417
1953
|
private hoverTimer;
|
|
1418
1954
|
protected readonly breakpoints: Breakpoint[];
|
|
1419
1955
|
previewBreakpoint: Breakpoint;
|
|
@@ -1426,11 +1962,26 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1426
1962
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1427
1963
|
private rebuildConnectedColumnsCache;
|
|
1428
1964
|
getFieldByName(fieldName: string): FieldMetadata;
|
|
1429
|
-
|
|
1965
|
+
getColumnLayoutItems(column: FormColumn): FormLayoutItem[];
|
|
1966
|
+
trackLayoutItem(_: number, item: FormLayoutItem): string;
|
|
1967
|
+
hasColumnContent(column: FormColumn): boolean;
|
|
1968
|
+
getVisualBlockLabel(item: FormLayoutItem): string;
|
|
1969
|
+
private findRichContentLabel;
|
|
1970
|
+
private findRichNodeLabel;
|
|
1971
|
+
t(key: string, params?: Record<string, string | number | boolean | null | undefined>): string;
|
|
1972
|
+
getFieldLabel(field: FieldMetadata): string;
|
|
1973
|
+
selectVisualBlock(columnIndex: number, item: FormLayoutItem, event: Event): void;
|
|
1974
|
+
openVisualBlockEditor(columnIndex: number, item: FormLayoutItem, event: Event): void;
|
|
1975
|
+
moveVisualBlockItem(columnIndex: number, item: FormLayoutItem, direction: -1 | 1, event: Event): void;
|
|
1976
|
+
canMoveVisualBlockToColumn(columnIndex: number, direction: -1 | 1): boolean;
|
|
1977
|
+
moveVisualBlockToAdjacentColumn(columnIndex: number, item: FormLayoutItem, direction: -1 | 1, event: Event): void;
|
|
1978
|
+
removeVisualBlockItem(columnIndex: number, item: FormLayoutItem, event: Event): void;
|
|
1979
|
+
drop(event: CdkDragDrop<FormLayoutItem[], FormLayoutItem[] | FieldMetadata[], FormLayoutItem | FieldMetadata>): void;
|
|
1430
1980
|
selectRow(): void;
|
|
1431
1981
|
openColumnConfig(index: number): void;
|
|
1432
1982
|
selectColumn(index: number, event: MouseEvent): void;
|
|
1433
|
-
selectField(fieldName: string, event: MouseEvent): void;
|
|
1983
|
+
selectField(fieldName: string, columnIndex: number, event: MouseEvent): void;
|
|
1984
|
+
openFieldEditor(fieldName: string, columnIndex: number, event: Event): void;
|
|
1434
1985
|
openRowMenu(): void;
|
|
1435
1986
|
onMenuClosed(): void;
|
|
1436
1987
|
onDropEnter(index: number): void;
|
|
@@ -1444,6 +1995,9 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1444
1995
|
removeRow(): void;
|
|
1445
1996
|
moveColumn(index: number, direction: number): void;
|
|
1446
1997
|
clearColumn(index: number): void;
|
|
1998
|
+
addVisualBlockToColumn(index: number, presetId: VisualBlockPresetId): void;
|
|
1999
|
+
addApiFieldToColumn(index: number, fieldName: string): void;
|
|
2000
|
+
addLocalFieldToColumn(index: number): void;
|
|
1447
2001
|
addFieldToColumn(index: number): void;
|
|
1448
2002
|
getColumnId(index: number): string;
|
|
1449
2003
|
private generateId;
|
|
@@ -1467,7 +2021,7 @@ declare class RowConfiguratorComponent implements OnChanges {
|
|
|
1467
2021
|
adjustOffset(columnIndex: number, delta: number): void;
|
|
1468
2022
|
getSuggestedSpan(columnIndex: number): number | null;
|
|
1469
2023
|
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>;
|
|
2024
|
+
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
2025
|
}
|
|
1472
2026
|
|
|
1473
2027
|
declare class FieldConfiguratorComponent {
|
|
@@ -1485,11 +2039,69 @@ declare class FieldConfiguratorComponent {
|
|
|
1485
2039
|
static ɵcmp: i0.ɵɵComponentDeclaration<FieldConfiguratorComponent, "praxis-field-configurator", never, { "field": { "alias": "field"; "required": false; }; }, {}, never, never, true, never>;
|
|
1486
2040
|
}
|
|
1487
2041
|
|
|
2042
|
+
interface PraxisDynamicFormWidgetEditorInputs {
|
|
2043
|
+
config?: FormConfig | null;
|
|
2044
|
+
mode?: DynamicFormMode;
|
|
2045
|
+
formId?: string;
|
|
2046
|
+
componentInstanceId?: string;
|
|
2047
|
+
backConfig?: BackConfig;
|
|
2048
|
+
notifyIfOutdated?: 'inline' | 'snackbar' | 'both' | 'none';
|
|
2049
|
+
snoozeMs?: number;
|
|
2050
|
+
autoOpenSettingsOnOutdated?: boolean;
|
|
2051
|
+
[key: string]: unknown;
|
|
2052
|
+
}
|
|
2053
|
+
interface PraxisDynamicFormWidgetEditorValue {
|
|
2054
|
+
inputs: PraxisDynamicFormWidgetEditorInputs;
|
|
2055
|
+
}
|
|
2056
|
+
declare class PraxisDynamicFormWidgetConfigEditor implements SettingsValueProvider, AfterViewInit, OnDestroy {
|
|
2057
|
+
inputs: PraxisDynamicFormWidgetEditorInputs | null;
|
|
2058
|
+
widgetKey?: string;
|
|
2059
|
+
formEditor?: PraxisDynamicFormConfigEditor;
|
|
2060
|
+
readonly isDirty$: BehaviorSubject<boolean>;
|
|
2061
|
+
readonly isValid$: BehaviorSubject<boolean>;
|
|
2062
|
+
readonly isBusy$: BehaviorSubject<boolean>;
|
|
2063
|
+
private readonly subscription;
|
|
2064
|
+
ngAfterViewInit(): void;
|
|
2065
|
+
ngOnDestroy(): void;
|
|
2066
|
+
getSettingsValue(): PraxisDynamicFormWidgetEditorValue;
|
|
2067
|
+
onSave(): PraxisDynamicFormWidgetEditorValue;
|
|
2068
|
+
reset(): void;
|
|
2069
|
+
private initializeChildEditor;
|
|
2070
|
+
private buildValue;
|
|
2071
|
+
private createDocumentFromInputs;
|
|
2072
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormWidgetConfigEditor, never>;
|
|
2073
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicFormWidgetConfigEditor, "praxis-dynamic-form-widget-config-editor", never, { "inputs": { "alias": "inputs"; "required": false; }; "widgetKey": { "alias": "widgetKey"; "required": false; }; }, {}, never, never, true, never>;
|
|
2074
|
+
}
|
|
2075
|
+
|
|
1488
2076
|
/** Metadata for PraxisDynamicForm component */
|
|
1489
2077
|
declare const PRAXIS_DYNAMIC_FORM_COMPONENT_METADATA: ComponentDocMeta;
|
|
1490
2078
|
/** Provider para auto-registrar metadados do componente Dynamic Form. */
|
|
1491
2079
|
declare function providePraxisDynamicFormMetadata(): Provider;
|
|
1492
2080
|
|
|
2081
|
+
interface DomainRuleFormRulesRequestOptions extends DomainRuleRequestOptions {
|
|
2082
|
+
targetLayer?: string;
|
|
2083
|
+
targetArtifactType?: string;
|
|
2084
|
+
status?: string;
|
|
2085
|
+
}
|
|
2086
|
+
type DomainRuleMaterializedFormLayoutRule = FormLayoutRule & {
|
|
2087
|
+
metadata?: Record<string, unknown>;
|
|
2088
|
+
};
|
|
2089
|
+
declare class DomainRuleFormRulesService {
|
|
2090
|
+
private readonly domainRules;
|
|
2091
|
+
constructor(domainRules: DomainRuleService);
|
|
2092
|
+
listRulesForForm(targetArtifactKey: string, options?: DomainRuleFormRulesRequestOptions): Observable<DomainRuleMaterializedFormLayoutRule[]>;
|
|
2093
|
+
materializationsToFormRules(materializations: DomainRuleMaterialization[] | null | undefined): DomainRuleMaterializedFormLayoutRule[];
|
|
2094
|
+
materializationToFormRule(materialization: DomainRuleMaterialization): DomainRuleMaterializedFormLayoutRule | null;
|
|
2095
|
+
private asDirectFormRule;
|
|
2096
|
+
private visualBlockGuidanceToRule;
|
|
2097
|
+
private withDomainMetadata;
|
|
2098
|
+
private asRecord;
|
|
2099
|
+
private asStringArray;
|
|
2100
|
+
private resolveString;
|
|
2101
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DomainRuleFormRulesService, never>;
|
|
2102
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DomainRuleFormRulesService>;
|
|
2103
|
+
}
|
|
2104
|
+
|
|
1493
2105
|
declare function isRuleSatisfied(rule: FormLayoutRule, data: unknown): boolean;
|
|
1494
2106
|
/**
|
|
1495
2107
|
* Applies all visibility rules to the provided data and
|
|
@@ -1581,6 +2193,7 @@ type ActionCatalogOption = {
|
|
|
1581
2193
|
id: string;
|
|
1582
2194
|
label: string;
|
|
1583
2195
|
description?: string;
|
|
2196
|
+
payloadSchema?: GlobalActionCatalogEntry['payloadSchema'];
|
|
1584
2197
|
param?: {
|
|
1585
2198
|
required?: boolean;
|
|
1586
2199
|
label?: string;
|
|
@@ -1634,7 +2247,6 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1634
2247
|
isBusy$: BehaviorSubject<boolean>;
|
|
1635
2248
|
private readonly globalActionCatalogSource;
|
|
1636
2249
|
private readonly i18n;
|
|
1637
|
-
readonly legacyActionSpecs: _praxisui_core.GlobalActionSpec[];
|
|
1638
2250
|
readonly globalActionCatalog: ActionCatalogOption[];
|
|
1639
2251
|
readonly customActionValue = "__custom__";
|
|
1640
2252
|
private destroy$;
|
|
@@ -1654,12 +2266,12 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1654
2266
|
label?: string;
|
|
1655
2267
|
}): string;
|
|
1656
2268
|
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;
|
|
2269
|
+
getHeaderActionSelectValue(value?: string, globalAction?: GlobalActionRef): string;
|
|
2270
|
+
getHeaderActionParam(value?: string, globalAction?: GlobalActionRef): string;
|
|
2271
|
+
getHeaderActionCustomValue(value?: string, globalAction?: GlobalActionRef): string;
|
|
2272
|
+
getHeaderGlobalActionSchema(value?: string, globalAction?: GlobalActionRef): _praxisui_core.GlobalActionUiSchema | undefined;
|
|
2273
|
+
getHeaderSurfaceOpenActionPayload(value?: string, globalAction?: GlobalActionRef): SurfaceOpenPayload;
|
|
2274
|
+
isHeaderActionParamMissing(value?: string, globalAction?: GlobalActionRef): boolean;
|
|
1663
2275
|
onHeaderActionSelectChange(index: number, value: string): void;
|
|
1664
2276
|
onHeaderActionParamChange(index: number, value: string): void;
|
|
1665
2277
|
onHeaderActionCustomChange(index: number, value: string): void;
|
|
@@ -1693,6 +2305,7 @@ declare class SectionEditorComponent implements OnInit, AfterViewInit, OnDestroy
|
|
|
1693
2305
|
private normalizeHeaderActions;
|
|
1694
2306
|
private mapCatalogEntryToActionSpec;
|
|
1695
2307
|
private getActionCatalogDescription;
|
|
2308
|
+
private normalizeHeaderGlobalAction;
|
|
1696
2309
|
private headerActionStyleValidator;
|
|
1697
2310
|
private stringifyHeaderActionStyle;
|
|
1698
2311
|
private parseHeaderActionStyle;
|
|
@@ -1881,7 +2494,8 @@ declare enum FormRuleTargetType {
|
|
|
1881
2494
|
Section = "section",
|
|
1882
2495
|
Action = "action",
|
|
1883
2496
|
Row = "row",
|
|
1884
|
-
Column = "column"
|
|
2497
|
+
Column = "column",
|
|
2498
|
+
VisualBlock = "visualBlock"
|
|
1885
2499
|
}
|
|
1886
2500
|
declare enum FormRuleContext {
|
|
1887
2501
|
Visibility = "visibility",
|
|
@@ -1973,5 +2587,49 @@ declare const FORM_COMPONENT_AI_CAPABILITIES: CapabilityCatalog;
|
|
|
1973
2587
|
*/
|
|
1974
2588
|
declare function getFormAiCatalog(formConfig?: FormConfig): AiCapabilityCatalog;
|
|
1975
2589
|
|
|
1976
|
-
|
|
1977
|
-
|
|
2590
|
+
type DynamicFormRuleTargetType = NonNullable<FormLayoutRule['targetType']>;
|
|
2591
|
+
interface DynamicFormRuleAuthoringField {
|
|
2592
|
+
name: string;
|
|
2593
|
+
label?: string;
|
|
2594
|
+
type?: string;
|
|
2595
|
+
source?: string;
|
|
2596
|
+
submitPolicy?: string;
|
|
2597
|
+
}
|
|
2598
|
+
interface DynamicFormRuleAuthoringTarget {
|
|
2599
|
+
id: string;
|
|
2600
|
+
label?: string;
|
|
2601
|
+
}
|
|
2602
|
+
interface DynamicFormRuleAuthoringVisualBlockNode {
|
|
2603
|
+
id: string;
|
|
2604
|
+
label: string;
|
|
2605
|
+
kind: string;
|
|
2606
|
+
roles: Array<'text' | 'title' | 'message'>;
|
|
2607
|
+
}
|
|
2608
|
+
type DynamicFormRuleAuthoringTargets = Record<DynamicFormRuleTargetType, string[]>;
|
|
2609
|
+
type DynamicFormRuleAuthoringTargetDetails = Record<DynamicFormRuleTargetType, DynamicFormRuleAuthoringTarget[]>;
|
|
2610
|
+
type DynamicFormAllowedRuleProperties = Record<DynamicFormRuleTargetType, string[]>;
|
|
2611
|
+
interface DynamicFormRuleAuthoringContext {
|
|
2612
|
+
component: 'praxis-dynamic-form';
|
|
2613
|
+
capabilityCatalogVersion: string;
|
|
2614
|
+
fields: DynamicFormRuleAuthoringField[];
|
|
2615
|
+
targets: DynamicFormRuleAuthoringTargets;
|
|
2616
|
+
targetDetails: DynamicFormRuleAuthoringTargetDetails;
|
|
2617
|
+
allowedRuleProperties: DynamicFormAllowedRuleProperties;
|
|
2618
|
+
visualBlockNodes: Record<string, DynamicFormRuleAuthoringVisualBlockNode[]>;
|
|
2619
|
+
existingRules: FormLayoutRule[];
|
|
2620
|
+
diagnostics: FormRuleDiagnostics[];
|
|
2621
|
+
guardrails: string[];
|
|
2622
|
+
}
|
|
2623
|
+
declare function buildDynamicFormRuleAuthoringContext(config: Pick<FormConfig, 'fieldMetadata' | 'sections' | 'actions' | 'formRules'>): DynamicFormRuleAuthoringContext;
|
|
2624
|
+
|
|
2625
|
+
/**
|
|
2626
|
+
* Manifesto de authoring canônico para o componente praxis-dynamic-form.
|
|
2627
|
+
* Este arquivo define as operações permitidas pela IA para editar formulários.
|
|
2628
|
+
*
|
|
2629
|
+
* @version 1.5.0
|
|
2630
|
+
* @status COMPLIANT - Alinhado com contrato v2, gate de aceitação e semântica local/schema-backed.
|
|
2631
|
+
*/
|
|
2632
|
+
declare const PRAXIS_DYNAMIC_FORM_AUTHORING_MANIFEST: ComponentAuthoringManifest;
|
|
2633
|
+
|
|
2634
|
+
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, PraxisDynamicFormWidgetConfigEditor, PraxisFilterForm, PraxisFilterFormWidgetConfigEditor, 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 };
|
|
2635
|
+
export type { CanvasElement, CanvasElementType, CanvasPathPart, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, DomainRuleFormRulesRequestOptions, DomainRuleMaterializedFormLayoutRule, DynamicFieldRenderErrorEvent, DynamicFormAllowedRuleProperties, DynamicFormApplyPlan, DynamicFormAuthoringDocument, DynamicFormBindings, DynamicFormConfigPatchChangeEvent, 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, PraxisDynamicFormWidgetEditorInputs, PraxisDynamicFormWidgetEditorValue, PraxisFilterFormWidgetEditorInputs, PraxisFilterFormWidgetEditorValue, PraxisFormActionEvent, RemovePolicy, RuleApplicationContext, RuleApplicationDiagnostic, RuleApplicationDiagnosticCode, RuleApplicationResult, RuleApplicationTargetIndex, RuleApplicationTargetType, ValidationReport, ValueKind$1 as ValueKind };
|