@praxisui/list 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/package.json
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/list",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.16",
|
|
4
4
|
"description": "List components and helpers for Praxis UI.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
7
7
|
"@angular/core": "^21.0.0",
|
|
8
8
|
"@angular/material": "^21.0.0",
|
|
9
|
-
"@praxisui/dynamic-fields": "^9.0.
|
|
9
|
+
"@praxisui/dynamic-fields": "^9.0.16",
|
|
10
10
|
"rxjs": ">=7 <9",
|
|
11
11
|
"@angular/forms": "^21.0.0",
|
|
12
12
|
"@angular/router": "^21.0.0",
|
|
13
|
-
"@praxisui/ai": "^9.0.
|
|
14
|
-
"@praxisui/core": "^9.0.
|
|
15
|
-
"@praxisui/rich-content": "^9.0.
|
|
16
|
-
"@praxisui/settings-panel": "^9.0.
|
|
13
|
+
"@praxisui/ai": "^9.0.16",
|
|
14
|
+
"@praxisui/core": "^9.0.16",
|
|
15
|
+
"@praxisui/rich-content": "^9.0.16",
|
|
16
|
+
"@praxisui/settings-panel": "^9.0.16"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"tslib": "^2.3.0",
|
|
@@ -192,21 +192,19 @@ Este arquivo foi adaptado para o padrao canonico atual sem remover conteudo tecn
|
|
|
192
192
|
| `ASYNC_CONFIG_STORAGE` | bidirectional | `loadConfig/saveConfig` | fail-open | Persistência de configuração por `listId`/instância. |
|
|
193
193
|
| `SettingsPanelService` | bidirectional | `open(...).applied$/saved$` | fail-open | Canal de edição runtime para `PraxisListConfigEditor`. |
|
|
194
194
|
| `GlobalActionService` | outbound action | `executeRef(globalAction, context)` | fail-soft | Opcional; ausência gera warning e segue fluxo local. |
|
|
195
|
-
| `ResourceRecordOpenService` | outbound query | `resolve(reference, record)` | fail-closed | Resolvido sob demanda apenas para `actions[].recordOpen`. |
|
|
196
195
|
| `GLOBAL_DIALOG_SERVICE` | bidirectional | confirmação de ação | fail-open | Opcional; sem serviço, ação segue sem modal central. |
|
|
197
196
|
| `PRAXIS_COLLECTION_EXPORT_PROVIDER` | outbound export | `exportCollection(request)` | fail-fast | Necessário para escopos remotos `filtered/all` e formatos avançados. |
|
|
198
197
|
|
|
199
198
|
### Host/runtime dependencies
|
|
200
199
|
|
|
201
|
-
| Dependency | Required
|
|
202
|
-
| ---------------------- |
|
|
203
|
-
| `ListDataService` | Yes
|
|
204
|
-
| `ListSkinService` | Yes
|
|
205
|
-
| `ASYNC_CONFIG_STORAGE` | Yes
|
|
206
|
-
| `SettingsPanelService` | Yes
|
|
207
|
-
| `GenericCrudService` | Optional
|
|
208
|
-
| `
|
|
209
|
-
| `ComponentKeyService` | Yes | browser/dev/prod/ssr | chave de escopo | Determina namespace de persistência e isolamento. |
|
|
200
|
+
| Dependency | Required | Environment | Purpose | Notes |
|
|
201
|
+
| ---------------------- | -------- | -------------------- | -------------------- | ----------------------------------------------------------------- |
|
|
202
|
+
| `ListDataService` | Yes | browser/dev/prod/ssr | fluxo de dados | Stream de itens, seção, loading e paginação. |
|
|
203
|
+
| `ListSkinService` | Yes | browser/dev/prod | skin runtime | Gera classes/estilos sanitizados por instância. |
|
|
204
|
+
| `ASYNC_CONFIG_STORAGE` | Yes | browser/dev/prod | persistência | Salva e restaura config de lista. |
|
|
205
|
+
| `SettingsPanelService` | Yes | browser/dev/prod | editor runtime | Abre editor de configuração com preview/apply/save. |
|
|
206
|
+
| `GenericCrudService` | Optional | browser/dev/prod | inferência de schema | Usado para inferência de templating quando `resourcePath` existe. |
|
|
207
|
+
| `ComponentKeyService` | Yes | browser/dev/prod/ssr | chave de escopo | Determina namespace de persistência e isolamento. |
|
|
210
208
|
|
|
211
209
|
## Coverage matrix
|
|
212
210
|
|
|
@@ -447,8 +445,6 @@ Regras operacionais:
|
|
|
447
445
|
- Em erro no `/filter` com critérios ativos, falha fechado: mantém o contexto de filtro, zera o resultado, publica `ListRemoteLoadError` em `ListDataService.error$` e oferece nova tentativa. Dados sem filtro nunca substituem silenciosamente a consulta solicitada.
|
|
448
446
|
- Busca (`ui.showSearch`) aplica debounce de `300ms` e exige `ui.searchField`.
|
|
449
447
|
- Busca, ordenação e exportação compartilham a toolbar superior da coleção; paginação permanece no footer. Busca, ordenação e paginação remotas aparecem apenas quando o modo resolvido é `remote`, nunca quando `data` local tem precedência sobre `resourcePath`.
|
|
450
|
-
- Filtros estruturados não são reimplementados pela lista: `praxis-filter` compõe os controles inline existentes de `@praxisui/dynamic-fields` e projeta o DTO governado em `queryContext`.
|
|
451
|
-
- Em viewport estreito, `layout.rowLayout` recompõe os slots semânticos canônicos (`leading`, `primary`, `secondary`, `meta`, `trailing`) em linhas ordenadas sem sobreposição; slots operacionais estendidos são empilhados no owner da lista, sem CSS corretivo no host.
|
|
452
448
|
- Atualizações síncronas de query, ordenação e página materializadas pelo mesmo `queryContext` são coalescidas antes do acesso HTTP; o backend recebe somente o estado final consistente.
|
|
453
449
|
- `ListDataService.error$` é um `Observable<ListRemoteLoadError | null>` somente leitura; consumidores podem reagir e solicitar `refresh()`, mas não publicar estados de erro no serviço.
|
|
454
450
|
- Quando nao ha `dataSource.data` nem `dataSource.resourcePath`, o runtime renderiza um empty state operacional orientando a conexao da lista a um recurso.
|
|
@@ -461,18 +457,6 @@ Matriz de decisao (runtime atual):
|
|
|
461
457
|
| `null/undefined` | preenchido | `remote` | lista/cards/tiles + toolbar e paginação | `filter(query, pageable)`; fallback `getAll()` somente sem critérios ativos |
|
|
462
458
|
| `null/undefined` | vazio/ausente | `empty` | empty state | sem pipeline de dados |
|
|
463
459
|
|
|
464
|
-
Anatomia recomendada da coleção corporativa:
|
|
465
|
-
|
|
466
|
-
| Região | Conteúdo canônico | Regra de integração |
|
|
467
|
-
| ------ | ----------------- | ------------------- |
|
|
468
|
-
| Filtros estruturados | `praxis-filter` + fields inline de `@praxisui/dynamic-fields` | Antes da toolbar, no mesmo contexto visual; o DTO entra por `queryContext`. |
|
|
469
|
-
| Toolbar superior | busca rápida, `ui.sortOptions`, exportação e comandos de coleção | Busca lidera; ordenação e comandos ficam agrupados no final. |
|
|
470
|
-
| Item | ações cujo alvo é somente aquele registro | Permanecem no slot de ações do item. |
|
|
471
|
-
| Ações de seleção | ações em lote derivadas de `selectionChange` | Barra composta próxima ao cabeçalho da coleção; nunca dentro do paginator. |
|
|
472
|
-
| Footer | tamanho de página, range e navegação | Sem filtros, ordenação ou ações de negócio. |
|
|
473
|
-
|
|
474
|
-
`ui.showSort` é opcional. Use quando o usuário realmente precisa comparar ou priorizar itens em outra ordem; omita quando a ordem é fixa ou existe somente uma ordenação significativa. Os labels de `ui.sortOptions` devem ser legíveis no domínio e não expor diretamente `field,direction`.
|
|
475
|
-
|
|
476
460
|
Regra critica de autoria:
|
|
477
461
|
|
|
478
462
|
- Se o host enviar `data` e `resourcePath` ao mesmo tempo, o runtime usa `data` (modo local).
|