@oondemand/create-central-oon 0.5.1 → 0.5.3
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.
|
@@ -444,3 +444,44 @@ Tipos de aba:
|
|
|
444
444
|
- `customComponent`: chave de componente registrado.
|
|
445
445
|
|
|
446
446
|
`apiAction.endpoint` aceita `:id`, `:parentId`, `:fieldName` e `:parent.fieldName`. `refresh` aceita `self`, `parent`, `all` ou ids de abas.
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
## Opções remotas em campos de formulário
|
|
450
|
+
|
|
451
|
+
Campos `enum` podem carregar opções de um endpoint dependente do formulário atual ou do registro pai. O contrato funciona em formulários principais e em criação/edição de `relatedGrid`.
|
|
452
|
+
|
|
453
|
+
```ts
|
|
454
|
+
{
|
|
455
|
+
field: "roleCode",
|
|
456
|
+
label: "Perfil",
|
|
457
|
+
kind: "enum",
|
|
458
|
+
optionsEndpoint: "/control-plane/app-role-catalogs/:appId?tenantId=:parentId",
|
|
459
|
+
optionsResponsePath: "options",
|
|
460
|
+
optionsValueField: "value",
|
|
461
|
+
optionsLabelField: "label",
|
|
462
|
+
optionsDescriptionField: "description",
|
|
463
|
+
optionsEditablePath: "editable",
|
|
464
|
+
optionsDependsOn: ["appId", "tenantId"],
|
|
465
|
+
fallbackOptions: [{ value: "admin", label: "Administrador" }],
|
|
466
|
+
readonlyOnFallback: true,
|
|
467
|
+
optionsUnavailableMessage: "Catálogo indisponível; perfil admin aplicado."
|
|
468
|
+
}
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
| Campo | Uso |
|
|
472
|
+
| --- | --- |
|
|
473
|
+
| `optionsEndpoint` | Endpoint relativo. Aceita `:field`, `:parentId` e `:parent.field`; valores são codificados para URL. |
|
|
474
|
+
| `optionsResponsePath` | Caminho da lista na resposta. Sem valor, a própria resposta deve ser um array. |
|
|
475
|
+
| `optionsValueField` | Campo usado como valor da opção; padrão `value`. |
|
|
476
|
+
| `optionsLabelField` | Campo usado como rótulo; padrão `label`. |
|
|
477
|
+
| `optionsDescriptionField` | Campo opcional de descrição. |
|
|
478
|
+
| `optionsEditablePath` | Booleano remoto que permite ou bloqueia a edição. |
|
|
479
|
+
| `optionsDependsOn` | Campos que precisam estar preenchidos e cuja mudança invalida a seleção atual. |
|
|
480
|
+
| `fallbackOptions` | Opções seguras usadas quando o endpoint falha ou retorna lista vazia. |
|
|
481
|
+
| `readonlyOnFallback` | Bloqueia a seleção durante o fallback; padrão `true`. |
|
|
482
|
+
| `optionsUnavailableMessage` | Mensagem explicando o fallback ao usuário. |
|
|
483
|
+
| `readonly` | Bloqueia o campo em qualquer estado. |
|
|
484
|
+
|
|
485
|
+
Durante a edição, a interpolação também considera os valores iniciais completos do registro, inclusive campos somente leitura que não são renderizados no formulário. Valores alterados pelo usuário prevalecem sobre os valores iniciais.
|
|
486
|
+
|
|
487
|
+
O backend continua responsável por validar o valor selecionado. Opções remotas melhoram a experiência, mas não substituem autorização nem validação de domínio.
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"sync:metadata": "oonCore-front sync:metadata"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@oondemand/oon-core-front": "^0.5.
|
|
14
|
+
"@oondemand/oon-core-front": "^0.5.3",
|
|
15
15
|
"@chakra-ui/react": "^3.13.0",
|
|
16
16
|
"@emotion/react": "^11.14.0",
|
|
17
17
|
"@tanstack/react-query": "^5.65.0",
|