@praxisui/table 9.0.4-rc.9 → 9.0.5-rc.1
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 +50 -11
- package/ai/component-registry.json +576 -310
- package/fesm2022/{praxisui-table-filter-form-dialog-host.component-CMUCxwyL.mjs → praxisui-table-filter-form-dialog-host.component-OZp84Fmo.mjs} +3 -3
- package/fesm2022/{praxisui-table-praxisui-table-yvAGe6_R.mjs → praxisui-table-praxisui-table-JEy1jghM.mjs} +1211 -185
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-CeJX5SUj.mjs → praxisui-table-table-agentic-authoring-turn-flow-BAgDlFvc.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-Nk2Ha6Qc.mjs → praxisui-table-table-ai.adapter-CP-S9ZZ1.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/src/lib/praxis-table.json-api.md +58 -1
- package/types/praxisui-table.d.ts +130 -14
|
@@ -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-JEy1jghM.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-JEy1jghM.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-JEy1jghM.mjs';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.5-rc.1",
|
|
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.5-rc.1",
|
|
10
|
+
"@praxisui/core": "^9.0.5-rc.1",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.5-rc.1",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.5-rc.1",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.5-rc.1",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.5-rc.1",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.5-rc.1",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.5-rc.1",
|
|
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.5-rc.1",
|
|
22
22
|
"rxjs": "~7.8.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
@@ -109,6 +109,14 @@ Este documento e a referencia canonica da API JSON de praxis-table.
|
|
|
109
109
|
> [!WARNING]
|
|
110
110
|
> **Segurança Corporativa em Cenários Corporativos**: A visibilidade de colunas via dropdown da toolbar é um recurso estritamente visual (layout de apresentação do lado do cliente). A ocultação de colunas **não** protege o dado sensível da transmissão de rede nem de inspeção técnica. Se determinados campos (ex: salários, senhas ou tokens) forem confidenciais para o nível de permissão do usuário atual, a restrição de dados deve ser realizada obrigatoriamente no lado do servidor (através da filtragem de propriedades nas APIs de CRUD e consulta), e nunca por meio de ocultação puramente visual na tabela.
|
|
111
111
|
|
|
112
|
+
## Quick filters and density
|
|
113
|
+
|
|
114
|
+
- `config.toolbar.filters.quickFilters[]` materializa filtros rápidos alternáveis na toolbar. Cada item declara `id`, `label`, `filter` e `icon` opcional.
|
|
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
|
+
- 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
|
+
- `config.toolbar.densityToggle.enabled` materializa o seletor de densidade. `values` pode restringir as opções entre `compact`, `comfortable` e `spacious`.
|
|
118
|
+
- 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
|
+
|
|
112
120
|
## Rich content convergence
|
|
113
121
|
|
|
114
122
|
- `mapTableRendererToRichContentP0(...)` e a ponte publica e restrita entre a taxonomia atual de cell renderers do `praxis-table` e o vocabulario compartilhado `1.0` de rich content em `@praxisui/core`.
|
|
@@ -906,10 +914,50 @@ Antes de plugar a tabela em uma aplicação, valide estes pontos:
|
|
|
906
914
|
### Top-level contract
|
|
907
915
|
|
|
908
916
|
O contrato principal e `TableConfig` (alias de `TableConfigV2`) com extensoes de runtime aceitas no JSON:
|
|
909
|
-
- Base tipada: `meta`, `columns`, `behavior`, `appearance`, `toolbar`, `actions`, `export`, `messages`, `localization`.
|
|
917
|
+
- Base tipada: `meta`, `columns`, `columnProjection`, `behavior`, `appearance`, `toolbar`, `actions`, `export`, `messages`, `localization`.
|
|
910
918
|
- Extensoes fora do tipo estrito: `dialogs.confirm.delete`, `rowConditionalRenderers[]`, aliases legados de `behavior.virtualScroll.*` e chaves legadas de header em `actions.row.*`.
|
|
911
919
|
- Artefatos auxiliares fora do `TableConfig`: `crud-overrides:<componentKeyId>` e o envelope autorado `TableAuthoringDocument`, que carrega `bindings.resourcePath` e `bindings.horizontalScroll`. A chave operacional da linha pertence ao `TableConfig` em `config.meta.idField`.
|
|
912
920
|
|
|
921
|
+
#### Projeção governada de colunas
|
|
922
|
+
|
|
923
|
+
Quando `columnProjection.source = "schema"`, a lista estrutural de colunas é
|
|
924
|
+
materializada a partir de `/schemas/filtered`; a página declara apenas diferenças
|
|
925
|
+
em `columnProjection.overrides`, indexadas pelo nome canônico do campo:
|
|
926
|
+
|
|
927
|
+
```json
|
|
928
|
+
{
|
|
929
|
+
"columns": [],
|
|
930
|
+
"columnProjection": {
|
|
931
|
+
"source": "schema",
|
|
932
|
+
"include": ["competencia", "salarioBruto", "salarioLiquido"],
|
|
933
|
+
"overrides": {
|
|
934
|
+
"salarioLiquido": {
|
|
935
|
+
"sticky": "end",
|
|
936
|
+
"width": "160px"
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
```
|
|
942
|
+
|
|
943
|
+
O runtime reaplica os overrides após bootstrap e atualização do schema. Uma chave
|
|
944
|
+
desconhecida não cria coluna, e `field` não pode ser alterado pelo override. Este
|
|
945
|
+
contrato não cria “defaults da surface” paralelos: tipo, visibilidade, ordem e
|
|
946
|
+
apresentação continuam pertencendo ao schema canônico; a página conserva apenas
|
|
947
|
+
as decisões editoriais específicas da experiência.
|
|
948
|
+
|
|
949
|
+
Durante a renderização, `columns` contém a materialização completa somente em
|
|
950
|
+
memória. Ao salvar, aplicar ou emitir `configChange`, o runtime compacta essa
|
|
951
|
+
materialização novamente: a ordem e os campos canônicos formam `include`, as
|
|
952
|
+
diferenças formam `overrides` e colunas computadas/client-owned sem equivalente
|
|
953
|
+
no schema formam `additions`. Uma `addition` cujo `field` colida com o schema é
|
|
954
|
+
ignorada; ela não pode sombrear a identidade canônica.
|
|
955
|
+
|
|
956
|
+
`include` é uma allowlist ordenada. Em recursos financeiros, pessoais ou
|
|
957
|
+
regulados, ela deve ser preferida para impedir que um novo campo do schema passe
|
|
958
|
+
a integrar a experiência sem decisão editorial explícita. A ausência de
|
|
959
|
+
`include` significa “todos os campos que o backend marcou como visíveis”.
|
|
960
|
+
|
|
913
961
|
### Coverage matrix
|
|
914
962
|
|
|
915
963
|
Resumo de cobertura por bloco:
|
|
@@ -1028,6 +1076,13 @@ A superficie usa `horizontalScroll` com classes:
|
|
|
1028
1076
|
- `scroll-wrap`
|
|
1029
1077
|
- `scroll-none`
|
|
1030
1078
|
|
|
1079
|
+
Em `scroll-auto`, o viewport e uma regiao focalizavel por teclado para que o scroll horizontal continue acessivel sem mouse, inclusive no Safari. O nome acessivel usa `accessibility.ariaLabels.scrollViewport`, depois `toolbar.title` e, por fim, o fallback localizado do runtime. `scroll-wrap` e `scroll-none` nao introduzem uma parada de tabulacao adicional.
|
|
1080
|
+
|
|
1081
|
+
#### Mobile card mode
|
|
1082
|
+
`appearance.responsive.mobile.cardMode: true` materializa cada linha **não virtualizada** como um card rotulado quando o viewport entra em `appearance.responsive.breakpoints.mobile`. A tabela continua sendo a fonte semântica e todos os campos permanecem no DOM; cada valor recebe o respectivo cabeçalho como rótulo visual.
|
|
1083
|
+
|
|
1084
|
+
`appearance.responsive.mobile.priorityColumns` é uma lista ordenada de `field`s que aparecem primeiro no card. Campos não prioritários continuam disponíveis abaixo deles; o runtime não oculta dados silenciosamente. Tabelas virtualizadas mantêm o modo de rolagem horizontal, pois um card pode ter altura variável.
|
|
1085
|
+
|
|
1031
1086
|
#### Row/cell conditional styling
|
|
1032
1087
|
- `rowConditionalStyles` aplica classes/estilo por linha.
|
|
1033
1088
|
- `columns[].conditionalStyles` aplica por celula.
|
|
@@ -1228,6 +1283,8 @@ A superficie usa `horizontalScroll` com classes:
|
|
|
1228
1283
|
| `toolbar.appearance.tokens.identityIconSize` | `string` | No | `28px` | Active | Tamanho do container do icone da identidade. |
|
|
1229
1284
|
| `toolbar.appearance.tokens.identityIconRadius` | `string` | No | `8px` | Active | Raio do container do icone da identidade. |
|
|
1230
1285
|
| `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 | Filtros rápidos governados, combinados com os critérios ativos e alternáveis pela toolbar. |
|
|
1287
|
+
| `toolbar.densityToggle` | `object` | No | desabilitado | Active | Seletor governado de densidade com opções `compact`, `comfortable` e `spacious`. |
|
|
1231
1288
|
| `messages` | `TableMessagesConfig` | No | defaults internos | Partial | Overrides de i18n e mensagens operacionais. |
|
|
1232
1289
|
| `data` | `TableDataConfig` | No | modo local/remoto autodetectado | Partial | Integra origem local ou remota conforme `resourcePath`/inputs. |
|
|
1233
1290
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _praxisui_core from '@praxisui/core';
|
|
2
|
-
import { TableToolbarAppearanceConfig, TableConfig, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant,
|
|
2
|
+
import { TableToolbarAppearanceConfig, TableConfig, TableToolbarAppearanceDensity, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, ToolbarAction as ToolbarAction$1, GlobalConfigService, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, EnterpriseRuntimeContextService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, ResourceCapabilityOperation, JsonLogicExpression, PraxisPresentationVisualizationKind, PraxisTableCellVisualizationConstraint, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { InjectionToken, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterContentInit, Injector, Type } from '@angular/core';
|
|
5
5
|
import { ActivatedRoute } from '@angular/router';
|
|
@@ -8,6 +8,7 @@ import { MatTable, MatTableDataSource } from '@angular/material/table';
|
|
|
8
8
|
import * as _angular_material_paginator from '@angular/material/paginator';
|
|
9
9
|
import { MatPaginatorSelectConfig, MatPaginator, PageEvent } from '@angular/material/paginator';
|
|
10
10
|
import { MatSort, Sort } from '@angular/material/sort';
|
|
11
|
+
import { MatMenuTrigger } from '@angular/material/menu';
|
|
11
12
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
12
13
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
13
14
|
import { CdkDragDrop, CdkDragEnd, CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';
|
|
@@ -15,7 +16,7 @@ import { BehaviorSubject, Subscription, Observable } from 'rxjs';
|
|
|
15
16
|
import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
|
|
16
17
|
import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
|
|
17
18
|
import { MatDialog } from '@angular/material/dialog';
|
|
18
|
-
import { BaseDynamicFieldComponent } from '@praxisui/dynamic-fields';
|
|
19
|
+
import { PdxCollectionSearchComponent, BaseDynamicFieldComponent } from '@praxisui/dynamic-fields';
|
|
19
20
|
import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
|
|
20
21
|
import { PraxisDialog } from '@praxisui/dialog';
|
|
21
22
|
import { PraxisAssistantVoiceInputMode, PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantRecommendedIntent, PraxisAssistantShellMessage } from '@praxisui/ai';
|
|
@@ -46,19 +47,26 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
46
47
|
private i18n?;
|
|
47
48
|
private defaultAppearance?;
|
|
48
49
|
private tokenPresets?;
|
|
50
|
+
activeOverflowMenuTrigger?: MatMenuTrigger;
|
|
51
|
+
private activeOverflowMenuTriggerElement?;
|
|
49
52
|
config?: TableConfig;
|
|
50
53
|
appearance?: TableToolbarAppearanceConfig | null;
|
|
51
54
|
backgroundColor: string | null;
|
|
52
55
|
placement: 'header' | 'footer';
|
|
56
|
+
/** Stable runtime scope used only to recover focus after a host re-renders. */
|
|
57
|
+
focusScope: string;
|
|
53
58
|
showMain: boolean;
|
|
54
59
|
showActionsGroup: boolean;
|
|
55
60
|
showEndActions: boolean;
|
|
56
61
|
showMobileActions: boolean;
|
|
57
62
|
exportBusy: boolean;
|
|
63
|
+
exportStatusMessage: string;
|
|
58
64
|
evaluationContext: Record<string, any> | null;
|
|
65
|
+
activeQuickFilterId: string | null;
|
|
66
|
+
activeDensity: TableToolbarAppearanceDensity | null;
|
|
59
67
|
/** @internal Used by PraxisTable so toolbar menu decisions materialize through the table runtime. */
|
|
60
68
|
columnVisibilityController?: (field: string, visible: boolean) => void;
|
|
61
|
-
toolbarAction: EventEmitter<Pick<ToolbarActionEvent<Record<string, unknown>>, "action" | "actionConfig">>;
|
|
69
|
+
toolbarAction: EventEmitter<Pick<ToolbarActionEvent<Record<string, unknown>>, "action" | "actionConfig" | "focusOrigin">>;
|
|
62
70
|
exportAction: EventEmitter<{
|
|
63
71
|
format: string;
|
|
64
72
|
scope?: PraxisExportScope;
|
|
@@ -68,6 +76,12 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
68
76
|
field: string;
|
|
69
77
|
visible: boolean;
|
|
70
78
|
}>;
|
|
79
|
+
quickFilterChange: EventEmitter<{
|
|
80
|
+
id: string;
|
|
81
|
+
filter: Record<string, unknown>;
|
|
82
|
+
active: boolean;
|
|
83
|
+
}>;
|
|
84
|
+
densityChange: EventEmitter<TableToolbarAppearanceDensity>;
|
|
71
85
|
readonly getActionId: typeof getActionId;
|
|
72
86
|
private readonly jsonLogic;
|
|
73
87
|
private readonly validToolbarActionTypes;
|
|
@@ -100,12 +114,37 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
100
114
|
getExportFormatTooltip(format: unknown): string;
|
|
101
115
|
getExportFormatAriaLabel(format: unknown): string;
|
|
102
116
|
getMoreActionsLabel(): string;
|
|
117
|
+
getFocusOriginKey(part: string): string;
|
|
103
118
|
emitExportAction(event: Event, format: string): void;
|
|
104
119
|
emitVisibleExcelExportAction(event: Event): void;
|
|
105
120
|
isExcelExportFormat(format: unknown): boolean;
|
|
106
121
|
isVisibleExcelExportEnabled(format: unknown): boolean;
|
|
107
122
|
private normalizeExportFormat;
|
|
108
123
|
getColumnsVisibilityLabel(): string;
|
|
124
|
+
getQuickFilters(): Array<{
|
|
125
|
+
id: string;
|
|
126
|
+
label: string;
|
|
127
|
+
filter: Record<string, unknown>;
|
|
128
|
+
icon?: string;
|
|
129
|
+
}>;
|
|
130
|
+
shouldShowQuickFilters(): boolean;
|
|
131
|
+
getQuickFiltersLabel(): string;
|
|
132
|
+
getQuickFilterLabel(filter: {
|
|
133
|
+
label: unknown;
|
|
134
|
+
id: string;
|
|
135
|
+
}): string;
|
|
136
|
+
isQuickFilterActive(id: string): boolean;
|
|
137
|
+
emitQuickFilterChange(event: Event, filter: {
|
|
138
|
+
id: string;
|
|
139
|
+
filter: Record<string, unknown>;
|
|
140
|
+
}): void;
|
|
141
|
+
isDensityToggleEnabled(): boolean;
|
|
142
|
+
getDensityToggleLabel(): string;
|
|
143
|
+
getDensityOptions(): TableToolbarAppearanceDensity[];
|
|
144
|
+
isDensityActive(density: TableToolbarAppearanceDensity): boolean;
|
|
145
|
+
getDensityLabel(density: TableToolbarAppearanceDensity): string;
|
|
146
|
+
getDensityIcon(density: TableToolbarAppearanceDensity): string;
|
|
147
|
+
emitDensityChange(event: Event, density: TableToolbarAppearanceDensity): void;
|
|
109
148
|
getColumnsVisibilityIcon(): string;
|
|
110
149
|
isColumnsVisibilityEnabled(): boolean;
|
|
111
150
|
getVisibleColumnsCount(): number;
|
|
@@ -130,7 +169,9 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
130
169
|
private cloneForEmit;
|
|
131
170
|
private getLogger;
|
|
132
171
|
private warnLog;
|
|
133
|
-
emitToolbarAction(event: Event, action: string, actionConfig?: ToolbarAction$1): void;
|
|
172
|
+
emitToolbarAction(event: Event, action: string, actionConfig?: ToolbarAction$1, focusOrigin?: HTMLElement): void;
|
|
173
|
+
setActiveOverflowMenuTrigger(trigger: MatMenuTrigger, origin?: unknown): void;
|
|
174
|
+
emitOverflowToolbarAction(event: Event, action: string, actionConfig?: ToolbarAction$1): void;
|
|
134
175
|
getStartActions(): any[];
|
|
135
176
|
getNonStartActions(): any[];
|
|
136
177
|
getOverflowActions(): any[];
|
|
@@ -182,7 +223,7 @@ declare class PraxisTableToolbar implements OnDestroy {
|
|
|
182
223
|
private sortActions;
|
|
183
224
|
getExportIcon(format: string): string;
|
|
184
225
|
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableToolbar, [null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
185
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableToolbar, "praxis-table-toolbar", never, { "config": { "alias": "config"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "showMain": { "alias": "showMain"; "required": false; }; "showActionsGroup": { "alias": "showActionsGroup"; "required": false; }; "showEndActions": { "alias": "showEndActions"; "required": false; }; "showMobileActions": { "alias": "showMobileActions"; "required": false; }; "exportBusy": { "alias": "exportBusy"; "required": false; }; "evaluationContext": { "alias": "evaluationContext"; "required": false; }; "columnVisibilityController": { "alias": "columnVisibilityController"; "required": false; }; }, { "toolbarAction": "toolbarAction"; "exportAction": "exportAction"; "columnVisibilityToggle": "columnVisibilityToggle"; }, never, ["[advancedFilter]", "[toolbar]", "[end-actions]"], true, never>;
|
|
226
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableToolbar, "praxis-table-toolbar", never, { "config": { "alias": "config"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "focusScope": { "alias": "focusScope"; "required": false; }; "showMain": { "alias": "showMain"; "required": false; }; "showActionsGroup": { "alias": "showActionsGroup"; "required": false; }; "showEndActions": { "alias": "showEndActions"; "required": false; }; "showMobileActions": { "alias": "showMobileActions"; "required": false; }; "exportBusy": { "alias": "exportBusy"; "required": false; }; "exportStatusMessage": { "alias": "exportStatusMessage"; "required": false; }; "evaluationContext": { "alias": "evaluationContext"; "required": false; }; "activeQuickFilterId": { "alias": "activeQuickFilterId"; "required": false; }; "activeDensity": { "alias": "activeDensity"; "required": false; }; "columnVisibilityController": { "alias": "columnVisibilityController"; "required": false; }; }, { "toolbarAction": "toolbarAction"; "exportAction": "exportAction"; "columnVisibilityToggle": "columnVisibilityToggle"; "quickFilterChange": "quickFilterChange"; "densityChange": "densityChange"; }, never, ["[advancedFilter]", "[toolbar]", "[end-actions]"], true, never>;
|
|
186
227
|
}
|
|
187
228
|
|
|
188
229
|
type ColumnDataType$1 = 'date' | 'number' | 'currency' | 'percentage' | 'string' | 'boolean' | 'custom';
|
|
@@ -344,6 +385,12 @@ type FilterConfig = {
|
|
|
344
385
|
mode?: 'filter';
|
|
345
386
|
changeDebounceMs?: number;
|
|
346
387
|
allowSaveTags?: boolean;
|
|
388
|
+
/** Governed shortcuts shipped with the table config; user shortcuts remain persisted separately. */
|
|
389
|
+
tags?: Array<{
|
|
390
|
+
id: string;
|
|
391
|
+
label: string;
|
|
392
|
+
patch: Record<string, any>;
|
|
393
|
+
}>;
|
|
347
394
|
placeBooleansInActions?: boolean;
|
|
348
395
|
showToggleLabels?: boolean;
|
|
349
396
|
alwaysMinWidth?: number;
|
|
@@ -480,6 +527,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
480
527
|
private settingsPanel;
|
|
481
528
|
private snackBar;
|
|
482
529
|
private dialog;
|
|
530
|
+
private praxisDialog;
|
|
483
531
|
private cdr;
|
|
484
532
|
private ngZone;
|
|
485
533
|
private dynamicForm;
|
|
@@ -488,6 +536,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
488
536
|
private route?;
|
|
489
537
|
private logger?;
|
|
490
538
|
addManagerOrigin?: ElementRef<HTMLButtonElement>;
|
|
539
|
+
addManagerSearch?: PdxCollectionSearchComponent;
|
|
491
540
|
resourcePath: string;
|
|
492
541
|
/** Resolved API entry carried by detached hosts when route-scoped API_URL is not inherited. */
|
|
493
542
|
apiUrlEntry?: ApiUrlEntry | null;
|
|
@@ -663,6 +712,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
663
712
|
readonly addManagerDescriptionId: string;
|
|
664
713
|
readonly addOverlayPositions: ConnectedPosition[];
|
|
665
714
|
private applySchemaQueued;
|
|
715
|
+
private shortcutPromptOpen;
|
|
666
716
|
private fallbackLogger?;
|
|
667
717
|
private fallbackLoggerEnvironment;
|
|
668
718
|
private isViewInitialized;
|
|
@@ -696,7 +746,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
696
746
|
private filterSchemaIgnoreKey;
|
|
697
747
|
private filterSchemaSnoozeKey;
|
|
698
748
|
private filterSchemaNotifiedKey;
|
|
699
|
-
constructor(crud: GenericCrudService<any>, configStorage: AsyncConfigStorage, destroyRef: DestroyRef, filterConfig: FilterConfigService, settingsPanel: SettingsPanelService, snackBar: MatSnackBar, dialog: MatDialog, cdr: ChangeDetectorRef, ngZone: NgZone, dynamicForm: DynamicFormService, schemaNormalizer: SchemaNormalizerService, componentKeys: ComponentKeyService, route?: ActivatedRoute | undefined, logger?: LoggerService | undefined);
|
|
749
|
+
constructor(crud: GenericCrudService<any>, configStorage: AsyncConfigStorage, destroyRef: DestroyRef, filterConfig: FilterConfigService, settingsPanel: SettingsPanelService, snackBar: MatSnackBar, dialog: MatDialog, praxisDialog: PraxisDialog, cdr: ChangeDetectorRef, ngZone: NgZone, dynamicForm: DynamicFormService, schemaNormalizer: SchemaNormalizerService, componentKeys: ComponentKeyService, route?: ActivatedRoute | undefined, logger?: LoggerService | undefined);
|
|
700
750
|
private readonly global;
|
|
701
751
|
private resolveRuntimeEnvironment;
|
|
702
752
|
private getLogger;
|
|
@@ -871,6 +921,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
871
921
|
saveCurrentAsTag(): void;
|
|
872
922
|
/** Persistência centralizada de atalho a partir de um DTO explícito */
|
|
873
923
|
private saveAsShortcutFromDto;
|
|
924
|
+
private requestShortcutLabel;
|
|
874
925
|
getAdvancedAriaLabel(): string;
|
|
875
926
|
getAdvancedTooltip(): string;
|
|
876
927
|
getSettingsAriaLabel(): string;
|
|
@@ -928,7 +979,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
|
|
|
928
979
|
onGlobalKeydown(event: KeyboardEvent): void;
|
|
929
980
|
private isEditableElement;
|
|
930
981
|
private focusQuick;
|
|
931
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilter, [null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
|
|
982
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilter, [null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
|
|
932
983
|
static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilter, "praxis-filter", never, { "resourcePath": { "alias": "resourcePath"; "required": true; }; "apiUrlEntry": { "alias": "apiUrlEntry"; "required": false; }; "fieldMetadata": { "alias": "fieldMetadata"; "required": false; }; "filterId": { "alias": "filterId"; "required": false; }; "formId": { "alias": "formId"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "value": { "alias": "value"; "required": false; }; "alwaysVisibleFields": { "alias": "alwaysVisibleFields"; "required": false; }; "alwaysVisibleFieldMetadataOverrides": { "alias": "alwaysVisibleFieldMetadataOverrides"; "required": false; }; "selectedFieldIds": { "alias": "selectedFieldIds"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; "allowSaveTags": { "alias": "allowSaveTags"; "required": false; }; "persistenceKey": { "alias": "persistenceKey"; "required": false; }; "disablePersistence": { "alias": "disablePersistence"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "changeDebounceMs": { "alias": "changeDebounceMs"; "required": false; }; "showFilterSettings": { "alias": "showFilterSettings"; "required": false; }; "showAdvancedButton": { "alias": "showAdvancedButton"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "showClearButton": { "alias": "showClearButton"; "required": false; }; "showSearchButton": { "alias": "showSearchButton"; "required": false; }; "confirmTagDelete": { "alias": "confirmTagDelete"; "required": false; }; "placeBooleansInActions": { "alias": "placeBooleansInActions"; "required": false; }; "showToggleLabels": { "alias": "showToggleLabels"; "required": false; }; "useInlineSelectVariant": { "alias": "useInlineSelectVariant"; "required": false; }; "useInlineSearchableSelectVariant": { "alias": "useInlineSearchableSelectVariant"; "required": false; }; "useInlineMultiSelectVariant": { "alias": "useInlineMultiSelectVariant"; "required": false; }; "useInlineInputVariant": { "alias": "useInlineInputVariant"; "required": false; }; "useInlineToggleVariant": { "alias": "useInlineToggleVariant"; "required": false; }; "useInlineRangeVariant": { "alias": "useInlineRangeVariant"; "required": false; }; "useInlineDateVariant": { "alias": "useInlineDateVariant"; "required": false; }; "useInlineDateRangeVariant": { "alias": "useInlineDateRangeVariant"; "required": false; }; "useInlineTimeVariant": { "alias": "useInlineTimeVariant"; "required": false; }; "useInlineTimeRangeVariant": { "alias": "useInlineTimeRangeVariant"; "required": false; }; "useInlineTreeSelectVariant": { "alias": "useInlineTreeSelectVariant"; "required": false; }; "alwaysMinWidth": { "alias": "alwaysMinWidth"; "required": false; }; "alwaysColsMd": { "alias": "alwaysColsMd"; "required": false; }; "alwaysColsLg": { "alias": "alwaysColsLg"; "required": false; }; "tagColor": { "alias": "tagColor"; "required": false; }; "tagVariant": { "alias": "tagVariant"; "required": false; }; "tagButtonColor": { "alias": "tagButtonColor"; "required": false; }; "actionsButtonColor": { "alias": "actionsButtonColor"; "required": false; }; "actionsVariant": { "alias": "actionsVariant"; "required": false; }; "overlayVariant": { "alias": "overlayVariant"; "required": false; }; "overlayBackdrop": { "alias": "overlayBackdrop"; "required": false; }; "advancedOpenMode": { "alias": "advancedOpenMode"; "required": false; }; "advancedClearButtonsEnabled": { "alias": "advancedClearButtonsEnabled"; "required": false; }; }, { "submit": "submit"; "change": "change"; "clear": "clear"; "modeChange": "modeChange"; "requestSearch": "requestSearch"; "tagsChange": "tagsChange"; "selectedFieldIdsChange": "selectedFieldIdsChange"; "metaChanged": "metaChanged"; "schemaStatusChange": "schemaStatusChange"; }, never, never, true, never>;
|
|
933
984
|
}
|
|
934
985
|
|
|
@@ -1093,6 +1144,8 @@ type RowExpansionChangeEvent = (RowExpansionChangeBase & {
|
|
|
1093
1144
|
type RowActionRuntimeOptions = {
|
|
1094
1145
|
payload?: any;
|
|
1095
1146
|
actionConfig?: any;
|
|
1147
|
+
/** Runtime-only focus origin. It must never be persisted or sent to an API. */
|
|
1148
|
+
focusOrigin?: HTMLElement;
|
|
1096
1149
|
};
|
|
1097
1150
|
type RowActionTriggerEvent = {
|
|
1098
1151
|
target?: EventTarget | null;
|
|
@@ -1113,6 +1166,7 @@ type RuntimeRowAction = {
|
|
|
1113
1166
|
__praxisDiscoveredSurface?: ResourceSurfaceCatalogItem;
|
|
1114
1167
|
__praxisCrudOperation?: ResourceCapabilityOperation;
|
|
1115
1168
|
__praxisCapabilityDenied?: boolean;
|
|
1169
|
+
__praxisDiscoveryPending?: boolean;
|
|
1116
1170
|
};
|
|
1117
1171
|
type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
|
|
1118
1172
|
type ExpansionDetailResolvedSource = 'inline' | 'resource' | 'resourcePath' | 'hypermedia' | 'fallback';
|
|
@@ -1148,6 +1202,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1148
1202
|
private route?;
|
|
1149
1203
|
private logger?;
|
|
1150
1204
|
private analyticsStatsApi?;
|
|
1205
|
+
activeRowOverflowMenuTrigger?: MatMenuTrigger;
|
|
1206
|
+
private activeRowOverflowMenuTriggerElement?;
|
|
1207
|
+
private openingRowActions;
|
|
1151
1208
|
private static readonly CELL_ANIMATION_CHANGE_CACHE_LIMIT;
|
|
1152
1209
|
private static readonly AI_SELECTION_ROW_LIMIT;
|
|
1153
1210
|
private static readonly AI_SELECTION_ID_LIMIT;
|
|
@@ -1193,6 +1250,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1193
1250
|
aiAssistantVoiceInputMode: PraxisAssistantVoiceInputMode;
|
|
1194
1251
|
aiAssistantVoiceLanguage: string;
|
|
1195
1252
|
advancedFilterValue: Record<string, any>;
|
|
1253
|
+
activeQuickFilterId: string | null;
|
|
1254
|
+
private quickFilterBaseCriteria;
|
|
1255
|
+
private activeQuickFilterCriteria;
|
|
1196
1256
|
advancedFilterRuntimeVisibleFields: string[];
|
|
1197
1257
|
private advancedFilterAlwaysVisibleCacheKey;
|
|
1198
1258
|
private advancedFilterAlwaysVisibleCache?;
|
|
@@ -1227,6 +1287,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1227
1287
|
paginator: MatPaginator;
|
|
1228
1288
|
sort: MatSort;
|
|
1229
1289
|
materialTable?: MatTable<any>;
|
|
1290
|
+
scrollViewport?: ElementRef<HTMLElement>;
|
|
1230
1291
|
internalFilter?: PraxisFilter;
|
|
1231
1292
|
toolbar: PraxisTableToolbar;
|
|
1232
1293
|
projectedFilter: any;
|
|
@@ -1249,6 +1310,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1249
1310
|
columnReorderVisualStatusMessage: string;
|
|
1250
1311
|
exportBusy: boolean;
|
|
1251
1312
|
exportStatusMessage: string;
|
|
1313
|
+
hasHorizontalOverflow: boolean;
|
|
1314
|
+
canScrollHorizontallyLeft: boolean;
|
|
1315
|
+
canScrollHorizontallyRight: boolean;
|
|
1252
1316
|
private columnReorderStatusTimer;
|
|
1253
1317
|
private columnReorderVisualStatusTimer;
|
|
1254
1318
|
private columnReorderUndoSubscription;
|
|
@@ -1305,6 +1369,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1305
1369
|
private readonly paginatorIntl;
|
|
1306
1370
|
private readonly schemaNormalizer;
|
|
1307
1371
|
private schemaFieldsSnapshot;
|
|
1372
|
+
private schemaColumnFieldsSnapshot;
|
|
1308
1373
|
private filterSchemaFieldsSnapshot;
|
|
1309
1374
|
private runtimeSchemaMeta;
|
|
1310
1375
|
schemaError: boolean;
|
|
@@ -1318,6 +1383,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1318
1383
|
shouldShowToolbarBottomPlacement(): boolean;
|
|
1319
1384
|
shouldRenderFooterToolbar(): boolean;
|
|
1320
1385
|
hasTopToolbarStack(): boolean;
|
|
1386
|
+
hasBottomTableStack(): boolean;
|
|
1321
1387
|
shouldShowFooterToolbarMain(): boolean;
|
|
1322
1388
|
shouldShowFooterToolbarEndActions(): boolean;
|
|
1323
1389
|
getToolbarActionsPosition(): 'top' | 'bottom' | 'both';
|
|
@@ -1331,6 +1397,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1331
1397
|
shouldShowToolbarActionsTop(): boolean;
|
|
1332
1398
|
shouldShowToolbarActionsBottom(): boolean;
|
|
1333
1399
|
getToolbarActionsBackgroundColor(): string | null;
|
|
1400
|
+
private hasToolbarUtilityActions;
|
|
1334
1401
|
getToolbarLayoutHeightPx(): number | null;
|
|
1335
1402
|
getToolbarLayoutHeightCssVar(): string | null;
|
|
1336
1403
|
getToolbarLayoutHeightHostStyle(): string | null;
|
|
@@ -1353,6 +1420,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1353
1420
|
private shouldApplyResponsiveHorizontalScrollGlobally;
|
|
1354
1421
|
private isWithinResponsiveMobileBreakpoint;
|
|
1355
1422
|
private refreshResponsiveHorizontalScroll;
|
|
1423
|
+
onHorizontalViewportScroll(event: Event): void;
|
|
1424
|
+
private refreshHorizontalOverflowState;
|
|
1425
|
+
private scheduleHorizontalOverflowRefresh;
|
|
1426
|
+
/**
|
|
1427
|
+
* Materializes the existing responsive contract as a labelled record card on
|
|
1428
|
+
* narrow screens. Virtual rows intentionally keep the scroll-table path:
|
|
1429
|
+
* their fixed item height cannot safely represent a variable-height card.
|
|
1430
|
+
*/
|
|
1431
|
+
isMobileCardModeActive(): boolean;
|
|
1432
|
+
getMobileCardColumnOrder(column: ColumnDefinition): number;
|
|
1433
|
+
getMobileCardActionsOrder(): number;
|
|
1356
1434
|
private scheduleResponsiveHorizontalScrollRefresh;
|
|
1357
1435
|
private cancelResponsiveHorizontalScrollRefresh;
|
|
1358
1436
|
hasBottomPaginator(): boolean;
|
|
@@ -1369,10 +1447,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1369
1447
|
shouldShowEmptyState(): boolean;
|
|
1370
1448
|
shouldShowNoDataState(): boolean;
|
|
1371
1449
|
shouldShowLoadingSurface(): boolean;
|
|
1450
|
+
shouldShowRefreshingState(): boolean;
|
|
1372
1451
|
getLoadingSurfaceMessage(): string;
|
|
1373
1452
|
getNoDataStateTitle(): string;
|
|
1374
1453
|
getNoDataStateDescription(): string | undefined;
|
|
1375
1454
|
getTableSettingsLabel(): string;
|
|
1455
|
+
getScrollViewportAriaLabel(): string;
|
|
1376
1456
|
getTableErrorTitle(): string;
|
|
1377
1457
|
getTableErrorMessage(): string;
|
|
1378
1458
|
getTableErrorRetryLabel(): string;
|
|
@@ -1418,7 +1498,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1418
1498
|
private hostDeclaredAppearanceDensity;
|
|
1419
1499
|
private hostDeclaredAppearanceSpacing;
|
|
1420
1500
|
private hostDeclaredAppearanceTypography;
|
|
1421
|
-
|
|
1501
|
+
resolveAppearanceDensity(): 'compact' | 'comfortable' | 'spacious';
|
|
1422
1502
|
get hostDensityCompactClass(): boolean;
|
|
1423
1503
|
get hostDensityComfortableClass(): boolean;
|
|
1424
1504
|
get hostDensitySpaciousClass(): boolean;
|
|
@@ -1460,6 +1540,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1460
1540
|
private computedExpressionEvaluator;
|
|
1461
1541
|
private resizeObserver;
|
|
1462
1542
|
private resizeObserverRefreshFrameId;
|
|
1543
|
+
private horizontalOverflowRefreshFrameId;
|
|
1463
1544
|
private removeViewportChangeListeners;
|
|
1464
1545
|
private conditionalSurfaceObserver;
|
|
1465
1546
|
private conditionalSurfaceFrameId;
|
|
@@ -1618,7 +1699,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1618
1699
|
private resolveAiAssistantIcon;
|
|
1619
1700
|
private emitLoadingState;
|
|
1620
1701
|
private hasResolvedRemoteDataLoad;
|
|
1621
|
-
|
|
1702
|
+
isTableDataLoading(): boolean;
|
|
1622
1703
|
private getRenderedRowCount;
|
|
1623
1704
|
private hasActiveDataFilters;
|
|
1624
1705
|
private hasActiveEmptyStateFilters;
|
|
@@ -1840,12 +1921,18 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1840
1921
|
private applyExpansionCollapsePolicy;
|
|
1841
1922
|
onRowDoubleClicked(row: any, index: number): void;
|
|
1842
1923
|
onRowAction(action: string, row: any, event: RowActionTriggerEvent, runtimeOptions?: RowActionRuntimeOptions): void;
|
|
1924
|
+
onOverflowRowAction(action: string, row: any, event: RowActionTriggerEvent, runtimeOptions?: RowActionRuntimeOptions): void;
|
|
1925
|
+
setActiveRowOverflowMenuTrigger(trigger: MatMenuTrigger, origin?: unknown): void;
|
|
1843
1926
|
private resolveRowActionRuntimeOptions;
|
|
1844
1927
|
private emitRowActionEvent;
|
|
1845
1928
|
private showConfirmDialog;
|
|
1929
|
+
isRowActionOpening(action: string | RuntimeRowAction, row: any): boolean;
|
|
1930
|
+
private dispatchRowActionWithOpening;
|
|
1931
|
+
private getOpeningRowActions;
|
|
1846
1932
|
private executeDeleteAction;
|
|
1847
1933
|
private dispatchRowAction;
|
|
1848
1934
|
private groundRowActionConfigForDispatch;
|
|
1935
|
+
private getUnavailableGroundedRowActionMessage;
|
|
1849
1936
|
private isResourceActionCatalogItem;
|
|
1850
1937
|
private openResourceWorkflowAction;
|
|
1851
1938
|
private applyWorkflowActionRefresh;
|
|
@@ -1867,10 +1954,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1867
1954
|
private resolveBulkValidationMessage;
|
|
1868
1955
|
private hasValidBulkSelectionCount;
|
|
1869
1956
|
private showBulkConfirmDialog;
|
|
1870
|
-
onToolbarAction(event:
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
}): Promise<void>;
|
|
1957
|
+
onToolbarAction(event: Pick<ToolbarActionEvent<any>, 'action' | 'actionConfig' | 'focusOrigin'>): Promise<void>;
|
|
1958
|
+
getFocusRestoreScope(placement: 'header' | 'footer' | 'row'): string;
|
|
1959
|
+
getRowActionFocusOriginKey(row: any): string;
|
|
1874
1960
|
private hasValidToolbarTargetSelection;
|
|
1875
1961
|
private tryHandleCollectionWorkflowToolbarAction;
|
|
1876
1962
|
private openCollectionWorkflowAction;
|
|
@@ -1914,6 +2000,13 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1914
2000
|
onAdvancedFilterSubmit(criteria: Record<string, any>): void;
|
|
1915
2001
|
onAdvancedFilterChange(criteria: Record<string, any>): void;
|
|
1916
2002
|
onAdvancedFilterClear(): void;
|
|
2003
|
+
onQuickFilterChange(event: {
|
|
2004
|
+
id: string;
|
|
2005
|
+
filter: Record<string, unknown>;
|
|
2006
|
+
active: boolean;
|
|
2007
|
+
}): void;
|
|
2008
|
+
private clearQuickFilterRuntimeState;
|
|
2009
|
+
private hasEquivalentFilterCriteria;
|
|
1917
2010
|
private applyAdvancedFilterCriteria;
|
|
1918
2011
|
private setAdvancedFilterCriteria;
|
|
1919
2012
|
private syncAdvancedFilterValueFromCriteria;
|
|
@@ -1929,6 +2022,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1929
2022
|
private showResetSuccessFeedback;
|
|
1930
2023
|
readonly toolbarColumnVisibilityController: (field: string, visible: boolean) => void;
|
|
1931
2024
|
toggleColumnVisibility(field: string, visible: boolean): void;
|
|
2025
|
+
onDensityChange(density: TableToolbarAppearanceDensity): void;
|
|
1932
2026
|
isCustomizationAvailable(): boolean;
|
|
1933
2027
|
private isAuthoringAssistantAvailable;
|
|
1934
2028
|
openTableSettings(): void;
|
|
@@ -2038,6 +2132,23 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2038
2132
|
private loadOrVerifyRemoteSchema;
|
|
2039
2133
|
private loadFilterSchemaSnapshot;
|
|
2040
2134
|
private convertFieldToColumn;
|
|
2135
|
+
private usesSchemaColumnProjection;
|
|
2136
|
+
/**
|
|
2137
|
+
* Materializa a projeção efetiva sem promover o JSON da página a fonte de
|
|
2138
|
+
* verdade estrutural. Overrides desconhecidos não criam colunas e `field`
|
|
2139
|
+
* nunca pode ser substituído pelo consumidor.
|
|
2140
|
+
*/
|
|
2141
|
+
private projectSchemaColumns;
|
|
2142
|
+
/**
|
|
2143
|
+
* Converte a configuração materializada usada pelo renderer de volta ao
|
|
2144
|
+
* contrato compacto e persistível. O schema continua sendo a fonte
|
|
2145
|
+
* estrutural; somente ordem/allowlist, diferenças editoriais e colunas sem
|
|
2146
|
+
* correspondente canônico são serializadas.
|
|
2147
|
+
*/
|
|
2148
|
+
private toPortableTableConfig;
|
|
2149
|
+
private diffPortableColumnDefinition;
|
|
2150
|
+
private toPortableColumnDefinition;
|
|
2151
|
+
private arePortableValuesEqual;
|
|
2041
2152
|
private applySchemaFieldPresentationsToExistingColumns;
|
|
2042
2153
|
private applySchemaFieldPresentation;
|
|
2043
2154
|
private applySchemaSemanticCellPresentation;
|
|
@@ -2505,11 +2616,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2505
2616
|
private buildResolvedRowActions;
|
|
2506
2617
|
private splitVisibleRowActionsFromVisible;
|
|
2507
2618
|
private decorateConfiguredRowAction;
|
|
2619
|
+
private isConfiguredRowActionDiscoveryIndependent;
|
|
2620
|
+
private isRowDiscoveryStatusUnresolved;
|
|
2621
|
+
private buildPendingConfiguredRowAction;
|
|
2508
2622
|
private getDiscoveredRowWorkflowActions;
|
|
2509
2623
|
private getDiscoveredRowCrudActionsFromSnapshot;
|
|
2510
2624
|
private buildDiscoveredRowCrudAction;
|
|
2511
2625
|
private getDiscoveredRowSurfaceActionsFromSnapshot;
|
|
2512
2626
|
private getDiscoveredRowWorkflowActionsFromCatalog;
|
|
2627
|
+
private getDiscoveredRowWorkflowActionsFromItems;
|
|
2513
2628
|
private resolveRowCrudCapabilityOperation;
|
|
2514
2629
|
private createSyntheticCrudCapabilityOperation;
|
|
2515
2630
|
private supportsRowCrudAction;
|
|
@@ -2541,6 +2656,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2541
2656
|
isWorkflowRowAction(action: RuntimeRowAction | any): boolean;
|
|
2542
2657
|
isBlockedWorkflowRowAction(action: RuntimeRowAction | any, row: any): boolean;
|
|
2543
2658
|
getActionTooltip(action: RuntimeRowAction | any, row: any): string | null;
|
|
2659
|
+
getActionAriaDescription(action: RuntimeRowAction | any, row: any): string | null;
|
|
2544
2660
|
getRowMenuTooltip(row: any): string;
|
|
2545
2661
|
getRowMenuButtonColor(): any;
|
|
2546
2662
|
getCanonicalIconActionColor(color: unknown): string | null;
|
|
@@ -4289,7 +4405,7 @@ declare function serializeTableAuthoringDocument(doc: TableAuthoringDocument): u
|
|
|
4289
4405
|
* Manifesto de authoring canônico para o componente praxis-table.
|
|
4290
4406
|
* Este arquivo define o contrato executável para que agentes de IA editem tabelas.
|
|
4291
4407
|
*
|
|
4292
|
-
* @version 2.2.
|
|
4408
|
+
* @version 2.2.3
|
|
4293
4409
|
* @status COMPLIANT - Alinhado com o contrato v2 e TableConfig canônico.
|
|
4294
4410
|
*/
|
|
4295
4411
|
declare const PRAXIS_TABLE_AUTHORING_MANIFEST: ComponentAuthoringManifest;
|