@praxisui/table 3.0.0-beta.5 → 3.0.0-beta.7
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 +47 -2
- package/fesm2022/praxisui-table.mjs +382 -271
- package/fesm2022/praxisui-table.mjs.map +1 -1
- package/index.d.ts +36 -5
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -382,6 +382,27 @@ Neste exemplo:
|
|
|
382
382
|
- A tabela fará requisições como `POST /api/human-resources/departamentos/filter` para obter os dados e `GET /schemas/filtered?path=/api/human-resources/departamentos/all&operation=get&schemaType=response` para obter o schema estrutural usado no bootstrap das colunas.
|
|
383
383
|
- `enableCustomization` controla explicitamente o gate de edição visual. O default canônico agora é `false`; declare `[enableCustomization]="true"` quando o host quiser expor customização e surfaces editoriais.
|
|
384
384
|
|
|
385
|
+
### Consulta Declarativa com `queryContext`
|
|
386
|
+
|
|
387
|
+
Para orquestração entre widgets em `praxis-dynamic-page`, o contrato semântico primário da tabela passa a ser `queryContext`.
|
|
388
|
+
|
|
389
|
+
```html
|
|
390
|
+
<praxis-table
|
|
391
|
+
resourcePath="human-resources/departamentos"
|
|
392
|
+
[queryContext]="{
|
|
393
|
+
filters: { status: 'ACTIVE' },
|
|
394
|
+
sort: ['nome,asc'],
|
|
395
|
+
page: { index: 0, size: 25 }
|
|
396
|
+
}"
|
|
397
|
+
></praxis-table>
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
Regras atuais:
|
|
401
|
+
|
|
402
|
+
- `queryContext.filters` já participa do pipeline efetivo da tabela
|
|
403
|
+
- `filterCriteria` continua aceito como bridge legada de compatibilidade
|
|
404
|
+
- em novo authoring, examples e bindings, prefira `queryContext`
|
|
405
|
+
|
|
385
406
|
### Empty State + Quick Connect (sem `resourcePath`)
|
|
386
407
|
|
|
387
408
|
Se a tabela for renderizada sem `resourcePath`, um cartão de "Empty State" é exibido convidando a conectar o componente a um recurso. Basta clicar em "Conectar a recurso" para abrir um painel rápido com um único campo:
|
|
@@ -1491,9 +1512,16 @@ Notas rápidas (Flow ETag no Filter):
|
|
|
1491
1512
|
|
|
1492
1513
|
## Formatação de Colunas (format)
|
|
1493
1514
|
|
|
1494
|
-
Cada coluna pode declarar `type` e uma string de formatação `format` consumida pelo `DataFormattingService`. Os tipos suportados são: `string`, `number`, `currency`, `percentage`, `date`, `boolean`, `custom`.
|
|
1515
|
+
Cada coluna pode declarar `type` e uma string de formatação `format` consumida pelo `DataFormattingService`. Os tipos suportados são: `string`, `number`, `currency`, `percentage`, `date`, `datetime`, `time`, `boolean`, `custom`.
|
|
1495
1516
|
|
|
1496
|
-
Regra geral:
|
|
1517
|
+
Regra geral:
|
|
1518
|
+
- `format` explícito continua com precedência máxima.
|
|
1519
|
+
- Para `number`, `currency`, `percentage`, `date`, `datetime` e `time`, a tabela também consegue derivar formatação básica a partir de `type + config.localization`, mesmo quando `format` estiver ausente.
|
|
1520
|
+
- `string`, `boolean` e `custom` continuam conservadores; nesses casos, use `format` explícito quando precisar de transformação.
|
|
1521
|
+
|
|
1522
|
+
Nota de plataforma:
|
|
1523
|
+
- o contrato público da tabela continua sendo `column.type + config.localization + format`.
|
|
1524
|
+
- a tabela converge internamente para a semântica canônica horizontal do core, mas não expõe `valuePresentation` como bloco público de configuração de coluna.
|
|
1497
1525
|
|
|
1498
1526
|
Tipos e padrões de `format`:
|
|
1499
1527
|
- number (DecimalPipe)
|
|
@@ -1525,6 +1553,23 @@ Exemplos de ColumnDefinition:
|
|
|
1525
1553
|
{ field: 'ativo', type: 'boolean', format: 'yes-no', header: 'Ativo' }
|
|
1526
1554
|
```
|
|
1527
1555
|
|
|
1556
|
+
Exemplos com defaults implícitos por `type + localization`:
|
|
1557
|
+
```ts
|
|
1558
|
+
{
|
|
1559
|
+
localization: {
|
|
1560
|
+
locale: 'pt-BR',
|
|
1561
|
+
currency: { code: 'BRL', symbol: 'R$', position: 'before', spacing: true, precision: 2 },
|
|
1562
|
+
dateTime: { dateFormat: 'dd/MM/yyyy', timeFormat: 'HH:mm', dateTimeFormat: 'dd/MM/yyyy HH:mm', firstDayOfWeek: 1 },
|
|
1563
|
+
number: { decimalSeparator: ',', thousandsSeparator: '.', defaultPrecision: 2, negativeSign: '-', negativeSignPosition: 'before' },
|
|
1564
|
+
},
|
|
1565
|
+
columns: [
|
|
1566
|
+
{ field: 'salario', type: 'currency', header: 'Salário' },
|
|
1567
|
+
{ field: 'criadoEm', type: 'date', header: 'Criado em' },
|
|
1568
|
+
{ field: 'taxa', type: 'percentage', header: 'Taxa' },
|
|
1569
|
+
],
|
|
1570
|
+
}
|
|
1571
|
+
```
|
|
1572
|
+
|
|
1528
1573
|
Observações:
|
|
1529
1574
|
- `|nosep` remove separadores de milhar da saída formatada.
|
|
1530
1575
|
- Para datas inválidas ou valores não numéricos, o serviço retorna o valor original (com aviso no console).
|