@praxisui/dynamic-form 10.0.0-rc.4 → 10.0.0-rc.41
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 +92 -0
- package/ai/component-registry.json +630 -156
- package/docs/custom-fields-enterprise-review.md +229 -0
- package/docs/dynamic-form-authoring-document-semantics.md +68 -2
- package/docs/evidence/form-authoring-635-20261023/final-review.md +46 -0
- package/docs/evidence/form-authoring-635-20261023/independent-review-vb-form.md +50 -0
- package/docs/evidence/form-authoring-635-20261023/validation.md +76 -0
- package/docs/evidence/p1-authoring-20261022/validation.md +134 -0
- package/docs/governed-page-widget-adapter.md +58 -0
- package/docs/hot-metadata-updates.md +16 -0
- package/fesm2022/praxisui-dynamic-form.mjs +4177 -1130
- package/package.json +8 -8
- package/src/lib/config-editor/praxis-dynamic-form-config-editor.json-api.md +11 -3
- package/src/lib/praxis-dynamic-form.json-api.md +41 -7
- package/types/praxisui-dynamic-form.d.ts +310 -27
|
@@ -7,7 +7,8 @@ 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, FormConfigWithSections, FormLayoutItem, ReactiveDeterminationDefinition, ReactiveDeterminationExecutionEvent, FormActionButton, AiCapability, BackConfig, FormPresentationConfig, EmptyStateTone, EmptyStateVariant, EmptyStateAlignment, EmptyStateDensity, EmptyStateIconContainer, RichBlockHostCapabilities, ApiEndpoint, ApiUrlEntry, DynamicFormLayoutPolicy, FormHooksLayout, EndpointConfig, FormSubmitEvent, FormReadyEvent, FormValueChangeEvent, FormPayloadPreviewEvent, SyncResult, FormInitializationError, LoadingState, FormCustomActionEvent, FormActionConfirmationEvent, RichContentDocument, JsonLogicRecord, GenericCrudService, ConnectionStorage, DynamicFormService, ErrorMessageService, SchemaNormalizerService, ComponentMetadataRegistry, GlobalConfigService, ComponentKeyService, LoadingOrchestrator, ApiUrlConfig, PraxisLoadingRenderer, FormHooksRegistry, FormHookPreset, LoggerService, EnterpriseRuntimeContextService, FormSectionHeaderAction, FormSectionHeaderConfig, FormConfigState, JsonLogicExpression, FormHelpPresentationConfig, GlobalActionCatalogEntry, PraxisRuntimeConditionalEffectRule, PraxisRuntimeGlobalActionEffect, SurfaceOpenPayload, GlobalActionField, PraxisEffectPolicy, FieldDefinition, ComponentDocMeta, Breakpoint, DomainRuleRequestOptions, DomainRuleService, DomainRuleMaterialization, TableConfig, SurfaceOpenActionEditorComponent, IconPickerService, GlobalActionRef, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, ComponentAuthoringManifest } from '@praxisui/core';
|
|
10
|
+
import { AsyncConfigStorage, FormLayout, FieldMetadata, FormLayoutRule, FormRuleTargetType as FormRuleTargetType$1, PraxisJsonLogicService, FormSection, FormRow, FormColumn, FormConfig, FormConfigWithSections, FormLayoutItem, ReactiveDeterminationDefinition, ReactiveDeterminationExecutionEvent, FormActionButton, DynamicFormMode, AiCapability, DynamicFormLayoutScope, BackConfig, FormPresentationConfig, EmptyStateTone, EmptyStateVariant, EmptyStateAlignment, EmptyStateDensity, EmptyStateIconContainer, FormPresentationPreset, RichBlockHostCapabilities, ApiEndpoint, ApiUrlEntry, FormLayoutMode, FormLayoutOptions, DynamicFormLayoutPolicy, FormHooksLayout, EndpointConfig, FormSubmitEvent, FormReadyEvent, FormValueChangeEvent, FormPayloadPreviewEvent, SyncResult, FormInitializationError, LoadingState, FormCustomActionEvent, FormActionConfirmationEvent, FormLayoutTabItem, RichContentDocument, JsonLogicRecord, GenericCrudService, ConnectionStorage, DynamicFormService, ErrorMessageService, SchemaNormalizerService, ComponentMetadataRegistry, GlobalConfigService, ComponentKeyService, LoadingOrchestrator, ApiUrlConfig, PraxisLoadingRenderer, FormHooksRegistry, FormHookPreset, LoggerService, EnterpriseRuntimeContextService, FormLayoutTabsAppearance, FormSectionHeaderAction, FormSectionHeaderConfig, FormConfigState, JsonLogicExpression, FormHelpPresentationConfig, GlobalActionCatalogEntry, PraxisRuntimeConditionalEffectRule, PraxisRuntimeGlobalActionEffect, SurfaceOpenPayload, GlobalActionField, PraxisEffectPolicy, FieldDefinition, ComponentDocMeta, DiscoveredResourceOption, Breakpoint, DomainRuleRequestOptions, DomainRuleService, DomainRuleMaterialization, SchemaIdParams, CompiledDynamicFormSchema, TableConfig, SurfaceOpenActionEditorComponent, IconPickerService, GlobalActionRef, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, ComponentAuthoringManifest, GovernedPagePreviewWidgetAdapter, WidgetInstance } from '@praxisui/core';
|
|
11
|
+
export { CompiledDynamicFormSchema, DynamicFormLayoutScope, DynamicFormMode } from '@praxisui/core';
|
|
11
12
|
import * as rxjs from 'rxjs';
|
|
12
13
|
import { Observable, Subscription, BehaviorSubject } from 'rxjs';
|
|
13
14
|
import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
|
|
@@ -374,7 +375,7 @@ declare class ReactiveDeterminationRuntimeService {
|
|
|
374
375
|
waitForStable(form: FormGroup, timeoutMs?: number): Promise<boolean>;
|
|
375
376
|
observePending(form: FormGroup, observer: (pending: boolean) => void): Subscription;
|
|
376
377
|
isOwnedTarget(form: FormGroup, control: AbstractControl): boolean;
|
|
377
|
-
connect(form: FormGroup, definitions: ReactiveDeterminationDefinition[], executor: ReactiveDeterminationExecutor, onEvent?: (event: ReactiveDeterminationExecutionEvent) => void, operationTimeoutMs?: number): Subscription;
|
|
378
|
+
connect(form: FormGroup, definitions: ReactiveDeterminationDefinition[], executor: ReactiveDeterminationExecutor, onEvent?: (event: ReactiveDeterminationExecutionEvent) => void, operationTimeoutMs?: number, fieldMetadata?: readonly FieldMetadata[]): Subscription;
|
|
378
379
|
private resolveControls;
|
|
379
380
|
private waitForUpstreamDeterminations;
|
|
380
381
|
private claimTargets;
|
|
@@ -508,7 +509,7 @@ declare class PraxisFormActionsComponent implements OnChanges, OnDestroy {
|
|
|
508
509
|
interface FormAiHost {
|
|
509
510
|
config: FormConfig;
|
|
510
511
|
form: FormGroup;
|
|
511
|
-
mode?:
|
|
512
|
+
mode?: DynamicFormMode;
|
|
512
513
|
enableCustomization?: boolean;
|
|
513
514
|
readonlyModeGlobal?: boolean | null;
|
|
514
515
|
effectiveReadonly?: boolean;
|
|
@@ -572,9 +573,11 @@ interface EditorDiagnostic {
|
|
|
572
573
|
message: string;
|
|
573
574
|
path?: string;
|
|
574
575
|
}
|
|
575
|
-
|
|
576
|
+
|
|
576
577
|
interface DynamicFormBindings {
|
|
577
578
|
mode?: DynamicFormMode;
|
|
579
|
+
/** Controls whether saved layout changes apply to all CRUD modes ('shared') or only the active mode ('mode-only'). */
|
|
580
|
+
layoutScope?: DynamicFormLayoutScope;
|
|
578
581
|
/** Opt-in view placeholder; null explicitly disables it. */
|
|
579
582
|
emptyState?: PraxisDynamicFormEmptyState | null;
|
|
580
583
|
/** true: presentation in view; false: fields; null/absent: inherit layout policy. */
|
|
@@ -588,7 +591,7 @@ interface DynamicFormSchemaPrefsSnapshot {
|
|
|
588
591
|
}
|
|
589
592
|
interface DynamicFormContextSnapshot {
|
|
590
593
|
backConfig?: BackConfig;
|
|
591
|
-
presentation?: DynamicFormPresentationSnapshot;
|
|
594
|
+
presentation?: DynamicFormPresentationSnapshot | null;
|
|
592
595
|
schemaPrefs?: DynamicFormSchemaPrefsSnapshot;
|
|
593
596
|
}
|
|
594
597
|
interface DynamicFormAuthoringDocument extends EditorDocument<FormConfig, DynamicFormBindings> {
|
|
@@ -647,6 +650,7 @@ interface DynamicFormApplyPlan {
|
|
|
647
650
|
};
|
|
648
651
|
diff?: {
|
|
649
652
|
modeChanged?: boolean;
|
|
653
|
+
layoutScopeChanged?: boolean;
|
|
650
654
|
presentationChanged?: boolean;
|
|
651
655
|
schemaPrefsChanged?: boolean;
|
|
652
656
|
backConfigChanged?: boolean;
|
|
@@ -661,6 +665,7 @@ interface DynamicFormConfigPatchChangeEvent {
|
|
|
661
665
|
mode?: DynamicFormMode;
|
|
662
666
|
presentationModeGlobal?: boolean | null;
|
|
663
667
|
presentation?: DynamicFormPresentationSnapshot | null;
|
|
668
|
+
presentationPreset?: FormPresentationPreset;
|
|
664
669
|
emptyState?: PraxisDynamicFormEmptyState | null;
|
|
665
670
|
};
|
|
666
671
|
}
|
|
@@ -769,6 +774,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
769
774
|
private readonly resourceDiscovery;
|
|
770
775
|
private readonly aiAssistantSessionEffect;
|
|
771
776
|
private readonly globalActions;
|
|
777
|
+
private readonly optionRegistry;
|
|
772
778
|
private readonly DEBUG;
|
|
773
779
|
private effectiveActionsCache?;
|
|
774
780
|
private effectiveActionsCacheBase?;
|
|
@@ -790,8 +796,11 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
790
796
|
* merged context snapshot used to avoid re-binding on every change detection pass.
|
|
791
797
|
*/
|
|
792
798
|
editorialContext: Record<string, unknown> | null;
|
|
793
|
-
mode:
|
|
794
|
-
|
|
799
|
+
mode: DynamicFormMode;
|
|
800
|
+
private effectiveConfig;
|
|
801
|
+
private configAssignment;
|
|
802
|
+
get config(): FormConfig;
|
|
803
|
+
set config(value: FormConfig);
|
|
795
804
|
private hostConfigInputProvided;
|
|
796
805
|
/** Optional host-level overrides for the rendered form action bar. */
|
|
797
806
|
actions?: FormConfig['actions'] | null;
|
|
@@ -800,7 +809,11 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
800
809
|
* 'resource' (padrão) usa o schema do recurso (/{resource}/schemas -> .../all response)
|
|
801
810
|
* 'filter' usa o schema do DTO de filtro (via /schemas/filtered no POST /filter request)
|
|
802
811
|
*/
|
|
803
|
-
schemaSource: 'resource' | 'filter';
|
|
812
|
+
schemaSource: 'resource' | 'filter' | 'action';
|
|
813
|
+
/** Canonical workflow/action identifier when bound to a command surface. */
|
|
814
|
+
actionId?: string | null;
|
|
815
|
+
/** Canonical backend operationId when bound to a command/surface endpoint. */
|
|
816
|
+
operationId?: string | null;
|
|
804
817
|
/** Canonical schema URL published by the backend surface catalog. */
|
|
805
818
|
schemaUrl?: string | null;
|
|
806
819
|
/** Canonical read URL published by backend view/read-projection surfaces. */
|
|
@@ -848,9 +861,19 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
848
861
|
/** Identifier for persisting layouts */
|
|
849
862
|
formId?: string;
|
|
850
863
|
componentInstanceId?: string;
|
|
851
|
-
configPersistenceStrategy: 'local-first' | 'input-first';
|
|
864
|
+
configPersistenceStrategy: 'local-first' | 'input-first' | 'volatile';
|
|
852
865
|
/** Optional layout to use instead of generated one */
|
|
853
866
|
layout?: FormLayout;
|
|
867
|
+
/**
|
|
868
|
+
* Layout mode for organizing form sections: 'vertical' (default), 'tabs' or 'accordion'.
|
|
869
|
+
* Overrides config.layout.mode when specified.
|
|
870
|
+
*/
|
|
871
|
+
layoutMode?: FormLayoutMode;
|
|
872
|
+
/**
|
|
873
|
+
* Layout configuration options for form sections (mode, tabs, defaultTabId, tabsAppearance, accordionMulti, etc.).
|
|
874
|
+
* Merged with and takes precedence over config.layout.
|
|
875
|
+
*/
|
|
876
|
+
formLayout?: FormLayoutOptions;
|
|
854
877
|
/** Metadata-driven layout preset used only when creating an initial config from schema. */
|
|
855
878
|
generatedLayoutPreset: DynamicFormGeneratedLayoutPreset;
|
|
856
879
|
/** Opt-in policy for schema-driven transient layout materialization. */
|
|
@@ -876,12 +899,50 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
876
899
|
presentationModeGlobal: boolean | null;
|
|
877
900
|
/** Projection of contextSnapshot.presentation; null clears authored style overrides. */
|
|
878
901
|
presentation?: DynamicFormPresentationSnapshot | null;
|
|
902
|
+
/**
|
|
903
|
+
* Optional presentation preset applied when the form is rendered in presentation mode.
|
|
904
|
+
* Resolves styles for standard patterns: 'corporate-dossier', 'editorial-card', 'compact-presentation' or 'default'.
|
|
905
|
+
*/
|
|
906
|
+
presentationPreset?: FormPresentationPreset;
|
|
907
|
+
/**
|
|
908
|
+
* Default visual appearance preset for sections when not explicitly configured at section level.
|
|
909
|
+
* Values: 'card' (default), 'plain' (borderless with divider support), 'step' (stepper badge layout).
|
|
910
|
+
*/
|
|
911
|
+
sectionDefaultAppearance?: 'card' | 'plain' | 'step';
|
|
912
|
+
/**
|
|
913
|
+
* Global flag to control divider lines between plain/dossier sections.
|
|
914
|
+
* When true, renders a subtle separator line below each section (except the last).
|
|
915
|
+
*/
|
|
916
|
+
sectionDivider?: boolean;
|
|
879
917
|
visibleGlobal: boolean | null;
|
|
880
918
|
fieldIconPolicy: 'all' | 'presentation-only' | 'none';
|
|
881
919
|
/** Opt-in loader for shared domain rule materializations persisted outside FormConfig. */
|
|
882
920
|
domainRules: PraxisDynamicFormDomainRulesOptions | boolean | null;
|
|
883
921
|
get effectivePresentation(): boolean;
|
|
922
|
+
/** Normalizes presentation preset aliases and casing to canonical values. */
|
|
923
|
+
normalizePresentationPreset(preset?: string | null): FormPresentationPreset;
|
|
924
|
+
/** Resolved presentation preset for the form container. */
|
|
925
|
+
get effectivePresentationPreset(): FormPresentationPreset;
|
|
926
|
+
/** Resolved presentation preset for a specific section, allowing section-level override. */
|
|
927
|
+
getSectionPresentationPreset(section?: FormSection | null): FormPresentationPreset;
|
|
928
|
+
isCorporateDossierPreset(): boolean;
|
|
929
|
+
isEditorialCardPreset(): boolean;
|
|
930
|
+
isCompactPresentationPreset(): boolean;
|
|
931
|
+
isSectionCorporateDossier(section?: FormSection | null): boolean;
|
|
932
|
+
isSectionEditorialCard(section?: FormSection | null): boolean;
|
|
933
|
+
isSectionCompactPresentation(section?: FormSection | null): boolean;
|
|
884
934
|
shouldShowContextEmptyState(): boolean;
|
|
935
|
+
private isItemScopedActionSubmitTarget;
|
|
936
|
+
getActionTargetRecordSummary(): {
|
|
937
|
+
id?: string;
|
|
938
|
+
title?: string;
|
|
939
|
+
subtitle?: string;
|
|
940
|
+
badges: Array<{
|
|
941
|
+
label: string;
|
|
942
|
+
value: string;
|
|
943
|
+
tone: 'neutral' | 'info' | 'success' | 'warning' | 'danger';
|
|
944
|
+
}>;
|
|
945
|
+
} | null;
|
|
885
946
|
private hasResourceContext;
|
|
886
947
|
private hasLocalRecordContext;
|
|
887
948
|
get effectiveReadonly(): boolean;
|
|
@@ -932,10 +993,19 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
932
993
|
reactiveDeterminationExecuted: EventEmitter<ReactiveDeterminationExecutionEvent>;
|
|
933
994
|
/** Emits only aggregate runtime state; no request or response payload is exposed. */
|
|
934
995
|
reactiveDeterminationPendingChange: EventEmitter<boolean>;
|
|
996
|
+
/** Emitted when active tab changes in 'tabs' layout mode. */
|
|
997
|
+
tabChange: EventEmitter<string>;
|
|
998
|
+
/** Emitted when a tab is selected in 'tabs' layout mode. */
|
|
999
|
+
tabSelected: EventEmitter<FormLayoutTabItem>;
|
|
1000
|
+
/** Active tab ID when effectiveLayoutMode === 'tabs'. */
|
|
1001
|
+
activeTabId: string | null;
|
|
935
1002
|
private reactiveDeterminationPending;
|
|
936
1003
|
isLoading: boolean;
|
|
937
1004
|
submitting: boolean;
|
|
938
1005
|
private submitPreparationInProgress;
|
|
1006
|
+
private submitLifecycleSequence;
|
|
1007
|
+
private activeSubmitLifecycle;
|
|
1008
|
+
private activeSubmitAutomatic;
|
|
939
1009
|
submitError: string | null;
|
|
940
1010
|
initializationStatus: 'idle' | 'loading' | 'success' | 'error';
|
|
941
1011
|
currentErrorMessage: string;
|
|
@@ -970,6 +1040,9 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
970
1040
|
private entitySelectionCleared;
|
|
971
1041
|
private hydratedEntityId;
|
|
972
1042
|
private loadedEntityData;
|
|
1043
|
+
private loadedResourceRevision;
|
|
1044
|
+
private resourceRevisionInvalidated;
|
|
1045
|
+
private entityReadAttempt;
|
|
973
1046
|
protected entityHydrationPending: boolean;
|
|
974
1047
|
protected entityReadFailed: boolean;
|
|
975
1048
|
protected entityReadText(key: 'loading' | 'error' | 'retry' | 'region' | 'success'): string;
|
|
@@ -982,8 +1055,14 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
982
1055
|
private assertSchemaInitializationCurrent;
|
|
983
1056
|
private isSchemaTransportInterruption;
|
|
984
1057
|
private schemaCache;
|
|
1058
|
+
private schemaValidationFailed;
|
|
1059
|
+
private initialValueContextInvalidated;
|
|
985
1060
|
private lastSchemaMeta?;
|
|
986
1061
|
private readonly schemaMetaPersistenceQueues;
|
|
1062
|
+
private persistenceContextEpoch;
|
|
1063
|
+
private persistenceContextDestroyed;
|
|
1064
|
+
/** Fence delayed work; requests already sent are not retroactively canceled. */
|
|
1065
|
+
private persistenceGuard;
|
|
987
1066
|
private readonly formConfigPersistenceQueues;
|
|
988
1067
|
private readonly formConfigPersistenceGenerations;
|
|
989
1068
|
private readonly formConfigConflictBlockThrough;
|
|
@@ -1090,6 +1169,17 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1090
1169
|
private resolveSubmitOperation;
|
|
1091
1170
|
private buildSubmitRequest;
|
|
1092
1171
|
private resolveSubmitResourceVersion;
|
|
1172
|
+
/** Identity and server context are captured with the representation, never reconstructed at submit by GET. */
|
|
1173
|
+
private resourceRevisionBinding;
|
|
1174
|
+
private usesAutomaticItemRevision;
|
|
1175
|
+
private isResourceRevisionCurrent;
|
|
1176
|
+
private invalidateAutomaticSubmitUi;
|
|
1177
|
+
private resourceRevisionNeedsReload;
|
|
1178
|
+
private resourceRevisionReloadError;
|
|
1179
|
+
private captureSavedResourceRevision;
|
|
1180
|
+
private rejectResourceRevision;
|
|
1181
|
+
private normalizeResourceVersionToken;
|
|
1182
|
+
private extractResourceVersionCandidate;
|
|
1093
1183
|
private normalizeSubmitMethod;
|
|
1094
1184
|
private formatResourceVersion;
|
|
1095
1185
|
private resolveSubmitHref;
|
|
@@ -1116,10 +1206,13 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1116
1206
|
private initializeStandaloneConfig;
|
|
1117
1207
|
private initializeDisconnectedEmptyState;
|
|
1118
1208
|
private reloadForModeChange;
|
|
1209
|
+
private resourceRevisionContextScope;
|
|
1210
|
+
private subscribeToRuntimeContextChanges;
|
|
1119
1211
|
ngOnInit(): void;
|
|
1120
1212
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1121
1213
|
private blurAllInputs;
|
|
1122
1214
|
private initializeForm;
|
|
1215
|
+
private hasInitializationError;
|
|
1123
1216
|
private handleInitializationError;
|
|
1124
1217
|
private loadConfigFailOpen;
|
|
1125
1218
|
private resolveFieldLabel;
|
|
@@ -1134,6 +1227,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1134
1227
|
private reconcileLoadedConfigWithServerSchema;
|
|
1135
1228
|
private hostConfigHasAuthoredLocalFieldsNotInLocalConfig;
|
|
1136
1229
|
private syncWithServer;
|
|
1230
|
+
private isActionCommandWithoutExplicitReadUrl;
|
|
1137
1231
|
private loadEntity;
|
|
1138
1232
|
private hydrateEntityFromInitialValue;
|
|
1139
1233
|
private flushEntityHydrationState;
|
|
@@ -1171,6 +1265,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1171
1265
|
private emitPayloadPreview;
|
|
1172
1266
|
private resetToHydratedSnapshot;
|
|
1173
1267
|
private collectDirtyFieldNames;
|
|
1268
|
+
private collectTouchedFieldNames;
|
|
1174
1269
|
private buildCurrentFormRuntimeContext;
|
|
1175
1270
|
private buildRestoreTargetContext;
|
|
1176
1271
|
private isCompatibleRuntimeStateContext;
|
|
@@ -1219,6 +1314,18 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1219
1314
|
private areRuleValuesEqual;
|
|
1220
1315
|
private buildRuleApplicationTargetIndex;
|
|
1221
1316
|
private setRuleApplicationDiagnostics;
|
|
1317
|
+
get effectiveLayoutMode(): FormLayoutMode;
|
|
1318
|
+
get effectiveTabsAppearance(): FormLayoutTabsAppearance;
|
|
1319
|
+
get effectiveAccordionMulti(): boolean;
|
|
1320
|
+
get effectiveHideSectionHeaderInTabs(): boolean;
|
|
1321
|
+
get effectiveTabs(): FormLayoutTabItem[];
|
|
1322
|
+
ensureActiveTabValid(): void;
|
|
1323
|
+
selectTab(tabId: string): void;
|
|
1324
|
+
isSectionInActiveTab(section?: FormSection): boolean;
|
|
1325
|
+
getTabErrorCount(tab: FormLayoutTabItem): number;
|
|
1326
|
+
getTabAriaControls(tab: FormLayoutTabItem): string;
|
|
1327
|
+
getTabIdForSection(section?: FormSection): string | null;
|
|
1328
|
+
shouldHideSectionHeader(section?: FormSection): boolean;
|
|
1222
1329
|
isSectionCollapsed(section?: FormSection): boolean;
|
|
1223
1330
|
isSectionCollapsible(section?: FormSection): boolean;
|
|
1224
1331
|
private getSectionRuleProps;
|
|
@@ -1227,9 +1334,11 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1227
1334
|
private hasVisibleSectionBody;
|
|
1228
1335
|
private shouldRenderInsideLastSectionContent;
|
|
1229
1336
|
private resolveInsideLastSectionHost;
|
|
1337
|
+
get actionTargetSelectedRecordLabel(): string;
|
|
1230
1338
|
getSectionTitle(section: FormSection): string | undefined;
|
|
1231
1339
|
getSectionDescription(section: FormSection): string | undefined;
|
|
1232
1340
|
getSectionAppearance(section: FormSection): 'card' | 'plain' | 'step' | undefined;
|
|
1341
|
+
isSectionDividerEnabled(section: FormSection): boolean;
|
|
1233
1342
|
getSectionStepLabel(section: FormSection): string | undefined;
|
|
1234
1343
|
getSectionTitleColor(section: FormSection): string | undefined;
|
|
1235
1344
|
getSectionDescriptionColor(section: FormSection): string | undefined;
|
|
@@ -1513,6 +1622,11 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1513
1622
|
private captureCurrentPresentationSnapshot;
|
|
1514
1623
|
private captureCurrentSchemaPrefsSnapshot;
|
|
1515
1624
|
private executeDynamicFormEditorApplyPlan;
|
|
1625
|
+
private buildCrossModeMetadataSeed;
|
|
1626
|
+
private resolveSiblingModeComponentKeyIds;
|
|
1627
|
+
private resolveSiblingModeFormConfigKeys;
|
|
1628
|
+
private resolveSiblingModePresentationKeys;
|
|
1629
|
+
private persistSharedFormConfigAcrossModes;
|
|
1516
1630
|
private attachRuntimeMetadataToDynamicFormConfig;
|
|
1517
1631
|
private emitConfigPatchChange;
|
|
1518
1632
|
private cloneFormConfigForPatch;
|
|
@@ -1526,7 +1640,14 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1526
1640
|
showDetailedError(): void;
|
|
1527
1641
|
private tryBuildExplicitSchemaContext;
|
|
1528
1642
|
private buildSchemaContext;
|
|
1643
|
+
private requiresConfirmedSchemaContext;
|
|
1644
|
+
private schemaRepresentationContext;
|
|
1529
1645
|
private getSchemaWithCache;
|
|
1646
|
+
/**
|
|
1647
|
+
* Invalida o cache de schema compilado para a instância atual e força
|
|
1648
|
+
* novo carregamento na próxima requisição.
|
|
1649
|
+
*/
|
|
1650
|
+
invalidateSchemaCache(): void;
|
|
1530
1651
|
private isReactiveValidationEnabled;
|
|
1531
1652
|
private getReactiveValidationDebounceMs;
|
|
1532
1653
|
private waitForGlobalConfigReadyForSchema;
|
|
@@ -1535,7 +1656,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1535
1656
|
private applyPresentationVars;
|
|
1536
1657
|
private applyPresentationConfig;
|
|
1537
1658
|
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, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
1538
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicForm, "praxis-dynamic-form", never, { "resourcePath": { "alias": "resourcePath"; "required": false; }; "resourceId": { "alias": "resourceId"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "emptyState": { "alias": "emptyState"; "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; }; "submitIdempotencyKey": { "alias": "submitIdempotencyKey"; "required": false; }; "submitCorrelationId": { "alias": "submitCorrelationId"; "required": false; }; "submitResourceVersion": { "alias": "submitResourceVersion"; "required": false; }; "submitResourceVersionTargetResourceKey": { "alias": "submitResourceVersionTargetResourceKey"; "required": false; }; "submitResourceVersionTargetIdField": { "alias": "submitResourceVersionTargetIdField"; "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; }; "generatedLayoutPreset": { "alias": "generatedLayoutPreset"; "required": false; }; "layoutPolicy": { "alias": "layoutPolicy"; "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; }; "presentation": { "alias": "presentation"; "required": false; }; "visibleGlobal": { "alias": "visibleGlobal"; "required": false; }; "fieldIconPolicy": { "alias": "fieldIconPolicy"; "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"; "payloadPreviewChange": "payloadPreviewChange"; "syncCompleted": "syncCompleted"; "initializationError": "initializationError"; "loadingStateChange": "loadingStateChange"; "enableCustomizationChange": "enableCustomizationChange"; "customAction": "customAction"; "actionConfirmation": "actionConfirmation"; "schemaStatusChange": "schemaStatusChange"; "fieldRenderError": "fieldRenderError"; "ruleDiagnosticsChange": "ruleDiagnosticsChange"; "reactiveDeterminationExecuted": "reactiveDeterminationExecuted"; "reactiveDeterminationPendingChange": "reactiveDeterminationPendingChange"; }, never, never, true, never>;
|
|
1659
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicForm, "praxis-dynamic-form", never, { "resourcePath": { "alias": "resourcePath"; "required": false; }; "resourceId": { "alias": "resourceId"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "emptyState": { "alias": "emptyState"; "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; }; "actionId": { "alias": "actionId"; "required": false; }; "operationId": { "alias": "operationId"; "required": false; }; "schemaUrl": { "alias": "schemaUrl"; "required": false; }; "readUrl": { "alias": "readUrl"; "required": false; }; "submitUrl": { "alias": "submitUrl"; "required": false; }; "submitMethod": { "alias": "submitMethod"; "required": false; }; "submitIdempotencyKey": { "alias": "submitIdempotencyKey"; "required": false; }; "submitCorrelationId": { "alias": "submitCorrelationId"; "required": false; }; "submitResourceVersion": { "alias": "submitResourceVersion"; "required": false; }; "submitResourceVersionTargetResourceKey": { "alias": "submitResourceVersionTargetResourceKey"; "required": false; }; "submitResourceVersionTargetIdField": { "alias": "submitResourceVersionTargetIdField"; "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; }; "layoutMode": { "alias": "layoutMode"; "required": false; }; "formLayout": { "alias": "formLayout"; "required": false; }; "generatedLayoutPreset": { "alias": "generatedLayoutPreset"; "required": false; }; "layoutPolicy": { "alias": "layoutPolicy"; "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; }; "presentation": { "alias": "presentation"; "required": false; }; "presentationPreset": { "alias": "presentationPreset"; "required": false; }; "sectionDefaultAppearance": { "alias": "sectionDefaultAppearance"; "required": false; }; "sectionDivider": { "alias": "sectionDivider"; "required": false; }; "visibleGlobal": { "alias": "visibleGlobal"; "required": false; }; "fieldIconPolicy": { "alias": "fieldIconPolicy"; "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"; "payloadPreviewChange": "payloadPreviewChange"; "syncCompleted": "syncCompleted"; "initializationError": "initializationError"; "loadingStateChange": "loadingStateChange"; "enableCustomizationChange": "enableCustomizationChange"; "customAction": "customAction"; "actionConfirmation": "actionConfirmation"; "schemaStatusChange": "schemaStatusChange"; "fieldRenderError": "fieldRenderError"; "ruleDiagnosticsChange": "ruleDiagnosticsChange"; "reactiveDeterminationExecuted": "reactiveDeterminationExecuted"; "reactiveDeterminationPendingChange": "reactiveDeterminationPendingChange"; "tabChange": "tabChange"; "tabSelected": "tabSelected"; }, never, never, true, never>;
|
|
1539
1660
|
}
|
|
1540
1661
|
|
|
1541
1662
|
declare class FormConfigService {
|
|
@@ -1718,8 +1839,10 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1718
1839
|
private includeBackConfigBlock;
|
|
1719
1840
|
formId?: string;
|
|
1720
1841
|
componentKeyId?: string;
|
|
1721
|
-
inputMode:
|
|
1842
|
+
inputMode: DynamicFormMode;
|
|
1843
|
+
inputLayoutScope: DynamicFormLayoutScope;
|
|
1722
1844
|
private includeBindingsBlock;
|
|
1845
|
+
private includeLayoutScopeBinding;
|
|
1723
1846
|
private readonly editorMode;
|
|
1724
1847
|
get isPresentationMode(): boolean;
|
|
1725
1848
|
supportsPresentationSettings: boolean;
|
|
@@ -1777,7 +1900,11 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1777
1900
|
};
|
|
1778
1901
|
private destroy$;
|
|
1779
1902
|
private hasProcessedInitialRuleState;
|
|
1903
|
+
ruleConversionFailed: boolean;
|
|
1904
|
+
private readonly jsonLogic;
|
|
1905
|
+
private readonly cascadeRulesService;
|
|
1780
1906
|
private jsonEditorIsValid;
|
|
1907
|
+
private cascadeDraftIsValid;
|
|
1781
1908
|
private globalActionValidationIssues;
|
|
1782
1909
|
private readonly i18n;
|
|
1783
1910
|
readonly globalActionCatalog: GlobalActionCatalogEntry[];
|
|
@@ -1790,7 +1917,7 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1790
1917
|
isValid$: BehaviorSubject<boolean>;
|
|
1791
1918
|
isBusy$: BehaviorSubject<boolean>;
|
|
1792
1919
|
private lastRulesSignature;
|
|
1793
|
-
private
|
|
1920
|
+
private supersededRuleStateSignature;
|
|
1794
1921
|
private readonly DEBUG;
|
|
1795
1922
|
private debugLog;
|
|
1796
1923
|
get configTabOptions(): ConfigEditorTabOption[];
|
|
@@ -1808,6 +1935,8 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1808
1935
|
onJsonValidationChange(result: JsonValidationResult): void;
|
|
1809
1936
|
onJsonEditorEvent(_event: JsonEditorEvent): void;
|
|
1810
1937
|
onConfigChange(newConfig: FormConfig): void;
|
|
1938
|
+
onCascadeValidChange(valid: boolean): void;
|
|
1939
|
+
private isCascadeGraphValid;
|
|
1811
1940
|
private updateValidityState;
|
|
1812
1941
|
private collectGlobalActionValidationIssues;
|
|
1813
1942
|
private collectGlobalActionValidationTargets;
|
|
@@ -1860,6 +1989,7 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1860
1989
|
getRuleDiagnosticDetails(diagnostic: FormRuleDiagnostics): string[];
|
|
1861
1990
|
private getRulePropertyIssueNames;
|
|
1862
1991
|
private markLlmRuleAccepted;
|
|
1992
|
+
private projectBuilderRules;
|
|
1863
1993
|
private refreshRuleDiagnostics;
|
|
1864
1994
|
get jsonDocument(): DynamicFormAuthoringDocument;
|
|
1865
1995
|
onBackConfigChange(): void;
|
|
@@ -1870,6 +2000,7 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1870
2000
|
hasResolvedRuntimeContract(): boolean;
|
|
1871
2001
|
describeRuntimeSource(source?: DynamicFormRuntimeValueSource): string;
|
|
1872
2002
|
onInputModeChange(): void;
|
|
2003
|
+
onLayoutScopeChange(scope: DynamicFormLayoutScope): void;
|
|
1873
2004
|
onPresentationPrefsChange(reason: string): void;
|
|
1874
2005
|
onSchemaPrefsChange(reason: string): void;
|
|
1875
2006
|
private createRuleBuilderConfig;
|
|
@@ -1890,10 +2021,12 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1890
2021
|
onCascadeApply(patch: Record<string, Partial<FieldDefinition>>): void;
|
|
1891
2022
|
private syncCascadeManagerFields;
|
|
1892
2023
|
private stripLegacy;
|
|
2024
|
+
private hydrateRuleDraft;
|
|
1893
2025
|
private computeRulesSignature;
|
|
1894
2026
|
restoreHintsDefaults(): void;
|
|
1895
2027
|
private loadPrefsFromStorage;
|
|
1896
2028
|
private normalizeMode;
|
|
2029
|
+
private normalizeLayoutScope;
|
|
1897
2030
|
private buildAuthoringDocument;
|
|
1898
2031
|
private normalizeResolvedRuntimeContract;
|
|
1899
2032
|
private createBackConfigState;
|
|
@@ -1918,6 +2051,14 @@ declare class PraxisFilterForm implements OnChanges, OnDestroy {
|
|
|
1918
2051
|
config: FormConfig;
|
|
1919
2052
|
formId?: string;
|
|
1920
2053
|
resourcePath?: string;
|
|
2054
|
+
/**
|
|
2055
|
+
* Optional logical endpoint key for multi-gateway filter schema resolution.
|
|
2056
|
+
*/
|
|
2057
|
+
endpointKey?: ApiEndpoint;
|
|
2058
|
+
/**
|
|
2059
|
+
* Optional explicit API URL entry override for filter schema resolution.
|
|
2060
|
+
*/
|
|
2061
|
+
apiUrlEntry?: ApiUrlEntry | null;
|
|
1921
2062
|
mode?: string;
|
|
1922
2063
|
formReady: EventEmitter<{
|
|
1923
2064
|
formGroup: FormGroup<Record<string, any>>;
|
|
@@ -1935,15 +2076,25 @@ declare class PraxisFilterForm implements OnChanges, OnDestroy {
|
|
|
1935
2076
|
form: FormGroup<Record<string, any>>;
|
|
1936
2077
|
private valueChangesSub?;
|
|
1937
2078
|
private statusChangesSub?;
|
|
2079
|
+
private schemaSub?;
|
|
2080
|
+
private hydratedFieldMetadata;
|
|
2081
|
+
private schemaHydrationPending;
|
|
2082
|
+
private schemaHydrationFailed;
|
|
1938
2083
|
private columnFieldsCache;
|
|
1939
2084
|
private singleFieldCache;
|
|
2085
|
+
private readonly crudService;
|
|
2086
|
+
private readonly resourceDiscovery;
|
|
2087
|
+
private readonly cdr;
|
|
1940
2088
|
constructor(dynamicForm: DynamicFormService);
|
|
1941
2089
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1942
2090
|
ngOnDestroy(): void;
|
|
2091
|
+
private loadFilterSchemaFieldsIfNeeded;
|
|
1943
2092
|
private buildForm;
|
|
1944
2093
|
private buildRestorableValues;
|
|
1945
2094
|
private hasExplicitDefaultValue;
|
|
1946
2095
|
onFormSubmit(): void;
|
|
2096
|
+
private isFilterReady;
|
|
2097
|
+
private projectFilterValues;
|
|
1947
2098
|
getColumnFields(column: FormColumn): FieldMetadata[];
|
|
1948
2099
|
getSingleField(field: FieldMetadata): FieldMetadata[];
|
|
1949
2100
|
getColumnClasses(column: FormColumn): string | null;
|
|
@@ -1953,7 +2104,7 @@ declare class PraxisFilterForm implements OnChanges, OnDestroy {
|
|
|
1953
2104
|
trackByRow(i: number, _row: FormRow): string;
|
|
1954
2105
|
trackByColumn(i: number, col: FormColumn): string;
|
|
1955
2106
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterForm, never>;
|
|
1956
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterForm, "praxis-filter-form", never, { "config": { "alias": "config"; "required": true; }; "formId": { "alias": "formId"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, { "formReady": "formReady"; "valueChange": "valueChange"; "submit": "submit"; "requestSearch": "requestSearch"; "validityChange": "validityChange"; }, never, never, true, never>;
|
|
2107
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterForm, "praxis-filter-form", never, { "config": { "alias": "config"; "required": true; }; "formId": { "alias": "formId"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "endpointKey": { "alias": "endpointKey"; "required": false; }; "apiUrlEntry": { "alias": "apiUrlEntry"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, { "formReady": "formReady"; "valueChange": "valueChange"; "submit": "submit"; "requestSearch": "requestSearch"; "validityChange": "validityChange"; }, never, never, true, never>;
|
|
1957
2108
|
}
|
|
1958
2109
|
|
|
1959
2110
|
/** Metadata for PraxisFilterForm component */
|
|
@@ -1965,6 +2116,9 @@ interface PraxisFilterFormWidgetEditorInputs {
|
|
|
1965
2116
|
config?: FormConfig | null;
|
|
1966
2117
|
formId?: string;
|
|
1967
2118
|
resourcePath?: string;
|
|
2119
|
+
apiEndpointKey?: ApiEndpoint | string | null;
|
|
2120
|
+
endpointKey?: ApiEndpoint;
|
|
2121
|
+
apiUrlEntry?: ApiUrlEntry | null;
|
|
1968
2122
|
mode?: DynamicFormMode | string;
|
|
1969
2123
|
[key: string]: unknown;
|
|
1970
2124
|
}
|
|
@@ -1978,13 +2132,37 @@ declare class PraxisFilterFormWidgetConfigEditor implements SettingsValueProvide
|
|
|
1978
2132
|
readonly isDirty$: BehaviorSubject<boolean>;
|
|
1979
2133
|
readonly isValid$: BehaviorSubject<boolean>;
|
|
1980
2134
|
readonly isBusy$: BehaviorSubject<boolean>;
|
|
2135
|
+
schemaWarning: string;
|
|
1981
2136
|
private readonly subscription;
|
|
2137
|
+
private schemaSubscription?;
|
|
2138
|
+
private childBusy;
|
|
2139
|
+
private schemaLoading;
|
|
2140
|
+
private resourcePathDraft?;
|
|
2141
|
+
private selectedCatalogResource;
|
|
2142
|
+
private committedBaselineDocument?;
|
|
2143
|
+
private readonly crudService;
|
|
2144
|
+
private readonly resourceDiscovery;
|
|
2145
|
+
private readonly cdr;
|
|
2146
|
+
get effectiveResourcePath(): string;
|
|
2147
|
+
get effectiveEndpointKey(): ApiEndpoint | undefined;
|
|
2148
|
+
get effectiveApiUrlEntry(): ApiUrlEntry | null | undefined;
|
|
2149
|
+
onResourceQuickConnect(resourcePath: string): void;
|
|
2150
|
+
onCatalogResourceSelected(entry: DiscoveredResourceOption | null): void;
|
|
2151
|
+
onResourceQuickClear(): void;
|
|
2152
|
+
private updateDirtyState;
|
|
1982
2153
|
ngAfterViewInit(): void;
|
|
1983
2154
|
ngOnDestroy(): void;
|
|
1984
2155
|
getSettingsValue(): PraxisFilterFormWidgetEditorValue;
|
|
1985
2156
|
onSave(): PraxisFilterFormWidgetEditorValue;
|
|
1986
2157
|
reset(): void;
|
|
2158
|
+
private publishBusy;
|
|
1987
2159
|
private initializeChildEditor;
|
|
2160
|
+
private applyBaselineDocumentToChildEditor;
|
|
2161
|
+
private applyDraftDocumentToChildEditor;
|
|
2162
|
+
private loadFilterSchemaFieldsIfNeeded;
|
|
2163
|
+
private extractCatalogFallbackFields;
|
|
2164
|
+
private applyLoadedFilterFieldMetadata;
|
|
2165
|
+
private buildDiscoveryOptions;
|
|
1988
2166
|
private buildValue;
|
|
1989
2167
|
private createDocumentFromInputs;
|
|
1990
2168
|
private normalizeMode;
|
|
@@ -2105,6 +2283,10 @@ declare class LayoutEditorComponent implements OnInit {
|
|
|
2105
2283
|
get layoutSections(): FormSection[];
|
|
2106
2284
|
canApplyAll(): boolean;
|
|
2107
2285
|
applyGapToAll(): void;
|
|
2286
|
+
canCalibrateFieldsFromSemantics(): boolean;
|
|
2287
|
+
calibrateAllFieldsFromSemantics(): void;
|
|
2288
|
+
canOrganizeSectionsFromSemantics(): boolean;
|
|
2289
|
+
organizeSectionsFromSemantics(): void;
|
|
2108
2290
|
ngOnInit(): void;
|
|
2109
2291
|
handleKeydown(event: KeyboardEvent): void;
|
|
2110
2292
|
/**
|
|
@@ -2321,6 +2503,7 @@ declare class FieldConfiguratorComponent {
|
|
|
2321
2503
|
private readonly categoryByType;
|
|
2322
2504
|
private resolveEditorialMeta;
|
|
2323
2505
|
get icon(): string;
|
|
2506
|
+
private normalizedFieldControlType;
|
|
2324
2507
|
get typeClass(): string;
|
|
2325
2508
|
get typeSpecificClass(): string;
|
|
2326
2509
|
get typeLabel(): string;
|
|
@@ -2332,8 +2515,13 @@ declare class FieldConfiguratorComponent {
|
|
|
2332
2515
|
|
|
2333
2516
|
interface PraxisDynamicFormWidgetEditorInputs {
|
|
2334
2517
|
config?: FormConfig | null;
|
|
2518
|
+
resourcePath?: string | null;
|
|
2519
|
+
apiEndpointKey?: ApiEndpoint | string | null;
|
|
2520
|
+
endpointKey?: ApiEndpoint;
|
|
2521
|
+
apiUrlEntry?: ApiUrlEntry | null;
|
|
2522
|
+
schemaSource?: 'resource' | 'filter';
|
|
2335
2523
|
layoutPolicy?: DynamicFormLayoutPolicy | null;
|
|
2336
|
-
configPersistenceStrategy?: 'local-first' | 'input-first';
|
|
2524
|
+
configPersistenceStrategy?: 'local-first' | 'input-first' | 'volatile';
|
|
2337
2525
|
mode?: DynamicFormMode;
|
|
2338
2526
|
emptyState?: PraxisDynamicFormEmptyState | null;
|
|
2339
2527
|
presentationModeGlobal?: boolean | null;
|
|
@@ -2350,23 +2538,46 @@ interface PraxisDynamicFormWidgetEditorValue {
|
|
|
2350
2538
|
inputs: PraxisDynamicFormWidgetEditorInputs;
|
|
2351
2539
|
}
|
|
2352
2540
|
declare class PraxisDynamicFormWidgetConfigEditor implements SettingsValueProvider, AfterViewInit, OnDestroy {
|
|
2541
|
+
private readonly crudService;
|
|
2542
|
+
private readonly resourceDiscovery;
|
|
2543
|
+
private readonly cdr;
|
|
2353
2544
|
inputs: PraxisDynamicFormWidgetEditorInputs | null;
|
|
2354
2545
|
widgetKey?: string;
|
|
2355
2546
|
appliedValues$?: Observable<unknown>;
|
|
2356
2547
|
private appliedSource?;
|
|
2548
|
+
private appliedResourcePath?;
|
|
2357
2549
|
/** Runtime evidence supplied by the existing component editor context resolver. */
|
|
2358
2550
|
context: Record<string, unknown>;
|
|
2359
2551
|
formEditor?: PraxisDynamicFormConfigEditor;
|
|
2360
2552
|
readonly isDirty$: BehaviorSubject<boolean>;
|
|
2361
2553
|
readonly isValid$: BehaviorSubject<boolean>;
|
|
2362
2554
|
readonly isBusy$: BehaviorSubject<boolean>;
|
|
2555
|
+
schemaWarning: string;
|
|
2363
2556
|
private readonly subscription;
|
|
2557
|
+
private schemaSubscription?;
|
|
2558
|
+
private childBusy;
|
|
2559
|
+
private schemaLoading;
|
|
2364
2560
|
private initialEditorConfig?;
|
|
2561
|
+
private committedBaselineConfig?;
|
|
2562
|
+
private committedBaselineDocument?;
|
|
2365
2563
|
private sourceDraft?;
|
|
2366
|
-
|
|
2564
|
+
private resourcePathDraft?;
|
|
2565
|
+
selectedCatalogResource: DiscoveredResourceOption | null;
|
|
2566
|
+
private optionalInject;
|
|
2567
|
+
get configurationSource(): 'local-first' | 'input-first' | 'volatile';
|
|
2568
|
+
get effectiveResourcePath(): string;
|
|
2569
|
+
get effectiveEndpointKey(): ApiEndpoint | undefined;
|
|
2570
|
+
get effectiveApiUrlEntry(): ApiUrlEntry | null | undefined;
|
|
2571
|
+
get effectiveDiscoveryIntent(): 'crud' | 'filter';
|
|
2572
|
+
get hasReadOnlyModeWarning(): boolean;
|
|
2573
|
+
switchToReadOnlyViewMode(): void;
|
|
2574
|
+
onCatalogResourceSelected(resource: DiscoveredResourceOption | null): void;
|
|
2367
2575
|
changeConfigurationSource(value: string): void;
|
|
2576
|
+
onResourceQuickConnect(resourcePath: string): void;
|
|
2577
|
+
onResourceQuickClear(): void;
|
|
2578
|
+
private baselineResourcePath;
|
|
2368
2579
|
private updateDirtyState;
|
|
2369
|
-
private
|
|
2580
|
+
private publishBusy;
|
|
2370
2581
|
ngAfterViewInit(): void;
|
|
2371
2582
|
ngOnDestroy(): void;
|
|
2372
2583
|
getSettingsValue(): PraxisDynamicFormWidgetEditorValue;
|
|
@@ -2374,6 +2585,12 @@ declare class PraxisDynamicFormWidgetConfigEditor implements SettingsValueProvid
|
|
|
2374
2585
|
acceptAppliedValue(value: unknown): void;
|
|
2375
2586
|
reset(): void;
|
|
2376
2587
|
private initializeChildEditor;
|
|
2588
|
+
private applyBaselineDocumentToChildEditor;
|
|
2589
|
+
private applyDraftDocumentToChildEditor;
|
|
2590
|
+
private loadResourceSchemaFieldsIfNeeded;
|
|
2591
|
+
private extractCatalogFallbackFields;
|
|
2592
|
+
private applyFieldMetadataHydration;
|
|
2593
|
+
private buildDiscoveryOptions;
|
|
2377
2594
|
private buildValue;
|
|
2378
2595
|
private createDocumentFromInputs;
|
|
2379
2596
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormWidgetConfigEditor, never>;
|
|
@@ -2409,6 +2626,30 @@ declare class DomainRuleFormRulesService {
|
|
|
2409
2626
|
static ɵprov: i0.ɵɵInjectableDeclaration<DomainRuleFormRulesService>;
|
|
2410
2627
|
}
|
|
2411
2628
|
|
|
2629
|
+
/**
|
|
2630
|
+
* DynamicFormSchemaCacheService
|
|
2631
|
+
* ------------------------------
|
|
2632
|
+
* Serviço canônico de conveniência em `@praxisui/dynamic-form` para orquestração
|
|
2633
|
+
* de cache de primeiro nível (L1) de esquemas OpenAPI compilados (Issue #2).
|
|
2634
|
+
*
|
|
2635
|
+
* Delega o ciclo de vida do cache em memória ao DynamicFormService (@praxisui/core),
|
|
2636
|
+
* garantindo consistência referencial entre módulos e transições de abas em 0ms.
|
|
2637
|
+
*/
|
|
2638
|
+
declare class DynamicFormSchemaCacheService {
|
|
2639
|
+
private readonly dynamicFormService;
|
|
2640
|
+
buildCacheKey(params: SchemaIdParams & {
|
|
2641
|
+
baseUrl?: string;
|
|
2642
|
+
}): string;
|
|
2643
|
+
get(cacheKey: string): CompiledDynamicFormSchema | undefined;
|
|
2644
|
+
set(cacheKey: string, compiled: CompiledDynamicFormSchema, customTtlMs?: number): void;
|
|
2645
|
+
has(cacheKey: string): boolean;
|
|
2646
|
+
invalidate(cacheKey?: string): void;
|
|
2647
|
+
clear(): void;
|
|
2648
|
+
size(): number;
|
|
2649
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormSchemaCacheService, never>;
|
|
2650
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DynamicFormSchemaCacheService>;
|
|
2651
|
+
}
|
|
2652
|
+
|
|
2412
2653
|
declare class Ergadm00034CompactPresentationExampleComponent {
|
|
2413
2654
|
private readonly dynamicLayout;
|
|
2414
2655
|
readonly legacyFrequencyExample: _praxisui_dynamic_form.Ergadm00034CompactPresentationExample;
|
|
@@ -2463,23 +2704,22 @@ declare function applyVisibilityRules(rules: FormLayoutRule[], data: any): Recor
|
|
|
2463
2704
|
/**
|
|
2464
2705
|
* Converts a RuleBuilderState produced by the visual builder into
|
|
2465
2706
|
* an array of FormLayoutRule objects understood by the dynamic form.
|
|
2707
|
+
* Throws when a referenced condition graph cannot be serialized without losing semantics.
|
|
2466
2708
|
*/
|
|
2467
2709
|
declare function ruleBuilderStateToFormLayoutRules(state: RuleBuilderState | null | undefined): FormLayoutRule[];
|
|
2468
2710
|
/**
|
|
2469
2711
|
* Converts an array of FormLayoutRule back into a RuleBuilderState
|
|
2470
2712
|
* so that the visual builder can display the saved rules.
|
|
2471
2713
|
*
|
|
2472
|
-
*
|
|
2473
|
-
*
|
|
2714
|
+
* Every canonical effect reopens as a propertyRule, with all targets and both
|
|
2715
|
+
* branches intact. Conditions outside the visual vocabulary stay inline.
|
|
2474
2716
|
*/
|
|
2475
2717
|
declare function formLayoutRulesToBuilderState(rules: FormLayoutRule[] | null | undefined): RuleBuilderState;
|
|
2476
2718
|
|
|
2477
|
-
/**
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
*/
|
|
2482
|
-
declare function normalizeDateArrays(data: any): any;
|
|
2719
|
+
/** Converts legacy date tuples only where the existing field metadata declares a temporal value. */
|
|
2720
|
+
declare function normalizeDateArrays(data: any, fields: readonly FieldMetadata[]): any;
|
|
2721
|
+
/** One private draft shared by hydration and submit; only declared temporal fields are transformed. */
|
|
2722
|
+
declare function normalizeTemporalFieldValues(data: any, fields: readonly FieldMetadata[], normalizeString: (value: string) => string): any;
|
|
2483
2723
|
|
|
2484
2724
|
/**
|
|
2485
2725
|
* Helper provider to wire the PraxisDynamicForm component into the Settings Panel
|
|
@@ -3044,7 +3284,50 @@ declare const PRAXIS_FILTER_FORM_AUTHORING_PROJECTION: {
|
|
|
3044
3284
|
readonly operationIds: readonly ["field.label.set", "field.placeholder.set", "field.required.set", "field.readOnly.set", "field.disabled.set", "field.hidden.set", "field.controlType.set", "field.optionSource.set", "field.local.add", "field.local.remove", "layout.section.add", "layout.section.remove", "layout.row.add", "layout.column.add", "layout.field.move"];
|
|
3045
3285
|
readonly roundTripRequirements: readonly ["strip-undefined", "stable-field-order", "preserve-local-field-source", "preserve-section-row-column-ids"];
|
|
3046
3286
|
};
|
|
3047
|
-
declare const PRAXIS_FILTER_FORM_AUTHORING_MANIFEST:
|
|
3287
|
+
declare const PRAXIS_FILTER_FORM_AUTHORING_MANIFEST: {
|
|
3288
|
+
runtimeInputs: _praxisui_core.ManifestInput[];
|
|
3289
|
+
schemaVersion: string;
|
|
3290
|
+
componentId: string;
|
|
3291
|
+
ownerPackage: string;
|
|
3292
|
+
configSchemaId: string;
|
|
3293
|
+
manifestVersion: string;
|
|
3294
|
+
editableTargets: _praxisui_core.ManifestTarget[];
|
|
3295
|
+
operations: _praxisui_core.ManifestOperation[];
|
|
3296
|
+
validators: _praxisui_core.ManifestValidator[];
|
|
3297
|
+
roundTripRequirements?: string[];
|
|
3298
|
+
presentationAffordances?: _praxisui_core.ManifestPresentationAffordanceCatalog;
|
|
3299
|
+
examples: _praxisui_core.ManifestExample[];
|
|
3300
|
+
controlProfiles?: _praxisui_core.ManifestControlProfile[];
|
|
3301
|
+
};
|
|
3302
|
+
|
|
3303
|
+
/** Reconstruct raw native authorship. Normalized editor/runtime defaults are never the source. */
|
|
3304
|
+
declare function decodeDynamicFormPageInputs(value: unknown): {
|
|
3305
|
+
document: DynamicFormAuthoringDocument | null;
|
|
3306
|
+
diagnostics: EditorDiagnostic[];
|
|
3307
|
+
};
|
|
3308
|
+
/** Owner callback for Core admission; no component loading or second config authority. */
|
|
3309
|
+
declare function validateDynamicFormPageWidget(widget: WidgetInstance): readonly {
|
|
3310
|
+
code: string;
|
|
3311
|
+
path: string;
|
|
3312
|
+
}[];
|
|
3313
|
+
/** Inverse native projection. Explicit unrepresentable authoring blocks fail instead of being filtered. */
|
|
3314
|
+
declare function encodeDynamicFormPageInputs(value: unknown): {
|
|
3315
|
+
inputs: Record<string, unknown> | null;
|
|
3316
|
+
diagnostics: EditorDiagnostic[];
|
|
3317
|
+
};
|
|
3318
|
+
/** Persist only explicit deltas from the mounted native editor; bindings/context stay pinned to the seed. */
|
|
3319
|
+
declare function projectDynamicFormPageEditorChanges(authoredInputs: unknown, editorBaseline: unknown, editorValue: unknown): {
|
|
3320
|
+
inputs: Record<string, unknown> | null;
|
|
3321
|
+
diagnostics: EditorDiagnostic[];
|
|
3322
|
+
};
|
|
3323
|
+
/** Derive execution-only identity and disable independent preferences. Never persist this projection. */
|
|
3324
|
+
declare function materializeDynamicFormPageRuntimeInputs(value: unknown, pageId: string, widgetKey: string, options?: {
|
|
3325
|
+
preview?: boolean;
|
|
3326
|
+
}): {
|
|
3327
|
+
inputs: Record<string, unknown> | null;
|
|
3328
|
+
diagnostics: EditorDiagnostic[];
|
|
3329
|
+
};
|
|
3330
|
+
declare const DYNAMIC_FORM_GOVERNED_PAGE_PREVIEW_ADAPTER: GovernedPagePreviewWidgetAdapter;
|
|
3048
3331
|
|
|
3049
|
-
export { ActionsEditorComponent, CORPORATE_PRESENTATION_FORMAT_GALLERY, CanvasStateService, CanvasToolbarComponent, ColumnEditorComponent, DomainRuleFormRulesService, DynamicFormLayoutService, ERGADM00034_COMPACT_PRESENTATION_EXAMPLE, Ergadm00034CompactPresentationExampleComponent, 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_AUTHORING_MANIFEST, PRAXIS_FILTER_FORM_AUTHORING_PROJECTION, PRAXIS_FILTER_FORM_COMPONENT_METADATA, PraxisDynamicForm, PraxisDynamicFormConfigEditor, PraxisDynamicFormWidgetConfigEditor, PraxisFilterForm, PraxisFilterFormWidgetConfigEditor, PraxisFormActionsComponent, RowConfiguratorComponent, RowEditorComponent, SETTINGS_PANEL_DYNAMIC_FORM_PROVIDER, SectionEditorComponent, TASK_PRESETS, applyVisibilityRules, buildCorporatePresentationFormatGalleryConfig, buildDynamicFormApplyPlan, buildDynamicFormRuleAuthoringContext, buildErgadm00034CompactPresentationConfig, createDynamicFormAuthoringDocument, formLayoutRulesToBuilderState, getFormAiCatalog, getFormCapabilities, getFormEnum, isRuleSatisfied, normalizeDateArrays, normalizeDynamicFormAuthoringDocument, parseLegacyOrDynamicFormDocument, providePraxisDynamicFormMetadata, providePraxisFilterFormMetadata, provideSettingsPanelDynamicForm, ruleBuilderStateToFormLayoutRules, serializeDynamicFormAuthoringDocument, stripLegacyFieldMetadata, toCanonicalDynamicFormConfig, validateDynamicFormAuthoringDocument, validateDynamicFormAuthoringInput };
|
|
3050
|
-
export type { CanvasElement, CanvasElementType, CanvasPathPart, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, CorporatePresentationExample, DomainRuleFormRulesRequestOptions, DomainRuleMaterializedFormLayoutRule, DynamicFieldRenderErrorEvent, DynamicFormAllowedRuleProperties, DynamicFormApplyPlan, DynamicFormAuthoringDocument, DynamicFormBindings, DynamicFormConfigPatchChangeEvent, DynamicFormContextSnapshot, DynamicFormGeneratedLayoutPreset,
|
|
3332
|
+
export { ActionsEditorComponent, CORPORATE_PRESENTATION_FORMAT_GALLERY, CanvasStateService, CanvasToolbarComponent, ColumnEditorComponent, DYNAMIC_FORM_GOVERNED_PAGE_PREVIEW_ADAPTER, DomainRuleFormRulesService, DynamicFormLayoutService, DynamicFormSchemaCacheService, ERGADM00034_COMPACT_PRESENTATION_EXAMPLE, Ergadm00034CompactPresentationExampleComponent, 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_AUTHORING_MANIFEST, PRAXIS_FILTER_FORM_AUTHORING_PROJECTION, PRAXIS_FILTER_FORM_COMPONENT_METADATA, PraxisDynamicForm, PraxisDynamicFormConfigEditor, PraxisDynamicFormWidgetConfigEditor, PraxisFilterForm, PraxisFilterFormWidgetConfigEditor, PraxisFormActionsComponent, RowConfiguratorComponent, RowEditorComponent, SETTINGS_PANEL_DYNAMIC_FORM_PROVIDER, SectionEditorComponent, TASK_PRESETS, applyVisibilityRules, buildCorporatePresentationFormatGalleryConfig, buildDynamicFormApplyPlan, buildDynamicFormRuleAuthoringContext, buildErgadm00034CompactPresentationConfig, createDynamicFormAuthoringDocument, decodeDynamicFormPageInputs, encodeDynamicFormPageInputs, formLayoutRulesToBuilderState, getFormAiCatalog, getFormCapabilities, getFormEnum, isRuleSatisfied, materializeDynamicFormPageRuntimeInputs, normalizeDateArrays, normalizeDynamicFormAuthoringDocument, normalizeTemporalFieldValues, parseLegacyOrDynamicFormDocument, projectDynamicFormPageEditorChanges, providePraxisDynamicFormMetadata, providePraxisFilterFormMetadata, provideSettingsPanelDynamicForm, ruleBuilderStateToFormLayoutRules, serializeDynamicFormAuthoringDocument, stripLegacyFieldMetadata, toCanonicalDynamicFormConfig, validateDynamicFormAuthoringDocument, validateDynamicFormAuthoringInput, validateDynamicFormPageWidget };
|
|
3333
|
+
export type { CanvasElement, CanvasElementType, CanvasPathPart, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, CorporatePresentationExample, DomainRuleFormRulesRequestOptions, DomainRuleMaterializedFormLayoutRule, DynamicFieldRenderErrorEvent, DynamicFormAllowedRuleProperties, DynamicFormApplyPlan, DynamicFormAuthoringDocument, DynamicFormBindings, DynamicFormConfigPatchChangeEvent, DynamicFormContextSnapshot, DynamicFormGeneratedLayoutPreset, DynamicFormPresentationSnapshot, DynamicFormProjectionContext, DynamicFormResolvedRuntimeContract, DynamicFormRuleAuthoringContext, DynamicFormRuleAuthoringField, DynamicFormRuleAuthoringTarget, DynamicFormRuleAuthoringTargetDetails, DynamicFormRuleAuthoringTargets, DynamicFormRuleAuthoringVisualBlockNode, DynamicFormRuleTargetType, DynamicFormRuntimeContext, DynamicFormRuntimeValueSource, DynamicFormSchemaPrefsSnapshot, DynamicFormValidationContext, EditorDiagnostic, EditorDocument, Ergadm00034CompactPresentationExample, Ergadm00034LegacyFrequencyRow, FieldPath, FieldPathContainer, FieldPathWithIndex, Capability as FormComponentCapability, CapabilityCatalog as FormComponentCapabilityCatalog, CapabilityCategory as FormComponentCapabilityCategory, ValueKind as FormComponentValueKind, FormConfigLike, GenerateFormConfigFromMetadataOptions, IdPath, InsertLocalFieldOptions, InsertLocalFieldResult, JsonEditorEvent, JsonValidationResult, LayoutChange, LayoutResult, LocalFieldInsertionDiagnostic, LocalFieldInsertionDiagnosticCode, Operation, Path, PathWithIndex, PraxisDynamicFormDomainRulesOptions, PraxisDynamicFormEmptyState, PraxisDynamicFormWidgetEditorInputs, PraxisDynamicFormWidgetEditorValue, PraxisFilterFormWidgetEditorInputs, PraxisFilterFormWidgetEditorValue, PraxisFormActionEvent, RemovePolicy, RuleApplicationContext, RuleApplicationDiagnostic, RuleApplicationDiagnosticCode, RuleApplicationResult, RuleApplicationTargetIndex, RuleApplicationTargetType, ValidationReport, ValueKind$1 as ValueKind };
|