@praxisui/dynamic-form 10.0.0-rc.3 → 10.0.0-rc.30
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/dynamic-form",
|
|
3
|
-
"version": "10.0.0-rc.
|
|
3
|
+
"version": "10.0.0-rc.30",
|
|
4
4
|
"description": "Angular dynamic form engine for Praxis UI: metadata-driven forms, hooks, and services integrating @praxisui/* packages.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
@@ -9,13 +9,13 @@
|
|
|
9
9
|
"@angular/forms": "^21.0.0",
|
|
10
10
|
"@angular/material": "^21.0.0",
|
|
11
11
|
"@angular/router": "^21.0.0",
|
|
12
|
-
"@praxisui/ai": "^10.0.0-rc.
|
|
13
|
-
"@praxisui/dynamic-fields": "^10.0.0-rc.
|
|
14
|
-
"@praxisui/metadata-editor": "^10.0.0-rc.
|
|
15
|
-
"@praxisui/rich-content": "^10.0.0-rc.
|
|
16
|
-
"@praxisui/settings-panel": "^10.0.0-rc.
|
|
17
|
-
"@praxisui/visual-builder": "^10.0.0-rc.
|
|
18
|
-
"@praxisui/core": "^10.0.0-rc.
|
|
12
|
+
"@praxisui/ai": "^10.0.0-rc.30",
|
|
13
|
+
"@praxisui/dynamic-fields": "^10.0.0-rc.30",
|
|
14
|
+
"@praxisui/metadata-editor": "^10.0.0-rc.30",
|
|
15
|
+
"@praxisui/rich-content": "^10.0.0-rc.30",
|
|
16
|
+
"@praxisui/settings-panel": "^10.0.0-rc.30",
|
|
17
|
+
"@praxisui/visual-builder": "^10.0.0-rc.30",
|
|
18
|
+
"@praxisui/core": "^10.0.0-rc.30",
|
|
19
19
|
"rxjs": "^7.8.0"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
@@ -73,6 +73,16 @@ Este documento e a referencia canonica da API JSON de praxis-dynamic-form.
|
|
|
73
73
|
- Em replace-all, omitir a preferência remove o override anterior; `false` deve ser preservado. Não existe um quarto valor em `bindings.mode`.
|
|
74
74
|
- O Page Builder projeta a preferência nos inputs do widget, preservando ausência de `config` em formulários schema-driven. No editor do runtime, Apply/Save também publicam `mode` e `presentationModeGlobal` em `configPatchChange.inputPatch`.
|
|
75
75
|
- `contextSnapshot.presentation` continua reservado aos estilos (tipografia, densidade e alinhamento), editáveis nos dois caminhos pela aba Estilo da apresentação; não é o seletor de ativação. O Filter Form não oferece o seletor de exibição porque seu runtime não suporta apresentação.
|
|
76
|
+
- `presentationPreset` (`'corporate-dossier' | 'editorial-card' | 'compact-presentation' | 'default'`) define o preset visual nativo em modo apresentação (`view`). Pode ser configurado via `@Input() presentationPreset`, em `FormPresentationConfig.preset` / `FormPresentationConfig.presentationPreset`, em `FormConfigMetadata.presentationPreset`, ou por seção via `FormSection.presentationPreset` para sobrescrever o estilo de uma seção específica sem recorrer a regras CSS ad hoc com `::ng-deep`.
|
|
77
|
+
- `layout` (`FormLayoutOptions`) governa a organização e navegação estrutural das seções do formulário:
|
|
78
|
+
- `mode`: `'vertical' | 'tabs' | 'accordion'` (padrão `'vertical'`).
|
|
79
|
+
- `defaultTabId`: identificador da aba selecionada inicialmente em modo abas.
|
|
80
|
+
- `tabsAppearance`: estilo visual dos botões de abas (`'pills' | 'underline' | 'buttons'`, padrão `'pills'`).
|
|
81
|
+
- `tabs`: lista declarativa de abas (`FormLayoutTabItem` com `id`, `label`, `icon`, `sectionIds`, `badge`, `disabled`, `tooltip`). Quando omitido, o runtime auto-deriva deterministicamente 1 aba por seção visível.
|
|
82
|
+
- `accordionMulti`: quando `mode === 'accordion'`, permite manter múltiplos painéis expandidos simultaneamente (padrão `false`, fechando os outros ao abrir um).
|
|
83
|
+
- `hideSectionHeaderInTabs`: suprime cabeçalho redundante de seção dentro do painel da aba ativa (padrão `false`).
|
|
84
|
+
- Entradas `@Input() layoutMode` e `@Input() formLayout` expostas diretamente em `PraxisDynamicForm`.
|
|
85
|
+
- Saídas `@Output() tabChange` (emite ID) e `@Output() tabSelected` (emite objeto completo) emitidas na alternância de abas.
|
|
76
86
|
|
|
77
87
|
|
|
78
88
|
- `DynamicFormAuthoringDocument` e o snapshot canonico completo de autoria de `praxis-dynamic-form`.
|
|
@@ -1138,3 +1148,10 @@ O editor nativo, em **Geral → Sem registro selecionado**, materializa o contra
|
|
|
1138
1148
|
As opções de aparência ficam em disclosure avançado: `tone` (`neutral`, `primary`, `secondary`), `variant` (`card`, `inline`, `panel`, `transparent`), `alignment` (`start`, `center`), `density` (`compact`, `comfortable`) e `iconContainer` (`none`, `circle`, `soft`). Ausência de opção herda o padrão do componente; JSON inválido produz diagnóstico.
|
|
1139
1149
|
|
|
1140
1150
|
A orientação aparece somente em `mode=view`, sem registro selecionado nem snapshot local. Criar e Editar preservam a configuração sem exibi-la. Desligar grava `null`, que impede reativação por uma preferência antiga; substituir um documento que omite o binding também limpa a orientação. Em `input-first`, a página governa o valor. Filter Form não expõe essa seção, pois não possui contexto de seleção equivalente.
|
|
1151
|
+
### Item revision custody
|
|
1152
|
+
|
|
1153
|
+
Automatic edit PUT/PATCH sends the strong ETag from the same hydration GET that supplied the form values, including `readUrl` and custom `getById`. A successful response containing the corresponding item representation replaces both cached data and revision together, including server normalization. A command acknowledgment or incomplete representation cannot rotate that snapshot. Missing/weak ETags are not synthesized; 412/428 requires explicit reload before another automatic submit.
|
|
1154
|
+
|
|
1155
|
+
Item/API-context changes, reload and destruction invalidate the transient read generation, including identity or enterprise-scope A→B→A. Automatic preparation captures its original binding/generation before asynchronous hooks or determinations. An obsolete preparation does not submit; if its hook retained the reused form group, another submit requires explicit reload to reconcile any contaminated draft. Obsolete success/error responses cannot publish formSubmit stages, run submit result hooks, change fields/errors, close the new surface or reset a newer submit's loading/snackbar state.
|
|
1156
|
+
|
|
1157
|
+
This adds no persisted configuration field. Explicit `submitResourceVersion` and cross-resource version-target inputs retain their command precedence and response/event semantics; their responses do not hydrate or rotate the originating item snapshot.
|
|
@@ -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, 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, Breakpoint, DomainRuleRequestOptions, DomainRuleService, DomainRuleMaterialization, SchemaIdParams, CompiledDynamicFormSchema, TableConfig, SurfaceOpenActionEditorComponent, IconPickerService, GlobalActionRef, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, ComponentAuthoringManifest } from '@praxisui/core';
|
|
11
|
+
export { CompiledDynamicFormSchema, 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';
|
|
@@ -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,7 +573,7 @@ interface EditorDiagnostic {
|
|
|
572
573
|
message: string;
|
|
573
574
|
path?: string;
|
|
574
575
|
}
|
|
575
|
-
|
|
576
|
+
|
|
576
577
|
interface DynamicFormBindings {
|
|
577
578
|
mode?: DynamicFormMode;
|
|
578
579
|
/** Opt-in view placeholder; null explicitly disables it. */
|
|
@@ -661,6 +662,7 @@ interface DynamicFormConfigPatchChangeEvent {
|
|
|
661
662
|
mode?: DynamicFormMode;
|
|
662
663
|
presentationModeGlobal?: boolean | null;
|
|
663
664
|
presentation?: DynamicFormPresentationSnapshot | null;
|
|
665
|
+
presentationPreset?: FormPresentationPreset;
|
|
664
666
|
emptyState?: PraxisDynamicFormEmptyState | null;
|
|
665
667
|
};
|
|
666
668
|
}
|
|
@@ -769,6 +771,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
769
771
|
private readonly resourceDiscovery;
|
|
770
772
|
private readonly aiAssistantSessionEffect;
|
|
771
773
|
private readonly globalActions;
|
|
774
|
+
private readonly optionRegistry;
|
|
772
775
|
private readonly DEBUG;
|
|
773
776
|
private effectiveActionsCache?;
|
|
774
777
|
private effectiveActionsCacheBase?;
|
|
@@ -790,7 +793,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
790
793
|
* merged context snapshot used to avoid re-binding on every change detection pass.
|
|
791
794
|
*/
|
|
792
795
|
editorialContext: Record<string, unknown> | null;
|
|
793
|
-
mode:
|
|
796
|
+
mode: DynamicFormMode;
|
|
794
797
|
config: FormConfig;
|
|
795
798
|
private hostConfigInputProvided;
|
|
796
799
|
/** Optional host-level overrides for the rendered form action bar. */
|
|
@@ -851,6 +854,16 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
851
854
|
configPersistenceStrategy: 'local-first' | 'input-first';
|
|
852
855
|
/** Optional layout to use instead of generated one */
|
|
853
856
|
layout?: FormLayout;
|
|
857
|
+
/**
|
|
858
|
+
* Layout mode for organizing form sections: 'vertical' (default), 'tabs' or 'accordion'.
|
|
859
|
+
* Overrides config.layout.mode when specified.
|
|
860
|
+
*/
|
|
861
|
+
layoutMode?: FormLayoutMode;
|
|
862
|
+
/**
|
|
863
|
+
* Layout configuration options for form sections (mode, tabs, defaultTabId, tabsAppearance, accordionMulti, etc.).
|
|
864
|
+
* Merged with and takes precedence over config.layout.
|
|
865
|
+
*/
|
|
866
|
+
formLayout?: FormLayoutOptions;
|
|
854
867
|
/** Metadata-driven layout preset used only when creating an initial config from schema. */
|
|
855
868
|
generatedLayoutPreset: DynamicFormGeneratedLayoutPreset;
|
|
856
869
|
/** Opt-in policy for schema-driven transient layout materialization. */
|
|
@@ -876,11 +889,38 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
876
889
|
presentationModeGlobal: boolean | null;
|
|
877
890
|
/** Projection of contextSnapshot.presentation; null clears authored style overrides. */
|
|
878
891
|
presentation?: DynamicFormPresentationSnapshot | null;
|
|
892
|
+
/**
|
|
893
|
+
* Optional presentation preset applied when the form is rendered in presentation mode.
|
|
894
|
+
* Resolves styles for standard patterns: 'corporate-dossier', 'editorial-card', 'compact-presentation' or 'default'.
|
|
895
|
+
*/
|
|
896
|
+
presentationPreset?: FormPresentationPreset;
|
|
897
|
+
/**
|
|
898
|
+
* Default visual appearance preset for sections when not explicitly configured at section level.
|
|
899
|
+
* Values: 'card' (default), 'plain' (borderless with divider support), 'step' (stepper badge layout).
|
|
900
|
+
*/
|
|
901
|
+
sectionDefaultAppearance?: 'card' | 'plain' | 'step';
|
|
902
|
+
/**
|
|
903
|
+
* Global flag to control divider lines between plain/dossier sections.
|
|
904
|
+
* When true, renders a subtle separator line below each section (except the last).
|
|
905
|
+
*/
|
|
906
|
+
sectionDivider?: boolean;
|
|
879
907
|
visibleGlobal: boolean | null;
|
|
880
908
|
fieldIconPolicy: 'all' | 'presentation-only' | 'none';
|
|
881
909
|
/** Opt-in loader for shared domain rule materializations persisted outside FormConfig. */
|
|
882
910
|
domainRules: PraxisDynamicFormDomainRulesOptions | boolean | null;
|
|
883
911
|
get effectivePresentation(): boolean;
|
|
912
|
+
/** Normalizes presentation preset aliases and casing to canonical values. */
|
|
913
|
+
normalizePresentationPreset(preset?: string | null): FormPresentationPreset;
|
|
914
|
+
/** Resolved presentation preset for the form container. */
|
|
915
|
+
get effectivePresentationPreset(): FormPresentationPreset;
|
|
916
|
+
/** Resolved presentation preset for a specific section, allowing section-level override. */
|
|
917
|
+
getSectionPresentationPreset(section?: FormSection | null): FormPresentationPreset;
|
|
918
|
+
isCorporateDossierPreset(): boolean;
|
|
919
|
+
isEditorialCardPreset(): boolean;
|
|
920
|
+
isCompactPresentationPreset(): boolean;
|
|
921
|
+
isSectionCorporateDossier(section?: FormSection | null): boolean;
|
|
922
|
+
isSectionEditorialCard(section?: FormSection | null): boolean;
|
|
923
|
+
isSectionCompactPresentation(section?: FormSection | null): boolean;
|
|
884
924
|
shouldShowContextEmptyState(): boolean;
|
|
885
925
|
private hasResourceContext;
|
|
886
926
|
private hasLocalRecordContext;
|
|
@@ -932,10 +972,19 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
932
972
|
reactiveDeterminationExecuted: EventEmitter<ReactiveDeterminationExecutionEvent>;
|
|
933
973
|
/** Emits only aggregate runtime state; no request or response payload is exposed. */
|
|
934
974
|
reactiveDeterminationPendingChange: EventEmitter<boolean>;
|
|
975
|
+
/** Emitted when active tab changes in 'tabs' layout mode. */
|
|
976
|
+
tabChange: EventEmitter<string>;
|
|
977
|
+
/** Emitted when a tab is selected in 'tabs' layout mode. */
|
|
978
|
+
tabSelected: EventEmitter<FormLayoutTabItem>;
|
|
979
|
+
/** Active tab ID when effectiveLayoutMode === 'tabs'. */
|
|
980
|
+
activeTabId: string | null;
|
|
935
981
|
private reactiveDeterminationPending;
|
|
936
982
|
isLoading: boolean;
|
|
937
983
|
submitting: boolean;
|
|
938
984
|
private submitPreparationInProgress;
|
|
985
|
+
private submitLifecycleSequence;
|
|
986
|
+
private activeSubmitLifecycle;
|
|
987
|
+
private activeSubmitAutomatic;
|
|
939
988
|
submitError: string | null;
|
|
940
989
|
initializationStatus: 'idle' | 'loading' | 'success' | 'error';
|
|
941
990
|
currentErrorMessage: string;
|
|
@@ -970,6 +1019,9 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
970
1019
|
private entitySelectionCleared;
|
|
971
1020
|
private hydratedEntityId;
|
|
972
1021
|
private loadedEntityData;
|
|
1022
|
+
private loadedResourceRevision;
|
|
1023
|
+
private resourceRevisionInvalidated;
|
|
1024
|
+
private entityReadAttempt;
|
|
973
1025
|
protected entityHydrationPending: boolean;
|
|
974
1026
|
protected entityReadFailed: boolean;
|
|
975
1027
|
protected entityReadText(key: 'loading' | 'error' | 'retry' | 'region' | 'success'): string;
|
|
@@ -1090,6 +1142,17 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1090
1142
|
private resolveSubmitOperation;
|
|
1091
1143
|
private buildSubmitRequest;
|
|
1092
1144
|
private resolveSubmitResourceVersion;
|
|
1145
|
+
/** Identity and server context are captured with the representation, never reconstructed at submit by GET. */
|
|
1146
|
+
private resourceRevisionBinding;
|
|
1147
|
+
private usesAutomaticItemRevision;
|
|
1148
|
+
private isResourceRevisionCurrent;
|
|
1149
|
+
private invalidateAutomaticSubmitUi;
|
|
1150
|
+
private resourceRevisionNeedsReload;
|
|
1151
|
+
private resourceRevisionReloadError;
|
|
1152
|
+
private captureSavedResourceRevision;
|
|
1153
|
+
private rejectResourceRevision;
|
|
1154
|
+
private normalizeResourceVersionToken;
|
|
1155
|
+
private extractResourceVersionCandidate;
|
|
1093
1156
|
private normalizeSubmitMethod;
|
|
1094
1157
|
private formatResourceVersion;
|
|
1095
1158
|
private resolveSubmitHref;
|
|
@@ -1116,6 +1179,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1116
1179
|
private initializeStandaloneConfig;
|
|
1117
1180
|
private initializeDisconnectedEmptyState;
|
|
1118
1181
|
private reloadForModeChange;
|
|
1182
|
+
private resourceRevisionContextScope;
|
|
1183
|
+
private subscribeToRuntimeContextChanges;
|
|
1119
1184
|
ngOnInit(): void;
|
|
1120
1185
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1121
1186
|
private blurAllInputs;
|
|
@@ -1219,6 +1284,18 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1219
1284
|
private areRuleValuesEqual;
|
|
1220
1285
|
private buildRuleApplicationTargetIndex;
|
|
1221
1286
|
private setRuleApplicationDiagnostics;
|
|
1287
|
+
get effectiveLayoutMode(): FormLayoutMode;
|
|
1288
|
+
get effectiveTabsAppearance(): FormLayoutTabsAppearance;
|
|
1289
|
+
get effectiveAccordionMulti(): boolean;
|
|
1290
|
+
get effectiveHideSectionHeaderInTabs(): boolean;
|
|
1291
|
+
get effectiveTabs(): FormLayoutTabItem[];
|
|
1292
|
+
ensureActiveTabValid(): void;
|
|
1293
|
+
selectTab(tabId: string): void;
|
|
1294
|
+
isSectionInActiveTab(section?: FormSection): boolean;
|
|
1295
|
+
getTabErrorCount(tab: FormLayoutTabItem): number;
|
|
1296
|
+
getTabAriaControls(tab: FormLayoutTabItem): string;
|
|
1297
|
+
getTabIdForSection(section?: FormSection): string | null;
|
|
1298
|
+
shouldHideSectionHeader(section?: FormSection): boolean;
|
|
1222
1299
|
isSectionCollapsed(section?: FormSection): boolean;
|
|
1223
1300
|
isSectionCollapsible(section?: FormSection): boolean;
|
|
1224
1301
|
private getSectionRuleProps;
|
|
@@ -1230,6 +1307,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1230
1307
|
getSectionTitle(section: FormSection): string | undefined;
|
|
1231
1308
|
getSectionDescription(section: FormSection): string | undefined;
|
|
1232
1309
|
getSectionAppearance(section: FormSection): 'card' | 'plain' | 'step' | undefined;
|
|
1310
|
+
isSectionDividerEnabled(section: FormSection): boolean;
|
|
1233
1311
|
getSectionStepLabel(section: FormSection): string | undefined;
|
|
1234
1312
|
getSectionTitleColor(section: FormSection): string | undefined;
|
|
1235
1313
|
getSectionDescriptionColor(section: FormSection): string | undefined;
|
|
@@ -1527,6 +1605,11 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1527
1605
|
private tryBuildExplicitSchemaContext;
|
|
1528
1606
|
private buildSchemaContext;
|
|
1529
1607
|
private getSchemaWithCache;
|
|
1608
|
+
/**
|
|
1609
|
+
* Invalida o cache de schema compilado para a instância atual e força
|
|
1610
|
+
* novo carregamento na próxima requisição.
|
|
1611
|
+
*/
|
|
1612
|
+
invalidateSchemaCache(): void;
|
|
1530
1613
|
private isReactiveValidationEnabled;
|
|
1531
1614
|
private getReactiveValidationDebounceMs;
|
|
1532
1615
|
private waitForGlobalConfigReadyForSchema;
|
|
@@ -1535,7 +1618,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1535
1618
|
private applyPresentationVars;
|
|
1536
1619
|
private applyPresentationConfig;
|
|
1537
1620
|
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>;
|
|
1621
|
+
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; }; "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
1622
|
}
|
|
1540
1623
|
|
|
1541
1624
|
declare class FormConfigService {
|
|
@@ -1718,7 +1801,7 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
|
|
|
1718
1801
|
private includeBackConfigBlock;
|
|
1719
1802
|
formId?: string;
|
|
1720
1803
|
componentKeyId?: string;
|
|
1721
|
-
inputMode:
|
|
1804
|
+
inputMode: DynamicFormMode;
|
|
1722
1805
|
private includeBindingsBlock;
|
|
1723
1806
|
private readonly editorMode;
|
|
1724
1807
|
get isPresentationMode(): boolean;
|
|
@@ -2409,6 +2492,30 @@ declare class DomainRuleFormRulesService {
|
|
|
2409
2492
|
static ɵprov: i0.ɵɵInjectableDeclaration<DomainRuleFormRulesService>;
|
|
2410
2493
|
}
|
|
2411
2494
|
|
|
2495
|
+
/**
|
|
2496
|
+
* DynamicFormSchemaCacheService
|
|
2497
|
+
* ------------------------------
|
|
2498
|
+
* Serviço canônico de conveniência em `@praxisui/dynamic-form` para orquestração
|
|
2499
|
+
* de cache de primeiro nível (L1) de esquemas OpenAPI compilados (Issue #2).
|
|
2500
|
+
*
|
|
2501
|
+
* Delega o ciclo de vida do cache em memória ao DynamicFormService (@praxisui/core),
|
|
2502
|
+
* garantindo consistência referencial entre módulos e transições de abas em 0ms.
|
|
2503
|
+
*/
|
|
2504
|
+
declare class DynamicFormSchemaCacheService {
|
|
2505
|
+
private readonly dynamicFormService;
|
|
2506
|
+
buildCacheKey(params: SchemaIdParams & {
|
|
2507
|
+
baseUrl?: string;
|
|
2508
|
+
}): string;
|
|
2509
|
+
get(cacheKey: string): CompiledDynamicFormSchema | undefined;
|
|
2510
|
+
set(cacheKey: string, compiled: CompiledDynamicFormSchema, customTtlMs?: number): void;
|
|
2511
|
+
has(cacheKey: string): boolean;
|
|
2512
|
+
invalidate(cacheKey?: string): void;
|
|
2513
|
+
clear(): void;
|
|
2514
|
+
size(): number;
|
|
2515
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormSchemaCacheService, never>;
|
|
2516
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DynamicFormSchemaCacheService>;
|
|
2517
|
+
}
|
|
2518
|
+
|
|
2412
2519
|
declare class Ergadm00034CompactPresentationExampleComponent {
|
|
2413
2520
|
private readonly dynamicLayout;
|
|
2414
2521
|
readonly legacyFrequencyExample: _praxisui_dynamic_form.Ergadm00034CompactPresentationExample;
|
|
@@ -3046,5 +3153,5 @@ declare const PRAXIS_FILTER_FORM_AUTHORING_PROJECTION: {
|
|
|
3046
3153
|
};
|
|
3047
3154
|
declare const PRAXIS_FILTER_FORM_AUTHORING_MANIFEST: _praxisui_core.ComponentAuthoringManifest;
|
|
3048
3155
|
|
|
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,
|
|
3156
|
+
export { ActionsEditorComponent, CORPORATE_PRESENTATION_FORMAT_GALLERY, CanvasStateService, CanvasToolbarComponent, ColumnEditorComponent, 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, formLayoutRulesToBuilderState, getFormAiCatalog, getFormCapabilities, getFormEnum, isRuleSatisfied, normalizeDateArrays, normalizeDynamicFormAuthoringDocument, parseLegacyOrDynamicFormDocument, providePraxisDynamicFormMetadata, providePraxisFilterFormMetadata, provideSettingsPanelDynamicForm, ruleBuilderStateToFormLayoutRules, serializeDynamicFormAuthoringDocument, stripLegacyFieldMetadata, toCanonicalDynamicFormConfig, validateDynamicFormAuthoringDocument, validateDynamicFormAuthoringInput };
|
|
3157
|
+
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 };
|