@praxisui/dynamic-form 9.0.35 → 9.0.37
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.
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-30T00:46:55.066Z",
|
|
4
4
|
"packageName": "@praxisui/dynamic-form",
|
|
5
|
-
"packageVersion": "9.0.
|
|
5
|
+
"packageVersion": "9.0.37",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 2,
|
|
@@ -493,6 +493,58 @@
|
|
|
493
493
|
"scope": "shell"
|
|
494
494
|
}
|
|
495
495
|
],
|
|
496
|
+
"ports": [
|
|
497
|
+
{
|
|
498
|
+
"id": "initialValue",
|
|
499
|
+
"label": "Initial Value",
|
|
500
|
+
"direction": "input",
|
|
501
|
+
"semanticKind": "value",
|
|
502
|
+
"schema": {
|
|
503
|
+
"id": "Record<string, unknown> | null",
|
|
504
|
+
"kind": "ts-type",
|
|
505
|
+
"ref": "Record<string, unknown> | null"
|
|
506
|
+
},
|
|
507
|
+
"description": "Local value seed applied before the user interacts with the form.",
|
|
508
|
+
"exposure": {
|
|
509
|
+
"public": true,
|
|
510
|
+
"group": "data"
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"id": "valueChange",
|
|
515
|
+
"label": "Value Change",
|
|
516
|
+
"direction": "output",
|
|
517
|
+
"semanticKind": "event",
|
|
518
|
+
"schema": {
|
|
519
|
+
"id": "FormValueChangeEvent",
|
|
520
|
+
"kind": "ts-type",
|
|
521
|
+
"ref": "FormValueChangeEvent"
|
|
522
|
+
},
|
|
523
|
+
"cardinality": "stream",
|
|
524
|
+
"description": "Runtime form value event including the current payload and validity.",
|
|
525
|
+
"exposure": {
|
|
526
|
+
"public": true,
|
|
527
|
+
"group": "events"
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"id": "formSubmit",
|
|
532
|
+
"label": "Form Submit",
|
|
533
|
+
"direction": "output",
|
|
534
|
+
"semanticKind": "event",
|
|
535
|
+
"schema": {
|
|
536
|
+
"id": "FormSubmitEvent",
|
|
537
|
+
"kind": "ts-type",
|
|
538
|
+
"ref": "FormSubmitEvent"
|
|
539
|
+
},
|
|
540
|
+
"cardinality": "stream",
|
|
541
|
+
"description": "Submit lifecycle event emitted at before, after and error stages.",
|
|
542
|
+
"exposure": {
|
|
543
|
+
"public": true,
|
|
544
|
+
"group": "events"
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
],
|
|
496
548
|
"configEditor": {
|
|
497
549
|
"component": "[ref:PraxisDynamicFormWidgetConfigEditor]",
|
|
498
550
|
"title": "Configurar formulário"
|
|
@@ -6218,6 +6270,11 @@
|
|
|
6218
6270
|
"type": "FormConfig",
|
|
6219
6271
|
"description": "Configuração do formulário; sections é opcional em forms schema-driven e não deve ser criado como array vazio apenas para satisfazer TypeScript."
|
|
6220
6272
|
},
|
|
6273
|
+
{
|
|
6274
|
+
"name": "formId",
|
|
6275
|
+
"type": "string",
|
|
6276
|
+
"description": "Identidade estável usada pelo runtime para persistência local da configuração."
|
|
6277
|
+
},
|
|
6221
6278
|
{
|
|
6222
6279
|
"name": "resourcePath",
|
|
6223
6280
|
"type": "string",
|
|
@@ -9194,9 +9251,9 @@
|
|
|
9194
9251
|
{
|
|
9195
9252
|
"chunkIndex": 42,
|
|
9196
9253
|
"chunkKind": "authoring_manifest",
|
|
9197
|
-
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.5.2\",\"componentId\":\"praxis-dynamic-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"runtimeInputs\",\"runtimeInputs\":[{\"name\":\"showAiAssistant\",\"type\":\"boolean\",\"description\":\"Mostra os gatilhos do copiloto semantico Praxis\"},{\"name\":\"config\",\"type\":\"FormConfig\",\"description\":\"Configuração do formulário; sections é opcional em forms schema-driven e não deve ser criado como array vazio apenas para satisfazer TypeScript.\"},{\"name\":\"resourcePath\",\"type\":\"string\",\"description\":\"Caminho do recurso (API)\"},{\"name\":\"readUrl\",\"type\":\"string\",\"description\":\"Endpoint canonico de leitura para surfaces VIEW/READ_PROJECTION\"},{\"name\":\"mode\",\"type\":\"string\",\"allowedValues\":[\"create\",\"edit\",\"view\"],\"description\":\"Modo de operação\"},{\"name\":\"configPersistenceStrategy\",\"type\":\"string\",\"allowedValues\":[\"local-first\",\"input-first\"],\"description\":\"Precedência entre configuração persistida e contrato explícito do host. Use input-first em dialogs e surfaces transitórias governadas por schema para preservar mode e estados operacionais publicados pelo servidor.\"},{\"name\":\"generatedLayoutPreset\",\"type\":\"string\",\"allowedValues\":[\"default\",\"compactPresentation\"],\"description\":\"Preset usado apenas ao gerar a configuracao inicial a partir de metadata/schema; nao reprocessa layouts persistidos ou autorados.\"},{\"name\":\"layoutPolicy\",\"type\":\"DynamicFormLayoutPolicy\",\"description\":\"Politica opt-in para layout schema-driven transient. Use source=schema apenas quando o backend schema for a fonte canonica do agrupamento; use detailSummary para seleção de campos e densidade responsiva do resumo read-only compacto sem FormConfig.sections locais. Quando o resumo precisar vencer x-ui.width publicado para outras surfaces, use detailSummary.widthPrecedence=summary. Em groupedCommand, orphanFieldExpansion governa linhas lógicas com um unico campo; partialRowStrategy=fill-compatible projeta spans compatíveis depois de resolver visibilidade responsiva, CSS order e wrap, sem alterar x-ui.width ou persistir sections; contextFields identifica campos do request hidratados pela surface que permanecem no payload sem criar controles redundantes.\"},{\"name\":\"fieldIconPolicy\",\"type\":\"string\",\"allowedValues\":[\"all\",\"presentation-only\",\"none\"],\"description\":\"Politica visual do host para icones prefix/suffix de campos vindos da metadata. Use presentation-only para manter icones decorativos em apresentacao e ocultar em controles tradicionais.\"},{\"name\":\"enableCustomization\",\"type\":\"boolean\",\"description\":\"Habilita edição visual\"}]}",
|
|
9254
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.5.2\",\"componentId\":\"praxis-dynamic-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"runtimeInputs\",\"runtimeInputs\":[{\"name\":\"showAiAssistant\",\"type\":\"boolean\",\"description\":\"Mostra os gatilhos do copiloto semantico Praxis\"},{\"name\":\"config\",\"type\":\"FormConfig\",\"description\":\"Configuração do formulário; sections é opcional em forms schema-driven e não deve ser criado como array vazio apenas para satisfazer TypeScript.\"},{\"name\":\"formId\",\"type\":\"string\",\"description\":\"Identidade estável usada pelo runtime para persistência local da configuração.\"},{\"name\":\"resourcePath\",\"type\":\"string\",\"description\":\"Caminho do recurso (API)\"},{\"name\":\"readUrl\",\"type\":\"string\",\"description\":\"Endpoint canonico de leitura para surfaces VIEW/READ_PROJECTION\"},{\"name\":\"mode\",\"type\":\"string\",\"allowedValues\":[\"create\",\"edit\",\"view\"],\"description\":\"Modo de operação\"},{\"name\":\"configPersistenceStrategy\",\"type\":\"string\",\"allowedValues\":[\"local-first\",\"input-first\"],\"description\":\"Precedência entre configuração persistida e contrato explícito do host. Use input-first em dialogs e surfaces transitórias governadas por schema para preservar mode e estados operacionais publicados pelo servidor.\"},{\"name\":\"generatedLayoutPreset\",\"type\":\"string\",\"allowedValues\":[\"default\",\"compactPresentation\"],\"description\":\"Preset usado apenas ao gerar a configuracao inicial a partir de metadata/schema; nao reprocessa layouts persistidos ou autorados.\"},{\"name\":\"layoutPolicy\",\"type\":\"DynamicFormLayoutPolicy\",\"description\":\"Politica opt-in para layout schema-driven transient. Use source=schema apenas quando o backend schema for a fonte canonica do agrupamento; use detailSummary para seleção de campos e densidade responsiva do resumo read-only compacto sem FormConfig.sections locais. Quando o resumo precisar vencer x-ui.width publicado para outras surfaces, use detailSummary.widthPrecedence=summary. Em groupedCommand, orphanFieldExpansion governa linhas lógicas com um unico campo; partialRowStrategy=fill-compatible projeta spans compatíveis depois de resolver visibilidade responsiva, CSS order e wrap, sem alterar x-ui.width ou persistir sections; contextFields identifica campos do request hidratados pela surface que permanecem no payload sem criar controles redundantes.\"},{\"name\":\"fieldIconPolicy\",\"type\":\"string\",\"allowedValues\":[\"all\",\"presentation-only\",\"none\"],\"description\":\"Politica visual do host para icones prefix/suffix de campos vindos da metadata. Use presentation-only para manter icones decorativos em apresentacao e ocultar em controles tradicionais.\"},{\"name\":\"enableCustomization\",\"type\":\"boolean\",\"description\":\"Habilita edição visual\"}]}",
|
|
9198
9255
|
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-dynamic-form-authoring-manifest.ts",
|
|
9199
|
-
"contentHash": "
|
|
9256
|
+
"contentHash": "1d711fcd90cc205ae1c3fefd02b12571bf7547fa932022c396cecc19c5a158a3",
|
|
9200
9257
|
"sourceKind": "component_definition",
|
|
9201
9258
|
"sourceId": "praxis-dynamic-form",
|
|
9202
9259
|
"corpusVersion": "1.0.0"
|
|
@@ -9931,6 +9988,11 @@
|
|
|
9931
9988
|
"component": "[ref:PraxisFilterFormWidgetConfigEditor]",
|
|
9932
9989
|
"title": "Configurar filtro"
|
|
9933
9990
|
},
|
|
9991
|
+
"authoringManifestRef": {
|
|
9992
|
+
"componentId": "praxis-filter-form",
|
|
9993
|
+
"version": "1.0.0",
|
|
9994
|
+
"source": "PRAXIS_FILTER_FORM_AUTHORING_MANIFEST"
|
|
9995
|
+
},
|
|
9934
9996
|
"source": "projects/praxis-dynamic-form/src/lib/filter-form/praxis-filter-form.metadata.ts",
|
|
9935
9997
|
"exportName": "PRAXIS_FILTER_FORM_COMPONENT_METADATA",
|
|
9936
9998
|
"capabilities": [
|
|
@@ -15631,169 +15693,1493 @@
|
|
|
15631
15693
|
"DOC: resourcePath must be the base resource path only (no /filter, /all, /{id}). CRUD endpoints are handled internally."
|
|
15632
15694
|
]
|
|
15633
15695
|
},
|
|
15634
|
-
"
|
|
15635
|
-
|
|
15636
|
-
|
|
15637
|
-
|
|
15638
|
-
|
|
15639
|
-
|
|
15640
|
-
|
|
15641
|
-
|
|
15642
|
-
|
|
15643
|
-
|
|
15644
|
-
|
|
15645
|
-
|
|
15646
|
-
|
|
15647
|
-
|
|
15648
|
-
|
|
15649
|
-
|
|
15650
|
-
|
|
15651
|
-
|
|
15652
|
-
|
|
15653
|
-
|
|
15654
|
-
|
|
15655
|
-
|
|
15656
|
-
|
|
15657
|
-
|
|
15658
|
-
|
|
15659
|
-
|
|
15660
|
-
|
|
15661
|
-
|
|
15662
|
-
|
|
15663
|
-
|
|
15664
|
-
|
|
15665
|
-
|
|
15666
|
-
|
|
15667
|
-
|
|
15668
|
-
|
|
15669
|
-
|
|
15670
|
-
|
|
15671
|
-
|
|
15672
|
-
|
|
15673
|
-
|
|
15674
|
-
|
|
15675
|
-
|
|
15676
|
-
|
|
15677
|
-
|
|
15678
|
-
|
|
15679
|
-
|
|
15680
|
-
|
|
15681
|
-
|
|
15682
|
-
|
|
15683
|
-
|
|
15684
|
-
|
|
15685
|
-
|
|
15686
|
-
|
|
15687
|
-
|
|
15688
|
-
|
|
15689
|
-
|
|
15690
|
-
|
|
15691
|
-
|
|
15692
|
-
|
|
15693
|
-
|
|
15694
|
-
|
|
15695
|
-
|
|
15696
|
-
|
|
15697
|
-
|
|
15698
|
-
|
|
15699
|
-
|
|
15700
|
-
|
|
15701
|
-
|
|
15702
|
-
|
|
15703
|
-
|
|
15704
|
-
|
|
15705
|
-
|
|
15706
|
-
|
|
15707
|
-
|
|
15708
|
-
|
|
15709
|
-
|
|
15710
|
-
|
|
15711
|
-
|
|
15712
|
-
|
|
15713
|
-
|
|
15714
|
-
|
|
15715
|
-
|
|
15716
|
-
|
|
15717
|
-
|
|
15718
|
-
|
|
15719
|
-
|
|
15720
|
-
|
|
15721
|
-
|
|
15722
|
-
|
|
15723
|
-
|
|
15724
|
-
|
|
15725
|
-
|
|
15726
|
-
|
|
15727
|
-
|
|
15728
|
-
|
|
15729
|
-
|
|
15730
|
-
|
|
15731
|
-
|
|
15732
|
-
|
|
15733
|
-
|
|
15734
|
-
|
|
15735
|
-
|
|
15736
|
-
|
|
15737
|
-
|
|
15738
|
-
|
|
15739
|
-
|
|
15740
|
-
|
|
15741
|
-
|
|
15742
|
-
|
|
15743
|
-
|
|
15744
|
-
|
|
15745
|
-
|
|
15746
|
-
|
|
15747
|
-
|
|
15748
|
-
|
|
15749
|
-
|
|
15750
|
-
|
|
15751
|
-
|
|
15752
|
-
|
|
15753
|
-
|
|
15754
|
-
|
|
15755
|
-
|
|
15756
|
-
|
|
15757
|
-
|
|
15758
|
-
|
|
15759
|
-
|
|
15760
|
-
|
|
15761
|
-
|
|
15762
|
-
|
|
15763
|
-
|
|
15764
|
-
|
|
15765
|
-
|
|
15766
|
-
|
|
15767
|
-
|
|
15768
|
-
|
|
15769
|
-
|
|
15770
|
-
|
|
15771
|
-
|
|
15772
|
-
|
|
15773
|
-
|
|
15774
|
-
|
|
15775
|
-
|
|
15776
|
-
|
|
15777
|
-
|
|
15778
|
-
|
|
15779
|
-
|
|
15780
|
-
|
|
15781
|
-
|
|
15782
|
-
|
|
15783
|
-
|
|
15784
|
-
|
|
15785
|
-
|
|
15786
|
-
|
|
15787
|
-
|
|
15788
|
-
|
|
15789
|
-
|
|
15790
|
-
|
|
15791
|
-
|
|
15792
|
-
|
|
15793
|
-
|
|
15794
|
-
|
|
15795
|
-
|
|
15796
|
-
|
|
15696
|
+
"authoringManifest": {
|
|
15697
|
+
"schemaVersion": "1.0.0",
|
|
15698
|
+
"componentId": "praxis-filter-form",
|
|
15699
|
+
"ownerPackage": "@praxisui/dynamic-form",
|
|
15700
|
+
"configSchemaId": "FormConfig",
|
|
15701
|
+
"manifestVersion": "1.0.0",
|
|
15702
|
+
"runtimeInputs": [
|
|
15703
|
+
{
|
|
15704
|
+
"name": "config",
|
|
15705
|
+
"type": "FormConfig",
|
|
15706
|
+
"description": "Configuração do formulário; sections é opcional em forms schema-driven e não deve ser criado como array vazio apenas para satisfazer TypeScript."
|
|
15707
|
+
},
|
|
15708
|
+
{
|
|
15709
|
+
"name": "formId",
|
|
15710
|
+
"type": "string",
|
|
15711
|
+
"description": "Identidade estável usada pelo runtime para persistência local da configuração."
|
|
15712
|
+
},
|
|
15713
|
+
{
|
|
15714
|
+
"name": "resourcePath",
|
|
15715
|
+
"type": "string",
|
|
15716
|
+
"description": "Caminho do recurso (API)"
|
|
15717
|
+
},
|
|
15718
|
+
{
|
|
15719
|
+
"name": "mode",
|
|
15720
|
+
"type": "string",
|
|
15721
|
+
"allowedValues": [
|
|
15722
|
+
"create",
|
|
15723
|
+
"edit",
|
|
15724
|
+
"view"
|
|
15725
|
+
],
|
|
15726
|
+
"description": "Modo de operação"
|
|
15727
|
+
}
|
|
15728
|
+
],
|
|
15729
|
+
"editableTargets": [
|
|
15730
|
+
{
|
|
15731
|
+
"kind": "field",
|
|
15732
|
+
"resolver": "field-by-name-or-label",
|
|
15733
|
+
"description": "Campos do formulário (metadados schema-backed ou local; use para ops de propriedade)"
|
|
15734
|
+
},
|
|
15735
|
+
{
|
|
15736
|
+
"kind": "localField",
|
|
15737
|
+
"resolver": "field-by-name",
|
|
15738
|
+
"description": "Campos locais com source:\"local\"; adicionados/removidos via authoring"
|
|
15739
|
+
},
|
|
15740
|
+
{
|
|
15741
|
+
"kind": "section",
|
|
15742
|
+
"resolver": "section-by-id-or-title",
|
|
15743
|
+
"description": "Seções de layout identificadas por id estável"
|
|
15744
|
+
},
|
|
15745
|
+
{
|
|
15746
|
+
"kind": "row",
|
|
15747
|
+
"resolver": "row-by-id-in-section",
|
|
15748
|
+
"description": "Linhas dentro de seções, identificadas por id estável"
|
|
15749
|
+
}
|
|
15750
|
+
],
|
|
15751
|
+
"operations": [
|
|
15752
|
+
{
|
|
15753
|
+
"operationId": "field.label.set",
|
|
15754
|
+
"title": "Alterar rótulo do campo",
|
|
15755
|
+
"scope": "field",
|
|
15756
|
+
"targetKind": "field",
|
|
15757
|
+
"target": {
|
|
15758
|
+
"kind": "field",
|
|
15759
|
+
"resolver": "field-by-name-or-label",
|
|
15760
|
+
"ambiguityPolicy": "fail",
|
|
15761
|
+
"required": true
|
|
15762
|
+
},
|
|
15763
|
+
"inputSchema": {
|
|
15764
|
+
"type": "object",
|
|
15765
|
+
"required": [
|
|
15766
|
+
"label"
|
|
15767
|
+
],
|
|
15768
|
+
"properties": {
|
|
15769
|
+
"label": {
|
|
15770
|
+
"type": "string",
|
|
15771
|
+
"minLength": 1
|
|
15772
|
+
}
|
|
15773
|
+
}
|
|
15774
|
+
},
|
|
15775
|
+
"effects": [
|
|
15776
|
+
{
|
|
15777
|
+
"kind": "merge-by-key",
|
|
15778
|
+
"path": "fieldMetadata[]",
|
|
15779
|
+
"key": "name"
|
|
15780
|
+
}
|
|
15781
|
+
],
|
|
15782
|
+
"validators": [
|
|
15783
|
+
"field-exists"
|
|
15784
|
+
],
|
|
15785
|
+
"affectedPaths": [
|
|
15786
|
+
"fieldMetadata[].label"
|
|
15787
|
+
],
|
|
15788
|
+
"submissionImpact": "visual-only",
|
|
15789
|
+
"preconditions": [
|
|
15790
|
+
"config-initialized",
|
|
15791
|
+
"target-exists"
|
|
15792
|
+
]
|
|
15793
|
+
},
|
|
15794
|
+
{
|
|
15795
|
+
"operationId": "field.placeholder.set",
|
|
15796
|
+
"title": "Alterar placeholder do campo",
|
|
15797
|
+
"scope": "field",
|
|
15798
|
+
"targetKind": "field",
|
|
15799
|
+
"target": {
|
|
15800
|
+
"kind": "field",
|
|
15801
|
+
"resolver": "field-by-name-or-label",
|
|
15802
|
+
"ambiguityPolicy": "fail",
|
|
15803
|
+
"required": true
|
|
15804
|
+
},
|
|
15805
|
+
"inputSchema": {
|
|
15806
|
+
"type": "object",
|
|
15807
|
+
"required": [
|
|
15808
|
+
"placeholder"
|
|
15809
|
+
],
|
|
15810
|
+
"properties": {
|
|
15811
|
+
"placeholder": {
|
|
15812
|
+
"type": "string"
|
|
15813
|
+
}
|
|
15814
|
+
}
|
|
15815
|
+
},
|
|
15816
|
+
"effects": [
|
|
15817
|
+
{
|
|
15818
|
+
"kind": "merge-by-key",
|
|
15819
|
+
"path": "fieldMetadata[]",
|
|
15820
|
+
"key": "name"
|
|
15821
|
+
}
|
|
15822
|
+
],
|
|
15823
|
+
"validators": [
|
|
15824
|
+
"field-exists"
|
|
15825
|
+
],
|
|
15826
|
+
"affectedPaths": [
|
|
15827
|
+
"fieldMetadata[].placeholder"
|
|
15828
|
+
],
|
|
15829
|
+
"submissionImpact": "visual-only",
|
|
15830
|
+
"preconditions": [
|
|
15831
|
+
"config-initialized",
|
|
15832
|
+
"target-exists"
|
|
15833
|
+
]
|
|
15834
|
+
},
|
|
15835
|
+
{
|
|
15836
|
+
"operationId": "field.required.set",
|
|
15837
|
+
"title": "Definir obrigatoriedade",
|
|
15838
|
+
"scope": "field",
|
|
15839
|
+
"targetKind": "field",
|
|
15840
|
+
"target": {
|
|
15841
|
+
"kind": "field",
|
|
15842
|
+
"resolver": "field-by-name-or-label",
|
|
15843
|
+
"ambiguityPolicy": "fail",
|
|
15844
|
+
"required": true
|
|
15845
|
+
},
|
|
15846
|
+
"inputSchema": {
|
|
15847
|
+
"type": "object",
|
|
15848
|
+
"required": [
|
|
15849
|
+
"required"
|
|
15850
|
+
],
|
|
15851
|
+
"properties": {
|
|
15852
|
+
"required": {
|
|
15853
|
+
"type": "boolean"
|
|
15854
|
+
}
|
|
15855
|
+
}
|
|
15856
|
+
},
|
|
15857
|
+
"effects": [
|
|
15858
|
+
{
|
|
15859
|
+
"kind": "merge-by-key",
|
|
15860
|
+
"path": "fieldMetadata[]",
|
|
15861
|
+
"key": "name"
|
|
15862
|
+
}
|
|
15863
|
+
],
|
|
15864
|
+
"validators": [
|
|
15865
|
+
"field-exists"
|
|
15866
|
+
],
|
|
15867
|
+
"affectedPaths": [
|
|
15868
|
+
"fieldMetadata[].required"
|
|
15869
|
+
],
|
|
15870
|
+
"submissionImpact": "affects-schema-backed-data",
|
|
15871
|
+
"preconditions": [
|
|
15872
|
+
"config-initialized",
|
|
15873
|
+
"target-exists"
|
|
15874
|
+
]
|
|
15875
|
+
},
|
|
15876
|
+
{
|
|
15877
|
+
"operationId": "field.readOnly.set",
|
|
15878
|
+
"title": "Definir campo como somente leitura",
|
|
15879
|
+
"scope": "field",
|
|
15880
|
+
"targetKind": "field",
|
|
15881
|
+
"target": {
|
|
15882
|
+
"kind": "field",
|
|
15883
|
+
"resolver": "field-by-name-or-label",
|
|
15884
|
+
"ambiguityPolicy": "fail",
|
|
15885
|
+
"required": true
|
|
15886
|
+
},
|
|
15887
|
+
"inputSchema": {
|
|
15888
|
+
"type": "object",
|
|
15889
|
+
"required": [
|
|
15890
|
+
"readOnly"
|
|
15891
|
+
],
|
|
15892
|
+
"properties": {
|
|
15893
|
+
"readOnly": {
|
|
15894
|
+
"type": "boolean"
|
|
15895
|
+
}
|
|
15896
|
+
}
|
|
15897
|
+
},
|
|
15898
|
+
"effects": [
|
|
15899
|
+
{
|
|
15900
|
+
"kind": "merge-by-key",
|
|
15901
|
+
"path": "fieldMetadata[]",
|
|
15902
|
+
"key": "name"
|
|
15903
|
+
}
|
|
15904
|
+
],
|
|
15905
|
+
"validators": [
|
|
15906
|
+
"field-exists"
|
|
15907
|
+
],
|
|
15908
|
+
"affectedPaths": [
|
|
15909
|
+
"fieldMetadata[].readOnly"
|
|
15910
|
+
],
|
|
15911
|
+
"submissionImpact": "affects-schema-backed-data",
|
|
15912
|
+
"preconditions": [
|
|
15913
|
+
"config-initialized",
|
|
15914
|
+
"target-exists"
|
|
15915
|
+
]
|
|
15916
|
+
},
|
|
15917
|
+
{
|
|
15918
|
+
"operationId": "field.disabled.set",
|
|
15919
|
+
"title": "Definir campo como desabilitado",
|
|
15920
|
+
"scope": "field",
|
|
15921
|
+
"targetKind": "field",
|
|
15922
|
+
"target": {
|
|
15923
|
+
"kind": "field",
|
|
15924
|
+
"resolver": "field-by-name-or-label",
|
|
15925
|
+
"ambiguityPolicy": "fail",
|
|
15926
|
+
"required": true
|
|
15927
|
+
},
|
|
15928
|
+
"inputSchema": {
|
|
15929
|
+
"type": "object",
|
|
15930
|
+
"required": [
|
|
15931
|
+
"disabled"
|
|
15932
|
+
],
|
|
15933
|
+
"properties": {
|
|
15934
|
+
"disabled": {
|
|
15935
|
+
"type": "boolean"
|
|
15936
|
+
}
|
|
15937
|
+
}
|
|
15938
|
+
},
|
|
15939
|
+
"effects": [
|
|
15940
|
+
{
|
|
15941
|
+
"kind": "merge-by-key",
|
|
15942
|
+
"path": "fieldMetadata[]",
|
|
15943
|
+
"key": "name"
|
|
15944
|
+
}
|
|
15945
|
+
],
|
|
15946
|
+
"validators": [
|
|
15947
|
+
"field-exists"
|
|
15948
|
+
],
|
|
15949
|
+
"affectedPaths": [
|
|
15950
|
+
"fieldMetadata[].disabled"
|
|
15951
|
+
],
|
|
15952
|
+
"submissionImpact": "affects-schema-backed-data",
|
|
15953
|
+
"preconditions": [
|
|
15954
|
+
"config-initialized",
|
|
15955
|
+
"target-exists"
|
|
15956
|
+
]
|
|
15957
|
+
},
|
|
15958
|
+
{
|
|
15959
|
+
"operationId": "field.hidden.set",
|
|
15960
|
+
"title": "Definir visibilidade inicial",
|
|
15961
|
+
"scope": "field",
|
|
15962
|
+
"targetKind": "field",
|
|
15963
|
+
"target": {
|
|
15964
|
+
"kind": "field",
|
|
15965
|
+
"resolver": "field-by-name-or-label",
|
|
15966
|
+
"ambiguityPolicy": "fail",
|
|
15967
|
+
"required": true
|
|
15968
|
+
},
|
|
15969
|
+
"inputSchema": {
|
|
15970
|
+
"type": "object",
|
|
15971
|
+
"required": [
|
|
15972
|
+
"hidden"
|
|
15973
|
+
],
|
|
15974
|
+
"properties": {
|
|
15975
|
+
"hidden": {
|
|
15976
|
+
"type": "boolean"
|
|
15977
|
+
}
|
|
15978
|
+
}
|
|
15979
|
+
},
|
|
15980
|
+
"effects": [
|
|
15981
|
+
{
|
|
15982
|
+
"kind": "merge-by-key",
|
|
15983
|
+
"path": "fieldMetadata[]",
|
|
15984
|
+
"key": "name"
|
|
15985
|
+
}
|
|
15986
|
+
],
|
|
15987
|
+
"validators": [
|
|
15988
|
+
"field-exists"
|
|
15989
|
+
],
|
|
15990
|
+
"affectedPaths": [
|
|
15991
|
+
"fieldMetadata[].hidden"
|
|
15992
|
+
],
|
|
15993
|
+
"submissionImpact": "visual-only",
|
|
15994
|
+
"preconditions": [
|
|
15995
|
+
"config-initialized",
|
|
15996
|
+
"target-exists"
|
|
15997
|
+
]
|
|
15998
|
+
},
|
|
15999
|
+
{
|
|
16000
|
+
"operationId": "field.controlType.set",
|
|
16001
|
+
"title": "Alterar tipo de controle",
|
|
16002
|
+
"scope": "field",
|
|
16003
|
+
"targetKind": "field",
|
|
16004
|
+
"target": {
|
|
16005
|
+
"kind": "field",
|
|
16006
|
+
"resolver": "field-by-name-or-label",
|
|
16007
|
+
"ambiguityPolicy": "fail",
|
|
16008
|
+
"required": true
|
|
16009
|
+
},
|
|
16010
|
+
"inputSchema": {
|
|
16011
|
+
"type": "object",
|
|
16012
|
+
"required": [
|
|
16013
|
+
"controlType"
|
|
16014
|
+
],
|
|
16015
|
+
"properties": {
|
|
16016
|
+
"controlType": {
|
|
16017
|
+
"type": "string"
|
|
16018
|
+
}
|
|
16019
|
+
}
|
|
16020
|
+
},
|
|
16021
|
+
"effects": [
|
|
16022
|
+
{
|
|
16023
|
+
"kind": "merge-by-key",
|
|
16024
|
+
"path": "fieldMetadata[]",
|
|
16025
|
+
"key": "name"
|
|
16026
|
+
}
|
|
16027
|
+
],
|
|
16028
|
+
"destructive": true,
|
|
16029
|
+
"requiresConfirmation": true,
|
|
16030
|
+
"validators": [
|
|
16031
|
+
"field-exists",
|
|
16032
|
+
"control-type-compatible"
|
|
16033
|
+
],
|
|
16034
|
+
"affectedPaths": [
|
|
16035
|
+
"fieldMetadata[].controlType"
|
|
16036
|
+
],
|
|
16037
|
+
"submissionImpact": "affects-schema-backed-data",
|
|
16038
|
+
"preconditions": [
|
|
16039
|
+
"config-initialized",
|
|
16040
|
+
"target-exists"
|
|
16041
|
+
]
|
|
16042
|
+
},
|
|
16043
|
+
{
|
|
16044
|
+
"operationId": "field.optionSource.set",
|
|
16045
|
+
"title": "Definir fonte de opções do campo",
|
|
16046
|
+
"scope": "field",
|
|
16047
|
+
"targetKind": "field",
|
|
16048
|
+
"target": {
|
|
16049
|
+
"kind": "field",
|
|
16050
|
+
"resolver": "field-by-name-or-label",
|
|
16051
|
+
"ambiguityPolicy": "fail",
|
|
16052
|
+
"required": true
|
|
16053
|
+
},
|
|
16054
|
+
"inputSchema": {
|
|
16055
|
+
"type": "object",
|
|
16056
|
+
"required": [
|
|
16057
|
+
"optionSource"
|
|
16058
|
+
],
|
|
16059
|
+
"properties": {
|
|
16060
|
+
"optionSource": {
|
|
16061
|
+
"type": "object",
|
|
16062
|
+
"required": [
|
|
16063
|
+
"key",
|
|
16064
|
+
"type",
|
|
16065
|
+
"resourcePath"
|
|
16066
|
+
],
|
|
16067
|
+
"properties": {
|
|
16068
|
+
"key": {
|
|
16069
|
+
"type": "string"
|
|
16070
|
+
},
|
|
16071
|
+
"type": {
|
|
16072
|
+
"enum": [
|
|
16073
|
+
"RESOURCE_ENTITY",
|
|
16074
|
+
"DISTINCT_DIMENSION",
|
|
16075
|
+
"CATEGORICAL_BUCKET",
|
|
16076
|
+
"LIGHT_LOOKUP",
|
|
16077
|
+
"STATIC_CANONICAL"
|
|
16078
|
+
]
|
|
16079
|
+
},
|
|
16080
|
+
"resourcePath": {
|
|
16081
|
+
"type": "string"
|
|
16082
|
+
},
|
|
16083
|
+
"valuePropertyPath": {
|
|
16084
|
+
"type": "string"
|
|
16085
|
+
},
|
|
16086
|
+
"labelPropertyPath": {
|
|
16087
|
+
"type": "string"
|
|
16088
|
+
},
|
|
16089
|
+
"dependsOn": {
|
|
16090
|
+
"type": "array",
|
|
16091
|
+
"items": {
|
|
16092
|
+
"type": "string"
|
|
16093
|
+
}
|
|
16094
|
+
},
|
|
16095
|
+
"dependencyFilterMap": {
|
|
16096
|
+
"type": "object",
|
|
16097
|
+
"additionalProperties": {
|
|
16098
|
+
"type": "string"
|
|
16099
|
+
}
|
|
16100
|
+
},
|
|
16101
|
+
"includeIds": {
|
|
16102
|
+
"type": "boolean"
|
|
16103
|
+
},
|
|
16104
|
+
"capabilities": {
|
|
16105
|
+
"type": "object",
|
|
16106
|
+
"properties": {
|
|
16107
|
+
"filter": {
|
|
16108
|
+
"type": "boolean"
|
|
16109
|
+
},
|
|
16110
|
+
"byIds": {
|
|
16111
|
+
"type": "boolean"
|
|
16112
|
+
},
|
|
16113
|
+
"detail": {
|
|
16114
|
+
"type": "boolean"
|
|
16115
|
+
},
|
|
16116
|
+
"create": {
|
|
16117
|
+
"type": "boolean"
|
|
16118
|
+
}
|
|
16119
|
+
}
|
|
16120
|
+
},
|
|
16121
|
+
"display": {
|
|
16122
|
+
"type": "object"
|
|
16123
|
+
},
|
|
16124
|
+
"selectionPolicy": {
|
|
16125
|
+
"type": "object"
|
|
16126
|
+
}
|
|
16127
|
+
}
|
|
16128
|
+
}
|
|
16129
|
+
}
|
|
16130
|
+
},
|
|
16131
|
+
"effects": [
|
|
16132
|
+
{
|
|
16133
|
+
"kind": "merge-by-key",
|
|
16134
|
+
"path": "fieldMetadata[]",
|
|
16135
|
+
"key": "name"
|
|
16136
|
+
}
|
|
16137
|
+
],
|
|
16138
|
+
"validators": [
|
|
16139
|
+
"field-exists",
|
|
16140
|
+
"option-source-valid"
|
|
16141
|
+
],
|
|
16142
|
+
"affectedPaths": [
|
|
16143
|
+
"fieldMetadata[].optionSource"
|
|
16144
|
+
],
|
|
16145
|
+
"submissionImpact": "affects-remote-binding",
|
|
16146
|
+
"preconditions": [
|
|
16147
|
+
"config-initialized",
|
|
16148
|
+
"target-exists"
|
|
16149
|
+
]
|
|
16150
|
+
},
|
|
16151
|
+
{
|
|
16152
|
+
"operationId": "field.local.add",
|
|
16153
|
+
"title": "Adicionar campo local",
|
|
16154
|
+
"scope": "global",
|
|
16155
|
+
"targetKind": "localField",
|
|
16156
|
+
"target": {
|
|
16157
|
+
"kind": "localField",
|
|
16158
|
+
"resolver": "field-by-name",
|
|
16159
|
+
"ambiguityPolicy": "fail",
|
|
16160
|
+
"required": false
|
|
16161
|
+
},
|
|
16162
|
+
"inputSchema": {
|
|
16163
|
+
"type": "object",
|
|
16164
|
+
"required": [
|
|
16165
|
+
"name",
|
|
16166
|
+
"label",
|
|
16167
|
+
"controlType",
|
|
16168
|
+
"source"
|
|
16169
|
+
],
|
|
16170
|
+
"properties": {
|
|
16171
|
+
"name": {
|
|
16172
|
+
"type": "string"
|
|
16173
|
+
},
|
|
16174
|
+
"label": {
|
|
16175
|
+
"type": "string"
|
|
16176
|
+
},
|
|
16177
|
+
"controlType": {
|
|
16178
|
+
"type": "string"
|
|
16179
|
+
},
|
|
16180
|
+
"source": {
|
|
16181
|
+
"const": "local",
|
|
16182
|
+
"description": "Obrigatório. Discriminador que distingue campos locais de schema-backed."
|
|
16183
|
+
},
|
|
16184
|
+
"transient": {
|
|
16185
|
+
"type": "boolean",
|
|
16186
|
+
"default": false,
|
|
16187
|
+
"description": "Se true, o valor não persiste entre navegações."
|
|
16188
|
+
},
|
|
16189
|
+
"submitPolicy": {
|
|
16190
|
+
"enum": [
|
|
16191
|
+
"omit",
|
|
16192
|
+
"include",
|
|
16193
|
+
"includeWhenDirty"
|
|
16194
|
+
],
|
|
16195
|
+
"default": "omit"
|
|
16196
|
+
}
|
|
16197
|
+
}
|
|
16198
|
+
},
|
|
16199
|
+
"effects": [
|
|
16200
|
+
{
|
|
16201
|
+
"kind": "append-unique",
|
|
16202
|
+
"path": "fieldMetadata[]",
|
|
16203
|
+
"key": "name"
|
|
16204
|
+
}
|
|
16205
|
+
],
|
|
16206
|
+
"validators": [
|
|
16207
|
+
"field-name-unique",
|
|
16208
|
+
"local-schema-name-no-collision"
|
|
16209
|
+
],
|
|
16210
|
+
"affectedPaths": [
|
|
16211
|
+
"fieldMetadata[]"
|
|
16212
|
+
],
|
|
16213
|
+
"submissionImpact": "affects-submission",
|
|
16214
|
+
"preconditions": [
|
|
16215
|
+
"config-initialized"
|
|
16216
|
+
]
|
|
16217
|
+
},
|
|
16218
|
+
{
|
|
16219
|
+
"operationId": "field.local.remove",
|
|
16220
|
+
"title": "Remover campo local",
|
|
16221
|
+
"scope": "field",
|
|
16222
|
+
"targetKind": "localField",
|
|
16223
|
+
"target": {
|
|
16224
|
+
"kind": "localField",
|
|
16225
|
+
"resolver": "field-by-name",
|
|
16226
|
+
"ambiguityPolicy": "fail",
|
|
16227
|
+
"required": true
|
|
16228
|
+
},
|
|
16229
|
+
"inputSchema": {
|
|
16230
|
+
"type": "object",
|
|
16231
|
+
"properties": {}
|
|
16232
|
+
},
|
|
16233
|
+
"effects": [
|
|
16234
|
+
{
|
|
16235
|
+
"kind": "remove-by-key",
|
|
16236
|
+
"path": "fieldMetadata[]",
|
|
16237
|
+
"key": "name"
|
|
16238
|
+
},
|
|
16239
|
+
{
|
|
16240
|
+
"kind": "compile-domain-patch",
|
|
16241
|
+
"handler": "form-layout-field-cleanup",
|
|
16242
|
+
"handlerContract": {
|
|
16243
|
+
"reads": [
|
|
16244
|
+
"fieldMetadata[].name",
|
|
16245
|
+
"sections[].rows[].columns[].items",
|
|
16246
|
+
"sections[].rows[].columns[].fields"
|
|
16247
|
+
],
|
|
16248
|
+
"writes": [
|
|
16249
|
+
"sections[].rows[].columns[].items",
|
|
16250
|
+
"sections[].rows[].columns[].fields"
|
|
16251
|
+
],
|
|
16252
|
+
"identityKeys": [
|
|
16253
|
+
"fieldMetadata[].name",
|
|
16254
|
+
"sections[].id",
|
|
16255
|
+
"sections[].rows[].id",
|
|
16256
|
+
"sections[].rows[].columns[].id"
|
|
16257
|
+
],
|
|
16258
|
+
"inputSchema": {
|
|
16259
|
+
"type": "object",
|
|
16260
|
+
"required": [
|
|
16261
|
+
"target.name"
|
|
16262
|
+
],
|
|
16263
|
+
"properties": {
|
|
16264
|
+
"target.name": {
|
|
16265
|
+
"type": "string"
|
|
16266
|
+
}
|
|
16267
|
+
}
|
|
16268
|
+
},
|
|
16269
|
+
"failureModes": [
|
|
16270
|
+
"target-field-not-found",
|
|
16271
|
+
"target-field-not-local",
|
|
16272
|
+
"layout-reference-conflict"
|
|
16273
|
+
],
|
|
16274
|
+
"description": "Remove every layout placement that references the removed local field by fieldMetadata[].name."
|
|
16275
|
+
}
|
|
16276
|
+
}
|
|
16277
|
+
],
|
|
16278
|
+
"destructive": true,
|
|
16279
|
+
"requiresConfirmation": true,
|
|
16280
|
+
"validators": [
|
|
16281
|
+
"field-exists",
|
|
16282
|
+
"field-is-local"
|
|
16283
|
+
],
|
|
16284
|
+
"affectedPaths": [
|
|
16285
|
+
"fieldMetadata[]",
|
|
16286
|
+
"sections[].rows[].columns[].items",
|
|
16287
|
+
"sections[].rows[].columns[].fields"
|
|
16288
|
+
],
|
|
16289
|
+
"submissionImpact": "affects-submission",
|
|
16290
|
+
"preconditions": [
|
|
16291
|
+
"config-initialized",
|
|
16292
|
+
"target-exists"
|
|
16293
|
+
]
|
|
16294
|
+
},
|
|
16295
|
+
{
|
|
16296
|
+
"operationId": "layout.section.add",
|
|
16297
|
+
"title": "Adicionar nova seção",
|
|
16298
|
+
"scope": "global",
|
|
16299
|
+
"targetKind": "section",
|
|
16300
|
+
"target": {
|
|
16301
|
+
"kind": "section",
|
|
16302
|
+
"resolver": "section-by-id-or-title",
|
|
16303
|
+
"ambiguityPolicy": "fail",
|
|
16304
|
+
"required": false
|
|
16305
|
+
},
|
|
16306
|
+
"inputSchema": {
|
|
16307
|
+
"type": "object",
|
|
16308
|
+
"required": [
|
|
16309
|
+
"id",
|
|
16310
|
+
"title"
|
|
16311
|
+
],
|
|
16312
|
+
"properties": {
|
|
16313
|
+
"id": {
|
|
16314
|
+
"type": "string"
|
|
16315
|
+
},
|
|
16316
|
+
"title": {
|
|
16317
|
+
"type": "string"
|
|
16318
|
+
},
|
|
16319
|
+
"icon": {
|
|
16320
|
+
"type": "string"
|
|
16321
|
+
},
|
|
16322
|
+
"collapsible": {
|
|
16323
|
+
"type": "boolean"
|
|
16324
|
+
}
|
|
16325
|
+
}
|
|
16326
|
+
},
|
|
16327
|
+
"effects": [
|
|
16328
|
+
{
|
|
16329
|
+
"kind": "append-unique",
|
|
16330
|
+
"path": "sections[]",
|
|
16331
|
+
"key": "id"
|
|
16332
|
+
}
|
|
16333
|
+
],
|
|
16334
|
+
"validators": [
|
|
16335
|
+
"section-id-unique"
|
|
16336
|
+
],
|
|
16337
|
+
"affectedPaths": [
|
|
16338
|
+
"sections[]"
|
|
16339
|
+
],
|
|
16340
|
+
"submissionImpact": "visual-only",
|
|
16341
|
+
"preconditions": [
|
|
16342
|
+
"config-initialized"
|
|
16343
|
+
]
|
|
16344
|
+
},
|
|
16345
|
+
{
|
|
16346
|
+
"operationId": "layout.section.remove",
|
|
16347
|
+
"title": "Remover seção",
|
|
16348
|
+
"scope": "section",
|
|
16349
|
+
"targetKind": "section",
|
|
16350
|
+
"target": {
|
|
16351
|
+
"kind": "section",
|
|
16352
|
+
"resolver": "section-by-id-or-title",
|
|
16353
|
+
"ambiguityPolicy": "fail",
|
|
16354
|
+
"required": true
|
|
16355
|
+
},
|
|
16356
|
+
"inputSchema": {
|
|
16357
|
+
"type": "object",
|
|
16358
|
+
"properties": {}
|
|
16359
|
+
},
|
|
16360
|
+
"effects": [
|
|
16361
|
+
{
|
|
16362
|
+
"kind": "remove-by-key",
|
|
16363
|
+
"path": "sections[]",
|
|
16364
|
+
"key": "id"
|
|
16365
|
+
},
|
|
16366
|
+
{
|
|
16367
|
+
"kind": "compile-domain-patch",
|
|
16368
|
+
"handler": "form-layout-section-cleanup",
|
|
16369
|
+
"handlerContract": {
|
|
16370
|
+
"reads": [
|
|
16371
|
+
"sections[].id",
|
|
16372
|
+
"sections[].rows[].id",
|
|
16373
|
+
"sections[].rows[].columns[].id",
|
|
16374
|
+
"sections[].rows[].columns[].items",
|
|
16375
|
+
"sections[].rows[].columns[].fields"
|
|
16376
|
+
],
|
|
16377
|
+
"writes": [
|
|
16378
|
+
"sections[]"
|
|
16379
|
+
],
|
|
16380
|
+
"identityKeys": [
|
|
16381
|
+
"sections[].id"
|
|
16382
|
+
],
|
|
16383
|
+
"inputSchema": {
|
|
16384
|
+
"type": "object",
|
|
16385
|
+
"required": [
|
|
16386
|
+
"target.id"
|
|
16387
|
+
],
|
|
16388
|
+
"properties": {
|
|
16389
|
+
"target.id": {
|
|
16390
|
+
"type": "string"
|
|
16391
|
+
}
|
|
16392
|
+
}
|
|
16393
|
+
},
|
|
16394
|
+
"failureModes": [
|
|
16395
|
+
"target-section-not-found",
|
|
16396
|
+
"ambiguous-section-target"
|
|
16397
|
+
],
|
|
16398
|
+
"description": "Removes the target section and its nested rows, columns, and field placements without deleting fieldMetadata records."
|
|
16399
|
+
}
|
|
16400
|
+
}
|
|
16401
|
+
],
|
|
16402
|
+
"destructive": true,
|
|
16403
|
+
"requiresConfirmation": true,
|
|
16404
|
+
"validators": [
|
|
16405
|
+
"section-exists"
|
|
16406
|
+
],
|
|
16407
|
+
"affectedPaths": [
|
|
16408
|
+
"sections[]",
|
|
16409
|
+
"sections[].rows[]",
|
|
16410
|
+
"sections[].rows[].columns[]",
|
|
16411
|
+
"sections[].rows[].columns[].items",
|
|
16412
|
+
"sections[].rows[].columns[].fields"
|
|
16413
|
+
],
|
|
16414
|
+
"submissionImpact": "visual-only",
|
|
16415
|
+
"preconditions": [
|
|
16416
|
+
"config-initialized",
|
|
16417
|
+
"target-exists"
|
|
16418
|
+
]
|
|
16419
|
+
},
|
|
16420
|
+
{
|
|
16421
|
+
"operationId": "layout.row.add",
|
|
16422
|
+
"title": "Adicionar linha numa seção",
|
|
16423
|
+
"scope": "section",
|
|
16424
|
+
"targetKind": "section",
|
|
16425
|
+
"target": {
|
|
16426
|
+
"kind": "section",
|
|
16427
|
+
"resolver": "section-by-id-or-title",
|
|
16428
|
+
"ambiguityPolicy": "fail",
|
|
16429
|
+
"required": true
|
|
16430
|
+
},
|
|
16431
|
+
"inputSchema": {
|
|
16432
|
+
"type": "object",
|
|
16433
|
+
"required": [
|
|
16434
|
+
"id"
|
|
16435
|
+
],
|
|
16436
|
+
"properties": {
|
|
16437
|
+
"id": {
|
|
16438
|
+
"type": "string"
|
|
16439
|
+
},
|
|
16440
|
+
"columns": {
|
|
16441
|
+
"type": "number",
|
|
16442
|
+
"minimum": 1,
|
|
16443
|
+
"maximum": 12,
|
|
16444
|
+
"default": 1
|
|
16445
|
+
}
|
|
16446
|
+
}
|
|
16447
|
+
},
|
|
16448
|
+
"effects": [
|
|
16449
|
+
{
|
|
16450
|
+
"kind": "append-unique",
|
|
16451
|
+
"path": "sections[].rows[]",
|
|
16452
|
+
"key": "id"
|
|
16453
|
+
}
|
|
16454
|
+
],
|
|
16455
|
+
"validators": [
|
|
16456
|
+
"section-exists",
|
|
16457
|
+
"row-id-unique-in-section"
|
|
16458
|
+
],
|
|
16459
|
+
"affectedPaths": [
|
|
16460
|
+
"sections[].rows[]"
|
|
16461
|
+
],
|
|
16462
|
+
"submissionImpact": "visual-only",
|
|
16463
|
+
"preconditions": [
|
|
16464
|
+
"config-initialized",
|
|
16465
|
+
"target-exists"
|
|
16466
|
+
]
|
|
16467
|
+
},
|
|
16468
|
+
{
|
|
16469
|
+
"operationId": "layout.column.add",
|
|
16470
|
+
"title": "Adicionar coluna numa linha",
|
|
16471
|
+
"scope": "row",
|
|
16472
|
+
"targetKind": "row",
|
|
16473
|
+
"target": {
|
|
16474
|
+
"kind": "row",
|
|
16475
|
+
"resolver": "row-by-id-in-section",
|
|
16476
|
+
"ambiguityPolicy": "fail",
|
|
16477
|
+
"required": true
|
|
16478
|
+
},
|
|
16479
|
+
"inputSchema": {
|
|
16480
|
+
"type": "object",
|
|
16481
|
+
"required": [
|
|
16482
|
+
"id"
|
|
16483
|
+
],
|
|
16484
|
+
"properties": {
|
|
16485
|
+
"id": {
|
|
16486
|
+
"type": "string"
|
|
16487
|
+
},
|
|
16488
|
+
"span": {
|
|
16489
|
+
"type": "number",
|
|
16490
|
+
"minimum": 1,
|
|
16491
|
+
"maximum": 12,
|
|
16492
|
+
"default": 6
|
|
16493
|
+
}
|
|
16494
|
+
}
|
|
16495
|
+
},
|
|
16496
|
+
"effects": [
|
|
16497
|
+
{
|
|
16498
|
+
"kind": "append-unique",
|
|
16499
|
+
"path": "sections[].rows[].columns[]",
|
|
16500
|
+
"key": "id"
|
|
16501
|
+
}
|
|
16502
|
+
],
|
|
16503
|
+
"validators": [
|
|
16504
|
+
"row-exists",
|
|
16505
|
+
"column-id-unique-in-row"
|
|
16506
|
+
],
|
|
16507
|
+
"affectedPaths": [
|
|
16508
|
+
"sections[].rows[].columns[]"
|
|
16509
|
+
],
|
|
16510
|
+
"submissionImpact": "visual-only",
|
|
16511
|
+
"preconditions": [
|
|
16512
|
+
"config-initialized",
|
|
16513
|
+
"target-exists"
|
|
16514
|
+
]
|
|
16515
|
+
},
|
|
16516
|
+
{
|
|
16517
|
+
"operationId": "layout.field.move",
|
|
16518
|
+
"title": "Mover campo no layout",
|
|
16519
|
+
"scope": "field",
|
|
16520
|
+
"targetKind": "field",
|
|
16521
|
+
"target": {
|
|
16522
|
+
"kind": "field",
|
|
16523
|
+
"resolver": "field-by-name-or-label",
|
|
16524
|
+
"ambiguityPolicy": "fail",
|
|
16525
|
+
"required": true
|
|
16526
|
+
},
|
|
16527
|
+
"inputSchema": {
|
|
16528
|
+
"type": "object",
|
|
16529
|
+
"required": [
|
|
16530
|
+
"targetSectionId",
|
|
16531
|
+
"targetRowId",
|
|
16532
|
+
"targetColumnId"
|
|
16533
|
+
],
|
|
16534
|
+
"properties": {
|
|
16535
|
+
"targetSectionId": {
|
|
16536
|
+
"type": "string"
|
|
16537
|
+
},
|
|
16538
|
+
"targetRowId": {
|
|
16539
|
+
"type": "string"
|
|
16540
|
+
},
|
|
16541
|
+
"targetColumnId": {
|
|
16542
|
+
"type": "string"
|
|
16543
|
+
},
|
|
16544
|
+
"index": {
|
|
16545
|
+
"type": "number"
|
|
16546
|
+
}
|
|
16547
|
+
}
|
|
16548
|
+
},
|
|
16549
|
+
"effects": [
|
|
16550
|
+
{
|
|
16551
|
+
"kind": "compile-domain-patch",
|
|
16552
|
+
"handler": "form-layout-reconciler",
|
|
16553
|
+
"handlerContract": {
|
|
16554
|
+
"reads": [
|
|
16555
|
+
"fieldMetadata[].name",
|
|
16556
|
+
"sections[].id",
|
|
16557
|
+
"sections[].rows[].id",
|
|
16558
|
+
"sections[].rows[].columns[].id",
|
|
16559
|
+
"sections[].rows[].columns[].items",
|
|
16560
|
+
"sections[].rows[].columns[].fields"
|
|
16561
|
+
],
|
|
16562
|
+
"writes": [
|
|
16563
|
+
"sections[].rows[].columns[].items",
|
|
16564
|
+
"sections[].rows[].columns[].fields"
|
|
16565
|
+
],
|
|
16566
|
+
"identityKeys": [
|
|
16567
|
+
"fieldMetadata[].name",
|
|
16568
|
+
"sections[].id",
|
|
16569
|
+
"sections[].rows[].id",
|
|
16570
|
+
"sections[].rows[].columns[].id"
|
|
16571
|
+
],
|
|
16572
|
+
"inputSchema": {
|
|
16573
|
+
"type": "object",
|
|
16574
|
+
"required": [
|
|
16575
|
+
"target.name",
|
|
16576
|
+
"targetSectionId",
|
|
16577
|
+
"targetRowId",
|
|
16578
|
+
"targetColumnId"
|
|
16579
|
+
],
|
|
16580
|
+
"properties": {
|
|
16581
|
+
"target.name": {
|
|
16582
|
+
"type": "string"
|
|
16583
|
+
},
|
|
16584
|
+
"targetSectionId": {
|
|
16585
|
+
"type": "string"
|
|
16586
|
+
},
|
|
16587
|
+
"targetRowId": {
|
|
16588
|
+
"type": "string"
|
|
16589
|
+
},
|
|
16590
|
+
"targetColumnId": {
|
|
16591
|
+
"type": "string"
|
|
16592
|
+
},
|
|
16593
|
+
"index": {
|
|
16594
|
+
"type": "number"
|
|
16595
|
+
}
|
|
16596
|
+
}
|
|
16597
|
+
},
|
|
16598
|
+
"failureModes": [
|
|
16599
|
+
"target-field-not-found",
|
|
16600
|
+
"target-layout-location-not-found",
|
|
16601
|
+
"ambiguous-field-target",
|
|
16602
|
+
"duplicate-field-placement"
|
|
16603
|
+
],
|
|
16604
|
+
"description": "Moves a field placement by stable section, row, column, and field ids; index is insertion position only."
|
|
16605
|
+
}
|
|
16606
|
+
}
|
|
16607
|
+
],
|
|
16608
|
+
"validators": [
|
|
16609
|
+
"field-exists",
|
|
16610
|
+
"layout-target-exists",
|
|
16611
|
+
"no-index-as-identity",
|
|
16612
|
+
"field-exists-in-layout"
|
|
16613
|
+
],
|
|
16614
|
+
"affectedPaths": [
|
|
16615
|
+
"sections[].rows[].columns[].items",
|
|
16616
|
+
"sections[].rows[].columns[].fields"
|
|
16617
|
+
],
|
|
16618
|
+
"submissionImpact": "visual-only",
|
|
16619
|
+
"preconditions": [
|
|
16620
|
+
"config-initialized",
|
|
16621
|
+
"target-exists"
|
|
16622
|
+
]
|
|
16623
|
+
}
|
|
16624
|
+
],
|
|
16625
|
+
"validators": [
|
|
16626
|
+
{
|
|
16627
|
+
"validatorId": "field-exists",
|
|
16628
|
+
"level": "error",
|
|
16629
|
+
"code": "DF001",
|
|
16630
|
+
"description": "O campo alvo deve existir em fieldMetadata."
|
|
16631
|
+
},
|
|
16632
|
+
{
|
|
16633
|
+
"validatorId": "control-type-compatible",
|
|
16634
|
+
"level": "error",
|
|
16635
|
+
"code": "DF017",
|
|
16636
|
+
"description": "O tipo de controle deve ser compatível com o tipo de dado do campo."
|
|
16637
|
+
},
|
|
16638
|
+
{
|
|
16639
|
+
"validatorId": "option-source-valid",
|
|
16640
|
+
"level": "error",
|
|
16641
|
+
"code": "DF018",
|
|
16642
|
+
"description": "A fonte de opções deve ser válida para o tipo de controle especificado."
|
|
16643
|
+
},
|
|
16644
|
+
{
|
|
16645
|
+
"validatorId": "field-name-unique",
|
|
16646
|
+
"level": "error",
|
|
16647
|
+
"code": "DF002",
|
|
16648
|
+
"description": "Nomes de campos devem ser únicos em fieldMetadata."
|
|
16649
|
+
},
|
|
16650
|
+
{
|
|
16651
|
+
"validatorId": "local-schema-name-no-collision",
|
|
16652
|
+
"level": "error",
|
|
16653
|
+
"code": "DF006",
|
|
16654
|
+
"description": "Nome de campo local não pode colidir com campo schema-backed existente."
|
|
16655
|
+
},
|
|
16656
|
+
{
|
|
16657
|
+
"validatorId": "field-is-local",
|
|
16658
|
+
"level": "error",
|
|
16659
|
+
"code": "DF007",
|
|
16660
|
+
"description": "Operação restrita a campos locais (source:\"local\"). Campo schema-backed não pode ser removido ou ter submitPolicy alterada."
|
|
16661
|
+
},
|
|
16662
|
+
{
|
|
16663
|
+
"validatorId": "section-id-unique",
|
|
16664
|
+
"level": "error",
|
|
16665
|
+
"code": "DF003",
|
|
16666
|
+
"description": "IDs de seções devem ser únicos em sections[]."
|
|
16667
|
+
},
|
|
16668
|
+
{
|
|
16669
|
+
"validatorId": "section-exists",
|
|
16670
|
+
"level": "error",
|
|
16671
|
+
"code": "DF004",
|
|
16672
|
+
"description": "A seção alvo deve existir em sections[]."
|
|
16673
|
+
},
|
|
16674
|
+
{
|
|
16675
|
+
"validatorId": "row-id-unique-in-section",
|
|
16676
|
+
"level": "error",
|
|
16677
|
+
"code": "DF015",
|
|
16678
|
+
"description": "O id da nova linha deve ser único dentro da seção alvo."
|
|
16679
|
+
},
|
|
16680
|
+
{
|
|
16681
|
+
"validatorId": "row-exists",
|
|
16682
|
+
"level": "error",
|
|
16683
|
+
"code": "DF014",
|
|
16684
|
+
"description": "A linha alvo deve existir na seção especificada."
|
|
16685
|
+
},
|
|
16686
|
+
{
|
|
16687
|
+
"validatorId": "column-id-unique-in-row",
|
|
16688
|
+
"level": "error",
|
|
16689
|
+
"code": "DF016",
|
|
16690
|
+
"description": "O id da nova coluna deve ser único dentro da linha alvo."
|
|
16691
|
+
},
|
|
16692
|
+
{
|
|
16693
|
+
"validatorId": "layout-target-exists",
|
|
16694
|
+
"level": "error",
|
|
16695
|
+
"code": "DF012",
|
|
16696
|
+
"description": "A seção/linha/coluna de destino devem existir antes de mover o campo."
|
|
16697
|
+
},
|
|
16698
|
+
{
|
|
16699
|
+
"validatorId": "no-index-as-identity",
|
|
16700
|
+
"level": "error",
|
|
16701
|
+
"code": "DF013",
|
|
16702
|
+
"description": "Operações de layout não devem usar índice de array como identidade canônica; use IDs estáveis."
|
|
16703
|
+
},
|
|
16704
|
+
{
|
|
16705
|
+
"validatorId": "field-exists-in-layout",
|
|
16706
|
+
"level": "warning",
|
|
16707
|
+
"code": "DF005",
|
|
16708
|
+
"description": "Campo definido em fieldMetadata mas ausente no layout."
|
|
16709
|
+
}
|
|
16710
|
+
],
|
|
16711
|
+
"roundTripRequirements": [
|
|
16712
|
+
"strip-undefined",
|
|
16713
|
+
"stable-field-order",
|
|
16714
|
+
"preserve-local-field-source",
|
|
16715
|
+
"preserve-section-row-column-ids"
|
|
16716
|
+
],
|
|
16717
|
+
"examples": [
|
|
16718
|
+
{
|
|
16719
|
+
"id": "add-local-transient-field",
|
|
16720
|
+
"request": "Adicionar campo auxiliar local \"notasInternas\" que não deve aparecer no payload de envio",
|
|
16721
|
+
"operationId": "field.local.add",
|
|
16722
|
+
"params": {
|
|
16723
|
+
"name": "notasInternas",
|
|
16724
|
+
"label": "Notas Internas",
|
|
16725
|
+
"controlType": "textarea",
|
|
16726
|
+
"source": "local",
|
|
16727
|
+
"transient": true,
|
|
16728
|
+
"submitPolicy": "omit"
|
|
16729
|
+
},
|
|
16730
|
+
"isPositive": true
|
|
16731
|
+
},
|
|
16732
|
+
{
|
|
16733
|
+
"id": "relabel-schema-backed-field",
|
|
16734
|
+
"request": "Mudar o label do campo email para \"E-mail Corporativo\"",
|
|
16735
|
+
"operationId": "field.label.set",
|
|
16736
|
+
"target": "email",
|
|
16737
|
+
"params": {
|
|
16738
|
+
"label": "E-mail Corporativo"
|
|
16739
|
+
},
|
|
16740
|
+
"isPositive": true
|
|
16741
|
+
},
|
|
16742
|
+
{
|
|
16743
|
+
"id": "move-field-to-column",
|
|
16744
|
+
"request": "Mover campo telefone para a primeira coluna da seção de contato",
|
|
16745
|
+
"operationId": "layout.field.move",
|
|
16746
|
+
"target": "telefone",
|
|
16747
|
+
"params": {
|
|
16748
|
+
"targetSectionId": "secao-contato",
|
|
16749
|
+
"targetRowId": "row-1",
|
|
16750
|
+
"targetColumnId": "col-1"
|
|
16751
|
+
},
|
|
16752
|
+
"isPositive": true
|
|
16753
|
+
},
|
|
16754
|
+
{
|
|
16755
|
+
"id": "reject-unknown-field",
|
|
16756
|
+
"request": "Alterar o label do campo \"campoInexistente\"",
|
|
16757
|
+
"operationId": "field.label.set",
|
|
16758
|
+
"target": "campoInexistente",
|
|
16759
|
+
"params": {
|
|
16760
|
+
"label": "Novo Label"
|
|
16761
|
+
},
|
|
16762
|
+
"isPositive": false
|
|
16763
|
+
},
|
|
16764
|
+
{
|
|
16765
|
+
"id": "require-confirmation-remove-field",
|
|
16766
|
+
"request": "Remover o campo auxiliar \"notasInternas\"",
|
|
16767
|
+
"operationId": "field.local.remove",
|
|
16768
|
+
"target": "notasInternas",
|
|
16769
|
+
"isPositive": true
|
|
16770
|
+
},
|
|
16771
|
+
{
|
|
16772
|
+
"id": "require-confirmation-remove-section",
|
|
16773
|
+
"request": "Remover a seção \"Dados Adicionais\"",
|
|
16774
|
+
"operationId": "layout.section.remove",
|
|
16775
|
+
"target": "secao-dados-adicionais",
|
|
16776
|
+
"isPositive": true
|
|
16777
|
+
},
|
|
16778
|
+
{
|
|
16779
|
+
"id": "round-trip-no-drift",
|
|
16780
|
+
"request": "Salvar e reabrir o formulário editado sem drift de configuração",
|
|
16781
|
+
"operationId": "field.label.set",
|
|
16782
|
+
"target": "nome",
|
|
16783
|
+
"params": {
|
|
16784
|
+
"label": "Nome Completo"
|
|
16785
|
+
},
|
|
16786
|
+
"isPositive": true
|
|
16787
|
+
}
|
|
16788
|
+
]
|
|
16789
|
+
},
|
|
16790
|
+
"chunks": [
|
|
16791
|
+
{
|
|
16792
|
+
"chunkIndex": 0,
|
|
16793
|
+
"chunkKind": "summary",
|
|
16794
|
+
"content": "Component ID: praxis-filter-form\nSelector: praxis-filter-form\nFriendly Name: Praxis Filter Form\nDescription: Filter form driven by FormConfig and fieldMetadata.\nCategory: form\nLib/Package: @praxisui/dynamic-form\nTags: widget, form, filter, configurable\nInputs:\n - config (FormConfig)\n - formId (string)\n - resourcePath (string)\n - mode (string)\nOutputs:\n - formReady ({ formGroup: FormGroup<Record<string, unknown>> })\n - valueChange ({ formData: Record<string, unknown> })\n - submit ({ formData: Record<string, unknown> })\n - validityChange (boolean)\n",
|
|
16795
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/filter-form/praxis-filter-form.metadata.ts",
|
|
16796
|
+
"contentHash": "a4b5375a63cfd32a3ec2cea1a357b5d0333d644b6fd91ea24ff02430dc1d994e",
|
|
16797
|
+
"sourceKind": "component_definition",
|
|
16798
|
+
"sourceId": "praxis-filter-form",
|
|
16799
|
+
"corpusVersion": "1.0.0"
|
|
16800
|
+
},
|
|
16801
|
+
{
|
|
16802
|
+
"chunkIndex": 1,
|
|
16803
|
+
"chunkKind": "capabilities",
|
|
16804
|
+
"content": "Schema Capability:\n - Path: metadata.version\n Category: metadata\n Kind: string\n Description: Versão da configuração do formulário para controle de migração.\n\nSchema Capability:\n - Path: metadata.source\n Category: metadata\n Kind: enum\n Description: Origem da configuração do formulário.\n\nSchema Capability:\n - Path: metadata.lastUpdated\n Category: metadata\n Kind: string\n Description: Timestamp da última atualização da configuração (ISO-8601).\n\nSchema Capability:\n - Path: metadata.schemaId\n Category: metadata\n Kind: string\n Description: ID do schema de origem para reconciliação no servidor.\n\nSchema Capability:\n - Path: metadata.schemaContext\n Category: metadata\n Kind: object\n Description: Contexto do schema usado para compor o formulário.\n\nSchema Capability:\n - Path: metadata.schemaContext.path\n Category: metadata\n Kind: string\n Description: Path do schema de origem.\n\nSchema Capability:\n - Path: metadata.schemaContext.operation\n Category: metadata\n Kind: string\n Description: Operação do schema (ex.: \"get\", \"post\").\n\nSchema Capability:\n - Path: metadata.schemaContext.schemaType\n Category: metadata\n Kind: enum\n Description: Tipo do schema (response/request).\n\nSchema Capability:\n - Path: metadata.schemaContext.internal\n Category: metadata\n Kind: boolean\n Description: Indica se o schema é interno.\n\nSchema Capability:\n - Path: metadata.schemaContext.tenant\n Category: metadata\n Kind: string\n Description: Tenant do schema (se aplicável).\n\nSchema Capability:\n - Path: metadata.schemaContext.locale\n Category: metadata\n Kind: string\n Description: Locale do schema (se aplicável).\n\nSchema Capability:\n - Path: metadata.serverHash\n Category: metadata\n Kind: string\n Description: Hash dos dados do servidor para detecção de mudanças.\n\nSchema Capability:\n - Path: metadata.customizations\n Category: metadata\n Kind: array\n Description: Log de customizações manuais aplicadas ao formulário.\n\nSchema Capability:\n - Path: fieldMetadata\n Category: fields\n Kind: array\n Description: Array de metadados dos campos. Usado para referenciar a configuração de campos.\n\nSchema Capability:\n - Path: fieldMetadata[]\n Category: fields\n Kind: object\n Description: Item de metadados do campo (FieldMetadata).\n\nSchema Capability:\n - Path: helpPresentation\n Category: appearance\n Kind: object\n Description: Politica visual do formulario para exibir hint/helpText dos campos sem alterar a semantica publicada pelos DTOs.\n\nSchema Capability:\n - Path: helpPresentation.display\n Category: appearance\n Kind: enum\n Description: Define se a ajuda semantica dos campos fica inline, em icone de ajuda, automatica por densidade, ou oculta visualmente.\n\nSchema Capability:\n - Path: helpPresentation.inlineMaxLength\n Category: appearance\n Kind: number\n Description: Tamanho maximo para manter ajuda inline quando display=\"auto\".\n\nSchema Capability:\n - Path: helpPresentation.preferPopoverForControls\n Category: appearance\n Kind: array\n Description: Tipos de controle que devem preferir icone de ajuda quando display=\"auto\", como toggle, checkbox ou select.\n\nSchema Capability:\n - Path: editorialContext\n Category: editorial\n Kind: object\n Description: Contexto editorial compartilhado entre os blocos hospedados antes/depois do formulario.\n\nSchema Capability:\n - Path: editorialContext.[token]\n Category: editorial\n Kind: string\n Description: Valor simples exposto no contexto editorial.\n\nSchema Capability:\n - Path: formBlocksBefore\n Category: editorial\n Kind: object\n Description: RichContentDocument renderizado antes do formulario.\n\nSchema Capability:\n - Path: formBlocksBefore.kind\n Category: editorial\n Kind: string\n Description: Kind canonico do documento rich content.\n\nSchema Capability:\n - Path: formBlocksBefore.version\n Category: editorial\n Kind: string\n Description: Versao do documento rich content editorial.\n\nSchema Capability:\n - Path: formBlocksBefore.nodes\n Category: editorial\n Kind: array\n Description: Lista de RichBlockNode renderizados antes do formulario.\n\nSchema Capability:\n - Path: formBlocksBefore.nodes[]\n Category: editorial\n Kind: object\n Description: RichBlockNode editorial hospedado antes do formulario.\n\nSchema Capability:\n - Path: formBlocksBefore.context\n Category: editorial\n Kind: object\n Description: Contexto base opcional do documento rich content hospedado antes do formulario.\n\nSchema Capability:\n - Path: formBlocksBeforeActions\n Category: editorial\n Kind: object\n Description: RichContentDocument renderizado depois das seções e antes da área principal de ações.\n\nSchema Capability:\n - Path: formBlocksBeforeActions.kind\n Category: editorial\n Kind: string\n Description: Kind canonico do documento rich content antes das ações.\n\nSchema Capability:\n - Path: formBlocksBeforeActions.version\n Category: editorial\n Kind: string\n Description: Versao do documento rich content antes das ações.\n\nSchema Capability:\n - Path: formBlocksBeforeActions.nodes\n Category: editorial\n Kind: array\n Description: Lista de RichBlockNode renderizados antes da área principal de ações.\n\nSchema Capability:\n - Path: formBlocksBeforeActions.nodes[]\n Category: editorial\n Kind: object\n Description: RichBlockNode editorial hospedado antes da área principal de ações.\n\nSchema Capability:\n - Path: formBlocksBeforeActions.context\n Category: editorial\n Kind: object\n Description: Contexto base opcional do documento rich content antes das ações.\n\nSchema Capability:\n - Path: formBlocksAfter\n Category: editorial\n Kind: object\n Description: RichContentDocument renderizado depois do formulario inteiro, incluindo a área principal de ações.\n\nSchema Capability:\n - Path: formBlocksAfter.kind\n Category: editorial\n Kind: string\n Description: Kind canonico do documento rich content de fechamento.\n\nSchema Capability:\n - Path: formBlocksAfter.version\n Category: editorial\n Kind: string\n Description: Versao do documento rich content de fechamento.\n\nSchema Capability:\n - Path: formBlocksAfter.nodes\n Category: editorial\n Kind: array\n Description: Lista de RichBlockNode renderizados depois do formulario.\n\nSchema Capability:\n - Path: formBlocksAfter.nodes[]\n Category: editorial\n Kind: object\n Description: RichBlockNode editorial hospedado depois do formulario.\n\nSchema Capability:\n - Path: formBlocksAfter.context\n Category: editorial\n Kind: object\n Description: Contexto base opcional do documento rich content de fechamento.\n\nSchema Capability:\n - Path: sections[].id\n Category: layout\n Kind: string\n Description: ID único da seção.\n\nSchema Capability:\n - Path: sections[].title\n Category: layout\n Kind: string\n Description: TÃtulo exibido para cada seção do formulário.\n\nSchema Capability:\n - Path: sections[].description\n Category: layout\n Kind: string\n Description: Descrição auxiliar exibida abaixo do tÃtulo da seção.\n\nSchema Capability:\n - Path: sections[].icon\n Category: layout\n Kind: string\n Description: Nome do Ãcone (Material Icons) para o cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].sectionHeader\n Category: layout\n Kind: object\n Description: Configuração rica do header visual da seção, com suporte a avatar por imagem, iniciais ou modo automático.\n\nSchema Capability:\n - Path: sections[].sectionHeader.mode\n Category: layout\n Kind: enum\n Description: Estratégia visual do header da seção.",
|
|
16805
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16806
|
+
"contentHash": "057e50c9848029496159e1fb7db4433e6d9f441e64f6f711fdd3e10eacef19fa",
|
|
16807
|
+
"sourceKind": "component_definition",
|
|
16808
|
+
"sourceId": "praxis-filter-form",
|
|
16809
|
+
"corpusVersion": "1.0.0"
|
|
16810
|
+
},
|
|
16811
|
+
{
|
|
16812
|
+
"chunkIndex": 2,
|
|
16813
|
+
"chunkKind": "capabilities",
|
|
16814
|
+
"content": "Schema Capability:\n - Path: sections[].sectionHeader.sourceField\n Category: layout\n Kind: string\n Description: Campo do formulário usado como origem da imagem do avatar.\n\nSchema Capability:\n - Path: sections[].sectionHeader.initialsSourceField\n Category: layout\n Kind: string\n Description: Campo textual usado para derivar iniciais do avatar.\n\nSchema Capability:\n - Path: sections[].sectionHeader.altField\n Category: layout\n Kind: string\n Description: Campo textual usado como texto acessivel do avatar e como fallback textual para iniciais quando initialsSourceField nao estiver definido.\n\nSchema Capability:\n - Path: sections[].sectionHeader.fallbackIcon\n Category: layout\n Kind: string\n Description: Ãcone opcional usado quando o avatar dinâmico estiver vazio ou inválido.\n\nSchema Capability:\n - Path: sections[].sectionHeader.emptyState\n Category: layout\n Kind: enum\n Description: Comportamento do header quando os campos de origem ainda não possuem valor.\n\nSchema Capability:\n - Path: sections[].sectionHeader.size\n Category: layout\n Kind: enum\n Description: Tamanho semântico do avatar da seção, materializado pelo runtime via tokens.\n\nSchema Capability:\n - Path: sections[].sectionHeader.initialsMaxLength\n Category: layout\n Kind: number\n Description: Máximo de letras exibidas no avatar textual.\n\nSchema Capability:\n - Path: sections[].collapsible\n Category: layout\n Kind: boolean\n Description: Define se a seção pode ser colapsada/expandida pelo usuário.\n\nSchema Capability:\n - Path: sections[].collapsed\n Category: layout\n Kind: boolean\n Description: Estado inicial da seção (colapsada/expandida) quando `collapsible` é true.\n\nSchema Capability:\n - Path: sections[].gapBottom\n Category: layout\n Kind: number\n Description: Espaçamento vertical (em px) após a seção.\n\nSchema Capability:\n - Path: sections[].titleGapBottom\n Category: layout\n Kind: number\n Description: Espaçamento vertical (em px) abaixo do tÃtulo da seção.\n\nSchema Capability:\n - Path: sections[].descriptionGapBottom\n Category: layout\n Kind: number\n Description: Espaçamento vertical (em px) abaixo da descrição da seção.\n\nSchema Capability:\n - Path: sections[].appearance\n Category: appearance\n Kind: enum\n Description: Preset visual do container/cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].stepLabel\n Category: content\n Kind: string\n Description: Rótulo curto do passo exibido antes do tÃtulo da seção.\n\nSchema Capability:\n - Path: sections[].titleStyle\n Category: appearance\n Kind: enum\n Description: Preset de tipografia para o tÃtulo da seção.\n\nSchema Capability:\n - Path: sections[].descriptionStyle\n Category: appearance\n Kind: enum\n Description: Preset de tipografia para a descrição da seção.\n\nSchema Capability:\n - Path: sections[].titleColor\n Category: appearance\n Kind: string\n Description: Cor do tÃtulo da seção (CSS color ou token).\n\nSchema Capability:\n - Path: sections[].descriptionColor\n Category: appearance\n Kind: string\n Description: Cor da descrição da seção (CSS color ou token).\n\nSchema Capability:\n - Path: sections[].headerAlign\n Category: appearance\n Kind: enum\n Description: Alinhamento horizontal do conteúdo do cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].headerTooltip\n Category: layout\n Kind: string\n Description: Texto de tooltip para o cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].headerActions\n Category: layout\n Kind: array\n Description: Lista de ações iconográficas renderizadas no canto direito do cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].headerActions[].id\n Category: layout\n Kind: string\n Description: ID estável da ação de cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].headerActions[].label\n Category: layout\n Kind: string\n Description: Label acessÃvel usada em tooltip e aria-label da ação.\n\nSchema Capability:\n - Path: sections[].headerActions[].icon\n Category: layout\n Kind: string\n Description: Ãcone renderizado na ação do cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].headerActions[].action\n Category: layout\n Kind: string\n Description: Nome opcional da ação emitida no customAction; se ausente, o runtime usa o ID.\n\nSchema Capability:\n - Path: sections[].headerActions[].tooltip\n Category: layout\n Kind: string\n Description: Tooltip opcional da ação; se ausente, o runtime usa a label.\n\nSchema Capability:\n - Path: sections[].headerActions[].color\n Category: appearance\n Kind: enum\n Description: Tom visual da ação do cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].headerActions[].visible\n Category: layout\n Kind: boolean\n Description: Controla a visibilidade da ação do cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].headerActions[].disabled\n Category: layout\n Kind: boolean\n Description: Controla o estado desabilitado da ação do cabeçalho da seção.\n\nSchema Capability:\n - Path: sections[].className\n Category: appearance\n Kind: string\n Description: Classe CSS aplicada ao container da seção.\n\nSchema Capability:\n - Path: sections[].styles\n Category: appearance\n Kind: object\n Description: Estilos inline aplicados ao container da seção.\n\nSchema Capability:\n - Path: sections[].rows[].id\n Category: layout\n Kind: string\n Description: ID único da linha dentro de uma seção.\n\nSchema Capability:\n - Path: sections[].rows[].title\n Category: layout\n Kind: string\n Description: TÃtulo interno da linha (usado em editores e labels).\n\nSchema Capability:\n - Path: sections[].rows[].gap\n Category: layout\n Kind: number\n Description: Espaçamento horizontal (em px) entre colunas nesta linha.\n\nSchema Capability:\n - Path: sections[].rows[].rowGap\n Category: layout\n Kind: number\n Description: Espaçamento vertical (em px) após esta linha.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].id\n Category: layout\n Kind: string\n Description: ID único da coluna dentro de uma linha.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].title\n Category: layout\n Kind: string\n Description: TÃtulo interno da coluna (usado em editores e labels).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].testId\n Category: layout\n Kind: string\n Description: Atributo data-testid aplicado ao container da coluna.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].fields\n Category: layout\n Kind: array\n Description: Projeção legada/derivada dos itens kind:\"field\" dentro da coluna.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].fields[]\n Category: layout\n Kind: string\n Description: Nome do campo dentro da projeção legada/derivada da coluna.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].items\n Category: layout\n Kind: array\n Description: Lista canônica ordenada de itens da coluna: campos e blocos visuais.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].items[].kind\n Category: layout\n Kind: enum\n Description: Tipo do item de layout da coluna.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].items[].id\n Category: layout\n Kind: string\n Description: ID estável do item de layout dentro do formulário.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].items[].fieldName\n Category: layout\n Kind: string\n Description: Nome do campo quando kind é \"field\".",
|
|
16815
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16816
|
+
"contentHash": "7bd1ce34bf36df588bb3fae515d854a24b59a8fd48a9d58b2f8ecaae51ea105b",
|
|
16817
|
+
"sourceKind": "component_definition",
|
|
16818
|
+
"sourceId": "praxis-filter-form",
|
|
16819
|
+
"corpusVersion": "1.0.0"
|
|
16820
|
+
},
|
|
16821
|
+
{
|
|
16822
|
+
"chunkIndex": 3,
|
|
16823
|
+
"chunkKind": "capabilities",
|
|
16824
|
+
"content": "Schema Capability:\n - Path: sections[].rows[].columns[].items[].document\n Category: editorial\n Kind: object\n Description: RichContentDocument do bloco visual quando kind é \"richContent\".\n\nSchema Capability:\n - Path: sections[].rows[].columns[].items[].layout\n Category: editorial\n Kind: enum\n Description: Modo de renderização do bloco visual richContent dentro da coluna.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].items[].rootClassName\n Category: appearance\n Kind: string\n Description: Classe CSS opcional aplicada ao bloco visual richContent.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].span.xs\n Category: layout\n Kind: number\n Description: Largura da coluna para telas extra pequenas (xs) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].span.sm\n Category: layout\n Kind: number\n Description: Largura da coluna para telas pequenas (sm) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].span.md\n Category: layout\n Kind: number\n Description: Largura da coluna para telas médias (md) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].span.lg\n Category: layout\n Kind: number\n Description: Largura da coluna para telas grandes (lg) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].span.xl\n Category: layout\n Kind: number\n Description: Largura da coluna para telas extra grandes (xl) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].offset.xs\n Category: layout\n Kind: number\n Description: Offset da coluna para telas extra pequenas (xs) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].offset.sm\n Category: layout\n Kind: number\n Description: Offset da coluna para telas pequenas (sm) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].offset.md\n Category: layout\n Kind: number\n Description: Offset da coluna para telas médias (md) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].offset.lg\n Category: layout\n Kind: number\n Description: Offset da coluna para telas grandes (lg) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].offset.xl\n Category: layout\n Kind: number\n Description: Offset da coluna para telas extra grandes (xl) no grid system (1-12).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].order.xs\n Category: layout\n Kind: number\n Description: Ordem visual da coluna para telas extra pequenas (xs).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].order.sm\n Category: layout\n Kind: number\n Description: Ordem visual da coluna para telas pequenas (sm).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].order.md\n Category: layout\n Kind: number\n Description: Ordem visual da coluna para telas médias (md).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].order.lg\n Category: layout\n Kind: number\n Description: Ordem visual da coluna para telas grandes (lg).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].order.xl\n Category: layout\n Kind: number\n Description: Ordem visual da coluna para telas extra grandes (xl).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].hidden.xs\n Category: layout\n Kind: boolean\n Description: Oculta a coluna para telas extra pequenas (xs).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].hidden.sm\n Category: layout\n Kind: boolean\n Description: Oculta a coluna para telas pequenas (sm).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].hidden.md\n Category: layout\n Kind: boolean\n Description: Oculta a coluna para telas médias (md).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].hidden.lg\n Category: layout\n Kind: boolean\n Description: Oculta a coluna para telas grandes (lg).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].hidden.xl\n Category: layout\n Kind: boolean\n Description: Oculta a coluna para telas extra grandes (xl).\n\nSchema Capability:\n - Path: sections[].rows[].columns[].align\n Category: layout\n Kind: enum\n Description: Alinhamento vertical do conteúdo da coluna.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].padding\n Category: layout\n Kind: number\n Description: Padding (em px) interno da coluna.\n\nSchema Capability:\n - Path: sections[].rows[].columns[].className\n Category: appearance\n Kind: string\n Description: Classe CSS aplicada à coluna.\n\nSchema Capability:\n - Path: actions.submit.id\n Category: actions\n Kind: string\n Description: ID do botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.visible\n Category: actions\n Kind: boolean\n Description: Visibilidade do botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.label\n Category: actions\n Kind: string\n Description: Rótulo do botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.icon\n Category: actions\n Kind: string\n Description: Ãcone (Material Icons) para o botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.color\n Category: actions\n Kind: enum\n Description: Cor do botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.variant\n Category: actions\n Kind: enum\n Description: Variante visual do botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.size\n Category: actions\n Kind: enum\n Description: Tamanho do botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.className\n Category: actions\n Kind: string\n Description: Classe CSS aplicada ao botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.style\n Category: actions\n Kind: object\n Description: Estilos inline aplicados ao botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.disabled\n Category: actions\n Kind: boolean\n Description: Desabilita o botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.type\n Category: actions\n Kind: enum\n Description: Tipo do botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.action\n Category: actions\n Kind: string\n Description: Evento customizado disparado ao clicar.\n\nSchema Capability:\n - Path: actions.submit.tooltip\n Category: actions\n Kind: string\n Description: Tooltip exibido no botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.loading\n Category: actions\n Kind: boolean\n Description: Exibe estado de carregamento no botão de submissão.\n\nSchema Capability:\n - Path: actions.submit.shortcut\n Category: actions\n Kind: string\n Description: Atalho de teclado (ex.: \"ctrl+s\") para o botão de submissão.\n\nSchema Capability:\n - Path: actions.cancel.id\n Category: actions\n Kind: string\n Description: ID do botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.visible\n Category: actions\n Kind: boolean\n Description: Visibilidade do botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.label\n Category: actions\n Kind: string\n Description: Rótulo do botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.icon\n Category: actions\n Kind: string\n Description: Ãcone (Material Icons) para o botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.color\n Category: actions\n Kind: enum\n Description: Cor do botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.variant\n Category: actions\n Kind: enum\n Description: Variante visual do botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.size\n Category: actions\n Kind: enum\n Description: Tamanho do botão de cancelar.",
|
|
16825
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16826
|
+
"contentHash": "f34d296ee57e962539a19f213748c29fb83ce6cfa25db7beb9506f80822ca00e",
|
|
16827
|
+
"sourceKind": "component_definition",
|
|
16828
|
+
"sourceId": "praxis-filter-form",
|
|
16829
|
+
"corpusVersion": "1.0.0"
|
|
16830
|
+
},
|
|
16831
|
+
{
|
|
16832
|
+
"chunkIndex": 4,
|
|
16833
|
+
"chunkKind": "capabilities",
|
|
16834
|
+
"content": "Schema Capability:\n - Path: actions.cancel.className\n Category: actions\n Kind: string\n Description: Classe CSS aplicada ao botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.style\n Category: actions\n Kind: object\n Description: Estilos inline aplicados ao botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.disabled\n Category: actions\n Kind: boolean\n Description: Desabilita o botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.type\n Category: actions\n Kind: enum\n Description: Tipo do botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.action\n Category: actions\n Kind: string\n Description: Evento customizado disparado ao clicar.\n\nSchema Capability:\n - Path: actions.cancel.tooltip\n Category: actions\n Kind: string\n Description: Tooltip exibido no botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.loading\n Category: actions\n Kind: boolean\n Description: Exibe estado de carregamento no botão de cancelar.\n\nSchema Capability:\n - Path: actions.cancel.shortcut\n Category: actions\n Kind: string\n Description: Atalho de teclado (ex.: \"esc\") para o botão de cancelar.\n\nSchema Capability:\n - Path: actions.reset.id\n Category: actions\n Kind: string\n Description: ID do botão de reset.\n\nSchema Capability:\n - Path: actions.reset.visible\n Category: actions\n Kind: boolean\n Description: Visibilidade do botão de reset.\n\nSchema Capability:\n - Path: actions.reset.label\n Category: actions\n Kind: string\n Description: Rótulo do botão de reset.\n\nSchema Capability:\n - Path: actions.reset.icon\n Category: actions\n Kind: string\n Description: Ãcone (Material Icons) para o botão de reset.\n\nSchema Capability:\n - Path: actions.reset.color\n Category: actions\n Kind: enum\n Description: Cor do botão de reset.\n\nSchema Capability:\n - Path: actions.reset.variant\n Category: actions\n Kind: enum\n Description: Variante visual do botão de reset.\n\nSchema Capability:\n - Path: actions.reset.size\n Category: actions\n Kind: enum\n Description: Tamanho do botão de reset.\n\nSchema Capability:\n - Path: actions.reset.className\n Category: actions\n Kind: string\n Description: Classe CSS aplicada ao botão de reset.\n\nSchema Capability:\n - Path: actions.reset.style\n Category: actions\n Kind: object\n Description: Estilos inline aplicados ao botão de reset.\n\nSchema Capability:\n - Path: actions.reset.disabled\n Category: actions\n Kind: boolean\n Description: Desabilita o botão de reset.\n\nSchema Capability:\n - Path: actions.reset.type\n Category: actions\n Kind: enum\n Description: Tipo do botão de reset.\n\nSchema Capability:\n - Path: actions.reset.action\n Category: actions\n Kind: string\n Description: Evento customizado disparado ao clicar.\n\nSchema Capability:\n - Path: actions.reset.tooltip\n Category: actions\n Kind: string\n Description: Tooltip exibido no botão de reset.\n\nSchema Capability:\n - Path: actions.reset.loading\n Category: actions\n Kind: boolean\n Description: Exibe estado de carregamento no botão de reset.\n\nSchema Capability:\n - Path: actions.reset.shortcut\n Category: actions\n Kind: string\n Description: Atalho de teclado (ex.: \"ctrl+shift+r\") para o botão de reset.\n\nSchema Capability:\n - Path: actions.custom\n Category: actions\n Kind: array\n Description: Lista de botões de ação customizados.\n\nSchema Capability:\n - Path: actions.custom[]\n Category: actions\n Kind: object\n Description: Configuração de um botão de ação customizado.\n\nSchema Capability:\n - Path: actions.custom[].id\n Category: actions\n Kind: string\n Description: ID da ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].visible\n Category: actions\n Kind: boolean\n Description: Visibilidade da ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].label\n Category: actions\n Kind: string\n Description: Rótulo da ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].icon\n Category: actions\n Kind: string\n Description: Ãcone (Material Icons) para a ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].color\n Category: actions\n Kind: enum\n Description: Cor da ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].variant\n Category: actions\n Kind: enum\n Description: Variante visual da ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].size\n Category: actions\n Kind: enum\n Description: Tamanho da ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].className\n Category: actions\n Kind: string\n Description: Classe CSS aplicada à ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].style\n Category: actions\n Kind: object\n Description: Estilos inline aplicados à ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].disabled\n Category: actions\n Kind: boolean\n Description: Desabilita a ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].type\n Category: actions\n Kind: enum\n Description: Tipo do botão da ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].action\n Category: actions\n Kind: string\n Description: Evento customizado disparado ao clicar.\n\nSchema Capability:\n - Path: actions.custom[].tooltip\n Category: actions\n Kind: string\n Description: Tooltip exibido na ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].loading\n Category: actions\n Kind: boolean\n Description: Exibe estado de carregamento na ação customizada.\n\nSchema Capability:\n - Path: actions.custom[].shortcut\n Category: actions\n Kind: string\n Description: Atalho de teclado para a ação customizada.\n\nSchema Capability:\n - Path: actions.position\n Category: layout\n Kind: enum\n Description: Posicionamento horizontal da barra de ações.\n\nSchema Capability:\n - Path: actions.orientation\n Category: layout\n Kind: enum\n Description: Orientação dos botões dentro da barra de ações (horizontal/vertical).\n\nSchema Capability:\n - Path: actions.spacing\n Category: layout\n Kind: enum\n Description: Espaçamento entre os botões na barra de ações.\n\nSchema Capability:\n - Path: actions.sticky\n Category: layout\n Kind: boolean\n Description: Define se a barra de ações deve permanecer visÃvel ao rolar a página.\n\nSchema Capability:\n - Path: actions.divider\n Category: layout\n Kind: boolean\n Description: Exibe um divisor superior acima da barra de ações.\n\nSchema Capability:\n - Path: actions.placement\n Category: layout\n Kind: enum\n Description: Localização estrutural da barra de ações no layout.\n\nSchema Capability:\n - Path: actions.mobile.position\n Category: layout\n Kind: enum\n Description: Posicionamento da barra de ações em dispositivos móveis.\n\nSchema Capability:\n - Path: actions.mobile.orientation\n Category: layout\n Kind: enum\n Description: Orientação dos botões em dispositivos móveis.\n\nSchema Capability:\n - Path: actions.mobile.collapseToMenu\n Category: behavior\n Kind: boolean\n Description: Em mobile, agrupa ações em um menu (se houver muitas).\n\nSchema Capability:\n - Path: actions.containerClassName\n Category: appearance\n Kind: string\n Description: Classe CSS aplicada ao container da barra de ações.\n\nSchema Capability:\n - Path: actions.containerStyles\n Category: appearance\n Kind: object\n Description: Estilos inline aplicados ao container da barra de ações.",
|
|
16835
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16836
|
+
"contentHash": "9cfad48adaa90e88eb8231e6c56ea92199382bde6a062c94b11cc802f209516a",
|
|
16837
|
+
"sourceKind": "component_definition",
|
|
16838
|
+
"sourceId": "praxis-filter-form",
|
|
16839
|
+
"corpusVersion": "1.0.0"
|
|
16840
|
+
},
|
|
16841
|
+
{
|
|
16842
|
+
"chunkIndex": 5,
|
|
16843
|
+
"chunkKind": "capabilities",
|
|
16844
|
+
"content": "Schema Capability:\n - Path: actions.showSaveButton\n Category: actions\n Kind: boolean\n Description: Legacy: controla visibilidade do botão de submit.\n\nSchema Capability:\n - Path: actions.submitButtonLabel\n Category: actions\n Kind: string\n Description: Legacy: rótulo do botão de submit.\n\nSchema Capability:\n - Path: actions.showCancelButton\n Category: actions\n Kind: boolean\n Description: Legacy: controla visibilidade do botão de cancel.\n\nSchema Capability:\n - Path: actions.cancelButtonLabel\n Category: actions\n Kind: string\n Description: Legacy: rótulo do botão de cancel.\n\nSchema Capability:\n - Path: actions.showResetButton\n Category: actions\n Kind: boolean\n Description: Legacy: controla visibilidade do botão de reset.\n\nSchema Capability:\n - Path: actions.resetButtonLabel\n Category: actions\n Kind: string\n Description: Legacy: rótulo do botão de reset.\n\nSchema Capability:\n - Path: behavior.confirmOnUnsavedChanges\n Category: behavior\n Kind: boolean\n Description: Exibe um alerta se o usuário tentar sair com mudanças não salvas.\n\nSchema Capability:\n - Path: behavior.trackHistory\n Category: behavior\n Kind: boolean\n Description: Habilita rastreamento de histórico para desfazer/refazer (se suportado).\n\nSchema Capability:\n - Path: behavior.focusFirstError\n Category: behavior\n Kind: boolean\n Description: Ao submeter, foca automaticamente no primeiro campo com erro.\n\nSchema Capability:\n - Path: behavior.scrollToErrors\n Category: behavior\n Kind: boolean\n Description: Ao submeter, rola a página para exibir o primeiro erro.\n\nSchema Capability:\n - Path: behavior.clearAfterSave\n Category: behavior\n Kind: boolean\n Description: Limpa o formulário após uma submissão bem-sucedida.\n\nSchema Capability:\n - Path: behavior.redirectAfterSave\n Category: behavior\n Kind: string\n Description: URL para redirecionar após uma submissão bem-sucedida.\n\nSchema Capability:\n - Path: behavior.reactiveValidation\n Category: validation\n Kind: boolean\n Description: Ativa validação reativa (em tempo real) em `valueChanges`.\n\nSchema Capability:\n - Path: behavior.reactiveValidationDebounceMs\n Category: validation\n Kind: number\n Description: Debounce (em ms) para a validação reativa.\n\nSchema Capability:\n - Path: api.saveEndpoint\n Category: api\n Kind: string\n Description: URL para onde os dados do formulário serão enviados (POST/PUT/PATCH).\n\nSchema Capability:\n - Path: api.loadEndpoint\n Category: api\n Kind: string\n Description: URL para buscar dados para popular o formulário (GET).\n\nSchema Capability:\n - Path: api.saveMethod\n Category: api\n Kind: enum\n Description: Método HTTP para a requisição de salvar.\n\nSchema Capability:\n - Path: api.timeout\n Category: api\n Kind: number\n Description: Tempo limite (em ms) para as requisições API.\n\nSchema Capability:\n - Path: api.headers\n Category: api\n Kind: object\n Description: Cabeçalhos HTTP personalizados para as requisições API.\n\nSchema Capability:\n - Path: api.idField\n Category: api\n Kind: string\n Description: Nome do campo que representa o ID do registro no payload (para PUT/PATCH).\n\nSchema Capability:\n - Path: api.beforeSave\n Category: hooks\n Kind: expression\n Description: Hook para pré-processamento de dados antes de enviar para a API.\n\nSchema Capability:\n - Path: api.afterLoad\n Category: hooks\n Kind: expression\n Description: Hook para pós-processamento de dados após carregar da API.\n\nSchema Capability:\n - Path: messages.updateRegistrySuccess\n Category: messages\n Kind: string\n Description: Mensagem de sucesso após atualização de registro.\n\nSchema Capability:\n - Path: messages.createRegistrySuccess\n Category: messages\n Kind: string\n Description: Mensagem de sucesso após criação de registro.\n\nSchema Capability:\n - Path: messages.updateRegistryError\n Category: messages\n Kind: string\n Description: Mensagem de erro após atualização de registro.\n\nSchema Capability:\n - Path: messages.createRegistryError\n Category: messages\n Kind: string\n Description: Mensagem de erro após criação de registro.\n\nSchema Capability:\n - Path: messages.confirmations.submit\n Category: messages\n Kind: string\n Description: Mensagem de confirmação antes de submeter o formulário.\n\nSchema Capability:\n - Path: messages.confirmations.cancel\n Category: messages\n Kind: string\n Description: Mensagem de confirmação antes de cancelar.\n\nSchema Capability:\n - Path: messages.confirmations.reset\n Category: messages\n Kind: string\n Description: Mensagem de confirmação antes de resetar o formulário.\n\nSchema Capability:\n - Path: messages.confirmations.[actionId]\n Category: messages\n Kind: string\n Description: Mensagem de confirmação para ações customizadas. Substitua `[actionId]` pelo ID da ação.\n\nSchema Capability:\n - Path: messages.customActions.[actionId]\n Category: messages\n Kind: object\n Description: Mensagens da ação customizada (success/error/confirmation). Substitua `[actionId]` pelo ID da ação.\n\nSchema Capability:\n - Path: messages.customActions.[actionId].success\n Category: messages\n Kind: string\n Description: Mensagem de sucesso para a ação customizada.\n\nSchema Capability:\n - Path: messages.customActions.[actionId].error\n Category: messages\n Kind: string\n Description: Mensagem de erro para a ação customizada.\n\nSchema Capability:\n - Path: messages.customActions.[actionId].confirmation\n Category: messages\n Kind: string\n Description: Mensagem de confirmação para a ação customizada.\n\nSchema Capability:\n - Path: messages.loading.submit\n Category: messages\n Kind: string\n Description: Mensagem exibida durante o envio do formulário.\n\nSchema Capability:\n - Path: messages.loading.cancel\n Category: messages\n Kind: string\n Description: Mensagem exibida durante o cancelamento.\n\nSchema Capability:\n - Path: messages.loading.reset\n Category: messages\n Kind: string\n Description: Mensagem exibida durante o reset do formulário.\n\nSchema Capability:\n - Path: messages.loading.[actionId]\n Category: messages\n Kind: string\n Description: Mensagem exibida durante a execução de uma ação customizada. Substitua `[actionId]` pelo ID da ação.\n\nSchema Capability:\n - Path: formRules[].id\n Category: rules\n Kind: string\n Description: ID único da regra de layout.\n\nSchema Capability:\n - Path: formRules[].name\n Category: rules\n Kind: string\n Description: Nome amigável da regra de layout.\n\nSchema Capability:\n - Path: formRules[].description\n Category: rules\n Kind: string\n Description: Descrição da regra de layout para documentação.\n\nSchema Capability:\n - Path: formRules[].metadata.origin\n Category: rules\n Kind: enum\n Description: Origem da regra sugerida pela IA.\n\nSchema Capability:\n - Path: formRules[].metadata.reviewStatus\n Category: rules\n Kind: enum\n Description: Status de revisão humana da regra sugerida pela IA.\n\nSchema Capability:\n - Path: formRules[].targetType\n Category: rules\n Kind: enum\n Description: Tipo do elemento alvo da regra (campo, seção, ação, linha, coluna ou bloco visual).\n\nSchema Capability:\n - Path: formRules[].context\n Category: rules\n Kind: enum\n Description: Contexto legado da regra (quando properties não forem informadas).\n\nSchema Capability:\n - Path: formRules[].targets\n Category: rules\n Kind: array\n Description: Lista de IDs dos elementos alvo da regra. O tipo do ID depende de `targetType`.",
|
|
16845
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16846
|
+
"contentHash": "b9d96b46a7eec674ad9cd481a6765bab68a58d01ecaf6114efa20d70502d0104",
|
|
16847
|
+
"sourceKind": "component_definition",
|
|
16848
|
+
"sourceId": "praxis-filter-form",
|
|
16849
|
+
"corpusVersion": "1.0.0"
|
|
16850
|
+
},
|
|
16851
|
+
{
|
|
16852
|
+
"chunkIndex": 6,
|
|
16853
|
+
"chunkKind": "capabilities",
|
|
16854
|
+
"content": "Schema Capability:\n - Path: formRules[].targets[]\n Category: rules\n Kind: string\n Description: ID do alvo da regra.\n\nSchema Capability:\n - Path: formRules[].targetFields\n Category: rules\n Kind: array\n Description: Alias legado para alvos de campo.\n\nSchema Capability:\n - Path: formRules[].targetFields[]\n Category: rules\n Kind: string\n Description: ID do campo alvo (alias legado).\n\nSchema Capability:\n - Path: formRules[].effect.condition\n Category: rules\n Kind: expression\n Description: Condicao canonica da regra, expressa em Json Logic.\n\nSchema Capability:\n - Path: formCommandRules\n Category: rules\n Kind: array\n Description: Regras condicionais de comando avaliadas depois que formRules estabilizam valores calculados.\n\nSchema Capability:\n - Path: formCommandRules[].condition\n Category: rules\n Kind: expression\n Description: Condicao Json Logic avaliada sobre formData estabilizado, incluindo field values calculados.\n\nSchema Capability:\n - Path: formCommandRules[].effects[].kind\n Category: rules\n Kind: enum\n Description: Tipo do efeito de comando. O primeiro corte suporta apenas global-action.\n\nSchema Capability:\n - Path: formCommandRules[].effects[].globalAction\n Category: rules\n Kind: object\n Description: GlobalActionRef estruturado executado por GlobalActionService.executeRef quando a regra entra na condicao.\n\nSchema Capability:\n - Path: formCommandRules[].policy\n Category: rules\n Kind: object\n Description: Politica operacional do comando: trigger, distinct, distinctBy, debounceMs, errorPolicy e runOnInitialEvaluation.\n\nSchema Capability:\n - Path: formRulesState\n Category: metadata\n Kind: object\n Description: Estado interno do builder visual de regras, gerado apenas para round-trip do editor.\n\nSchema Capability:\n - Path: hooks\n Category: hooks\n Kind: object\n Description: Declarações de hooks por estágio do ciclo de vida do formulário.\n\nSchema Capability:\n - Path: hooks.beforeInit[]\n Category: hooks\n Kind: array\n Description: Declarações de hooks para beforeInit.\n\nSchema Capability:\n - Path: hooks.beforeInit[].id\n Category: hooks\n Kind: string\n Description: ID do hook (registrado no host).\n\nSchema Capability:\n - Path: hooks.beforeInit[].priority\n Category: hooks\n Kind: number\n Description: Prioridade do hook (maior executa primeiro).\n\nSchema Capability:\n - Path: hooks.beforeInit[].timeoutMs\n Category: hooks\n Kind: number\n Description: Timeout em ms para a execucao do hook.\n\nSchema Capability:\n - Path: hooks.beforeInit[].args\n Category: hooks\n Kind: object\n Description: Argumentos adicionais passados ao hook.\n\nSchema Capability:\n - Path: hooks.afterInit[]\n Category: hooks\n Kind: array\n Description: Declarações de hooks para afterInit.\n\nSchema Capability:\n - Path: hooks.afterInit[].id\n Category: hooks\n Kind: string\n Description: ID do hook (registrado no host).\n\nSchema Capability:\n - Path: hooks.afterInit[].priority\n Category: hooks\n Kind: number\n Description: Prioridade do hook (maior executa primeiro).\n\nSchema Capability:\n - Path: hooks.afterInit[].timeoutMs\n Category: hooks\n Kind: number\n Description: Timeout em ms para a execucao do hook.\n\nSchema Capability:\n - Path: hooks.afterInit[].args\n Category: hooks\n Kind: object\n Description: Argumentos adicionais passados ao hook.\n\nSchema Capability:\n - Path: hooks.beforeValidate[]\n Category: hooks\n Kind: array\n Description: Declarações de hooks para beforeValidate.\n\nSchema Capability:\n - Path: hooks.beforeValidate[].id\n Category: hooks\n Kind: string\n Description: ID do hook (registrado no host).\n\nSchema Capability:\n - Path: hooks.beforeValidate[].priority\n Category: hooks\n Kind: number\n Description: Prioridade do hook (maior executa primeiro).\n\nSchema Capability:\n - Path: hooks.beforeValidate[].timeoutMs\n Category: hooks\n Kind: number\n Description: Timeout em ms para a execucao do hook.\n\nSchema Capability:\n - Path: hooks.beforeValidate[].args\n Category: hooks\n Kind: object\n Description: Argumentos adicionais passados ao hook.\n\nSchema Capability:\n - Path: hooks.afterValidate[]\n Category: hooks\n Kind: array\n Description: Declarações de hooks para afterValidate.\n\nSchema Capability:\n - Path: hooks.afterValidate[].id\n Category: hooks\n Kind: string\n Description: ID do hook (registrado no host).\n\nSchema Capability:\n - Path: hooks.afterValidate[].priority\n Category: hooks\n Kind: number\n Description: Prioridade do hook (maior executa primeiro).\n\nSchema Capability:\n - Path: hooks.afterValidate[].timeoutMs\n Category: hooks\n Kind: number\n Description: Timeout em ms para a execucao do hook.\n\nSchema Capability:\n - Path: hooks.afterValidate[].args\n Category: hooks\n Kind: object\n Description: Argumentos adicionais passados ao hook.\n\nSchema Capability:\n - Path: hooks.beforeSubmit[]\n Category: hooks\n Kind: array\n Description: Declarações de hooks para beforeSubmit.\n\nSchema Capability:\n - Path: hooks.beforeSubmit[].id\n Category: hooks\n Kind: string\n Description: ID do hook (registrado no host).\n\nSchema Capability:\n - Path: hooks.beforeSubmit[].priority\n Category: hooks\n Kind: number\n Description: Prioridade do hook (maior executa primeiro).\n\nSchema Capability:\n - Path: hooks.beforeSubmit[].timeoutMs\n Category: hooks\n Kind: number\n Description: Timeout em ms para a execucao do hook.\n\nSchema Capability:\n - Path: hooks.beforeSubmit[].args\n Category: hooks\n Kind: object\n Description: Argumentos adicionais passados ao hook.\n\nSchema Capability:\n - Path: hooks.afterSubmit[]\n Category: hooks\n Kind: array\n Description: Declarações de hooks para afterSubmit.\n\nSchema Capability:\n - Path: hooks.afterSubmit[].id\n Category: hooks\n Kind: string\n Description: ID do hook (registrado no host).\n\nSchema Capability:\n - Path: hooks.afterSubmit[].priority\n Category: hooks\n Kind: number\n Description: Prioridade do hook (maior executa primeiro).\n\nSchema Capability:\n - Path: hooks.afterSubmit[].timeoutMs\n Category: hooks\n Kind: number\n Description: Timeout em ms para a execucao do hook.\n\nSchema Capability:\n - Path: hooks.afterSubmit[].args\n Category: hooks\n Kind: object\n Description: Argumentos adicionais passados ao hook.\n\nSchema Capability:\n - Path: hooks.onError[]\n Category: hooks\n Kind: array\n Description: Declarações de hooks para onError.\n\nSchema Capability:\n - Path: hooks.onError[].id\n Category: hooks\n Kind: string\n Description: ID do hook (registrado no host).\n\nSchema Capability:\n - Path: hooks.onError[].priority\n Category: hooks\n Kind: number\n Description: Prioridade do hook (maior executa primeiro).\n\nSchema Capability:\n - Path: hooks.onError[].timeoutMs\n Category: hooks\n Kind: number\n Description: Timeout em ms para a execucao do hook.\n\nSchema Capability:\n - Path: hooks.onError[].args\n Category: hooks\n Kind: object\n Description: Argumentos adicionais passados ao hook.\n\nSchema Capability:\n - Path: hints.dataModes.create\n Category: form_config\n Kind: string\n Description: Dica para o modo de criação de dados.\n\nSchema Capability:\n - Path: hints.dataModes.edit\n Category: form_config\n Kind: string\n Description: Dica para o modo de edição de dados.\n\nSchema Capability:\n - Path: hints.dataModes.view\n Category: form_config\n Kind: string\n Description: Dica para o modo de visualização de dados.\n\nSchema Capability:\n - Path: hints.uiModes.presentation\n Category: form_config\n Kind: string\n Description: Dica para o modo de apresentação da UI.",
|
|
16855
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16856
|
+
"contentHash": "0d30c9ed381b5a69050e4922828ae287af246f0a927e7925cf1b0aa68e33fbb5",
|
|
16857
|
+
"sourceKind": "component_definition",
|
|
16858
|
+
"sourceId": "praxis-filter-form",
|
|
16859
|
+
"corpusVersion": "1.0.0"
|
|
16860
|
+
},
|
|
16861
|
+
{
|
|
16862
|
+
"chunkIndex": 7,
|
|
16863
|
+
"chunkKind": "capabilities",
|
|
16864
|
+
"content": "Schema Capability:\n - Path: hints.uiModes.readonly\n Category: form_config\n Kind: string\n Description: Dica para o modo de somente leitura da UI.\n\nSchema Capability:\n - Path: hints.uiModes.disabled\n Category: form_config\n Kind: string\n Description: Dica para o modo desabilitado da UI.\n\nSchema Capability:\n - Path: hints.uiModes.visible\n Category: form_config\n Kind: string\n Description: Dica para o modo de visibilidade da UI.\n\nSchema Capability:\n - Path: fieldMetadata[].id\n Category: identity\n Kind: string\n Description: Identificador unico da instancia do componente.\n\nSchema Capability:\n - Path: fieldMetadata[].version\n Category: identity\n Kind: string\n Description: Versao do schema de metadata (migracao).\n\nSchema Capability:\n - Path: fieldMetadata[].context\n Category: identity\n Kind: enum\n Description: Contexto de uso do componente (form/filter/table/dialog/standalone).\n\nSchema Capability:\n - Path: fieldMetadata[].createdAt\n Category: misc\n Kind: string\n Description: Timestamp de criacao (ISO).\n\nSchema Capability:\n - Path: fieldMetadata[].updatedAt\n Category: misc\n Kind: string\n Description: Timestamp de atualizacao (ISO).\n\nSchema Capability:\n - Path: fieldMetadata[].tags\n Category: identity\n Kind: array\n Description: Tags para categorizacao e busca.\n\nSchema Capability:\n - Path: fieldMetadata[].cssClass\n Category: appearance\n Kind: string\n Description: Classe CSS aplicada ao host do componente.\n\nSchema Capability:\n - Path: fieldMetadata[].style\n Category: appearance\n Kind: object\n Description: Estilos inline (objeto CSS).\n\nSchema Capability:\n - Path: fieldMetadata[].dataAttributes\n Category: data\n Kind: object\n Description: Data attributes para teste/analytics.\n\nSchema Capability:\n - Path: fieldMetadata[].name\n Category: identity\n Kind: string\n Description: Identificador único do campo. Essencial para binding.\n\nSchema Capability:\n - Path: fieldMetadata[].label\n Category: identity\n Kind: string\n Description: Rótulo principal exibido para o usuário.\n\nSchema Capability:\n - Path: fieldMetadata[].placeholder\n Category: identity\n Kind: string\n Description: Texto temporário exibido quando vazio.\n\nSchema Capability:\n - Path: fieldMetadata[].hint\n Category: identity\n Kind: string\n Description: Texto de ajuda exibido abaixo do campo.\n\nSchema Capability:\n - Path: fieldMetadata[].helpText\n Category: identity\n Kind: string\n Description: Texto semântico de ajuda publicado pelo schema/DTO.\n\nSchema Capability:\n - Path: fieldMetadata[].tooltip\n Category: identity\n Kind: string\n Description: Texto exibido ao passar o mouse.\n\nSchema Capability:\n - Path: fieldMetadata[].tooltipOnHover\n Category: identity\n Kind: boolean\n Description: Habilita apresentação do tooltip no hover quando suportado pelo renderer.\n\nSchema Capability:\n - Path: fieldMetadata[].description\n Category: identity\n Kind: string\n Description: Descrição detalhada (usada em documentação ou helps extensos).\n\nSchema Capability:\n - Path: fieldMetadata[].selectionMode\n Category: behavior\n Kind: enum\n Description: Semântica de seleção explícita para controles de escolha.\n\nSchema Capability:\n - Path: fieldMetadata[].variant\n Category: appearance\n Kind: string\n Description: Variante visual/semântica do controle.\n\nSchema Capability:\n - Path: fieldMetadata[].density\n Category: appearance\n Kind: enum\n Description: Densidade visual do shell do controle.\n\nSchema Capability:\n - Path: fieldMetadata[].links\n Category: identity\n Kind: array\n Description: Links ricos associados ao campo, úteis em consentimentos e conteúdo legal.\n\nSchema Capability:\n - Path: fieldMetadata[].group\n Category: identity\n Kind: string\n Description: Agrupador lógico do campo.\n\nSchema Capability:\n - Path: fieldMetadata[].order\n Category: layout\n Kind: number\n Description: Ordem de exibição do campo.\n\nSchema Capability:\n - Path: fieldMetadata[].width\n Category: layout\n Kind: string\n Description: Largura do campo (ex: 50%, 100px).\n\nSchema Capability:\n - Path: fieldMetadata[].isFlex\n Category: layout\n Kind: boolean\n Description: Se true, usa flex-grow para preencher espaço.\n\nSchema Capability:\n - Path: fieldMetadata[].controlType\n Category: behavior\n Kind: enum\n Description: Tipo do componente de UI (input, select, datepicker, etc).\n\nSchema Capability:\n - Path: fieldMetadata[].dataType\n Category: data\n Kind: enum\n Description: Tipo de dado do campo (text, number, date, etc).\n\nSchema Capability:\n - Path: fieldMetadata[].source\n Category: data\n Kind: enum\n Description: Origem semântica do campo. Use local para campos do host que não vêm do schema backend.\n\nSchema Capability:\n - Path: fieldMetadata[].transient\n Category: data\n Kind: boolean\n Description: Marca o campo como temporário/local para preenchimento. O dynamic-form omite do submit por padrão.\n\nSchema Capability:\n - Path: fieldMetadata[].submitPolicy\n Category: behavior\n Kind: enum\n Description: Política de submit para sobrescrever o padrão de campos locais/transient.\n\nSchema Capability:\n - Path: fieldMetadata[].materialDesign.appearance\n Category: appearance\n Kind: enum\n Description: Aparência do campo Material (fill/outline).\n\nSchema Capability:\n - Path: fieldMetadata[].materialDesign.color\n Category: appearance\n Kind: enum\n Description: Tema de cor Material (primary/accent/warn).\n\nSchema Capability:\n - Path: fieldMetadata[].materialDesign.floatLabel\n Category: appearance\n Kind: enum\n Description: Comportamento do rótulo flutuante.\n\nSchema Capability:\n - Path: fieldMetadata[].materialDesign.subscriptSizing\n Category: appearance\n Kind: enum\n Description: Estratégia de sizing do subscript (erros/hints).\n\nSchema Capability:\n - Path: fieldMetadata[].materialDesign.hideRequiredMarker\n Category: appearance\n Kind: boolean\n Description: Oculta o asterisco de campo obrigatório.\n\nSchema Capability:\n - Path: fieldMetadata[].materialDesign.density\n Category: appearance\n Kind: enum\n Description: Densidade do campo Material.\n\nSchema Capability:\n - Path: fieldMetadata[].materialDesign.disableRipple\n Category: appearance\n Kind: boolean\n Description: Desativa ripple/ondulação em componentes Material.\n\nSchema Capability:\n - Path: fieldMetadata[].materialDesign.customPalette\n Category: appearance\n Kind: object\n Description: Override de paleta (primary/accent/warn).\n\nSchema Capability:\n - Path: fieldMetadata[].materialDesign.animations\n Category: appearance\n Kind: object\n Description: Configuração de animações (disable, duration, easing).\n\nSchema Capability:\n - Path: fieldMetadata[].prefixIcon\n Category: appearance\n Kind: string\n Description: Ícone exibido antes do valor.\n\nSchema Capability:\n - Path: fieldMetadata[].suffixIcon\n Category: appearance\n Kind: string\n Description: Ícone exibido depois do valor.\n\nSchema Capability:\n - Path: fieldMetadata[].iconPosition\n Category: appearance\n Kind: enum\n Description: Posição preferencial do ícone principal.\n\nSchema Capability:\n - Path: fieldMetadata[].iconSize\n Category: appearance\n Kind: enum\n Description: Tamanho do ícone.\n\nSchema Capability:\n - Path: fieldMetadata[].iconColor\n Category: appearance\n Kind: string\n Description: Cor semântica ou token de cor aplicado ao ícone principal.\n\nSchema Capability:\n - Path: fieldMetadata[].iconClass\n Category: appearance\n Kind: string\n Description: Classe CSS controlada pelo host para o ícone principal.\n\nSchema Capability:\n - Path: fieldMetadata[].iconStyle\n Category: appearance\n Kind: string\n Description: Estilo visual semântico do ícone quando o renderer suportar variações.",
|
|
16865
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16866
|
+
"contentHash": "fd4b705c0e4b7d01233e4fe51a75532848dd9e3fd9ca5812f8faada5ee9f1fe0",
|
|
16867
|
+
"sourceKind": "component_definition",
|
|
16868
|
+
"sourceId": "praxis-filter-form",
|
|
16869
|
+
"corpusVersion": "1.0.0"
|
|
16870
|
+
},
|
|
16871
|
+
{
|
|
16872
|
+
"chunkIndex": 8,
|
|
16873
|
+
"chunkKind": "capabilities",
|
|
16874
|
+
"content": "Schema Capability:\n - Path: fieldMetadata[].iconFontSize\n Category: appearance\n Kind: string\n Description: Tamanho tipográfico do ícone principal.\n\nSchema Capability:\n - Path: fieldMetadata[].valuePresentation\n Category: appearance\n Kind: object\n Description: Formato canonico de exibicao em superficies readonly/display, como moeda, numero, percentual, data, datetime, time e boolean.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation\n Category: appearance\n Kind: object\n Description: Estado visual semantico base para presentationMode, incluindo presenter, tone, icon, label, badge, tooltip, appearance e formatter opcional.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.presenter\n Category: appearance\n Kind: enum\n Description: Tipo semantico de renderizacao em modo apresentacao.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.tone\n Category: appearance\n Kind: enum\n Description: Tom semantico mapeado pelo consumidor para tokens de tema.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.appearance\n Category: appearance\n Kind: enum\n Description: Nivel de enfase visual do apresentador.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.icon\n Category: appearance\n Kind: string\n Description: Nome de icone Material Symbols usado pelo apresentador semantico.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.label\n Category: identity\n Kind: string\n Description: Rotulo semantico exibido por apresentadores como status, badge ou chip.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.badge\n Category: appearance\n Kind: string\n Description: Marcador secundario opcional exibido junto ao valor em superficies de apresentacao.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.prefix\n Category: appearance\n Kind: string\n Description: Prefixo visual readonly aplicado ao valor apresentado, sem alterar payload, filtros, ordenacao ou exportacao.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.suffix\n Category: appearance\n Kind: string\n Description: Sufixo visual readonly aplicado ao valor apresentado, sem alterar payload, filtros, ordenacao ou exportacao.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.valuePresentation\n Category: appearance\n Kind: object\n Description: Override de formatacao aplicado apenas pela superficie de apresentacao.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.visualization\n Category: appearance\n Kind: object\n Description: Micro visualizacao renderer-neutral para superficies compactas como tabela, lista, header, card e form read-only.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.visualization.kind\n Category: appearance\n Kind: enum\n Description: Tipo semantico da micro visualizacao de apresentacao.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.visualization.surface\n Category: layout\n Kind: enum\n Description: Superficie alvo usada para aplicar regras de densidade e fallback.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.visualization.size\n Category: layout\n Kind: enum\n Description: Tamanho semantico da micro visualizacao.\n\nSchema Capability:\n - Path: fieldMetadata[].presentation.visualization.fallbackText\n Category: accessibility\n Kind: string\n Description: Texto equivalente obrigatorio para fallback, exportacao e leitores de tela.\n\nSchema Capability:\n - Path: fieldMetadata[].presentationRules\n Category: appearance\n Kind: array\n Description: Regras Json Logic ordenadas que sobrescrevem presentation em modo readonly/display; regras posteriores que casam vencem.\n\nSchema Capability:\n - Path: fieldMetadata[].presentationRules[].when\n Category: behavior\n Kind: object\n Description: Guarda Json Logic avaliada contra o contexto de apresentacao do campo.\n\nSchema Capability:\n - Path: fieldMetadata[].presentationRules[].set\n Category: appearance\n Kind: object\n Description: Patch semantico aplicado sobre presentation quando a guarda for verdadeira.\n\nSchema Capability:\n - Path: fieldMetadata[].mask\n Category: appearance\n Kind: string\n Description: Máscara de input (padrão do componente).\n\nSchema Capability:\n - Path: fieldMetadata[].format\n Category: appearance\n Kind: string\n Description: Formato de exibição (ex: pipes).\n\nSchema Capability:\n - Path: fieldMetadata[].validators\n Category: validation\n Kind: object\n Description: Objeto contendo todas as regras de validação.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.required\n Category: validation\n Kind: boolean\n Description: Campo obrigatório.\n\nSchema Capability:\n - Path: fieldMetadata[].required\n Category: validation\n Kind: boolean\n Description: Campo obrigatório (alias rápido do validators.required).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.requiredMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para required.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.email\n Category: validation\n Kind: boolean\n Description: Validação de formato de e-mail.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.emailMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para validação de email.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.minLength\n Category: validation\n Kind: number\n Description: Comprimento mínimo do texto.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.minLengthMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para minLength.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.maxLength\n Category: validation\n Kind: number\n Description: Comprimento máximo do texto.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.maxLengthMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para maxLength.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.min\n Category: validation\n Kind: number\n Description: Valor numérico mínimo.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.minMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para min.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.max\n Category: validation\n Kind: number\n Description: Valor numérico máximo.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.maxMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para max.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.pattern\n Category: validation\n Kind: string\n Description: Regex para validação.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.patternMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para pattern.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.cpf\n Category: validation\n Kind: boolean\n Description: Validador de CPF (legado).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.cnpj\n Category: validation\n Kind: boolean\n Description: Validador de CNPJ (legado).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.cpfCnpj\n Category: validation\n Kind: boolean\n Description: Validador automatico CPF/CNPJ (legado).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.cnpjAlpha\n Category: validation\n Kind: boolean\n Description: Validador de CNPJ alfanumerico (legado).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.cpfMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para CPF.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.cnpjMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para CNPJ.",
|
|
16875
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16876
|
+
"contentHash": "680baee6a38106f22c4710309b6d65ef7e59d1ee08bb65cca97f004070a99d0c",
|
|
16877
|
+
"sourceKind": "component_definition",
|
|
16878
|
+
"sourceId": "praxis-filter-form",
|
|
16879
|
+
"corpusVersion": "1.0.0"
|
|
16880
|
+
},
|
|
16881
|
+
{
|
|
16882
|
+
"chunkIndex": 9,
|
|
16883
|
+
"chunkKind": "capabilities",
|
|
16884
|
+
"content": "Schema Capability:\n - Path: fieldMetadata[].validators.cnpjAlphaMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para CNPJ alfanumerico.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.url\n Category: validation\n Kind: boolean\n Description: Validador de URL.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.urlMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para URL.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.minWords\n Category: validation\n Kind: number\n Description: Mínimo de palavras.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.requiredChecked\n Category: validation\n Kind: boolean\n Description: Exige checkbox marcado (ex: termos de uso).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.customValidator\n Category: validation\n Kind: expression\n Description: Validador customizado (função).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.asyncValidator\n Category: validation\n Kind: expression\n Description: Validador async customizado (função).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.matchField\n Category: validation\n Kind: string\n Description: Campo que deve coincidir (cross-field).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.matchFieldMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para matchField.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.uniqueValidator\n Category: validation\n Kind: expression\n Description: Validador de unicidade via API (função).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.uniqueMessage\n Category: validation\n Kind: string\n Description: Mensagem customizada para unicidade.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.conditionalValidation\n Category: validation\n Kind: array\n Description: Regras de validação condicional.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.conditionalValidation[].condition\n Category: validation\n Kind: expression\n Description: Condicao para aplicar validadores.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.conditionalValidation[].validators\n Category: validation\n Kind: object\n Description: Conjunto de validadores aplicados quando a condicao for verdadeira.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.validationTrigger\n Category: validation\n Kind: enum\n Description: Gatilho de validação no validator.\n\nSchema Capability:\n - Path: fieldMetadata[].validators.validationDebounce\n Category: validation\n Kind: number\n Description: Debounce de validação no validator (ms).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.showInlineErrors\n Category: validation\n Kind: boolean\n Description: Exibe erros inline (validator).\n\nSchema Capability:\n - Path: fieldMetadata[].validators.errorPosition\n Category: validation\n Kind: enum\n Description: Posicao do erro (validator).\n\nSchema Capability:\n - Path: fieldMetadata[].validationMode\n Category: validation\n Kind: enum\n Description: Gatilho da validação (change/blur/submit).\n\nSchema Capability:\n - Path: fieldMetadata[].debounceTime\n Category: validation\n Kind: number\n Description: Debounce para validação em ms.\n\nSchema Capability:\n - Path: fieldMetadata[].options\n Category: data\n Kind: array\n Description: Array de opções conforme controlType (ex.: { key, value } ou { value, text/display }).\n\nSchema Capability:\n - Path: fieldMetadata[].endpoint\n Category: data\n Kind: string\n Description: URL para carregar opções remotas.\n\nSchema Capability:\n - Path: fieldMetadata[].valueField\n Category: data\n Kind: string\n Description: Nome da propriedade de valor nas opções.\n\nSchema Capability:\n - Path: fieldMetadata[].displayField\n Category: data\n Kind: string\n Description: Nome da propriedade de texto nas opções.\n\nSchema Capability:\n - Path: fieldMetadata[].filterField\n Category: data\n Kind: string\n Description: Campo para filtragem no backend.\n\nSchema Capability:\n - Path: fieldMetadata[].queryParams\n Category: data\n Kind: object\n Description: Parâmetros fixos para a query do endpoint.\n\nSchema Capability:\n - Path: fieldMetadata[].cacheDuration\n Category: data\n Kind: number\n Description: Duração do cache de dados em ms.\n\nSchema Capability:\n - Path: fieldMetadata[].hidden\n Category: behavior\n Kind: boolean\n Description: Oculta o campo globalmente.\n\nSchema Capability:\n - Path: fieldMetadata[].visibleIn\n Category: behavior\n Kind: array\n Description: Contextos onde o campo é visível.\n\nSchema Capability:\n - Path: fieldMetadata[].formHidden\n Category: behavior\n Kind: boolean\n Description: Oculta apenas no formulário.\n\nSchema Capability:\n - Path: fieldMetadata[].tableHidden\n Category: behavior\n Kind: boolean\n Description: Oculta apenas na tabela.\n\nSchema Capability:\n - Path: fieldMetadata[].filterHidden\n Category: behavior\n Kind: boolean\n Description: Oculta apenas no filtro.\n\nSchema Capability:\n - Path: fieldMetadata[].fieldAccess\n Category: behavior\n Kind: object\n Description: Politica canonica de UX para visibilidade/edicao por authorities publicadas pelo backend.\n\nSchema Capability:\n - Path: fieldMetadata[].fieldAccess.visibleForAuthorities\n Category: behavior\n Kind: array\n Description: Authorities que podem ver o campo no runtime quando a UX tiver claims explicitas.\n\nSchema Capability:\n - Path: fieldMetadata[].fieldAccess.editableForAuthorities\n Category: behavior\n Kind: array\n Description: Authorities que podem editar o campo no runtime quando a UX tiver claims explicitas.\n\nSchema Capability:\n - Path: fieldMetadata[].fieldAccess.reason\n Category: misc\n Kind: string\n Description: Justificativa explicativa/auditavel da politica de acesso do campo.\n\nSchema Capability:\n - Path: fieldMetadata[].dependencyFields\n Category: dependency\n Kind: array\n Description: Campos dos quais este campo depende.\n\nSchema Capability:\n - Path: fieldMetadata[].conditionalRequired\n Category: dependency\n Kind: expression\n Description: Condição Json Logic para obrigatoriedade declarativa.\n\nSchema Capability:\n - Path: fieldMetadata[].conditionalDisplay\n Category: dependency\n Kind: expression\n Description: Condição Json Logic para visibilidade declarativa.\n\nSchema Capability:\n - Path: fieldMetadata[].dependencyFilterMap\n Category: dependency\n Kind: object\n Description: Mapeamento de filtro baseado na dependência.\n\nSchema Capability:\n - Path: fieldMetadata[].dependencyValuePath\n Category: dependency\n Kind: string\n Description: Caminho no valor da dependência.\n\nSchema Capability:\n - Path: fieldMetadata[].dependencyMergeStrategy\n Category: dependency\n Kind: enum\n Description: Estratégia de merge dos dados carregados.\n\nSchema Capability:\n - Path: fieldMetadata[].dependencyLoadOnChange\n Category: dependency\n Kind: enum\n Description: Quando recarregar dependência.\n\nSchema Capability:\n - Path: fieldMetadata[].resetOnDependentChange\n Category: dependency\n Kind: boolean\n Description: Zera valor se dependência mudar.\n\nSchema Capability:\n - Path: fieldMetadata[].enableDependencyCascade\n Category: dependency\n Kind: boolean\n Description: Habilita/desabilita cascata nativa de dependências entre campos.\n\nSchema Capability:\n - Path: fieldMetadata[].dependencyDebounceMs\n Category: dependency\n Kind: number\n Description: Delay para reagir à mudança de dependência.\n\nSchema Capability:\n - Path: fieldMetadata[].suppressInlineErrorsOnCascade\n Category: dependency\n Kind: boolean\n Description: Suprime erros inline durante cascata.",
|
|
16885
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16886
|
+
"contentHash": "02f3921c10fb0dd88775888b7143c2cad0a14ccd228d35ea95cdb587a28b3c3f",
|
|
16887
|
+
"sourceKind": "component_definition",
|
|
16888
|
+
"sourceId": "praxis-filter-form",
|
|
16889
|
+
"corpusVersion": "1.0.0"
|
|
16890
|
+
},
|
|
16891
|
+
{
|
|
16892
|
+
"chunkIndex": 10,
|
|
16893
|
+
"chunkKind": "capabilities",
|
|
16894
|
+
"content": "Schema Capability:\n - Path: fieldMetadata[].transformDisplayValue\n Category: transform\n Kind: expression\n Description: Transforma valor para exibição.\n\nSchema Capability:\n - Path: fieldMetadata[].transformSaveValue\n Category: transform\n Kind: expression\n Description: Transforma valor para salvar.\n\nSchema Capability:\n - Path: fieldMetadata[].textTransformApply\n Category: transform\n Kind: enum\n Description: Quando aplicar transformação de texto.\n\nSchema Capability:\n - Path: fieldMetadata[].inlineEditing\n Category: behavior\n Kind: boolean\n Description: Permite edição inline (tabelas).\n\nSchema Capability:\n - Path: fieldMetadata[].unique\n Category: validation\n Kind: boolean\n Description: Valida unicidade no backend.\n\nSchema Capability:\n - Path: fieldMetadata[].readOnly\n Category: behavior\n Kind: boolean\n Description: Campo somente leitura.\n\nSchema Capability:\n - Path: fieldMetadata[].disabled\n Category: behavior\n Kind: boolean\n Description: Campo desabilitado.\n\nSchema Capability:\n - Path: fieldMetadata[].defaultValue\n Category: data\n Kind: object\n Description: Valor inicial do campo.\n\nSchema Capability:\n - Path: fieldMetadata[].ariaLabel\n Category: accessibility\n Kind: string\n Description: Label para leitores de tela.\n\nSchema Capability:\n - Path: fieldMetadata[].ariaDescribedBy\n Category: accessibility\n Kind: string\n Description: IDs de descrição acessível.\n\nSchema Capability:\n - Path: fieldMetadata[].tabIndex\n Category: accessibility\n Kind: number\n Description: Ordem de tabulacao para teclado.\n\nSchema Capability:\n - Path: fieldMetadata[].accessKey\n Category: accessibility\n Kind: string\n Description: Atalho de teclado (accessKey).\n\nComponent Capability:\n - Path: inputs.resourcePath\n Category: inputs\n Kind: string\n Description: Caminho do recurso para carregar/salvar dados via CRUD.\n\nComponent Capability:\n - Path: inputs.resourceId\n Category: inputs\n Kind: string\n Description: ID do registro atual (string ou number).\n\nComponent Capability:\n - Path: inputs.initialValue\n Category: inputs\n Kind: object\n Description: Valores iniciais locais para campos host-authored ou complementares.\n\nComponent Capability:\n - Path: inputs.mode\n Category: inputs\n Kind: enum\n Description: Modo do formulario (create/edit/view).\n\nComponent Capability:\n - Path: inputs.config\n Category: inputs\n Kind: object\n Description: Configuracao completa do formulario (FormConfig).\n\nComponent Capability:\n - Path: inputs.schemaSource\n Category: inputs\n Kind: enum\n Description: Fonte de schema para construcao automatica (resource/filter).\n\nComponent Capability:\n - Path: inputs.schemaUrl\n Category: inputs\n Kind: string\n Description: Schema canonico explicito publicado pelo backend para hosts que seguem surfaces/actions/capabilities.\n\nComponent Capability:\n - Path: inputs.readUrl\n Category: inputs\n Kind: string\n Description: Endpoint canonico de leitura publicado por surface VIEW/READ_PROJECTION para hidratar a entidade exibida.\n\nComponent Capability:\n - Path: inputs.apiEndpointKey\n Category: inputs\n Kind: string\n Description: Endpoint canonico usado para resolver schemaUrl, readUrl e submitUrl relativos em hosts destacados.\n\nComponent Capability:\n - Path: inputs.submitUrl\n Category: inputs\n Kind: string\n Description: Endpoint canonico de submit publicado por surface/action.\n\nComponent Capability:\n - Path: inputs.submitMethod\n Category: inputs\n Kind: enum\n Description: Metodo HTTP canonico para o submit quando o backend publica operacao explicita.\n\nComponent Capability:\n - Path: inputs.submitIdempotencyKey\n Category: inputs\n Kind: string\n Description: Identidade estavel da tentativa de comando, materializada a partir da politica execution da action.\n\nComponent Capability:\n - Path: inputs.submitCorrelationId\n Category: inputs\n Kind: string\n Description: Identificador de correlacao governado para rastreabilidade ponta a ponta do comando.\n\nComponent Capability:\n - Path: inputs.submitResourceVersion\n Category: inputs\n Kind: string\n Description: Versao persistida esperada, transportada como If-Match quando exigida pela action.\n\nComponent Capability:\n - Path: inputs.submitResourceVersionTargetResourceKey\n Category: inputs\n Kind: string\n Description: Resource key canônico materializado pela action para resolver o ETag de outro agregado no momento do submit.\n\nComponent Capability:\n - Path: inputs.submitResourceVersionTargetIdField\n Category: inputs\n Kind: string\n Description: Campo exato do request que identifica o agregado cujo ETag governa a action.\n\nComponent Capability:\n - Path: inputs.responseSchemaUrl\n Category: inputs\n Kind: string\n Description: Schema de resposta publicado pelo backend para inspeção diagnostica/read-only do host.\n\nComponent Capability:\n - Path: inputs.enableCustomization\n Category: inputs\n Kind: boolean\n Description: Habilita a edicao de layout/configuracao no editor.\n\nComponent Capability:\n - Path: inputs.showAiAssistant\n Category: inputs\n Kind: boolean\n Description: Mostra os gatilhos do copiloto semantico Praxis para a instancia do formulario.\n\nComponent Capability:\n - Path: inputs.formId\n Category: inputs\n Kind: string\n Description: ID persistente para salvar configuracoes e preferencias.\n\nComponent Capability:\n - Path: inputs.editorialContext\n Category: inputs\n Kind: object\n Description: Override de contexto editorial fornecido pelo host para os blocos hospedados antes/depois do formulario.\n\nComponent Capability:\n - Path: inputs.layout\n Category: inputs\n Kind: object\n Description: Layout legado (FormLayout). Preferir inputs.config + sections.\n\nComponent Capability:\n - Path: inputs.generatedLayoutPreset\n Category: inputs\n Kind: enum\n Description: Preset usado somente na criacao inicial de FormConfig a partir de schema/metadata.\n\nComponent Capability:\n - Path: inputs.configPersistenceStrategy\n Category: inputs\n Kind: enum\n Description: Define se preferências locais persistidas ou o contrato explícito do host governam a materialização corrente.\n\nComponent Capability:\n - Path: inputs.layoutPolicy\n Category: inputs\n Kind: object\n Description: Politica opt-in para materializar layout diretamente do schema atual sem depender de FormConfig.sections authoradas.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.source\n Category: inputs\n Kind: enum\n Description: Define se o layout vem de configuracao authorada ou do schema.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.preset\n Category: inputs\n Kind: enum\n Description: Preset de layout schema-driven. compactPresentation cobre detalhe read-only; groupedCommand cobre create/edit.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.intent\n Category: inputs\n Kind: enum\n Description: Intencao da surface: detalhe/apresentacao ou comando/editavel.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.lifecycle\n Category: inputs\n Kind: enum\n Description: Ciclo de materializacao do layout schema-driven.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.persistence\n Category: inputs\n Kind: enum\n Description: Define se sections geradas sao transient ou podem virar layout authorado apos detach explicito.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.groupedCommand.orphanFieldExpansion\n Category: inputs\n Kind: enum\n Description: Define como uma linha groupedCommand com um unico campo usa o espaco restante. O default medium-and-wide expande spans 6 ou 8 e preserva campos compactos.",
|
|
16895
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16896
|
+
"contentHash": "26b2dfdc858e1b0af8adbd4557dec1561120af335ab33688421d1dda98a4281e",
|
|
16897
|
+
"sourceKind": "component_definition",
|
|
16898
|
+
"sourceId": "praxis-filter-form",
|
|
16899
|
+
"corpusVersion": "1.0.0"
|
|
16900
|
+
},
|
|
16901
|
+
{
|
|
16902
|
+
"chunkIndex": 11,
|
|
16903
|
+
"chunkKind": "capabilities",
|
|
16904
|
+
"content": "Component Capability:\n - Path: inputs.layoutPolicy.groupedCommand.contextFields\n Category: inputs\n Kind: array\n Description: Campos canônicos do request cujo valor vem do contexto da surface. Eles permanecem no FormGroup e no payload, sem renderizar controles redundantes.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.groupedCommand.partialRowStrategy\n Category: inputs\n Kind: enum\n Description: Define se cada linha visual parcial, depois de resolver visibilidade responsiva, CSS order e wrap, preserva os spans canônicos ou redistribui apenas campos compatíveis para completar 12 colunas no breakpoint atual.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary\n Category: inputs\n Kind: object\n Description: Politica declarativa para resumo read-only compacto em compactPresentation, sem FormConfig.sections locais.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.includeFields\n Category: inputs\n Kind: array\n Description: Lista de campos canônicos do schema que devem entrar no resumo read-only compacto.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.excludeFields\n Category: inputs\n Kind: array\n Description: Lista de campos canônicos do schema que devem ficar fora do resumo read-only compacto.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.includeGroups\n Category: inputs\n Kind: array\n Description: Lista de grupos do schema que devem entrar no resumo read-only compacto.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.excludeGroups\n Category: inputs\n Kind: array\n Description: Lista de grupos do schema que devem ficar fora do resumo read-only compacto.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.includeRoles\n Category: inputs\n Kind: array\n Description: Lista de papeis semanticos de campo que devem entrar no resumo read-only compacto.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.excludeRoles\n Category: inputs\n Kind: array\n Description: Lista de papeis semanticos de campo que devem ficar fora do resumo read-only compacto.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.maxFields\n Category: inputs\n Kind: number\n Description: Limite maximo de campos materializados no primeiro painel compacto.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.fieldPriority\n Category: inputs\n Kind: object\n Description: Mapa campo -> prioridade para ordenar campos do resumo quando o schema publica candidatos suficientes.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.groupPriority\n Category: inputs\n Kind: object\n Description: Mapa grupo -> prioridade para ordenar grupos do resumo quando o schema publica agrupamento semantico.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.columns\n Category: inputs\n Kind: number\n Description: Quantidade base de colunas para distribuir campos de resumo schema-driven sem criar FormConfig.sections locais.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.responsiveColumns\n Category: inputs\n Kind: object\n Description: Mapa de colunas por breakpoint xs/sm/md/lg/xl para detalhes read-only compactos em drawers, side sheets e desktop largo.\n\nComponent Capability:\n - Path: inputs.layoutPolicy.detailSummary.widthPrecedence\n Category: inputs\n Kind: enum\n Description: Define se larguras explicitas do schema ou a densidade do resumo controlam os spans no compactPresentation read-only.\n\nComponent Capability:\n - Path: inputs.fieldIconPolicy\n Category: inputs\n Kind: enum\n Description: Controla se icones prefix/suffix dos metadados aparecem em todos os modos, apenas apresentacao, ou nunca.\n\nComponent Capability:\n - Path: inputs.backConfig\n Category: inputs\n Kind: object\n Description: Configuracao de navegacao/retorno (BackConfig).\n\nComponent Capability:\n - Path: inputs.backConfig.strategy\n Category: inputs\n Kind: enum\n Description: Estrategia de retorno (auto/close/navigate).\n\nComponent Capability:\n - Path: inputs.backConfig.returnTo\n Category: inputs\n Kind: string\n Description: Rota para retornar quando strategy=navigate.\n\nComponent Capability:\n - Path: inputs.backConfig.confirmOnDirty\n Category: inputs\n Kind: boolean\n Description: Solicita confirmacao ao sair com mudancas nao salvas.\n\nComponent Capability:\n - Path: inputs.hooks\n Category: inputs\n Kind: object\n Description: Declaracoes de hooks fornecidas diretamente ao componente.\n\nComponent Capability:\n - Path: inputs.hooks.beforeInit[]\n Category: hooks\n Kind: array\n Description: Hooks executados antes da inicializacao.\n\nComponent Capability:\n - Path: inputs.hooks.afterInit[]\n Category: hooks\n Kind: array\n Description: Hooks executados apos a inicializacao.\n\nComponent Capability:\n - Path: inputs.hooks.beforeValidate[]\n Category: hooks\n Kind: array\n Description: Hooks executados antes da validacao.\n\nComponent Capability:\n - Path: inputs.hooks.afterValidate[]\n Category: hooks\n Kind: array\n Description: Hooks executados apos a validacao.\n\nComponent Capability:\n - Path: inputs.hooks.beforeSubmit[]\n Category: hooks\n Kind: array\n Description: Hooks executados antes do submit.\n\nComponent Capability:\n - Path: inputs.hooks.afterSubmit[]\n Category: hooks\n Kind: array\n Description: Hooks executados apos o submit.\n\nComponent Capability:\n - Path: inputs.hooks.onError[]\n Category: hooks\n Kind: array\n Description: Hooks executados em erros de submit/validacao.\n\nComponent Capability:\n - Path: inputs.removeEmptyContainersOnSave\n Category: inputs\n Kind: boolean\n Description: Remove containers vazios ao salvar configuracao.\n\nComponent Capability:\n - Path: inputs.reactiveValidation\n Category: inputs\n Kind: boolean\n Description: Ativa validacao reativa (afterValidate em valueChanges).\n\nComponent Capability:\n - Path: inputs.reactiveValidationDebounceMs\n Category: inputs\n Kind: number\n Description: Debounce em ms para validacao reativa.\n\nComponent Capability:\n - Path: inputs.notifyIfOutdated\n Category: inputs\n Kind: enum\n Description: Canal de notificacao para schema desatualizado.\n\nComponent Capability:\n - Path: inputs.snoozeMs\n Category: inputs\n Kind: number\n Description: Duracao do snooze para alertas de schema.\n\nComponent Capability:\n - Path: inputs.autoOpenSettingsOnOutdated\n Category: inputs\n Kind: boolean\n Description: Abre automaticamente o editor ao detectar schema desatualizado.\n\nComponent Capability:\n - Path: inputs.readonlyModeGlobal\n Category: inputs\n Kind: boolean\n Description: Forca modo somente leitura global.\n\nComponent Capability:\n - Path: inputs.disabledModeGlobal\n Category: inputs\n Kind: boolean\n Description: Forca modo desabilitado global.\n\nComponent Capability:\n - Path: inputs.presentationModeGlobal\n Category: inputs\n Kind: boolean\n Description: Ativa modo de apresentacao global (somente view).\n\nComponent Capability:\n - Path: inputs.visibleGlobal\n Category: inputs\n Kind: boolean\n Description: Forca visibilidade global dos campos.\n\nComponent Capability:\n - Path: inputs.customEndpoints\n Category: inputs\n Kind: object\n Description: Override de endpoints CRUD (EndpointConfig).\n\nComponent Capability:\n - Path: inputs.customEndpoints.getAll\n Category: inputs\n Kind: string\n Description: Endpoint customizado para listar registros.\n\nComponent Capability:\n - Path: inputs.customEndpoints.getById\n Category: inputs\n Kind: string\n Description: Endpoint customizado para obter registro por ID.\n\nComponent Capability:\n - Path: inputs.customEndpoints.create\n Category: inputs\n Kind: string\n Description: Endpoint customizado para criar registro.",
|
|
16905
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16906
|
+
"contentHash": "d8a5bd44a76042ef92898e9140289bc09495b4ae07573b497e95c9abdc1ab4a7",
|
|
16907
|
+
"sourceKind": "component_definition",
|
|
16908
|
+
"sourceId": "praxis-filter-form",
|
|
16909
|
+
"corpusVersion": "1.0.0"
|
|
16910
|
+
},
|
|
16911
|
+
{
|
|
16912
|
+
"chunkIndex": 12,
|
|
16913
|
+
"chunkKind": "capabilities",
|
|
16914
|
+
"content": "Component Capability:\n - Path: inputs.customEndpoints.update\n Category: inputs\n Kind: string\n Description: Endpoint customizado para atualizar registro.\n\nComponent Capability:\n - Path: inputs.customEndpoints.delete\n Category: inputs\n Kind: string\n Description: Endpoint customizado para deletar registro.\n\nComponent Capability:\n - Path: inputs.customEndpoints.filter\n Category: inputs\n Kind: string\n Description: Endpoint customizado para filtro.\n\nComponent Capability:\n - Path: inputs.customEndpoints.schema\n Category: inputs\n Kind: string\n Description: Endpoint customizado para schemas.\n\nComponent Capability:\n - Path: inputs.config.presentation\n Category: appearance\n Kind: object\n Description: Preferencias visuais persistidas no config.\n\nComponent Capability:\n - Path: inputs.config.presentation.labelFontSize\n Category: appearance\n Kind: number\n Description: Tamanho da fonte do label (px).\n\nComponent Capability:\n - Path: inputs.config.presentation.valueFontSize\n Category: appearance\n Kind: number\n Description: Tamanho da fonte do valor (px).\n\nComponent Capability:\n - Path: inputs.config.presentation.labelPosition\n Category: appearance\n Kind: enum\n Description: Posicionamento do label (above/left).\n\nComponent Capability:\n - Path: inputs.config.presentation.compact\n Category: appearance\n Kind: boolean\n Description: Modo compacto de apresentacao.\n\nComponent Capability:\n - Path: inputs.config.presentation.density\n Category: appearance\n Kind: enum\n Description: Densidade visual global.\n\nComponent Capability:\n - Path: inputs.config.presentation.labelWidth\n Category: appearance\n Kind: number\n Description: Largura do label (px).\n\nComponent Capability:\n - Path: inputs.config.presentation.labelAlign\n Category: appearance\n Kind: enum\n Description: Alinhamento do label.\n\nComponent Capability:\n - Path: inputs.config.presentation.valueAlign\n Category: appearance\n Kind: enum\n Description: Alinhamento do valor.\n\nComponent Capability:\n - Path: outputs.formSubmit\n Category: outputs\n Kind: object\n Description: Evento emitido no submit do formulario.\n\nComponent Capability:\n - Path: outputs.formCancel\n Category: outputs\n Kind: object\n Description: Evento emitido ao cancelar.\n\nComponent Capability:\n - Path: outputs.formReset\n Category: outputs\n Kind: object\n Description: Evento emitido ao resetar o formulario.\n\nComponent Capability:\n - Path: outputs.configChange\n Category: outputs\n Kind: object\n Description: Evento emitido quando a configuracao muda.\n\nComponent Capability:\n - Path: outputs.formReady\n Category: outputs\n Kind: object\n Description: Evento emitido quando o formulario esta pronto.\n\nComponent Capability:\n - Path: outputs.valueChange\n Category: outputs\n Kind: object\n Description: Evento emitido quando o valor do formulario muda.\n\nComponent Capability:\n - Path: outputs.syncCompleted\n Category: outputs\n Kind: object\n Description: Evento emitido ao completar sincronizacao com schema.\n\nComponent Capability:\n - Path: outputs.initializationError\n Category: outputs\n Kind: object\n Description: Evento emitido quando ocorre erro na inicializacao.\n\nComponent Capability:\n - Path: outputs.enableCustomizationChange\n Category: outputs\n Kind: object\n Description: Evento emitido quando o modo de customizacao muda.\n\nComponent Capability:\n - Path: outputs.customAction\n Category: outputs\n Kind: object\n Description: Evento emitido ao disparar acao customizada.\n\nComponent Capability:\n - Path: outputs.actionConfirmation\n Category: outputs\n Kind: object\n Description: Evento emitido quando acao requer confirmacao.\n\nComponent Capability:\n - Path: outputs.schemaStatusChange\n Category: outputs\n Kind: object\n Description: Evento emitido quando o status do schema muda.\n\nCapability Note:\n - Este catalogo descreve inputs e outputs do componente.\n\nCapability Note:\n - O objeto inputs.config segue o schema de FormConfig (veja form-ai-capabilities).\n\nCapability Note:\n - inputs.config.presentation e uma extensao de runtime aplicada pelo componente.\n\nCapability Note:\n - Preferir FormConfig (sections/fieldMetadata) em vez do layout legado (fieldsets).\n\nCapability Note:\n - Use inputs.editorialContext apenas para override de contexto editorial do host; a precedencia final e runtime < config.editorialContext < host.\n\nCapability Note:\n - rich content editorial hospedado pelo form pode ser renderizado em tres slots semanticos: before, beforeActions e after.",
|
|
16915
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/form-ai-capabilities.ts",
|
|
16916
|
+
"contentHash": "8cde02bbb0100a17feb34ecf1e03642b852a82d237170763ad456693ee7b8789",
|
|
16917
|
+
"sourceKind": "component_definition",
|
|
16918
|
+
"sourceId": "praxis-filter-form",
|
|
16919
|
+
"corpusVersion": "1.0.0"
|
|
16920
|
+
},
|
|
16921
|
+
{
|
|
16922
|
+
"chunkIndex": 13,
|
|
16923
|
+
"chunkKind": "authoring_manifest",
|
|
16924
|
+
"content": "{\"operationId\":\"field.label.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Alterar rótulo do campo Effects: merge-by-key. Mudar o label do campo email para \\\"E-mail Corporativo\\\" Alterar o label do campo \\\"campoInexistente\\\" Salvar e reabrir o formulário editado sem drift de configuração\",\"scope\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"required\":true},\"inputContract\":{\"required\":[\"label\"],\"properties\":[\"label\"],\"semanticTerms\":[\"label\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"fieldMetadata[].label\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"relabel-schema-backed-field\",\"request\":\"Mudar o label do campo email para \\\"E-mail Corporativo\\\"\",\"operationId\":\"field.label.set\",\"target\":\"email\",\"params\":{\"label\":\"E-mail Corporativo\"},\"isPositive\":true},{\"id\":\"round-trip-no-drift\",\"request\":\"Salvar e reabrir o formulário editado sem drift de configuração\",\"operationId\":\"field.label.set\",\"target\":\"nome\",\"params\":{\"label\":\"Nome Completo\"},\"isPositive\":true}],\"negativeExamples\":[{\"id\":\"reject-unknown-field\",\"request\":\"Alterar o label do campo \\\"campoInexistente\\\"\",\"operationId\":\"field.label.set\",\"target\":\"campoInexistente\",\"params\":{\"label\":\"Novo Label\"},\"isPositive\":false}]}",
|
|
16925
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
16926
|
+
"contentHash": "aefd9936aa6a567724b9418d10042f52847632ea8c1072b80d4dd7a75434e5ef",
|
|
16927
|
+
"sourceKind": "component_definition",
|
|
16928
|
+
"sourceId": "praxis-filter-form",
|
|
16929
|
+
"corpusVersion": "1.0.0"
|
|
16930
|
+
},
|
|
16931
|
+
{
|
|
16932
|
+
"chunkIndex": 14,
|
|
16933
|
+
"chunkKind": "authoring_manifest",
|
|
16934
|
+
"content": "{\"operationId\":\"field.placeholder.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Alterar placeholder do campo Effects: merge-by-key.\",\"scope\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"required\":true},\"inputContract\":{\"required\":[\"placeholder\"],\"properties\":[\"placeholder\"],\"semanticTerms\":[\"placeholder\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"fieldMetadata[].placeholder\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
16935
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
16936
|
+
"contentHash": "a64b6e01d4b728908b3dc79ae24158fd9a7d0de894398395db71cf39994669d0",
|
|
16937
|
+
"sourceKind": "component_definition",
|
|
16938
|
+
"sourceId": "praxis-filter-form",
|
|
16939
|
+
"corpusVersion": "1.0.0"
|
|
16940
|
+
},
|
|
16941
|
+
{
|
|
16942
|
+
"chunkIndex": 15,
|
|
16943
|
+
"chunkKind": "authoring_manifest",
|
|
16944
|
+
"content": "{\"operationId\":\"field.required.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Definir obrigatoriedade Effects: merge-by-key.\",\"scope\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"required\":true},\"inputContract\":{\"required\":[\"required\"],\"properties\":[\"required\"],\"semanticTerms\":[\"required\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"fieldMetadata[].required\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"affects-schema-backed-data\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
16945
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
16946
|
+
"contentHash": "eb97bd1a6699132ba93d0abac7afb2a0cecbcff3f195a4c985a1c09262fd066d",
|
|
16947
|
+
"sourceKind": "component_definition",
|
|
16948
|
+
"sourceId": "praxis-filter-form",
|
|
16949
|
+
"corpusVersion": "1.0.0"
|
|
16950
|
+
},
|
|
16951
|
+
{
|
|
16952
|
+
"chunkIndex": 16,
|
|
16953
|
+
"chunkKind": "authoring_manifest",
|
|
16954
|
+
"content": "{\"operationId\":\"field.readOnly.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Definir campo como somente leitura Effects: merge-by-key.\",\"scope\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"required\":true},\"inputContract\":{\"required\":[\"readOnly\"],\"properties\":[\"readOnly\"],\"semanticTerms\":[\"readOnly\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"fieldMetadata[].readOnly\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"affects-schema-backed-data\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
16955
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
16956
|
+
"contentHash": "3dc23efb35ca6ae9e614ff0113d30d3da360b5d784d0102e0425582be85df80b",
|
|
16957
|
+
"sourceKind": "component_definition",
|
|
16958
|
+
"sourceId": "praxis-filter-form",
|
|
16959
|
+
"corpusVersion": "1.0.0"
|
|
16960
|
+
},
|
|
16961
|
+
{
|
|
16962
|
+
"chunkIndex": 17,
|
|
16963
|
+
"chunkKind": "authoring_manifest",
|
|
16964
|
+
"content": "{\"operationId\":\"field.disabled.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Definir campo como desabilitado Effects: merge-by-key.\",\"scope\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"required\":true},\"inputContract\":{\"required\":[\"disabled\"],\"properties\":[\"disabled\"],\"semanticTerms\":[\"disabled\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"fieldMetadata[].disabled\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"affects-schema-backed-data\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
16965
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
16966
|
+
"contentHash": "b8b4e1f530dbe23126bafb73e6153f9b892185cd8cee3a959d5324494df73620",
|
|
16967
|
+
"sourceKind": "component_definition",
|
|
16968
|
+
"sourceId": "praxis-filter-form",
|
|
16969
|
+
"corpusVersion": "1.0.0"
|
|
16970
|
+
},
|
|
16971
|
+
{
|
|
16972
|
+
"chunkIndex": 18,
|
|
16973
|
+
"chunkKind": "authoring_manifest",
|
|
16974
|
+
"content": "{\"operationId\":\"field.hidden.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Definir visibilidade inicial Effects: merge-by-key.\",\"scope\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"required\":true},\"inputContract\":{\"required\":[\"hidden\"],\"properties\":[\"hidden\"],\"semanticTerms\":[\"hidden\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"fieldMetadata[].hidden\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
16975
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
16976
|
+
"contentHash": "20f4c09156a4cabe2ab87c7b4a0224494f9b79e562fc705a9e64471e5a83bfa0",
|
|
16977
|
+
"sourceKind": "component_definition",
|
|
16978
|
+
"sourceId": "praxis-filter-form",
|
|
16979
|
+
"corpusVersion": "1.0.0"
|
|
16980
|
+
},
|
|
16981
|
+
{
|
|
16982
|
+
"chunkIndex": 19,
|
|
16983
|
+
"chunkKind": "authoring_manifest",
|
|
16984
|
+
"content": "{\"operationId\":\"field.controlType.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Alterar tipo de controle Effects: merge-by-key.\",\"scope\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"required\":true},\"inputContract\":{\"required\":[\"controlType\"],\"properties\":[\"controlType\"],\"semanticTerms\":[\"controlType\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"fieldMetadata[].controlType\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"},{\"validatorId\":\"control-type-compatible\",\"level\":\"error\",\"code\":\"DF017\",\"description\":\"O tipo de controle deve ser compatível com o tipo de dado do campo.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"affects-schema-backed-data\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
16985
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
16986
|
+
"contentHash": "2af7985cb1c02cd1b8e1d45114993f7c3eba4c8a324b770afc40c0244ab24613",
|
|
16987
|
+
"sourceKind": "component_definition",
|
|
16988
|
+
"sourceId": "praxis-filter-form",
|
|
16989
|
+
"corpusVersion": "1.0.0"
|
|
16990
|
+
},
|
|
16991
|
+
{
|
|
16992
|
+
"chunkIndex": 20,
|
|
16993
|
+
"chunkKind": "authoring_manifest",
|
|
16994
|
+
"content": "{\"operationId\":\"field.optionSource.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Definir fonte de opções do campo Effects: merge-by-key.\",\"scope\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"required\":true},\"inputContract\":{\"required\":[\"optionSource\"],\"properties\":[\"optionSource\"],\"semanticTerms\":[\"optionSource\",\"optionSource.key\",\"optionSource.type\",\"optionSource.resourcePath\",\"optionSource.valuePropertyPath\",\"optionSource.labelPropertyPath\",\"optionSource.dependsOn\",\"optionSource.dependencyFilterMap\",\"optionSource.includeIds\",\"optionSource.capabilities\",\"optionSource.display\",\"optionSource.selectionPolicy\",\"RESOURCE_ENTITY\",\"DISTINCT_DIMENSION\",\"CATEGORICAL_BUCKET\",\"LIGHT_LOOKUP\",\"STATIC_CANONICAL\",\"optionSource.capabilities.filter\",\"optionSource.capabilities.byIds\",\"optionSource.capabilities.detail\",\"optionSource.capabilities.create\"]},\"effects\":[\"merge-by-key\"],\"affectedPaths\":[\"fieldMetadata[].optionSource\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"},{\"validatorId\":\"option-source-valid\",\"level\":\"error\",\"code\":\"DF018\",\"description\":\"A fonte de opções deve ser válida para o tipo de controle especificado.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"affects-remote-binding\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
16995
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
16996
|
+
"contentHash": "141df76ce7415ba22db1fda30b3edfda54e581c7bec6989f3e576c8f48cb90e1",
|
|
16997
|
+
"sourceKind": "component_definition",
|
|
16998
|
+
"sourceId": "praxis-filter-form",
|
|
16999
|
+
"corpusVersion": "1.0.0"
|
|
17000
|
+
},
|
|
17001
|
+
{
|
|
17002
|
+
"chunkIndex": 21,
|
|
17003
|
+
"chunkKind": "authoring_manifest",
|
|
17004
|
+
"content": "{\"operationId\":\"field.local.add\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Adicionar campo local Effects: append-unique. Adicionar campo auxiliar local \\\"notasInternas\\\" que não deve aparecer no payload de envio\",\"scope\":\"global\",\"target\":{\"kind\":\"localField\",\"resolver\":\"field-by-name\",\"required\":false},\"inputContract\":{\"required\":[\"name\",\"label\",\"controlType\",\"source\"],\"properties\":[\"name\",\"label\",\"controlType\",\"source\",\"transient\",\"submitPolicy\"],\"semanticTerms\":[\"name\",\"label\",\"controlType\",\"source\",\"transient\",\"submitPolicy\",\"local\",\"omit\",\"include\",\"includeWhenDirty\"]},\"effects\":[\"append-unique\"],\"affectedPaths\":[\"fieldMetadata[]\"],\"validators\":[{\"validatorId\":\"field-name-unique\",\"level\":\"error\",\"code\":\"DF002\",\"description\":\"Nomes de campos devem ser únicos em fieldMetadata.\"},{\"validatorId\":\"local-schema-name-no-collision\",\"level\":\"error\",\"code\":\"DF006\",\"description\":\"Nome de campo local não pode colidir com campo schema-backed existente.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"affects-submission\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"add-local-transient-field\",\"request\":\"Adicionar campo auxiliar local \\\"notasInternas\\\" que não deve aparecer no payload de envio\",\"operationId\":\"field.local.add\",\"params\":{\"name\":\"notasInternas\",\"label\":\"Notas Internas\",\"controlType\":\"textarea\",\"source\":\"local\",\"transient\":true,\"submitPolicy\":\"omit\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
17005
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17006
|
+
"contentHash": "34a32fd34acaab90e8d8119265b3769a2b5d59c74bf81c96e0754f83a3f1bc14",
|
|
17007
|
+
"sourceKind": "component_definition",
|
|
17008
|
+
"sourceId": "praxis-filter-form",
|
|
17009
|
+
"corpusVersion": "1.0.0"
|
|
17010
|
+
},
|
|
17011
|
+
{
|
|
17012
|
+
"chunkIndex": 22,
|
|
17013
|
+
"chunkKind": "authoring_manifest",
|
|
17014
|
+
"content": "{\"operationId\":\"field.local.remove\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Remover campo local Effects: remove-by-key, compile-domain-patch. Remover o campo auxiliar \\\"notasInternas\\\"\",\"scope\":\"field\",\"target\":{\"kind\":\"localField\",\"resolver\":\"field-by-name\",\"required\":true},\"inputContract\":{\"required\":[],\"properties\":[],\"semanticTerms\":[]},\"effects\":[\"remove-by-key\",\"compile-domain-patch\"],\"affectedPaths\":[\"fieldMetadata[]\",\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"},{\"validatorId\":\"field-is-local\",\"level\":\"error\",\"code\":\"DF007\",\"description\":\"Operação restrita a campos locais (source:\\\"local\\\"). Campo schema-backed não pode ser removido ou ter submitPolicy alterada.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"affects-submission\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"require-confirmation-remove-field\",\"request\":\"Remover o campo auxiliar \\\"notasInternas\\\"\",\"operationId\":\"field.local.remove\",\"target\":\"notasInternas\",\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
17015
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17016
|
+
"contentHash": "827cec2d58e728524d03bf7703c7436c3b87bba571842a69be6c855c8772c2f0",
|
|
17017
|
+
"sourceKind": "component_definition",
|
|
17018
|
+
"sourceId": "praxis-filter-form",
|
|
17019
|
+
"corpusVersion": "1.0.0"
|
|
17020
|
+
},
|
|
17021
|
+
{
|
|
17022
|
+
"chunkIndex": 23,
|
|
17023
|
+
"chunkKind": "authoring_manifest",
|
|
17024
|
+
"content": "{\"operationId\":\"layout.section.add\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Adicionar nova seção Effects: append-unique.\",\"scope\":\"global\",\"target\":{\"kind\":\"section\",\"resolver\":\"section-by-id-or-title\",\"required\":false},\"inputContract\":{\"required\":[\"id\",\"title\"],\"properties\":[\"id\",\"title\",\"icon\",\"collapsible\"],\"semanticTerms\":[\"id\",\"title\",\"icon\",\"collapsible\"]},\"effects\":[\"append-unique\"],\"affectedPaths\":[\"sections[]\"],\"validators\":[{\"validatorId\":\"section-id-unique\",\"level\":\"error\",\"code\":\"DF003\",\"description\":\"IDs de seções devem ser únicos em sections[].\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
17025
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17026
|
+
"contentHash": "6fe9e02f6513f5a1bfdd8334d5c1f9da2820d416a0b438ae425820b4c602b09f",
|
|
17027
|
+
"sourceKind": "component_definition",
|
|
17028
|
+
"sourceId": "praxis-filter-form",
|
|
17029
|
+
"corpusVersion": "1.0.0"
|
|
17030
|
+
},
|
|
17031
|
+
{
|
|
17032
|
+
"chunkIndex": 24,
|
|
17033
|
+
"chunkKind": "authoring_manifest",
|
|
17034
|
+
"content": "{\"operationId\":\"layout.section.remove\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Remover seção Effects: remove-by-key, compile-domain-patch. Remover a seção \\\"Dados Adicionais\\\"\",\"scope\":\"section\",\"target\":{\"kind\":\"section\",\"resolver\":\"section-by-id-or-title\",\"required\":true},\"inputContract\":{\"required\":[],\"properties\":[],\"semanticTerms\":[]},\"effects\":[\"remove-by-key\",\"compile-domain-patch\"],\"affectedPaths\":[\"sections[]\",\"sections[].rows[]\",\"sections[].rows[].columns[]\",\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"validators\":[{\"validatorId\":\"section-exists\",\"level\":\"error\",\"code\":\"DF004\",\"description\":\"A seção alvo deve existir em sections[].\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"require-confirmation-remove-section\",\"request\":\"Remover a seção \\\"Dados Adicionais\\\"\",\"operationId\":\"layout.section.remove\",\"target\":\"secao-dados-adicionais\",\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
17035
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17036
|
+
"contentHash": "7b8e5aae8a403642cda17d17bb1eb5c1bdde25bd8784d1b1d7ee6f10d611685b",
|
|
17037
|
+
"sourceKind": "component_definition",
|
|
17038
|
+
"sourceId": "praxis-filter-form",
|
|
17039
|
+
"corpusVersion": "1.0.0"
|
|
17040
|
+
},
|
|
17041
|
+
{
|
|
17042
|
+
"chunkIndex": 25,
|
|
17043
|
+
"chunkKind": "authoring_manifest",
|
|
17044
|
+
"content": "{\"operationId\":\"layout.row.add\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Adicionar linha numa seção Effects: append-unique.\",\"scope\":\"section\",\"target\":{\"kind\":\"section\",\"resolver\":\"section-by-id-or-title\",\"required\":true},\"inputContract\":{\"required\":[\"id\"],\"properties\":[\"id\",\"columns\"],\"semanticTerms\":[\"id\",\"columns\"]},\"effects\":[\"append-unique\"],\"affectedPaths\":[\"sections[].rows[]\"],\"validators\":[{\"validatorId\":\"section-exists\",\"level\":\"error\",\"code\":\"DF004\",\"description\":\"A seção alvo deve existir em sections[].\"},{\"validatorId\":\"row-id-unique-in-section\",\"level\":\"error\",\"code\":\"DF015\",\"description\":\"O id da nova linha deve ser único dentro da seção alvo.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
17045
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17046
|
+
"contentHash": "d71d2b35be72f93729539003bc67a055df898302f97f39900830383929f25a61",
|
|
17047
|
+
"sourceKind": "component_definition",
|
|
17048
|
+
"sourceId": "praxis-filter-form",
|
|
17049
|
+
"corpusVersion": "1.0.0"
|
|
17050
|
+
},
|
|
17051
|
+
{
|
|
17052
|
+
"chunkIndex": 26,
|
|
17053
|
+
"chunkKind": "authoring_manifest",
|
|
17054
|
+
"content": "{\"operationId\":\"layout.column.add\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Adicionar coluna numa linha Effects: append-unique.\",\"scope\":\"row\",\"target\":{\"kind\":\"row\",\"resolver\":\"row-by-id-in-section\",\"required\":true},\"inputContract\":{\"required\":[\"id\"],\"properties\":[\"id\",\"span\"],\"semanticTerms\":[\"id\",\"span\"]},\"effects\":[\"append-unique\"],\"affectedPaths\":[\"sections[].rows[].columns[]\"],\"validators\":[{\"validatorId\":\"row-exists\",\"level\":\"error\",\"code\":\"DF014\",\"description\":\"A linha alvo deve existir na seção especificada.\"},{\"validatorId\":\"column-id-unique-in-row\",\"level\":\"error\",\"code\":\"DF016\",\"description\":\"O id da nova coluna deve ser único dentro da linha alvo.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
|
|
17055
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17056
|
+
"contentHash": "c3dfcf52212d66a13cea6dee6f8dc998723d621b75091f5c86ad5faf0635c670",
|
|
17057
|
+
"sourceKind": "component_definition",
|
|
17058
|
+
"sourceId": "praxis-filter-form",
|
|
17059
|
+
"corpusVersion": "1.0.0"
|
|
17060
|
+
},
|
|
17061
|
+
{
|
|
17062
|
+
"chunkIndex": 27,
|
|
17063
|
+
"chunkKind": "authoring_manifest",
|
|
17064
|
+
"content": "{\"operationId\":\"layout.field.move\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Mover campo no layout Effects: compile-domain-patch. Mover campo telefone para a primeira coluna da seção de contato\",\"scope\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"required\":true},\"inputContract\":{\"required\":[\"targetSectionId\",\"targetRowId\",\"targetColumnId\"],\"properties\":[\"targetSectionId\",\"targetRowId\",\"targetColumnId\",\"index\"],\"semanticTerms\":[\"targetSectionId\",\"targetRowId\",\"targetColumnId\",\"index\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"},{\"validatorId\":\"layout-target-exists\",\"level\":\"error\",\"code\":\"DF012\",\"description\":\"A seção/linha/coluna de destino devem existir antes de mover o campo.\"},{\"validatorId\":\"no-index-as-identity\",\"level\":\"error\",\"code\":\"DF013\",\"description\":\"Operações de layout não devem usar índice de array como identidade canônica; use IDs estáveis.\"},{\"validatorId\":\"field-exists-in-layout\",\"level\":\"warning\",\"code\":\"DF005\",\"description\":\"Campo definido em fieldMetadata mas ausente no layout.\"}],\"preconditions\":[\"config-initialized\",\"target-exists\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"move-field-to-column\",\"request\":\"Mover campo telefone para a primeira coluna da seção de contato\",\"operationId\":\"layout.field.move\",\"target\":\"telefone\",\"params\":{\"targetSectionId\":\"secao-contato\",\"targetRowId\":\"row-1\",\"targetColumnId\":\"col-1\"},\"isPositive\":true}],\"negativeExamples\":[]}",
|
|
17065
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17066
|
+
"contentHash": "41bf83d2864ebe7f69697ee6f8a4e5f12dbfd3afaefe9830d5c9e14d7aeee30c",
|
|
17067
|
+
"sourceKind": "component_definition",
|
|
17068
|
+
"sourceId": "praxis-filter-form",
|
|
17069
|
+
"corpusVersion": "1.0.0"
|
|
17070
|
+
},
|
|
17071
|
+
{
|
|
17072
|
+
"chunkIndex": 28,
|
|
17073
|
+
"chunkKind": "authoring_manifest",
|
|
17074
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"identity\"}",
|
|
17075
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17076
|
+
"contentHash": "8283d775e411b3e94d1faba6834fd904f83f9c0f190820a76a30d08b1204c5d1",
|
|
17077
|
+
"sourceKind": "component_definition",
|
|
17078
|
+
"sourceId": "praxis-filter-form",
|
|
17079
|
+
"corpusVersion": "1.0.0"
|
|
17080
|
+
},
|
|
17081
|
+
{
|
|
17082
|
+
"chunkIndex": 29,
|
|
17083
|
+
"chunkKind": "authoring_manifest",
|
|
17084
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"runtimeInputs\",\"runtimeInputs\":[{\"name\":\"config\",\"type\":\"FormConfig\",\"description\":\"Configuração do formulário; sections é opcional em forms schema-driven e não deve ser criado como array vazio apenas para satisfazer TypeScript.\"},{\"name\":\"formId\",\"type\":\"string\",\"description\":\"Identidade estável usada pelo runtime para persistência local da configuração.\"},{\"name\":\"resourcePath\",\"type\":\"string\",\"description\":\"Caminho do recurso (API)\"},{\"name\":\"mode\",\"type\":\"string\",\"allowedValues\":[\"create\",\"edit\",\"view\"],\"description\":\"Modo de operação\"}]}",
|
|
17085
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17086
|
+
"contentHash": "e87e0eebe5c750ff0bf9624b953e5ad603ae63ca2584702c9618500202fbed00",
|
|
17087
|
+
"sourceKind": "component_definition",
|
|
17088
|
+
"sourceId": "praxis-filter-form",
|
|
17089
|
+
"corpusVersion": "1.0.0"
|
|
17090
|
+
},
|
|
17091
|
+
{
|
|
17092
|
+
"chunkIndex": 30,
|
|
17093
|
+
"chunkKind": "authoring_manifest",
|
|
17094
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"editableTargets\",\"editableTargets\":[{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"description\":\"Campos do formulário (metadados schema-backed ou local; use para ops de propriedade)\"},{\"kind\":\"localField\",\"resolver\":\"field-by-name\",\"description\":\"Campos locais com source:\\\"local\\\"; adicionados/removidos via authoring\"},{\"kind\":\"section\",\"resolver\":\"section-by-id-or-title\",\"description\":\"Seções de layout identificadas por id estável\"},{\"kind\":\"row\",\"resolver\":\"row-by-id-in-section\",\"description\":\"Linhas dentro de seções, identificadas por id estável\"}]}",
|
|
17095
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17096
|
+
"contentHash": "412058264340ad6d125067d2f76b438fac5df8ff84866de0ab0072729c24baa1",
|
|
17097
|
+
"sourceKind": "component_definition",
|
|
17098
|
+
"sourceId": "praxis-filter-form",
|
|
17099
|
+
"corpusVersion": "1.0.0"
|
|
17100
|
+
},
|
|
17101
|
+
{
|
|
17102
|
+
"chunkIndex": 31,
|
|
17103
|
+
"chunkKind": "authoring_manifest",
|
|
17104
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"field.label.set\",\"title\":\"Alterar rótulo do campo\",\"scope\":\"field\",\"targetKind\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"label\"],\"properties\":{\"label\":{\"type\":\"string\",\"minLength\":1}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"}],\"validators\":[\"field-exists\"],\"affectedPaths\":[\"fieldMetadata[].label\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"field.placeholder.set\",\"title\":\"Alterar placeholder do campo\",\"scope\":\"field\",\"targetKind\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"placeholder\"],\"properties\":{\"placeholder\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"}],\"validators\":[\"field-exists\"],\"affectedPaths\":[\"fieldMetadata[].placeholder\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"field.required.set\",\"title\":\"Definir obrigatoriedade\",\"scope\":\"field\",\"targetKind\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"required\"],\"properties\":{\"required\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"}],\"validators\":[\"field-exists\"],\"affectedPaths\":[\"fieldMetadata[].required\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"field.readOnly.set\",\"title\":\"Definir campo como somente leitura\",\"scope\":\"field\",\"targetKind\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"readOnly\"],\"properties\":{\"readOnly\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"}],\"validators\":[\"field-exists\"],\"affectedPaths\":[\"fieldMetadata[].readOnly\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"field.disabled.set\",\"title\":\"Definir campo como desabilitado\",\"scope\":\"field\",\"targetKind\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"disabled\"],\"properties\":{\"disabled\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"}],\"validators\":[\"field-exists\"],\"affectedPaths\":[\"fieldMetadata[].disabled\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"field.hidden.set\",\"title\":\"Definir visibilidade inicial\",\"scope\":\"field\",\"targetKind\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"hidden\"],\"properties\":{\"hidden\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"}],\"validators\":[\"field-exists\"],\"affectedPaths\":[\"fieldMetadata[].hidden\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"field.controlType.set\",\"title\":\"Alterar tipo de controle\",\"scope\":\"field\",\"targetKind\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"controlType\"],\"properties\":{\"controlType\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"field-exists\",\"control-type-compatible\"],\"affectedPaths\":[\"fieldMetadata[].controlType\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"field.optionSource.set\",\"title\":\"Definir fonte de opções do campo\",\"scope\":\"field\",\"targetKind\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"optionSource\"],\"properties\":{\"optionSource\":{\"type\":\"object\",\"required\":[\"key\",\"type\",\"resourcePath\"],\"properties\":{\"key\":{\"type\":\"string\"},\"type\":{\"enum\":[\"RESOURCE_ENTITY\",\"DISTINCT_DIMENSION\",\"CATEGORICAL_BUCKET\",\"LIGHT_LOOKUP\",\"STATIC_CANONICAL\"]},\"resourcePath\":{\"type\":\"string\"},\"valuePropertyPath\":{\"type\":\"string\"},\"labelPropertyPath\":{\"type\":\"string\"},\"dependsOn\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"dependencyFilterMap\":{\"type\":\"object\",\"additionalProperties\":{\"type\":\"string\"}},\"includeIds\":{\"type\":\"boolean\"},\"capabilities\":{\"type\":\"object\",\"properties\":{\"filter\":{\"type\":\"boolean\"},\"byIds\":{\"type\":\"boolean\"},\"detail\":{\"type\":\"boolean\"},\"create\":{\"type\":\"boolean\"}}},\"display\":{\"type\":\"object\"},\"selectionPolicy\":{\"type\":\"object\"}}}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"}],\"validators\":[\"field-exists\",\"option-source-valid\"],\"affectedPaths\":[\"fieldMetadata[].optionSource\"],\"submissionImpact\":\"affects-remote-binding\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"field.local.add\",\"title\":\"Adicionar campo local\",\"scope\":\"global\",\"targetKind\":\"localField\",\"target\":{\"kind\":\"localField\",\"resolver\":\"field-by-name\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"name\",\"label\",\"controlType\",\"source\"],\"properties\":{\"name\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"controlType\":{\"type\":\"string\"},\"source\":{\"const\":\"local\",\"description\":\"Obrigatório. Discriminador que distingue campos locais de schema-backed.\"},\"transient\":{\"type\":\"boolean\",\"default\":false,\"description\":\"Se true, o valor não persiste entre navegações.\"},\"submitPolicy\":{\"enum\":[\"omit\",\"include\",\"includeWhenDirty\"],\"default\":\"omit\"}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"}],\"validators\":[\"field-name-unique\",\"local-schema-name-no-collision\"],\"affectedPaths\":[\"fieldMetadata[]\"],\"submissionImpact\":\"affects-submission\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"field.local.remove\",\"title\":\"Remover campo local\",\"scope\":\"field\",\"targetKind\":\"localField\",\"target\":{\"kind\":\"localField\",\"resolver\":\"field-by-name\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"properties\":{}},\"effects\":[{\"kind\":\"remove-by-key\",\"path\":\"fieldMetadata[]\",\"key\":\"name\"},{\"kind\":\"compile-domain-patch\",\"handler\":\"form-layout-field-cleanup\",\"handlerContract\":{\"reads\":[\"fieldMetadata[].name\",\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"writes\":[\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"identityKeys\":[\"fieldMetadata[].name\",\"sections[].id\",\"sections[].rows[].id\",\"sections[].rows[].columns[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"target.name\"],\"properties\":{\"target.name\":{\"type\":\"string\"}}},\"failureModes\":[\"target-field-not-found\",\"target-field-not-local\",\"layout-reference-conflict\"],\"description\":\"Remove every layout placement that references the removed local field by fieldMetadata[].name.\"}}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"field-exists\",\"field-is-local\"],\"affectedPaths\":[\"fieldMetadata[]\",\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"submissionImpact\":\"affects-submission\",\"preconditions\":[\"config-initialized\",\"target-exists\"]}]}",
|
|
17105
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17106
|
+
"contentHash": "65fdc661e312e8245a91a87e7882b307b20f3a0ad119263cdc2610f84ca1bf9f",
|
|
17107
|
+
"sourceKind": "component_definition",
|
|
17108
|
+
"sourceId": "praxis-filter-form",
|
|
17109
|
+
"corpusVersion": "1.0.0"
|
|
17110
|
+
},
|
|
17111
|
+
{
|
|
17112
|
+
"chunkIndex": 32,
|
|
17113
|
+
"chunkKind": "authoring_manifest",
|
|
17114
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"layout.section.add\",\"title\":\"Adicionar nova seção\",\"scope\":\"global\",\"targetKind\":\"section\",\"target\":{\"kind\":\"section\",\"resolver\":\"section-by-id-or-title\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"id\",\"title\"],\"properties\":{\"id\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"collapsible\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"sections[]\",\"key\":\"id\"}],\"validators\":[\"section-id-unique\"],\"affectedPaths\":[\"sections[]\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"layout.section.remove\",\"title\":\"Remover seção\",\"scope\":\"section\",\"targetKind\":\"section\",\"target\":{\"kind\":\"section\",\"resolver\":\"section-by-id-or-title\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"properties\":{}},\"effects\":[{\"kind\":\"remove-by-key\",\"path\":\"sections[]\",\"key\":\"id\"},{\"kind\":\"compile-domain-patch\",\"handler\":\"form-layout-section-cleanup\",\"handlerContract\":{\"reads\":[\"sections[].id\",\"sections[].rows[].id\",\"sections[].rows[].columns[].id\",\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"writes\":[\"sections[]\"],\"identityKeys\":[\"sections[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"target.id\"],\"properties\":{\"target.id\":{\"type\":\"string\"}}},\"failureModes\":[\"target-section-not-found\",\"ambiguous-section-target\"],\"description\":\"Removes the target section and its nested rows, columns, and field placements without deleting fieldMetadata records.\"}}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"section-exists\"],\"affectedPaths\":[\"sections[]\",\"sections[].rows[]\",\"sections[].rows[].columns[]\",\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"layout.row.add\",\"title\":\"Adicionar linha numa seção\",\"scope\":\"section\",\"targetKind\":\"section\",\"target\":{\"kind\":\"section\",\"resolver\":\"section-by-id-or-title\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"columns\":{\"type\":\"number\",\"minimum\":1,\"maximum\":12,\"default\":1}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"sections[].rows[]\",\"key\":\"id\"}],\"validators\":[\"section-exists\",\"row-id-unique-in-section\"],\"affectedPaths\":[\"sections[].rows[]\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"layout.column.add\",\"title\":\"Adicionar coluna numa linha\",\"scope\":\"row\",\"targetKind\":\"row\",\"target\":{\"kind\":\"row\",\"resolver\":\"row-by-id-in-section\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"span\":{\"type\":\"number\",\"minimum\":1,\"maximum\":12,\"default\":6}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"sections[].rows[].columns[]\",\"key\":\"id\"}],\"validators\":[\"row-exists\",\"column-id-unique-in-row\"],\"affectedPaths\":[\"sections[].rows[].columns[]\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"layout.field.move\",\"title\":\"Mover campo no layout\",\"scope\":\"field\",\"targetKind\":\"field\",\"target\":{\"kind\":\"field\",\"resolver\":\"field-by-name-or-label\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"targetSectionId\",\"targetRowId\",\"targetColumnId\"],\"properties\":{\"targetSectionId\":{\"type\":\"string\"},\"targetRowId\":{\"type\":\"string\"},\"targetColumnId\":{\"type\":\"string\"},\"index\":{\"type\":\"number\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"form-layout-reconciler\",\"handlerContract\":{\"reads\":[\"fieldMetadata[].name\",\"sections[].id\",\"sections[].rows[].id\",\"sections[].rows[].columns[].id\",\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"writes\":[\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"identityKeys\":[\"fieldMetadata[].name\",\"sections[].id\",\"sections[].rows[].id\",\"sections[].rows[].columns[].id\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"target.name\",\"targetSectionId\",\"targetRowId\",\"targetColumnId\"],\"properties\":{\"target.name\":{\"type\":\"string\"},\"targetSectionId\":{\"type\":\"string\"},\"targetRowId\":{\"type\":\"string\"},\"targetColumnId\":{\"type\":\"string\"},\"index\":{\"type\":\"number\"}}},\"failureModes\":[\"target-field-not-found\",\"target-layout-location-not-found\",\"ambiguous-field-target\",\"duplicate-field-placement\"],\"description\":\"Moves a field placement by stable section, row, column, and field ids; index is insertion position only.\"}}],\"validators\":[\"field-exists\",\"layout-target-exists\",\"no-index-as-identity\",\"field-exists-in-layout\"],\"affectedPaths\":[\"sections[].rows[].columns[].items\",\"sections[].rows[].columns[].fields\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]}]}",
|
|
17115
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17116
|
+
"contentHash": "93f7c41675e8f3868d1880542f7fd505b3f50ed9140411b08a0896223e2ae35c",
|
|
17117
|
+
"sourceKind": "component_definition",
|
|
17118
|
+
"sourceId": "praxis-filter-form",
|
|
17119
|
+
"corpusVersion": "1.0.0"
|
|
17120
|
+
},
|
|
17121
|
+
{
|
|
17122
|
+
"chunkIndex": 33,
|
|
17123
|
+
"chunkKind": "authoring_manifest",
|
|
17124
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"validators\",\"validators\":[{\"validatorId\":\"field-exists\",\"level\":\"error\",\"code\":\"DF001\",\"description\":\"O campo alvo deve existir em fieldMetadata.\"},{\"validatorId\":\"control-type-compatible\",\"level\":\"error\",\"code\":\"DF017\",\"description\":\"O tipo de controle deve ser compatível com o tipo de dado do campo.\"},{\"validatorId\":\"option-source-valid\",\"level\":\"error\",\"code\":\"DF018\",\"description\":\"A fonte de opções deve ser válida para o tipo de controle especificado.\"},{\"validatorId\":\"field-name-unique\",\"level\":\"error\",\"code\":\"DF002\",\"description\":\"Nomes de campos devem ser únicos em fieldMetadata.\"},{\"validatorId\":\"local-schema-name-no-collision\",\"level\":\"error\",\"code\":\"DF006\",\"description\":\"Nome de campo local não pode colidir com campo schema-backed existente.\"},{\"validatorId\":\"field-is-local\",\"level\":\"error\",\"code\":\"DF007\",\"description\":\"Operação restrita a campos locais (source:\\\"local\\\"). Campo schema-backed não pode ser removido ou ter submitPolicy alterada.\"},{\"validatorId\":\"section-id-unique\",\"level\":\"error\",\"code\":\"DF003\",\"description\":\"IDs de seções devem ser únicos em sections[].\"},{\"validatorId\":\"section-exists\",\"level\":\"error\",\"code\":\"DF004\",\"description\":\"A seção alvo deve existir em sections[].\"},{\"validatorId\":\"row-id-unique-in-section\",\"level\":\"error\",\"code\":\"DF015\",\"description\":\"O id da nova linha deve ser único dentro da seção alvo.\"},{\"validatorId\":\"row-exists\",\"level\":\"error\",\"code\":\"DF014\",\"description\":\"A linha alvo deve existir na seção especificada.\"},{\"validatorId\":\"column-id-unique-in-row\",\"level\":\"error\",\"code\":\"DF016\",\"description\":\"O id da nova coluna deve ser único dentro da linha alvo.\"},{\"validatorId\":\"layout-target-exists\",\"level\":\"error\",\"code\":\"DF012\",\"description\":\"A seção/linha/coluna de destino devem existir antes de mover o campo.\"},{\"validatorId\":\"no-index-as-identity\",\"level\":\"error\",\"code\":\"DF013\",\"description\":\"Operações de layout não devem usar índice de array como identidade canônica; use IDs estáveis.\"},{\"validatorId\":\"field-exists-in-layout\",\"level\":\"warning\",\"code\":\"DF005\",\"description\":\"Campo definido em fieldMetadata mas ausente no layout.\"}]}",
|
|
17125
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17126
|
+
"contentHash": "acefad4d912a16091c33df7c3c01213ce38c9ee2762ac4a82faed144f631f1a9",
|
|
17127
|
+
"sourceKind": "component_definition",
|
|
17128
|
+
"sourceId": "praxis-filter-form",
|
|
17129
|
+
"corpusVersion": "1.0.0"
|
|
17130
|
+
},
|
|
17131
|
+
{
|
|
17132
|
+
"chunkIndex": 34,
|
|
17133
|
+
"chunkKind": "authoring_manifest",
|
|
17134
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"roundTripRequirements\",\"roundTripRequirements\":[\"strip-undefined\",\"stable-field-order\",\"preserve-local-field-source\",\"preserve-section-row-column-ids\"]}",
|
|
17135
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17136
|
+
"contentHash": "05c872b5e9861e2b52d9505fed8aef3f92d10d7b82b5388201ce67215c4ed1e1",
|
|
17137
|
+
"sourceKind": "component_definition",
|
|
17138
|
+
"sourceId": "praxis-filter-form",
|
|
17139
|
+
"corpusVersion": "1.0.0"
|
|
17140
|
+
},
|
|
17141
|
+
{
|
|
17142
|
+
"chunkIndex": 35,
|
|
17143
|
+
"chunkKind": "authoring_manifest",
|
|
17144
|
+
"content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-filter-form\",\"ownerPackage\":\"@praxisui/dynamic-form\",\"configSchemaId\":\"FormConfig\",\"chunkSection\":\"examples\",\"examples\":[{\"id\":\"add-local-transient-field\",\"request\":\"Adicionar campo auxiliar local \\\"notasInternas\\\" que não deve aparecer no payload de envio\",\"operationId\":\"field.local.add\",\"params\":{\"name\":\"notasInternas\",\"label\":\"Notas Internas\",\"controlType\":\"textarea\",\"source\":\"local\",\"transient\":true,\"submitPolicy\":\"omit\"},\"isPositive\":true},{\"id\":\"relabel-schema-backed-field\",\"request\":\"Mudar o label do campo email para \\\"E-mail Corporativo\\\"\",\"operationId\":\"field.label.set\",\"target\":\"email\",\"params\":{\"label\":\"E-mail Corporativo\"},\"isPositive\":true},{\"id\":\"move-field-to-column\",\"request\":\"Mover campo telefone para a primeira coluna da seção de contato\",\"operationId\":\"layout.field.move\",\"target\":\"telefone\",\"params\":{\"targetSectionId\":\"secao-contato\",\"targetRowId\":\"row-1\",\"targetColumnId\":\"col-1\"},\"isPositive\":true},{\"id\":\"reject-unknown-field\",\"request\":\"Alterar o label do campo \\\"campoInexistente\\\"\",\"operationId\":\"field.label.set\",\"target\":\"campoInexistente\",\"params\":{\"label\":\"Novo Label\"},\"isPositive\":false},{\"id\":\"require-confirmation-remove-field\",\"request\":\"Remover o campo auxiliar \\\"notasInternas\\\"\",\"operationId\":\"field.local.remove\",\"target\":\"notasInternas\",\"isPositive\":true},{\"id\":\"require-confirmation-remove-section\",\"request\":\"Remover a seção \\\"Dados Adicionais\\\"\",\"operationId\":\"layout.section.remove\",\"target\":\"secao-dados-adicionais\",\"isPositive\":true},{\"id\":\"round-trip-no-drift\",\"request\":\"Salvar e reabrir o formulário editado sem drift de configuração\",\"operationId\":\"field.label.set\",\"target\":\"nome\",\"params\":{\"label\":\"Nome Completo\"},\"isPositive\":true}]}",
|
|
17145
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/praxis-filter-form-authoring-manifest.ts",
|
|
17146
|
+
"contentHash": "0ee88a91156508dcbdc63d231c5d1eaaa080c32358d25d930ef269bfe6277a24",
|
|
17147
|
+
"sourceKind": "component_definition",
|
|
17148
|
+
"sourceId": "praxis-filter-form",
|
|
17149
|
+
"corpusVersion": "1.0.0"
|
|
17150
|
+
},
|
|
17151
|
+
{
|
|
17152
|
+
"chunkIndex": 36,
|
|
17153
|
+
"chunkKind": "context_pack",
|
|
17154
|
+
"content": "{\"componentId\":\"praxis-filter-form\",\"chunkSection\":\"componentContext\",\"componentContext\":{\"version\":\"v1\",\"optionsByPath\":{\"fieldMetadata[].controlType\":{\"mode\":\"enum\",\"options\":[{\"value\":\"input\",\"label\":\"Input\"},{\"value\":\"textarea\",\"label\":\"Textarea\"},{\"value\":\"email\",\"label\":\"Email\"},{\"value\":\"password\",\"label\":\"Password\"},{\"value\":\"search\",\"label\":\"Search\"},{\"value\":\"url\",\"label\":\"URL\"},{\"value\":\"phone\",\"label\":\"Phone\"},{\"value\":\"cpfCnpjInput\",\"label\":\"CPF/CNPJ\"},{\"value\":\"numericTextBox\",\"label\":\"Number\"},{\"value\":\"currency\",\"label\":\"Currency\"},{\"value\":\"priceRange\",\"label\":\"Price range\"},{\"value\":\"date\",\"label\":\"Date picker\"},{\"value\":\"dateRange\",\"label\":\"Date range\"},{\"value\":\"dateInput\",\"label\":\"Date input\"},{\"value\":\"dateTime\",\"label\":\"Datetime\"},{\"value\":\"dateTimeRange\",\"label\":\"Datetime range\"},{\"value\":\"dateTimeLocal\",\"label\":\"Datetime local\"},{\"value\":\"time\",\"label\":\"Time input\"},{\"value\":\"timePicker\",\"label\":\"Time picker\"},{\"value\":\"timeRange\",\"label\":\"Time range\"},{\"value\":\"week\",\"label\":\"Week input\"},{\"value\":\"month\",\"label\":\"Month input\"},{\"value\":\"year\",\"label\":\"Year input\"},{\"value\":\"select\",\"label\":\"Select\"},{\"value\":\"multiSelect\",\"label\":\"Multi select\"},{\"value\":\"multiSelectTree\",\"label\":\"Multi select tree\"},{\"value\":\"treeSelect\",\"label\":\"Tree select\"},{\"value\":\"transferList\",\"label\":\"Transfer list\"},{\"value\":\"autoComplete\",\"label\":\"Autocomplete\"},{\"value\":\"searchable-select\",\"label\":\"Searchable select\"},{\"value\":\"async-select\",\"label\":\"Async select\"},{\"value\":\"radio\",\"label\":\"Radio group\"},{\"value\":\"checkbox\",\"label\":\"Checkbox group\"},{\"value\":\"selectionList\",\"label\":\"Selection list\"},{\"value\":\"toggle\",\"label\":\"Toggle\"},{\"value\":\"buttonToggle\",\"label\":\"Button toggle\"},{\"value\":\"slider\",\"label\":\"Slider\"},{\"value\":\"rangeSlider\",\"label\":\"Range slider\"},{\"value\":\"rating\",\"label\":\"Rating\"},{\"value\":\"chipInput\",\"label\":\"Chips\"},{\"value\":\"chipList\",\"label\":\"Chip list\"},{\"value\":\"upload\",\"label\":\"File upload\"},{\"value\":\"color\",\"label\":\"Color input\"},{\"value\":\"colorPicker\",\"label\":\"Color picker\"},{\"value\":\"cronBuilder\",\"label\":\"Cron builder\"}]},\"fieldMetadata[].source\":{\"mode\":\"enum\",\"options\":[{\"value\":\"schema\",\"label\":\"Schema field\"},{\"value\":\"local\",\"label\":\"Local field\"}]},\"fieldMetadata[].submitPolicy\":{\"mode\":\"enum\",\"options\":[{\"value\":\"omit\",\"label\":\"Omit from submit payload\"},{\"value\":\"include\",\"label\":\"Include in submit payload\"},{\"value\":\"includeWhenDirty\",\"label\":\"Include only when dirty\"}]},\"fieldMetadata[].materialDesign.appearance\":{\"mode\":\"enum\",\"options\":[{\"value\":\"fill\",\"label\":\"Fill\"},{\"value\":\"outline\",\"label\":\"Outline\"}]},\"fieldMetadata[].materialDesign.color\":{\"mode\":\"enum\",\"options\":[{\"value\":\"primary\",\"label\":\"Primary\"},{\"value\":\"accent\",\"label\":\"Accent\"},{\"value\":\"warn\",\"label\":\"Warn\"}]},\"fieldMetadata[].materialDesign.floatLabel\":{\"mode\":\"enum\",\"options\":[{\"value\":\"auto\",\"label\":\"Auto\"},{\"value\":\"always\",\"label\":\"Always\"}]},\"fieldMetadata[].materialDesign.density\":{\"mode\":\"enum\",\"options\":[{\"value\":\"comfortable\",\"label\":\"Comfortable\"},{\"value\":\"compact\",\"label\":\"Compact\"},{\"value\":\"dense\",\"label\":\"Dense\"}]},\"actions.position\":{\"mode\":\"enum\",\"options\":[{\"value\":\"left\",\"label\":\"Left\"},{\"value\":\"center\",\"label\":\"Center\"},{\"value\":\"right\",\"label\":\"Right\"},{\"value\":\"justified\",\"label\":\"Justified\"},{\"value\":\"split\",\"label\":\"Split\"}]},\"actions.orientation\":{\"mode\":\"enum\",\"options\":[{\"value\":\"horizontal\",\"label\":\"Horizontal\"},{\"value\":\"vertical\",\"label\":\"Vertical\"}]},\"actions.spacing\":{\"mode\":\"enum\",\"options\":[{\"value\":\"compact\",\"label\":\"Compact\"},{\"value\":\"normal\",\"label\":\"Normal\"},{\"value\":\"spacious\",\"label\":\"Spacious\"}]},\"actions.placement\":{\"mode\":\"enum\",\"options\":[{\"value\":\"insideLastSection\",\"label\":\"Inside last section\"},{\"value\":\"afterSections\",\"label\":\"After sections\"},{\"value\":\"top\",\"label\":\"Top\"}]},\"actions.submit.type\":{\"mode\":\"enum\",\"options\":[{\"value\":\"button\",\"label\":\"Button\"},{\"value\":\"submit\",\"label\":\"Submit\"},{\"value\":\"reset\",\"label\":\"Reset\"}]},\"actions.submit.variant\":{\"mode\":\"enum\",\"options\":[{\"value\":\"raised\",\"label\":\"Raised\"},{\"value\":\"stroked\",\"label\":\"Stroked\"},{\"value\":\"flat\",\"label\":\"Flat\"},{\"value\":\"fab\",\"label\":\"Fab\"}]},\"actions.submit.size\":{\"mode\":\"enum\",\"options\":[{\"value\":\"small\",\"label\":\"Small\"},{\"value\":\"medium\",\"label\":\"Medium\"},{\"value\":\"large\",\"label\":\"Large\"}]},\"actions.submit.color\":{\"mode\":\"enum\",\"options\":[{\"value\":\"primary\",\"label\":\"Primary\"},{\"value\":\"accent\",\"label\":\"Accent\"},{\"value\":\"warn\",\"label\":\"Warn\"},{\"value\":\"basic\",\"label\":\"Basic\"}]},\"sections[].headerAlign\":{\"mode\":\"enum\",\"options\":[{\"value\":\"start\",\"label\":\"Start\"},{\"value\":\"center\",\"label\":\"Center\"}]},\"sections[].appearance\":{\"mode\":\"enum\",\"options\":[{\"value\":\"card\",\"label\":\"Card\"},{\"value\":\"plain\",\"label\":\"Plain\"},{\"value\":\"step\",\"label\":\"Step\"}]},\"sections[].sectionHeader.mode\":{\"mode\":\"enum\",\"options\":[{\"value\":\"icon\",\"label\":\"Icon\"},{\"value\":\"avatar-image\",\"label\":\"Avatar image\"},{\"value\":\"avatar-initials\",\"label\":\"Avatar initials\"},{\"value\":\"auto\",\"label\":\"Auto\"}]},\"sections[].sectionHeader.emptyState\":{\"mode\":\"enum\",\"options\":[{\"value\":\"placeholder-avatar\",\"label\":\"Neutral placeholder\"},{\"value\":\"fallback-icon\",\"label\":\"Fallback icon\"},{\"value\":\"none\",\"label\":\"None\"}]},\"sections[].sectionHeader.size\":{\"mode\":\"enum\",\"options\":[{\"value\":\"sm\",\"label\":\"Small\"},{\"value\":\"md\",\"label\":\"Medium\"},{\"value\":\"lg\",\"label\":\"Large\"}]},\"sections[].stepLabel\":{\"mode\":\"suggested\",\"options\":[{\"value\":\"Dados básicos\",\"label\":\"Dados básicos\"},{\"value\":\"Detalhes\",\"label\":\"Detalhes\"},{\"value\":\"Confirmação\",\"label\":\"Confirmação\"}]},\"sections[].titleStyle\":{\"mode\":\"enum\",\"options\":[{\"value\":\"titleLarge\",\"label\":\"Title large\"},{\"value\":\"titleMedium\",\"label\":\"Title medium\"},{\"value\":\"titleSmall\",\"label\":\"Title small\"},{\"value\":\"headlineSmall\",\"label\":\"Headline small\"}]},\"sections[].descriptionStyle\":{\"mode\":\"enum\",\"options\":[{\"value\":\"bodyLarge\",\"label\":\"Body large\"},{\"value\":\"bodyMedium\",\"label\":\"Body medium\"},{\"value\":\"bodySmall\",\"label\":\"Body small\"}]},\"sections[].rows[].columns[].align\":{\"mode\":\"enum\",\"options\":[{\"value\":\"start\",\"label\":\"Start\"},{\"value\":\"center\",\"label\":\"Center\"},{\"value\":\"end\",\"label\":\"End\"},{\"value\":\"stretch\",\"label\":\"Stretch\"}]},\"sections[].rows[].columns[].items[].kind\":{\"mode\":\"enum\",\"options\":[{\"value\":\"field\",\"label\":\"Field\"},{\"value\":\"richContent\",\"label\":\"Rich content\"}]},\"sections[].rows[].columns[].items[].layout\":{\"mode\":\"enum\",\"options\":[{\"value\":\"block\",\"label\":\"Block\"},{\"value\":\"inline\",\"label\":\"Inline\"}]},\"formRules[].targetType\":{\"mode\":\"enum\",\"options\":[{\"value\":\"field\",\"label\":\"Field\"},{\"value\":\"section\",\"label\":\"Section\"},{\"value\":\"row\",\"label\":\"Row\"},{\"value\":\"column\",\"label\":\"Column\"},{\"value\":\"action\",\"label\":\"Action\"},{\"value\":\"visualBlock\",\"label\":\"Visual block\"}]},\"formRules[].context\":{\"mode\":\"enum\",\"options\":[{\"value\":\"visibility\",\"label\":\"Visibility\"},{\"value\":\"readOnly\",\"label\":\"Read only\"},{\"value\":\"style\",\"label\":\"Style\"},{\"value\":\"validation\",\"label\":\"Validation\"},{\"value\":\"notification\",\"label\":\"Notification\"}]}}}}",
|
|
17155
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/filter-form-context-pack.ts",
|
|
17156
|
+
"contentHash": "0109d97840e880347bf955ed45438f10ff37b2321d929ab8ced6515d842211c9",
|
|
17157
|
+
"sourceKind": "component_definition",
|
|
17158
|
+
"sourceId": "praxis-filter-form",
|
|
17159
|
+
"corpusVersion": "1.0.0"
|
|
17160
|
+
},
|
|
17161
|
+
{
|
|
17162
|
+
"chunkIndex": 37,
|
|
17163
|
+
"chunkKind": "context_pack",
|
|
17164
|
+
"content": "{\"componentId\":\"praxis-filter-form\",\"chunkSection\":\"componentContext.actionCatalog\",\"componentContext\":{\"actionCatalog\":[{\"id\":\"field.visibility.hide\",\"intentExamples\":[\"hide field\",\"ocultar campo\",\"esconder campo\",\"invisible\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"hidden\":true}]}},{\"id\":\"field.visibility.show\",\"intentExamples\":[\"show field\",\"mostrar campo\",\"exibir campo\",\"visible\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"hidden\":false}]}},{\"id\":\"field.label.set\",\"intentExamples\":[\"label\",\"rename field\",\"renomear campo\",\"titulo\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"label\":\"{{value}}\"}]}},{\"id\":\"field.placeholder.set\",\"intentExamples\":[\"placeholder\",\"hint text\",\"texto de ajuda\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"placeholder\":\"{{value}}\"}]}},{\"id\":\"field.required.enable\",\"intentExamples\":[\"required\",\"obrigatorio\",\"mandatory\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"required\":true}]}},{\"id\":\"field.required.disable\",\"intentExamples\":[\"optional\",\"nao obrigatorio\",\"opcional\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"required\":false}]}},{\"id\":\"field.readonly.enable\",\"intentExamples\":[\"readonly\",\"somente leitura\",\"read only\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"readOnly\":true}]}},{\"id\":\"field.readonly.disable\",\"intentExamples\":[\"editable\",\"editavel\",\"read write\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"readOnly\":false}]}},{\"id\":\"field.disabled.enable\",\"intentExamples\":[\"disable field\",\"desabilitar campo\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"disabled\":true}]}},{\"id\":\"field.disabled.disable\",\"intentExamples\":[\"enable field\",\"habilitar campo\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"disabled\":false}]}},{\"id\":\"field.controlType.set\",\"intentExamples\":[\"control type\",\"tipo de campo\",\"controlType\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"controlType\":\"{{value}}\"}]}},{\"id\":\"field.icon.prefix.set\",\"intentExamples\":[\"prefix icon\",\"icone prefixo\",\"icon before\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"prefixIcon\":\"{{value}}\"}]}},{\"id\":\"field.icon.suffix.set\",\"intentExamples\":[\"suffix icon\",\"icone sufixo\",\"icon after\"],\"patchTemplate\":{\"fieldMetadata\":[{\"name\":\"{{target}}\",\"suffixIcon\":\"{{value}}\"}]}},{\"id\":\"section.title.set\",\"intentExamples\":[\"section title\",\"titulo da secao\",\"section name\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target}}\",\"title\":\"{{value}}\"}]}},{\"id\":\"section.description.set\",\"intentExamples\":[\"section description\",\"descricao da secao\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target}}\",\"description\":\"{{value}}\"}]}},{\"id\":\"section.add\",\"intentExamples\":[\"add section\",\"adicionar secao\",\"nova secao\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{value}}\",\"title\":\"{{value}}\",\"rows\":[]}]},\"safetyNotes\":\"Certifique-se de que o ID da seção é único e relevante.\"},{\"id\":\"section.remove\",\"intentExamples\":[\"remove section\",\"remover secao\",\"excluir secao\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target}}\",\"_delete\":true}]},\"safetyNotes\":\"Remover uma seção é uma ação destrutiva. Confirme com o usuário.\"},{\"id\":\"section.order.set\",\"intentExamples\":[\"order section\",\"reordenar secao\",\"mover secao\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target}}\",\"_order\":\"{{value}}\"}]},\"safetyNotes\":\"A reordenação de seções é uma operação que deve ser revisada.\"},{\"id\":\"row.add\",\"intentExamples\":[\"add row\",\"adicionar linha\",\"nova linha na secao\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target}}\",\"rows\":[{\"id\":\"{{value}}\",\"columns\":[]}]}]},\"safetyNotes\":\"Certifique-se de que o ID da linha é único e relevante na seção.\"},{\"id\":\"row.remove\",\"intentExamples\":[\"remove row\",\"remover linha\",\"excluir linha da secao\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target}}\",\"rows\":[{\"id\":\"{{value}}\",\"_delete\":true}]}]},\"safetyNotes\":\"Remover uma linha é uma ação destrutiva. Confirme com o usuário.\"},{\"id\":\"column.add\",\"intentExamples\":[\"add column\",\"adicionar coluna\",\"nova coluna na linha\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target.sectionId}}\",\"rows\":[{\"id\":\"{{target.rowId}}\",\"columns\":[{\"id\":\"{{value}}\",\"items\":[]}]}]}]},\"safetyNotes\":\"Certifique-se de que o ID da coluna é único e relevante na linha.\"},{\"id\":\"column.remove\",\"intentExamples\":[\"remove column\",\"remover coluna\",\"excluir coluna da linha\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target.sectionId}}\",\"rows\":[{\"id\":\"{{target.rowId}}\",\"columns\":[{\"id\":\"{{value}}\",\"_delete\":true}]}]}]},\"safetyNotes\":\"Remover uma coluna é uma ação destrutiva. Confirme com o usuário.\"},{\"id\":\"column.field.add\",\"intentExamples\":[\"add field to column\",\"adicionar campo a coluna\",\"colocar campo na coluna\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target.sectionId}}\",\"rows\":[{\"id\":\"{{target.rowId}}\",\"columns\":[{\"id\":\"{{target.columnId}}\",\"items\":[{\"kind\":\"field\",\"id\":\"field-{{value}}\",\"fieldName\":\"{{value}}\"}]}]}]}]},\"safetyNotes\":\"Verifique se o campo adicionado existe em fieldMetadata e se o posicionamento é lógico.\"},{\"id\":\"column.field.remove\",\"intentExamples\":[\"remove field from column\",\"remover campo da coluna\",\"tirar campo da coluna\"],\"patchTemplate\":{\"sections\":[{\"id\":\"{{target.sectionId}}\",\"rows\":[{\"id\":\"{{target.rowId}}\",\"columns\":[{\"id\":\"{{target.columnId}}\",\"items\":[{\"kind\":\"field\",\"fieldName\":\"{{value}}\",\"_remove\":true}]}]}]}]},\"safetyNotes\":\"Remover um campo de uma coluna pode alterar o layout do formulário.\"},{\"id\":\"actions.submit.label.set\",\"intentExamples\":[\"submit label\",\"rotulo salvar\",\"texto botao enviar\"],\"patchTemplate\":{\"actions\":{\"submit\":{\"label\":\"{{value}}\"}}}},{\"id\":\"actions.submit.visible.set\",\"intentExamples\":[\"show submit\",\"esconder salvar\",\"visibilidade enviar\"],\"patchTemplate\":{\"actions\":{\"submit\":{\"visible\":\"{{value}}\"}}}},{\"id\":\"actions.cancel.label.set\",\"intentExamples\":[\"cancel label\",\"rotulo cancelar\",\"texto botao cancelar\"],\"patchTemplate\":{\"actions\":{\"cancel\":{\"label\":\"{{value}}\"}}}},{\"id\":\"actions.cancel.visible.set\",\"intentExamples\":[\"show cancel\",\"esconder cancelar\",\"visibilidade cancelar\"],\"patchTemplate\":{\"actions\":{\"cancel\":{\"visible\":\"{{value}}\"}}}},{\"id\":\"actions.reset.label.set\",\"intentExamples\":[\"reset label\",\"rotulo resetar\",\"texto botao limpar\"],\"patchTemplate\":{\"actions\":{\"reset\":{\"label\":\"{{value}}\"}}}},{\"id\":\"actions.reset.visible.set\",\"intentExamples\":[\"show reset\",\"esconder reset\",\"visibilidade limpar\"],\"patchTemplate\":{\"actions\":{\"reset\":{\"visible\":\"{{value}}\"}}}},{\"id\":\"rule.add.visibility\",\"intentExamples\":[\"add visibility rule\",\"regra de visibilidade\",\"campo condicional\"],\"patchTemplate\":{\"formRules\":[{\"id\":\"{{value.id}}\",\"name\":\"{{value.name}}\",\"targetType\":\"field\",\"targets\":[\"{{target}}\"],\"effect\":{\"condition\":\"{{value.condition}}\",\"properties\":{\"hidden\":false},\"propertiesWhenFalse\":{\"hidden\":true}}}]},\"safetyNotes\":\"Criacao de regras requer Json Logic canonico em effect.condition, atencao a IDs de campos e teste apos a criacao.\"},{\"id\":\"rule.remove\",\"intentExamples\":[\"remove rule\",\"excluir regra\",\"apagar regra\"],\"patchTemplate\":{\"formRules\":[{\"id\":\"{{target}}\",\"_delete\":true}]},\"safetyNotes\":\"Remover regras pode ter efeitos inesperados no comportamento do formulário.\"}]}}",
|
|
17165
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/filter-form-context-pack.ts",
|
|
17166
|
+
"contentHash": "18a73780a846aaa37252e9b7b138e69898b7b5c48631f2d2410d1d63c7684ee6",
|
|
17167
|
+
"sourceKind": "component_definition",
|
|
17168
|
+
"sourceId": "praxis-filter-form",
|
|
17169
|
+
"corpusVersion": "1.0.0"
|
|
17170
|
+
},
|
|
17171
|
+
{
|
|
17172
|
+
"chunkIndex": 38,
|
|
17173
|
+
"chunkKind": "context_pack",
|
|
17174
|
+
"content": "{\"componentId\":\"praxis-filter-form\",\"chunkSection\":\"componentContext.actionCatalog\",\"componentContext\":{\"actionCatalog\":[{\"id\":\"rule.add.dependency\",\"intentExamples\":[\"adicionar dependencia\",\"campo depende de\",\"mostrar se\",\"obrigatorio se\",\"desabilitar se\",\"campo condicional\"],\"scope\":\"GLOBAL\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"params\":[{\"name\":\"triggerField\",\"type\":\"STRING\",\"description\":\"Campo que controla a regra (ex: tipoPessoa)\"},{\"name\":\"conditionValue\",\"type\":\"STRING\",\"description\":\"Valor do trigger para ativar a regra (ex: \\\"Jurídica\\\")\"},{\"name\":\"targetField\",\"type\":\"STRING\",\"description\":\"Campo afetado pela regra (ex: cnpj)\"},{\"name\":\"effectType\",\"type\":\"ENUM\",\"options\":[\"visibility\",\"required\",\"disabled\"],\"description\":\"Tipo de efeito (visibility=mostrar, required=obrigatório, disabled=desabilitar)\"}],\"patchTemplate\":{\"formRules\":[{\"id\":\"rule_{{params.triggerField}}_{{params.targetField}}\",\"name\":\"Dependência: {{params.targetField}} depende de {{params.triggerField}}\",\"targetType\":\"field\",\"targets\":[\"{{params.targetField}}\"],\"effect\":{\"condition\":{\"==\":[{\"var\":\"{{params.triggerField}}\"},\"{{params.conditionValue}}\"]},\"properties\":{\"hidden\":\"{{params.effectType === 'visibility' ? false : undefined}}\",\"required\":\"{{params.effectType === 'required' ? true : undefined}}\",\"disabled\":\"{{params.effectType === 'disabled' ? true : undefined}}\"},\"propertiesWhenFalse\":{\"hidden\":\"{{params.effectType === 'visibility' ? true : undefined}}\",\"required\":\"{{params.effectType === 'required' ? false : undefined}}\",\"disabled\":\"{{params.effectType === 'disabled' ? false : undefined}}\"}}}]},\"safetyNotes\":\"Verifique se os nomes dos campos (trigger e target) existem. Ajuste a condição se o valor não for string simples.\"},{\"id\":\"rule.add.custom\",\"intentExamples\":[\"adicionar regra customizada\",\"regra complexa\",\"logica de formulario\"],\"scope\":\"GLOBAL\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"params\":[{\"name\":\"id\",\"type\":\"STRING\",\"description\":\"ID único da regra\"},{\"name\":\"condition\",\"type\":\"STRING\",\"description\":\"Objeto Json Logic canonico serializado, nunca DSL textual (ex: { \\\"and\\\": [{ \\\">\\\": [{ \\\"var\\\": \\\"idade\\\" }, 18] }, { \\\"==\\\": [{ \\\"var\\\": \\\"possuiHabilitacao\\\" }, true] }] })\"},{\"name\":\"targetField\",\"type\":\"STRING\",\"description\":\"Campo afetado\"},{\"name\":\"propertyName\",\"type\":\"STRING\",\"description\":\"Propriedade afetada (hidden, required, disabled, readOnly)\"},{\"name\":\"valueIfTrue\",\"type\":\"BOOLEAN\",\"description\":\"Valor se a condição for verdadeira\"},{\"name\":\"valueIfFalse\",\"type\":\"BOOLEAN\",\"description\":\"Valor se a condição for falsa\"}],\"patchTemplate\":{\"formRules\":[{\"id\":\"{{params.id}}\",\"name\":\"Regra Customizada: {{params.id}}\",\"targetType\":\"field\",\"targets\":[\"{{params.targetField}}\"],\"effect\":{\"condition\":\"{{params.condition}}\",\"properties\":{\"{{params.propertyName}}\":\"{{params.valueIfTrue}}\"},\"propertiesWhenFalse\":{\"{{params.propertyName}}\":\"{{params.valueIfFalse}}\"}}}]}}]}}",
|
|
17175
|
+
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/filter-form-context-pack.ts",
|
|
17176
|
+
"contentHash": "b66c5f1a3cc313899adda056779ae929f176bf5708dd6e27c750afc72685b5e2",
|
|
17177
|
+
"sourceKind": "component_definition",
|
|
17178
|
+
"sourceId": "praxis-filter-form",
|
|
17179
|
+
"corpusVersion": "1.0.0"
|
|
17180
|
+
},
|
|
17181
|
+
{
|
|
17182
|
+
"chunkIndex": 39,
|
|
15797
17183
|
"chunkKind": "context_pack",
|
|
15798
17184
|
"content": "{\"componentId\":\"praxis-filter-form\",\"chunkSection\":\"componentContext\",\"componentContext\":{\"fieldResolvers\":{\"fieldMetadata[]\":[\"name\",\"label\"],\"sections[]\":[\"id\",\"title\"],\"sections[].rows[].columns[].items[]\":[\"id\",\"fieldName\"],\"sections[].rows[].columns[].fields[]\":[]},\"hints\":[\"Use fieldMetadata[].name as the canonical field id; avoid array indexes.\",\"Local fields are real form controls. Create them in fieldMetadata[] with source:\\\"local\\\", usually transient:true and submitPolicy:\\\"omit\\\", then place them as kind:\\\"field\\\" layout items.\",\"submitPolicy accepts only \\\"omit\\\", \\\"include\\\", or \\\"includeWhenDirty\\\". If legacy prompt text says \\\"never\\\", normalize it to \\\"omit\\\" before persisting.\",\"Visual blocks are not fields. Store them only as kind:\\\"richContent\\\" layout items and never in fieldMetadata[].\",\"Use sections[].rows[].columns[].items[] as the canonical mixed layout order. kind:\\\"field\\\" items reference fieldMetadata; kind:\\\"richContent\\\" items are visual blocks outside submit payload.\",\"Keep sections[].rows[].columns[].fields[] only as a field projection/migration path; do not create visual blocks there.\",\"For visualBlock formRules that change text, title, or message in a composed richContent document, use textNodeId, titleNodeId, or messageNodeId from the rule authoring context.\",\"For field formRules that must calculate a FormControl value, use effect.properties.value with the closed envelope { expression: <JSON Logic> }, such as { expression: { yearsSince: [{ var: \\\"birthDate\\\" }] } }. Use the closed envelope { literal: <value> } for structured literal objects; do not add extra keys and do not generate TypeScript functions.\",\"For conditional side effects, use formCommandRules with effects[].kind:\\\"global-action\\\" and a structured globalAction ref. The visual editor authors the primary effect and preserves secondary effects from advanced JSON. Do not put alert/modal/navigation commands inside formRules[].effect.properties.\",\"LLM-created formRules must include metadata.origin:\\\"llm\\\" and metadata.reviewStatus:\\\"pending\\\"; never write generated formRulesState.\",\"Domain guidance rules should usually target visualBlock when they only change advisory copy, compliance warnings, or operational instructions without changing submitted data.\",\"For layout edits, prefer adding or merging sections/rows/columns instead of replacing arrays. Use _delete: true for removal.\",\"Avoid non-serializable hooks or functions in patches; use plain strings or ask for manual edits.\",\"When adding sections/rows/columns, provide a unique \\\"id\\\" for each new element.\",\"For nested layout changes (column within a row within a section), explicitly define \\\"target.sectionId\\\", \\\"target.rowId\\\", \\\"target.columnId\\\" in user prompt for clarity.\",\"DOC: Widget purpose: dynamic form driven by FormConfig (layout + fields).\",\"DOC: Host inputs: config (optional, defaults to { sections: [] }) and resourcePath (optional). mode is optional (create/edit/view).\",\"DOC: When config is provided, sections[] define layout; fieldMetadata[] defines fields referenced by sections.\",\"DOC: If the form should be schema-driven, resourcePath + schemaSource are needed to fetch schema.\",\"DOC: resourcePath must be the base resource path only (no /filter, /all, /{id}). CRUD endpoints are handled internally.\"]}}",
|
|
15799
17185
|
"sourcePointer": "projects/praxis-dynamic-form/src/lib/ai/filter-form-context-pack.ts",
|