@praxisui/dynamic-form 9.0.65 → 9.0.67

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": "9.0.65",
3
+ "version": "9.0.67",
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": "^9.0.65",
13
- "@praxisui/dynamic-fields": "^9.0.65",
14
- "@praxisui/metadata-editor": "^9.0.65",
15
- "@praxisui/rich-content": "^9.0.65",
16
- "@praxisui/settings-panel": "^9.0.65",
17
- "@praxisui/visual-builder": "^9.0.65",
18
- "@praxisui/core": "^9.0.65",
12
+ "@praxisui/ai": "^9.0.67",
13
+ "@praxisui/dynamic-fields": "^9.0.67",
14
+ "@praxisui/metadata-editor": "^9.0.67",
15
+ "@praxisui/rich-content": "^9.0.67",
16
+ "@praxisui/settings-panel": "^9.0.67",
17
+ "@praxisui/visual-builder": "^9.0.67",
18
+ "@praxisui/core": "^9.0.67",
19
19
  "rxjs": "^7.8.0"
20
20
  },
21
21
  "dependencies": {
@@ -55,6 +55,13 @@ Este documento e a referencia canonica da API JSON de praxis-dynamic-form-config
55
55
 
56
56
  ## Canonical authoring semantics
57
57
 
58
+ - Em Geral → Dados do formulário, `Modo de dados` e `Modo de exibição` são preferências independentes.
59
+ - `bindings.presentationModeGlobal` reutiliza o input runtime existente: `true` = Apresentação (efetiva somente em `view`), `false` = Campos de formulário, `null`/ausência = Automático, seguindo `layoutPolicy`.
60
+ - Em replace-all, omitir a preferência remove o override anterior; `false` deve ser preservado. Não existe um quarto valor em `bindings.mode`.
61
+ - 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`.
62
+ - `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.
63
+
64
+
58
65
  - O editor visual e o editor JSON operam sobre `DynamicFormAuthoringDocument`.
59
66
  - O editor JSON aceita apenas o envelope canônico; payloads legados pertencem aos caminhos de compatibilidade do runtime.
60
67
  - `Apply` e `Save` emitem um snapshot canonico completo com semantica `replace-all`.
@@ -481,3 +488,13 @@ Correcao: e diff estrutural para UX do painel, nao auditoria de negocio.
481
488
  | local-file | projects/praxis-dynamic-form/src/lib/praxis-dynamic-form.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
482
489
  | local-file | projects/praxis-settings-panel/src/lib/settings-panel.types.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
483
490
  | local-file | projects/praxis-core/src/lib/models/form/form-config.model.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
491
+
492
+
493
+ ### Presentation style projection and editor UX
494
+
495
+ - `contextSnapshot.presentation` is the canonical style snapshot. The optional runtime input `presentation: DynamicFormPresentationSnapshot | null` projects it into page widgets independently of schema-generated `config`. Explicit styles take precedence over stored style preferences; `null` restores defaults and blocks stale stored overrides; omission retains normal style resolution.
496
+ - Runtime editor Apply/Save emits `presentation` with `mode` and `presentationModeGlobal` in `configPatchChange.inputPatch`. Widget save/reopen preserves the same snapshot; omitting the document block clears the widget projection with `null`.
497
+ - Numeric font sizes and label widths are pixels. Capturing a runtime `rem` size converts it using the host root font size; opening and saving must not reinterpret `0.78rem` as `0.78px`.
498
+ - **Geral → Dados do formulário** separates **Criar / Editar / Visualizar** from **Automático / Campos / Apresentação**. Selecting presentation in Create/Edit keeps the operation unchanged and explains the inactive state with an explicit action to switch to View.
499
+ - **Estilo da apresentação** remains discoverable regardless of the current mode. It previews sample data and does not activate presentation by itself. Filter Form does not expose this tab because it has no presentation runtime.
500
+ - Applying or finishing widget editing updates the page draft. **Salvar página** persists the composition. Shortening sample text affects the preview only.
@@ -68,6 +68,13 @@ Este documento e a referencia canonica da API JSON de praxis-dynamic-form.
68
68
 
69
69
  ## Canonical authoring semantics
70
70
 
71
+ - Em Geral → Dados do formulário, `Modo de dados` e `Modo de exibição` são preferências independentes.
72
+ - `bindings.presentationModeGlobal` reutiliza o input runtime existente: `true` = Apresentação (efetiva somente em `view`), `false` = Campos de formulário, `null`/ausência = Automático, seguindo `layoutPolicy`.
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
+ - 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
+ - `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
+
77
+
71
78
  - `DynamicFormAuthoringDocument` e o snapshot canonico completo de autoria de `praxis-dynamic-form`.
72
79
  - Quando aplicado por fluxos canonicos de editor, `config`, `bindings` e `contextSnapshot` possuem semantica `replace-all`.
73
80
  - Ausencia de `bindings.mode` limpa o binding persistido e restaura o modo default efetivo do host.
@@ -411,7 +418,7 @@ Limites de segurança:
411
418
  | `formCancel` | `void` | Acao cancelar. | Partial | Preservado da documentação anterior. |
412
419
  | `formReset` | `void` | Acao reset. | Partial | Preservado da documentação anterior. |
413
420
  | `configChange` | `FormConfig` | Alteracoes de layout/config durante edicao. | Partial | Preservado da documentação anterior. |
414
- | `configPatchChange` | `{ inputPatch: { config: FormConfig } }` | Alteracoes autoradas de configuracao que devem ser persistidas pelo host. | Partial | Contrato aditivo para hosts genericos sem alterar o payload legado de `configChange`. |
421
+ | `configPatchChange` | `{ inputPatch: { config?: FormConfig; resourcePath?: string \| null; mode?: DynamicFormMode; presentationModeGlobal?: boolean \| null; presentation?: DynamicFormPresentationSnapshot \| null } }` | Alteracoes autoradas de configuracao que devem ser persistidas pelo host. | Partial | Contrato aditivo para hosts genericos sem alterar o payload legado de `configChange`. |
415
422
  | `formReady` | `FormReadyEvent` | Form pronto para interacao. | Partial | Preservado da documentação anterior. |
416
423
  | `valueChange` | `FormValueChangeEvent` | Alteracao de valor no form runtime. | Partial | Preservado da documentação anterior. |
417
424
  | `syncCompleted` | `SyncResult` | Sincronizacao de schema/config concluida. | Partial | Preservado da documentação anterior. |
@@ -745,7 +752,7 @@ Validado em 2026-04-23 contra `praxis-api-quickstart` publicado no Render com
745
752
  | `formCancel` | `void` | Acao cancelar. |
746
753
  | `formReset` | `void` | Acao reset. |
747
754
  | `configChange` | `FormConfig` | Alteracoes de layout/config durante edicao. |
748
- | `configPatchChange` | `{ inputPatch: { config: FormConfig } }` | Alteracoes autoradas de configuracao que devem ser persistidas pelo host. |
755
+ | `configPatchChange` | `{ inputPatch: { config?: FormConfig; resourcePath?: string \| null; mode?: DynamicFormMode; presentationModeGlobal?: boolean \| null; presentation?: DynamicFormPresentationSnapshot \| null } }` | Alteracoes autoradas de configuracao que devem ser persistidas pelo host. |
749
756
  | `formReady` | `FormReadyEvent` | Form pronto para interacao. |
750
757
  | `valueChange` | `FormValueChangeEvent` | Alteracao de valor no form runtime. |
751
758
  | `syncCompleted` | `SyncResult` | Sincronizacao de schema/config concluida. |
@@ -971,7 +978,7 @@ O runtime emite `target-not-found` quando uma regra aponta para `section`, `row`
971
978
  | `formCancel` | `void` | Acao cancelar. | Partial | Preservado da documentação anterior. |
972
979
  | `formReset` | `void` | Acao reset. | Partial | Preservado da documentação anterior. |
973
980
  | `configChange` | `FormConfig` | Alteracoes de layout/config durante edicao. | Partial | Preservado da documentação anterior. |
974
- | `configPatchChange` | `{ inputPatch: { config: FormConfig } }` | Alteracoes autoradas de configuracao que devem ser persistidas pelo host. | Partial | Contrato aditivo para hosts genericos sem alterar o payload legado de `configChange`. |
981
+ | `configPatchChange` | `{ inputPatch: { config?: FormConfig; resourcePath?: string \| null; mode?: DynamicFormMode; presentationModeGlobal?: boolean \| null; presentation?: DynamicFormPresentationSnapshot \| null } }` | Alteracoes autoradas de configuracao que devem ser persistidas pelo host. | Partial | Contrato aditivo para hosts genericos sem alterar o payload legado de `configChange`. |
975
982
  | `formReady` | `FormReadyEvent` | Form pronto para interacao. | Partial | Preservado da documentação anterior. |
976
983
  | `valueChange` | `FormValueChangeEvent` | Alteracao de valor no form runtime. | Partial | Preservado da documentação anterior. |
977
984
  | `syncCompleted` | `SyncResult` | Sincronizacao de schema/config concluida. | Partial | Preservado da documentação anterior. |
@@ -1110,3 +1117,13 @@ O runtime emite `target-not-found` quando uma regra aponta para `section`, `row`
1110
1117
  | local-file | projects/praxis-dynamic-fields/src/lib/directives/dynamic-field-loader.directive.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
1111
1118
  | local-file | projects/praxis-core/src/lib/models/form/form-config.model.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
1112
1119
  | local-file | projects/praxis-core/src/lib/models/form/form-layout.model.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
1120
+
1121
+
1122
+ ### Presentation style projection and editor UX
1123
+
1124
+ - `contextSnapshot.presentation` is the canonical style snapshot. The optional runtime input `presentation: DynamicFormPresentationSnapshot | null` projects it into page widgets independently of schema-generated `config`. Explicit styles take precedence over stored style preferences; `null` restores defaults and blocks stale stored overrides; omission retains normal style resolution.
1125
+ - Runtime editor Apply/Save emits `presentation` with `mode` and `presentationModeGlobal` in `configPatchChange.inputPatch`. Widget save/reopen preserves the same snapshot; omitting the document block clears the widget projection with `null`.
1126
+ - Numeric font sizes and label widths are pixels. Capturing a runtime `rem` size converts it using the host root font size; opening and saving must not reinterpret `0.78rem` as `0.78px`.
1127
+ - **Geral → Dados do formulário** separates **Criar / Editar / Visualizar** from **Automático / Campos / Apresentação**. Selecting presentation in Create/Edit keeps the operation unchanged and explains the inactive state with an explicit action to switch to View.
1128
+ - **Estilo da apresentação** remains discoverable regardless of the current mode. It previews sample data and does not activate presentation by itself. Filter Form does not expose this tab because it has no presentation runtime.
1129
+ - Applying or finishing widget editing updates the page draft. **Salvar página** persists the composition. Shortening sample text affects the preview only.
@@ -575,6 +575,8 @@ interface EditorDiagnostic {
575
575
  type DynamicFormMode = 'create' | 'edit' | 'view';
576
576
  interface DynamicFormBindings {
577
577
  mode?: DynamicFormMode;
578
+ /** true: presentation in view; false: fields; null/absent: inherit layout policy. */
579
+ presentationModeGlobal?: boolean | null;
578
580
  }
579
581
  type DynamicFormPresentationSnapshot = FormPresentationConfig;
580
582
  interface DynamicFormSchemaPrefsSnapshot {
@@ -628,6 +630,7 @@ interface DynamicFormApplyPlan {
628
630
  runtime?: {
629
631
  rebindMode?: boolean;
630
632
  clearMode?: boolean;
633
+ clearPresentationMode?: boolean;
631
634
  rebuildForm?: boolean;
632
635
  refreshPresentation?: boolean;
633
636
  clearPresentation?: boolean;
@@ -650,7 +653,11 @@ interface DynamicFormApplyPlan {
650
653
 
651
654
  interface DynamicFormConfigPatchChangeEvent {
652
655
  inputPatch: {
653
- config: FormConfig;
656
+ config?: FormConfig;
657
+ resourcePath?: string | null;
658
+ mode?: DynamicFormMode;
659
+ presentationModeGlobal?: boolean | null;
660
+ presentation?: DynamicFormPresentationSnapshot | null;
654
661
  };
655
662
  }
656
663
  /**
@@ -863,6 +870,8 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
863
870
  readonlyModeGlobal: boolean | null;
864
871
  disabledModeGlobal: boolean | null;
865
872
  presentationModeGlobal: boolean | null;
873
+ /** Projection of contextSnapshot.presentation; null clears authored style overrides. */
874
+ presentation?: DynamicFormPresentationSnapshot | null;
866
875
  visibleGlobal: boolean | null;
867
876
  fieldIconPolicy: 'all' | 'presentation-only' | 'none';
868
877
  /** Opt-in loader for shared domain rule materializations persisted outside FormConfig. */
@@ -1510,7 +1519,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
1510
1519
  private applyPresentationVars;
1511
1520
  private applyPresentationConfig;
1512
1521
  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; }]>;
1513
- 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; }; "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>;
1522
+ 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>;
1514
1523
  }
1515
1524
 
1516
1525
  declare class FormConfigService {
@@ -1691,7 +1700,14 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
1691
1700
  inputMode: 'create' | 'edit' | 'view';
1692
1701
  private includeBindingsBlock;
1693
1702
  private readonly editorMode;
1694
- isPresentationMode: boolean;
1703
+ get isPresentationMode(): boolean;
1704
+ supportsPresentationSettings: boolean;
1705
+ inputPresentationMode: boolean | null | undefined;
1706
+ get displayMode(): 'automatic' | 'fields' | 'presentation';
1707
+ onDisplayModeChange(value: 'automatic' | 'fields' | 'presentation'): void;
1708
+ get displayModeHint(): string;
1709
+ useViewMode(): void;
1710
+ openPresentationStyle(): void;
1695
1711
  truncatePreview: boolean;
1696
1712
  previewItems: Array<{
1697
1713
  label: string;
@@ -1847,7 +1863,7 @@ declare class PraxisDynamicFormConfigEditor implements SettingsValueProvider, On
1847
1863
  private toPresentationSnapshot;
1848
1864
  private toSchemaPrefsSnapshot;
1849
1865
  private toBackConfigSnapshot;
1850
- tx(key: string, fallback: string, params?: Record<string, string | number | boolean | null | undefined>): string;
1866
+ tx(key: string, fallback?: string, params?: Record<string, string | number | boolean | null | undefined>): string;
1851
1867
  private resolveI18n;
1852
1868
  private interpolateFallback;
1853
1869
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicFormConfigEditor, [null, null, null, null, { optional: true; }, { optional: true; }]>;
@@ -2259,6 +2275,8 @@ declare class FieldConfiguratorComponent {
2259
2275
  interface PraxisDynamicFormWidgetEditorInputs {
2260
2276
  config?: FormConfig | null;
2261
2277
  mode?: DynamicFormMode;
2278
+ presentationModeGlobal?: boolean | null;
2279
+ presentation?: DynamicFormPresentationSnapshot | null;
2262
2280
  formId?: string;
2263
2281
  componentInstanceId?: string;
2264
2282
  backConfig?: BackConfig;
@@ -2278,6 +2296,8 @@ declare class PraxisDynamicFormWidgetConfigEditor implements SettingsValueProvid
2278
2296
  readonly isValid$: BehaviorSubject<boolean>;
2279
2297
  readonly isBusy$: BehaviorSubject<boolean>;
2280
2298
  private readonly subscription;
2299
+ private initialEditorConfig?;
2300
+ private readonly cdr;
2281
2301
  ngAfterViewInit(): void;
2282
2302
  ngOnDestroy(): void;
2283
2303
  getSettingsValue(): PraxisDynamicFormWidgetEditorValue;