@praxisui/dynamic-fields 9.0.14 → 9.0.16
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/ai/component-registry.json +2352 -90
- package/docs/dynamic-fields-inline-components-guide.md +19 -9
- package/docs/dynamic-fields-inline-filter-catalog.md +12 -1
- package/docs/dynamic-fields-inline-filter-runtime-contract.md +12 -0
- package/fesm2022/praxisui-dynamic-fields.mjs +147 -115
- package/package.json +3 -3
- package/src/lib/components/inline-entity-lookup/pdx-inline-entity-lookup.json-api.md +3 -1
- package/types/praxisui-dynamic-fields.d.ts +3 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/dynamic-fields",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.16",
|
|
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.
|
|
15
|
-
"@praxisui/cron-builder": "^9.0.
|
|
14
|
+
"@praxisui/core": "^9.0.16",
|
|
15
|
+
"@praxisui/cron-builder": "^9.0.16"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"libphonenumber-js": "^1.12.41",
|
|
@@ -362,7 +362,7 @@ Use quando precisar:
|
|
|
362
362
|
| `metadata.badgeKeys` | `string[]` | Ativo | Chaves adicionais lidas do valor de entidade para compor badges auxiliares. |
|
|
363
363
|
| `metadata.maxVisibleBadges` | `number` | Ativo | Limita quantidade de badges auxiliares exibidos. Default: `3`. |
|
|
364
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`. |
|
|
365
|
-
| `metadata.actions.showChange` | `boolean` | Ativo |
|
|
365
|
+
| `metadata.actions.showChange` | `boolean` | Ativo | Override explicito da acao de troca no valor selecionado. Sem configuracao, o default e `true` no campo completo e `false` no controle inline, que usa o proprio trigger do combobox como affordance de troca. |
|
|
366
366
|
| `metadata.actions.showCopyCode` | `boolean` | Ativo | Controla acao de copiar codigo/id. Default: `true`. |
|
|
367
367
|
| `metadata.actions.showClear` | `boolean` | Ativo | Controla acao de limpar em conjunto com `clearButton`/clearable herdado. |
|
|
368
368
|
| `metadata.detailActionLabel` / `metadata.changeActionLabel` / `metadata.copyCodeActionLabel` / `metadata.clearActionLabel` | `string` | Ativo | Overrides textuais das acoes do cartao selecionado. |
|
|
@@ -387,6 +387,8 @@ Resumo de composicao deste componente:
|
|
|
387
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.
|
|
388
388
|
- `metadata.resourcePath` continua aceito como configuracao operacional herdada, mas nao substitui a semantica canonica de entidade publicada em `metadata.optionSource`.
|
|
389
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.
|
|
390
|
+
- No dialog, `ArrowDown` e `Tab` transferem o foco da busca para o resultado ativo; sem resultados, `Tab` avanca para a primeira acao habilitada. `Shift+Tab` preserva a ordem reversa, `Escape` fecha o overlay e o foco retorna ao trigger de origem.
|
|
391
|
+
- No controle inline selecionado, detalhe, troca, copia, remocao e limpeza formam um unico segmento visual adjacente ao trigger. O segmento so existe quando pelo menos uma acao esta materializada; campos obrigatorios, somente leitura ou limitados por permissao nao expõem grupo vazio.
|
|
390
392
|
- A reidratacao por IDs preserva o valor selecionado, mas nao conta como carga da pagina zero. No primeiro `open`, o runtime consulta a pagina zero antes de habilitar `Carregar mais`; o contador remoto e a lista visivel permanecem coerentes.
|
|
391
393
|
- Durante busca digitada, a lista visivel mostra apenas resultados retornados pela pagina remota filtrada. O selecionado reidratado por ID nao e injetado como falso resultado, embora continue preservado para display fechado e reabertura sem termo.
|
|
392
394
|
- `OptionDTO.extra.selectable === false` desabilita a opcao e permite exibir `disabledReason` sem remover a entidade da lista ou da reidratacao.
|
|
@@ -3161,6 +3161,7 @@ declare class InlineEntityLookupComponent extends MaterialAsyncSelectComponent i
|
|
|
3161
3161
|
errorStateMatcher(): _angular_material_core.ErrorStateMatcher;
|
|
3162
3162
|
protected getSpecificCssClasses(): string[];
|
|
3163
3163
|
selectPanelClasses(): string[];
|
|
3164
|
+
selectPanelWidth(): string;
|
|
3164
3165
|
hasSelection(): boolean;
|
|
3165
3166
|
selectedCount(): number;
|
|
3166
3167
|
panelActionsVisible(): boolean;
|
|
@@ -3207,6 +3208,7 @@ declare class InlineEntityLookupComponent extends MaterialAsyncSelectComponent i
|
|
|
3207
3208
|
showDetailAction(item: EntityLookupViewModel): boolean;
|
|
3208
3209
|
private hasGovernedDetailSurface;
|
|
3209
3210
|
showChangeAction(): boolean;
|
|
3211
|
+
hasExternalSelectionActions(item: EntityLookupViewModel): boolean;
|
|
3210
3212
|
showCopyCodeAction(item: EntityLookupViewModel): boolean;
|
|
3211
3213
|
showCopyIdAction(item: EntityLookupViewModel): boolean;
|
|
3212
3214
|
showCreateAction(): boolean;
|
|
@@ -3308,7 +3310,6 @@ declare class InlineEntityLookupComponent extends MaterialAsyncSelectComponent i
|
|
|
3308
3310
|
private lookupDialogMetadata;
|
|
3309
3311
|
private resolveDialogWidth;
|
|
3310
3312
|
private humanizeLookupField;
|
|
3311
|
-
private interpolateLookupText;
|
|
3312
3313
|
private lookupDependencyLabels;
|
|
3313
3314
|
private missingDependencyLabels;
|
|
3314
3315
|
private hasDependencyValue;
|
|
@@ -3490,6 +3491,7 @@ declare class EntityLookupDialogComponent implements AfterViewInit {
|
|
|
3490
3491
|
resultRowTabIndex(index: number): number;
|
|
3491
3492
|
resultRowAriaLabel(option: LookupOption): string;
|
|
3492
3493
|
setActiveResult(index: number, option: LookupOption): void;
|
|
3494
|
+
onSearchInputKeydown(event: KeyboardEvent): void;
|
|
3493
3495
|
onResultRowKeydown(event: KeyboardEvent, index: number, option: LookupOption): void;
|
|
3494
3496
|
showPreviewDetailAction(item: EntityLookupViewModel): boolean;
|
|
3495
3497
|
showPreviewCopyCodeAction(item: EntityLookupViewModel): boolean;
|
|
@@ -3561,7 +3563,6 @@ declare class InlineMultiSelectComponent extends SimpleBaseSelectComponent {
|
|
|
3561
3563
|
onComponentInit(): void;
|
|
3562
3564
|
ngAfterViewInit(): void;
|
|
3563
3565
|
onViewportResize(): void;
|
|
3564
|
-
errorStateMatcher(): _angular_material_core.ErrorStateMatcher;
|
|
3565
3566
|
protected getSpecificCssClasses(): string[];
|
|
3566
3567
|
protected defaultPanelClass(): string | string[] | undefined;
|
|
3567
3568
|
hasSelection(): boolean;
|