@praxisui/table 9.0.61 → 9.0.63

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.
@@ -1,6 +1,6 @@
1
1
  import { Observable, firstValueFrom } from 'rxjs';
2
2
  import { withAuthoringScopePolicy } from '@praxisui/ai';
3
- import { af as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-Dc_qrYSl.mjs';
3
+ import { af as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-CcSGCtum.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 { L as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, n as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, $ as coerceTableComponentEditPlans, a1 as compileTableComponentEditPlans, Q as TASK_PRESETS, a6 as getTableComponentEditPlanCapabilities, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, K as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-Dc_qrYSl.mjs';
4
+ import { L as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, n as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, $ as coerceTableComponentEditPlans, a1 as compileTableComponentEditPlans, Q as TASK_PRESETS, a6 as getTableComponentEditPlanCapabilities, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, K as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-CcSGCtum.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_AUTHORING_MANIFEST, l as PRAXIS_FILTER_COMPONENT_METADATA, m as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, n as PRAXIS_TABLE_AUTHORING_MANIFEST, o as PRAXIS_TABLE_COMPONENT_METADATA, p as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, q as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, r as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, s as PraxisFilter, t as PraxisFilterWidgetConfigEditor, u as PraxisTable, v as PraxisTableConfigEditor, w as PraxisTableInlineAuthoringEditorComponent, x as PraxisTableToolbar, y as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, z as TABLE_COMPONENT_AI_CAPABILITIES, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_KIND, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TASK_PRESETS, R as TableDefaultsProvider, U as TableRulesEditorComponent, V as ToolbarActionsEditorComponent, W as ValueMappingEditorComponent, X as VisualFormulaBuilderComponent, Y as analyticsComparisonMetricField, Z as buildTableApplyPlan, _ as coerceTableComponentEditPlan, $ as coerceTableComponentEditPlans, a0 as compileTableComponentEditPlan, a1 as compileTableComponentEditPlans, a2 as createTableAuthoringDocument, a3 as getActionId, a4 as getEnum, a5 as getTableCapabilities, a6 as getTableComponentEditPlanCapabilities, a7 as isTableRendererSupportedByRichContentP0, a8 as mapTableRendererToRichContentP0, a9 as normalizeTableAuthoringDocument, aa as parseLegacyOrTableDocument, ab as providePraxisFilterMetadata, ac as providePraxisTableMetadata, ad as providePraxisTableToolbarAppearance, ae as serializeTableAuthoringDocument, ag as toCanonicalTableConfig, ah as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-Dc_qrYSl.mjs';
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_AUTHORING_MANIFEST, l as PRAXIS_FILTER_COMPONENT_METADATA, m as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, n as PRAXIS_TABLE_AUTHORING_MANIFEST, o as PRAXIS_TABLE_COMPONENT_METADATA, p as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, q as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, r as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, s as PraxisFilter, t as PraxisFilterWidgetConfigEditor, u as PraxisTable, v as PraxisTableConfigEditor, w as PraxisTableInlineAuthoringEditorComponent, x as PraxisTableToolbar, y as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, z as TABLE_COMPONENT_AI_CAPABILITIES, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_KIND, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TASK_PRESETS, R as TableDefaultsProvider, U as TableRulesEditorComponent, V as ToolbarActionsEditorComponent, W as ValueMappingEditorComponent, X as VisualFormulaBuilderComponent, Y as analyticsComparisonMetricField, Z as buildTableApplyPlan, _ as coerceTableComponentEditPlan, $ as coerceTableComponentEditPlans, a0 as compileTableComponentEditPlan, a1 as compileTableComponentEditPlans, a2 as createTableAuthoringDocument, a3 as getActionId, a4 as getEnum, a5 as getTableCapabilities, a6 as getTableComponentEditPlanCapabilities, a7 as isTableRendererSupportedByRichContentP0, a8 as mapTableRendererToRichContentP0, a9 as normalizeTableAuthoringDocument, aa as parseLegacyOrTableDocument, ab as providePraxisFilterMetadata, ac as providePraxisTableMetadata, ad as providePraxisTableToolbarAppearance, ae as serializeTableAuthoringDocument, ag as toCanonicalTableConfig, ah as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-CcSGCtum.mjs';
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "9.0.61",
3
+ "version": "9.0.63",
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.61",
10
- "@praxisui/core": "^9.0.61",
11
- "@praxisui/dynamic-fields": "^9.0.61",
12
- "@praxisui/dynamic-form": "^9.0.61",
13
- "@praxisui/metadata-editor": "^9.0.61",
14
- "@praxisui/rich-content": "^9.0.61",
15
- "@praxisui/settings-panel": "^9.0.61",
16
- "@praxisui/table-rule-builder": "^9.0.61",
9
+ "@praxisui/ai": "^9.0.63",
10
+ "@praxisui/core": "^9.0.63",
11
+ "@praxisui/dynamic-fields": "^9.0.63",
12
+ "@praxisui/dynamic-form": "^9.0.63",
13
+ "@praxisui/metadata-editor": "^9.0.63",
14
+ "@praxisui/rich-content": "^9.0.63",
15
+ "@praxisui/settings-panel": "^9.0.63",
16
+ "@praxisui/table-rule-builder": "^9.0.63",
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.61",
21
+ "@praxisui/dialog": "^9.0.63",
22
22
  "rxjs": "~7.8.0"
23
23
  },
24
24
  "dependencies": {
@@ -265,6 +265,15 @@ type ActionBarNode = {
265
265
  | `meta` | object | No | `{}` | Active | Metadados de versao/hash/contexto da configuracao. |
266
266
  | `columns[]` | array | Yes | `[]` | Active | Definicao estrutural principal da tabela. |
267
267
  | `behavior` | object | No | component-defaults | Active | Regras de paginação, sort, filter, selection, expansion, loading. |
268
+ | `behavior.loading.type` | `spinner \| skeleton \| progress` | No | `skeleton` | Active | Seleciona um dos três indicadores materializados pelo runtime. O valor legado `custom`, sem renderer local canônico, foi removido durante o beta. |
269
+ | `behavior.loading.position` | `overlay \| inline \| replace` | No | `replace` | Active | Controla se o indicador cobre, acompanha ou substitui a superfície de dados. |
270
+ | `behavior.loading.text` | string | No | `Carregando dados...` | Active | Mensagem acessível e visual apresentada durante a leitura. |
271
+ | `behavior.loading.delay` | number | No | `0` | Active | Adia apenas o indicador visual; estado, bloqueio e timeout começam com o request. |
272
+ | `behavior.loading.showForQuickOperations` | boolean | No | `false` | Active | Quando `true`, ignora o atraso visual e mostra o indicador imediatamente. |
273
+ | `behavior.loading.requestTimeoutMs` | number | No | `30000` | Active | Encerra requests de schema, coleção REST ou `analyticsProjection` que excedem o SLA e apresenta erro recuperável; `0` delega a política ao host. |
274
+ | `behavior.loading.allowCancel` | boolean | No | `true` | Active | Em schema, coleção REST e `analyticsProjection`, exibe cancelamento acessível, aborta o transporte por unsubscribe e preserva dados estáveis já renderizados. |
275
+ | `behavior.loading.skeleton.rows` | number | No | `3` | Active | Quantidade de linhas visuais, normalizada pelo runtime entre 1 e 12. |
276
+ | `behavior.loading.skeleton.animated` | boolean | No | `true` | Active | Controla a animação do skeleton. |
268
277
  | `appearance` | object | No | component-defaults | Active | Densidade, responsividade, tokens e comportamento visual. |
269
278
  | `toolbar` | object | No | component-defaults | Active | Ações globais, busca e controles de topo. |
270
279
  | `actions` | object | No | component-defaults | Active | Ações por linha/lote e integrações de comando. |
@@ -471,7 +480,7 @@ degraded filter.
471
480
  | `schemaStatusChange` | `{ outdated, serverHash?, lastVerifiedAt?, trigger?, tableId? }` | Verificação de versão de schema concluída. | Partial | Usado para notificação de drift entre runtime e servidor. |
472
481
  | `configChange` | `TableConfig` | Configuração materializada pelo runtime/editor/assistente. | Active | Permite que o host sincronize mudanças feitas por authoring em tempo de execução. |
473
482
  | `metadataChange` | `{ trigger, meta, tableId? }` | Metadados operacionais atualizados pelo runtime/editor. | Partial | Emite contexto de trigger e a carga corrente de `config.meta`. |
474
- | `loadingStateChange` | `LoadingState` | Mudança de estado (`config/schema/data/render`). | Active | Emitido por `emitLoadingState()`. |
483
+ | `loadingStateChange` | `LoadingState` | Mudança de estado (`config/schema/data/render`), incluindo `loading`, `success`, `error` e `cancelled`. | Active | Unifica schema, coleção REST e `analyticsProjection`; timeout permanece `error` com causa preservada. |
475
484
 
476
485
  ### External side channels
477
486
 
@@ -481,6 +490,9 @@ degraded filter.
481
490
  | `CONNECTION_STORAGE` | bidirectional | `loadConnection/saveConnection` | fail-open | Persistência de `resourcePath` para quick-connect. |
482
491
  | `SettingsPanelService` | bidirectional | `open(...).applied$/saved$` | fail-open | Canal de edição em runtime (quick connect/editor). |
483
492
  | `PRAXIS_TABLE_DETAIL_RESOURCE_RESOLVER` | outbound call | Angular DI token (`TableDetailResourceResolver`) | fail-closed | Resolução externa e governada de detail schema por `resource`; o host deve fornecer o token por DI. |
493
+ | `AnalyticsTableStatsApiService.execute` | outbound call | `Observable<AnalyticsTableRow[]>` | fail-closed | A subscription é proprietária do transporte HTTP. `unsubscribe`, supersessão, timeout e destruição abortam o request em andamento; use `firstValueFrom(...)` apenas na borda de um consumidor que deliberadamente precise de Promise. |
494
+
495
+ `resourcePath` mantém precedência canônica sobre `analyticsProjection`: quando ambos estão presentes, o runtime cancela o transporte analítico e materializa somente a coleção REST.
484
496
 
485
497
  ### Host/runtime dependencies
486
498
 
@@ -492,7 +504,7 @@ degraded filter.
492
504
  | `ASYNC_CONFIG_STORAGE` | Yes | browser/dev/prod | persistência | Guarda configurações por escopo de componente. |
493
505
  | `CONNECTION_STORAGE` | Yes | browser/dev/prod | persistência de conexão | Mantém vínculo `tableId -> resourcePath`. |
494
506
  | `LoadingOrchestrator` | Yes | browser/dev/prod/ssr | estado de loading | Coordena bloqueio/feedback por fase. |
495
- | `PRAXIS_LOADING_RENDERER` | Optional | browser/dev/prod/ssr | render de loading custom | Quando ausente, fluxo segue sem renderizador dedicado. |
507
+ | `PRAXIS_LOADING_RENDERER` | Optional | browser/dev/prod/ssr | renderer global de infraestrutura | É independente de `behavior.loading.type`: hoje a Table o usa no lifecycle de montagem, enquanto os indicadores de schema/coleção são materializados localmente. |
496
508
 
497
509
  ## Coverage matrix
498
510
 
@@ -1239,6 +1251,7 @@ Em `scroll-auto`, o viewport e uma regiao focalizavel por teclado para que o scr
1239
1251
 
1240
1252
  ## Compatibility and migration notes
1241
1253
 
1254
+ - No corte beta que unificou o lifecycle operacional, consumidores que chamavam diretamente os helpers públicos do componente devem migrar `canCancelRemoteLoad()` para `canCancelLoad()` e `cancelRemoteLoad()` para `cancelLoad()`. Não há aliases paralelos.
1242
1255
  - Paths e aliases legados continuam aceitos para compatibilidade (`behavior.virtualScroll.*`, chaves legadas de header em `actions.row.*`), mas novos contratos devem usar caminhos canonicos atuais.
1243
1256
  - O side-channel de overrides CRUD (`crud-overrides:<componentKeyId>`) nao faz parte do `TableConfig`; mantenha migracao/backup dessa chave separado do payload principal.
1244
1257
  - Para regex em regras, a forma canonica persistida e infixa (`field matches value`); `matches(field, value)` permanece como legado suportado.
@@ -1,7 +1,7 @@
1
1
  import * as _praxisui_core from '@praxisui/core';
2
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
- import { InjectionToken, AfterViewInit, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterContentInit, Injector, Type } from '@angular/core';
4
+ import { InjectionToken, AfterViewInit, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterViewChecked, AfterContentInit, Injector, Type } from '@angular/core';
5
5
  import { ActivatedRoute } from '@angular/router';
6
6
  import { SafeHtml } from '@angular/platform-browser';
7
7
  import { MatTable, MatTableDataSource } from '@angular/material/table';
@@ -12,13 +12,14 @@ import { MatMenuTrigger } from '@angular/material/menu';
12
12
  import { MatSnackBar } from '@angular/material/snack-bar';
13
13
  import { SelectionModel } from '@angular/cdk/collections';
14
14
  import { CdkDragDrop, CdkDragEnd, CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';
15
- import { BehaviorSubject, Subscription, Observable } from 'rxjs';
15
+ import { Observable, BehaviorSubject, Subscription } from 'rxjs';
16
16
  import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
17
17
  import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
18
18
  import { MatDialog } from '@angular/material/dialog';
19
19
  import { PdxCollectionSearchComponent, OptionDisplayResolverService, BaseDynamicFieldComponent } from '@praxisui/dynamic-fields';
20
20
  import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
21
21
  import { PraxisDialog } from '@praxisui/dialog';
22
+ import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
22
23
  import { PraxisAssistantVoiceInputMode, PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantRecommendedIntent, PraxisAssistantShellMessage } from '@praxisui/ai';
23
24
  import { HttpClient } from '@angular/common/http';
24
25
  import { MatTabChangeEvent } from '@angular/material/tabs';
@@ -1094,7 +1095,7 @@ declare class AnalyticsTableStatsApiService {
1094
1095
  private readonly apiUrl;
1095
1096
  private readonly statsBuilder;
1096
1097
  constructor(http: HttpClient, apiUrl: ApiUrlConfig);
1097
- execute(projection: PraxisAnalyticsProjection, queryContext?: PraxisDataQueryContext | null): Promise<AnalyticsTableRow[]>;
1098
+ execute(projection: PraxisAnalyticsProjection, queryContext?: PraxisDataQueryContext | null): Observable<AnalyticsTableRow[]>;
1098
1099
  private toTableRows;
1099
1100
  private resolveTimeSeriesCategory;
1100
1101
  private resolveBucketCategory;
@@ -1247,7 +1248,7 @@ type ExpansionDetailInlineRendererView = {
1247
1248
  component: Type<unknown>;
1248
1249
  inputs: Record<string, unknown>;
1249
1250
  };
1250
- declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterContentInit, OnDestroy {
1251
+ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterViewChecked, AfterContentInit, OnDestroy {
1251
1252
  private cdr;
1252
1253
  private settingsPanel;
1253
1254
  private crudService;
@@ -1352,9 +1353,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1352
1353
  collectionLinksChange: EventEmitter<RestApiLinks | null>;
1353
1354
  selectionChange: EventEmitter<any>;
1354
1355
  private latestLoadingState;
1356
+ private loadingIndicatorVisible;
1357
+ private loadingIndicatorDelayHandle;
1355
1358
  paginator: MatPaginator;
1356
1359
  sort: MatSort;
1357
1360
  materialTable?: MatTable<any>;
1361
+ virtualScrollViewport?: CdkVirtualScrollViewport;
1358
1362
  scrollViewport?: ElementRef<HTMLElement>;
1359
1363
  internalFilter?: PraxisFilter;
1360
1364
  toolbar: PraxisTableToolbar;
@@ -1378,6 +1382,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1378
1382
  columnReorderStatusMessage: string;
1379
1383
  columnReorderVisualStatusMessage: string;
1380
1384
  columnResizeStatusMessage: string;
1385
+ selectionStatusMessage: string;
1381
1386
  exportBusy: boolean;
1382
1387
  exportStatusMessage: string;
1383
1388
  hasHorizontalOverflow: boolean;
@@ -1386,6 +1391,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1386
1391
  private columnReorderStatusTimer;
1387
1392
  private columnReorderVisualStatusTimer;
1388
1393
  private columnResizeStatusTimer;
1394
+ private selectionStatusTimer;
1395
+ private keyboardFocusedRowIdentity;
1396
+ private pendingKeyboardFocusIdentity;
1389
1397
  private columnReorderUndoSubscription;
1390
1398
  private columnRuntimeMutationOperationCounter;
1391
1399
  private latestColumnRuntimeMutationOperationId;
@@ -1410,6 +1418,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1410
1418
  private remoteSchemaLoadSequence;
1411
1419
  private remoteDataLoadSequence;
1412
1420
  private analyticsLoadSequence;
1421
+ private activeRemoteSchemaLoadSubscription;
1422
+ private activeRemoteDataLoadSubscription;
1423
+ private activeAnalyticsLoadSubscription;
1424
+ private cancelledOperationalLoadPhase;
1425
+ private operationalLoadFailureKind;
1413
1426
  private uncontrolledExpandedRowKeys;
1414
1427
  private readonly expansionOpaqueRefCacheLimit;
1415
1428
  private expansionOpaqueRefByRowKey;
@@ -1526,16 +1539,29 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1526
1539
  shouldShowNoDataState(): boolean;
1527
1540
  shouldShowLoadingSurface(): boolean;
1528
1541
  shouldShowRefreshingState(): boolean;
1542
+ shouldReplaceDataWithLoading(): boolean;
1543
+ getLoadingIndicatorType(): 'spinner' | 'skeleton' | 'progress';
1544
+ getLoadingIndicatorPosition(): 'overlay' | 'inline' | 'replace';
1529
1545
  getLoadingSurfaceMessage(): string;
1546
+ getLoadingSkeletonRows(): number[];
1547
+ isLoadingSkeletonAnimated(): boolean;
1530
1548
  getNoDataStateTitle(): string;
1531
1549
  getNoDataStateDescription(): string | undefined;
1532
1550
  getTableSettingsLabel(): string;
1533
1551
  getScrollViewportAriaLabel(): string;
1552
+ getTableAriaLabel(): string;
1534
1553
  getTableErrorTitle(): string;
1535
1554
  getTableErrorMessage(): string;
1536
1555
  getTableErrorRetryLabel(): string;
1537
1556
  getTableSelectResourceLabel(): string;
1538
1557
  isErrorRetryInProgress(): boolean;
1558
+ canCancelLoad(): boolean;
1559
+ cancelLoad(): void;
1560
+ shouldShowCancelledState(): boolean;
1561
+ getCancelledLoadTitle(): string;
1562
+ getCancelledLoadMessage(): string;
1563
+ getCancelLoadLabel(): string;
1564
+ retryCancelledLoad(): void;
1539
1565
  getTableSettingsTooltip(): string;
1540
1566
  getDisconnectLabel(): string;
1541
1567
  getDisconnectTooltip(): string;
@@ -1779,8 +1805,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1779
1805
  private resolveAiAssistantBadge;
1780
1806
  private resolveAiAssistantIcon;
1781
1807
  private emitLoadingState;
1808
+ private shouldExposeLoadingIndicator;
1809
+ private updateLoadingIndicatorVisibility;
1782
1810
  private hasResolvedRemoteDataLoad;
1783
1811
  isTableDataLoading(): boolean;
1812
+ private hasActiveOperationalLoad;
1784
1813
  private getRenderedRowCount;
1785
1814
  private hasActiveDataFilters;
1786
1815
  private hasActiveEmptyStateFilters;
@@ -1799,12 +1828,21 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1799
1828
  ngOnInit(): Promise<void>;
1800
1829
  ngAfterContentInit(): void;
1801
1830
  ngOnChanges(changes: SimpleChanges): void;
1831
+ /**
1832
+ * Angular delivers the initial resource, config and query inputs before
1833
+ * ngAfterContentInit. That lifecycle hook owns the first remote load after
1834
+ * pagination defaults have been applied. Fetching here for a first change
1835
+ * would issue a second request with the constructor page size and create a
1836
+ * race with the configured request.
1837
+ */
1838
+ private shouldFetchRemoteDataForQueryChanges;
1802
1839
  private isDebug;
1803
1840
  private connectionKey;
1804
1841
  private saveConnection;
1805
1842
  private inputsKey;
1806
1843
  disconnect(): void;
1807
1844
  ngAfterViewInit(): void;
1845
+ ngAfterViewChecked(): void;
1808
1846
  onPageChange(event: PageEvent): void;
1809
1847
  onSortChange(event: Sort): void;
1810
1848
  onRowClicked(row: any, index: number, event?: MouseEvent): void;
@@ -2220,6 +2258,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2220
2258
  */
2221
2259
  private verifyServerSchemaVersion;
2222
2260
  private loadSchema;
2261
+ private applyOperationalRequestTimeout;
2262
+ private isOperationalRequestTimeout;
2263
+ private cancelActiveAnalyticsLoadForSupersession;
2223
2264
  private loadOrVerifyRemoteSchema;
2224
2265
  private loadFilterSchemaSnapshot;
2225
2266
  private convertFieldToColumn;
@@ -2658,6 +2699,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2658
2699
  getVirtualTableWidthStyle(): string | null;
2659
2700
  isSelectionColumnEnabled(): boolean;
2660
2701
  isRowClickSelectable(): boolean;
2702
+ getRowTabIndex(row: any, index: number): number | null;
2703
+ onRowFocused(row: any, index: number): void;
2704
+ onRowKeydown(event: KeyboardEvent, row: any, index: number): void;
2705
+ private reconcileKeyboardFocusAfterDataChange;
2706
+ private hasKeyboardRowFocus;
2707
+ private restorePendingKeyboardRowFocus;
2661
2708
  canSelectAll(): boolean;
2662
2709
  masterToggle(): void;
2663
2710
  isAllSelected(): boolean;
@@ -2666,6 +2713,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2666
2713
  getMasterSelectionAriaLabel(): string;
2667
2714
  private selectRowFromUserInteraction;
2668
2715
  private emitSelectionChange;
2716
+ private publishSelectionStatus;
2717
+ private getAccessibleRowLabel;
2718
+ getKeyboardRowIdentity(row: any, index: number): string;
2669
2719
  private materializeRecordIdentity;
2670
2720
  private resolveHostIdentityIdField;
2671
2721
  private reportResourceIdentityDiagnostics;
@@ -3274,7 +3324,7 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3274
3324
  }
3275
3325
 
3276
3326
  interface BehaviorConfigChange {
3277
- type: 'pagination' | 'sorting' | 'filtering' | 'selection' | 'dragging' | 'interaction' | 'expansion' | 'general';
3327
+ type: 'pagination' | 'sorting' | 'filtering' | 'selection' | 'dragging' | 'interaction' | 'loading' | 'expansion' | 'general';
3278
3328
  property: string;
3279
3329
  value: any;
3280
3330
  fullConfig: TableConfig;
@@ -4498,7 +4548,7 @@ declare function serializeTableAuthoringDocument(doc: TableAuthoringDocument): u
4498
4548
  * Manifesto de authoring canônico para o componente praxis-table.
4499
4549
  * Este arquivo define o contrato executável para que agentes de IA editem tabelas.
4500
4550
  *
4501
- * @version 2.2.3
4551
+ * @version 2.2.5
4502
4552
  * @status COMPLIANT - Alinhado com o contrato v2 e TableConfig canônico.
4503
4553
  */
4504
4554
  declare const PRAXIS_TABLE_AUTHORING_MANIFEST: ComponentAuthoringManifest;