@praxisui/table 8.0.0-beta.8 → 8.0.0-beta.81

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.
Files changed (45) hide show
  1. package/README.md +191 -11
  2. package/docs/DSL-Extensions-Guide.md +23 -0
  3. package/docs/adr/2026-03-dynamic-filter-cross-lib-coupling.md +107 -0
  4. package/docs/adr/2026-03-filter-drawer-adapter-light-entrypoint.md +105 -0
  5. package/docs/adr/2026-03-table-editor-idfield-decision.md +85 -0
  6. package/docs/column-resize-reorder-implementation-plan.md +338 -0
  7. package/docs/column-resize-reorder-review-prompt.md +34 -0
  8. package/docs/dynamic-filter-architecture-overview.md +207 -0
  9. package/docs/dynamic-filter-backend-contract-cheatsheet.md +167 -0
  10. package/docs/dynamic-filter-editor-settings-guide.md +229 -0
  11. package/docs/dynamic-filter-host-integration-guide.md +266 -0
  12. package/docs/dynamic-filter-payload-contract.md +332 -0
  13. package/docs/dynamic-filter-range-filters-guide.md +296 -0
  14. package/docs/dynamic-filter-troubleshooting-guide.md +257 -0
  15. package/docs/dynamic-inline-filter-catalog.md +147 -0
  16. package/docs/e2e-column-drag-playwright.md +62 -0
  17. package/docs/expandable-rows-enterprise-big-leagues-plan.md +1080 -0
  18. package/docs/json-logic-operators-and-helpers.md +57 -0
  19. package/docs/local-data-mode-precedence.md +12 -0
  20. package/docs/local-data-pre-implementation-baseline.md +22 -0
  21. package/docs/local-data-preimplementation-go-no-go.md +39 -0
  22. package/docs/local-data-support-implementation-plan.md +524 -0
  23. package/docs/local-data-support-pr-package.md +66 -0
  24. package/docs/localization-persistence-merge.md +22 -0
  25. package/docs/performance-hardening-v2-implementation-plan.md +479 -0
  26. package/docs/playground-scenario-curation-plan.md +482 -0
  27. package/docs/playground-scenario-second-opinion-prompt.md +121 -0
  28. package/docs/playground-scenario-second-opinion-review.md +234 -0
  29. package/docs/release-notes-p1-hardening.md +76 -0
  30. package/docs/table-authoring-document-completeness-checklist.md +120 -0
  31. package/docs/table-editor-capability-review-prompt.md +349 -0
  32. package/docs/visual-rules-editor-transition.md +29 -0
  33. package/fesm2022/praxisui-table-filter-form-dialog-host.component-DbwGIMjF.mjs +232 -0
  34. package/fesm2022/praxisui-table-praxisui-table-BigLNasG.mjs +59830 -0
  35. package/fesm2022/praxisui-table-table-agentic-authoring-turn-flow-CyJJHpMr.mjs +3014 -0
  36. package/fesm2022/praxisui-table-table-ai.adapter-D8fQSvC3.mjs +3624 -0
  37. package/fesm2022/praxisui-table.mjs +1 -51444
  38. package/filter-drawer-adapter/package.json +2 -1
  39. package/package.json +22 -15
  40. package/src/lib/praxis-table.json-api.md +1357 -0
  41. package/{index.d.ts → types/praxisui-table.d.ts} +548 -120
  42. package/fesm2022/praxisui-table-filter-form-dialog-host.component-Dm2f0muy.mjs +0 -165
  43. package/fesm2022/praxisui-table-table-agentic-authoring-turn-flow-tu7jtTwV.mjs +0 -280
  44. package/fesm2022/praxisui-table-table-ai.adapter-DxjDaQqy.mjs +0 -895
  45. /package/{filter-drawer-adapter/index.d.ts → types/praxisui-table-filter-drawer-adapter.d.ts} +0 -0
@@ -1,7 +1,10 @@
1
+ import * as _praxisui_core from '@praxisui/core';
2
+ import { TableConfig, LoggerService, PraxisI18nService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, PraxisLoadingRenderer, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, PraxisExportScope, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, JsonLogicExpression, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
1
3
  import * as i0 from '@angular/core';
2
- import { OnDestroy, EventEmitter, ElementRef, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, Provider, AfterContentInit } from '@angular/core';
4
+ import { OnDestroy, EventEmitter, ElementRef, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, Provider, AfterContentInit, Injector } from '@angular/core';
3
5
  import { ActivatedRoute } from '@angular/router';
4
6
  import { MatTable, MatTableDataSource } from '@angular/material/table';
7
+ import * as _angular_material_paginator from '@angular/material/paginator';
5
8
  import { MatPaginatorSelectConfig, MatPaginator, PageEvent } from '@angular/material/paginator';
6
9
  import { MatSort, Sort } from '@angular/material/sort';
7
10
  import { MatSnackBar } from '@angular/material/snack-bar';
@@ -9,18 +12,16 @@ import { SelectionModel } from '@angular/cdk/collections';
9
12
  import { CdkDragDrop, CdkDragEnd, CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';
10
13
  import { BehaviorSubject, Subscription, Observable } from 'rxjs';
11
14
  import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
12
- import * as _praxisui_core from '@praxisui/core';
13
- import { TableConfig, LoggerService, PraxisI18nService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ConnectionStorage, ResourceDiscoveryService, LoadingOrchestrator, PraxisLoadingRenderer, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, ResourceActionCatalogItem, JsonLogicExpression, GlobalActionSpec, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisJsonLogicService, TableConfigService, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog } from '@praxisui/core';
14
15
  import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
15
16
  import { MatDialog } from '@angular/material/dialog';
17
+ import { BaseDynamicFieldComponent } from '@praxisui/dynamic-fields';
16
18
  import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
19
+ import { MatSelect } from '@angular/material/select';
17
20
  import { PraxisDialog } from '@praxisui/dialog';
18
- import { PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantShellQuickReply, PraxisAssistantShellMessage } from '@praxisui/ai';
21
+ import { PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantShellMessage } from '@praxisui/ai';
22
+ import { HttpClient } from '@angular/common/http';
19
23
  import { MatTabChangeEvent } from '@angular/material/tabs';
20
- import * as _praxisui_table_rule_builder from '@praxisui/table-rule-builder';
21
24
  import { RuleEffectDefinition } from '@praxisui/table-rule-builder';
22
- import { HttpClient } from '@angular/common/http';
23
- import * as _angular_material_paginator_d_Zo1cMMo4 from '@angular/material/paginator.d-Zo1cMMo4';
24
25
  import { MatCheckboxChange } from '@angular/material/checkbox';
25
26
 
26
27
  interface ActionLike {
@@ -46,11 +47,15 @@ declare class PraxisTableToolbar implements OnDestroy {
46
47
  showActionsGroup: boolean;
47
48
  showEndActions: boolean;
48
49
  showMobileActions: boolean;
50
+ exportBusy: boolean;
49
51
  evaluationContext: Record<string, any> | null;
50
52
  toolbarAction: EventEmitter<{
51
53
  action: string;
52
54
  actionConfig?: any;
53
55
  }>;
56
+ exportAction: EventEmitter<{
57
+ format: string;
58
+ }>;
54
59
  readonly getActionId: typeof getActionId;
55
60
  private readonly jsonLogic;
56
61
  private readonly validToolbarActionTypes;
@@ -65,6 +70,7 @@ declare class PraxisTableToolbar implements OnDestroy {
65
70
  constructor(hostRef?: ElementRef<HTMLElement> | null, logger?: LoggerService | undefined, i18n?: PraxisI18nService | undefined);
66
71
  getExportDataLabel(): string;
67
72
  getMoreActionsLabel(): string;
73
+ emitExportAction(event: Event, format: string): void;
68
74
  private tx;
69
75
  ngOnDestroy(): void;
70
76
  private getNestedPropertyValue;
@@ -112,7 +118,7 @@ declare class PraxisTableToolbar implements OnDestroy {
112
118
  private sortActions;
113
119
  getExportIcon(format: string): string;
114
120
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableToolbar, [null, { optional: true; }, { optional: true; }]>;
115
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableToolbar, "praxis-table-toolbar", never, { "config": { "alias": "config"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "showMain": { "alias": "showMain"; "required": false; }; "showActionsGroup": { "alias": "showActionsGroup"; "required": false; }; "showEndActions": { "alias": "showEndActions"; "required": false; }; "showMobileActions": { "alias": "showMobileActions"; "required": false; }; "evaluationContext": { "alias": "evaluationContext"; "required": false; }; }, { "toolbarAction": "toolbarAction"; }, never, ["[advancedFilter]", "[toolbar]", "[end-actions]"], true, never>;
121
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableToolbar, "praxis-table-toolbar", never, { "config": { "alias": "config"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "showMain": { "alias": "showMain"; "required": false; }; "showActionsGroup": { "alias": "showActionsGroup"; "required": false; }; "showEndActions": { "alias": "showEndActions"; "required": false; }; "showMobileActions": { "alias": "showMobileActions"; "required": false; }; "exportBusy": { "alias": "exportBusy"; "required": false; }; "evaluationContext": { "alias": "evaluationContext"; "required": false; }; }, { "toolbarAction": "toolbarAction"; "exportAction": "exportAction"; }, never, ["[advancedFilter]", "[toolbar]", "[end-actions]"], true, never>;
116
122
  }
117
123
 
118
124
  type ColumnDataType$1 = 'date' | 'number' | 'currency' | 'percentage' | 'string' | 'boolean' | 'custom';
@@ -213,6 +219,7 @@ declare class DataFormattingService {
213
219
  */
214
220
  formatValue(value: any, columnType: ColumnDataType$1, formatString: string, options?: DataFormattingOptions): any;
215
221
  private coerceValueToType;
222
+ private parseDateOnlyString;
216
223
  private normalizeNumericDateInput;
217
224
  private formatDate;
218
225
  private formatNumber;
@@ -335,12 +342,15 @@ type I18n = {
335
342
  searchPlaceholder: string;
336
343
  advanced: string;
337
344
  advancedTitle?: string;
345
+ advancedOpening?: string;
346
+ advancedUnavailable?: string;
338
347
  clear: string;
339
348
  apply: string;
340
349
  add?: string;
341
350
  filtersAdd?: string;
342
351
  filtersSearch?: string;
343
352
  addCount?: string;
353
+ addUnavailable?: string;
344
354
  pendingCount?: string;
345
355
  activeFiltersCount?: string;
346
356
  selectAll?: string;
@@ -423,10 +433,13 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
423
433
  showAddButton: boolean;
424
434
  /** Controla a exibição do botão de limpar filtros */
425
435
  showClearButton: boolean;
426
- /** Controla a exibição do botão de pesquisar/aplicar filtros */
436
+ /** Controla a exibição do botão de pesquisar/aplicar filtros em fluxos manuais. */
427
437
  showSearchButton: boolean;
428
438
  /** Exibir confirmação ao excluir atalho (tag) */
429
439
  confirmTagDelete: boolean;
440
+ private alwaysFieldComponentRefs;
441
+ private selectedFieldComponentRefs;
442
+ private toggleFieldComponentRefs;
430
443
  /** Move toggles/booleans simples para a área de ações */
431
444
  placeBooleansInActions: boolean;
432
445
  /** Mostrar rótulos dos toggles na área de ações */
@@ -513,6 +526,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
513
526
  private alwaysFormReset$;
514
527
  private dto;
515
528
  advancedOpen: boolean;
529
+ advancedOpening: boolean;
516
530
  advancedValid: boolean;
517
531
  activeFiltersCount: number;
518
532
  saving: boolean;
@@ -539,7 +553,8 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
539
553
  id: string;
540
554
  label: string;
541
555
  }>;
542
- private addItemsUpdateQueued;
556
+ readonly addSearchFieldId = "__praxis_filter_add_search__";
557
+ readonly addSelectAllFieldId = "__praxis_filter_add_select_all__";
543
558
  private applySchemaQueued;
544
559
  private fallbackLogger?;
545
560
  private fallbackLoggerEnvironment;
@@ -554,6 +569,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
554
569
  private _dbgLastToggleComponentsAt;
555
570
  overlayPositions: ConnectedPosition[];
556
571
  private advancedDebouncedSub?;
572
+ private advancedOpenRequestId;
557
573
  private lastActiveElement?;
558
574
  private lastSubmitAt;
559
575
  private resizeObs?;
@@ -592,6 +608,8 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
592
608
  private resolveInputDto;
593
609
  private resolveInitialDto;
594
610
  private syncFormsFromDto;
611
+ private refreshProgrammaticFilterFieldDisplays;
612
+ private refreshProgrammaticFilterFieldDisplay;
595
613
  ngOnInit(): Promise<void>;
596
614
  ngAfterViewInit(): void;
597
615
  onWindowResize(): void;
@@ -643,6 +661,11 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
643
661
  retrySchemaLoad(): void;
644
662
  private applySchemaMetas;
645
663
  private applySchemaMetasNow;
664
+ private withFilterMaterialDesignPolicy;
665
+ private withAdvancedDatePickerTouchPolicy;
666
+ private isAdvancedDatePickerControl;
667
+ private buildAdvancedFilterColumn;
668
+ private isCompositeRangeFilterField;
646
669
  private pickMetasByOrder;
647
670
  private hasRemoteOptionSource;
648
671
  private withInferredFilterControlType;
@@ -655,9 +678,9 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
655
678
  private mergeAlwaysVisibleMetadata;
656
679
  private mergeFieldMetadataOverride;
657
680
  ngDoCheck(): void;
658
- onAlwaysComponents(map: Map<string, any>): void;
659
- onSelectedComponents(map: Map<string, any>): void;
660
- onToggleComponents(map: Map<string, any>): void;
681
+ onAlwaysComponents(map: Map<string, ComponentRef<BaseDynamicFieldComponent>>): void;
682
+ onSelectedComponents(map: Map<string, ComponentRef<BaseDynamicFieldComponent>>): void;
683
+ onToggleComponents(map: Map<string, ComponentRef<BaseDynamicFieldComponent>>): void;
661
684
  onFieldInteraction(event: Event): void;
662
685
  openSelectedFieldEditor(): void;
663
686
  private isLocalE2eAuthoringOptInEnabled;
@@ -675,6 +698,9 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
675
698
  onAdvancedValidityChange(valid: boolean): void;
676
699
  onAddOpened(opened: boolean): void;
677
700
  onAddQuery(q: string): void;
701
+ openAddSelect(select: MatSelect): void;
702
+ hasAddableFields(): boolean;
703
+ private getAddableItems;
678
704
  private updateAddItems;
679
705
  trackById(_idx: number, it: {
680
706
  id: string;
@@ -725,9 +751,13 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
725
751
  private ensureAdvancedConfigReady;
726
752
  private focusSchemaRetryButton;
727
753
  private showAdvancedUnavailableFeedback;
754
+ private setAdvancedOpening;
755
+ private deferAdvancedOpen;
728
756
  private openAdvancedModal;
729
757
  private openAdvancedDrawer;
730
758
  toggleAdvanced(): void;
759
+ hasAdvancedFields(): boolean;
760
+ private getAdvancedCandidateMetas;
731
761
  private usesProvidedFieldMetadata;
732
762
  private applyProvidedFieldMetadata;
733
763
  private saveConfig;
@@ -739,6 +769,9 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
739
769
  private persistTags;
740
770
  private cleanFilterPayload;
741
771
  private upsertDtoValue;
772
+ private normalizeFilterFieldValue;
773
+ private getFilterFieldMetaByName;
774
+ private isEntityLookupFilterField;
742
775
  private isEffectivelyEmptyFilterValue;
743
776
  private syncFormsToDto;
744
777
  private updateDisplayedTags;
@@ -754,19 +787,68 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
754
787
  declare const PRAXIS_FILTER_COMPONENT_METADATA: ComponentDocMeta;
755
788
  declare function providePraxisFilterMetadata(): Provider;
756
789
 
790
+ type AnalyticsTableRow = Record<string, string | number | boolean | null>;
791
+ type AnalyticsTableContractSource = 'remote' | 'fallback';
792
+ interface AnalyticsTableViewModel {
793
+ config: TableConfig;
794
+ data: AnalyticsTableRow[];
795
+ }
796
+ interface AnalyticsTableContractDefinition<TKey extends string = string> {
797
+ key: TKey;
798
+ projectionId: string;
799
+ path: string;
800
+ title: PraxisTextValue;
801
+ subtitle?: PraxisTextValue;
802
+ fallbackProjection: PraxisAnalyticsProjection;
803
+ fallbackRows?: AnalyticsTableRow[];
804
+ }
805
+ interface AnalyticsTableContractLoadOptions<TKey extends string = string> {
806
+ cacheNamespace?: string;
807
+ queryContexts?: Partial<Record<TKey, PraxisDataQueryContext | null>>;
808
+ }
809
+ interface AnalyticsTableContractLoadResult<TKey extends string = string> {
810
+ views: Record<TKey, AnalyticsTableViewModel>;
811
+ sources: Record<TKey, AnalyticsTableContractSource>;
812
+ errors: Partial<Record<TKey, string>>;
813
+ }
814
+
815
+ declare class AnalyticsTableStatsApiService {
816
+ private readonly http;
817
+ private readonly apiUrl;
818
+ private readonly statsBuilder;
819
+ constructor(http: HttpClient, apiUrl: ApiUrlConfig);
820
+ execute(projection: PraxisAnalyticsProjection, queryContext?: PraxisDataQueryContext | null): Promise<AnalyticsTableRow[]>;
821
+ private toTableRows;
822
+ private resolveTimeSeriesCategory;
823
+ private resolveBucketCategory;
824
+ private projectMetricValues;
825
+ private resolveMetricValue;
826
+ private buildStatsUrl;
827
+ private applyQueryContext;
828
+ private normalizeError;
829
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticsTableStatsApiService, never>;
830
+ static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableStatsApiService>;
831
+ }
832
+
757
833
  type SchemaFieldHint = {
758
834
  name: string;
759
835
  label?: string;
760
836
  type?: string;
761
837
  controlType?: string;
762
838
  numericFormat?: string;
839
+ format?: string;
763
840
  options?: Array<Record<string, unknown> | string | number | boolean>;
764
841
  optionLabelKey?: string;
765
842
  optionValueKey?: string;
766
843
  enumValues?: string[];
767
844
  };
845
+ type FilterSchemaFieldHint = SchemaFieldHint & {
846
+ relatedColumnFields?: string[];
847
+ relatedColumnLabels?: string[];
848
+ };
768
849
  type PraxisDataQueryContextBridge = {
769
850
  filters?: Record<string, unknown> | null;
851
+ filterExpression?: PraxisQueryFilterExpression | null;
770
852
  sort?: string[] | null;
771
853
  limit?: number | null;
772
854
  page?: {
@@ -835,6 +917,8 @@ type RowActionRuntimeOptions = {
835
917
  type RuntimeRowAction = {
836
918
  id: string;
837
919
  action: string;
920
+ globalAction?: GlobalActionRef;
921
+ effects?: PraxisRuntimeGlobalActionEffect[];
838
922
  label?: string;
839
923
  icon?: string;
840
924
  color?: string;
@@ -842,6 +926,7 @@ type RuntimeRowAction = {
842
926
  disabled?: boolean;
843
927
  overflow?: boolean;
844
928
  __praxisDiscoveredAction?: ResourceActionCatalogItem;
929
+ __praxisDiscoveredSurface?: ResourceSurfaceCatalogItem;
845
930
  __praxisCapabilityDenied?: boolean;
846
931
  };
847
932
  type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
@@ -865,17 +950,24 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
865
950
  private connectionStorage;
866
951
  private hostRef;
867
952
  private global;
868
- private resourceDiscovery;
953
+ private injector;
869
954
  private componentKeys;
870
955
  private loadingOrchestrator;
956
+ private globalActions;
871
957
  private loadingRenderer?;
872
958
  private route?;
873
959
  private logger?;
960
+ private analyticsStatsApi?;
874
961
  private static readonly CELL_ANIMATION_CHANGE_CACHE_LIMIT;
962
+ private static readonly AI_SELECTION_ROW_LIMIT;
963
+ private static readonly AI_SELECTION_ID_LIMIT;
964
+ private static readonly AI_SELECTION_FIELD_LIMIT;
875
965
  private static readonly ROW_DISCOVERY_SUCCESS_CACHE_TTL_MS;
876
966
  private static readonly ROW_DISCOVERY_ERROR_CACHE_TTL_MS;
877
967
  private static readonly ROW_DISCOVERY_CACHE_LIMIT;
878
968
  private static readonly ROW_DISCOVERY_MAX_CONCURRENT_REQUESTS;
969
+ private _resourceDiscovery?;
970
+ private _resourceSurfaceOpenAdapter?;
879
971
  readonly paginatorSelectConfig: MatPaginatorSelectConfig;
880
972
  private static readonly ROW_ANIMATION_PRESETS;
881
973
  private static readonly ROW_ANIMATION_PRESET_ALIASES;
@@ -894,12 +986,24 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
894
986
  crudContext: any;
895
987
  filterCriteria: Record<string, any>;
896
988
  queryContext: PraxisDataQueryContextBridge | null;
989
+ aiContext: {
990
+ recordSurfaces?: RecordRelatedSurfaceContextPack | null;
991
+ } | null;
992
+ advancedFilterValue: Record<string, any>;
993
+ advancedFilterRuntimeVisibleFields: string[];
994
+ private advancedFilterAlwaysVisibleCacheKey;
995
+ private advancedFilterAlwaysVisibleCache?;
996
+ private advancedFilterMetadataOverridesCacheKey;
997
+ private advancedFilterMetadataOverridesCacheSource?;
998
+ private advancedFilterMetadataOverridesCache?;
897
999
  rowClick: EventEmitter<any>;
1000
+ widgetEvent: EventEmitter<any>;
898
1001
  rowDoubleClick: EventEmitter<any>;
899
1002
  rowExpansionChange: EventEmitter<RowExpansionChangeEvent>;
900
1003
  rowAction: EventEmitter<any>;
901
1004
  toolbarAction: EventEmitter<any>;
902
1005
  bulkAction: EventEmitter<any>;
1006
+ exportAction: EventEmitter<any>;
903
1007
  columnReorder: EventEmitter<any>;
904
1008
  columnReorderAttempt: EventEmitter<any>;
905
1009
  beforeDelete: EventEmitter<any>;
@@ -909,6 +1013,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
909
1013
  afterBulkDelete: EventEmitter<any>;
910
1014
  bulkDeleteError: EventEmitter<any>;
911
1015
  schemaStatusChange: EventEmitter<any>;
1016
+ configChange: EventEmitter<_praxisui_core.TableConfigModern>;
912
1017
  metadataChange: EventEmitter<any>;
913
1018
  loadingStateChange: EventEmitter<LoadingState>;
914
1019
  collectionLinksChange: EventEmitter<RestApiLinks | null>;
@@ -937,6 +1042,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
937
1042
  readonly isExpansionDetailRow: (index: number, row: any) => boolean;
938
1043
  columnReorderStatusMessage: string;
939
1044
  columnReorderVisualStatusMessage: string;
1045
+ exportBusy: boolean;
1046
+ exportStatusMessage: string;
940
1047
  private columnReorderStatusTimer;
941
1048
  private columnReorderVisualStatusTimer;
942
1049
  private columnReorderUndoSubscription;
@@ -949,6 +1056,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
949
1056
  private lastResolvedDataMode;
950
1057
  private localFilterFieldMetadataCache;
951
1058
  private localFilterFieldMetadataCacheKey;
1059
+ private analyticsLoadSequence;
952
1060
  private uncontrolledExpandedRowKeys;
953
1061
  private readonly expansionOpaqueRefCacheLimit;
954
1062
  private expansionOpaqueRefByRowKey;
@@ -976,8 +1084,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
976
1084
  private rowDiscoveryMarkForCheckScheduled;
977
1085
  private lastRowDiscoveryScopeKey;
978
1086
  private readonly i18n;
1087
+ private readonly collectionExport;
979
1088
  private readonly paginatorIntl;
980
1089
  private schemaFieldsSnapshot;
1090
+ private filterSchemaFieldsSnapshot;
981
1091
  private runtimeSchemaMeta;
982
1092
  schemaError: boolean;
983
1093
  dataError: boolean;
@@ -1009,6 +1119,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1009
1119
  getColumnTextAlignStyle(column: ColumnDefinition): string | null;
1010
1120
  getColumnWidthStyle(column: ColumnDefinition): string | null;
1011
1121
  getColumnHeaderAttrStyle(column: ColumnDefinition): string | null;
1122
+ getColumnHeaderNgStyle(column: ColumnDefinition): Record<string, string> | undefined;
1012
1123
  getColumnCellAttrStyle(column: ColumnDefinition): string | null;
1013
1124
  getTableElevationClassName(): string;
1014
1125
  private normalizeTableElevationLevel;
@@ -1025,6 +1136,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1025
1136
  hasBottomPaginator(): boolean;
1026
1137
  hasExplicitResourcePath(): boolean;
1027
1138
  hasLocalDataInput(): boolean;
1139
+ hasAnalyticsProjectionInput(): boolean;
1028
1140
  getDataMode(): DataMode;
1029
1141
  isRemoteMode(): boolean;
1030
1142
  isLocalMode(): boolean;
@@ -1051,6 +1163,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1051
1163
  shouldRenderAdvancedFilter(): boolean;
1052
1164
  getAdvancedFilterResourcePath(): string;
1053
1165
  getAdvancedFilterPersistenceKey(): string;
1166
+ getAdvancedFilterAlwaysVisibleFields(): string[] | undefined;
1167
+ getAdvancedFilterAlwaysVisibleFieldMetadataOverrides(): Record<string, Record<string, any>>;
1054
1168
  getAdvancedFilterFieldMetadata(): FieldMetadata[] | null | undefined;
1055
1169
  private buildLocalFilterMetadata;
1056
1170
  private buildLocalFilterMetadataCacheKey;
@@ -1071,8 +1185,20 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1071
1185
  get hostColumnBordersClass(): boolean;
1072
1186
  trackByRow(index: number, item: any): any;
1073
1187
  getSchemaFieldsSnapshot(): SchemaFieldHint[];
1188
+ getFilterSchemaFieldsSnapshot(): FilterSchemaFieldHint[];
1189
+ getResourceCapabilityDigest(): ResourceCapabilityDigest | null;
1190
+ ensureFilterSchemaFieldsSnapshot(): Promise<void>;
1191
+ ensureAiAssistantRecordSurfaceContext(): Promise<void>;
1192
+ getAiAssistantRecordSurfacesContext(): RecordRelatedSurfaceContextPack | null;
1193
+ getAiAssistantSelectedRowsContext(): Record<string, any> | null;
1194
+ private ensureAiAssistantRowCapabilitySnapshot;
1195
+ private buildCapabilitySnapshotFromSurfaceCatalog;
1196
+ private buildAiAssistantResourceSurfaceContexts;
1197
+ private buildRecordRelatedSurfaceContextFromResourceSurface;
1198
+ private humanizeResourceSurfaceLabel;
1074
1199
  aiAdapter: any;
1075
1200
  private aiAdapterLoadStarted;
1201
+ private aiAssistantOpenAfterAdapterLoad;
1076
1202
  aiAssistantOpen: boolean;
1077
1203
  aiAssistantPrompt: string;
1078
1204
  aiAssistantViewState: PraxisAssistantTurnViewState | null;
@@ -1081,7 +1207,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1081
1207
  private aiAssistantController;
1082
1208
  private aiAssistantStateSubscription;
1083
1209
  private readonly aiApi;
1210
+ private readonly assistantSessions;
1084
1211
  private readonly aiTurnOrchestrator;
1212
+ private readonly aiAssistantSessionEffect;
1085
1213
  private computedContextCache;
1086
1214
  private computedFieldNames;
1087
1215
  private readonly jsonLogic;
@@ -1119,6 +1247,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1119
1247
  private recomputeLocalView;
1120
1248
  private resolveLocalSortField;
1121
1249
  private setSchemaFieldsSnapshot;
1250
+ private setFilterSchemaFieldsSnapshot;
1251
+ private inferFilterSchemaSourceFields;
1252
+ private resolveFilterSchemaRelatedColumns;
1253
+ private normalizeFieldAlias;
1122
1254
  private normalizeSchemaOptions;
1123
1255
  private normalizeEnumValues;
1124
1256
  private normalizeSchemaKey;
@@ -1128,21 +1260,57 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1128
1260
  private tableConfigKey;
1129
1261
  private filterConfigKey;
1130
1262
  private ensureConfigDefaults;
1263
+ private mergePersistedTableConfigWithInput;
1264
+ private reconcileHostDeclaredTableContract;
1265
+ private reconcileHostDeclaredColumns;
1266
+ private reconcileHostDeclaredRowActions;
1267
+ private reconcileHostDeclaredExport;
1268
+ private normalizePersistedExportFormats;
1269
+ private normalizePersistedRowActionIds;
1270
+ private normalizePersistedColumnIds;
1271
+ private clonePlainObject;
1131
1272
  private setShowToolbar;
1132
1273
  private shouldExposeToolbar;
1133
- constructor(cdr: ChangeDetectorRef, settingsPanel: SettingsPanelService, crudService: GenericCrudService<any, any>, tableDefaultsProvider: TableDefaultsProvider, filterConfig: FilterConfigService, formattingService: DataFormattingService, pxDialog: PraxisDialog, snackBar: MatSnackBar, asyncConfigStorage: AsyncConfigStorage, connectionStorage: ConnectionStorage, hostRef: ElementRef<HTMLElement>, global: GlobalConfigService, resourceDiscovery: ResourceDiscoveryService, componentKeys: ComponentKeyService, loadingOrchestrator: LoadingOrchestrator, loadingRenderer?: PraxisLoadingRenderer | undefined, route?: ActivatedRoute | undefined, logger?: LoggerService | undefined);
1274
+ constructor(cdr: ChangeDetectorRef, settingsPanel: SettingsPanelService, crudService: GenericCrudService<any, any>, tableDefaultsProvider: TableDefaultsProvider, filterConfig: FilterConfigService, formattingService: DataFormattingService, pxDialog: PraxisDialog, snackBar: MatSnackBar, asyncConfigStorage: AsyncConfigStorage, connectionStorage: ConnectionStorage, hostRef: ElementRef<HTMLElement>, global: GlobalConfigService, injector: Injector, componentKeys: ComponentKeyService, loadingOrchestrator: LoadingOrchestrator, globalActions: GlobalActionService, loadingRenderer?: PraxisLoadingRenderer | undefined, route?: ActivatedRoute | undefined, logger?: LoggerService | undefined, analyticsStatsApi?: AnalyticsTableStatsApiService | undefined);
1275
+ private get resourceDiscovery();
1276
+ private get resourceSurfaceOpenAdapter();
1134
1277
  private ensureAiAdapterLoaded;
1135
1278
  openAiAssistant(): void;
1279
+ aiAssistantTriggerTestId(position: string): string;
1280
+ hasMinimizedAiAssistantSession(): boolean;
1281
+ aiAssistantTriggerIcon(): string;
1282
+ aiAssistantTriggerBadge(): string;
1283
+ aiAssistantTriggerLabel(): string;
1284
+ aiAssistantTriggerTooltip(): string;
1285
+ openAiAssistantFromSession(session: PraxisAssistantSessionSnapshot): void;
1136
1286
  closeAiAssistant(): void;
1137
1287
  onAiAssistantPromptChange(prompt: string): void;
1138
1288
  onAiAssistantSubmit(prompt: string): void;
1139
1289
  onAiAssistantApply(): void;
1290
+ private shouldMinimizeAiAssistantAfterApply;
1291
+ private isMaterializedRowActionPatch;
1292
+ private asPlainRecord;
1293
+ onAiAssistantRetry(): void;
1294
+ onAiAssistantCancel(): void;
1140
1295
  onAiAssistantQuickReply(reply: PraxisAssistantShellQuickReply): void;
1141
1296
  onAiAssistantEditMessage(message: PraxisAssistantShellMessage): void;
1142
1297
  onAiAssistantResendMessage(message: PraxisAssistantShellMessage): void;
1143
1298
  onAiAssistantLayoutChange(layout: PraxisAssistantShellLayout): void;
1144
1299
  private initializeAiAssistantController;
1145
1300
  private buildAiAssistantContextItems;
1301
+ private interpolateAiAssistantContextValue;
1302
+ private aiAssistantSelectedRecordsValue;
1303
+ private buildAiAssistantContextSnapshot;
1304
+ private syncAiAssistantSession;
1305
+ private assistantContextRuntimeLocale;
1306
+ private refreshAiAssistantContextAfterSelectionChange;
1307
+ private hasAiAssistantSessionState;
1308
+ private resolveAiAssistantSessionId;
1309
+ private resolveAiAssistantOwnerId;
1310
+ private resolveAiAssistantRouteKey;
1311
+ private resolveAiAssistantSummary;
1312
+ private resolveAiAssistantBadge;
1313
+ private resolveAiAssistantIcon;
1146
1314
  private emitLoadingState;
1147
1315
  private hasResolvedRemoteDataLoad;
1148
1316
  private isTableDataLoading;
@@ -1168,6 +1336,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1168
1336
  onPageChange(event: PageEvent): void;
1169
1337
  onSortChange(event: Sort): void;
1170
1338
  onRowClicked(row: any, index: number, event?: MouseEvent): void;
1339
+ requestRecordSurfaceOpen(surface: Record<string, unknown>): boolean;
1340
+ private resolveResourceRecordSurfaceContext;
1341
+ private openResourceRecordSurface;
1171
1342
  isRowExpansionRuntimeEnabled(): boolean;
1172
1343
  isExpansionIconTriggerEnabled(): boolean;
1173
1344
  isRowExpandable(row: any, index?: number): boolean;
@@ -1360,22 +1531,67 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1360
1531
  private emitRowActionEvent;
1361
1532
  private showConfirmDialog;
1362
1533
  private executeDeleteAction;
1534
+ private dispatchRowAction;
1363
1535
  private cloneForEmit;
1364
1536
  private interpolateActionMessageTemplate;
1365
1537
  private buildActionFeedbackContext;
1366
1538
  private resolveActionFeedbackMessage;
1367
1539
  private showActionFeedbackMessage;
1368
1540
  private emitEventWithActionFeedback;
1541
+ private executeConfiguredGlobalAction;
1542
+ private resolveConfiguredGlobalActionRef;
1543
+ private resolveActionGlobalActionRef;
1544
+ private resolveGlobalActionPayload;
1545
+ private buildGlobalActionTemplateContext;
1546
+ private resolveGlobalActionTemplateValue;
1547
+ private isDeferredTemplateExpressionKey;
1548
+ private interpolateGlobalActionTemplate;
1549
+ private shouldEmitLocalForGlobalAction;
1369
1550
  private resolveBulkValidationMessage;
1370
1551
  private hasValidBulkSelectionCount;
1371
1552
  private showBulkConfirmDialog;
1372
1553
  onToolbarAction(event: {
1373
1554
  action: string;
1374
1555
  actionConfig?: any;
1375
- }): void;
1556
+ }): Promise<void>;
1557
+ private resolveBulkExportFormat;
1558
+ private isBulkExportActionKey;
1559
+ private normalizeExportFormat;
1560
+ private isExportFormatEnabled;
1561
+ private getFirstEnabledExportFormat;
1562
+ onExportAction(event: {
1563
+ format: string;
1564
+ scope?: PraxisExportScope;
1565
+ }): Promise<void>;
1566
+ canRunExportAction(format: unknown): boolean;
1567
+ private shouldBlockSelectedExportWithoutSelection;
1568
+ private buildTableExportRequest;
1569
+ private resolveEffectiveExportScope;
1570
+ private resolveTableExportLoadedItems;
1571
+ private computeLocalExportRows;
1572
+ private buildTableExportFields;
1573
+ private buildTableExportFormatOptions;
1574
+ private buildTableExportLocalization;
1575
+ private resolveColumnExportFormat;
1576
+ private buildColumnExportPresentation;
1577
+ private resolveColumnExportCurrency;
1578
+ private downloadExportResult;
1579
+ private triggerExportDownload;
1580
+ private resolveExportFileName;
1581
+ private getExportFileExtension;
1582
+ private getExportMimeType;
1583
+ private showExportFeedback;
1376
1584
  onAdvancedFilterSubmit(criteria: Record<string, any>): void;
1377
1585
  onAdvancedFilterChange(criteria: Record<string, any>): void;
1378
1586
  onAdvancedFilterClear(): void;
1587
+ private applyAdvancedFilterCriteria;
1588
+ private setAdvancedFilterCriteria;
1589
+ private syncAdvancedFilterValueFromCriteria;
1590
+ private deriveRuntimeVisibleAdvancedFilterFields;
1591
+ private isEmptyAdvancedFilterCriterionValue;
1592
+ private mergeAdvancedFilterFieldIds;
1593
+ private getRuntimePromotedAdvancedFilterFields;
1594
+ private toPlainRecord;
1379
1595
  private saveConfigWithAck;
1380
1596
  private clearConfigWithAck;
1381
1597
  private persistHorizontalScrollInput;
@@ -1439,7 +1655,18 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1439
1655
  */
1440
1656
  private verifyServerSchemaVersion;
1441
1657
  private loadSchema;
1658
+ private loadFilterSchemaSnapshot;
1442
1659
  private convertFieldToColumn;
1660
+ private applySchemaFieldPresentation;
1661
+ private resolveSchemaCurrencyFormat;
1662
+ private resolveSchemaBooleanFormat;
1663
+ private resolveSchemaValueMapping;
1664
+ private resolveSchemaOptionsValueMapping;
1665
+ private normalizePresentationToken;
1666
+ private firstNonEmptyString;
1667
+ private firstFiniteNumber;
1668
+ private humanizeSchemaEnumValue;
1669
+ private capitalizeSchemaEnumPart;
1443
1670
  /**
1444
1671
  * Apply automatic renderer hints based on schema field metadata.
1445
1672
  * Runs only on initial bootstrap (when columns are derived from schema).
@@ -1462,6 +1689,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1462
1689
  private buildRowDiscoveryOptions;
1463
1690
  private getRowLinks;
1464
1691
  private resolveRowDiscoveryHref;
1692
+ private resolveRowSurfaceDiscoveryHref;
1465
1693
  private prefetchRowDiscovery;
1466
1694
  private ensureRowDiscovery;
1467
1695
  private ensureRowCapabilitySnapshot;
@@ -1507,6 +1735,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1507
1735
  private pruneRowDiscoveryCaches;
1508
1736
  private pruneRowDiscoveryCache;
1509
1737
  private fetchData;
1738
+ private resolveAnalyticsProjection;
1739
+ private fetchAnalyticsProjectionData;
1510
1740
  private getEffectiveFilterCriteria;
1511
1741
  retryData(): void;
1512
1742
  reloadSchema(): void;
@@ -1519,9 +1749,35 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1519
1749
  * 3. format (data formatting like dates, numbers, currency)
1520
1750
  */
1521
1751
  getCellValue(rowData: any, column: ColumnDefinition): any;
1752
+ private applyImplicitRuntimeCellPresentation;
1753
+ private shouldHumanizeRuntimeEnumCell;
1754
+ private resolveCellFormattingType;
1755
+ private normalizeReadonlyEntityLookupCellValue;
1756
+ private toEntityLookupDisplayToken;
1757
+ private isEntityLookupDisplayCandidate;
1758
+ private toEntityLookupDisplayPrimitive;
1522
1759
  private resolveImplicitFormat;
1523
1760
  getCellClasses(rowData: any, column: ColumnDefinition): string[] | undefined;
1524
1761
  getCellNgStyle(rowData: any, column: ColumnDefinition): Record<string, string> | undefined;
1762
+ private normalizeInlineStyleRecord;
1763
+ private normalizeConditionalStyleRules;
1764
+ private normalizeConditionalStyleRecord;
1765
+ getCellTooltip(rowData: any, column: ColumnDefinition): string | null;
1766
+ getCellTooltipPosition(rowData: any, column: ColumnDefinition): 'above' | 'below' | 'left' | 'right' | 'before' | 'after';
1767
+ private resolveConditionalStyleTooltipText;
1768
+ private resolveRendererTooltipText;
1769
+ private normalizeTooltipPosition;
1770
+ private normalizeConditionalStyleEffects;
1771
+ private hasConditionalStyleEffectPayload;
1772
+ private resolveConditionalStyleClasses;
1773
+ private resolveConditionalStyleObject;
1774
+ private compileConditionalStyleEffect;
1775
+ private normalizeConditionalRendererRules;
1776
+ private normalizeObjectRecord;
1777
+ private buildColumnRendererOverrideFromEffects;
1778
+ private buildColumnRendererFromEffect;
1779
+ private resolveRuleAnimationFromEffects;
1780
+ private resolveRowTooltipFromEffects;
1525
1781
  private resetComputedContextCache;
1526
1782
  private ensureEffectiveCellRenderCache;
1527
1783
  private ensureCellAnimationPreviousValuesByRowId;
@@ -1533,6 +1789,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1533
1789
  private buildComputedSignature;
1534
1790
  private stringifyDependencyValue;
1535
1791
  private buildComputedValueMap;
1792
+ private collectComputedColumns;
1793
+ private evaluateCanonicalComputedColumns;
1794
+ private collectComputedExpressionDependencies;
1795
+ private collectJsonLogicVarDependencies;
1796
+ private resolveJsonLogicVarPath;
1536
1797
  private buildEvaluationContext;
1537
1798
  private getJsonLogicEvaluationOptions;
1538
1799
  private resolveJsonLogicUserTimeZone;
@@ -1671,6 +1932,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1671
1932
  private buildEffectiveCellRenderCacheKey;
1672
1933
  private getEffectiveCellRenderResult;
1673
1934
  private getEffectiveRenderer;
1935
+ private resolveEffectiveRendererTooltip;
1674
1936
  getLinkHref(row: any, column: ColumnDefinition): string | null;
1675
1937
  getLinkText(row: any, column: ColumnDefinition): string;
1676
1938
  getLinkRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
@@ -1692,6 +1954,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1692
1954
  private buildRendererActionRuntimeOptions;
1693
1955
  onButtonClick(row: any, column: ColumnDefinition, event: Event): void;
1694
1956
  getChipText(row: any, column: ColumnDefinition): string | null;
1957
+ private getRendererTextFieldValue;
1695
1958
  getChipRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
1696
1959
  getChipIcon(row: any, column: ColumnDefinition): string | null;
1697
1960
  getChipClasses(row: any, column: ColumnDefinition): string[];
@@ -1714,6 +1977,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1714
1977
  private deriveAvatarInitials;
1715
1978
  getAvatarInitials(row: any, column: ColumnDefinition): string;
1716
1979
  getAvatarRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
1980
+ private getAvatarRichContentStyle;
1717
1981
  getAvatarShape(row: any, column: ColumnDefinition): 'square' | 'rounded' | 'circle' | undefined;
1718
1982
  getAvatarStyle(row: any, column: ColumnDefinition): Record<string, string> | null;
1719
1983
  getToggleState(row: any, column: ColumnDefinition): boolean;
@@ -1769,6 +2033,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1769
2033
  private reconcileSelectionAfterDataChange;
1770
2034
  private getComparableRowIdentity;
1771
2035
  getIdField(): string;
2036
+ private resolveConfigMetaIdField;
1772
2037
  private syncRuntimeSchemaMetaFromConfig;
1773
2038
  private getEffectiveMetadataSnapshot;
1774
2039
  getActionId(action: any): string;
@@ -1787,6 +2052,20 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1787
2052
  toggleRow(row: any): void;
1788
2053
  private selectRowFromUserInteraction;
1789
2054
  private emitSelectionChange;
2055
+ private getSelectedRowsSnapshot;
2056
+ private getAiAssistantSelectionFields;
2057
+ private buildAiAssistantSelectionFilterCandidates;
2058
+ private inferAiAssistantFilterCriterionKind;
2059
+ private buildAiAssistantRangeFilterCandidate;
2060
+ private buildAiAssistantSetFilterCandidate;
2061
+ private resolveAiAssistantSetFilterDisplayValue;
2062
+ private aiAssistantSetFilterDisplayFieldCandidates;
2063
+ private resolveAiAssistantFilterSourceFields;
2064
+ private normalizeAiAssistantNumericRangeValue;
2065
+ private normalizeAiAssistantDateRangeValue;
2066
+ private sanitizeAiAssistantSelectedRow;
2067
+ private safeStringifyAiAssistantValue;
2068
+ private isSensitiveAiAssistantField;
1790
2069
  private getRowActionsConfig;
1791
2070
  getActionsHeaderAlign(): string;
1792
2071
  getActionsHeaderTooltip(): string | undefined;
@@ -1811,11 +2090,24 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1811
2090
  private splitVisibleRowActionsFromVisible;
1812
2091
  private decorateConfiguredRowAction;
1813
2092
  private getDiscoveredRowWorkflowActions;
2093
+ private getDiscoveredRowSurfaceActionsFromSnapshot;
1814
2094
  private getDiscoveredRowWorkflowActionsFromCatalog;
1815
2095
  private supportsRowCrudAction;
1816
2096
  private isCapabilityManagedCrudRowAction;
1817
2097
  private findItemWorkflowAction;
2098
+ private findItemSurface;
2099
+ private isRowSurfaceAction;
2100
+ private isResourceSurfaceCatalogItem;
2101
+ private toRecordSurfaceActionConfig;
2102
+ private resolveConfiguredSurfaceOpenAction;
2103
+ private recordSurfaceActionAliases;
2104
+ private normalizeSurfaceActionAlias;
2105
+ private isWritableRowSurface;
2106
+ private isReadableRowSurface;
2107
+ private getDiscoveredSurfaceIcon;
2108
+ private getDiscoveredSurfaceColor;
1818
2109
  private getUnavailableWorkflowMessage;
2110
+ private getUnavailableSurfaceMessage;
1819
2111
  private normalizeActionId;
1820
2112
  private isActionVisible;
1821
2113
  trackAction(index: number, item: any): any;
@@ -1829,8 +2121,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1829
2121
  getRowMenuIcon(): string;
1830
2122
  private scheduleRowDiscoveryMarkForCheck;
1831
2123
  ngOnDestroy(): void;
1832
- static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTable, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
1833
- 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; }; "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; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; "collectionLinksChange": "collectionLinksChange"; "selectionChange": "selectionChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
2124
+ 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; }]>;
2125
+ 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; }; "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; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "widgetEvent": "widgetEvent"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "exportAction": "exportAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "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>;
1834
2126
  static ngAcceptInputType_enableCustomization: unknown;
1835
2127
  }
1836
2128
 
@@ -1843,7 +2135,6 @@ interface EditorDocument<TConfig, TBindings = unknown> {
1843
2135
  type TableHorizontalScroll = 'auto' | 'wrap' | 'none';
1844
2136
  interface TableBindings {
1845
2137
  resourcePath?: string | null;
1846
- idField?: string;
1847
2138
  horizontalScroll?: TableHorizontalScroll;
1848
2139
  }
1849
2140
  interface TableAuthoringDocument extends EditorDocument<TableConfig, TableBindings> {
@@ -1900,7 +2191,6 @@ interface TableApplyPlan {
1900
2191
  };
1901
2192
  diff?: {
1902
2193
  resourcePathChanged?: boolean;
1903
- idFieldChanged?: boolean;
1904
2194
  horizontalScrollChanged?: boolean;
1905
2195
  requiresDataRefresh?: boolean;
1906
2196
  };
@@ -2373,6 +2663,8 @@ interface ToolbarAction {
2373
2663
  /** Material button appearance: filled (flat), outlined (stroked), elevated (raised), text, tonal */
2374
2664
  appearance?: 'filled' | 'outlined' | 'elevated' | 'text' | 'tonal';
2375
2665
  action: string;
2666
+ globalAction?: GlobalActionRef;
2667
+ effects?: PraxisRuntimeGlobalActionEffect[];
2376
2668
  position: 'start' | 'end';
2377
2669
  order?: number;
2378
2670
  disabled?: boolean;
@@ -2380,7 +2672,7 @@ interface ToolbarAction {
2380
2672
  shortcut?: string;
2381
2673
  shortcutScope?: 'toolbar' | 'global';
2382
2674
  tooltip?: string;
2383
- visibleWhen?: string;
2675
+ visibleWhen?: JsonLogicExpression | null;
2384
2676
  children?: ToolbarAction[];
2385
2677
  }
2386
2678
  interface RowAction {
@@ -2388,11 +2680,15 @@ interface RowAction {
2388
2680
  label: string;
2389
2681
  icon: string;
2390
2682
  action: string;
2683
+ globalAction?: GlobalActionRef;
2684
+ effects?: PraxisRuntimeGlobalActionEffect[];
2391
2685
  color?: 'primary' | 'accent' | 'warn';
2392
2686
  tooltip?: string;
2393
2687
  requiresConfirmation?: boolean;
2394
2688
  autoDelete?: boolean;
2395
2689
  separator?: boolean;
2690
+ visibleWhen?: JsonLogicExpression | null;
2691
+ disabledWhen?: JsonLogicExpression | null;
2396
2692
  conditional?: string;
2397
2693
  }
2398
2694
  interface BulkAction {
@@ -2400,6 +2696,8 @@ interface BulkAction {
2400
2696
  label: string;
2401
2697
  icon: string;
2402
2698
  action: string;
2699
+ globalAction?: GlobalActionRef;
2700
+ effects?: PraxisRuntimeGlobalActionEffect[];
2403
2701
  color?: 'primary' | 'accent' | 'warn';
2404
2702
  tooltip?: string;
2405
2703
  requiresConfirmation?: boolean;
@@ -2413,6 +2711,25 @@ interface ToolbarActionsChange {
2413
2711
  value: any;
2414
2712
  fullConfig: TableConfig;
2415
2713
  }
2714
+ type GlobalActionCatalogOption = GlobalActionCatalogEntry & {
2715
+ param?: {
2716
+ required?: boolean;
2717
+ label?: string;
2718
+ placeholder?: string;
2719
+ hint?: string;
2720
+ };
2721
+ };
2722
+ type EditableTableAction = {
2723
+ id?: string;
2724
+ label?: string;
2725
+ action?: string;
2726
+ globalAction?: GlobalActionRef;
2727
+ effects?: PraxisRuntimeGlobalActionEffect[];
2728
+ position?: string;
2729
+ appearance?: string;
2730
+ visibleWhen?: JsonLogicExpression | null;
2731
+ disabledWhen?: JsonLogicExpression | null;
2732
+ };
2416
2733
  type ToolbarShortcutScope = 'toolbar' | 'global';
2417
2734
  interface InternalActionSpec {
2418
2735
  id: string;
@@ -2433,14 +2750,14 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2433
2750
  editingToolbarActionIndex: number | null;
2434
2751
  editingRowActionIndex: number | null;
2435
2752
  editingBulkActionIndex: number | null;
2436
- readonly globalActionCatalog: GlobalActionSpec[];
2753
+ private readonly i18n;
2754
+ readonly globalActionCatalog: GlobalActionCatalogOption[];
2437
2755
  get internalActionCatalog(): InternalActionSpec[];
2438
2756
  readonly customActionValue = "__custom__";
2439
2757
  readonly validShortcutScopes: ToolbarShortcutScope[];
2440
2758
  private readonly actionFieldDrafts;
2441
2759
  private readonly actionFieldErrors;
2442
2760
  private readonly warnedInvalidShortcutScopes;
2443
- private readonly i18n;
2444
2761
  private destroy$;
2445
2762
  constructor(fb: FormBuilder, iconPicker: IconPickerService);
2446
2763
  tx(key: string, fallback: string): string;
@@ -2469,56 +2786,37 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2469
2786
  private removeAddToolbarAction;
2470
2787
  private syncAddFormFromActions;
2471
2788
  private updateConfig;
2472
- getActionSelectValue(value?: string): string;
2473
- getActionParam(value?: string): string;
2474
- getActionCustomValue(value?: string): string;
2789
+ getActionSelectValue(action?: EditableTableAction): string;
2790
+ getActionParam(action?: EditableTableAction): string;
2791
+ isRequiredGlobalActionParamMissing(action: EditableTableAction, spec: GlobalActionCatalogOption): boolean;
2792
+ getActionCustomValue(action?: EditableTableAction): string;
2475
2793
  isInternalAction(value?: string): boolean;
2476
- getActionSpecById(id: string): GlobalActionSpec | undefined;
2477
- onActionSelectChange(action: {
2478
- action?: string;
2479
- }, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2480
- onActionParamChange(action: {
2481
- action?: string;
2482
- }, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2483
- onActionCustomChange(action: {
2484
- action?: string;
2485
- }, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2794
+ getActionSpecById(id: string): GlobalActionCatalogOption | undefined;
2795
+ onActionSelectChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2796
+ onActionParamChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2797
+ onActionCustomChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2798
+ getCanonicalGlobalActionRef(action?: EditableTableAction): GlobalActionRef | undefined;
2799
+ private setCanonicalGlobalActionRef;
2486
2800
  private touchActionList;
2487
- private parseActionValue;
2801
+ getActionJsonLogicText(action: EditableTableAction, key: 'visibleWhen' | 'disabledWhen'): string;
2802
+ onActionJsonLogicChange(action: EditableTableAction, key: 'visibleWhen' | 'disabledWhen', value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2803
+ getActionConditionError(action: EditableTableAction, key: 'visibleWhen' | 'disabledWhen'): string;
2488
2804
  isGlobalActionId(id?: string): boolean;
2489
- getGlobalActionSchema(action: {
2490
- action?: string;
2491
- }): _praxisui_core.GlobalActionUiSchema | undefined;
2492
- getSurfaceOpenActionPayload(action: {
2493
- action?: string;
2494
- }): SurfaceOpenPayload;
2495
- onSurfaceOpenActionPayloadChange(action: {
2496
- action?: string;
2497
- }, payload: SurfaceOpenPayload, kind: 'toolbar' | 'row' | 'bulk'): void;
2498
- shouldShowGlobalActionField(action: {
2499
- action?: string;
2500
- }, field: GlobalActionField): boolean;
2501
- hasActionFieldError(action: {
2502
- action?: string;
2503
- }, key: string): boolean;
2504
- getActionFieldError(action: {
2505
- action?: string;
2506
- }, key: string): string;
2507
- getGlobalActionFieldValue(action: {
2508
- action?: string;
2509
- }, field: GlobalActionField): any;
2510
- onGlobalActionFieldChange(action: {
2511
- action?: string;
2512
- }, field: GlobalActionField, value: any, kind: 'toolbar' | 'row' | 'bulk'): void;
2513
- private getActionParamInfo;
2514
- private parseMethodAndUrl;
2805
+ getGlobalActionSchema(action: EditableTableAction): _praxisui_core.GlobalActionUiSchema | undefined;
2806
+ getSurfaceOpenActionPayload(action: EditableTableAction): SurfaceOpenPayload;
2807
+ onSurfaceOpenActionPayloadChange(action: EditableTableAction, payload: SurfaceOpenPayload, kind: 'toolbar' | 'row' | 'bulk'): void;
2808
+ shouldShowGlobalActionField(action: EditableTableAction, field: GlobalActionField): boolean;
2809
+ isGlobalActionFieldRequired(action: EditableTableAction, field: GlobalActionField): boolean;
2810
+ isGlobalActionFieldMissing(action: EditableTableAction, field: GlobalActionField): boolean;
2811
+ hasActionFieldError(action: EditableTableAction, key: string): boolean;
2812
+ getActionFieldError(action: EditableTableAction, key: string): string;
2813
+ getGlobalActionFieldValue(action: EditableTableAction, field: GlobalActionField): any;
2814
+ onGlobalActionFieldChange(action: EditableTableAction, field: GlobalActionField, value: any, kind: 'toolbar' | 'row' | 'bulk'): void;
2515
2815
  private stringifyJson;
2516
2816
  private normalizeSurfaceOpenPayload;
2517
2817
  private setActionFieldError;
2518
2818
  private clearActionFieldError;
2519
2819
  private collectGlobalActionFieldValues;
2520
- private serializeGlobalActionParam;
2521
- private buildPrimaryParam;
2522
2820
  private buildGlobalActionPayload;
2523
2821
  getToolbarActionShortcutScope(action: ToolbarAction): ToolbarShortcutScope;
2524
2822
  onToolbarActionShortcutScopeChange(action: ToolbarAction, value: ToolbarShortcutScope | string): void;
@@ -2710,6 +3008,7 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
2710
3008
  }[];
2711
3009
  getContrastWarning(): string | null;
2712
3010
  applyPreset(key: string): void;
3011
+ isPresetActive(key: string): boolean;
2713
3012
  hasBooleanFieldMetadata(): boolean;
2714
3013
  getFieldLabel(name: string): string;
2715
3014
  onAlwaysVisibleFieldSearchChange(value: string): void;
@@ -2873,12 +3172,10 @@ declare class RuleCompilerService {
2873
3172
  static ɵprov: i0.ɵɵInjectableDeclaration<RuleCompilerService>;
2874
3173
  }
2875
3174
 
2876
- type RuleItem = {
2877
- condition: JsonLogicExpression;
3175
+ type RuleItem = Omit<PraxisRuntimeConditionalEffectRule<RuleEffectDefinition>, 'effects'> & {
2878
3176
  cssClass?: string;
2879
3177
  style?: Record<string, string>;
2880
- description?: string;
2881
- effects?: _praxisui_table_rule_builder.RuleEffectDefinition;
3178
+ effects?: RuleEffectDefinition[];
2882
3179
  enabled?: boolean;
2883
3180
  };
2884
3181
  declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy {
@@ -2948,6 +3245,7 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
2948
3245
  onColumnSelect(field: string): void;
2949
3246
  private initFromConfig;
2950
3247
  private loadColumnRules;
3248
+ private normalizePersistedRules;
2951
3249
  rebuildCondition(): void;
2952
3250
  onDraftChange(): void;
2953
3251
  applyTextPreset(preset: string): void;
@@ -2974,6 +3272,8 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
2974
3272
  onExportRules(): void;
2975
3273
  onImportRules(): void;
2976
3274
  private sanitizeRule;
3275
+ private normalizeRuleEffects;
3276
+ getPrimaryEffect(r: RuleItem | null | undefined): RuleEffectDefinition | undefined;
2977
3277
  getAnimationLabel(r: RuleItem): string | null;
2978
3278
  private normalizeRendererAnimation;
2979
3279
  private buildRendererOverrideFromRule;
@@ -3080,6 +3380,8 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3080
3380
  private cdr;
3081
3381
  private configService;
3082
3382
  private readonly i18n;
3383
+ private readonly globalActionCatalogSource;
3384
+ private readonly globalActionCatalog;
3083
3385
  filterSettingsEditor?: FilterSettingsComponent;
3084
3386
  behaviorEditor?: BehaviorConfigEditorComponent;
3085
3387
  rulesEditor?: TableRulesEditorComponent;
@@ -3142,6 +3444,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3142
3444
  private hasLocalDataInput;
3143
3445
  private filterDtoLoadSeq;
3144
3446
  private lastKnownFilterSettings;
3447
+ private globalActionValidationIssues;
3145
3448
  private readonly panelData;
3146
3449
  private readonly crudService;
3147
3450
  private readonly panelRef;
@@ -3168,6 +3471,9 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3168
3471
  onRulesConfigChange(newCfg: TableConfig): void;
3169
3472
  private updateColumnMetas;
3170
3473
  private updateCanSaveState;
3474
+ private collectGlobalActionValidationIssues;
3475
+ private findGlobalActionCatalogEntry;
3476
+ private buildGlobalActionCatalog;
3171
3477
  private subscribeCrudEditorChanges;
3172
3478
  private showSuccess;
3173
3479
  private showError;
@@ -3176,6 +3482,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3176
3482
  * Normaliza uma configuração de tabela para comparação consistente
3177
3483
  * Remove propriedades undefined, ordena arrays e objetos de forma consistente
3178
3484
  */
3485
+ private withCanonicalIdField;
3179
3486
  private normalizeTableConfig;
3180
3487
  /**
3181
3488
  * Realiza comparação profunda de objetos, ignorando ordem de propriedades
@@ -3238,6 +3545,107 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3238
3545
  static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableConfigEditor, "praxis-table-config-editor", never, {}, {}, never, never, true, never>;
3239
3546
  }
3240
3547
 
3548
+ interface PraxisTableWidgetEditorInputs {
3549
+ config?: TableConfig | null;
3550
+ resourcePath?: string | null;
3551
+ horizontalScroll?: 'auto' | 'wrap' | 'none';
3552
+ tableId?: string;
3553
+ componentInstanceId?: string;
3554
+ [key: string]: unknown;
3555
+ }
3556
+ interface PraxisTableWidgetEditorValue {
3557
+ inputs: PraxisTableWidgetEditorInputs;
3558
+ }
3559
+ declare class PraxisTableWidgetConfigEditor implements SettingsValueProvider$1, AfterViewInit, OnDestroy {
3560
+ inputs: PraxisTableWidgetEditorInputs | null;
3561
+ widgetKey?: string;
3562
+ tableEditor?: PraxisTableConfigEditor;
3563
+ readonly isDirty$: BehaviorSubject<boolean>;
3564
+ readonly isValid$: BehaviorSubject<boolean>;
3565
+ readonly isBusy$: BehaviorSubject<boolean>;
3566
+ private readonly subscription;
3567
+ ngAfterViewInit(): void;
3568
+ ngOnDestroy(): void;
3569
+ getSettingsValue(): PraxisTableWidgetEditorValue;
3570
+ onSave(): PraxisTableWidgetEditorValue;
3571
+ reset(): void;
3572
+ private initializeChildEditor;
3573
+ private buildValue;
3574
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableWidgetConfigEditor, never>;
3575
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableWidgetConfigEditor, "praxis-table-widget-config-editor", never, { "inputs": { "alias": "inputs"; "required": false; }; "widgetKey": { "alias": "widgetKey"; "required": false; }; }, {}, never, never, true, never>;
3576
+ }
3577
+
3578
+ interface PraxisFilterWidgetEditorInputs {
3579
+ resourcePath?: string | null;
3580
+ fieldMetadata?: FieldMetadata[] | null;
3581
+ filterId?: string;
3582
+ formId?: string;
3583
+ componentInstanceId?: string;
3584
+ alwaysVisibleFields?: string[];
3585
+ alwaysVisibleFieldMetadataOverrides?: Record<string, Record<string, unknown>>;
3586
+ selectedFieldIds?: string[];
3587
+ allowSaveTags?: boolean;
3588
+ changeDebounceMs?: number;
3589
+ placeBooleansInActions?: boolean;
3590
+ showToggleLabels?: boolean;
3591
+ alwaysMinWidth?: number;
3592
+ alwaysColsMd?: number;
3593
+ alwaysColsLg?: number;
3594
+ confirmTagDelete?: boolean;
3595
+ tagColor?: 'primary' | 'accent' | 'warn' | 'basic';
3596
+ tagVariant?: 'filled' | 'outlined';
3597
+ tagButtonColor?: 'primary' | 'accent' | 'warn' | 'basic';
3598
+ actionsButtonColor?: 'primary' | 'accent' | 'warn' | 'basic';
3599
+ actionsVariant?: 'standard' | 'outlined';
3600
+ useInlineSearchableSelectVariant?: boolean;
3601
+ useInlineRangeVariant?: boolean;
3602
+ useInlineDateVariant?: boolean;
3603
+ useInlineDateRangeVariant?: boolean;
3604
+ useInlineTimeVariant?: boolean;
3605
+ useInlineTimeRangeVariant?: boolean;
3606
+ useInlineTreeSelectVariant?: boolean;
3607
+ overlayVariant?: 'card' | 'frosted';
3608
+ overlayBackdrop?: boolean;
3609
+ advancedOpenMode?: 'modal' | 'drawer';
3610
+ advancedClearButtonsEnabled?: boolean;
3611
+ persistenceKey?: string;
3612
+ showFilterSettings?: boolean;
3613
+ enableCustomization?: boolean;
3614
+ [key: string]: unknown;
3615
+ }
3616
+ interface PraxisFilterWidgetEditorValue {
3617
+ inputs: PraxisFilterWidgetEditorInputs;
3618
+ }
3619
+ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1, OnDestroy {
3620
+ widgetKey?: string;
3621
+ set inputs(value: PraxisFilterWidgetEditorInputs | null);
3622
+ get inputs(): PraxisFilterWidgetEditorInputs | null;
3623
+ set filterSettings(component: FilterSettingsComponent | undefined);
3624
+ metadata: FieldMetadata[];
3625
+ settings: FilterConfig;
3626
+ configKey?: string;
3627
+ readonly isDirty$: BehaviorSubject<boolean>;
3628
+ readonly isValid$: BehaviorSubject<boolean>;
3629
+ readonly isBusy$: BehaviorSubject<boolean>;
3630
+ private currentInputs;
3631
+ private settingsEditor?;
3632
+ private subscription;
3633
+ ngOnDestroy(): void;
3634
+ getSettingsValue(): PraxisFilterWidgetEditorValue;
3635
+ onSave(): PraxisFilterWidgetEditorValue;
3636
+ reset(): void;
3637
+ private buildValue;
3638
+ private buildSettingsFromInputs;
3639
+ private projectSettingsToInputs;
3640
+ private normalizeSettings;
3641
+ private normalizeAdvancedOpenMode;
3642
+ private normalizeOverlayVariant;
3643
+ private cloneStringArray;
3644
+ private cloneRecord;
3645
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterWidgetConfigEditor, never>;
3646
+ 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>;
3647
+ }
3648
+
3241
3649
  declare class DataFormatterComponent implements OnInit, OnChanges {
3242
3650
  private cdr;
3243
3651
  private formattingService;
@@ -3306,31 +3714,6 @@ declare class DataFormatterComponent implements OnInit, OnChanges {
3306
3714
  static ɵcmp: i0.ɵɵComponentDeclaration<DataFormatterComponent, "data-formatter", never, { "columnType": { "alias": "columnType"; "required": false; }; "currentFormat": { "alias": "currentFormat"; "required": false; }; }, { "formatChange": "formatChange"; }, never, never, true, never>;
3307
3715
  }
3308
3716
 
3309
- type AnalyticsTableRow = Record<string, string | number | boolean | null>;
3310
- type AnalyticsTableContractSource = 'remote' | 'fallback';
3311
- interface AnalyticsTableViewModel {
3312
- config: TableConfig;
3313
- data: AnalyticsTableRow[];
3314
- }
3315
- interface AnalyticsTableContractDefinition<TKey extends string = string> {
3316
- key: TKey;
3317
- projectionId: string;
3318
- path: string;
3319
- title: PraxisTextValue;
3320
- subtitle?: PraxisTextValue;
3321
- fallbackProjection: PraxisAnalyticsProjection;
3322
- fallbackRows?: AnalyticsTableRow[];
3323
- }
3324
- interface AnalyticsTableContractLoadOptions<TKey extends string = string> {
3325
- cacheNamespace?: string;
3326
- queryContexts?: Partial<Record<TKey, PraxisDataQueryContext | null>>;
3327
- }
3328
- interface AnalyticsTableContractLoadResult<TKey extends string = string> {
3329
- views: Record<TKey, AnalyticsTableViewModel>;
3330
- sources: Record<TKey, AnalyticsTableContractSource>;
3331
- errors: Partial<Record<TKey, string>>;
3332
- }
3333
-
3334
3717
  interface AnalyticsTableConfigAdapterOptions {
3335
3718
  title?: PraxisTextValue;
3336
3719
  subtitle?: PraxisTextValue;
@@ -3344,24 +3727,6 @@ declare class AnalyticsTableConfigAdapterService {
3344
3727
  static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableConfigAdapterService>;
3345
3728
  }
3346
3729
 
3347
- declare class AnalyticsTableStatsApiService {
3348
- private readonly http;
3349
- private readonly apiUrl;
3350
- private readonly statsBuilder;
3351
- constructor(http: HttpClient, apiUrl: ApiUrlConfig);
3352
- execute(projection: PraxisAnalyticsProjection, queryContext?: PraxisDataQueryContext | null): Promise<AnalyticsTableRow[]>;
3353
- private toTableRows;
3354
- private resolveTimeSeriesCategory;
3355
- private resolveBucketCategory;
3356
- private projectMetricValues;
3357
- private resolveMetricValue;
3358
- private buildStatsUrl;
3359
- private applyQueryContext;
3360
- private normalizeError;
3361
- static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticsTableStatsApiService, never>;
3362
- static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableStatsApiService>;
3363
- }
3364
-
3365
3730
  declare class AnalyticsTableContractService {
3366
3731
  private readonly analyticsSchema;
3367
3732
  private readonly resolver;
@@ -3397,6 +3762,15 @@ declare function buildTableApplyPlan(doc: TableAuthoringDocument, runtime?: Tabl
3397
3762
  }): TableApplyPlan;
3398
3763
  declare function serializeTableAuthoringDocument(doc: TableAuthoringDocument): unknown;
3399
3764
 
3765
+ /**
3766
+ * Manifesto de authoring canônico para o componente praxis-table.
3767
+ * Este arquivo define o contrato executável para que agentes de IA editem tabelas.
3768
+ *
3769
+ * @version 2.0.0
3770
+ * @status COMPLIANT - Alinhado com o contrato v2 e TableConfig canônico.
3771
+ */
3772
+ declare const PRAXIS_TABLE_AUTHORING_MANIFEST: ComponentAuthoringManifest;
3773
+
3400
3774
  declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
3401
3775
  private readonly i18n;
3402
3776
  config: TableConfig;
@@ -3497,7 +3871,7 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
3497
3871
  [key: number]: string;
3498
3872
  }>;
3499
3873
  mappingPairs: ValueMappingPair[];
3500
- dataSource: MatTableDataSource<ValueMappingPair, _angular_material_paginator_d_Zo1cMMo4.M>;
3874
+ dataSource: MatTableDataSource<ValueMappingPair, _angular_material_paginator.MatPaginator>;
3501
3875
  displayedColumns: string[];
3502
3876
  showImportDialog: boolean;
3503
3877
  importJsonText: string;
@@ -3643,7 +4017,6 @@ declare function providePraxisTableMetadata(): Provider;
3643
4017
  declare module '@praxisui/core' {
3644
4018
  interface AiCapabilityCategoryMap {
3645
4019
  meta: true;
3646
- bindings: true;
3647
4020
  columns: true;
3648
4021
  renderer: true;
3649
4022
  conditional: true;
@@ -3657,6 +4030,7 @@ declare module '@praxisui/core' {
3657
4030
  toolbar: true;
3658
4031
  actions: true;
3659
4032
  export: true;
4033
+ runtime: true;
3660
4034
  performance: true;
3661
4035
  messages: true;
3662
4036
  localization: true;
@@ -3729,18 +4103,23 @@ type ComponentEditPlanCapability = {
3729
4103
  declare const TABLE_COMPONENT_EDIT_PLAN_KIND = "praxis.table.component-edit-plan";
3730
4104
  declare const TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND = "praxis.table.component-edit-plan.batch";
3731
4105
  declare const TABLE_COMPONENT_EDIT_PLAN_VERSION = "1.0";
3732
- type TableComponentEditChangeKind = 'set_column_format' | 'set_column_header' | 'set_column_visibility' | 'set_column_conditional_style' | 'set_column_computed' | 'set_column_value_mapping' | 'set_column_badge_renderer' | 'set_column_conditional_badge_renderers';
3733
- declare const TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_badge_renderer", "set_column_conditional_badge_renderers"];
4106
+ type TableComponentEditChangeKind = 'add_column' | 'set_column_format' | 'set_column_header' | 'set_column_visibility' | 'set_column_filterable' | 'set_column_sortable' | 'set_column_width' | 'set_column_order' | 'set_column_align' | 'set_column_style' | 'set_column_header_style' | 'set_column_sticky' | 'set_column_conditional_style' | 'set_row_conditional_style' | 'set_column_computed' | 'set_column_value_mapping' | 'set_column_renderer' | 'set_column_badge_renderer' | 'set_column_conditional_badge_renderers' | 'set_row_conditional_renderer' | 'configure_table_filtering' | 'configure_advanced_filters' | 'add_advanced_filter_fields' | 'remove_advanced_filter_fields' | 'configure_table_pagination' | 'configure_table_selection' | 'configure_table_sorting' | 'configure_toolbar' | 'add_toolbar_action' | 'add_row_action' | 'configure_export' | 'set_table_density' | 'set_toolbar_visibility';
4107
+ type TableComponentEditOperationId = 'column.add' | 'column.format.set' | 'column.header.set' | 'column.visibility.set' | 'column.filterable.set' | 'column.sortable.set' | 'column.width.set' | 'column.order.set' | 'column.align.set' | 'column.style.set' | 'column.headerStyle.set' | 'column.sticky.set' | 'column.renderer.set' | 'column.valueMapping.set' | 'column.conditionalStyle.add' | 'row.styleRule.add' | 'column.conditionalRenderer.add' | 'column.computed.add' | 'row.conditionalRenderer.add' | 'behavior.filtering.configure' | 'filter.advanced.configure' | 'filter.advanced.fields.add' | 'filter.advanced.fields.remove' | 'behavior.pagination.configure' | 'behavior.selection.configure' | 'behavior.sorting.configure' | 'toolbar.configure' | 'toolbar.action.add' | 'rowAction.add' | 'export.configure' | 'appearance.density.set' | 'toolbar.visibility.set';
4108
+ declare const TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS: readonly ["add_column", "set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_order", "set_column_align", "set_column_style", "set_column_header_style", "set_column_sticky", "set_column_conditional_style", "set_row_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_advanced_filters", "add_advanced_filter_fields", "remove_advanced_filter_fields", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "add_toolbar_action", "add_row_action", "configure_export", "set_table_density", "set_toolbar_visibility"];
3734
4109
  declare const TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS: Record<TableComponentEditChangeKind, string>;
3735
4110
  interface TableComponentEditPlan {
3736
4111
  kind?: typeof TABLE_COMPONENT_EDIT_PLAN_KIND;
3737
4112
  version?: typeof TABLE_COMPONENT_EDIT_PLAN_VERSION | string;
3738
4113
  componentId?: 'praxis-table' | string;
3739
4114
  changeKind: TableComponentEditChangeKind | string;
4115
+ operationId?: TableComponentEditOperationId | string;
3740
4116
  capabilityPath?: string;
3741
4117
  configPath?: string;
3742
4118
  field?: string;
3743
4119
  targetField?: string;
4120
+ target?: unknown;
4121
+ input?: unknown;
4122
+ params?: unknown;
3744
4123
  value?: unknown;
3745
4124
  condition?: unknown;
3746
4125
  style?: unknown;
@@ -3768,7 +4147,7 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3768
4147
  readonly $defs: {
3769
4148
  readonly changeKind: {
3770
4149
  readonly type: "string";
3771
- readonly enum: readonly ["set_column_format", "set_column_header", "set_column_visibility", "set_column_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_badge_renderer", "set_column_conditional_badge_renderers"];
4150
+ readonly enum: readonly ["add_column", "set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_order", "set_column_align", "set_column_style", "set_column_header_style", "set_column_sticky", "set_column_conditional_style", "set_row_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_advanced_filters", "add_advanced_filter_fields", "remove_advanced_filter_fields", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "add_toolbar_action", "add_row_action", "configure_export", "set_table_density", "set_toolbar_visibility"];
3772
4151
  };
3773
4152
  readonly capabilityPath: {
3774
4153
  readonly type: "string";
@@ -3803,6 +4182,9 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3803
4182
  readonly type: "string";
3804
4183
  readonly minLength: 1;
3805
4184
  };
4185
+ readonly tooltip: {
4186
+ readonly $ref: "#/$defs/tooltip";
4187
+ };
3806
4188
  };
3807
4189
  readonly anyOf: readonly [{
3808
4190
  readonly required: readonly ["text"];
@@ -3810,10 +4192,31 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3810
4192
  readonly required: readonly ["textField"];
3811
4193
  }];
3812
4194
  };
4195
+ readonly tooltip: {
4196
+ readonly type: "object";
4197
+ readonly additionalProperties: false;
4198
+ readonly required: readonly ["text"];
4199
+ readonly properties: {
4200
+ readonly text: {
4201
+ readonly type: "string";
4202
+ readonly minLength: 1;
4203
+ };
4204
+ readonly position: {
4205
+ readonly type: "string";
4206
+ readonly enum: readonly ["top", "right", "bottom", "left", "above", "below", "before", "after"];
4207
+ };
4208
+ readonly bgColor: {
4209
+ readonly type: "string";
4210
+ readonly minLength: 1;
4211
+ };
4212
+ readonly delayMs: {
4213
+ readonly type: "number";
4214
+ };
4215
+ };
4216
+ };
3813
4217
  readonly operation: {
3814
4218
  readonly type: "object";
3815
4219
  readonly additionalProperties: false;
3816
- readonly required: readonly ["changeKind", "field", "value"];
3817
4220
  readonly properties: {
3818
4221
  readonly kind: {
3819
4222
  readonly const: "praxis.table.component-edit-plan";
@@ -3824,6 +4227,12 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3824
4227
  readonly componentId: {
3825
4228
  readonly const: "praxis-table";
3826
4229
  };
4230
+ readonly operationId: {
4231
+ readonly enum: readonly ["column.add", "column.format.set", "column.header.set", "column.visibility.set", "column.filterable.set", "column.sortable.set", "column.width.set", "column.order.set", "column.align.set", "column.style.set", "column.headerStyle.set", "column.sticky.set", "column.renderer.set", "column.valueMapping.set", "column.conditionalStyle.add", "row.styleRule.add", "column.conditionalRenderer.add", "column.computed.add", "row.conditionalRenderer.add", "behavior.filtering.configure", "filter.advanced.configure", "filter.advanced.fields.add", "filter.advanced.fields.remove", "behavior.pagination.configure", "behavior.selection.configure", "behavior.sorting.configure", "toolbar.configure", "toolbar.action.add", "rowAction.add", "export.configure", "appearance.density.set", "toolbar.visibility.set"];
4232
+ };
4233
+ readonly target: true;
4234
+ readonly input: true;
4235
+ readonly params: true;
3827
4236
  readonly changeKind: {
3828
4237
  readonly $ref: "#/$defs/changeKind";
3829
4238
  };
@@ -3852,6 +4261,13 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3852
4261
  readonly type: "string";
3853
4262
  };
3854
4263
  };
4264
+ readonly anyOf: readonly [{
4265
+ readonly required: readonly ["changeKind", "field", "value"];
4266
+ }, {
4267
+ readonly required: readonly ["operationId", "target", "input"];
4268
+ }, {
4269
+ readonly required: readonly ["operationId", "input"];
4270
+ }];
3855
4271
  readonly allOf: readonly [{
3856
4272
  readonly if: {
3857
4273
  readonly properties: {
@@ -3928,8 +4344,12 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3928
4344
  readonly required: readonly ["condition"];
3929
4345
  readonly anyOf: readonly [{
3930
4346
  readonly required: readonly ["badge"];
4347
+ }, {
4348
+ readonly required: readonly ["renderer"];
3931
4349
  }, {
3932
4350
  readonly required: readonly ["value"];
4351
+ }, {
4352
+ readonly required: readonly ["tooltip"];
3933
4353
  }];
3934
4354
  readonly properties: {
3935
4355
  readonly condition: {
@@ -3938,6 +4358,14 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3938
4358
  readonly badge: {
3939
4359
  readonly $ref: "#/$defs/badge";
3940
4360
  };
4361
+ readonly renderer: {
4362
+ readonly type: "object";
4363
+ readonly minProperties: 1;
4364
+ readonly additionalProperties: true;
4365
+ };
4366
+ readonly tooltip: {
4367
+ readonly $ref: "#/$defs/tooltip";
4368
+ };
3941
4369
  readonly value: {
3942
4370
  readonly $ref: "#/$defs/badge";
3943
4371
  };
@@ -3995,5 +4423,5 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
3995
4423
  declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
3996
4424
  declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
3997
4425
 
3998
- export { 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_COMPONENT_METADATA, PRAXIS_TABLE_COMPONENT_METADATA, PraxisFilter, PraxisTable, PraxisTableConfigEditor, PraxisTableInlineAuthoringEditorComponent, PraxisTableToolbar, 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, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisFilterMetadata, providePraxisTableMetadata, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
3999
- export type { ActionLike, 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, ResourcePathIntent, RowAction, RowExpansionChangeBase, RowExpansionChangeEvent, RowExpansionReasonCode, RowExpansionTrigger, StringFormatterOptions, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };
4426
+ export { 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_COMPONENT_METADATA, PRAXIS_TABLE_AUTHORING_MANIFEST, PRAXIS_TABLE_COMPONENT_METADATA, 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, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisFilterMetadata, providePraxisTableMetadata, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
4427
+ export type { ActionLike, 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, PraxisFilterWidgetEditorInputs, PraxisFilterWidgetEditorValue, PraxisTableWidgetEditorInputs, PraxisTableWidgetEditorValue, ResourcePathIntent, RowAction, RowExpansionChangeBase, RowExpansionChangeEvent, RowExpansionReasonCode, RowExpansionTrigger, StringFormatterOptions, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };