@praxisui/table 8.0.0-beta.4 → 8.0.0-beta.40

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-BKFUIQHC.mjs +59194 -0
  35. package/fesm2022/praxisui-table-table-agentic-authoring-turn-flow-ClO1cbPq.mjs +3376 -0
  36. package/fesm2022/praxisui-table-table-ai.adapter-1vA3jhSM.mjs +3241 -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 +1356 -0
  41. package/{index.d.ts → types/praxisui-table.d.ts} +522 -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, 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,23 @@ 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?;
879
970
  readonly paginatorSelectConfig: MatPaginatorSelectConfig;
880
971
  private static readonly ROW_ANIMATION_PRESETS;
881
972
  private static readonly ROW_ANIMATION_PRESET_ALIASES;
@@ -894,12 +985,20 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
894
985
  crudContext: any;
895
986
  filterCriteria: Record<string, any>;
896
987
  queryContext: PraxisDataQueryContextBridge | null;
988
+ advancedFilterValue: Record<string, any>;
989
+ advancedFilterRuntimeVisibleFields: string[];
990
+ private advancedFilterAlwaysVisibleCacheKey;
991
+ private advancedFilterAlwaysVisibleCache?;
992
+ private advancedFilterMetadataOverridesCacheKey;
993
+ private advancedFilterMetadataOverridesCacheSource?;
994
+ private advancedFilterMetadataOverridesCache?;
897
995
  rowClick: EventEmitter<any>;
898
996
  rowDoubleClick: EventEmitter<any>;
899
997
  rowExpansionChange: EventEmitter<RowExpansionChangeEvent>;
900
998
  rowAction: EventEmitter<any>;
901
999
  toolbarAction: EventEmitter<any>;
902
1000
  bulkAction: EventEmitter<any>;
1001
+ exportAction: EventEmitter<any>;
903
1002
  columnReorder: EventEmitter<any>;
904
1003
  columnReorderAttempt: EventEmitter<any>;
905
1004
  beforeDelete: EventEmitter<any>;
@@ -909,6 +1008,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
909
1008
  afterBulkDelete: EventEmitter<any>;
910
1009
  bulkDeleteError: EventEmitter<any>;
911
1010
  schemaStatusChange: EventEmitter<any>;
1011
+ configChange: EventEmitter<_praxisui_core.TableConfigModern>;
912
1012
  metadataChange: EventEmitter<any>;
913
1013
  loadingStateChange: EventEmitter<LoadingState>;
914
1014
  collectionLinksChange: EventEmitter<RestApiLinks | null>;
@@ -937,6 +1037,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
937
1037
  readonly isExpansionDetailRow: (index: number, row: any) => boolean;
938
1038
  columnReorderStatusMessage: string;
939
1039
  columnReorderVisualStatusMessage: string;
1040
+ exportBusy: boolean;
1041
+ exportStatusMessage: string;
940
1042
  private columnReorderStatusTimer;
941
1043
  private columnReorderVisualStatusTimer;
942
1044
  private columnReorderUndoSubscription;
@@ -949,6 +1051,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
949
1051
  private lastResolvedDataMode;
950
1052
  private localFilterFieldMetadataCache;
951
1053
  private localFilterFieldMetadataCacheKey;
1054
+ private analyticsLoadSequence;
952
1055
  private uncontrolledExpandedRowKeys;
953
1056
  private readonly expansionOpaqueRefCacheLimit;
954
1057
  private expansionOpaqueRefByRowKey;
@@ -976,8 +1079,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
976
1079
  private rowDiscoveryMarkForCheckScheduled;
977
1080
  private lastRowDiscoveryScopeKey;
978
1081
  private readonly i18n;
1082
+ private readonly collectionExport;
979
1083
  private readonly paginatorIntl;
980
1084
  private schemaFieldsSnapshot;
1085
+ private filterSchemaFieldsSnapshot;
981
1086
  private runtimeSchemaMeta;
982
1087
  schemaError: boolean;
983
1088
  dataError: boolean;
@@ -1009,6 +1114,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1009
1114
  getColumnTextAlignStyle(column: ColumnDefinition): string | null;
1010
1115
  getColumnWidthStyle(column: ColumnDefinition): string | null;
1011
1116
  getColumnHeaderAttrStyle(column: ColumnDefinition): string | null;
1117
+ getColumnHeaderNgStyle(column: ColumnDefinition): Record<string, string> | undefined;
1012
1118
  getColumnCellAttrStyle(column: ColumnDefinition): string | null;
1013
1119
  getTableElevationClassName(): string;
1014
1120
  private normalizeTableElevationLevel;
@@ -1025,6 +1131,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1025
1131
  hasBottomPaginator(): boolean;
1026
1132
  hasExplicitResourcePath(): boolean;
1027
1133
  hasLocalDataInput(): boolean;
1134
+ hasAnalyticsProjectionInput(): boolean;
1028
1135
  getDataMode(): DataMode;
1029
1136
  isRemoteMode(): boolean;
1030
1137
  isLocalMode(): boolean;
@@ -1051,6 +1158,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1051
1158
  shouldRenderAdvancedFilter(): boolean;
1052
1159
  getAdvancedFilterResourcePath(): string;
1053
1160
  getAdvancedFilterPersistenceKey(): string;
1161
+ getAdvancedFilterAlwaysVisibleFields(): string[] | undefined;
1162
+ getAdvancedFilterAlwaysVisibleFieldMetadataOverrides(): Record<string, Record<string, any>>;
1054
1163
  getAdvancedFilterFieldMetadata(): FieldMetadata[] | null | undefined;
1055
1164
  private buildLocalFilterMetadata;
1056
1165
  private buildLocalFilterMetadataCacheKey;
@@ -1071,8 +1180,13 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1071
1180
  get hostColumnBordersClass(): boolean;
1072
1181
  trackByRow(index: number, item: any): any;
1073
1182
  getSchemaFieldsSnapshot(): SchemaFieldHint[];
1183
+ getFilterSchemaFieldsSnapshot(): FilterSchemaFieldHint[];
1184
+ getResourceCapabilityDigest(): ResourceCapabilityDigest | null;
1185
+ ensureFilterSchemaFieldsSnapshot(): Promise<void>;
1186
+ getAiAssistantSelectedRowsContext(): Record<string, any> | null;
1074
1187
  aiAdapter: any;
1075
1188
  private aiAdapterLoadStarted;
1189
+ private aiAssistantOpenAfterAdapterLoad;
1076
1190
  aiAssistantOpen: boolean;
1077
1191
  aiAssistantPrompt: string;
1078
1192
  aiAssistantViewState: PraxisAssistantTurnViewState | null;
@@ -1081,7 +1195,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1081
1195
  private aiAssistantController;
1082
1196
  private aiAssistantStateSubscription;
1083
1197
  private readonly aiApi;
1198
+ private readonly assistantSessions;
1084
1199
  private readonly aiTurnOrchestrator;
1200
+ private readonly aiAssistantSessionEffect;
1085
1201
  private computedContextCache;
1086
1202
  private computedFieldNames;
1087
1203
  private readonly jsonLogic;
@@ -1119,6 +1235,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1119
1235
  private recomputeLocalView;
1120
1236
  private resolveLocalSortField;
1121
1237
  private setSchemaFieldsSnapshot;
1238
+ private setFilterSchemaFieldsSnapshot;
1239
+ private inferFilterSchemaSourceFields;
1240
+ private resolveFilterSchemaRelatedColumns;
1241
+ private normalizeFieldAlias;
1122
1242
  private normalizeSchemaOptions;
1123
1243
  private normalizeEnumValues;
1124
1244
  private normalizeSchemaKey;
@@ -1128,21 +1248,53 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1128
1248
  private tableConfigKey;
1129
1249
  private filterConfigKey;
1130
1250
  private ensureConfigDefaults;
1251
+ private mergePersistedTableConfigWithInput;
1252
+ private reconcileHostDeclaredTableContract;
1253
+ private reconcileHostDeclaredColumns;
1254
+ private reconcileHostDeclaredRowActions;
1255
+ private reconcileHostDeclaredExport;
1256
+ private normalizePersistedExportFormats;
1257
+ private normalizePersistedRowActionIds;
1258
+ private normalizePersistedColumnIds;
1259
+ private clonePlainObject;
1131
1260
  private setShowToolbar;
1132
1261
  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);
1262
+ 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);
1263
+ private get resourceDiscovery();
1134
1264
  private ensureAiAdapterLoaded;
1135
1265
  openAiAssistant(): void;
1266
+ aiAssistantTriggerTestId(position: string): string;
1267
+ hasMinimizedAiAssistantSession(): boolean;
1268
+ aiAssistantTriggerIcon(): string;
1269
+ aiAssistantTriggerBadge(): string;
1270
+ aiAssistantTriggerLabel(): string;
1271
+ aiAssistantTriggerTooltip(): string;
1272
+ openAiAssistantFromSession(session: PraxisAssistantSessionSnapshot): void;
1136
1273
  closeAiAssistant(): void;
1137
1274
  onAiAssistantPromptChange(prompt: string): void;
1138
1275
  onAiAssistantSubmit(prompt: string): void;
1139
1276
  onAiAssistantApply(): void;
1277
+ onAiAssistantRetry(): void;
1278
+ onAiAssistantCancel(): void;
1140
1279
  onAiAssistantQuickReply(reply: PraxisAssistantShellQuickReply): void;
1141
1280
  onAiAssistantEditMessage(message: PraxisAssistantShellMessage): void;
1142
1281
  onAiAssistantResendMessage(message: PraxisAssistantShellMessage): void;
1143
1282
  onAiAssistantLayoutChange(layout: PraxisAssistantShellLayout): void;
1144
1283
  private initializeAiAssistantController;
1145
1284
  private buildAiAssistantContextItems;
1285
+ private interpolateAiAssistantContextValue;
1286
+ private aiAssistantSelectedRecordsValue;
1287
+ private buildAiAssistantContextSnapshot;
1288
+ private syncAiAssistantSession;
1289
+ private assistantContextRuntimeLocale;
1290
+ private refreshAiAssistantContextAfterSelectionChange;
1291
+ private hasAiAssistantSessionState;
1292
+ private resolveAiAssistantSessionId;
1293
+ private resolveAiAssistantOwnerId;
1294
+ private resolveAiAssistantRouteKey;
1295
+ private resolveAiAssistantSummary;
1296
+ private resolveAiAssistantBadge;
1297
+ private resolveAiAssistantIcon;
1146
1298
  private emitLoadingState;
1147
1299
  private hasResolvedRemoteDataLoad;
1148
1300
  private isTableDataLoading;
@@ -1360,22 +1512,67 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1360
1512
  private emitRowActionEvent;
1361
1513
  private showConfirmDialog;
1362
1514
  private executeDeleteAction;
1515
+ private dispatchRowAction;
1363
1516
  private cloneForEmit;
1364
1517
  private interpolateActionMessageTemplate;
1365
1518
  private buildActionFeedbackContext;
1366
1519
  private resolveActionFeedbackMessage;
1367
1520
  private showActionFeedbackMessage;
1368
1521
  private emitEventWithActionFeedback;
1522
+ private executeConfiguredGlobalAction;
1523
+ private resolveConfiguredGlobalActionRef;
1524
+ private resolveActionGlobalActionRef;
1525
+ private resolveGlobalActionPayload;
1526
+ private buildGlobalActionTemplateContext;
1527
+ private resolveGlobalActionTemplateValue;
1528
+ private isDeferredTemplateExpressionKey;
1529
+ private interpolateGlobalActionTemplate;
1530
+ private shouldEmitLocalForGlobalAction;
1369
1531
  private resolveBulkValidationMessage;
1370
1532
  private hasValidBulkSelectionCount;
1371
1533
  private showBulkConfirmDialog;
1372
1534
  onToolbarAction(event: {
1373
1535
  action: string;
1374
1536
  actionConfig?: any;
1375
- }): void;
1537
+ }): Promise<void>;
1538
+ private resolveBulkExportFormat;
1539
+ private isBulkExportActionKey;
1540
+ private normalizeExportFormat;
1541
+ private isExportFormatEnabled;
1542
+ private getFirstEnabledExportFormat;
1543
+ onExportAction(event: {
1544
+ format: string;
1545
+ scope?: PraxisExportScope;
1546
+ }): Promise<void>;
1547
+ canRunExportAction(format: unknown): boolean;
1548
+ private shouldBlockSelectedExportWithoutSelection;
1549
+ private buildTableExportRequest;
1550
+ private resolveEffectiveExportScope;
1551
+ private resolveTableExportLoadedItems;
1552
+ private computeLocalExportRows;
1553
+ private buildTableExportFields;
1554
+ private buildTableExportFormatOptions;
1555
+ private buildTableExportLocalization;
1556
+ private resolveColumnExportFormat;
1557
+ private buildColumnExportPresentation;
1558
+ private resolveColumnExportCurrency;
1559
+ private downloadExportResult;
1560
+ private triggerExportDownload;
1561
+ private resolveExportFileName;
1562
+ private getExportFileExtension;
1563
+ private getExportMimeType;
1564
+ private showExportFeedback;
1376
1565
  onAdvancedFilterSubmit(criteria: Record<string, any>): void;
1377
1566
  onAdvancedFilterChange(criteria: Record<string, any>): void;
1378
1567
  onAdvancedFilterClear(): void;
1568
+ private applyAdvancedFilterCriteria;
1569
+ private setAdvancedFilterCriteria;
1570
+ private syncAdvancedFilterValueFromCriteria;
1571
+ private deriveRuntimeVisibleAdvancedFilterFields;
1572
+ private isEmptyAdvancedFilterCriterionValue;
1573
+ private mergeAdvancedFilterFieldIds;
1574
+ private getRuntimePromotedAdvancedFilterFields;
1575
+ private toPlainRecord;
1379
1576
  private saveConfigWithAck;
1380
1577
  private clearConfigWithAck;
1381
1578
  private persistHorizontalScrollInput;
@@ -1439,7 +1636,18 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1439
1636
  */
1440
1637
  private verifyServerSchemaVersion;
1441
1638
  private loadSchema;
1639
+ private loadFilterSchemaSnapshot;
1442
1640
  private convertFieldToColumn;
1641
+ private applySchemaFieldPresentation;
1642
+ private resolveSchemaCurrencyFormat;
1643
+ private resolveSchemaBooleanFormat;
1644
+ private resolveSchemaValueMapping;
1645
+ private resolveSchemaOptionsValueMapping;
1646
+ private normalizePresentationToken;
1647
+ private firstNonEmptyString;
1648
+ private firstFiniteNumber;
1649
+ private humanizeSchemaEnumValue;
1650
+ private capitalizeSchemaEnumPart;
1443
1651
  /**
1444
1652
  * Apply automatic renderer hints based on schema field metadata.
1445
1653
  * Runs only on initial bootstrap (when columns are derived from schema).
@@ -1507,6 +1715,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1507
1715
  private pruneRowDiscoveryCaches;
1508
1716
  private pruneRowDiscoveryCache;
1509
1717
  private fetchData;
1718
+ private resolveAnalyticsProjection;
1719
+ private fetchAnalyticsProjectionData;
1510
1720
  private getEffectiveFilterCriteria;
1511
1721
  retryData(): void;
1512
1722
  reloadSchema(): void;
@@ -1519,9 +1729,35 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1519
1729
  * 3. format (data formatting like dates, numbers, currency)
1520
1730
  */
1521
1731
  getCellValue(rowData: any, column: ColumnDefinition): any;
1732
+ private applyImplicitRuntimeCellPresentation;
1733
+ private shouldHumanizeRuntimeEnumCell;
1734
+ private resolveCellFormattingType;
1735
+ private normalizeReadonlyEntityLookupCellValue;
1736
+ private toEntityLookupDisplayToken;
1737
+ private isEntityLookupDisplayCandidate;
1738
+ private toEntityLookupDisplayPrimitive;
1522
1739
  private resolveImplicitFormat;
1523
1740
  getCellClasses(rowData: any, column: ColumnDefinition): string[] | undefined;
1524
1741
  getCellNgStyle(rowData: any, column: ColumnDefinition): Record<string, string> | undefined;
1742
+ private normalizeInlineStyleRecord;
1743
+ private normalizeConditionalStyleRules;
1744
+ private normalizeConditionalStyleRecord;
1745
+ getCellTooltip(rowData: any, column: ColumnDefinition): string | null;
1746
+ getCellTooltipPosition(rowData: any, column: ColumnDefinition): 'above' | 'below' | 'left' | 'right' | 'before' | 'after';
1747
+ private resolveConditionalStyleTooltipText;
1748
+ private resolveRendererTooltipText;
1749
+ private normalizeTooltipPosition;
1750
+ private normalizeConditionalStyleEffects;
1751
+ private hasConditionalStyleEffectPayload;
1752
+ private resolveConditionalStyleClasses;
1753
+ private resolveConditionalStyleObject;
1754
+ private compileConditionalStyleEffect;
1755
+ private normalizeConditionalRendererRules;
1756
+ private normalizeObjectRecord;
1757
+ private buildColumnRendererOverrideFromEffects;
1758
+ private buildColumnRendererFromEffect;
1759
+ private resolveRuleAnimationFromEffects;
1760
+ private resolveRowTooltipFromEffects;
1525
1761
  private resetComputedContextCache;
1526
1762
  private ensureEffectiveCellRenderCache;
1527
1763
  private ensureCellAnimationPreviousValuesByRowId;
@@ -1533,6 +1769,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1533
1769
  private buildComputedSignature;
1534
1770
  private stringifyDependencyValue;
1535
1771
  private buildComputedValueMap;
1772
+ private collectComputedColumns;
1773
+ private evaluateCanonicalComputedColumns;
1774
+ private collectComputedExpressionDependencies;
1775
+ private collectJsonLogicVarDependencies;
1776
+ private resolveJsonLogicVarPath;
1536
1777
  private buildEvaluationContext;
1537
1778
  private getJsonLogicEvaluationOptions;
1538
1779
  private resolveJsonLogicUserTimeZone;
@@ -1671,6 +1912,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1671
1912
  private buildEffectiveCellRenderCacheKey;
1672
1913
  private getEffectiveCellRenderResult;
1673
1914
  private getEffectiveRenderer;
1915
+ private resolveEffectiveRendererTooltip;
1674
1916
  getLinkHref(row: any, column: ColumnDefinition): string | null;
1675
1917
  getLinkText(row: any, column: ColumnDefinition): string;
1676
1918
  getLinkRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
@@ -1714,6 +1956,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1714
1956
  private deriveAvatarInitials;
1715
1957
  getAvatarInitials(row: any, column: ColumnDefinition): string;
1716
1958
  getAvatarRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
1959
+ private getAvatarRichContentStyle;
1717
1960
  getAvatarShape(row: any, column: ColumnDefinition): 'square' | 'rounded' | 'circle' | undefined;
1718
1961
  getAvatarStyle(row: any, column: ColumnDefinition): Record<string, string> | null;
1719
1962
  getToggleState(row: any, column: ColumnDefinition): boolean;
@@ -1769,6 +2012,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1769
2012
  private reconcileSelectionAfterDataChange;
1770
2013
  private getComparableRowIdentity;
1771
2014
  getIdField(): string;
2015
+ private resolveConfigMetaIdField;
1772
2016
  private syncRuntimeSchemaMetaFromConfig;
1773
2017
  private getEffectiveMetadataSnapshot;
1774
2018
  getActionId(action: any): string;
@@ -1787,6 +2031,20 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1787
2031
  toggleRow(row: any): void;
1788
2032
  private selectRowFromUserInteraction;
1789
2033
  private emitSelectionChange;
2034
+ private getSelectedRowsSnapshot;
2035
+ private getAiAssistantSelectionFields;
2036
+ private buildAiAssistantSelectionFilterCandidates;
2037
+ private inferAiAssistantFilterCriterionKind;
2038
+ private buildAiAssistantRangeFilterCandidate;
2039
+ private buildAiAssistantSetFilterCandidate;
2040
+ private resolveAiAssistantSetFilterDisplayValue;
2041
+ private aiAssistantSetFilterDisplayFieldCandidates;
2042
+ private resolveAiAssistantFilterSourceFields;
2043
+ private normalizeAiAssistantNumericRangeValue;
2044
+ private normalizeAiAssistantDateRangeValue;
2045
+ private sanitizeAiAssistantSelectedRow;
2046
+ private safeStringifyAiAssistantValue;
2047
+ private isSensitiveAiAssistantField;
1790
2048
  private getRowActionsConfig;
1791
2049
  getActionsHeaderAlign(): string;
1792
2050
  getActionsHeaderTooltip(): string | undefined;
@@ -1811,11 +2069,19 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1811
2069
  private splitVisibleRowActionsFromVisible;
1812
2070
  private decorateConfiguredRowAction;
1813
2071
  private getDiscoveredRowWorkflowActions;
2072
+ private getDiscoveredRowSurfaceActionsFromSnapshot;
1814
2073
  private getDiscoveredRowWorkflowActionsFromCatalog;
1815
2074
  private supportsRowCrudAction;
1816
2075
  private isCapabilityManagedCrudRowAction;
1817
2076
  private findItemWorkflowAction;
2077
+ private findItemSurface;
2078
+ private isRowSurfaceAction;
2079
+ private isWritableRowSurface;
2080
+ private isReadableRowSurface;
2081
+ private getDiscoveredSurfaceIcon;
2082
+ private getDiscoveredSurfaceColor;
1818
2083
  private getUnavailableWorkflowMessage;
2084
+ private getUnavailableSurfaceMessage;
1819
2085
  private normalizeActionId;
1820
2086
  private isActionVisible;
1821
2087
  trackAction(index: number, item: any): any;
@@ -1829,8 +2095,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1829
2095
  getRowMenuIcon(): string;
1830
2096
  private scheduleRowDiscoveryMarkForCheck;
1831
2097
  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>;
2098
+ 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; }]>;
2099
+ 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; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "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
2100
  static ngAcceptInputType_enableCustomization: unknown;
1835
2101
  }
1836
2102
 
@@ -1843,7 +2109,6 @@ interface EditorDocument<TConfig, TBindings = unknown> {
1843
2109
  type TableHorizontalScroll = 'auto' | 'wrap' | 'none';
1844
2110
  interface TableBindings {
1845
2111
  resourcePath?: string | null;
1846
- idField?: string;
1847
2112
  horizontalScroll?: TableHorizontalScroll;
1848
2113
  }
1849
2114
  interface TableAuthoringDocument extends EditorDocument<TableConfig, TableBindings> {
@@ -1900,7 +2165,6 @@ interface TableApplyPlan {
1900
2165
  };
1901
2166
  diff?: {
1902
2167
  resourcePathChanged?: boolean;
1903
- idFieldChanged?: boolean;
1904
2168
  horizontalScrollChanged?: boolean;
1905
2169
  requiresDataRefresh?: boolean;
1906
2170
  };
@@ -2373,6 +2637,8 @@ interface ToolbarAction {
2373
2637
  /** Material button appearance: filled (flat), outlined (stroked), elevated (raised), text, tonal */
2374
2638
  appearance?: 'filled' | 'outlined' | 'elevated' | 'text' | 'tonal';
2375
2639
  action: string;
2640
+ globalAction?: GlobalActionRef;
2641
+ effects?: PraxisRuntimeGlobalActionEffect[];
2376
2642
  position: 'start' | 'end';
2377
2643
  order?: number;
2378
2644
  disabled?: boolean;
@@ -2380,7 +2646,7 @@ interface ToolbarAction {
2380
2646
  shortcut?: string;
2381
2647
  shortcutScope?: 'toolbar' | 'global';
2382
2648
  tooltip?: string;
2383
- visibleWhen?: string;
2649
+ visibleWhen?: JsonLogicExpression | null;
2384
2650
  children?: ToolbarAction[];
2385
2651
  }
2386
2652
  interface RowAction {
@@ -2388,11 +2654,15 @@ interface RowAction {
2388
2654
  label: string;
2389
2655
  icon: string;
2390
2656
  action: string;
2657
+ globalAction?: GlobalActionRef;
2658
+ effects?: PraxisRuntimeGlobalActionEffect[];
2391
2659
  color?: 'primary' | 'accent' | 'warn';
2392
2660
  tooltip?: string;
2393
2661
  requiresConfirmation?: boolean;
2394
2662
  autoDelete?: boolean;
2395
2663
  separator?: boolean;
2664
+ visibleWhen?: JsonLogicExpression | null;
2665
+ disabledWhen?: JsonLogicExpression | null;
2396
2666
  conditional?: string;
2397
2667
  }
2398
2668
  interface BulkAction {
@@ -2400,6 +2670,8 @@ interface BulkAction {
2400
2670
  label: string;
2401
2671
  icon: string;
2402
2672
  action: string;
2673
+ globalAction?: GlobalActionRef;
2674
+ effects?: PraxisRuntimeGlobalActionEffect[];
2403
2675
  color?: 'primary' | 'accent' | 'warn';
2404
2676
  tooltip?: string;
2405
2677
  requiresConfirmation?: boolean;
@@ -2413,6 +2685,25 @@ interface ToolbarActionsChange {
2413
2685
  value: any;
2414
2686
  fullConfig: TableConfig;
2415
2687
  }
2688
+ type GlobalActionCatalogOption = GlobalActionCatalogEntry & {
2689
+ param?: {
2690
+ required?: boolean;
2691
+ label?: string;
2692
+ placeholder?: string;
2693
+ hint?: string;
2694
+ };
2695
+ };
2696
+ type EditableTableAction = {
2697
+ id?: string;
2698
+ label?: string;
2699
+ action?: string;
2700
+ globalAction?: GlobalActionRef;
2701
+ effects?: PraxisRuntimeGlobalActionEffect[];
2702
+ position?: string;
2703
+ appearance?: string;
2704
+ visibleWhen?: JsonLogicExpression | null;
2705
+ disabledWhen?: JsonLogicExpression | null;
2706
+ };
2416
2707
  type ToolbarShortcutScope = 'toolbar' | 'global';
2417
2708
  interface InternalActionSpec {
2418
2709
  id: string;
@@ -2433,14 +2724,14 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2433
2724
  editingToolbarActionIndex: number | null;
2434
2725
  editingRowActionIndex: number | null;
2435
2726
  editingBulkActionIndex: number | null;
2436
- readonly globalActionCatalog: GlobalActionSpec[];
2727
+ private readonly i18n;
2728
+ readonly globalActionCatalog: GlobalActionCatalogOption[];
2437
2729
  get internalActionCatalog(): InternalActionSpec[];
2438
2730
  readonly customActionValue = "__custom__";
2439
2731
  readonly validShortcutScopes: ToolbarShortcutScope[];
2440
2732
  private readonly actionFieldDrafts;
2441
2733
  private readonly actionFieldErrors;
2442
2734
  private readonly warnedInvalidShortcutScopes;
2443
- private readonly i18n;
2444
2735
  private destroy$;
2445
2736
  constructor(fb: FormBuilder, iconPicker: IconPickerService);
2446
2737
  tx(key: string, fallback: string): string;
@@ -2469,56 +2760,37 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2469
2760
  private removeAddToolbarAction;
2470
2761
  private syncAddFormFromActions;
2471
2762
  private updateConfig;
2472
- getActionSelectValue(value?: string): string;
2473
- getActionParam(value?: string): string;
2474
- getActionCustomValue(value?: string): string;
2763
+ getActionSelectValue(action?: EditableTableAction): string;
2764
+ getActionParam(action?: EditableTableAction): string;
2765
+ isRequiredGlobalActionParamMissing(action: EditableTableAction, spec: GlobalActionCatalogOption): boolean;
2766
+ getActionCustomValue(action?: EditableTableAction): string;
2475
2767
  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;
2768
+ getActionSpecById(id: string): GlobalActionCatalogOption | undefined;
2769
+ onActionSelectChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2770
+ onActionParamChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2771
+ onActionCustomChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2772
+ getCanonicalGlobalActionRef(action?: EditableTableAction): GlobalActionRef | undefined;
2773
+ private setCanonicalGlobalActionRef;
2486
2774
  private touchActionList;
2487
- private parseActionValue;
2775
+ getActionJsonLogicText(action: EditableTableAction, key: 'visibleWhen' | 'disabledWhen'): string;
2776
+ onActionJsonLogicChange(action: EditableTableAction, key: 'visibleWhen' | 'disabledWhen', value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2777
+ getActionConditionError(action: EditableTableAction, key: 'visibleWhen' | 'disabledWhen'): string;
2488
2778
  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;
2779
+ getGlobalActionSchema(action: EditableTableAction): _praxisui_core.GlobalActionUiSchema | undefined;
2780
+ getSurfaceOpenActionPayload(action: EditableTableAction): SurfaceOpenPayload;
2781
+ onSurfaceOpenActionPayloadChange(action: EditableTableAction, payload: SurfaceOpenPayload, kind: 'toolbar' | 'row' | 'bulk'): void;
2782
+ shouldShowGlobalActionField(action: EditableTableAction, field: GlobalActionField): boolean;
2783
+ isGlobalActionFieldRequired(action: EditableTableAction, field: GlobalActionField): boolean;
2784
+ isGlobalActionFieldMissing(action: EditableTableAction, field: GlobalActionField): boolean;
2785
+ hasActionFieldError(action: EditableTableAction, key: string): boolean;
2786
+ getActionFieldError(action: EditableTableAction, key: string): string;
2787
+ getGlobalActionFieldValue(action: EditableTableAction, field: GlobalActionField): any;
2788
+ onGlobalActionFieldChange(action: EditableTableAction, field: GlobalActionField, value: any, kind: 'toolbar' | 'row' | 'bulk'): void;
2515
2789
  private stringifyJson;
2516
2790
  private normalizeSurfaceOpenPayload;
2517
2791
  private setActionFieldError;
2518
2792
  private clearActionFieldError;
2519
2793
  private collectGlobalActionFieldValues;
2520
- private serializeGlobalActionParam;
2521
- private buildPrimaryParam;
2522
2794
  private buildGlobalActionPayload;
2523
2795
  getToolbarActionShortcutScope(action: ToolbarAction): ToolbarShortcutScope;
2524
2796
  onToolbarActionShortcutScopeChange(action: ToolbarAction, value: ToolbarShortcutScope | string): void;
@@ -2710,6 +2982,7 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
2710
2982
  }[];
2711
2983
  getContrastWarning(): string | null;
2712
2984
  applyPreset(key: string): void;
2985
+ isPresetActive(key: string): boolean;
2713
2986
  hasBooleanFieldMetadata(): boolean;
2714
2987
  getFieldLabel(name: string): string;
2715
2988
  onAlwaysVisibleFieldSearchChange(value: string): void;
@@ -2873,12 +3146,10 @@ declare class RuleCompilerService {
2873
3146
  static ɵprov: i0.ɵɵInjectableDeclaration<RuleCompilerService>;
2874
3147
  }
2875
3148
 
2876
- type RuleItem = {
2877
- condition: JsonLogicExpression;
3149
+ type RuleItem = Omit<PraxisRuntimeConditionalEffectRule<RuleEffectDefinition>, 'effects'> & {
2878
3150
  cssClass?: string;
2879
3151
  style?: Record<string, string>;
2880
- description?: string;
2881
- effects?: _praxisui_table_rule_builder.RuleEffectDefinition;
3152
+ effects?: RuleEffectDefinition[];
2882
3153
  enabled?: boolean;
2883
3154
  };
2884
3155
  declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy {
@@ -2948,6 +3219,7 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
2948
3219
  onColumnSelect(field: string): void;
2949
3220
  private initFromConfig;
2950
3221
  private loadColumnRules;
3222
+ private normalizePersistedRules;
2951
3223
  rebuildCondition(): void;
2952
3224
  onDraftChange(): void;
2953
3225
  applyTextPreset(preset: string): void;
@@ -2974,6 +3246,8 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
2974
3246
  onExportRules(): void;
2975
3247
  onImportRules(): void;
2976
3248
  private sanitizeRule;
3249
+ private normalizeRuleEffects;
3250
+ getPrimaryEffect(r: RuleItem | null | undefined): RuleEffectDefinition | undefined;
2977
3251
  getAnimationLabel(r: RuleItem): string | null;
2978
3252
  private normalizeRendererAnimation;
2979
3253
  private buildRendererOverrideFromRule;
@@ -3080,6 +3354,8 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3080
3354
  private cdr;
3081
3355
  private configService;
3082
3356
  private readonly i18n;
3357
+ private readonly globalActionCatalogSource;
3358
+ private readonly globalActionCatalog;
3083
3359
  filterSettingsEditor?: FilterSettingsComponent;
3084
3360
  behaviorEditor?: BehaviorConfigEditorComponent;
3085
3361
  rulesEditor?: TableRulesEditorComponent;
@@ -3142,6 +3418,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3142
3418
  private hasLocalDataInput;
3143
3419
  private filterDtoLoadSeq;
3144
3420
  private lastKnownFilterSettings;
3421
+ private globalActionValidationIssues;
3145
3422
  private readonly panelData;
3146
3423
  private readonly crudService;
3147
3424
  private readonly panelRef;
@@ -3168,6 +3445,9 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3168
3445
  onRulesConfigChange(newCfg: TableConfig): void;
3169
3446
  private updateColumnMetas;
3170
3447
  private updateCanSaveState;
3448
+ private collectGlobalActionValidationIssues;
3449
+ private findGlobalActionCatalogEntry;
3450
+ private buildGlobalActionCatalog;
3171
3451
  private subscribeCrudEditorChanges;
3172
3452
  private showSuccess;
3173
3453
  private showError;
@@ -3176,6 +3456,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3176
3456
  * Normaliza uma configuração de tabela para comparação consistente
3177
3457
  * Remove propriedades undefined, ordena arrays e objetos de forma consistente
3178
3458
  */
3459
+ private withCanonicalIdField;
3179
3460
  private normalizeTableConfig;
3180
3461
  /**
3181
3462
  * Realiza comparação profunda de objetos, ignorando ordem de propriedades
@@ -3238,6 +3519,107 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3238
3519
  static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTableConfigEditor, "praxis-table-config-editor", never, {}, {}, never, never, true, never>;
3239
3520
  }
3240
3521
 
3522
+ interface PraxisTableWidgetEditorInputs {
3523
+ config?: TableConfig | null;
3524
+ resourcePath?: string | null;
3525
+ horizontalScroll?: 'auto' | 'wrap' | 'none';
3526
+ tableId?: string;
3527
+ componentInstanceId?: string;
3528
+ [key: string]: unknown;
3529
+ }
3530
+ interface PraxisTableWidgetEditorValue {
3531
+ inputs: PraxisTableWidgetEditorInputs;
3532
+ }
3533
+ declare class PraxisTableWidgetConfigEditor implements SettingsValueProvider$1, AfterViewInit, OnDestroy {
3534
+ inputs: PraxisTableWidgetEditorInputs | null;
3535
+ widgetKey?: string;
3536
+ tableEditor?: PraxisTableConfigEditor;
3537
+ readonly isDirty$: BehaviorSubject<boolean>;
3538
+ readonly isValid$: BehaviorSubject<boolean>;
3539
+ readonly isBusy$: BehaviorSubject<boolean>;
3540
+ private readonly subscription;
3541
+ ngAfterViewInit(): void;
3542
+ ngOnDestroy(): void;
3543
+ getSettingsValue(): PraxisTableWidgetEditorValue;
3544
+ onSave(): PraxisTableWidgetEditorValue;
3545
+ reset(): void;
3546
+ private initializeChildEditor;
3547
+ private buildValue;
3548
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTableWidgetConfigEditor, never>;
3549
+ 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>;
3550
+ }
3551
+
3552
+ interface PraxisFilterWidgetEditorInputs {
3553
+ resourcePath?: string | null;
3554
+ fieldMetadata?: FieldMetadata[] | null;
3555
+ filterId?: string;
3556
+ formId?: string;
3557
+ componentInstanceId?: string;
3558
+ alwaysVisibleFields?: string[];
3559
+ alwaysVisibleFieldMetadataOverrides?: Record<string, Record<string, unknown>>;
3560
+ selectedFieldIds?: string[];
3561
+ allowSaveTags?: boolean;
3562
+ changeDebounceMs?: number;
3563
+ placeBooleansInActions?: boolean;
3564
+ showToggleLabels?: boolean;
3565
+ alwaysMinWidth?: number;
3566
+ alwaysColsMd?: number;
3567
+ alwaysColsLg?: number;
3568
+ confirmTagDelete?: boolean;
3569
+ tagColor?: 'primary' | 'accent' | 'warn' | 'basic';
3570
+ tagVariant?: 'filled' | 'outlined';
3571
+ tagButtonColor?: 'primary' | 'accent' | 'warn' | 'basic';
3572
+ actionsButtonColor?: 'primary' | 'accent' | 'warn' | 'basic';
3573
+ actionsVariant?: 'standard' | 'outlined';
3574
+ useInlineSearchableSelectVariant?: boolean;
3575
+ useInlineRangeVariant?: boolean;
3576
+ useInlineDateVariant?: boolean;
3577
+ useInlineDateRangeVariant?: boolean;
3578
+ useInlineTimeVariant?: boolean;
3579
+ useInlineTimeRangeVariant?: boolean;
3580
+ useInlineTreeSelectVariant?: boolean;
3581
+ overlayVariant?: 'card' | 'frosted';
3582
+ overlayBackdrop?: boolean;
3583
+ advancedOpenMode?: 'modal' | 'drawer';
3584
+ advancedClearButtonsEnabled?: boolean;
3585
+ persistenceKey?: string;
3586
+ showFilterSettings?: boolean;
3587
+ enableCustomization?: boolean;
3588
+ [key: string]: unknown;
3589
+ }
3590
+ interface PraxisFilterWidgetEditorValue {
3591
+ inputs: PraxisFilterWidgetEditorInputs;
3592
+ }
3593
+ declare class PraxisFilterWidgetConfigEditor implements SettingsValueProvider$1, OnDestroy {
3594
+ widgetKey?: string;
3595
+ set inputs(value: PraxisFilterWidgetEditorInputs | null);
3596
+ get inputs(): PraxisFilterWidgetEditorInputs | null;
3597
+ set filterSettings(component: FilterSettingsComponent | undefined);
3598
+ metadata: FieldMetadata[];
3599
+ settings: FilterConfig;
3600
+ configKey?: string;
3601
+ readonly isDirty$: BehaviorSubject<boolean>;
3602
+ readonly isValid$: BehaviorSubject<boolean>;
3603
+ readonly isBusy$: BehaviorSubject<boolean>;
3604
+ private currentInputs;
3605
+ private settingsEditor?;
3606
+ private subscription;
3607
+ ngOnDestroy(): void;
3608
+ getSettingsValue(): PraxisFilterWidgetEditorValue;
3609
+ onSave(): PraxisFilterWidgetEditorValue;
3610
+ reset(): void;
3611
+ private buildValue;
3612
+ private buildSettingsFromInputs;
3613
+ private projectSettingsToInputs;
3614
+ private normalizeSettings;
3615
+ private normalizeAdvancedOpenMode;
3616
+ private normalizeOverlayVariant;
3617
+ private cloneStringArray;
3618
+ private cloneRecord;
3619
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisFilterWidgetConfigEditor, never>;
3620
+ 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>;
3621
+ }
3622
+
3241
3623
  declare class DataFormatterComponent implements OnInit, OnChanges {
3242
3624
  private cdr;
3243
3625
  private formattingService;
@@ -3306,31 +3688,6 @@ declare class DataFormatterComponent implements OnInit, OnChanges {
3306
3688
  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
3689
  }
3308
3690
 
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
3691
  interface AnalyticsTableConfigAdapterOptions {
3335
3692
  title?: PraxisTextValue;
3336
3693
  subtitle?: PraxisTextValue;
@@ -3344,24 +3701,6 @@ declare class AnalyticsTableConfigAdapterService {
3344
3701
  static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableConfigAdapterService>;
3345
3702
  }
3346
3703
 
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
3704
  declare class AnalyticsTableContractService {
3366
3705
  private readonly analyticsSchema;
3367
3706
  private readonly resolver;
@@ -3397,6 +3736,15 @@ declare function buildTableApplyPlan(doc: TableAuthoringDocument, runtime?: Tabl
3397
3736
  }): TableApplyPlan;
3398
3737
  declare function serializeTableAuthoringDocument(doc: TableAuthoringDocument): unknown;
3399
3738
 
3739
+ /**
3740
+ * Manifesto de authoring canônico para o componente praxis-table.
3741
+ * Este arquivo define o contrato executável para que agentes de IA editem tabelas.
3742
+ *
3743
+ * @version 2.0.0
3744
+ * @status COMPLIANT - Alinhado com o contrato v2 e TableConfig canônico.
3745
+ */
3746
+ declare const PRAXIS_TABLE_AUTHORING_MANIFEST: ComponentAuthoringManifest;
3747
+
3400
3748
  declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
3401
3749
  private readonly i18n;
3402
3750
  config: TableConfig;
@@ -3497,7 +3845,7 @@ declare class ValueMappingEditorComponent implements OnInit, OnChanges {
3497
3845
  [key: number]: string;
3498
3846
  }>;
3499
3847
  mappingPairs: ValueMappingPair[];
3500
- dataSource: MatTableDataSource<ValueMappingPair, _angular_material_paginator_d_Zo1cMMo4.M>;
3848
+ dataSource: MatTableDataSource<ValueMappingPair, _angular_material_paginator.MatPaginator>;
3501
3849
  displayedColumns: string[];
3502
3850
  showImportDialog: boolean;
3503
3851
  importJsonText: string;
@@ -3643,7 +3991,6 @@ declare function providePraxisTableMetadata(): Provider;
3643
3991
  declare module '@praxisui/core' {
3644
3992
  interface AiCapabilityCategoryMap {
3645
3993
  meta: true;
3646
- bindings: true;
3647
3994
  columns: true;
3648
3995
  renderer: true;
3649
3996
  conditional: true;
@@ -3657,6 +4004,7 @@ declare module '@praxisui/core' {
3657
4004
  toolbar: true;
3658
4005
  actions: true;
3659
4006
  export: true;
4007
+ runtime: true;
3660
4008
  performance: true;
3661
4009
  messages: true;
3662
4010
  localization: true;
@@ -3729,18 +4077,23 @@ type ComponentEditPlanCapability = {
3729
4077
  declare const TABLE_COMPONENT_EDIT_PLAN_KIND = "praxis.table.component-edit-plan";
3730
4078
  declare const TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND = "praxis.table.component-edit-plan.batch";
3731
4079
  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"];
4080
+ 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' | 'configure_export' | 'set_table_density' | 'set_toolbar_visibility';
4081
+ 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' | 'export.configure' | 'appearance.density.set' | 'toolbar.visibility.set';
4082
+ 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", "configure_export", "set_table_density", "set_toolbar_visibility"];
3734
4083
  declare const TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS: Record<TableComponentEditChangeKind, string>;
3735
4084
  interface TableComponentEditPlan {
3736
4085
  kind?: typeof TABLE_COMPONENT_EDIT_PLAN_KIND;
3737
4086
  version?: typeof TABLE_COMPONENT_EDIT_PLAN_VERSION | string;
3738
4087
  componentId?: 'praxis-table' | string;
3739
4088
  changeKind: TableComponentEditChangeKind | string;
4089
+ operationId?: TableComponentEditOperationId | string;
3740
4090
  capabilityPath?: string;
3741
4091
  configPath?: string;
3742
4092
  field?: string;
3743
4093
  targetField?: string;
4094
+ target?: unknown;
4095
+ input?: unknown;
4096
+ params?: unknown;
3744
4097
  value?: unknown;
3745
4098
  condition?: unknown;
3746
4099
  style?: unknown;
@@ -3768,7 +4121,7 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3768
4121
  readonly $defs: {
3769
4122
  readonly changeKind: {
3770
4123
  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"];
4124
+ 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", "configure_export", "set_table_density", "set_toolbar_visibility"];
3772
4125
  };
3773
4126
  readonly capabilityPath: {
3774
4127
  readonly type: "string";
@@ -3803,6 +4156,9 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3803
4156
  readonly type: "string";
3804
4157
  readonly minLength: 1;
3805
4158
  };
4159
+ readonly tooltip: {
4160
+ readonly $ref: "#/$defs/tooltip";
4161
+ };
3806
4162
  };
3807
4163
  readonly anyOf: readonly [{
3808
4164
  readonly required: readonly ["text"];
@@ -3810,10 +4166,31 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3810
4166
  readonly required: readonly ["textField"];
3811
4167
  }];
3812
4168
  };
4169
+ readonly tooltip: {
4170
+ readonly type: "object";
4171
+ readonly additionalProperties: false;
4172
+ readonly required: readonly ["text"];
4173
+ readonly properties: {
4174
+ readonly text: {
4175
+ readonly type: "string";
4176
+ readonly minLength: 1;
4177
+ };
4178
+ readonly position: {
4179
+ readonly type: "string";
4180
+ readonly enum: readonly ["top", "right", "bottom", "left", "above", "below", "before", "after"];
4181
+ };
4182
+ readonly bgColor: {
4183
+ readonly type: "string";
4184
+ readonly minLength: 1;
4185
+ };
4186
+ readonly delayMs: {
4187
+ readonly type: "number";
4188
+ };
4189
+ };
4190
+ };
3813
4191
  readonly operation: {
3814
4192
  readonly type: "object";
3815
4193
  readonly additionalProperties: false;
3816
- readonly required: readonly ["changeKind", "field", "value"];
3817
4194
  readonly properties: {
3818
4195
  readonly kind: {
3819
4196
  readonly const: "praxis.table.component-edit-plan";
@@ -3824,6 +4201,12 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3824
4201
  readonly componentId: {
3825
4202
  readonly const: "praxis-table";
3826
4203
  };
4204
+ readonly operationId: {
4205
+ 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", "export.configure", "appearance.density.set", "toolbar.visibility.set"];
4206
+ };
4207
+ readonly target: true;
4208
+ readonly input: true;
4209
+ readonly params: true;
3827
4210
  readonly changeKind: {
3828
4211
  readonly $ref: "#/$defs/changeKind";
3829
4212
  };
@@ -3852,6 +4235,13 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3852
4235
  readonly type: "string";
3853
4236
  };
3854
4237
  };
4238
+ readonly anyOf: readonly [{
4239
+ readonly required: readonly ["changeKind", "field", "value"];
4240
+ }, {
4241
+ readonly required: readonly ["operationId", "target", "input"];
4242
+ }, {
4243
+ readonly required: readonly ["operationId", "input"];
4244
+ }];
3855
4245
  readonly allOf: readonly [{
3856
4246
  readonly if: {
3857
4247
  readonly properties: {
@@ -3928,8 +4318,12 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3928
4318
  readonly required: readonly ["condition"];
3929
4319
  readonly anyOf: readonly [{
3930
4320
  readonly required: readonly ["badge"];
4321
+ }, {
4322
+ readonly required: readonly ["renderer"];
3931
4323
  }, {
3932
4324
  readonly required: readonly ["value"];
4325
+ }, {
4326
+ readonly required: readonly ["tooltip"];
3933
4327
  }];
3934
4328
  readonly properties: {
3935
4329
  readonly condition: {
@@ -3938,6 +4332,14 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
3938
4332
  readonly badge: {
3939
4333
  readonly $ref: "#/$defs/badge";
3940
4334
  };
4335
+ readonly renderer: {
4336
+ readonly type: "object";
4337
+ readonly minProperties: 1;
4338
+ readonly additionalProperties: true;
4339
+ };
4340
+ readonly tooltip: {
4341
+ readonly $ref: "#/$defs/tooltip";
4342
+ };
3941
4343
  readonly value: {
3942
4344
  readonly $ref: "#/$defs/badge";
3943
4345
  };
@@ -3995,5 +4397,5 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
3995
4397
  declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
3996
4398
  declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
3997
4399
 
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 };
4400
+ 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 };
4401
+ 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 };