@praxisui/table 9.0.4-rc.8 → 9.0.4
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 +46 -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-Cf63AwZs.mjs} +1068 -154
- package/fesm2022/{praxisui-table-table-agentic-authoring-turn-flow-CeJX5SUj.mjs → praxisui-table-table-agentic-authoring-turn-flow-Cz_xmaGA.mjs} +1 -1
- package/fesm2022/{praxisui-table-table-ai.adapter-Nk2Ha6Qc.mjs → praxisui-table-table-ai.adapter-iUYC2oD5.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 +123 -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-Cf63AwZs.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-Cf63AwZs.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-Cf63AwZs.mjs';
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/table",
|
|
3
|
-
"version": "9.0.4
|
|
3
|
+
"version": "9.0.4",
|
|
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.4
|
|
10
|
-
"@praxisui/core": "^9.0.4
|
|
11
|
-
"@praxisui/dynamic-fields": "^9.0.4
|
|
12
|
-
"@praxisui/dynamic-form": "^9.0.4
|
|
13
|
-
"@praxisui/metadata-editor": "^9.0.4
|
|
14
|
-
"@praxisui/rich-content": "^9.0.4
|
|
15
|
-
"@praxisui/settings-panel": "^9.0.4
|
|
16
|
-
"@praxisui/table-rule-builder": "^9.0.4
|
|
9
|
+
"@praxisui/ai": "^9.0.4",
|
|
10
|
+
"@praxisui/core": "^9.0.4",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.4",
|
|
12
|
+
"@praxisui/dynamic-form": "^9.0.4",
|
|
13
|
+
"@praxisui/metadata-editor": "^9.0.4",
|
|
14
|
+
"@praxisui/rich-content": "^9.0.4",
|
|
15
|
+
"@praxisui/settings-panel": "^9.0.4",
|
|
16
|
+
"@praxisui/table-rule-builder": "^9.0.4",
|
|
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.4
|
|
21
|
+
"@praxisui/dialog": "^9.0.4",
|
|
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;
|
|
@@ -1148,6 +1201,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1148
1201
|
private route?;
|
|
1149
1202
|
private logger?;
|
|
1150
1203
|
private analyticsStatsApi?;
|
|
1204
|
+
activeRowOverflowMenuTrigger?: MatMenuTrigger;
|
|
1205
|
+
private activeRowOverflowMenuTriggerElement?;
|
|
1206
|
+
private openingRowActions;
|
|
1151
1207
|
private static readonly CELL_ANIMATION_CHANGE_CACHE_LIMIT;
|
|
1152
1208
|
private static readonly AI_SELECTION_ROW_LIMIT;
|
|
1153
1209
|
private static readonly AI_SELECTION_ID_LIMIT;
|
|
@@ -1193,6 +1249,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1193
1249
|
aiAssistantVoiceInputMode: PraxisAssistantVoiceInputMode;
|
|
1194
1250
|
aiAssistantVoiceLanguage: string;
|
|
1195
1251
|
advancedFilterValue: Record<string, any>;
|
|
1252
|
+
activeQuickFilterId: string | null;
|
|
1253
|
+
private quickFilterBaseCriteria;
|
|
1254
|
+
private activeQuickFilterCriteria;
|
|
1196
1255
|
advancedFilterRuntimeVisibleFields: string[];
|
|
1197
1256
|
private advancedFilterAlwaysVisibleCacheKey;
|
|
1198
1257
|
private advancedFilterAlwaysVisibleCache?;
|
|
@@ -1227,6 +1286,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1227
1286
|
paginator: MatPaginator;
|
|
1228
1287
|
sort: MatSort;
|
|
1229
1288
|
materialTable?: MatTable<any>;
|
|
1289
|
+
scrollViewport?: ElementRef<HTMLElement>;
|
|
1230
1290
|
internalFilter?: PraxisFilter;
|
|
1231
1291
|
toolbar: PraxisTableToolbar;
|
|
1232
1292
|
projectedFilter: any;
|
|
@@ -1249,6 +1309,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1249
1309
|
columnReorderVisualStatusMessage: string;
|
|
1250
1310
|
exportBusy: boolean;
|
|
1251
1311
|
exportStatusMessage: string;
|
|
1312
|
+
hasHorizontalOverflow: boolean;
|
|
1313
|
+
canScrollHorizontallyLeft: boolean;
|
|
1314
|
+
canScrollHorizontallyRight: boolean;
|
|
1252
1315
|
private columnReorderStatusTimer;
|
|
1253
1316
|
private columnReorderVisualStatusTimer;
|
|
1254
1317
|
private columnReorderUndoSubscription;
|
|
@@ -1305,6 +1368,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1305
1368
|
private readonly paginatorIntl;
|
|
1306
1369
|
private readonly schemaNormalizer;
|
|
1307
1370
|
private schemaFieldsSnapshot;
|
|
1371
|
+
private schemaColumnFieldsSnapshot;
|
|
1308
1372
|
private filterSchemaFieldsSnapshot;
|
|
1309
1373
|
private runtimeSchemaMeta;
|
|
1310
1374
|
schemaError: boolean;
|
|
@@ -1318,6 +1382,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1318
1382
|
shouldShowToolbarBottomPlacement(): boolean;
|
|
1319
1383
|
shouldRenderFooterToolbar(): boolean;
|
|
1320
1384
|
hasTopToolbarStack(): boolean;
|
|
1385
|
+
hasBottomTableStack(): boolean;
|
|
1321
1386
|
shouldShowFooterToolbarMain(): boolean;
|
|
1322
1387
|
shouldShowFooterToolbarEndActions(): boolean;
|
|
1323
1388
|
getToolbarActionsPosition(): 'top' | 'bottom' | 'both';
|
|
@@ -1331,6 +1396,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1331
1396
|
shouldShowToolbarActionsTop(): boolean;
|
|
1332
1397
|
shouldShowToolbarActionsBottom(): boolean;
|
|
1333
1398
|
getToolbarActionsBackgroundColor(): string | null;
|
|
1399
|
+
private hasToolbarUtilityActions;
|
|
1334
1400
|
getToolbarLayoutHeightPx(): number | null;
|
|
1335
1401
|
getToolbarLayoutHeightCssVar(): string | null;
|
|
1336
1402
|
getToolbarLayoutHeightHostStyle(): string | null;
|
|
@@ -1353,6 +1419,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1353
1419
|
private shouldApplyResponsiveHorizontalScrollGlobally;
|
|
1354
1420
|
private isWithinResponsiveMobileBreakpoint;
|
|
1355
1421
|
private refreshResponsiveHorizontalScroll;
|
|
1422
|
+
onHorizontalViewportScroll(event: Event): void;
|
|
1423
|
+
private refreshHorizontalOverflowState;
|
|
1424
|
+
private scheduleHorizontalOverflowRefresh;
|
|
1425
|
+
/**
|
|
1426
|
+
* Materializes the existing responsive contract as a labelled record card on
|
|
1427
|
+
* narrow screens. Virtual rows intentionally keep the scroll-table path:
|
|
1428
|
+
* their fixed item height cannot safely represent a variable-height card.
|
|
1429
|
+
*/
|
|
1430
|
+
isMobileCardModeActive(): boolean;
|
|
1431
|
+
getMobileCardColumnOrder(column: ColumnDefinition): number;
|
|
1432
|
+
getMobileCardActionsOrder(): number;
|
|
1356
1433
|
private scheduleResponsiveHorizontalScrollRefresh;
|
|
1357
1434
|
private cancelResponsiveHorizontalScrollRefresh;
|
|
1358
1435
|
hasBottomPaginator(): boolean;
|
|
@@ -1369,10 +1446,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1369
1446
|
shouldShowEmptyState(): boolean;
|
|
1370
1447
|
shouldShowNoDataState(): boolean;
|
|
1371
1448
|
shouldShowLoadingSurface(): boolean;
|
|
1449
|
+
shouldShowRefreshingState(): boolean;
|
|
1372
1450
|
getLoadingSurfaceMessage(): string;
|
|
1373
1451
|
getNoDataStateTitle(): string;
|
|
1374
1452
|
getNoDataStateDescription(): string | undefined;
|
|
1375
1453
|
getTableSettingsLabel(): string;
|
|
1454
|
+
getScrollViewportAriaLabel(): string;
|
|
1376
1455
|
getTableErrorTitle(): string;
|
|
1377
1456
|
getTableErrorMessage(): string;
|
|
1378
1457
|
getTableErrorRetryLabel(): string;
|
|
@@ -1418,7 +1497,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1418
1497
|
private hostDeclaredAppearanceDensity;
|
|
1419
1498
|
private hostDeclaredAppearanceSpacing;
|
|
1420
1499
|
private hostDeclaredAppearanceTypography;
|
|
1421
|
-
|
|
1500
|
+
resolveAppearanceDensity(): 'compact' | 'comfortable' | 'spacious';
|
|
1422
1501
|
get hostDensityCompactClass(): boolean;
|
|
1423
1502
|
get hostDensityComfortableClass(): boolean;
|
|
1424
1503
|
get hostDensitySpaciousClass(): boolean;
|
|
@@ -1460,6 +1539,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1460
1539
|
private computedExpressionEvaluator;
|
|
1461
1540
|
private resizeObserver;
|
|
1462
1541
|
private resizeObserverRefreshFrameId;
|
|
1542
|
+
private horizontalOverflowRefreshFrameId;
|
|
1463
1543
|
private removeViewportChangeListeners;
|
|
1464
1544
|
private conditionalSurfaceObserver;
|
|
1465
1545
|
private conditionalSurfaceFrameId;
|
|
@@ -1618,7 +1698,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1618
1698
|
private resolveAiAssistantIcon;
|
|
1619
1699
|
private emitLoadingState;
|
|
1620
1700
|
private hasResolvedRemoteDataLoad;
|
|
1621
|
-
|
|
1701
|
+
isTableDataLoading(): boolean;
|
|
1622
1702
|
private getRenderedRowCount;
|
|
1623
1703
|
private hasActiveDataFilters;
|
|
1624
1704
|
private hasActiveEmptyStateFilters;
|
|
@@ -1840,9 +1920,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1840
1920
|
private applyExpansionCollapsePolicy;
|
|
1841
1921
|
onRowDoubleClicked(row: any, index: number): void;
|
|
1842
1922
|
onRowAction(action: string, row: any, event: RowActionTriggerEvent, runtimeOptions?: RowActionRuntimeOptions): void;
|
|
1923
|
+
onOverflowRowAction(action: string, row: any, event: RowActionTriggerEvent, runtimeOptions?: RowActionRuntimeOptions): void;
|
|
1924
|
+
setActiveRowOverflowMenuTrigger(trigger: MatMenuTrigger, origin?: unknown): void;
|
|
1843
1925
|
private resolveRowActionRuntimeOptions;
|
|
1844
1926
|
private emitRowActionEvent;
|
|
1845
1927
|
private showConfirmDialog;
|
|
1928
|
+
isRowActionOpening(action: string | RuntimeRowAction, row: any): boolean;
|
|
1929
|
+
private dispatchRowActionWithOpening;
|
|
1930
|
+
private getOpeningRowActions;
|
|
1846
1931
|
private executeDeleteAction;
|
|
1847
1932
|
private dispatchRowAction;
|
|
1848
1933
|
private groundRowActionConfigForDispatch;
|
|
@@ -1867,10 +1952,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1867
1952
|
private resolveBulkValidationMessage;
|
|
1868
1953
|
private hasValidBulkSelectionCount;
|
|
1869
1954
|
private showBulkConfirmDialog;
|
|
1870
|
-
onToolbarAction(event:
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
}): Promise<void>;
|
|
1955
|
+
onToolbarAction(event: Pick<ToolbarActionEvent<any>, 'action' | 'actionConfig' | 'focusOrigin'>): Promise<void>;
|
|
1956
|
+
getFocusRestoreScope(placement: 'header' | 'footer' | 'row'): string;
|
|
1957
|
+
getRowActionFocusOriginKey(row: any): string;
|
|
1874
1958
|
private hasValidToolbarTargetSelection;
|
|
1875
1959
|
private tryHandleCollectionWorkflowToolbarAction;
|
|
1876
1960
|
private openCollectionWorkflowAction;
|
|
@@ -1914,6 +1998,13 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1914
1998
|
onAdvancedFilterSubmit(criteria: Record<string, any>): void;
|
|
1915
1999
|
onAdvancedFilterChange(criteria: Record<string, any>): void;
|
|
1916
2000
|
onAdvancedFilterClear(): void;
|
|
2001
|
+
onQuickFilterChange(event: {
|
|
2002
|
+
id: string;
|
|
2003
|
+
filter: Record<string, unknown>;
|
|
2004
|
+
active: boolean;
|
|
2005
|
+
}): void;
|
|
2006
|
+
private clearQuickFilterRuntimeState;
|
|
2007
|
+
private hasEquivalentFilterCriteria;
|
|
1917
2008
|
private applyAdvancedFilterCriteria;
|
|
1918
2009
|
private setAdvancedFilterCriteria;
|
|
1919
2010
|
private syncAdvancedFilterValueFromCriteria;
|
|
@@ -1929,6 +2020,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
1929
2020
|
private showResetSuccessFeedback;
|
|
1930
2021
|
readonly toolbarColumnVisibilityController: (field: string, visible: boolean) => void;
|
|
1931
2022
|
toggleColumnVisibility(field: string, visible: boolean): void;
|
|
2023
|
+
onDensityChange(density: TableToolbarAppearanceDensity): void;
|
|
1932
2024
|
isCustomizationAvailable(): boolean;
|
|
1933
2025
|
private isAuthoringAssistantAvailable;
|
|
1934
2026
|
openTableSettings(): void;
|
|
@@ -2038,6 +2130,23 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
|
|
|
2038
2130
|
private loadOrVerifyRemoteSchema;
|
|
2039
2131
|
private loadFilterSchemaSnapshot;
|
|
2040
2132
|
private convertFieldToColumn;
|
|
2133
|
+
private usesSchemaColumnProjection;
|
|
2134
|
+
/**
|
|
2135
|
+
* Materializa a projeção efetiva sem promover o JSON da página a fonte de
|
|
2136
|
+
* verdade estrutural. Overrides desconhecidos não criam colunas e `field`
|
|
2137
|
+
* nunca pode ser substituído pelo consumidor.
|
|
2138
|
+
*/
|
|
2139
|
+
private projectSchemaColumns;
|
|
2140
|
+
/**
|
|
2141
|
+
* Converte a configuração materializada usada pelo renderer de volta ao
|
|
2142
|
+
* contrato compacto e persistível. O schema continua sendo a fonte
|
|
2143
|
+
* estrutural; somente ordem/allowlist, diferenças editoriais e colunas sem
|
|
2144
|
+
* correspondente canônico são serializadas.
|
|
2145
|
+
*/
|
|
2146
|
+
private toPortableTableConfig;
|
|
2147
|
+
private diffPortableColumnDefinition;
|
|
2148
|
+
private toPortableColumnDefinition;
|
|
2149
|
+
private arePortableValuesEqual;
|
|
2041
2150
|
private applySchemaFieldPresentationsToExistingColumns;
|
|
2042
2151
|
private applySchemaFieldPresentation;
|
|
2043
2152
|
private applySchemaSemanticCellPresentation;
|
|
@@ -4289,7 +4398,7 @@ declare function serializeTableAuthoringDocument(doc: TableAuthoringDocument): u
|
|
|
4289
4398
|
* Manifesto de authoring canônico para o componente praxis-table.
|
|
4290
4399
|
* Este arquivo define o contrato executável para que agentes de IA editem tabelas.
|
|
4291
4400
|
*
|
|
4292
|
-
* @version 2.2.
|
|
4401
|
+
* @version 2.2.3
|
|
4293
4402
|
* @status COMPLIANT - Alinhado com o contrato v2 e TableConfig canônico.
|
|
4294
4403
|
*/
|
|
4295
4404
|
declare const PRAXIS_TABLE_AUTHORING_MANIFEST: ComponentAuthoringManifest;
|