@praxisui/dynamic-fields 9.0.4-rc.9 → 9.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/ai/component-registry.json +2 -2
- package/docs/dynamic-fields-inline-filter-catalog.md +3 -1
- package/fesm2022/praxisui-dynamic-fields.mjs +3013 -2334
- package/package.json +3 -3
- package/src/lib/components/inline-entity-lookup/pdx-inline-entity-lookup.json-api.md +22 -5
- package/src/lib/components/inline-multi-select/pdx-inline-multi-select.json-api.md +4 -3
- package/src/lib/components/material-async-select/pdx-material-async-select.json-api.md +9 -8
- package/src/lib/components/material-date-range/pdx-material-date-range.json-api.md +1 -0
- package/src/lib/components/material-datepicker/pdx-material-datepicker.json-api.md +2 -1
- package/src/lib/components/material-select/pdx-material-select.json-api.md +7 -7
- package/types/praxisui-dynamic-fields.d.ts +201 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/dynamic-fields",
|
|
3
|
-
"version": "9.0.4
|
|
3
|
+
"version": "9.0.4",
|
|
4
4
|
"description": "Angular Material-based dynamic form fields for Praxis UI with lazy loading and metadata-driven rendering.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"@angular/platform-browser": "^21.0.0",
|
|
12
12
|
"@angular/router": "^21.0.0",
|
|
13
13
|
"rxjs": "^7.8.0",
|
|
14
|
-
"@praxisui/core": "^9.0.4
|
|
15
|
-
"@praxisui/cron-builder": "^9.0.4
|
|
14
|
+
"@praxisui/core": "^9.0.4",
|
|
15
|
+
"@praxisui/cron-builder": "^9.0.4"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"libphonenumber-js": "^1.12.41",
|
|
@@ -21,8 +21,8 @@ source_of_truth:
|
|
|
21
21
|
- "projects/praxis-dynamic-fields/src/lib/components/inline-entity-lookup/inline-entity-lookup.component.ts"
|
|
22
22
|
- "projects/praxis-dynamic-fields/src/lib/components/material-async-select/material-async-select.component.ts"
|
|
23
23
|
- "projects/praxis-core/src/lib/models/material-field-metadata.interface.ts"
|
|
24
|
-
source_of_truth_last_verified: "2026-
|
|
25
|
-
last_updated: "2026-
|
|
24
|
+
source_of_truth_last_verified: "2026-08-03"
|
|
25
|
+
last_updated: "2026-08-03"
|
|
26
26
|
toc: true
|
|
27
27
|
sidebar: true
|
|
28
28
|
tags:
|
|
@@ -128,10 +128,19 @@ Este documento e a referencia canonica da API JSON de pdx-inline-entity-lookup.
|
|
|
128
128
|
| `metadata.optionSource.display.secondaryPropertyPaths` | string[] | false | n/a | Active | Campos de subtitulo usados para diferenciar entidades parecidas. |
|
|
129
129
|
| `metadata.optionSource.display.fields` | object[] | false | n/a | Active | Campos ricos semanticos exibidos na lista e no valor selecionado. Cada item aceita `key`, `propertyPath`, `label`, `icon`, `presentation`, `tone` e `format`. |
|
|
130
130
|
| `metadata.optionSource.display.badgePropertyPaths` | string[] | false | n/a | Active | Campos publicados como badges/chips quando o backend tambem os materializa no payload de option. |
|
|
131
|
-
| `metadata.
|
|
131
|
+
| `metadata.optionSource.display.statusLabelMap` | Record<string, string> | false | n/a | Active | Traduz somente o rótulo visual do status; o código canônico continua governando seleção, filtros e tons. |
|
|
132
|
+
| `metadata.searchable` | boolean | false | `true` para fontes nao categoricas | Active | Materializa a acao acessivel de busca como irma externa do `MatSelect` e abre o dialogo governado sem inserir controles interativos no listbox. |
|
|
132
133
|
| `metadata.dialog` | object | false | configuracao derivada do campo | Active | Customiza titulo, tamanho, preview, colunas e acoes da busca governada. |
|
|
133
134
|
| `metadata.dialog.enabled` | boolean | false | herda `metadata.searchable` | Active | `false` desativa explicitamente a superficie de busca; `true` a habilita mesmo quando `searchable=false`. |
|
|
134
135
|
|
|
136
|
+
The governed search dialog owns a visible close action, focuses the search
|
|
137
|
+
input when it opens, restores focus on close, constrains itself to the viewport,
|
|
138
|
+
and presents remote failures with a retry action. Canonical search strategy
|
|
139
|
+
`kind` values are translated into business-facing labels; internal strategy
|
|
140
|
+
keys are not exposed as the primary copy. Remote option sources may require an
|
|
141
|
+
authenticated host context. The component preserves that boundary and never
|
|
142
|
+
falls back to an unprotected resource endpoint when authorization fails.
|
|
143
|
+
|
|
135
144
|
### Path audit
|
|
136
145
|
|
|
137
146
|
Nenhum desvio de caminho foi identificado nesta revisao.
|
|
@@ -172,7 +181,7 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
172
181
|
| `metadata.optionSource.display` | object | false | n/a | contrato semantico de UX, nao CSS | Governanca de preset, uso, densidade, campos ricos, secundarios e badges do resultado. |
|
|
173
182
|
| `metadata.resourcePath` | string | false | n/a | component-defined | Partial; verify per source_of_truth. |
|
|
174
183
|
| `metadata.inlineAutoSize.*` | object | false | n/a | component-defined | Partial; verify per source_of_truth. |
|
|
175
|
-
| `metadata.searchable` | boolean | false | `true` para fontes nao categoricas | boolean | Active; abre a busca governada por uma acao irma do `mat-select
|
|
184
|
+
| `metadata.searchable` | boolean | false | `true` para fontes nao categoricas | boolean | Active; abre a busca governada por uma acao externa irma do `mat-select`, nunca projetada no trigger ou no painel de opcoes. |
|
|
176
185
|
| `metadata.dialog` | object | false | derivado do campo | `LookupDialogMetadata` | Active; configura a busca avancada sem redefinir identidade ou option source. |
|
|
177
186
|
| `metadata.dialog.enabled` | boolean | false | herda `metadata.searchable` | boolean | Active; opt-out explicito quando `false`. |
|
|
178
187
|
|
|
@@ -329,13 +338,14 @@ Use quando precisar:
|
|
|
329
338
|
| `metadata.optionSource.detail.surfaceId` | `string` | Ativo | Id da surface item-level preferida para o detalhe. Quando ausente, o runtime escolhe `detail`, `view` ou a primeira surface item-level de leitura disponivel. |
|
|
330
339
|
| `metadata.optionSource.detail.presentation` | `"drawer" | "modal"` | Ativo | Apresentacao desejada para `surface.open`. Default vem do preset/host de surface. |
|
|
331
340
|
| `metadata.optionSource.detail.preferredWidget` / `metadata.optionSource.detail.mode` | `string` | Documental | Hints semanticos para autoria/discovery. A materializacao final vem da surface descoberta e do `ResourceSurfaceOpenAdapterService`. |
|
|
332
|
-
| `metadata.optionSource.detail.hrefTemplate` / `metadata.optionSource.detail.routeTemplate` | `string` | Legado |
|
|
341
|
+
| `metadata.optionSource.detail.hrefTemplate` / `metadata.optionSource.detail.routeTemplate` | `string` | Legado | Navegacao usada somente quando o contrato nao declara surface governada. Uma falha ao materializar `detail.kind: "surface"` nunca degrada para rota/href, evitando 404, vazamento de endpoint ou mudanca inesperada de contexto. Quando somente os fallbacks legados existem, `routeTemplate` tem precedencia; `hrefTemplate` de `/api/**` e evidencia de recurso, nao destino de UX. |
|
|
333
342
|
| `metadata.optionSource.display.preset` | `"compact" | "rich" | "directory" | "status" | "reference" | "hierarchical"` | Ativo | Define a intencao visual canonica. `directory` e recomendado para pessoas/equipes; `reference` para codigo + descricao; `status` para entidades com estado operacional forte. |
|
|
334
343
|
| `metadata.optionSource.display.usage` | `"form" | "filter" | "table-cell" | "dashboard" | "wizard" | "review"` | Ativo | Indica onde a option-source costuma aparecer. O runtime pode ajustar densidade e acoes sem duplicar regra por host. |
|
|
335
344
|
| `metadata.optionSource.display.density` | `"compact" | "comfortable" | "rich"` | Ativo | Densidade preferencial. Campos de formulario usam `comfortable`; filtros inline e celulas de tabela tendem a `compact`; revisoes podem usar `rich`. |
|
|
336
345
|
| `metadata.optionSource.display.secondaryPropertyPaths` | `string[]` | Ativo | Campos usados como subtitulo quando o payload local ou remoto preserva essas propriedades. O runtime tambem aceita `descriptionPropertyPaths` como fallback. |
|
|
337
346
|
| `metadata.optionSource.display.fields` | `object[]` | Ativo | Subinformacoes ricas com `propertyPath`, `label`, `icon`, `presentation` (`text`, `chip`, `badge`, `date`, `currency`, `metric`), `tone` e `format`. Quando o endpoint materializa `OptionDTO.extra.richFields[]`, esses valores sao usados diretamente. |
|
|
338
347
|
| `metadata.optionSource.display.badgePropertyPaths` | `string[]` | Ativo | Campos usados para badges/chips quando materializados no payload da option-source. |
|
|
348
|
+
| `metadata.optionSource.display.statusLabelMap` | `Record<string, string>` | Ativo | Mapeia códigos canônicos para rótulos localizados sem alterar o valor usado por `selectionPolicy`. |
|
|
339
349
|
| `metadata.resourcePath` | `string` | Ativo | Caminho operacional herdado. Para Entity Lookup de plataforma, preferir `metadata.optionSource.resourcePath`. |
|
|
340
350
|
| `metadata.inlineAutoSize.*` | `object` | Ativo | Largura responsiva da pill lookup. |
|
|
341
351
|
| `metadata.selectedLayout` | `"compact" | "inline" | "card" | "token"` | Ativo | Para `controlType: "entityLookup"`, `compact` e o default preservam altura de campo de formulario. `card` renderiza valor selecionado como cartao rico quando a superficie pedir revisao/detalhe. `token` preserva leitura compacta herdada. |
|
|
@@ -348,6 +358,7 @@ Use quando precisar:
|
|
|
348
358
|
| `metadata.showDisabledReason` | `boolean` | Ativo | Controla exibicao do motivo de bloqueio quando `selectable=false`. Default: `true`. |
|
|
349
359
|
| `metadata.showResultCount` | `boolean` | Ativo | Controla contador de resultados no painel de busca. Quando `totalElements` remoto for maior que os itens carregados, mostra `carregados de total` para deixar claro que a lista visivel ainda e uma pagina parcial; em fontes locais/cursor, mostra o total carregado. Default: `true`. |
|
|
350
360
|
| `metadata.statusToneMap` | `Record<string, "success" | "warning" | "danger" | "neutral">` | Ativo | Permite mapear status de dominio para tom visual governado. |
|
|
361
|
+
| `metadata.statusLabelMap` | `Record<string, string>` | Ativo | Override local do mapa de rótulos; prefira `optionSource.display.statusLabelMap` como fonte governada. |
|
|
351
362
|
| `metadata.badgeKeys` | `string[]` | Ativo | Chaves adicionais lidas do valor de entidade para compor badges auxiliares. |
|
|
352
363
|
| `metadata.maxVisibleBadges` | `number` | Ativo | Limita quantidade de badges auxiliares exibidos. Default: `3`. |
|
|
353
364
|
| `metadata.actions.showDetail` | `boolean` | Ativo | Controla acao de detalhe quando houver surface canonica, `detailRoute` navegavel ou `detailHref` nao-API. `detailHref` de API nao abre nova aba para evitar link morto em hosts corporativos. Default: `true`. |
|
|
@@ -371,6 +382,8 @@ Resumo de composicao deste componente:
|
|
|
371
382
|
- `metadata.optionSource.display` e a fonte preferencial de UX para a entidade; campos top-level como `selectedLayout`, `density`, `showAvatar` e `showStatus` funcionam como override local de host.
|
|
372
383
|
- Opcoes podem mostrar linha secundaria (`subtitle`) para desambiguacao; em `entityLookup`, a linha rica tambem mostra avatar, campos ricos com icones/chips/datas, status visual, badges e motivo de bloqueio.
|
|
373
384
|
- Com `metadata.optionSource.resourcePath`, busca emite termo no pipeline remoto de option-source; sem endpoint, filtra local.
|
|
385
|
+
- Com fonte remota e `loadOn: "open"`, o seletor rapido permanece abrivel antes da primeira pagina para disparar a carga inicial. A opcao sentinela que viabiliza essa abertura e interna, invisivel e nao integra o contrato visual ou o valor do campo.
|
|
386
|
+
- Ao confirmar uma opcao no seletor rapido, a selecao simples fecha o painel e devolve o foco ao campo; a selecao multipla preserva o painel aberto para continuidade da tarefa. Mouse e teclado seguem a mesma regra.
|
|
374
387
|
- Em uso standalone de shell/topbar autenticado, o componente aceita `FormControl` externo com `initialMetadata` estático e `options` locais. Um valor inicial já selecionado no controle deve materializar o texto da opção local sem bloquear a montagem da rota nem realimentar change detection quando a metadata recebida for semanticamente equivalente.
|
|
375
388
|
- `metadata.resourcePath` continua aceito como configuracao operacional herdada, mas nao substitui a semantica canonica de entidade publicada em `metadata.optionSource`.
|
|
376
389
|
- As acoes de painel ficam em um rodape materializado como irmao do `listbox` no overlay: `Limpar selecao` e uma acao secundaria alinhada ao inicio; `Carregar mais` e uma acao de largura total, com alvo minimo de 44 px, estado ocupado e foco visivel. `Tab` transfere o foco da busca para a primeira acao habilitada. Nenhuma delas participa da navegacao semantica de opcoes.
|
|
@@ -434,6 +447,10 @@ Uso: lookup simples em lista local.
|
|
|
434
447
|
"showCode": false,
|
|
435
448
|
"showDescription": true,
|
|
436
449
|
"showStatus": true,
|
|
450
|
+
"statusLabelMap": {
|
|
451
|
+
"ACTIVE": "Ativa",
|
|
452
|
+
"BLOCKED": "Bloqueada"
|
|
453
|
+
},
|
|
437
454
|
"showBadges": true,
|
|
438
455
|
"showResultCount": true
|
|
439
456
|
}
|
|
@@ -319,12 +319,13 @@ Resumo de composicao deste componente:
|
|
|
319
319
|
- `Parcial`: `multiple` declarado, mas runtime e forçado para `true`.
|
|
320
320
|
|
|
321
321
|
### 4. Mapeamento de Comportamento
|
|
322
|
-
-
|
|
323
|
-
-
|
|
322
|
+
- O trigger e um unico botao combobox; tokens selecionados sao apresentacionais e nao criam botoes aninhados.
|
|
323
|
+
- O painel conectado inclui busca no cabecalho quando `searchable=true`, lista de opcoes em `listbox` e acoes em footer irmao.
|
|
324
324
|
- `showOptionDisabled()` bloqueia novas escolhas quando `maxSelections` e atingido.
|
|
325
325
|
- Sem `resourcePath`, busca filtra lista local; com endpoint, usa pipeline remoto.
|
|
326
326
|
- Em `inlineOverlay.applyMode: "explicit"`, clique em opcoes, remocao e `Limpar` do painel alteram apenas o rascunho; `Aplicar` emite `valueChange/selectionChange`, enquanto `Cancelar`, `Esc` ou fechamento externo restauram a selecao confirmada.
|
|
327
|
-
- O quick-clear
|
|
327
|
+
- O quick-clear e irmao do trigger, fora do combobox e do painel, e comita imediatamente.
|
|
328
|
+
- Busca, botoes de opcao e footer existem apenas no overlay anexado; nenhuma acao e projetada como conteudo de `mat-select`/`mat-option`.
|
|
328
329
|
|
|
329
330
|
### 5. Exemplo Minimo (JSON + Uso)
|
|
330
331
|
```json
|
|
@@ -22,8 +22,8 @@ source_of_truth:
|
|
|
22
22
|
- "projects/praxis-dynamic-fields/src/lib/components/material-async-select/material-async-select.component.ts"
|
|
23
23
|
- "projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts"
|
|
24
24
|
- "projects/praxis-core/src/lib/models/material-field-metadata.interface.ts"
|
|
25
|
-
source_of_truth_last_verified: "2026-
|
|
26
|
-
last_updated: "2026-
|
|
25
|
+
source_of_truth_last_verified: "2026-08-11"
|
|
26
|
+
last_updated: "2026-08-11"
|
|
27
27
|
toc: true
|
|
28
28
|
sidebar: true
|
|
29
29
|
tags:
|
|
@@ -328,17 +328,17 @@ Garantias:
|
|
|
328
328
|
- no combobox simples pesquisavel, a proxima pagina e carregada
|
|
329
329
|
automaticamente quando o scroll se aproxima do fim da lista; nao existe
|
|
330
330
|
botao interativo dentro do `listbox`.
|
|
331
|
-
- no caminho
|
|
332
|
-
|
|
331
|
+
- no caminho de selecao por painel, busca, opcoes e a acao opcional de carregar
|
|
332
|
+
mais sao regioes irmas dentro do overlay conectado; o footer so existe no DOM
|
|
333
|
+
enquanto o painel esta aberto e nunca integra o `listbox`.
|
|
333
334
|
- fontes locais (`selectOptions`/`options`) e `loadOn='none'` antes da primeira carga nao exibem acao de paginacao.
|
|
334
335
|
- em paginacao numerada, o fim usa `totalPages`/`totalElements` quando fornecidos pelo backend; se ausentes, usa `content.length < pageSize` como fallback.
|
|
335
336
|
|
|
336
337
|
Limites:
|
|
337
338
|
|
|
338
339
|
- debounce de busca interno permanece fixo em `300ms`.
|
|
339
|
-
- selecao multipla
|
|
340
|
-
|
|
341
|
-
combobox simples.
|
|
340
|
+
- selecao multipla usa o overlay conectado com `listbox` multisselecao; ela nao
|
|
341
|
+
projeta busca ou acoes dentro de `mat-select` e nao reutiliza o combobox simples.
|
|
342
342
|
- ordenacao nao possui contrato dedicado nesta camada.
|
|
343
343
|
- `loadOn` e `useCursor` dependem da capacidade do backend e da configuracao global.
|
|
344
344
|
|
|
@@ -406,7 +406,7 @@ Precedencia de comportamento:
|
|
|
406
406
|
| `metadata.filterCriteria` | `Record<string, any>` | Active | Filtros base para consulta remota. |
|
|
407
407
|
| `metadata.optionLabelKey` | `string` | Active | Chave de label no payload remoto. |
|
|
408
408
|
| `metadata.optionValueKey` | `string` | Active | Chave de value no payload remoto. |
|
|
409
|
-
| `metadata.searchable` | `boolean` | Active | Em single, escolhe
|
|
409
|
+
| `metadata.searchable` | `boolean` | Active | Em single, escolhe o combobox pesquisavel; nos demais casos, habilita `pdx-collection-search` no cabecalho do overlay de colecao. |
|
|
410
410
|
| `metadata.loadOn` | `'open' \| 'init' \| 'none'` | Runtime-extension | Estrategia de primeira carga remota. |
|
|
411
411
|
| `metadata.dependencyLoadOnChange` | `'respectLoadOn' \| 'immediate' \| 'manual'` | Runtime-extension | Regras de recarga por dependencia. |
|
|
412
412
|
|
|
@@ -490,6 +490,7 @@ Correcao: use `dependencyLoadOnChange='immediate'` ou dispare recarga no host.
|
|
|
490
490
|
| `--pdx-select-panel-action-hover-surface` / `--pdx-select-panel-action-focus-ring` | overlay footer | Estados hover e foco visivel | O host deve preservar contraste AA em temas claro e escuro. |
|
|
491
491
|
| `--pdx-select-panel-load-more-surface` / `--pdx-select-panel-load-more-outline` | overlay footer | Tratamento do botao `Carregar mais` | Permite distinguir a acao sem acoplamento a internals MDC. |
|
|
492
492
|
| `--pdx-select-panel-actions-gap` / `--pdx-select-panel-actions-padding` / `--pdx-select-panel-action-min-height` / `--pdx-select-panel-action-padding` / `--pdx-select-panel-action-radius` / `--pdx-select-panel-action-disabled-opacity` | overlay footer | Densidade, geometria e estado desabilitado | Altura default de 44 px preserva alvo corporativo acessivel. |
|
|
493
|
+
| `--praxis-collection-search-*` | overlay header | Superficie, texto, outline, foco, densidade, tipografia e raio da busca | Contrato compartilhado com Table. `--praxis-collection-search-radius` aceita `0`, valores intermediarios e pill; nao criar aliases locais. |
|
|
493
494
|
|
|
494
495
|
## Examples (obrigatorio)
|
|
495
496
|
|
|
@@ -170,6 +170,7 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
170
170
|
### Manual date parsing
|
|
171
171
|
|
|
172
172
|
- Digitacao manual usa `PraxisNativeDateAdapter` e respeita o `LOCALE_ID` do host.
|
|
173
|
+
- Rotulos acessiveis do calendario Material usam o locale canonico do `PraxisI18nService` via `PraxisMatDatepickerIntl`, mantendo navegacao, atalhos e leitores de tela no mesmo idioma.
|
|
173
174
|
- Em locales nao ingleses, como `pt-BR`, datas numericas sao interpretadas como `dd/MM/yyyy`.
|
|
174
175
|
- Em locales ingleses, datas numericas sao interpretadas como `MM/dd/yyyy`.
|
|
175
176
|
- Strings ISO date-only (`YYYY-MM-DD`) sao tratadas como data local, sem deslocamento por timezone.
|
|
@@ -164,7 +164,8 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
164
164
|
|
|
165
165
|
### Manual date parsing
|
|
166
166
|
|
|
167
|
-
- Digitacao manual usa `PraxisNativeDateAdapter` e respeita `metadata.locale`; quando ausente, usa o
|
|
167
|
+
- Digitacao manual usa `PraxisNativeDateAdapter` e respeita `metadata.locale`; quando ausente, usa o locale canonico do `PraxisI18nService`.
|
|
168
|
+
- Rotulos visiveis e acessiveis do calendario Material (abrir, fechar, navegacao entre meses/anos e alternancia de visao) usam o mesmo locale efetivo do campo via `PraxisMatDatepickerIntl`.
|
|
168
169
|
- Em locales nao ingleses, como `pt-BR`, datas numericas sao interpretadas como `dd/MM/yyyy`.
|
|
169
170
|
- Em locales ingleses, datas numericas sao interpretadas como `MM/dd/yyyy`.
|
|
170
171
|
- `metadata.locale` e ordem de data sao independentes: `displayFormat`, `dateFormat` ou `mask` como `dd/MM/yyyy` habilitam apresentacao day-first; `MM/dd/yyyy` habilita month-first.
|
|
@@ -22,8 +22,8 @@ source_of_truth:
|
|
|
22
22
|
- "projects/praxis-dynamic-fields/src/lib/components/material-select/material-select.component.ts"
|
|
23
23
|
- "projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts"
|
|
24
24
|
- "projects/praxis-core/src/lib/models/material-field-metadata.interface.ts"
|
|
25
|
-
source_of_truth_last_verified: "2026-
|
|
26
|
-
last_updated: "2026-
|
|
25
|
+
source_of_truth_last_verified: "2026-08-11"
|
|
26
|
+
last_updated: "2026-08-11"
|
|
27
27
|
toc: true
|
|
28
28
|
sidebar: true
|
|
29
29
|
tags:
|
|
@@ -337,12 +337,12 @@ Garantias:
|
|
|
337
337
|
Limites:
|
|
338
338
|
|
|
339
339
|
- componente opera em selecao unica (nao e multi-select).
|
|
340
|
-
- `searchable=true`
|
|
340
|
+
- `searchable=true` materializa a busca no cabecalho do overlay conectado, como regiao irma do `listbox`.
|
|
341
341
|
- `clearButton` e suportado via runtime base, mas nao tipado explicitamente em `MaterialSelectMetadata`.
|
|
342
342
|
|
|
343
343
|
#### Controle de comportamento
|
|
344
344
|
|
|
345
|
-
**O que isso habilita:** padrao unico de carregamento local/remoto e exibicao de opcoes no
|
|
345
|
+
**O que isso habilita:** padrao unico de carregamento local/remoto e exibicao de opcoes no overlay conectado de colecao.
|
|
346
346
|
|
|
347
347
|
**Quando usar:** quando a regra de negocio exige previsibilidade de UX e compatibilidade entre squads.
|
|
348
348
|
|
|
@@ -395,7 +395,7 @@ Precedencia de comportamento:
|
|
|
395
395
|
| `metadata.selectOptions` | `Array<{ value; text; label?; disabled? }>` | Active | Fonte principal de opcoes locais. |
|
|
396
396
|
| `metadata.options` | `Array<any>` | Runtime-extension | Alias legado quando `selectOptions` nao e informado. |
|
|
397
397
|
| `metadata.emptyOptionText` | `string` | Active | Exibe opcao vazia com valor `null`. |
|
|
398
|
-
| `metadata.searchable` | `boolean` |
|
|
398
|
+
| `metadata.searchable` | `boolean` | Active | Renderiza `pdx-collection-search` no cabecalho do overlay, fora do `listbox`. |
|
|
399
399
|
| `metadata.multiple` | `boolean` | Partial | Campo declarado, porem runtime deste componente permanece single (`false`). |
|
|
400
400
|
| `metadata.selectAll` | `boolean` | Partial | Sem efeito funcional em modo single. |
|
|
401
401
|
| `metadata.maxSelections` | `number` | Partial | Sem efeito funcional em modo single. |
|
|
@@ -421,8 +421,8 @@ Contrato compartilhado completo:
|
|
|
421
421
|
1. Multi-selecao nao funciona neste componente.
|
|
422
422
|
Correcao: use `pdx-material-multi-select` ou `pdx-material-async-select` com `multiple=true`.
|
|
423
423
|
|
|
424
|
-
2.
|
|
425
|
-
Correcao:
|
|
424
|
+
2. A busca nao aparece com `searchable=true`.
|
|
425
|
+
Correcao: confirme que o painel esta aberto e que o metadata efetivo nao sobrescreveu `searchable`; a busca so existe no DOM enquanto o overlay esta anexado.
|
|
426
426
|
|
|
427
427
|
3. Opcoes nao carregam no remoto.
|
|
428
428
|
Correcao: valide `resourcePath`, `filterCriteria` e mapeamento `optionLabelKey/optionValueKey`.
|