@praxisui/table 10.0.0-rc.3 → 10.0.0-rc.30

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,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, AfterViewInit, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterViewChecked, AfterContentInit, Injector, Type } from '@angular/core';
2
+ import { InjectionToken, AfterViewInit, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterViewChecked, AfterContentInit, TemplateRef, Injector, Type } from '@angular/core';
3
3
  import * as _praxisui_core from '@praxisui/core';
4
- import { TableToolbarAppearanceConfig, TableConfig, TableToolbarAppearanceDensity, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, ToolbarAction as ToolbarAction$1, GlobalConfigService, FilterPresentationConfig, 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, TableDetailListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, RichContentDocument, RichBlockHostCapabilities, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, ResourceCapabilityOperation, JsonLogicExpression, PraxisPresentationVisualizationKind, PraxisTableCellVisualizationConstraint, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, ResourceQuickConnectComponent, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
4
+ import { BulkExecutionContract, ResourceDiscoveryRequestOptions, BulkWireId, RestApiLinks, BulkSyncSession, BulkFieldChange, TableToolbarAppearanceConfig, TableConfig, TableToolbarAppearanceDensity, ToolbarActionEvent, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, ToolbarAction as ToolbarAction$1, GlobalConfigService, FilterPresentationConfig, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, DynamicDataRecord, MaterializedResourceIdentity, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, EnterpriseRuntimeContextService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, RichContentDocument, RichBlockHostCapabilities, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, ResourceCapabilityOperation, JsonLogicExpression, PraxisPresentationVisualizationKind, PraxisTableCellVisualizationConstraint, PraxisPresentationVisualizationThreshold, PraxisPresentationVisualizationTone, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, ResourceQuickConnectComponent, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog, TableDrawerConfig, PraxisAnalyticalDrawerTab, PraxisPresentationVisualizationConfig, PraxisAnalyticalDrawerSchema, SafeExpressionEvaluator, PraxisComputedFieldsConfig, PraxisComputedFieldDefinition } from '@praxisui/core';
5
+ export { DynamicDataCollection, DynamicDataRecord, DynamicRecordMeta, ResourceLinkItem, ResourceLinks, createDynamicRecord, extractRecordId, isDynamicDataRecord, resolveDataField } from '@praxisui/core';
5
6
  import { ActivatedRoute } from '@angular/router';
6
7
  import { SafeHtml } from '@angular/platform-browser';
7
8
  import { MatTable, MatTableDataSource } from '@angular/material/table';
@@ -39,6 +40,32 @@ interface TableCollectionOutcome {
39
40
  }>;
40
41
  }
41
42
 
43
+ interface TableBulkSyncSelection {
44
+ id: BulkWireId;
45
+ links: RestApiLinks;
46
+ }
47
+ /** Detached, one-invocation context owned by the table. */
48
+ interface TableBulkSyncContext {
49
+ resourcePath: string;
50
+ resourceKey: string;
51
+ tableId: string;
52
+ identityPath: string;
53
+ contract: BulkExecutionContract;
54
+ options?: ResourceDiscoveryRequestOptions;
55
+ selection: readonly TableBulkSyncSelection[];
56
+ }
57
+ /** Private, table-owned custody for one evaluated intent in this component instance. */
58
+ interface TableBulkSyncHandle {
59
+ context: TableBulkSyncContext;
60
+ session: BulkSyncSession;
61
+ confirmationKey: string | null;
62
+ /** Await an already dispatched session request before a remount authorizes projections. */
63
+ pendingSessionWork?: Promise<unknown> | null;
64
+ requestedChanges: readonly BulkFieldChange[] | null;
65
+ enterpriseIdentity: string | undefined;
66
+ operationalIdentity: string;
67
+ }
68
+
42
69
  interface ActionLike {
43
70
  action?: string;
44
71
  id?: string;
@@ -51,6 +78,23 @@ interface ActionLike {
51
78
  }
52
79
  declare function getActionId(action: ActionLike): string;
53
80
 
81
+ interface PraxisTableCrossFilterItem {
82
+ id: string;
83
+ field: string;
84
+ label: string;
85
+ value: unknown;
86
+ prefix?: string;
87
+ rawFilter?: Record<string, unknown>;
88
+ }
89
+ interface PraxisTableQueryContextClearEvent {
90
+ field?: string;
91
+ clearedFields?: string[];
92
+ clearedFilter?: PraxisTableCrossFilterItem;
93
+ remainingFilters?: Record<string, unknown>;
94
+ remainingFilterCount?: number;
95
+ tableId?: string;
96
+ source?: 'toolbar-chip' | 'quick-filter' | 'advanced-filter';
97
+ }
54
98
  declare const PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS: Record<string, TableToolbarAppearanceConfig>;
55
99
  declare const PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE: InjectionToken<TableToolbarAppearanceConfig>;
56
100
  declare const PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS: InjectionToken<Record<string, TableToolbarAppearanceConfig>>;
@@ -86,8 +130,11 @@ declare class PraxisTableToolbar implements AfterViewInit, OnDestroy {
86
130
  evaluationContext: Record<string, any> | null;
87
131
  activeQuickFilterId: string | null;
88
132
  activeDensity: TableToolbarAppearanceDensity | null;
133
+ activeCrossFilters: PraxisTableCrossFilterItem[];
89
134
  /** @internal Used by PraxisTable so toolbar menu decisions materialize through the table runtime. */
90
135
  columnVisibilityController?: (field: string, visible: boolean) => void;
136
+ readonly clearCrossFilter: EventEmitter<PraxisTableCrossFilterItem>;
137
+ readonly clearAllCrossFilters: EventEmitter<void>;
91
138
  toolbarAction: EventEmitter<Pick<ToolbarActionEvent<Record<string, unknown>>, "action" | "actionConfig" | "focusOrigin">>;
92
139
  exportAction: EventEmitter<{
93
140
  format: string;
@@ -152,6 +199,7 @@ declare class PraxisTableToolbar implements AfterViewInit, OnDestroy {
152
199
  filter: Record<string, unknown>;
153
200
  icon?: string;
154
201
  }>;
202
+ private normalizeQuickFilterExpression;
155
203
  shouldShowQuickFilters(): boolean;
156
204
  getQuickFiltersLabel(): string;
157
205
  getQuickFilterLabel(filter: {
@@ -163,6 +211,15 @@ declare class PraxisTableToolbar implements AfterViewInit, OnDestroy {
163
211
  id: string;
164
212
  filter: Record<string, unknown>;
165
213
  }): void;
214
+ hasActiveCrossFilters(): boolean;
215
+ getActiveCrossFilters(): PraxisTableCrossFilterItem[];
216
+ getCrossFiltersAriaLabel(): string;
217
+ getCrossFilterDefaultPrefix(): string;
218
+ getClearCrossFilterAriaLabel(filter: PraxisTableCrossFilterItem): string;
219
+ getClearCrossFilterTooltip(filter: PraxisTableCrossFilterItem): string;
220
+ getClearAllCrossFiltersLabel(): string;
221
+ onClearCrossFilter(filter: PraxisTableCrossFilterItem): void;
222
+ onClearAllCrossFilters(): void;
166
223
  isDensityToggleEnabled(): boolean;
167
224
  getDensityToggleLabel(): string;
168
225
  getDensityOptions(): TableToolbarAppearanceDensity[];
@@ -262,7 +319,7 @@ declare class PraxisTableToolbar implements AfterViewInit, OnDestroy {
262
319
  private sortActions;
263
320
  getExportIcon(format: string): string;
264
321
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableToolbar, [null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
265
- 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>;
322
+ 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; }; "activeCrossFilters": { "alias": "activeCrossFilters"; "required": false; }; "columnVisibilityController": { "alias": "columnVisibilityController"; "required": false; }; }, { "clearCrossFilter": "clearCrossFilter"; "clearAllCrossFilters": "clearAllCrossFilters"; "toolbarAction": "toolbarAction"; "exportAction": "exportAction"; "columnVisibilityToggle": "columnVisibilityToggle"; "quickFilterChange": "quickFilterChange"; "densityChange": "densityChange"; }, never, ["[advancedFilter]", "[toolbar]", "[end-actions]"], true, never>;
266
323
  }
267
324
 
268
325
  type ColumnDataType$1 = 'date' | 'number' | 'currency' | 'percentage' | 'string' | 'boolean' | 'custom';
@@ -422,6 +479,8 @@ type FilterConfig = {
422
479
  /** User-selected extra field ids to show before pinned always-visible */
423
480
  selectedFieldIds?: string[];
424
481
  showAdvanced?: boolean;
482
+ showAddButton?: boolean;
483
+ showFilterSettings?: boolean;
425
484
  mode?: 'filter';
426
485
  changeDebounceMs?: number;
427
486
  allowSaveTags?: boolean;
@@ -644,6 +703,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
644
703
  changeDebounceMs: number;
645
704
  /** Controla a exibição do botão de preferências dentro do filtro */
646
705
  showFilterSettings: boolean;
706
+ private hostShowFilterSettings?;
647
707
  /** Controla a exibição do botão de filtro avançado */
648
708
  showAdvancedButton: boolean;
649
709
  /** Projection of FilterConfig.presentation for standalone and embedded hosts. */
@@ -655,6 +715,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
655
715
  get advancedActionDisplay(): string;
656
716
  /** Controla a exibição do botão de adicionar campos */
657
717
  showAddButton: boolean;
718
+ private hostShowAddButton?;
658
719
  /** Controla a exibição do botão de limpar filtros */
659
720
  showClearButton: boolean;
660
721
  /** Controla a exibição do botão de pesquisar/aplicar filtros em fluxos manuais. */
@@ -866,6 +927,8 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
866
927
  private areMetadataOverrideMapsEqual;
867
928
  /** Force-sync settings coming from parent table config updates. */
868
929
  applyExternalSettings(cfg?: Partial<FilterConfig>): void;
930
+ private activeFilterSettingsRef?;
931
+ private activeFieldEditorRef?;
869
932
  openSettings(): void;
870
933
  createTag(label?: string): void;
871
934
  renameTag(tag: FilterTag, label?: string): void;
@@ -1062,6 +1125,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
1062
1125
  private normalizeFilterFieldValue;
1063
1126
  private getFilterFieldMetaByName;
1064
1127
  private isEntityLookupFilterField;
1128
+ private isIncompleteInlineDateRangeValue;
1065
1129
  private isEffectivelyEmptyFilterValue;
1066
1130
  private syncFormsToDto;
1067
1131
  private updateDisplayedTags;
@@ -1134,6 +1198,43 @@ declare class AnalyticsTableStatsApiService {
1134
1198
  static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableStatsApiService>;
1135
1199
  }
1136
1200
 
1201
+ /**
1202
+ * Canonical row click event interface emitted by PraxisTable and PraxisCrud.
1203
+ * Provides typed access to the underlying record, row index, original DOM mouse event,
1204
+ * resource identity, and selection/expansion state.
1205
+ */
1206
+ interface RowClickEvent<T = DynamicDataRecord> {
1207
+ row: T;
1208
+ index: number;
1209
+ originalEvent?: MouseEvent;
1210
+ resourceIdentity?: MaterializedResourceIdentity | string | null;
1211
+ selectionState?: {
1212
+ isSelected: boolean;
1213
+ isExpanded: boolean;
1214
+ };
1215
+ }
1216
+ /**
1217
+ * Event payload emitted when a table row is double clicked.
1218
+ */
1219
+ interface RowDoubleClickEvent<T = DynamicDataRecord> {
1220
+ action?: string;
1221
+ row: T;
1222
+ }
1223
+ /**
1224
+ * Event payload emitted when an analytical drawer is opened from a table row.
1225
+ */
1226
+ interface DrawerOpenEvent<T = DynamicDataRecord> {
1227
+ row: T;
1228
+ tabId?: string;
1229
+ }
1230
+ /**
1231
+ * Event payload emitted when row selections change in the table.
1232
+ */
1233
+ interface RowSelectionChangeEvent<T = DynamicDataRecord> {
1234
+ selected: T[];
1235
+ source?: 'row' | 'header' | 'programmatic';
1236
+ }
1237
+
1137
1238
  interface TableAiNavigationDestinationContext {
1138
1239
  id?: string;
1139
1240
  path: string;
@@ -1261,7 +1362,7 @@ type RuntimeRowAction = {
1261
1362
  __praxisDiscoveryPending?: boolean;
1262
1363
  };
1263
1364
  type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
1264
- type ExpansionDetailResolvedSource = 'inline' | 'resource' | 'resourcePath' | 'hypermedia' | 'fallback';
1365
+ type ExpansionDetailResolvedSource = 'inline' | 'resource' | 'resourcePath' | 'hypermedia' | 'fallback' | 'schema';
1265
1366
  type ExpansionDetailViewState = {
1266
1367
  status: ExpansionDetailRuntimeStatus;
1267
1368
  schema: Record<string, unknown> | null;
@@ -1312,11 +1413,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1312
1413
  private _crudOperationResolver?;
1313
1414
  private readonly runtimeObservationRegistry;
1314
1415
  private readonly detailInlineRenderers;
1416
+ private readonly drawerRegistry;
1315
1417
  private collectionLinks;
1316
1418
  private collectionCapabilities;
1317
1419
  private collectionCapabilitiesRequestHref;
1318
1420
  private collectionCapabilitiesResolvedHref;
1319
1421
  private collectionCapabilitiesRequestSeq;
1422
+ bulkSyncHandle: TableBulkSyncHandle | null;
1423
+ private readonly bulkClient;
1424
+ private readonly bulkSessions;
1320
1425
  private readonly detailInlineNodeResolvers;
1321
1426
  private readonly detailResourceResolver;
1322
1427
  private runtimeObservationRegistration;
@@ -1338,7 +1443,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1338
1443
  autoOpenSettingsOnOutdated: boolean;
1339
1444
  crudContext: any;
1340
1445
  filterCriteria: Record<string, any>;
1446
+ filterTeleport: boolean;
1447
+ widgetId?: string;
1448
+ filterBarTemplate?: TemplateRef<unknown>;
1449
+ get filterTemplate(): TemplateRef<unknown> | undefined;
1450
+ private readonly widgetEventBus;
1341
1451
  queryContext: PraxisDataQueryContextBridge | null;
1452
+ readonly queryContextClear: EventEmitter<PraxisTableQueryContextClearEvent>;
1453
+ readonly queryContextChange: EventEmitter<PraxisDataQueryContextBridge | null>;
1454
+ activeCrossFilters: PraxisTableCrossFilterItem[];
1342
1455
  aiContext: TableAiContext | null;
1343
1456
  aiAssistantVoiceInputMode: PraxisAssistantVoiceInputMode;
1344
1457
  aiAssistantVoiceLanguage: string;
@@ -1352,10 +1465,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1352
1465
  private advancedFilterMetadataOverridesCacheKey;
1353
1466
  private advancedFilterMetadataOverridesCacheSource?;
1354
1467
  private advancedFilterMetadataOverridesCache?;
1355
- rowClick: EventEmitter<any>;
1468
+ rowClick: EventEmitter<RowClickEvent<DynamicDataRecord>>;
1356
1469
  widgetEvent: EventEmitter<any>;
1357
1470
  resourceEvent: EventEmitter<PraxisResourceEvent<unknown>>;
1358
- rowDoubleClick: EventEmitter<any>;
1471
+ rowDoubleClick: EventEmitter<RowDoubleClickEvent<DynamicDataRecord>>;
1359
1472
  rowExpansionChange: EventEmitter<RowExpansionChangeEvent>;
1360
1473
  rowAction: EventEmitter<any>;
1361
1474
  toolbarAction: EventEmitter<ToolbarActionEvent<any>>;
@@ -1376,6 +1489,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1376
1489
  loadingStateChange: EventEmitter<LoadingState>;
1377
1490
  collectionLinksChange: EventEmitter<RestApiLinks | null>;
1378
1491
  selectionChange: EventEmitter<any>;
1492
+ drawerOpen: EventEmitter<DrawerOpenEvent<DynamicDataRecord>>;
1493
+ drawerClose: EventEmitter<void>;
1494
+ drawerTabChange: EventEmitter<string>;
1495
+ isAnalyticalDrawerOpen: boolean;
1496
+ analyticalDrawerRow: any | null;
1497
+ activeAnalyticalDrawerTabId?: string;
1379
1498
  private latestLoadingState;
1380
1499
  private loadingIndicatorVisible;
1381
1500
  private loadingIndicatorDelayHandle;
@@ -1392,6 +1511,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1392
1511
  selection: SelectionModel<any>;
1393
1512
  dataSubject: BehaviorSubject<any[]>;
1394
1513
  subscriptions: Subscription[];
1514
+ private surfaceOutcomeOwnerDestroyed;
1395
1515
  showToolbar: boolean;
1396
1516
  hasInitialized: boolean;
1397
1517
  pageIndex: number;
@@ -1441,6 +1561,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1441
1561
  private localFilterFieldMetadataCacheKey;
1442
1562
  private remoteSchemaLoadSequence;
1443
1563
  private enterpriseContextIdentity;
1564
+ private enterpriseContextReady;
1444
1565
  private staleEnterpriseLocalData;
1445
1566
  private remoteDataLoadSequence;
1446
1567
  private analyticsLoadSequence;
@@ -1611,11 +1732,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1611
1732
  getNoDataStateIconContainer(): 'none' | 'circle' | 'soft';
1612
1733
  getNoDataStatePrimaryAction(): any | null;
1613
1734
  getNoDataStateSecondaryActions(): any[];
1735
+ private isAdvancedFiltersEffectivelyEnabled;
1614
1736
  shouldRenderAdvancedFilter(): boolean;
1615
1737
  getAdvancedFilterResourcePath(): string;
1616
1738
  getAdvancedFilterPersistenceKey(): string;
1617
1739
  getAdvancedFilterFormId(): string;
1618
1740
  getAdvancedFilterOpenMode(): 'modal' | 'drawer';
1741
+ shouldShowAdvancedFilterAddButton(): boolean;
1742
+ shouldShowAdvancedFilterSettings(): boolean;
1619
1743
  getAdvancedFilterAlwaysVisibleFields(): string[] | undefined;
1620
1744
  getAdvancedFilterAlwaysVisibleFieldMetadataOverrides(): Record<string, Record<string, any>>;
1621
1745
  getAdvancedFilterFieldMetadata(): FieldMetadata[] | null | undefined;
@@ -1734,9 +1858,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1734
1858
  private hasDeclaredAppearanceSection;
1735
1859
  private shouldApplyAppearanceDefaultValue;
1736
1860
  private mergePersistedTableConfigWithInput;
1861
+ private reconcileTableConfigInputChange;
1737
1862
  private reconcileHostDeclaredTableContract;
1738
1863
  private reconcileHostDeclaredColumns;
1739
1864
  private reconcileHostDeclaredRowActions;
1865
+ private reconcileHostDeclaredBulkActions;
1866
+ private reconcileHostDeclaredFiltering;
1740
1867
  private reconcileHostDeclaredExport;
1741
1868
  private normalizePersistedExportFormats;
1742
1869
  private normalizePersistedRowActionIds;
@@ -1750,6 +1877,13 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1750
1877
  private resolveCollectionCapabilitiesHref;
1751
1878
  private materializeCollectionCreateToolbarAction;
1752
1879
  private materializeCollectionWorkflowToolbarActions;
1880
+ private materializeCollectionBulkSyncToolbarAction;
1881
+ private hasBulkSyncSelection;
1882
+ private tryHandleBulkSyncToolbarAction;
1883
+ private isBulkSyncPending;
1884
+ canShowBulkSyncHandle(): boolean;
1885
+ closeBulkSync(): void;
1886
+ private bulkSyncOperationalIdentity;
1753
1887
  private isCollectionActionDiscoveryEnabled;
1754
1888
  private ensureToolbarConfigForRuntime;
1755
1889
  private buildCollectionCreateToolbarAction;
@@ -1851,6 +1985,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1851
1985
  private hasActiveEmptyStateFilters;
1852
1986
  private hasMeaningfulFilterCriteria;
1853
1987
  private hasMeaningfulFilterValue;
1988
+ isStructuralQueryContextField(field: string): boolean;
1989
+ computeActiveCrossFilters(): PraxisTableCrossFilterItem[];
1990
+ onClearCrossFilter(item: PraxisTableCrossFilterItem): void;
1991
+ onClearAllCrossFilters(): void;
1854
1992
  private resolveNoDataStateConfig;
1855
1993
  private isEmptyStateTone;
1856
1994
  private isEmptyStateVariant;
@@ -1872,6 +2010,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1872
2010
  * race with the configured request.
1873
2011
  */
1874
2012
  private shouldFetchRemoteDataForQueryChanges;
2013
+ /**
2014
+ * Evaluates whether an external TableConfig change actually modifies remote query parameters
2015
+ * (e.g. resourcePath, page size, sorting criteria or data mode).
2016
+ *
2017
+ * Non-query-affecting updates (such as toolbar actions, capabilities resolution, appearance,
2018
+ * density or empty state) MUST NOT trigger a redundant remote data load or cancel in-flight requests.
2019
+ */
2020
+ private shouldRefetchOnConfigChange;
1875
2021
  private isDebug;
1876
2022
  private connectionKey;
1877
2023
  private saveConnection;
@@ -1955,6 +2101,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
1955
2101
  private resolveExpansionDetailTimelineExpressionValue;
1956
2102
  private getExpansionDetailTimelineObjectValue;
1957
2103
  private normalizeExpansionDetailCardGridCardContent;
2104
+ /** `visibleWhen` is canonical Json Logic (object or boolean); string DSL is not a valid rule. */
2105
+ private normalizeExpansionDetailVisibleWhen;
2106
+ /**
2107
+ * Visibility gate for every detail node, including host-mediated ones (cardGrid, list, detailList,
2108
+ * timeline) that are not rendered by PraxisRichContent. Mirrors `PraxisRichContent.evaluateRule`:
2109
+ * same context (`row`, `computed`, `detail`), truthiness of the Json Logic result, fail-closed on error.
2110
+ */
2111
+ isExpansionDetailNodeVisible(node: any, row: any, index: number): boolean;
2112
+ private withExpansionDetailParentVisibleWhen;
1958
2113
  private normalizeExpansionDetailMediaBlockAvatar;
1959
2114
  private normalizeExpansionDetailMediaBlockText;
1960
2115
  private normalizeExpansionDetailMediaBlockMeta;
@@ -2010,7 +2165,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2010
2165
  private isExpansionDetailRichListItemActionVisible;
2011
2166
  private evaluateExpansionDetailRichListItemCondition;
2012
2167
  getExpansionDetailRichText(node: any): string;
2013
- getExpansionDetailRichContentContext(row: any, index: number): JsonLogicDataRecord;
2168
+ getExpansionDetailRichContentContext(row: any, index: number, node?: any): JsonLogicDataRecord;
2014
2169
  getExpansionDetailRichContentDocument(node: any): RichContentDocument;
2015
2170
  getExpansionDetailRichContentLayout(node: any): 'block' | 'inline';
2016
2171
  getExpansionDetailRichContentHostCapabilities(row: any): RichBlockHostCapabilities;
@@ -2020,6 +2175,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2020
2175
  private mapExpansionDetailNodeToRichContent;
2021
2176
  private mapExpansionDetailMediaBlockNodeToRichContent;
2022
2177
  private mapExpansionDetailCardNodeToRichContent;
2178
+ private expansionDetailVisibleWhenPatch;
2023
2179
  private mapExpansionDetailStackNodeToRichContent;
2024
2180
  private mapExpansionDetailValueNodeToRichContent;
2025
2181
  private mapExpansionDetailTimelineNodeToRichContent;
@@ -2037,9 +2193,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2037
2193
  private resolveExpansionDetailSchemaForRow;
2038
2194
  private resolveExpansionDetailByMode;
2039
2195
  private resolveExpansionDetailInlineSchema;
2196
+ private resolveExpansionDetailFromSchema;
2197
+ private humanizeFieldName;
2040
2198
  private resolveExpansionDetailFromResource;
2041
2199
  private resolveExpansionDetailFromResourcePath;
2042
2200
  private resolveExpansionDetailFromHypermedia;
2201
+ private isDirectRichContentDocument;
2043
2202
  private normalizeExpansionDetailSchemaCandidate;
2044
2203
  private sanitizeExpansionDetailSchema;
2045
2204
  private sanitizeExpansionDetailNodes;
@@ -2093,6 +2252,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2093
2252
  private areStringSetsEqual;
2094
2253
  private shouldToggleExpansionOnRowClick;
2095
2254
  private shouldSelectRowOnRowClick;
2255
+ isAnalyticalDrawerEnabled(): boolean;
2256
+ private shouldOpenAnalyticalDrawerOnRowClick;
2257
+ openAnalyticalDrawer(row: any, tabId?: string): void;
2258
+ closeAnalyticalDrawer(): void;
2259
+ onAnalyticalDrawerTabChange(tabId: string): void;
2096
2260
  private getExpansionMotionPreset;
2097
2261
  private getExpansionMotionDurationMs;
2098
2262
  private getExpansionMotionEasingCurve;
@@ -2125,7 +2289,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2125
2289
  private showActionFeedbackMessage;
2126
2290
  private emitEventWithActionFeedback;
2127
2291
  private executeConfiguredGlobalAction;
2292
+ private isWritableConfiguredSurfaceOpen;
2128
2293
  private withTableRuntimeContext;
2294
+ private resolveTableSurfaceRuntime;
2129
2295
  private executeSurfaceOpen;
2130
2296
  private resolveConfiguredGlobalActionRef;
2131
2297
  private resolveActionGlobalActionRef;
@@ -2151,6 +2317,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2151
2317
  private unwrapCollectionWorkflowResult;
2152
2318
  private showCollectionWorkflowContractError;
2153
2319
  private tryHandleCollectionCreateToolbarAction;
2320
+ private bindDiscoveredSurfaceOutcome;
2321
+ private applySurfaceActionRefresh;
2154
2322
  private resolveBulkExportFormat;
2155
2323
  private isBulkExportActionKey;
2156
2324
  private normalizeExportFormat;
@@ -2185,14 +2353,26 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2185
2353
  onAdvancedFilterSubmit(criteria: Record<string, any>): void;
2186
2354
  onAdvancedFilterChange(criteria: Record<string, any>): void;
2187
2355
  onAdvancedFilterClear(): void;
2356
+ clearAdvancedFilter(): void;
2188
2357
  onQuickFilterChange(event: {
2189
2358
  id: string;
2190
2359
  filter: Record<string, unknown>;
2191
2360
  active: boolean;
2192
2361
  }): void;
2362
+ getConfiguredQuickFilters(): Array<{
2363
+ id: string;
2364
+ label: string;
2365
+ filter: Record<string, unknown>;
2366
+ icon?: string;
2367
+ }>;
2368
+ getQuickFilterManagedFields(): string[];
2369
+ private parseQuickFilterDefinition;
2370
+ getEffectiveEditableFilterCriteria(): Record<string, any>;
2371
+ private reconcileEditableQueryContextFilters;
2372
+ private syncQuickFilterStateFromEffectiveCriteria;
2193
2373
  private clearQuickFilterRuntimeState;
2194
2374
  private hasEquivalentFilterCriteria;
2195
- private applyAdvancedFilterCriteria;
2375
+ applyAdvancedFilterCriteria(criteria: Record<string, any> | null | undefined, reason?: string): void;
2196
2376
  private setAdvancedFilterCriteria;
2197
2377
  private syncAdvancedFilterValueFromCriteria;
2198
2378
  private deriveRuntimeVisibleAdvancedFilterFields;
@@ -2585,6 +2765,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2585
2765
  getIconText(row: any, column: ColumnDefinition): string | null;
2586
2766
  getIconRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
2587
2767
  private getIconRawText;
2768
+ /**
2769
+ * Enriquece as linhas com propriedades calculadas declaradas em `computedFields`.
2770
+ * Torna as propriedades virtuais fisicamente acessíveis no objeto da linha (Issue #34).
2771
+ */
2772
+ private enrichRowsWithComputedFields;
2588
2773
  /**
2589
2774
  * Lightweight, controlled evaluator for string/number expressions using row context.
2590
2775
  * Accepts values like '= row.status === "OK" ? "primary" : "warn"'.
@@ -2746,7 +2931,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2746
2931
  private emitMetadataChange;
2747
2932
  private emitSchemaStatus;
2748
2933
  getRowId(row: any): any;
2934
+ private preserveSelectionOnNextDataLoad;
2749
2935
  private reconcileSelectionAfterDataChange;
2936
+ private areSelectedRowSnapshotsEquivalent;
2937
+ private serializeSelectedRowSnapshot;
2750
2938
  private getComparableRowIdentity;
2751
2939
  getIdField(): string;
2752
2940
  private getSchemaIdFieldOverride;
@@ -2782,6 +2970,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2782
2970
  getRowSelectionAriaLabel(row: any, index?: number): string;
2783
2971
  getMasterSelectionAriaLabel(): string;
2784
2972
  private selectRowFromUserInteraction;
2973
+ clearSelection(emitEvent?: boolean): void;
2785
2974
  private emitSelectionChange;
2786
2975
  private publishSelectionStatus;
2787
2976
  private getAccessibleRowLabel;
@@ -2876,7 +3065,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterView
2876
3065
  private scheduleRowDiscoveryMarkForCheck;
2877
3066
  ngOnDestroy(): void;
2878
3067
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTable, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
2879
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "data": { "alias": "data"; "required": false; }; "tableId": { "alias": "tableId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "configPersistenceStrategy": { "alias": "configPersistenceStrategy"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "aiContext": { "alias": "aiContext"; "required": false; }; "aiAssistantVoiceInputMode": { "alias": "aiAssistantVoiceInputMode"; "required": false; }; "aiAssistantVoiceLanguage": { "alias": "aiAssistantVoiceLanguage"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "authoringCapability": { "alias": "authoringCapability"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "widgetEvent": "widgetEvent"; "resourceEvent": "resourceEvent"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "exportAction": "exportAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "columnResize": "columnResize"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "configChange": "configChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; "collectionLinksChange": "collectionLinksChange"; "selectionChange": "selectionChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
3068
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "data": { "alias": "data"; "required": false; }; "tableId": { "alias": "tableId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "configPersistenceStrategy": { "alias": "configPersistenceStrategy"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "filterTeleport": { "alias": "filterTeleport"; "required": false; }; "widgetId": { "alias": "widgetId"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "aiContext": { "alias": "aiContext"; "required": false; }; "aiAssistantVoiceInputMode": { "alias": "aiAssistantVoiceInputMode"; "required": false; }; "aiAssistantVoiceLanguage": { "alias": "aiAssistantVoiceLanguage"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "authoringCapability": { "alias": "authoringCapability"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "queryContextClear": "queryContextClear"; "queryContextChange": "queryContextChange"; "rowClick": "rowClick"; "widgetEvent": "widgetEvent"; "resourceEvent": "resourceEvent"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "exportAction": "exportAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "columnResize": "columnResize"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "configChange": "configChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; "collectionLinksChange": "collectionLinksChange"; "selectionChange": "selectionChange"; "drawerOpen": "drawerOpen"; "drawerClose": "drawerClose"; "drawerTabChange": "drawerTabChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
3069
+ static ngAcceptInputType_filterTeleport: unknown;
2880
3070
  static ngAcceptInputType_enableCustomization: unknown;
2881
3071
  }
2882
3072
 
@@ -3080,6 +3270,7 @@ type ComposePresetId = 'personAvatar' | 'contactTwoLines' | 'documentEmail' | 's
3080
3270
  declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestroy {
3081
3271
  private cdr;
3082
3272
  private readonly i18n;
3273
+ private readonly jsonLogic;
3083
3274
  tx(key: string, fallback: string): string;
3084
3275
  readonly ratingAriaLabelPlaceholder: string;
3085
3276
  readonly ratingRendererHint: string;
@@ -3131,6 +3322,18 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3131
3322
  getJsonLogicSummary(value: JsonLogicExpression | null | undefined): string;
3132
3323
  private parseJsonLogicText;
3133
3324
  setConditionalOverrideCondition(index: number, raw: string): void;
3325
+ readonly overrideConditionOperators: readonly ["===", "==", "!==", "!=", ">", ">=", "<", "<=", "truthy", "falsy"];
3326
+ private normalizeConditionFieldName;
3327
+ getOverrideConditionField(condition: any): string;
3328
+ getOverrideConditionOperator(condition: any): string;
3329
+ getOverrideConditionValue(condition: any): string;
3330
+ setOverrideGuidedCondition(index: number, patch: {
3331
+ field?: string;
3332
+ operator?: string;
3333
+ value?: string;
3334
+ }): void;
3335
+ private extractGuidedJsonLogicCondition;
3336
+ private coerceGuidedScalar;
3134
3337
  getOverrideField(path: string): any;
3135
3338
  setOverrideField(path: string, value: any): void;
3136
3339
  setOverrideJsonLogicField(path: string, raw: string): void;
@@ -3139,13 +3342,19 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3139
3342
  item: any;
3140
3343
  index: number;
3141
3344
  }>;
3345
+ addOverrideComposeItem(type: 'value' | 'badge' | 'icon' | 'chip' | 'progress' | 'avatar' | 'link' | 'button' | 'rating' | 'html'): void;
3142
3346
  addOverrideComposeValueItem(): void;
3347
+ moveOverrideComposeItem(index: number, delta: -1 | 1): void;
3348
+ duplicateOverrideComposeItem(index: number): void;
3349
+ removeOverrideComposeItem(index: number): void;
3350
+ setOverrideComposeItemProp(index: number, path: string, value: any): void;
3143
3351
  setOverrideComposeValueItemField(index: number, field: string): void;
3144
3352
  setOverrideComposeValueItemEmphasis(index: number, emphasis: string): void;
3145
3353
  getOverrideComposeLayoutProp(key: string): any;
3146
3354
  setOverrideComposeLayoutProp(key: string, value: any): void;
3147
3355
  onOverrideTypeChange(ov: any, val: string): void;
3148
3356
  getOverrideMicroVisualizationProp(path: string): any;
3357
+ private ensureOverrideMicroVisualizationObject;
3149
3358
  setOverrideMicroVisualizationProp(path: string, value: any): void;
3150
3359
  getOverrideMicroVisualizationKind(): PraxisPresentationVisualizationKind;
3151
3360
  getOverrideMicroVisualizationGuidance(): 'recommended' | 'conditional';
@@ -3155,15 +3364,25 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3155
3364
  isOverrideMicroVisualizationSegmentsKind(): boolean;
3156
3365
  isOverrideMicroVisualizationItemsKind(): boolean;
3157
3366
  isOverrideMicroVisualizationTotalKind(): boolean;
3367
+ isOverrideMicroVisualizationThresholdsSupported(): boolean;
3368
+ getOverrideMicroVisualizationThresholds(): PraxisPresentationVisualizationThreshold[];
3369
+ addOverrideMicroVisualizationThreshold(): void;
3370
+ applyDefaultOverrideMicroVisualizationThresholds(): void;
3371
+ setOverrideMicroVisualizationThresholdNumber(index: number, bound: 'min' | 'max', raw: string): void;
3372
+ setOverrideMicroVisualizationThresholdTone(index: number, tone: PraxisPresentationVisualizationTone): void;
3373
+ moveOverrideMicroVisualizationThreshold(index: number, delta: -1 | 1): void;
3374
+ removeOverrideMicroVisualizationThreshold(index: number): void;
3158
3375
  getOverrideMicroVisualizationGuidanceText(): string;
3159
3376
  exportOverrideJson(index: number): void;
3160
3377
  importOverrideJson(index: number): void;
3161
3378
  rendererValidationErrors: string[];
3379
+ get validationErrors(): string[];
3162
3380
  rendererImportWarnings: string[];
3163
3381
  rendererIsValid: boolean;
3164
3382
  rendererPreviewEnabled: boolean;
3165
3383
  private rendererAppliedSnapshot;
3166
3384
  previewRows: any[];
3385
+ microVisualizationSampleValuesText: string;
3167
3386
  private refreshRendererFieldOptions;
3168
3387
  getRendererFieldOptions(): RendererFieldOption[];
3169
3388
  formatRendererFieldOption(option: RendererFieldOption): string;
@@ -3258,7 +3477,19 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3258
3477
  setRendererJsonLogicProp(kind: string, path: string, raw: string): void;
3259
3478
  setRendererProp(kind: string, path: string, value: any): void;
3260
3479
  private createDefaultMicroVisualization;
3480
+ private ensureMicroVisualizationObject;
3261
3481
  setMicroVisualizationProp(path: string, value: any): void;
3482
+ isMicroVisualizationThresholdsSupported(): boolean;
3483
+ getMicroVisualizationThresholds(): PraxisPresentationVisualizationThreshold[];
3484
+ addMicroVisualizationThreshold(): void;
3485
+ applyDefaultMicroVisualizationThresholds(): void;
3486
+ setMicroVisualizationThresholdNumber(index: number, bound: 'min' | 'max', raw: string): void;
3487
+ setMicroVisualizationThresholdTone(index: number, tone: PraxisPresentationVisualizationTone): void;
3488
+ moveMicroVisualizationThreshold(index: number, delta: -1 | 1): void;
3489
+ removeMicroVisualizationThreshold(index: number): void;
3490
+ setMicroVisualizationSampleValuesText(raw: string): void;
3491
+ getMicroVisualizationSampleValues(): number[];
3492
+ getPreviewMicroVisualizationHtmlForValue(sampleValue: number): string;
3262
3493
  private _deepClone;
3263
3494
  hasSelectedRenderer(): boolean;
3264
3495
  onApplyRenderer(): void;
@@ -3278,6 +3509,12 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3278
3509
  private stripRowPrefixes;
3279
3510
  private _coerceExpected;
3280
3511
  private getNested;
3512
+ private buildPreviewEvaluationContext;
3513
+ evaluatePreviewOverrideCondition(condition: any, row: any): boolean;
3514
+ private mergePreviewRenderer;
3515
+ private hasRenderablePreviewOverride;
3516
+ getEffectivePreviewRenderer(row: any): any;
3517
+ getPreviewSampleRows(): any[];
3281
3518
  getPreviewRendererType(row: any): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'microVisualization' | 'rating' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | null;
3282
3519
  getPreviewIconName(row: any): string | null;
3283
3520
  getPreviewIconColor(row: any): string | null;
@@ -3289,14 +3526,17 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3289
3526
  getPreviewImageShape(): 'square' | 'rounded' | 'circle' | undefined;
3290
3527
  getPreviewImageFit(): 'cover' | 'contain' | undefined;
3291
3528
  getPreviewBadgeText(row: any): string | null;
3292
- getPreviewBadgeIcon(_row: any): string | null;
3293
- getPreviewBadgeClasses(_row: any): string[];
3529
+ getPreviewBadgeIcon(row: any): string | null;
3530
+ getPreviewBadgeClasses(row: any): string[];
3531
+ private buildBadgeClassesFromConfig;
3294
3532
  getPreviewLinkText(row: any): string;
3295
3533
  getPreviewLinkHref(row: any): string | null;
3296
3534
  getPreviewButtonLabel(row: any): string;
3297
- getPreviewButtonIcon(): string | null;
3535
+ getPreviewButtonIcon(row?: any): string | null;
3298
3536
  getPreviewChipText(row: any): string | null;
3299
- getPreviewChipClasses(): string[];
3537
+ getPreviewChipIcon(row?: any): string | null;
3538
+ getPreviewChipClasses(row?: any): string[];
3539
+ getComposePreviewButtonLabel(item: any, row: any): string;
3300
3540
  getPreviewProgressValue(row: any): number;
3301
3541
  getPreviewMicroVisualizationHtml(row: any): string;
3302
3542
  getMicroVisualizationGuidance(): 'recommended' | 'conditional';
@@ -3314,7 +3554,34 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3314
3554
  getPreviewRatingOutlineColor(): string | undefined;
3315
3555
  getPreviewRatingSize(): 'small' | 'medium' | 'large';
3316
3556
  getPreviewRatingAriaLabel(): string | undefined;
3317
- getComposePreviewItems(_row: any): any[];
3557
+ getComposePreviewItems(row: any): any[];
3558
+ getComposePreviewContainerStyle(row: any): Record<string, string>;
3559
+ getComposePreviewValueText(item: any, row: any): string;
3560
+ getComposePreviewValueClasses(item: any): string[];
3561
+ getComposePreviewBadgeText(item: any, row: any): string;
3562
+ getComposePreviewBadgeClasses(item: any): string[];
3563
+ getComposePreviewChipText(item: any, row: any): string;
3564
+ getComposePreviewChipClasses(item: any): string[];
3565
+ getComposePreviewLinkText(item: any, row: any): string;
3566
+ getComposePreviewLinkHref(item: any, row: any): string | null;
3567
+ getComposePreviewIconName(item: any, row: any): string | null;
3568
+ getComposePreviewIconColor(item: any, _row: any): string | null;
3569
+ getComposePreviewIconStyle(item: any, _row: any): Record<string, string> | null;
3570
+ getComposePreviewAvatarStyle(item: any): Record<string, string>;
3571
+ getComposePreviewAvatarInitials(item: any, row: any): string;
3572
+ getComposePreviewAvatarSrc(item: any, row: any): string | null;
3573
+ getComposePreviewAvatarAlt(item: any, row: any): string;
3574
+ getComposePreviewImageSrc(item: any, row: any): string | null;
3575
+ getComposePreviewImageAlt(item: any, row: any): string;
3576
+ getComposePreviewImageStyle(item: any): Record<string, string>;
3577
+ getComposePreviewProgressColor(item: any): string | null;
3578
+ getComposePreviewHtml(item: any, row: any): string;
3579
+ getComposePreviewToggleState(item: any, row: any): boolean;
3580
+ getComposePreviewMenuCount(item: any, row: any): number;
3581
+ private resolvePreviewSafeSrc;
3582
+ /** Mirrors PraxisTable.getSafeHtml token interpolation: `[[field]]` values are HTML-escaped. */
3583
+ private interpolatePreviewHtml;
3584
+ getComposePreviewProgressValue(item: any, row: any): number;
3318
3585
  getComposePreviewRatingValue(item: any, row: any): number;
3319
3586
  getComposePreviewRatingMax(item: any): number;
3320
3587
  getComposePreviewRatingColor(item: any): string | undefined;
@@ -3330,7 +3597,10 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3330
3597
  getPreviewToggleState(row: any): boolean;
3331
3598
  getPreviewMenuCount(row: any): number;
3332
3599
  getPreviewHtml(row: any): string;
3333
- trackByIdx: (_: number, item: any) => number;
3600
+ getPreviewProgressColor(row: any): string | null;
3601
+ /** Preview rows are re-cloned on every read; the sample slot index is their stable identity. */
3602
+ trackByIdx: (index: number, _item: unknown) => number;
3603
+ private validateMicroVisualizationThresholds;
3334
3604
  private validateRenderer;
3335
3605
  private readonly _emptyMappingRef;
3336
3606
  composeSelectedIndex: number;
@@ -3352,6 +3622,8 @@ declare class ColumnsConfigEditorComponent implements OnInit, OnChanges, OnDestr
3352
3622
  getSelectedComposeItem(): any;
3353
3623
  getSelectedComposeItemProp(path: string): any;
3354
3624
  setSelectedComposeItemProp(path: string, value: any): void;
3625
+ getConsolidatedSecondaryColumn(item: any): ExtendedColumnDefinition | null;
3626
+ hideConsolidatedColumn(field: string): void;
3355
3627
  private findRendererFieldByCandidates;
3356
3628
  private normalizeFieldLookup;
3357
3629
  getColumnKeyInputType(column: ColumnDefinition | null): 'text' | 'number' | 'boolean';
@@ -3729,6 +4001,8 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
3729
4001
  presentation: FormControl<FilterConfig['presentation']>;
3730
4002
  alwaysVisibleFields: FormControl<string[]>;
3731
4003
  showAdvanced: FormControl<boolean>;
4004
+ showAddButton: FormControl<boolean>;
4005
+ showFilterSettings: FormControl<boolean>;
3732
4006
  mode: FormControl<'filter'>;
3733
4007
  changeDebounceMs: FormControl<number>;
3734
4008
  allowSaveTags: FormControl<boolean>;
@@ -4237,7 +4511,7 @@ declare class TableDetailTreeDraft {
4237
4511
  depth: number;
4238
4512
  } | undefined;
4239
4513
  move(direction: -1 | 1): void;
4240
- add(node: Node, nested?: boolean): void;
4514
+ add(node: Node, nested?: boolean): Node | null;
4241
4515
  }
4242
4516
 
4243
4517
  declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
@@ -4254,6 +4528,7 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
4254
4528
  dirty: boolean;
4255
4529
  }>;
4256
4530
  private readonly i18n;
4531
+ private readonly jsonLogic;
4257
4532
  private baseline?;
4258
4533
  private emitted?;
4259
4534
  private readonly coupledBefore;
@@ -4265,26 +4540,49 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
4265
4540
  jsonTouched: boolean;
4266
4541
  advanced: boolean;
4267
4542
  preset: string;
4543
+ /** True when the last "add inside" was refused because the block cannot live inside a card grid card. */
4544
+ addRejected: boolean;
4268
4545
  readonly presets: string[];
4269
4546
  readonly sourceModes: string[];
4270
4547
  readonly resourceKinds: string[];
4271
4548
  readonly resourcePathMethods: string[];
4549
+ readonly cardGridColumnOptions: Array<'auto' | 1 | 2 | 3 | 4>;
4550
+ readonly cardVariants: Array<'outlined' | 'elevated' | 'filled' | 'soft'>;
4551
+ readonly cardSizes: Array<'sm' | 'md' | 'lg'>;
4552
+ readonly cardDensities: Array<'compact' | 'comfortable' | 'spacious'>;
4553
+ readonly composeLayouts: Array<'flex' | 'grid'>;
4554
+ readonly composeDirections: Array<'row' | 'column'>;
4555
+ readonly composeGaps: Array<'xs' | 'sm' | 'md' | 'lg' | 'xl'>;
4556
+ readonly composeAlignItemsOptions: Array<'' | 'flex-start' | 'center' | 'flex-end' | 'stretch'>;
4557
+ readonly badgePresetOptions: Array<'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom'>;
4558
+ readonly iconSurfacePresetOptions: Array<'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom'>;
4559
+ readonly semanticTones: Array<'' | 'neutral' | 'info' | 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'danger'>;
4560
+ readonly conditionOperators: Array<'===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy'>;
4272
4561
  fallbackModes(): string[];
4273
- sample: string;
4562
+ sample: 'A' | 'B' | 'C';
4274
4563
  get previewContext(): {
4275
- row: {
4276
- id: string;
4277
- note: string;
4278
- status: string;
4279
- progress: number;
4280
- };
4564
+ row: Record<string, unknown>;
4281
4565
  };
4566
+ private projectDetailNodeToRichBlockNodes;
4282
4567
  /** Local presenter projection only; never used as an authoring/save source. */
4283
4568
  previewNodes(): RichBlockNode[];
4569
+ /**
4570
+ * Returns structured preview groups so `cardGrid` blocks render with their real
4571
+ * multi-column CSS Grid (`columns` and `minCardWidth`) and headers in the preview canvas.
4572
+ */
4573
+ previewCardGridGroups(): Array<{
4574
+ isCardGrid: boolean;
4575
+ title?: string;
4576
+ subtitle?: string;
4577
+ gridTemplateColumns?: string;
4578
+ cards?: RichBlockNode[];
4579
+ nodes?: RichBlockNode[];
4580
+ }>;
4284
4581
  previewRichContentDocuments(): RichContentDocument[];
4285
4582
  richContentEditorInputs(): PraxisRichContentEditorInputs | null;
4286
4583
  applyRichContentEditor(): void;
4287
- addPreset(preset: 'callout' | 'richCard'): void;
4584
+ addPreset(preset: 'callout' | 'richCard' | 'richDetailGrid'): void;
4585
+ effectiveNodeType(node?: Record<string, any> | undefined): string;
4288
4586
  nodeLabel(node: Record<string, any>): string;
4289
4587
  nodeIcon(node: Record<string, any>): string;
4290
4588
  canMove(direction: -1 | 1): boolean;
@@ -4326,7 +4624,70 @@ declare class TableDetailEditorComponent implements OnChanges, OnDestroy {
4326
4624
  edit(field: string, value: string): void;
4327
4625
  fields(): string[];
4328
4626
  isAdvancedNode(): boolean;
4627
+ availableColumns(): Array<{
4628
+ field: string;
4629
+ label: string;
4630
+ }>;
4631
+ supportsFieldBinding(): boolean;
4632
+ boundColumnField(): string;
4633
+ bindColumnField(fieldName: string): void;
4634
+ cardGridColumnsValue(): 'auto' | 1 | 2 | 3 | 4;
4635
+ setCardGridColumns(value: 'auto' | 1 | 2 | 3 | 4): void;
4636
+ cardGridMinWidthValue(): number;
4637
+ setCardGridMinWidth(value: number | string): void;
4638
+ cardVariantValue(): 'outlined' | 'elevated' | 'filled' | 'soft';
4639
+ setCardVariant(variant: 'outlined' | 'elevated' | 'filled' | 'soft'): void;
4640
+ cardSizeValue(): 'sm' | 'md' | 'lg';
4641
+ setCardSize(size: 'sm' | 'md' | 'lg'): void;
4642
+ cardDensityValue(): 'compact' | 'comfortable' | 'spacious';
4643
+ setCardDensity(density: 'compact' | 'comfortable' | 'spacious'): void;
4644
+ composeLayoutValue(): 'flex' | 'grid';
4645
+ setComposeLayout(layout: 'flex' | 'grid'): void;
4646
+ composeDirectionValue(): 'row' | 'column';
4647
+ setComposeDirection(direction: 'row' | 'column'): void;
4648
+ composeGapValue(): 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4649
+ setComposeGap(gap: 'xs' | 'sm' | 'md' | 'lg' | 'xl'): void;
4650
+ composeAlignItemsValue(): '' | 'flex-start' | 'center' | 'flex-end' | 'stretch';
4651
+ setComposeAlignItems(align: '' | 'flex-start' | 'center' | 'flex-end' | 'stretch'): void;
4652
+ composeWrapValue(): boolean;
4653
+ setComposeWrap(wrap: boolean): void;
4654
+ supportsTone(): boolean;
4655
+ toneValue(): string;
4656
+ setTone(tone: string): void;
4657
+ supportsStyleControls(): boolean;
4658
+ nodeStyleValue(key: string): string;
4659
+ setNodeStyleValue(key: string, value: string): void;
4660
+ hasNodeAppearanceOverrides(): boolean;
4661
+ resetNodeAppearance(): void;
4662
+ badgeAppearancePreset(): 'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom';
4663
+ applyBadgeAppearancePreset(preset: 'default' | 'softPill' | 'solidPill' | 'outlinedTag' | 'compactSquare' | 'custom'): void;
4664
+ iconSurfacePreset(): 'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom';
4665
+ applyIconSurfacePreset(preset: 'none' | 'softTile' | 'circleBadge' | 'outlinedTile' | 'elevatedTile' | 'custom'): void;
4666
+ canConvertSelectedToRichContent(): boolean;
4667
+ /**
4668
+ * Losslessly converts the selected `cardGrid` or `card` block (or its parent `cardGrid`
4669
+ * when a card inside `cardGrid.cards` is selected) into a canonical `richContent` node
4670
+ * so the user can continue authoring in the full embedded `PraxisRichContentConfigEditor`.
4671
+ */
4672
+ convertSelectedToRichContent(): void;
4673
+ supportsVisibleWhen(): boolean;
4674
+ visibleWhenMode(): 'always' | 'conditional' | 'custom';
4675
+ setVisibleWhenMode(mode: 'always' | 'conditional' | 'custom'): void;
4676
+ visibleWhenField(): string;
4677
+ visibleWhenOperator(): '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
4678
+ visibleWhenValue(): string;
4679
+ setVisibleWhenRule(patch: {
4680
+ field?: string;
4681
+ operator?: '===' | '!=' | '>' | '>=' | '<' | '<=' | 'truthy' | 'falsy';
4682
+ value?: string;
4683
+ }): void;
4684
+ private parseConditionScalar;
4685
+ private parseGuidedVisibleWhen;
4686
+ private isPreviewNodeVisible;
4329
4687
  private commitTree;
4688
+ /** Offered next to `cardGridContent`/`composeContent` issues: converts legacy fields into canonical presenters. */
4689
+ canNormalizeRichChildren(): boolean;
4690
+ normalizeRichChildren(): void;
4330
4691
  editJson(value: string): void;
4331
4692
  discard(): void;
4332
4693
  static ɵfac: i0.ɵɵFactoryDeclaration<TableDetailEditorComponent, never>;
@@ -4431,6 +4792,46 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
4431
4792
  getColumnAuthoringMetas(): FieldMetadata[];
4432
4793
  get filteredIdFieldOptions(): FieldMetadata[];
4433
4794
  isUsingFilterDtoMetas(): boolean;
4795
+ get toolbarFiltersEnabled(): boolean;
4796
+ get toolbarShowQuickFilters(): boolean;
4797
+ get toolbarShowAdvancedButton(): boolean;
4798
+ get advancedFilterShowAddButton(): boolean;
4799
+ get advancedFilterShowFilterSettings(): boolean;
4800
+ get toolbarQuickFilters(): Array<{
4801
+ id: string;
4802
+ label: string;
4803
+ icon?: string;
4804
+ filter: any;
4805
+ }>;
4806
+ get duplicatedQuickFilterInlineFields(): string[];
4807
+ private inferDefaultStatusFilterField;
4808
+ private updateToolbarFiltersPatch;
4809
+ onToolbarFiltersEnabledChange(enabled: boolean): void;
4810
+ onToolbarShowQuickFiltersChange(show: boolean): void;
4811
+ onToolbarShowAdvancedButtonChange(show: boolean): void;
4812
+ onAdvancedFilterShowAddButtonChange(show: boolean): void;
4813
+ onAdvancedFilterShowFilterSettingsChange(show: boolean): void;
4814
+ applyBooleanQuickFilterPreset(fieldName?: string): void;
4815
+ addQuickFilterScope(): void;
4816
+ removeQuickFilterScope(index: number): void;
4817
+ updateQuickFilterMeta(index: number, patch: {
4818
+ id?: string;
4819
+ label?: string;
4820
+ icon?: string;
4821
+ }): void;
4822
+ getQuickFilterMode(item: {
4823
+ filter?: any;
4824
+ }): 'all' | 'boolean' | 'equals';
4825
+ getQuickFilterField(item: {
4826
+ filter?: any;
4827
+ }): string;
4828
+ getQuickFilterValue(item: {
4829
+ filter?: any;
4830
+ }): any;
4831
+ onQuickFilterModeChange(index: number, mode: 'all' | 'boolean' | 'equals'): void;
4832
+ onQuickFilterFieldChange(index: number, fieldName: string): void;
4833
+ onQuickFilterValueChange(index: number, rawValue: any): void;
4834
+ consolidateDuplicateInlineFilterFields(): void;
4434
4835
  getEffectiveDataMode(): EffectiveDataMode;
4435
4836
  isEffectiveLocalMode(): boolean;
4436
4837
  private resolveLocalDataModeFeatureEnabled;
@@ -4595,6 +4996,7 @@ interface PraxisFilterWidgetEditorInputs {
4595
4996
  advancedOpenMode?: 'modal' | 'drawer';
4596
4997
  advancedClearButtonsEnabled?: boolean;
4597
4998
  persistenceKey?: string;
4999
+ showAddButton?: boolean;
4598
5000
  showFilterSettings?: boolean;
4599
5001
  enableCustomization?: boolean;
4600
5002
  [key: string]: unknown;
@@ -4646,6 +5048,145 @@ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1,
4646
5048
  static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterWidgetConfigEditor, "praxis-filter-widget-config-editor", never, { "widgetKey": { "alias": "widgetKey"; "required": false; }; "inputs": { "alias": "inputs"; "required": false; }; }, {}, never, never, true, never>;
4647
5049
  }
4648
5050
 
5051
+ /**
5052
+ * Interface mínima estrutural para qualquer componente que suporte teleporte de filtros
5053
+ * (ex.: PraxisTable ou PraxisCrudComponent).
5054
+ */
5055
+ interface PraxisFilterTeleportHost {
5056
+ filterTeleport?: boolean;
5057
+ filterTemplate?: TemplateRef<unknown>;
5058
+ filterBarTemplate?: TemplateRef<unknown>;
5059
+ table?: PraxisFilterTeleportHost;
5060
+ }
5061
+ type PraxisFilterOutletTarget = PraxisFilterTeleportHost | TemplateRef<unknown> | null | undefined;
5062
+ /**
5063
+ * Praxis UI Platform — Canonical Filter Outlet Component (Issue #11)
5064
+ *
5065
+ * Renderiza a barra de filtros avançados desacoplada da tabela de dados ou do CRUD,
5066
+ * permitindo acomodá-la em qualquer card, drawer ou cabeçalho superior tático.
5067
+ *
5068
+ * @example
5069
+ * ```html
5070
+ * <div class="filters-card">
5071
+ * <praxis-filter-outlet [target]="heroesCrud" />
5072
+ * </div>
5073
+ *
5074
+ * <praxis-crud #heroesCrud ... />
5075
+ * ```
5076
+ */
5077
+ declare class PraxisFilterOutletComponent implements OnChanges, AfterViewInit, OnDestroy {
5078
+ target: PraxisFilterOutletTarget;
5079
+ private readonly cdr;
5080
+ private previousHost?;
5081
+ get resolvedTemplate(): TemplateRef<unknown> | null;
5082
+ ngOnChanges(changes: SimpleChanges): void;
5083
+ ngAfterViewInit(): void;
5084
+ ngOnDestroy(): void;
5085
+ private attachTeleportTarget;
5086
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterOutletComponent, never>;
5087
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisFilterOutletComponent, "praxis-filter-outlet", never, { "target": { "alias": "target"; "required": false; }; }, {}, never, never, true, never>;
5088
+ }
5089
+ /**
5090
+ * Praxis UI Platform — Canonical Filter Outlet Directive (Issue #11)
5091
+ *
5092
+ * Diretiva estrutural alternativa para teleporte reativo da barra de filtros.
5093
+ *
5094
+ * @example
5095
+ * ```html
5096
+ * <div class="filters-card">
5097
+ * <ng-container *praxisFilterOutlet="heroesCrud"></ng-container>
5098
+ * </div>
5099
+ * ```
5100
+ */
5101
+ declare class PraxisFilterOutletDirective implements OnChanges, AfterViewInit, OnDestroy {
5102
+ target: PraxisFilterOutletTarget;
5103
+ private readonly viewContainer;
5104
+ private readonly cdr;
5105
+ private previousHost?;
5106
+ ngOnChanges(changes: SimpleChanges): void;
5107
+ ngAfterViewInit(): void;
5108
+ ngOnDestroy(): void;
5109
+ private updateView;
5110
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterOutletDirective, never>;
5111
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PraxisFilterOutletDirective, "[praxisFilterOutlet]", never, { "target": { "alias": "praxisFilterOutlet"; "required": false; }; }, {}, never, never, true, never>;
5112
+ }
5113
+
5114
+ interface PraxisScopeBarItem {
5115
+ id: string;
5116
+ label: string;
5117
+ filter?: Record<string, unknown> | string;
5118
+ count?: number | null;
5119
+ icon?: string;
5120
+ tone?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'ready';
5121
+ isDefault?: boolean;
5122
+ tooltip?: string;
5123
+ }
5124
+ interface PraxisScopeBarConfig {
5125
+ items?: PraxisScopeBarItem[];
5126
+ activeId?: string;
5127
+ showOmnibox?: boolean;
5128
+ omniboxPlaceholder?: string;
5129
+ leadIcon?: string;
5130
+ leadLabel?: string;
5131
+ showClearButton?: boolean;
5132
+ clearLabel?: string;
5133
+ searchField?: string;
5134
+ }
5135
+ declare class PraxisScopeBarComponent implements OnInit {
5136
+ private readonly eventBus;
5137
+ private readonly i18n;
5138
+ private readonly destroyRef;
5139
+ protected scopeNavigationLabel(): string;
5140
+ chipsTrack?: ElementRef<HTMLElement>;
5141
+ private readonly itemsSignal;
5142
+ set items(val: PraxisScopeBarItem[] | undefined);
5143
+ get items(): PraxisScopeBarItem[] | undefined;
5144
+ set activeId(val: string | undefined);
5145
+ get activeId(): string | undefined;
5146
+ readonly activeIdChange: EventEmitter<string>;
5147
+ showOmnibox: boolean;
5148
+ omniboxPlaceholder: string;
5149
+ set omniboxValue(val: string | undefined);
5150
+ get omniboxValue(): string | undefined;
5151
+ readonly omniboxValueChange: EventEmitter<string>;
5152
+ omniboxDebounceMs: number;
5153
+ leadIcon: string;
5154
+ leadLabel?: string;
5155
+ showClearButton: boolean;
5156
+ clearLabel: string;
5157
+ private readonly targetSignal;
5158
+ set target(val: any);
5159
+ get target(): any;
5160
+ targetWidgetId?: string;
5161
+ scopeBarId: string;
5162
+ searchField: string;
5163
+ readonly scopeChange: EventEmitter<PraxisScopeBarItem>;
5164
+ readonly searchChange: EventEmitter<string>;
5165
+ readonly filterCriteriaChange: EventEmitter<Record<string, unknown>>;
5166
+ readonly clear: EventEmitter<void>;
5167
+ private readonly searchSubject$;
5168
+ readonly currentActiveId: i0.WritableSignal<string | null>;
5169
+ readonly currentSearchText: i0.WritableSignal<string>;
5170
+ readonly effectiveItems: i0.Signal<PraxisScopeBarItem[]>;
5171
+ ngOnInit(): void;
5172
+ isItemActive(item: PraxisScopeBarItem): boolean;
5173
+ selectScope(item: PraxisScopeBarItem): void;
5174
+ onSearchInput(event: Event): void;
5175
+ clearSearch(): void;
5176
+ resetFilters(): void;
5177
+ canClear(): boolean;
5178
+ onTrackKeydown(event: KeyboardEvent): void;
5179
+ private dispatchFilters;
5180
+ private applyCriteriaToTarget;
5181
+ private discoverItemsFromTarget;
5182
+ private normalizeFilter;
5183
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisScopeBarComponent, never>;
5184
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisScopeBarComponent, "praxis-scope-bar", never, { "items": { "alias": "items"; "required": false; }; "activeId": { "alias": "activeId"; "required": false; }; "showOmnibox": { "alias": "showOmnibox"; "required": false; }; "omniboxPlaceholder": { "alias": "omniboxPlaceholder"; "required": false; }; "omniboxValue": { "alias": "omniboxValue"; "required": false; }; "omniboxDebounceMs": { "alias": "omniboxDebounceMs"; "required": false; }; "leadIcon": { "alias": "leadIcon"; "required": false; }; "leadLabel": { "alias": "leadLabel"; "required": false; }; "showClearButton": { "alias": "showClearButton"; "required": false; }; "clearLabel": { "alias": "clearLabel"; "required": false; }; "target": { "alias": "target"; "required": false; }; "targetWidgetId": { "alias": "targetWidgetId"; "required": false; }; "scopeBarId": { "alias": "scopeBarId"; "required": false; }; "searchField": { "alias": "searchField"; "required": false; }; }, { "activeIdChange": "activeIdChange"; "omniboxValueChange": "omniboxValueChange"; "scopeChange": "scopeChange"; "searchChange": "searchChange"; "filterCriteriaChange": "filterCriteriaChange"; "clear": "clear"; }, never, never, true, never>;
5185
+ static ngAcceptInputType_showOmnibox: unknown;
5186
+ static ngAcceptInputType_omniboxDebounceMs: unknown;
5187
+ static ngAcceptInputType_showClearButton: unknown;
5188
+ }
5189
+
4649
5190
  declare class DataFormatterComponent implements OnInit, OnChanges {
4650
5191
  private cdr;
4651
5192
  private formattingService;
@@ -4805,11 +5346,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
4805
5346
  pageSize: number;
4806
5347
  pageSizeOptionsText: string;
4807
5348
  showFirstLastButtons: boolean;
4808
- paginationStrategy: 'client' | 'server';
5349
+ paginationStrategy: 'client' | 'server' | undefined;
4809
5350
  paginationPosition: 'top' | 'bottom' | 'both';
4810
5351
  paginationStyle: 'default' | 'simple' | 'advanced' | 'compact';
4811
5352
  sortingEnabled: boolean;
4812
- sortingStrategy: 'client' | 'server';
5353
+ sortingStrategy: 'client' | 'server' | undefined;
4813
5354
  allowClearSort: boolean;
4814
5355
  defaultSortField: string;
4815
5356
  defaultSortDirection: 'asc' | 'desc';
@@ -4837,11 +5378,11 @@ declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
4837
5378
  setPaginationPageSize(value: number | string): void;
4838
5379
  setPaginationPageSizeOptions(value: string): void;
4839
5380
  setPaginationShowFirstLastButtons(value: boolean): void;
4840
- setPaginationStrategy(value: 'client' | 'server'): void;
5381
+ setPaginationStrategy(value: 'client' | 'server' | undefined): void;
4841
5382
  setPaginationPosition(value: 'top' | 'bottom' | 'both'): void;
4842
5383
  setPaginationStyle(value: 'default' | 'simple' | 'advanced' | 'compact'): void;
4843
5384
  setSortingEnabled(value: boolean): void;
4844
- setSortingStrategy(value: 'client' | 'server'): void;
5385
+ setSortingStrategy(value: 'client' | 'server' | undefined): void;
4845
5386
  setSortingAllowClear(value: boolean): void;
4846
5387
  setSortingDefaultField(value: string): void;
4847
5388
  setSortingDefaultDirection(value: 'asc' | 'desc'): void;
@@ -5465,5 +6006,147 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
5465
6006
  declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
5466
6007
  declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
5467
6008
 
5468
- export { ANALYTICS_TABLE_ROW_KEY_FIELD, AnalyticsTableConfigAdapterService, AnalyticsTableContractService, AnalyticsTableStatsApiService, BOOLEAN_PRESETS, BehaviorConfigEditorComponent, CURRENCY_PRESETS, ColumnsConfigEditorComponent, DATE_PRESETS, DataFormatterComponent, DataFormattingService, FORMULA_TEMPLATES, FilterConfigService, FilterSettingsComponent, FormulaGeneratorService, JsonConfigEditorComponent, MessagesLocalizationEditorComponent, NUMBER_PRESETS, PERCENTAGE_PRESETS, PRAXIS_FILTER_AUTHORING_MANIFEST, PRAXIS_FILTER_COMPONENT_METADATA, PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, PRAXIS_TABLE_AUTHORING_MANIFEST, PRAXIS_TABLE_COMPONENT_METADATA, PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, PraxisFilter, PraxisFilterWidgetConfigEditor, PraxisTable, PraxisTableConfigEditor, PraxisTableInlineAuthoringEditorComponent, PraxisTableToolbar, PraxisTableWidgetConfigEditor, STRING_PRESETS, TABLE_AI_CAPABILITIES, TABLE_COMPONENT_AI_CAPABILITIES, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, TABLE_COMPONENT_EDIT_PLAN_KIND, TABLE_COMPONENT_EDIT_PLAN_VERSION, TASK_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, analyticsComparisonMetricField, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisFilterMetadata, providePraxisTableMetadata, providePraxisTableToolbarAppearance, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
5469
- export type { ActionLike, AnalyticsComparisonMetricValueKind, AnalyticsTableConfigAdapterOptions, AnalyticsTableContractDefinition, AnalyticsTableContractLoadOptions, AnalyticsTableContractLoadResult, AnalyticsTableContractSource, AnalyticsTableRow, AnalyticsTableViewModel, ArithmeticParams, BehaviorConfigChange, BooleanFormatterOptions, BulkAction, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColumnChange, ColumnDataType$1 as ColumnDataType, ConcatenationParams, ConditionalMappingParams, CurrencyFormatterOptions, DataFormattingOptions, DataMode, DateFormatterOptions, DefaultValueParams, EditorDiagnostic, EditorDocument, FieldSchema, FilterConfig, FilterTag, FormatPreset, FormatterConfig, FormulaDefinition, FormulaParameterSchema, FormulaParams, FormulaTemplate, FormulaType, I18n, JsonEditorEvent, JsonValidationResult, MessagesLocalizationChange, NestedPropertyParams, NumberFormatterOptions, PercentageFormatterOptions, PraxisFilterViewContext, PraxisFilterViewField, PraxisFilterWidgetEditorInputs, PraxisFilterWidgetEditorValue, PraxisTableWidgetEditorInputs, PraxisTableWidgetEditorValue, ResourcePathIntent, RowAction, RowExpansionChangeBase, RowExpansionChangeEvent, RowExpansionReasonCode, RowExpansionTrigger, StringFormatterOptions, TableAiContext, TableAiNavigationContextPack, TableAiNavigationDestinationContext, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableConfigPersistenceStrategy, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };
6009
+ declare function isAnalyticalDrawerSchema(schema: unknown): schema is PraxisAnalyticalDrawerSchema;
6010
+ declare function interpolateRelationEndpoint(endpoint: string, row: Record<string, unknown> | null | undefined): {
6011
+ url: string;
6012
+ hasMissingTokens: boolean;
6013
+ };
6014
+ declare class PraxisAnalyticalDrawerComponent implements OnInit, OnChanges, OnDestroy {
6015
+ private _isOpen;
6016
+ private previousActiveElement;
6017
+ handleDocumentEscape(event?: Event): void;
6018
+ set isOpen(value: boolean);
6019
+ get isOpen(): boolean;
6020
+ private _resourcePath?;
6021
+ set resourcePath(value: string | undefined);
6022
+ get resourcePath(): string | undefined;
6023
+ private _drawerConfig;
6024
+ set drawerConfig(value: TableDrawerConfig | null);
6025
+ get drawerConfig(): TableDrawerConfig | null;
6026
+ private _row;
6027
+ set row(value: any | null);
6028
+ get row(): any | null;
6029
+ private _relations;
6030
+ set relations(value: Record<string, unknown>);
6031
+ get relations(): Record<string, unknown>;
6032
+ loadingRelations: boolean;
6033
+ closeDrawer: EventEmitter<void>;
6034
+ tabChange: EventEmitter<string>;
6035
+ relationFetch: EventEmitter<{
6036
+ key: string;
6037
+ endpoint: string;
6038
+ }>;
6039
+ protected readonly drawerConfigSignal: i0.WritableSignal<TableDrawerConfig | null>;
6040
+ protected readonly rowSignal: i0.WritableSignal<any>;
6041
+ protected readonly relationsSignal: i0.WritableSignal<Record<string, unknown>>;
6042
+ protected readonly activeTabId: i0.WritableSignal<string>;
6043
+ protected readonly customRelations: i0.WritableSignal<Record<string, unknown>>;
6044
+ protected readonly isFetchingRelations: i0.WritableSignal<boolean>;
6045
+ protected readonly resolvedRemoteConfig: i0.WritableSignal<TableDrawerConfig | null>;
6046
+ protected readonly isResolvingSchema: i0.WritableSignal<boolean>;
6047
+ private readonly evaluator;
6048
+ private readonly http;
6049
+ private readonly injector;
6050
+ private readonly drawerRegistry;
6051
+ private readonly apiUrl;
6052
+ private readonly runtimeContext;
6053
+ private readonly sanitizer;
6054
+ private readonly formattingService;
6055
+ private relationSubs;
6056
+ private schemaSub?;
6057
+ private contextSub?;
6058
+ private static readonly relationCaches;
6059
+ private readonly relationCache;
6060
+ private relationEpoch;
6061
+ constructor();
6062
+ private lastFetchedKey;
6063
+ private lastResolvingKey;
6064
+ private schemaResolutionEpoch;
6065
+ private destroyed;
6066
+ static clearCache(): void;
6067
+ private getContextScopePrefix;
6068
+ private resolveUrl;
6069
+ ngOnInit(): void;
6070
+ ngOnChanges(changes: SimpleChanges): void;
6071
+ ngOnDestroy(): void;
6072
+ getEffectiveDrawerConfig(): TableDrawerConfig | null;
6073
+ private mergeTabs;
6074
+ private resolveRemoteDrawerMetadata;
6075
+ protected onClose(): void;
6076
+ protected onBackdropClick(event: MouseEvent): void;
6077
+ protected selectTab(tabId: string): void;
6078
+ private getAnalyticalSchema;
6079
+ protected resolvedTabs: i0.Signal<PraxisAnalyticalDrawerTab[]>;
6080
+ private generateAutoOverviewProperties;
6081
+ private formatPropertyLabel;
6082
+ protected resolvedTitle: i0.Signal<string>;
6083
+ protected resolvedSubtitle: i0.Signal<string>;
6084
+ protected resolvedClassificationPill: i0.Signal<string>;
6085
+ protected resolvedWidth: i0.Signal<string>;
6086
+ protected getDrawerIcon(): string;
6087
+ protected getEvaluationContext(): Record<string, unknown>;
6088
+ protected isCardGridContent(content: unknown): boolean;
6089
+ protected asCardGrid(content: unknown): {
6090
+ columns?: number;
6091
+ cards?: any[];
6092
+ };
6093
+ protected getGridColumnsStyle(columns?: number): string;
6094
+ protected isRichContentDocument(content: unknown): boolean;
6095
+ protected asRichContentDocument(content: unknown): RichContentDocument;
6096
+ protected isPropertyGrid(content: unknown): boolean;
6097
+ protected asPropertyGrid(content: unknown): any[];
6098
+ protected isArray(val: unknown): boolean;
6099
+ protected evaluateAndFormatMetric(item: any): string;
6100
+ protected evaluatePropertyValue(item: any): string;
6101
+ protected renderMicroViz(viz: PraxisPresentationVisualizationConfig | undefined, item: any): SafeHtml;
6102
+ private syncActiveTab;
6103
+ private fetchConfiguredRelations;
6104
+ private invalidateRelations;
6105
+ private cancelRelationRequests;
6106
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisAnalyticalDrawerComponent, never>;
6107
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisAnalyticalDrawerComponent, "praxis-analytical-drawer", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "drawerConfig": { "alias": "drawerConfig"; "required": false; }; "row": { "alias": "row"; "required": false; }; "relations": { "alias": "relations"; "required": false; }; "loadingRelations": { "alias": "loadingRelations"; "required": false; }; }, { "closeDrawer": "closeDrawer"; "tabChange": "tabChange"; "relationFetch": "relationFetch"; }, never, never, true, never>;
6108
+ }
6109
+
6110
+ type AnalyticalDrawerSchemaOrConfig = PraxisAnalyticalDrawerSchema | TableDrawerConfig;
6111
+ declare const PRAXIS_ANALYTICAL_DRAWER_SCHEMAS: InjectionToken<Record<string, AnalyticalDrawerSchemaOrConfig> | Record<string, AnalyticalDrawerSchemaOrConfig>[]>;
6112
+ /**
6113
+ * Registra esquemas de gavetas analíticas por coordenada de recurso (ex.: 'operations/incidentes').
6114
+ * Pode ser chamado no app.config.ts ou em providers de rotas/módulos.
6115
+ */
6116
+ declare function providePraxisAnalyticalDrawerSchemas(schemas: Record<string, AnalyticalDrawerSchemaOrConfig>): Provider;
6117
+ declare class AnalyticalDrawerRegistryService {
6118
+ private readonly registry;
6119
+ constructor();
6120
+ register(resourcePath: string, schema: AnalyticalDrawerSchemaOrConfig): void;
6121
+ registerAll(schemas: Record<string, AnalyticalDrawerSchemaOrConfig>): void;
6122
+ get(resourcePath: string): AnalyticalDrawerSchemaOrConfig | undefined;
6123
+ has(resourcePath: string): boolean;
6124
+ clear(): void;
6125
+ normalizeKey(path: string | undefined | null): string;
6126
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticalDrawerRegistryService, never>;
6127
+ static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticalDrawerRegistryService>;
6128
+ }
6129
+
6130
+ interface ComputedFieldsEvaluationOptions {
6131
+ evaluator?: SafeExpressionEvaluator;
6132
+ formattingService?: {
6133
+ formatValue: (value: any, columnType: any, formatString: string) => any;
6134
+ } | null;
6135
+ }
6136
+ /**
6137
+ * Normaliza a definição de um campo computado (aceita string simples ou objeto estruturado).
6138
+ */
6139
+ declare function normalizeComputedFieldDefinition(raw: PraxisComputedFieldDefinition | string): PraxisComputedFieldDefinition;
6140
+ /**
6141
+ * Formata um valor calculado com suporte a moedas, porcentagens, números e formato compacto corporativo (ex: R$ 3,1M).
6142
+ */
6143
+ declare function formatComputedFieldValue(value: unknown, format?: string, type?: string, formattingService?: ComputedFieldsEvaluationOptions['formattingService']): unknown;
6144
+ /**
6145
+ * Enriquece uma coleção de linhas com as propriedades calculadas declaradas em `computedFieldsConfig`.
6146
+ * Executado durante o pipeline de ingestão de dados, tornando as propriedades computadas
6147
+ * nativamente visíveis para colunas, sorting, filtros, gavetas analíticas e exportação.
6148
+ */
6149
+ declare function applyComputedFieldsToRows<T extends Record<string, any> = Record<string, any>>(rows: T[], computedFieldsConfig?: PraxisComputedFieldsConfig | null, options?: ComputedFieldsEvaluationOptions): T[];
6150
+
6151
+ export { ANALYTICS_TABLE_ROW_KEY_FIELD, AnalyticalDrawerRegistryService, AnalyticsTableConfigAdapterService, AnalyticsTableContractService, AnalyticsTableStatsApiService, BOOLEAN_PRESETS, BehaviorConfigEditorComponent, CURRENCY_PRESETS, ColumnsConfigEditorComponent, DATE_PRESETS, DataFormatterComponent, DataFormattingService, FORMULA_TEMPLATES, FilterConfigService, FilterSettingsComponent, FormulaGeneratorService, JsonConfigEditorComponent, MessagesLocalizationEditorComponent, NUMBER_PRESETS, PERCENTAGE_PRESETS, PRAXIS_ANALYTICAL_DRAWER_SCHEMAS, PRAXIS_FILTER_AUTHORING_MANIFEST, PRAXIS_FILTER_COMPONENT_METADATA, PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, PRAXIS_TABLE_AUTHORING_MANIFEST, PRAXIS_TABLE_COMPONENT_METADATA, PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, PraxisAnalyticalDrawerComponent, PraxisFilter, PraxisFilterOutletComponent, PraxisFilterOutletDirective, PraxisFilterWidgetConfigEditor, PraxisScopeBarComponent, PraxisTable, PraxisTableConfigEditor, PraxisTableInlineAuthoringEditorComponent, PraxisTableToolbar, PraxisTableWidgetConfigEditor, STRING_PRESETS, TABLE_AI_CAPABILITIES, TABLE_COMPONENT_AI_CAPABILITIES, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, TABLE_COMPONENT_EDIT_PLAN_KIND, TABLE_COMPONENT_EDIT_PLAN_VERSION, TASK_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, analyticsComparisonMetricField, applyComputedFieldsToRows, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, formatComputedFieldValue, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, interpolateRelationEndpoint, isAnalyticalDrawerSchema, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeComputedFieldDefinition, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisAnalyticalDrawerSchemas, providePraxisFilterMetadata, providePraxisTableMetadata, providePraxisTableToolbarAppearance, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
6152
+ export type { ActionLike, AnalyticalDrawerSchemaOrConfig, AnalyticsComparisonMetricValueKind, AnalyticsTableConfigAdapterOptions, AnalyticsTableContractDefinition, AnalyticsTableContractLoadOptions, AnalyticsTableContractLoadResult, AnalyticsTableContractSource, AnalyticsTableRow, AnalyticsTableViewModel, ArithmeticParams, BehaviorConfigChange, BooleanFormatterOptions, BulkAction, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColumnChange, ColumnDataType$1 as ColumnDataType, ComputedFieldsEvaluationOptions, ConcatenationParams, ConditionalMappingParams, CurrencyFormatterOptions, DataFormattingOptions, DataMode, DateFormatterOptions, DefaultValueParams, DrawerOpenEvent, EditorDiagnostic, EditorDocument, FieldSchema, FilterConfig, FilterTag, FormatPreset, FormatterConfig, FormulaDefinition, FormulaParameterSchema, FormulaParams, FormulaTemplate, FormulaType, I18n, JsonEditorEvent, JsonValidationResult, MessagesLocalizationChange, NestedPropertyParams, NumberFormatterOptions, PercentageFormatterOptions, PraxisFilterOutletTarget, PraxisFilterTeleportHost, PraxisFilterViewContext, PraxisFilterViewField, PraxisFilterWidgetEditorInputs, PraxisFilterWidgetEditorValue, PraxisScopeBarConfig, PraxisScopeBarItem, PraxisTableCrossFilterItem, PraxisTableQueryContextClearEvent, PraxisTableWidgetEditorInputs, PraxisTableWidgetEditorValue, ResourcePathIntent, RowAction, RowClickEvent, RowDoubleClickEvent, RowExpansionChangeBase, RowExpansionChangeEvent, RowExpansionReasonCode, RowExpansionTrigger, RowSelectionChangeEvent, StringFormatterOptions, TableAiContext, TableAiNavigationContextPack, TableAiNavigationDestinationContext, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableConfigPersistenceStrategy, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };