@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 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: a formatação só é aplicada quando há `format` não vazio e `type !== 'custom'`.
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).