@praxisui/table 9.0.5-rc.9 → 9.0.6
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 +26 -9
- package/ai/component-registry.json +251 -149
- 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-nfsMWS1W.mjs → praxisui-table-praxisui-table-oHt2Kzwq.mjs} +2305 -1299
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-DzUWFwYf.mjs → praxisui-table-table-agentic-authoring-turn-flow-Cq5n4Fmi.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-DQ6nARya.mjs → praxisui-table-table-ai.adapter-DwQWfFg2.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +12 -5
- package/types/praxisui-table.d.ts +13 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable, firstValueFrom } from 'rxjs';
|
|
2
2
|
import { withAuthoringScopePolicy } from '@praxisui/ai';
|
|
3
|
-
import { ad as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-
|
|
3
|
+
import { ad as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-oHt2Kzwq.mjs';
|
|
4
4
|
|
|
5
5
|
class TableAgenticAuthoringTurnFlow {
|
|
6
6
|
adapter;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { firstValueFrom } from 'rxjs';
|
|
2
2
|
import { BaseAiAdapter, sanitizePraxisAssistantText, createComponentAuthoringContext } from '@praxisui/ai';
|
|
3
3
|
import { PRAXIS_GLOBAL_ACTION_CATALOG, deepMerge } from '@praxisui/core';
|
|
4
|
-
import { I as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, l as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, Z as coerceTableComponentEditPlans, $ as compileTableComponentEditPlans, L as TASK_PRESETS, a4 as getTableComponentEditPlanCapabilities, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-
|
|
4
|
+
import { I as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, l as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, Z as coerceTableComponentEditPlans, $ as compileTableComponentEditPlans, L as TASK_PRESETS, a4 as getTableComponentEditPlanCapabilities, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-oHt2Kzwq.mjs';
|
|
5
5
|
|
|
6
6
|
const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
|
|
7
7
|
mode: 'expression',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_COMPONENT_METADATA, l as PRAXIS_TABLE_AUTHORING_MANIFEST, m as PRAXIS_TABLE_COMPONENT_METADATA, n as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, o as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, p as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, q as PraxisFilter, r as PraxisFilterWidgetConfigEditor, s as PraxisTable, t as PraxisTableConfigEditor, u as PraxisTableInlineAuthoringEditorComponent, v as PraxisTableToolbar, w as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, x as TABLE_COMPONENT_AI_CAPABILITIES, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_KIND, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, L as TASK_PRESETS, O as TableDefaultsProvider, Q as TableRulesEditorComponent, R as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, U as VisualFormulaBuilderComponent, W as analyticsComparisonMetricField, X as buildTableApplyPlan, Y as coerceTableComponentEditPlan, Z as coerceTableComponentEditPlans, _ as compileTableComponentEditPlan, $ as compileTableComponentEditPlans, a0 as createTableAuthoringDocument, a1 as getActionId, a2 as getEnum, a3 as getTableCapabilities, a4 as getTableComponentEditPlanCapabilities, a5 as isTableRendererSupportedByRichContentP0, a6 as mapTableRendererToRichContentP0, a7 as normalizeTableAuthoringDocument, a8 as parseLegacyOrTableDocument, a9 as providePraxisFilterMetadata, aa as providePraxisTableMetadata, ab as providePraxisTableToolbarAppearance, ac as serializeTableAuthoringDocument, ae as toCanonicalTableConfig, af as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-
|
|
1
|
+
export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_COMPONENT_METADATA, l as PRAXIS_TABLE_AUTHORING_MANIFEST, m as PRAXIS_TABLE_COMPONENT_METADATA, n as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, o as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, p as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, q as PraxisFilter, r as PraxisFilterWidgetConfigEditor, s as PraxisTable, t as PraxisTableConfigEditor, u as PraxisTableInlineAuthoringEditorComponent, v as PraxisTableToolbar, w as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, x as TABLE_COMPONENT_AI_CAPABILITIES, y as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, G as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_KIND, K as TABLE_COMPONENT_EDIT_PLAN_VERSION, L as TASK_PRESETS, O as TableDefaultsProvider, Q as TableRulesEditorComponent, R as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, U as VisualFormulaBuilderComponent, W as analyticsComparisonMetricField, X as buildTableApplyPlan, Y as coerceTableComponentEditPlan, Z as coerceTableComponentEditPlans, _ as compileTableComponentEditPlan, $ as compileTableComponentEditPlans, a0 as createTableAuthoringDocument, a1 as getActionId, a2 as getEnum, a3 as getTableCapabilities, a4 as getTableComponentEditPlanCapabilities, a5 as isTableRendererSupportedByRichContentP0, a6 as mapTableRendererToRichContentP0, a7 as normalizeTableAuthoringDocument, a8 as parseLegacyOrTableDocument, a9 as providePraxisFilterMetadata, aa as providePraxisTableMetadata, ab as providePraxisTableToolbarAppearance, ac as serializeTableAuthoringDocument, ae as toCanonicalTableConfig, af as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-oHt2Kzwq.mjs';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.6",
|
|
4
4
|
"description": "Advanced data table for Angular (Praxis UI) with editing, filtering, sorting, virtualization, and settings panel integration.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
|
7
7
|
"@angular/core": "^21.0.0",
|
|
8
8
|
"@angular/platform-browser": "^21.0.0",
|
|
9
|
-
"@praxisui/ai": "^9.0.
|
|
10
|
-
"@praxisui/core": "^9.0.
|
|
11
|
-
"@praxisui/dynamic-fields": "^9.0.
|
|
12
|
-
"@praxisui/dynamic-form": "^9.0.
|
|
13
|
-
"@praxisui/metadata-editor": "^9.0.
|
|
14
|
-
"@praxisui/rich-content": "^9.0.
|
|
15
|
-
"@praxisui/settings-panel": "^9.0.
|
|
16
|
-
"@praxisui/table-rule-builder": "^9.0.
|
|
9
|
+
"@praxisui/ai": "^9.0.6",
|
|
10
|
+
"@praxisui/core": "^9.0.6",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.6",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.6",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.6",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.6",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.6",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.6",
|
|
17
17
|
"@angular/cdk": "^21.0.0",
|
|
18
18
|
"@angular/forms": "^21.0.0",
|
|
19
19
|
"@angular/material": "^21.0.0",
|
|
20
20
|
"@angular/router": "^21.0.0",
|
|
21
|
-
"@praxisui/dialog": "^9.0.
|
|
21
|
+
"@praxisui/dialog": "^9.0.6",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -111,9 +111,12 @@ Este documento e a referencia canonica da API JSON de praxis-table.
|
|
|
111
111
|
|
|
112
112
|
## Quick filters and density
|
|
113
113
|
|
|
114
|
-
- `config.toolbar.filters.quickFilters[]` materializa
|
|
114
|
+
- `config.toolbar.filters.quickFilters[]` materializa um pequeno seletor de escopo na toolbar. Cada item declara `id`, `label`, `filter` e `icon` opcional. O runtime mantém no máximo um item ativo; acionar novamente o item atual restaura os critérios anteriores.
|
|
115
115
|
- O filtro rápido é combinado com os critérios já ativos. Ao desativá-lo, a tabela restaura os critérios anteriores sem perder o contexto do operador.
|
|
116
116
|
- Aplicar ou limpar o formulário de filtros avançados encerra o estado visual do filtro rápido para evitar dois controles aparentarem governar critérios divergentes.
|
|
117
|
+
- A composição adaptativa é responsabilidade do runtime: identidade, escopo, consulta e comandos se reorganizam pela largura do container da tabela. Dentro da consulta, campos editáveis formam a região de critérios; tags/atalhos salvos e comandos de gerenciamento formam um único cluster auxiliar. Em largura intermediária, os critérios e esse cluster completo compartilham o mesmo fluxo de quebra para aproveitar a faixa final sem criar uma linha órfã; em largura estreita, o cluster migra inteiro para a faixa seguinte. O host não precisa declarar coordenadas, breakpoints ou ordem visual adicional.
|
|
118
|
+
- `advancedFilters.settings.alwaysVisibleFields` deve conter apenas critérios frequentes. Atalhos persistidos e comandos de gerenciamento não devem ser simulados como campos sempre visíveis nem reposicionados por seletores CSS internos do host.
|
|
119
|
+
- Cada item de `tags[]` deve declarar `id`, `label` e `patch`; as chaves e os valores de `patch` devem corresponder ao `FilterDTO` canônico. Tags fornecidas pelo host são acionáveis, mas não podem ser renomeadas ou excluídas como atalhos persistidos pelo usuário. A aplicação imediata é emitida por `submit`.
|
|
117
120
|
- `config.toolbar.densityToggle.enabled` materializa o seletor de densidade. `values` pode restringir as opções entre `compact`, `comfortable` e `spacious`.
|
|
118
121
|
- A alteração de densidade atualiza `config.appearance.density` e emite `configChange`, permitindo ao host decidir se a preferência será apenas transitória ou persistida.
|
|
119
122
|
|
|
@@ -308,6 +311,7 @@ type TableAuthoringDocument = {
|
|
|
308
311
|
- `surfaces`, `actions` e `canonicalOperations` são lidos do `ResourceCapabilitySnapshot` retornado pelo backend.
|
|
309
312
|
- O primeiro corte monta um detail schema leve de resumo contextual; ele não embute execução inline de `surface.open` nem de workflow.
|
|
310
313
|
- O runtime faz prefetch por linha somente quando existe ao menos uma ação contextual configurada para projeção inline (`display="icons"|"buttons"`). Ações restritas ao menu preservam discovery sob demanda ao abrir o overflow; expansion `hypermedia` sem row actions continua resolvendo o contexto ao expandir a linha.
|
|
314
|
+
- `actions.collection.discovery.enabled=false` desliga somente a materialização automática de ações da coleção, incluindo create e workflows descobertos por HATEOAS/capabilities. Dados, schema, paginação, capabilities de leitura, ações explícitas da toolbar e ações por linha permanecem disponíveis. O default permanece habilitado quando o campo é omitido.
|
|
311
315
|
- `actions.row.discovery.enabled=false` desliga somente o enriquecimento automático de ações por linha. Use este modo para telas corporativas curadas, nas quais o host quer expor apenas `actions.row.actions[]` e evitar overflow/actions descobertas por HATEOAS/capabilities. O default permanece habilitado quando o campo é omitido.
|
|
312
316
|
|
|
313
317
|
## Overview
|
|
@@ -342,6 +346,7 @@ Este arquivo foi adaptado para o padrao canonico atual sem remover conteudo tecn
|
|
|
342
346
|
| `appearance.responsive` | object | No | component-defaults | numeric-breakpoint | Breakpoint móvel inválido é normalizado para `768`. |
|
|
343
347
|
| `toolbar.actions[]` | array | No | `[]` | action-contract | Ações de toolbar com roteamento para `toolbarAction`/`bulkAction`. |
|
|
344
348
|
| `toolbar.appearance` | object | No | Material 3 fallback | token-contract | Governa preset, variante, densidade, forma, divisores e tokens públicos da toolbar sem alterar a semântica das ações. |
|
|
349
|
+
| `actions.collection.discovery.enabled` | boolean | No | `true` | collection-action-discovery | Controla se ações de coleção podem ser materializadas por HATEOAS/capabilities. Configure `false` em lookups/seletores para manter consulta remota e somente ações explicitamente declaradas. |
|
|
345
350
|
| `actions.row.actions[].recordSurface` | object | No | none | `ResourceSurfaceCatalogItem` | Preserva a identidade canônica da superfície relacionada aberta por uma ação de linha, mantendo `actions.row.actions[].id` como identidade do botão. |
|
|
346
351
|
| `actions.row.discovery.enabled` | boolean | No | `true` | row-action-discovery | Controla se row actions podem ser enriquecidas por HATEOAS/capabilities. Configure `false` para manter somente ações declaradas em `actions.row.actions[]`. |
|
|
347
352
|
| `columns[].renderer` | object | No | field-type-driven | renderer-contract | Renderers condicionais, payload expr e ações interativas. |
|
|
@@ -375,6 +380,8 @@ Renderer defaults:
|
|
|
375
380
|
- Use `toolbar.appearance` para personalizar o chrome da toolbar por contrato governado. O runtime materializa `variant`, `density`, `shape`, `divider` e `tokens` como classes e CSS custom properties públicas; o host pode trocar aparência sem redefinir intenção, capability ou roteamento.
|
|
376
381
|
- Use `toolbar.appearance.preset = "table-integrated"` para compor toolbar e tabela como um unico bloco visual com tokens públicos estáveis, evitando CSS do host sobre classes internas como `praxis-toolbar-stack-top` ou `table-stack-top`.
|
|
377
382
|
- Tokens públicos suportados em `toolbar.appearance.tokens`: `bg`, `fg`, `borderColor`, `borderWidth`, `radius`, `shadow`, `paddingBlock`, `paddingInline`, `minHeight`, `gap`, `actionsGap`, `dividerColor`, `actionSize`, `actionRadius`, `actionBg`, `actionFg`, `actionHoverBg`, `actionActiveBg`, `actionFocusRing`, `aiAccentColor`, `statusFg`, `titleFg`, `subtitleFg`, `iconFg`, `titleFontSize`, `subtitleFontSize`, `titleFontWeight`, `identityGap`, `identityFilterGap`, `identityMinHeight`, `identityMarginBottom`, `identityIconSize` e `identityIconRadius`.
|
|
383
|
+
- Ações da toolbar e do estado vazio compartilham a geometria pública `--praxis-action-control-*`. `actionSize` e `actionRadius` continuam sendo overrides por tabela e têm precedência sobre os defaults compartilhados.
|
|
384
|
+
- Em coleções relacionadas graváveis, CREATE permanece estável na toolbar nos estados vazio e preenchido. O estado vazio gerado é informativo e não repete CREATE; `behavior.emptyState.actions` fica reservado a uma intenção contextual explícita e distinta, preservada exatamente quando declarada pelo host.
|
|
378
385
|
- Para localizar paths específicos de toolbar, complemente a leitura com o `Appendix: JSON path index`.
|
|
379
386
|
|
|
380
387
|
### Messages contract
|
|
@@ -447,13 +454,13 @@ degraded filter.
|
|
|
447
454
|
| `rowDoubleClick` | `{ action, row }` | Duplo clique quando habilitado. | Partial | Preservado da documentação anterior. |
|
|
448
455
|
| `rowExpansionChange` | `RowExpansionChangeEvent` | Evento canônico para expand/collapse de detail row no runtime P0A (caminho não virtualizado), com payload discriminado por política de exposição (`allowRawExposure` + `eventExposureDefault`). | Partial | Preservado da documentação anterior. |
|
|
449
456
|
| `rowAction` | `{ action, row, payload?, actionConfig?, localMode?, preventedHttp? }` | Acao de linha (coluna `_actions`, renderer interativo ou CRUD capability sintetizada). `payload` e emitido quando houver `payloadExpr` em renderer interativo. Quando `actionConfig.globalAction` aponta para `navigation.openRoute`, o runtime resolve templates como `${row.id}` antes de executar a navegação interna. Para actions como `surface.open`, `payload.*` continua sendo o envelope canônico do evento entregue ao destino. Para `view/edit/delete/duplicate-draft` vindos de capabilities, `actionConfig` carrega a operacao canonica e o host composto deve encaminhar ao contexto CRUD apropriado. | Partial | Preservado da documentação anterior. |
|
|
450
|
-
| `toolbarAction` | `{ action, actionConfig? }` | Acao clicada em `toolbar.actions[]` que nao foi roteada para fluxo bulk; `actionConfig` carrega o objeto da acao quando disponivel. A acao `create` de colecao pode ser materializada automaticamente a partir de `_links.create`, rel `capabilities`, surfaces e `CrudOperationResolutionService
|
|
457
|
+
| `toolbarAction` | `{ action, actionConfig? }` | Acao clicada em `toolbar.actions[]` que nao foi roteada para fluxo bulk; `actionConfig` carrega o objeto da acao quando disponivel. A acao `create` de colecao pode ser materializada automaticamente a partir de `_links.create`, rel `capabilities`, surfaces e `CrudOperationResolutionService`. Dentro de CRUD, a tabela delega ao owner antes de abrir. Standalone, uma surface selecionada usa uma unica tentativa de `surface.open`; falha de execução é fail-closed e não emite `toolbarAction` como segundo caminho. O fallback local só permanece quando nenhuma surface executável foi selecionada. | Partial | Preservado da documentação anterior com materializacao CRUD de colecao e ownership explícito. |
|
|
451
458
|
| `exportAction` | `{ format, request?, result?, error?, tableId? }` | Acao de exportacao acionada pelo menu `export.formats[]`; `request` segue `PraxisCollectionExportRequest`. | Active | Usa o contrato canonico de Collection Export em `@praxisui/core`. |
|
|
452
459
|
| `exportAction` | `{ format, request?, result?, error?, tableId? }` | Acao de exportacao acionada pelo menu `export.formats[]`; `request` segue `PraxisCollectionExportRequest`. | Active | Usa o contrato canonico de Collection Export em `@praxisui/core`. |
|
|
453
460
|
| `bulkAction` | `{ action, rows, actionConfig? }` | Acao em lote; `actionConfig` carrega a configuracao da acao quando disponivel. | Partial | Preservado da documentação anterior. |
|
|
454
461
|
| `columnReorder` | `ColumnReorderEvent` | Reordenação de coluna concluída (drag/keyboard). | Partial | Inclui metadados de origem, destino e operação. |
|
|
455
462
|
| `columnReorderAttempt` | `ColumnReorderAttemptEvent` | Tentativa bloqueada por política de drop-zone. | Partial | Evento diagnóstico para observabilidade e auditoria. |
|
|
456
|
-
| `columnResize` | `{ action: 'columnResize', trigger: 'pointer' \| 'keyboard', tableId, field, header, previousWidth, currentWidth, persisted }` | Redimensionamento de coluna concluido pelo separador do header. | Partial | Usa `behavior.resizing.enabled`, respeita `columns[].resizable !== false` e persiste `columns[].width` em px quando `persistWidths !== false`.
|
|
463
|
+
| `columnResize` | `{ action: 'columnResize', trigger: 'pointer' \| 'keyboard' \| 'auto-fit', tableId, field, header, previousWidth, currentWidth, persisted }` | Redimensionamento de coluna concluido pelo separador do header. | Partial | Usa `behavior.resizing.enabled`, respeita `columns[].resizable !== false` e persiste `columns[].width` em px quando `persistWidths !== false`. `autoFit !== false` habilita duplo clique para medir cabeçalho e células renderizadas. A largura interna nunca fica menor que o viewport; crescimento excedente usa scroll horizontal. |
|
|
457
464
|
| `beforeDelete` | `row` | Antes de delete de linha. | Partial | Preservado da documentação anterior. |
|
|
458
465
|
| `afterDelete` | `row` | Depois de delete com sucesso. | Partial | Preservado da documentação anterior. |
|
|
459
466
|
| `deleteError` | `{ row, error }` | Erro no delete de linha. | Partial | Preservado da documentação anterior. |
|
|
@@ -1002,7 +1009,7 @@ row selection through table affordances.
|
|
|
1002
1009
|
| `bulkAction` | `{ action, rows, actionConfig? }` | Acao em lote; `actionConfig` carrega a configuracao da acao quando disponivel. | Partial | Preservado da documentação anterior. |
|
|
1003
1010
|
| `columnReorder` | `{ action, trigger: 'drag' \ | 'keyboard' \ | Partial | Preservado da documentação anterior. |
|
|
1004
1011
|
| `columnReorderAttempt` | `{ action: 'columnReorderAttempt', trigger: 'drag' \ | 'keyboard', operationId, tableId, sourceField, targetField, previousIndex, currentIndex, sourceZone, targetZone, result: 'blocked', reasonCode: 'drop-zone-policy-blocked', configuredColumnDropZones[] }` | Partial | Preservado da documentação anterior. |
|
|
1005
|
-
| `columnResize` | `{ action: 'columnResize', trigger: 'pointer' \| 'keyboard', tableId, field, header, previousWidth, currentWidth, persisted }` | Separador de resize no header. | Partial | Mutacao visual/runtime de largura; nao redefine schema nem dados.
|
|
1012
|
+
| `columnResize` | `{ action: 'columnResize', trigger: 'pointer' \| 'keyboard' \| 'auto-fit', tableId, field, header, previousWidth, currentWidth, persisted }` | Separador de resize no header. | Partial | Mutacao visual/runtime de largura; nao redefine schema nem dados. A tabela ocupa ao menos o viewport, pode crescer com scroll horizontal e, com `autoFit !== false`, ajusta a coluna ao conteúdo renderizado por duplo clique. |
|
|
1006
1013
|
| `beforeDelete` | `row` | Antes de delete de linha. | Partial | Preservado da documentação anterior. |
|
|
1007
1014
|
| `afterDelete` | `row` | Depois de delete com sucesso. | Partial | Preservado da documentação anterior. |
|
|
1008
1015
|
| `deleteError` | `{ row, error }` | Erro no delete de linha. | Partial | Preservado da documentação anterior. |
|
|
@@ -1283,7 +1290,7 @@ Em `scroll-auto`, o viewport e uma regiao focalizavel por teclado para que o scr
|
|
|
1283
1290
|
| `toolbar.appearance.tokens.identityIconSize` | `string` | No | `28px` | Active | Tamanho do container do icone da identidade. |
|
|
1284
1291
|
| `toolbar.appearance.tokens.identityIconRadius` | `string` | No | `8px` | Active | Raio do container do icone da identidade. |
|
|
1285
1292
|
| `toolbar.columnsVisibility` | `object` | No | habilitado se a toolbar estiver ativa | Active | Controle rápido de visibilidade de colunas no toolbar (dropdown). |
|
|
1286
|
-
| `toolbar.filters.quickFilters[]` | `ToolbarFilterConfig[]` | No | `[]` | Active |
|
|
1293
|
+
| `toolbar.filters.quickFilters[]` | `ToolbarFilterConfig[]` | No | `[]` | Active | Seletor de escopo governado: no máximo um filtro rápido é combinado com os critérios ativos; acionar o item atual restaura os critérios anteriores. |
|
|
1287
1294
|
| `toolbar.densityToggle` | `object` | No | desabilitado | Active | Seletor governado de densidade com opções `compact`, `comfortable` e `spacious`. |
|
|
1288
1295
|
| `messages` | `TableMessagesConfig` | No | defaults internos | Partial | Overrides de i18n e mensagens operacionais. |
|
|
1289
1296
|
| `data` | `TableDataConfig` | No | modo local/remoto autodetectado | Partial | Integra origem local ou remota conforme `resourcePath`/inputs. |
|
|
@@ -188,6 +188,8 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
188
188
|
getActionAriaLabel(action: any): string;
|
|
189
189
|
isActionDisabled(action: any): boolean;
|
|
190
190
|
getActionTooltip(action: any): string | null;
|
|
191
|
+
getActionDisabledReason(action: any): string | null;
|
|
192
|
+
getActionAriaDisabled(action: any): 'true' | null;
|
|
191
193
|
onDocumentKeydown(event: KeyboardEvent): void;
|
|
192
194
|
getBulkActionsPosition(): 'toolbar' | 'floating' | 'both';
|
|
193
195
|
shouldRenderToolbarBulkActions(): boolean;
|
|
@@ -947,6 +949,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
947
949
|
private maybeShowOutdatedSnack;
|
|
948
950
|
ngOnDestroy(): void;
|
|
949
951
|
isUserTag(tag: FilterTag): boolean;
|
|
952
|
+
toggleTag(tag: FilterTag): void;
|
|
950
953
|
applyTag(tag: FilterTag): void;
|
|
951
954
|
private bindAdvancedDebounce;
|
|
952
955
|
onSubmit(): void;
|
|
@@ -1481,6 +1484,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1481
1484
|
getNoDataStateAlignment(): 'start' | 'center';
|
|
1482
1485
|
getNoDataStateDensity(): 'compact' | 'comfortable';
|
|
1483
1486
|
getNoDataStateActionSize(): string;
|
|
1487
|
+
getNoDataStateActionRadius(): string;
|
|
1484
1488
|
getNoDataStateIconContainer(): 'none' | 'circle' | 'soft';
|
|
1485
1489
|
getNoDataStatePrimaryAction(): any | null;
|
|
1486
1490
|
getNoDataStateSecondaryActions(): any[];
|
|
@@ -1560,6 +1564,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1560
1564
|
private fallbackLogger?;
|
|
1561
1565
|
private fallbackLoggerEnvironment;
|
|
1562
1566
|
private lastColumnDropHandledAt;
|
|
1567
|
+
private surfaceOpenAttemptSequence;
|
|
1563
1568
|
private activeColumnDragField;
|
|
1564
1569
|
private readonly _effectiveCellRenderCache;
|
|
1565
1570
|
private readonly cellAnimationPreviousValuesByRowId;
|
|
@@ -1621,6 +1626,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1621
1626
|
private resolveCollectionCapabilitiesHref;
|
|
1622
1627
|
private materializeCollectionCreateToolbarAction;
|
|
1623
1628
|
private materializeCollectionWorkflowToolbarActions;
|
|
1629
|
+
private isCollectionActionDiscoveryEnabled;
|
|
1624
1630
|
private ensureToolbarConfigForRuntime;
|
|
1625
1631
|
private buildCollectionCreateToolbarAction;
|
|
1626
1632
|
private resolveCollectionCreateRuntime;
|
|
@@ -2065,10 +2071,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2065
2071
|
isColumnResizeActive(column?: ColumnDefinition | null): boolean;
|
|
2066
2072
|
getColumnResizeHandleAriaLabel(column: ColumnDefinition): string;
|
|
2067
2073
|
getColumnResizeHandleTooltip(column: ColumnDefinition): string;
|
|
2074
|
+
isColumnAutoFitEnabled(): boolean;
|
|
2068
2075
|
getColumnResizeMinWidthAriaValue(column: ColumnDefinition): number;
|
|
2069
2076
|
getColumnResizeMaxWidthAriaValue(column: ColumnDefinition): number | null;
|
|
2070
2077
|
getColumnResizeCurrentWidthAriaValue(column: ColumnDefinition): number | null;
|
|
2071
2078
|
onColumnResizeHandleClick(event: MouseEvent): void;
|
|
2079
|
+
onColumnResizeHandleDoubleClick(event: MouseEvent, column: ColumnDefinition): void;
|
|
2072
2080
|
onColumnResizeHandleKeydown(event: KeyboardEvent, column: ColumnDefinition): void;
|
|
2073
2081
|
onColumnResizePointerDown(event: PointerEvent, column: ColumnDefinition): void;
|
|
2074
2082
|
private onColumnResizePointerMove;
|
|
@@ -2084,9 +2092,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2084
2092
|
private updateConfigColumnWidth;
|
|
2085
2093
|
private updateConfigColumnWidths;
|
|
2086
2094
|
private updateColumnResizeTableWidthFromDelta;
|
|
2095
|
+
private clampColumnResizeTableWidthPx;
|
|
2087
2096
|
private captureColumnResizeLockedWidths;
|
|
2088
2097
|
private resolveColumnResizeTableWidthPx;
|
|
2089
2098
|
private resolveColumnWidthPx;
|
|
2099
|
+
private resolveColumnAutoFitWidthPx;
|
|
2100
|
+
private measureRenderedColumnElementWidthPx;
|
|
2090
2101
|
private parseColumnResizePixelWidth;
|
|
2091
2102
|
private normalizeColumnResizeWidthStyle;
|
|
2092
2103
|
private clampColumnWidthPx;
|
|
@@ -2884,6 +2895,7 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
2884
2895
|
readonly ratingRendererHint: string;
|
|
2885
2896
|
readonly composeRatingRendererHint: string;
|
|
2886
2897
|
config: TableConfig;
|
|
2898
|
+
readonly: boolean;
|
|
2887
2899
|
fieldMetadata: Array<{
|
|
2888
2900
|
name?: string;
|
|
2889
2901
|
label?: string;
|
|
@@ -3188,7 +3200,7 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
|
|
|
3188
3200
|
}): void;
|
|
3189
3201
|
private updateFieldSchemasForStyleRules;
|
|
3190
3202
|
static ɵfac: i0.ɵɵFactoryDeclaration<ColumnsConfigEditorComponent, never>;
|
|
3191
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnsConfigEditorComponent, "columns-config-editor", never, { "config": { "alias": "config"; "required": false; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; }, { "configChange": "configChange"; "columnChange": "columnChange"; }, never, never, true, never>;
|
|
3203
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ColumnsConfigEditorComponent, "columns-config-editor", never, { "config": { "alias": "config"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; }, { "configChange": "configChange"; "columnChange": "columnChange"; }, never, never, true, never>;
|
|
3192
3204
|
}
|
|
3193
3205
|
|
|
3194
3206
|
interface BehaviorConfigChange {
|