@praxisui/table 9.0.5-rc.2 → 9.0.5-rc.21
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 +45 -0
- package/ai/component-registry.json +42 -27
- package/docs/dynamic-filter-architecture-overview.md +22 -1
- package/docs/dynamic-filter-host-integration-guide.md +39 -1
- package/fesm2022/{praxisui-table-praxisui-table-B7FI0Sed.mjs → praxisui-table-praxisui-table-KxTp8ZJd.mjs} +2239 -1224
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-BGIZfDBk.mjs → praxisui-table-table-agentic-authoring-turn-flow-DEyI2Nx5.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-BiVxxCcf.mjs → praxisui-table-table-ai.adapter-xSCc4Jg6.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +8 -3
- package/types/praxisui-table.d.ts +17 -0
|
@@ -29,7 +29,7 @@ reading_time: 16
|
|
|
29
29
|
estimated_setup_time: 35
|
|
30
30
|
version: "1.0"
|
|
31
31
|
related_docs:
|
|
32
|
-
- "table-
|
|
32
|
+
- "praxis-table-json-api"
|
|
33
33
|
- "dynamic-filter-payload-contract"
|
|
34
34
|
- "dynamic-filter-range-filters-guide"
|
|
35
35
|
- "dynamic-fields-inline-components-guide"
|
|
@@ -91,6 +91,21 @@ No Praxis, o filtro dinâmico é uma pipeline de seis etapas:
|
|
|
91
91
|
- persistência local do estado do DTO e das preferências de exibição com chaves `filter-dto:<key>` e `filter-config:<key>`;
|
|
92
92
|
- heurísticas que convertem `controlType` genérico para inline canônico quando a feature pede experiência compacta.
|
|
93
93
|
|
|
94
|
+
Na toolbar da tabela, essa responsabilidade é materializada em quatro regiões
|
|
95
|
+
semânticas governadas pela largura do próprio container:
|
|
96
|
+
|
|
97
|
+
- `identity`: identidade e contexto da coleção;
|
|
98
|
+
- `scope`: quick filters mutuamente exclusivos e removíveis;
|
|
99
|
+
- `query`: campos de filtro e atalhos projetados;
|
|
100
|
+
- `commands`: ações de negócio, utilidades e authoring.
|
|
101
|
+
|
|
102
|
+
Dentro de `PraxisFilter`, `query` se divide em `criteria` e
|
|
103
|
+
`query-auxiliary`. A primeira região contém os campos selecionados e sempre
|
|
104
|
+
visíveis. A segunda mantém tags/atalhos e comandos de gerenciamento como um
|
|
105
|
+
cluster único. O reflow move regiões completas e preserva ordem visual, ordem de
|
|
106
|
+
teclado e paridade de comandos; hosts não devem reconstruir essa composição com
|
|
107
|
+
breakpoints locais.
|
|
108
|
+
|
|
94
109
|
Esse acoplamento existe em `projects/praxis-table/src/lib/components/praxis-filter/praxis-filter.component.ts` e `projects/praxis-table/src/lib/services/filter-config.service.ts`.
|
|
95
110
|
|
|
96
111
|
### 2. `praxis-dynamic-fields`: superfície dos controles
|
|
@@ -153,6 +168,12 @@ O runtime persiste:
|
|
|
153
168
|
|
|
154
169
|
Isso permite restaurar seleção de campos, preferências visuais e estado operacional do filtro.
|
|
155
170
|
|
|
171
|
+
Tags fornecidas por `tags` são presets governados e não pertencem ao conjunto
|
|
172
|
+
editável de atalhos salvos pelo usuário. O runtime permite aplicá-las e removê-las,
|
|
173
|
+
mas não renomeá-las ou excluí-las. O `patch` de cada tag deve usar os nomes e
|
|
174
|
+
shapes canônicos do `FilterDTO`; um campo desconhecido não ganha semântica apenas
|
|
175
|
+
por estar presente no JSON do host.
|
|
176
|
+
|
|
156
177
|
### Etapa 4. Emissão de payload
|
|
157
178
|
|
|
158
179
|
No modo avançado, `onAdvancedChange(event)` trabalha sobre `event.formData`. Os eventos `change` e `submit` são o contrato que o host normalmente observa para disparar integração com a API.
|
|
@@ -28,7 +28,7 @@ reading_time: 18
|
|
|
28
28
|
estimated_setup_time: 45
|
|
29
29
|
version: "1.0"
|
|
30
30
|
related_docs:
|
|
31
|
-
- "table-
|
|
31
|
+
- "praxis-table-json-api"
|
|
32
32
|
- "dynamic-filter-architecture-overview"
|
|
33
33
|
- "dynamic-filter-payload-contract"
|
|
34
34
|
- "dynamic-filter-editor-settings-guide"
|
|
@@ -125,6 +125,44 @@ e emite o novo payload para evitar filtro invisível. Use `alwaysVisibleFields`
|
|
|
125
125
|
apenas para campos realmente fixos, porque eles não entram nessa remoção rápida
|
|
126
126
|
do usuário.
|
|
127
127
|
|
|
128
|
+
#### Preservar a hierarquia da consulta na toolbar
|
|
129
|
+
|
|
130
|
+
O host declara a semântica, mas não posiciona controles com CSS próprio. O
|
|
131
|
+
`praxis-filter` organiza a consulta em duas regiões internas:
|
|
132
|
+
|
|
133
|
+
- **critérios**: campos sempre visíveis e campos adicionados por
|
|
134
|
+
`selectedFieldIds`;
|
|
135
|
+
- **auxiliar**: atalhos salvos/tags e comandos de gerenciamento, como adicionar
|
|
136
|
+
filtros, limpar critérios e abrir o formulário avançado.
|
|
137
|
+
|
|
138
|
+
Em containers largos, as duas regiões podem compartilhar a mesma faixa. Quando
|
|
139
|
+
o espaço diminui, a região auxiliar desce como um bloco completo; atalhos e
|
|
140
|
+
comandos não devem se espalhar por linhas diferentes nem comprimir campos de
|
|
141
|
+
data, intervalo ou lookup abaixo da largura utilizável. Em containers estreitos,
|
|
142
|
+
os critérios passam para uma coluna e o cluster auxiliar pode quebrar
|
|
143
|
+
internamente, preservando a ordem de leitura e de teclado.
|
|
144
|
+
|
|
145
|
+
Essa adaptação usa a largura do container da tabela, não apenas a viewport. Por
|
|
146
|
+
isso, o mesmo contrato continua válido dentro de páginas, cards, drawers e split
|
|
147
|
+
panes. Não crie breakpoints no host nem projete atalhos dentro da região de
|
|
148
|
+
campos: use os inputs e slots públicos, e deixe o runtime materializar a
|
|
149
|
+
geometria. Valide pelo menos os estados sem valor, preenchido, foco, erro e
|
|
150
|
+
disabled em tema claro/escuro, zoom de 200% e labels localizados longos.
|
|
151
|
+
|
|
152
|
+
Atalhos declarados em `tags` devem usar exatamente as chaves e os shapes do DTO
|
|
153
|
+
de filtro descoberto. Um atalho de faixa salarial, por exemplo, deve escrever o
|
|
154
|
+
mesmo campo de intervalo materializado pelo controle inline; criar um alias
|
|
155
|
+
apenas no host produz critério invisível. Tags predefinidas são somente leitura
|
|
156
|
+
quanto a renomear e excluir, mas continuam acionáveis e removíveis pelo operador.
|
|
157
|
+
O host deve observar `submit` quando atalhos precisam disparar consulta imediata;
|
|
158
|
+
`change` permanece a cadência de edição dos campos.
|
|
159
|
+
|
|
160
|
+
Controles projetados no slot `[toolbar]` recebem orçamento limitado e podem
|
|
161
|
+
quebrar dentro do cluster de consulta. Eles devem aceitar redução de largura e
|
|
162
|
+
não podem impor `min-width` maior que o slot. Se a operação precisar manter
|
|
163
|
+
largura intrínseca rígida, materialize-a como ação governada/overflow em vez de
|
|
164
|
+
forçar geometria local.
|
|
165
|
+
|
|
128
166
|
#### Padronizar `materialDesign` dos campos de filtro
|
|
129
167
|
|
|
130
168
|
O `praxis-filter` normaliza a metadata efetiva de filtros com uma politica
|