@praxisui/dynamic-form 9.0.4-rc.2 → 9.0.4-rc.21
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 +13 -1
- package/ai/component-registry.json +196 -97
- package/docs/schema-driven-layout-materialization-rfc.md +13 -1
- package/fesm2022/praxisui-dynamic-form.mjs +141 -15
- package/package.json +8 -8
- package/src/lib/praxis-dynamic-form.json-api.md +15 -6
- package/types/praxisui-dynamic-form.d.ts +12 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/dynamic-form",
|
|
3
|
-
"version": "9.0.4-rc.
|
|
3
|
+
"version": "9.0.4-rc.21",
|
|
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.4-rc.
|
|
13
|
-
"@praxisui/dynamic-fields": "^9.0.4-rc.
|
|
14
|
-
"@praxisui/metadata-editor": "^9.0.4-rc.
|
|
15
|
-
"@praxisui/rich-content": "^9.0.4-rc.
|
|
16
|
-
"@praxisui/settings-panel": "^9.0.4-rc.
|
|
17
|
-
"@praxisui/visual-builder": "^9.0.4-rc.
|
|
18
|
-
"@praxisui/core": "^9.0.4-rc.
|
|
12
|
+
"@praxisui/ai": "^9.0.4-rc.21",
|
|
13
|
+
"@praxisui/dynamic-fields": "^9.0.4-rc.21",
|
|
14
|
+
"@praxisui/metadata-editor": "^9.0.4-rc.21",
|
|
15
|
+
"@praxisui/rich-content": "^9.0.4-rc.21",
|
|
16
|
+
"@praxisui/settings-panel": "^9.0.4-rc.21",
|
|
17
|
+
"@praxisui/visual-builder": "^9.0.4-rc.21",
|
|
18
|
+
"@praxisui/core": "^9.0.4-rc.21",
|
|
19
19
|
"rxjs": "^7.8.0"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
@@ -232,20 +232,25 @@ O host deve persistir `formSubmit.formData` para fluxos normais. `formSubmit.raw
|
|
|
232
232
|
### Input bindings
|
|
233
233
|
|
|
234
234
|
`initialValue` is an active component input for host-authored or complementary
|
|
235
|
-
field values.
|
|
236
|
-
|
|
235
|
+
field values. In `edit/view`, the runtime applies it without redefining the
|
|
236
|
+
canonical remote entity loaded through `resourcePath` and `resourceId`. In
|
|
237
|
+
`create`, including item-scoped command forms, it is the only supported source
|
|
238
|
+
of initial values: a contextual `resourceId` never triggers entity hydration.
|
|
237
239
|
|
|
238
240
|
| Binding/Path | Type | Required | Source | Runtime normalization | Notes |
|
|
239
241
|
| --- | --- | --- | --- | --- | --- |
|
|
240
242
|
| `config` | `FormConfig` | Conditional | component-input | `normalizeFormConfig(config)` | Contrato principal quando fornecido diretamente pelo host. |
|
|
241
243
|
| `resourcePath` | `string \| undefined` | Conditional | component-input | `crud.configure(resourcePath)` | Endpoint base para schema e dados remotos. Alternativa canônica: `schemaUrl` explícito. |
|
|
242
|
-
| `resourceId` | `string \| number \| undefined` | No | component-input | update `pendingEntityId
|
|
244
|
+
| `resourceId` | `string \| number \| undefined` | No | component-input | update `pendingEntityId`; hydrate only in `edit/view` | Carrega entidade em modo `edit/view`. Em `create`, pode identificar o item dono de um comando sem iniciar leitura nem bloquear os campos. |
|
|
243
245
|
| `mode` | `'create' \| 'edit' \| 'view'` | No | component-input/storage | persistido em `formInputsKey` | Preferência de modo pode ser hidratada do storage. |
|
|
244
246
|
| `schemaSource` | `'resource' \| 'filter'` | No | component-input | runtime branch | Seleciona caminho de obtenção de schema quando `schemaUrl` não é informado. |
|
|
245
247
|
| `schemaUrl` | `string \| null \| undefined` | Conditional | component-input | parsed as `/schemas/filtered` contract | Fonte canônica explícita para inicialização schema-backed sem depender de `resourcePath`. |
|
|
246
248
|
| `readUrl` | `string \| null \| undefined` | No | component-input | resolved via API origin and `{id}` placeholders | URL concreta de leitura publicada por surface `VIEW`/`READ_PROJECTION`; quando presente, substitui `crud.getById` na hidratação da entidade. |
|
|
247
249
|
| `submitUrl` | `string \| null \| undefined` | Conditional | component-input | resolved via API origin | URL concreta de submit publicada por surface/action; exige `submitMethod` quando usada para envio HTTP. |
|
|
248
250
|
| `submitMethod` | `'post' \| 'put' \| 'patch' \| null \| undefined` | Conditional | component-input | normalized lowercase | Método HTTP concreto de submit publicado por surface/action; exige `submitUrl` quando usado para envio HTTP. |
|
|
251
|
+
| `submitIdempotencyKey` | `string \| null \| undefined` | No | action execution contract | `Idempotency-Key` | Identidade estável da tentativa; deve ser reutilizada em retries da mesma execução. |
|
|
252
|
+
| `submitCorrelationId` | `string \| null \| undefined` | No | action execution contract | `X-Correlation-Id` | Correlação de observabilidade do comando entre host e backend. |
|
|
253
|
+
| `submitResourceVersion` | `string \| number \| null \| undefined` | Conditional | action execution contract | quoted `If-Match` | Versão esperada do item; obrigatória quando `execution.preconditions.resourceVersionTransport` é `IF_MATCH`. |
|
|
249
254
|
| `responseSchemaUrl` | `string \| null \| undefined` | No | component-input | diagnostic only | Schema de resposta para diagnóstico e follow-up; não compõe campos editáveis nem o payload do comando. |
|
|
250
255
|
| `enableCustomization` | `boolean` | No | component-input | boolean coercion | Alterna UX de edição visual/configuração. |
|
|
251
256
|
| `formId` | `string \| undefined` | Yes (corporate flow) | component-input | component key scoping | Obrigatório para ciclo corporativo com persistência e sync. |
|
|
@@ -566,7 +571,7 @@ No ecossistema Praxis, ele funciona tanto como runtime final quanto como superfi
|
|
|
566
571
|
| --- | --- | --- | --- | --- |
|
|
567
572
|
| `config` | `FormConfig` | `{ sections: [] }` | Active | Contrato principal consumido no ciclo inteiro. `sections` é opcional somente para forms schema-driven com grounding explícito (`metadata.source='schema'`, schema metadata ou fonte runtime como `schemaUrl`/`resourcePath`); ausência de layout manual é normalizada internamente como array vazio e permite que `layoutPolicy`/schema materializem agrupamentos. |
|
|
568
573
|
| `resourcePath` | `string \| undefined` | `undefined` | Active | Habilita carga de schema/dados remotos. Opcional quando `schemaUrl` explícito é fornecido. |
|
|
569
|
-
| `resourceId` | `string \| number \| undefined` | `undefined` | Active | Carrega entidade no modo `edit/view
|
|
574
|
+
| `resourceId` | `string \| number \| undefined` | `undefined` | Active | Carrega entidade no modo `edit/view`; em `create`, funciona apenas como contexto do item e não dispara hidratação. |
|
|
570
575
|
| `mode` | `'create' \| 'edit' \| 'view'` | `'create'` | Active | Governa submit, leitura e apresentacao. |
|
|
571
576
|
| `schemaSource` | `'resource' \| 'filter'` | `'resource'` | Active | Seleciona origem do schema remoto. |
|
|
572
577
|
| `schemaUrl` | `string \| undefined` | `undefined` | Active | Permite usar schema canonico publicado pelo backend sem heuristica local de path e pode iniciar o fluxo corporativo sem `resourcePath`. |
|
|
@@ -576,13 +581,17 @@ No ecossistema Praxis, ele funciona tanto como runtime final quanto como superfi
|
|
|
576
581
|
| `domainRules` | `PraxisDynamicFormDomainRulesOptions \| boolean \| null` | `null` | Active | Opt-in para carregar materializacoes de regras compartilhadas em `/api/praxis/config/domain-rules/materializations` e combina-las com `config.formRules`. |
|
|
577
582
|
| `submitUrl` | `string \| undefined` | `undefined` | Active | Executa submit canonico publicado por `surface` ou `action`, sem inferencia local de CRUD. |
|
|
578
583
|
| `submitMethod` | `'post' \| 'put' \| 'patch' \| undefined` | `undefined` | Active | Metodo HTTP do submit canonico; deve acompanhar `submitUrl`. |
|
|
584
|
+
| `submitIdempotencyKey` | `string \| undefined` | `undefined` | Active | Envia `Idempotency-Key` e preserva a identidade entre retries da mesma tentativa. |
|
|
585
|
+
| `submitCorrelationId` | `string \| undefined` | `undefined` | Active | Envia `X-Correlation-Id` para rastreabilidade corporativa ponta a ponta. |
|
|
586
|
+
| `submitResourceVersion` | `string \| number \| undefined` | `undefined` | Active | Envia a versão esperada como `If-Match`, sem inferir concorrência a partir do formulário. |
|
|
579
587
|
| `responseSchemaUrl` | `string \| undefined` | `undefined` | Active | Porta diagnóstica/read-only; não deve ser usada para mesclar propriedades do schema de resposta no formulário de comando. |
|
|
580
588
|
| `enableCustomization` | `boolean` | `false` | Active | Habilita UX de customizacao do layout. |
|
|
581
589
|
| `formId` | `string \| undefined` | `undefined` | Active | Chave de persistencia e identidade logica. |
|
|
582
590
|
| `componentInstanceId` | `string \| undefined` | `undefined` | Active | Isola instancias com mesmo `formId`. |
|
|
591
|
+
| `configPersistenceStrategy` | `'local-first' \| 'input-first'` | `'local-first'` | Active | Em `input-first`, os inputs fornecidos pelo host, inclusive `mode`, permanecem autoritativos sobre preferencias persistidas da mesma instancia. Combine com `layoutPolicy.persistence='transient'` em commands efemeros para nao carregar nem gravar layout local. |
|
|
583
592
|
| `layout` | `FormLayout \| undefined` | `undefined` | Partial | Funciona como override estrutural em parte dos fluxos de layout/editor. |
|
|
584
593
|
| `generatedLayoutPreset` | `'default' \| 'compactPresentation'` | `'default'` | Active | Usado apenas ao criar a configuracao inicial a partir de schema/metadata; nao reprocessa layouts persistidos ou authorados. |
|
|
585
|
-
| `layoutPolicy` | `DynamicFormLayoutPolicy \| null` | `null` | Active | Politica opt-in para materializar layout a partir do schema atual. Use `source: 'schema'` com `persistence: 'transient'` para detalhe/read-only e command forms schema-driven sem persistir `sections` geradas nem reabrir configuracao local salva; politicas de host em `config`, como `helpPresentation`, continuam sendo aplicadas ao layout materializado. Em `mode='view'`, `intent: 'detail'` ou `preset: 'compactPresentation'` ativa apresentacao quando `presentationModeGlobal` nao foi informado; use `[presentationModeGlobal]=false` para controles read-only tradicionais. No preset `compactPresentation`, `x-ui.width` explicito empacota campos em linhas de 12 colunas e tem precedencia sobre `detailSummary.columns` por default; campos sem width permanecem full-width, a menos que `detailSummary.columns`/`responsiveColumns` declare a densidade do resumo. Use `detailSummary.widthPrecedence='summary'` quando a densidade do resumo read-only deve sobrescrever `x-ui.width` apenas nessa surface compacta. No preset `groupedCommand`, `groupedCommand.orphanFieldExpansion` controla linhas com um unico campo: `medium-and-wide` (default) expande spans 6/8, `preserve` mantem o width publicado e `all` tambem expande campos compactos. Use `responsiveColumns`, por exemplo `{ lg: 3, md: 2, sm: 1 }`, para drawers, side sheets e painéis corporativos estreitos sem copiar `FormConfig.sections` locais. `schemaType` e `schemaOperation` sao validados contra `schemaUrl` quando a URL declara esses parametros. |
|
|
594
|
+
| `layoutPolicy` | `DynamicFormLayoutPolicy \| null` | `null` | Active | Politica opt-in para materializar layout a partir do schema atual. Use `source: 'schema'` com `persistence: 'transient'` para detalhe/read-only e command forms schema-driven sem persistir `sections` geradas nem reabrir configuracao local salva; politicas de host em `config`, como `helpPresentation`, continuam sendo aplicadas ao layout materializado. Em `mode='view'`, `intent: 'detail'` ou `preset: 'compactPresentation'` ativa apresentacao quando `presentationModeGlobal` nao foi informado; use `[presentationModeGlobal]=false` para controles read-only tradicionais. No preset `compactPresentation`, `x-ui.width` explicito empacota campos em linhas de 12 colunas e tem precedencia sobre `detailSummary.columns` por default; campos sem width permanecem full-width, a menos que `detailSummary.columns`/`responsiveColumns` declare a densidade do resumo. Use `detailSummary.widthPrecedence='summary'` quando a densidade do resumo read-only deve sobrescrever `x-ui.width` apenas nessa surface compacta. No preset `groupedCommand`, `groupedCommand.orphanFieldExpansion` controla linhas com um unico campo: `medium-and-wide` (default) expande spans 6/8, `preserve` mantem o width publicado e `all` tambem expande campos compactos. `groupedCommand.contextFields` identifica campos schema-backed já hidratados pela surface: eles permanecem no `FormGroup` e no payload, mas não renderizam controles redundantes. Use `responsiveColumns`, por exemplo `{ lg: 3, md: 2, sm: 1 }`, para drawers, side sheets e painéis corporativos estreitos sem copiar `FormConfig.sections` locais. `schemaType` e `schemaOperation` sao validados contra `schemaUrl` quando a URL declara esses parametros. |
|
|
586
595
|
| `backConfig` | `BackConfig \| undefined` | `undefined` | Active | Integra retorno/navegacao no painel de configuracao; `confirmOnDirty` tem precedencia sobre `behavior.confirmOnUnsavedChanges` no cancel. |
|
|
587
596
|
| `hooks` | `FormHooksLayout \| undefined` | `undefined` | Active | Override direto de hooks sobre `config.hooks`. |
|
|
588
597
|
| `customEndpoints` | `EndpointConfig` | `{}` | Active | Override de endpoints no CRUD service interno. |
|
|
@@ -697,7 +706,7 @@ Validado em 2026-04-23 contra `praxis-api-quickstart` publicado no Render com
|
|
|
697
706
|
|
|
698
707
|
#### Data mode e fluxo
|
|
699
708
|
|
|
700
|
-
- `mode='create'`: cria registro
|
|
709
|
+
- `mode='create'`: cria registro ou materializa um comando; nunca carrega a entidade por `resourceId`, e valores iniciais devem vir de `initialValue`.
|
|
701
710
|
- `mode='edit'`: carrega entidade por `resourceId` quando disponivel.
|
|
702
711
|
- `mode='view'`: foco em leitura/apresentacao; actions de edicao podem ser suprimidas.
|
|
703
712
|
|
|
@@ -735,6 +735,12 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
735
735
|
submitUrl?: string | null;
|
|
736
736
|
/** Canonical submit method published by the backend surface catalog. */
|
|
737
737
|
submitMethod?: string | null;
|
|
738
|
+
/** Stable key reused by retries of the same materialized business command. */
|
|
739
|
+
submitIdempotencyKey?: string | null;
|
|
740
|
+
/** Correlation identifier propagated to the backend command boundary. */
|
|
741
|
+
submitCorrelationId?: string | null;
|
|
742
|
+
/** Current persisted resource version sent through If-Match when governed by the action. */
|
|
743
|
+
submitResourceVersion?: string | number | null;
|
|
738
744
|
/** Canonical response schema URL exposed for runtime diagnostics/follow-up. */
|
|
739
745
|
responseSchemaUrl?: string | null;
|
|
740
746
|
/** API endpoint entry used to resolve relative canonical URLs in detached hosts. */
|
|
@@ -973,6 +979,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
973
979
|
private resolveSubmitOperation;
|
|
974
980
|
private buildSubmitRequest;
|
|
975
981
|
private normalizeSubmitMethod;
|
|
982
|
+
private formatResourceVersion;
|
|
976
983
|
private resolveSubmitHref;
|
|
977
984
|
private resolveReadHref;
|
|
978
985
|
private resolveEntityAwareHref;
|
|
@@ -1386,7 +1393,7 @@ declare class PraxisDynamicForm implements OnInit, OnChanges, OnDestroy {
|
|
|
1386
1393
|
private applyPresentationVars;
|
|
1387
1394
|
private applyPresentationConfig;
|
|
1388
1395
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisDynamicForm, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
1389
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicForm, "praxis-dynamic-form", never, { "resourcePath": { "alias": "resourcePath"; "required": false; }; "resourceId": { "alias": "resourceId"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "editorialContext": { "alias": "editorialContext"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "config": { "alias": "config"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "schemaSource": { "alias": "schemaSource"; "required": false; }; "schemaUrl": { "alias": "schemaUrl"; "required": false; }; "readUrl": { "alias": "readUrl"; "required": false; }; "submitUrl": { "alias": "submitUrl"; "required": false; }; "submitMethod": { "alias": "submitMethod"; "required": false; }; "responseSchemaUrl": { "alias": "responseSchemaUrl"; "required": false; }; "apiEndpointKey": { "alias": "apiEndpointKey"; "required": false; }; "apiUrlEntry": { "alias": "apiUrlEntry"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showAiAssistant": { "alias": "showAiAssistant"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "configPersistenceStrategy": { "alias": "configPersistenceStrategy"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "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"; "syncCompleted": "syncCompleted"; "initializationError": "initializationError"; "loadingStateChange": "loadingStateChange"; "enableCustomizationChange": "enableCustomizationChange"; "customAction": "customAction"; "actionConfirmation": "actionConfirmation"; "schemaStatusChange": "schemaStatusChange"; "fieldRenderError": "fieldRenderError"; "ruleDiagnosticsChange": "ruleDiagnosticsChange"; }, never, never, true, never>;
|
|
1396
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisDynamicForm, "praxis-dynamic-form", never, { "resourcePath": { "alias": "resourcePath"; "required": false; }; "resourceId": { "alias": "resourceId"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "editorialContext": { "alias": "editorialContext"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "config": { "alias": "config"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "schemaSource": { "alias": "schemaSource"; "required": false; }; "schemaUrl": { "alias": "schemaUrl"; "required": false; }; "readUrl": { "alias": "readUrl"; "required": false; }; "submitUrl": { "alias": "submitUrl"; "required": false; }; "submitMethod": { "alias": "submitMethod"; "required": false; }; "submitIdempotencyKey": { "alias": "submitIdempotencyKey"; "required": false; }; "submitCorrelationId": { "alias": "submitCorrelationId"; "required": false; }; "submitResourceVersion": { "alias": "submitResourceVersion"; "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"; "syncCompleted": "syncCompleted"; "initializationError": "initializationError"; "loadingStateChange": "loadingStateChange"; "enableCustomizationChange": "enableCustomizationChange"; "customAction": "customAction"; "actionConfirmation": "actionConfirmation"; "schemaStatusChange": "schemaStatusChange"; "fieldRenderError": "fieldRenderError"; "ruleDiagnosticsChange": "ruleDiagnosticsChange"; }, never, never, true, never>;
|
|
1390
1397
|
}
|
|
1391
1398
|
|
|
1392
1399
|
declare class FormConfigService {
|
|
@@ -1755,6 +1762,8 @@ declare class PraxisFilterForm implements OnChanges, OnDestroy {
|
|
|
1755
1762
|
form: FormGroup<Record<string, any>>;
|
|
1756
1763
|
private valueChangesSub?;
|
|
1757
1764
|
private statusChangesSub?;
|
|
1765
|
+
private columnFieldsCache;
|
|
1766
|
+
private singleFieldCache;
|
|
1758
1767
|
constructor(dynamicForm: DynamicFormService);
|
|
1759
1768
|
ngOnChanges(changes: SimpleChanges): void;
|
|
1760
1769
|
ngOnDestroy(): void;
|
|
@@ -1763,6 +1772,7 @@ declare class PraxisFilterForm implements OnChanges, OnDestroy {
|
|
|
1763
1772
|
private hasExplicitDefaultValue;
|
|
1764
1773
|
onFormSubmit(): void;
|
|
1765
1774
|
getColumnFields(column: FormColumn): FieldMetadata[];
|
|
1775
|
+
getSingleField(field: FieldMetadata): FieldMetadata[];
|
|
1766
1776
|
getColumnClasses(column: FormColumn): string | null;
|
|
1767
1777
|
get fieldMetadata(): FieldMetadata[];
|
|
1768
1778
|
get hasLayout(): boolean;
|
|
@@ -2766,7 +2776,7 @@ declare function buildDynamicFormRuleAuthoringContext(config: Pick<FormConfig, '
|
|
|
2766
2776
|
* Manifesto de authoring canônico para o componente praxis-dynamic-form.
|
|
2767
2777
|
* Este arquivo define as operações permitidas pela IA para editar formulários.
|
|
2768
2778
|
*
|
|
2769
|
-
* @version 1.5.
|
|
2779
|
+
* @version 1.5.1
|
|
2770
2780
|
* @status COMPLIANT - Alinhado com contrato v2, gate de aceitação e semântica local/schema-backed.
|
|
2771
2781
|
*/
|
|
2772
2782
|
declare const PRAXIS_DYNAMIC_FORM_AUTHORING_MANIFEST: ComponentAuthoringManifest;
|