@praxisui/table 9.0.0-beta.8 → 9.0.0-beta.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,9 @@
1
1
  import * as _praxisui_core from '@praxisui/core';
2
- import { TableToolbarAppearanceConfig, TableConfig, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceDensity, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, GlobalConfigService, AsyncConfigStorage, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, 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';
2
+ import { TableToolbarAppearanceConfig, TableConfig, PraxisExportScope, LoggerService, PraxisI18nService, TableToolbarAppearanceVariant, TableToolbarAppearanceDensity, TableToolbarAppearanceShape, TableToolbarAppearanceDivider, TableToolbarTokenName, GlobalConfigService, AsyncConfigStorage, LocalStorageConfigService, ApiUrlEntry, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, PraxisQueryFilterExpression, RecordRelatedSurfaceContextPack, PraxisResourceEvent, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ResourceCapabilityDigest, ConnectionStorage, LoadingOrchestrator, GlobalActionService, EnterpriseRuntimeContextService, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, PraxisRuntimeGlobalActionEffect, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, ResourceCapabilityOperation, JsonLogicExpression, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisRuntimeConditionalEffectRule, PraxisJsonLogicService, TableConfigService, SettingsValueProvider as SettingsValueProvider$1, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapability, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog } from '@praxisui/core';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterContentInit, Injector } from '@angular/core';
4
+ import { InjectionToken, OnDestroy, EventEmitter, ElementRef, Provider, OnInit, OnChanges, AfterViewInit, DoCheck, DestroyRef, ChangeDetectorRef, NgZone, SimpleChanges, ComponentRef, AfterContentInit, Injector, Type } from '@angular/core';
5
5
  import { ActivatedRoute } from '@angular/router';
6
+ import { SafeHtml } from '@angular/platform-browser';
6
7
  import { MatTable, MatTableDataSource } from '@angular/material/table';
7
8
  import * as _angular_material_paginator from '@angular/material/paginator';
8
9
  import { MatPaginatorSelectConfig, MatPaginator, PageEvent } from '@angular/material/paginator';
@@ -16,7 +17,6 @@ import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
16
17
  import { MatDialog } from '@angular/material/dialog';
17
18
  import { BaseDynamicFieldComponent } from '@praxisui/dynamic-fields';
18
19
  import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
19
- import { MatSelect } from '@angular/material/select';
20
20
  import { PraxisDialog } from '@praxisui/dialog';
21
21
  import { PraxisAssistantVoiceInputMode, PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantRecommendedIntent, PraxisAssistantShellMessage } from '@praxisui/ai';
22
22
  import { HttpClient } from '@angular/common/http';
@@ -36,6 +36,7 @@ interface ActionLike {
36
36
  }
37
37
  declare function getActionId(action: ActionLike): string;
38
38
 
39
+ declare const PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS: Record<string, TableToolbarAppearanceConfig>;
39
40
  declare const PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE: InjectionToken<TableToolbarAppearanceConfig>;
40
41
  declare const PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS: InjectionToken<Record<string, TableToolbarAppearanceConfig>>;
41
42
  declare function providePraxisTableToolbarAppearance(appearance: TableToolbarAppearanceConfig, presets?: Record<string, TableToolbarAppearanceConfig>): Provider[];
@@ -63,6 +64,8 @@ declare class PraxisTableToolbar implements OnDestroy {
63
64
  }>;
64
65
  exportAction: EventEmitter<{
65
66
  format: string;
67
+ scope?: PraxisExportScope;
68
+ localOnly?: boolean;
66
69
  }>;
67
70
  columnVisibilityToggle: EventEmitter<{
68
71
  field: string;
@@ -74,6 +77,7 @@ declare class PraxisTableToolbar implements OnDestroy {
74
77
  private readonly warnedInvalidToolbarActionTypes;
75
78
  private readonly warnedMenuWithoutChildren;
76
79
  private readonly warnedVisibleWhenFallback;
80
+ private readonly warnedDisabledWhenFallback;
77
81
  private readonly warnedInvalidShortcuts;
78
82
  private readonly warnedInvalidShortcutScopes;
79
83
  private readonly warnedShortcutConflicts;
@@ -92,8 +96,18 @@ declare class PraxisTableToolbar implements OnDestroy {
92
96
  getToolbarIcon(): string | null;
93
97
  getToolbarTextAlign(): 'start' | 'center' | 'end';
94
98
  getExportDataLabel(): string;
99
+ getVisibleExcelExportLabel(): string;
100
+ getVisibleExcelExportDescription(): string;
101
+ getVisibleExcelExportAriaLabel(): string;
102
+ getExportFormatLabel(format: unknown): string;
103
+ getExportFormatTooltip(format: unknown): string;
104
+ getExportFormatAriaLabel(format: unknown): string;
95
105
  getMoreActionsLabel(): string;
96
106
  emitExportAction(event: Event, format: string): void;
107
+ emitVisibleExcelExportAction(event: Event): void;
108
+ isExcelExportFormat(format: unknown): boolean;
109
+ isVisibleExcelExportEnabled(format: unknown): boolean;
110
+ private normalizeExportFormat;
97
111
  getColumnsVisibilityLabel(): string;
98
112
  getColumnsVisibilityIcon(): string;
99
113
  isColumnsVisibilityEnabled(): boolean;
@@ -104,6 +118,7 @@ declare class PraxisTableToolbar implements OnDestroy {
104
118
  onColumnVisibilityMenuToggle(event: Event, field: string, currentlyVisible: boolean): void;
105
119
  toggleColumnVisibility(field: string, visible: boolean): void;
106
120
  private tx;
121
+ private interpolateText;
107
122
  ngOnDestroy(): void;
108
123
  getToolbarVariant(): TableToolbarAppearanceVariant;
109
124
  getToolbarDensity(): TableToolbarAppearanceDensity;
@@ -129,21 +144,29 @@ declare class PraxisTableToolbar implements OnDestroy {
129
144
  getActionColor(action: any): any;
130
145
  getActionAriaLabel(action: any): string;
131
146
  isActionDisabled(action: any): boolean;
147
+ getActionTooltip(action: any): string | null;
132
148
  onDocumentKeydown(event: KeyboardEvent): void;
133
149
  getBulkActionsPosition(): 'toolbar' | 'floating' | 'both';
134
150
  shouldRenderToolbarBulkActions(): boolean;
135
151
  getBulkToolbarActions(): any[];
152
+ private isBulkToolbarAction;
136
153
  private getVisibleToolbarActions;
137
154
  private resolveVisibleToolbarAction;
138
155
  private isActionVisible;
139
156
  private evaluateVisibleWhen;
157
+ private evaluateDisabledWhen;
158
+ private resolveDisabledWhenFallback;
140
159
  private isJsonLogicExpression;
141
160
  private resolveVisibleWhenFallback;
142
161
  private resolveVisibleWhenFallbackPolicy;
143
162
  private resolveRuntimeEnvironment;
144
- private isDiagnosticsEnvironment;
145
163
  private buildEvaluationContext;
164
+ private getSelectedCount;
165
+ private getBulkActionMinSelections;
166
+ private getBulkActionMaxSelections;
167
+ private resolveDisabledActionReason;
146
168
  private warnVisibleWhenFallback;
169
+ private warnDisabledWhenFallback;
147
170
  private collectShortcutBindings;
148
171
  private resolveShortcutScope;
149
172
  private normalizeShortcutCombo;
@@ -360,8 +383,9 @@ type FilterConfig = {
360
383
  };
361
384
  declare class FilterConfigService {
362
385
  private storage;
386
+ private localStorage;
363
387
  private readonly PREFIX;
364
- constructor(storage: AsyncConfigStorage);
388
+ constructor(storage: AsyncConfigStorage, localStorage: LocalStorageConfigService);
365
389
  /**
366
390
  * Load a persisted filter configuration for the given key.
367
391
  */
@@ -370,6 +394,11 @@ declare class FilterConfigService {
370
394
  * Persist a filter configuration for the given key.
371
395
  */
372
396
  save(key: string, config: FilterConfig): void;
397
+ /**
398
+ * Clear the persisted filter configuration from both remote storage and the
399
+ * local fallback cache so reset/reopen cannot revive stale preferences.
400
+ */
401
+ clear(key: string): void;
373
402
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterConfigService, never>;
374
403
  static ɵprov: i0.ɵɵInjectableDeclaration<FilterConfigService>;
375
404
  }
@@ -379,6 +408,12 @@ type FilterTag = {
379
408
  label: string;
380
409
  patch: Record<string, any>;
381
410
  };
411
+ type ManagedFilterItem = {
412
+ id: string;
413
+ label: string;
414
+ /** Domain guidance preserved from FieldMetadata for the field-manager tooltip. */
415
+ description?: string;
416
+ };
382
417
  type I18n = {
383
418
  searchPlaceholder: string;
384
419
  advanced: string;
@@ -391,6 +426,27 @@ type I18n = {
391
426
  filtersAdd?: string;
392
427
  filtersSearch?: string;
393
428
  addCount?: string;
429
+ addCountSingular?: string;
430
+ manageFieldsTitle?: string;
431
+ manageFieldsDescription?: string;
432
+ close?: string;
433
+ clearSearch?: string;
434
+ /** @deprecated Prefer selectedFieldsCount/selectedFieldsCountSingular. */
435
+ selectedFieldsSuffix?: string;
436
+ selectedFieldsCount?: string;
437
+ selectedFieldsCountSingular?: string;
438
+ selectedFieldsSectionTitle?: string;
439
+ availableFieldsSectionTitle?: string;
440
+ manageFieldsApply?: string;
441
+ selectAllResults?: string;
442
+ noFilterFieldsFound?: string;
443
+ fieldSelectionConflict?: string;
444
+ removingActiveFields?: string;
445
+ fieldPendingAddition?: string;
446
+ fieldPendingRemoval?: string;
447
+ fieldAddedAnnouncement?: string;
448
+ fieldRemovedAnnouncement?: string;
449
+ fieldSelectionSummaryAnnouncement?: string;
394
450
  addUnavailable?: string;
395
451
  pendingCount?: string;
396
452
  activeFiltersCount?: string;
@@ -431,6 +487,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
431
487
  private componentKeys;
432
488
  private route?;
433
489
  private logger?;
490
+ addManagerOrigin?: ElementRef<HTMLButtonElement>;
434
491
  resourcePath: string;
435
492
  /** Resolved API entry carried by detached hosts when route-scoped API_URL is not inherited. */
436
493
  apiUrlEntry?: ApiUrlEntry | null;
@@ -592,12 +649,19 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
592
649
  advancedTitleId: string;
593
650
  advancedPanelId: string;
594
651
  addQuery: string;
595
- addItems: Array<{
652
+ addItems: ManagedFilterItem[];
653
+ addDraftSelectedFieldIds: string[];
654
+ addInitialSelectedFieldIds: string[];
655
+ addManagerAnnouncement: string;
656
+ addManagerOpen: boolean;
657
+ addManagerConflict: boolean;
658
+ addManagerItemMotion: {
596
659
  id: string;
597
- label: string;
598
- }>;
599
- readonly addSearchFieldId = "__praxis_filter_add_search__";
600
- readonly addSelectAllFieldId = "__praxis_filter_add_select_all__";
660
+ type: 'added' | 'removed';
661
+ } | null;
662
+ readonly addManagerTitleId: string;
663
+ readonly addManagerDescriptionId: string;
664
+ readonly addOverlayPositions: ConnectedPosition[];
601
665
  private applySchemaQueued;
602
666
  private fallbackLogger?;
603
667
  private fallbackLoggerEnvironment;
@@ -652,6 +716,7 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
652
716
  private resolveInitialDto;
653
717
  private syncFormsFromDto;
654
718
  private refreshProgrammaticFilterFieldDisplays;
719
+ private getProgrammaticRefreshFieldNames;
655
720
  private refreshProgrammaticFilterFieldDisplay;
656
721
  ngOnInit(): Promise<void>;
657
722
  ngAfterViewInit(): void;
@@ -744,11 +809,36 @@ declare class PraxisFilter implements OnInit, OnChanges, AfterViewInit, OnDestro
744
809
  }): void;
745
810
  onAdvancedValidityChange(valid: boolean): void;
746
811
  onAddOpened(opened: boolean): void;
812
+ toggleAddManager(): void;
813
+ closeAddManager(): void;
814
+ toggleManagedField(fieldId: string, checked: boolean): void;
815
+ isAddManagerItemInMotion(fieldId: string, type: 'added' | 'removed'): boolean;
816
+ private startAddManagerItemMotion;
817
+ applyAddManager(): void;
818
+ isAddManagerDirty(): boolean;
819
+ getAddManagerChangeCount(): number;
820
+ getAddManagerSelectedFieldsSummary(): string;
821
+ getAddManagerVisibleSelectedFieldsSummary(): string;
822
+ private getAddManagerFieldsSummary;
823
+ getAddManagerSelectedItems(): ManagedFilterItem[];
824
+ getAddManagerAvailableItems(): ManagedFilterItem[];
825
+ isAddManagerFieldSelected(fieldId: string): boolean;
826
+ isAddManagerFieldPendingAddition(fieldId: string): boolean;
827
+ isAddManagerFieldPendingRemoval(fieldId: string): boolean;
828
+ getAddManagerFieldPendingLabel(fieldId: string): string;
829
+ getAddManagerFieldAriaDescription(item: ManagedFilterItem): string | null;
830
+ private announceManagedFieldChange;
831
+ getRemovedActiveFieldLabels(): string[];
832
+ private hasMeaningfulFilterValue;
747
833
  onAddQuery(q: string): void;
748
- openAddSelect(select: MatSelect): void;
749
834
  hasAddableFields(): boolean;
750
835
  hasManageableFilterFields(): boolean;
751
836
  private getManageableFilterItems;
837
+ /**
838
+ * Uses authored field metadata only. The manager must not invent domain help
839
+ * while an operator decides among similar filters (for example, date variants).
840
+ */
841
+ private getManagedFieldDescription;
752
842
  private updateAddItems;
753
843
  trackById(_idx: number, it: {
754
844
  id: string;
@@ -840,9 +930,20 @@ declare function providePraxisFilterMetadata(): Provider;
840
930
 
841
931
  type AnalyticsTableRow = Record<string, string | number | boolean | null>;
842
932
  type AnalyticsTableContractSource = 'remote' | 'fallback';
933
+ /**
934
+ * Stable backend bucket identity retained on analytics rows for cross-filtering.
935
+ * It is intentionally not materialized as a visible table column.
936
+ */
937
+ declare const ANALYTICS_TABLE_ROW_KEY_FIELD = "__praxisAnalyticsKey";
938
+ type AnalyticsComparisonMetricValueKind = 'current' | 'previous' | 'delta' | 'deltaPercent' | 'baselineMissing';
939
+ /** Returns the deterministic local-data field for one comparison metric value. */
940
+ declare function analyticsComparisonMetricField(metricField: string, valueKind: AnalyticsComparisonMetricValueKind): string;
843
941
  interface AnalyticsTableViewModel {
844
942
  config: TableConfig;
845
943
  data: AnalyticsTableRow[];
944
+ projectionId?: string;
945
+ source?: AnalyticsTableContractSource;
946
+ error?: string;
846
947
  }
847
948
  interface AnalyticsTableContractDefinition<TKey extends string = string> {
848
949
  key: TKey;
@@ -872,6 +973,9 @@ declare class AnalyticsTableStatsApiService {
872
973
  private toTableRows;
873
974
  private resolveTimeSeriesCategory;
874
975
  private resolveBucketCategory;
976
+ private resolveBucketKey;
977
+ private projectComparisonMetricValues;
978
+ private isComparisonResponse;
875
979
  private projectMetricValues;
876
980
  private resolveMetricValue;
877
981
  private buildStatsUrl;
@@ -996,6 +1100,7 @@ type RuntimeRowAction = {
996
1100
  overflow?: boolean;
997
1101
  __praxisDiscoveredAction?: ResourceActionCatalogItem;
998
1102
  __praxisDiscoveredSurface?: ResourceSurfaceCatalogItem;
1103
+ __praxisCrudOperation?: ResourceCapabilityOperation;
999
1104
  __praxisCapabilityDenied?: boolean;
1000
1105
  };
1001
1106
  type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
@@ -1006,6 +1111,10 @@ type ExpansionDetailViewState = {
1006
1111
  message: string | null;
1007
1112
  source: ExpansionDetailResolvedSource | null;
1008
1113
  };
1114
+ type ExpansionDetailInlineRendererView = {
1115
+ component: Type<unknown>;
1116
+ inputs: Record<string, unknown>;
1117
+ };
1009
1118
  declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterContentInit, OnDestroy {
1010
1119
  private cdr;
1011
1120
  private settingsPanel;
@@ -1023,6 +1132,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1023
1132
  private componentKeys;
1024
1133
  private loadingOrchestrator;
1025
1134
  private globalActions;
1135
+ private enterpriseRuntimeContext?;
1026
1136
  private loadingRenderer?;
1027
1137
  private route?;
1028
1138
  private logger?;
@@ -1037,7 +1147,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1037
1147
  private static readonly ROW_DISCOVERY_MAX_CONCURRENT_REQUESTS;
1038
1148
  private _resourceDiscovery?;
1039
1149
  private _resourceSurfaceOpenAdapter?;
1150
+ private _crudOperationResolver?;
1040
1151
  private readonly runtimeObservationRegistry;
1152
+ private readonly detailInlineRenderers;
1153
+ private collectionLinks;
1154
+ private collectionCapabilities;
1155
+ private collectionCapabilitiesRequestHref;
1156
+ private collectionCapabilitiesResolvedHref;
1157
+ private collectionCapabilitiesRequestSeq;
1158
+ private readonly detailInlineNodeResolvers;
1041
1159
  private runtimeObservationRegistration;
1042
1160
  readonly paginatorSelectConfig: MatPaginatorSelectConfig;
1043
1161
  private static readonly ROW_ANIMATION_PRESETS;
@@ -1070,6 +1188,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1070
1188
  private advancedFilterMetadataOverridesCache?;
1071
1189
  rowClick: EventEmitter<any>;
1072
1190
  widgetEvent: EventEmitter<any>;
1191
+ resourceEvent: EventEmitter<PraxisResourceEvent<unknown>>;
1073
1192
  rowDoubleClick: EventEmitter<any>;
1074
1193
  rowExpansionChange: EventEmitter<RowExpansionChangeEvent>;
1075
1194
  rowAction: EventEmitter<any>;
@@ -1078,6 +1197,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1078
1197
  exportAction: EventEmitter<any>;
1079
1198
  columnReorder: EventEmitter<any>;
1080
1199
  columnReorderAttempt: EventEmitter<any>;
1200
+ columnResize: EventEmitter<any>;
1081
1201
  beforeDelete: EventEmitter<any>;
1082
1202
  afterDelete: EventEmitter<any>;
1083
1203
  deleteError: EventEmitter<any>;
@@ -1119,8 +1239,17 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1119
1239
  private columnReorderStatusTimer;
1120
1240
  private columnReorderVisualStatusTimer;
1121
1241
  private columnReorderUndoSubscription;
1122
- private columnReorderOperationCounter;
1123
- private latestColumnReorderOperationId;
1242
+ private columnRuntimeMutationOperationCounter;
1243
+ private latestColumnRuntimeMutationOperationId;
1244
+ private columnResizeTransientWidths;
1245
+ private columnResizeTableWidthStyle;
1246
+ private columnResizeLayoutSignature;
1247
+ private isApplyingColumnResizeLayoutMutation;
1248
+ private activeColumnResize;
1249
+ private readonly columnResizePointerMoveListener;
1250
+ private readonly columnResizePointerUpListener;
1251
+ private readonly columnResizePointerCancelListener;
1252
+ private readonly columnResizeKeydownListener;
1124
1253
  localSource: any[];
1125
1254
  localView: any[];
1126
1255
  localTotal: number;
@@ -1158,8 +1287,10 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1158
1287
  private rowDiscoveryMarkForCheckScheduled;
1159
1288
  private lastRowDiscoveryScopeKey;
1160
1289
  private readonly i18n;
1290
+ private readonly sanitizer;
1161
1291
  private readonly collectionExport;
1162
1292
  private readonly paginatorIntl;
1293
+ private readonly schemaNormalizer;
1163
1294
  private schemaFieldsSnapshot;
1164
1295
  private filterSchemaFieldsSnapshot;
1165
1296
  private runtimeSchemaMeta;
@@ -1193,9 +1324,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1193
1324
  getRowActionsWidthStyle(): string | null;
1194
1325
  getColumnTextAlignStyle(column: ColumnDefinition): string | null;
1195
1326
  getColumnWidthStyle(column: ColumnDefinition): string | null;
1327
+ getColumnResizeTableWidthStyle(): string | null;
1196
1328
  getColumnHeaderAttrStyle(column: ColumnDefinition): string | null;
1197
1329
  getColumnHeaderNgStyle(column: ColumnDefinition): Record<string, string> | undefined;
1198
1330
  getColumnCellAttrStyle(column: ColumnDefinition): string | null;
1331
+ private mergeColumnWidthIntoInlineStyle;
1332
+ private buildColumnWidthInlineStyle;
1199
1333
  getTableElevationClassName(): string;
1200
1334
  private normalizeTableElevationLevel;
1201
1335
  private resolveRuntimeTableElevationLevel;
@@ -1226,6 +1360,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1226
1360
  getNoDataStateTitle(): string;
1227
1361
  getNoDataStateDescription(): string | undefined;
1228
1362
  getTableSettingsLabel(): string;
1363
+ getTableErrorTitle(): string;
1364
+ getTableErrorMessage(): string;
1365
+ getTableErrorRetryLabel(): string;
1366
+ getTableSelectResourceLabel(): string;
1367
+ isErrorRetryInProgress(): boolean;
1229
1368
  getTableSettingsTooltip(): string;
1230
1369
  getDisconnectLabel(): string;
1231
1370
  getDisconnectTooltip(): string;
@@ -1233,6 +1372,12 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1233
1372
  private configuredLocaleRuntimeText;
1234
1373
  private formatPaginatorRangeLabel;
1235
1374
  getNoDataStateIcon(): string;
1375
+ getNoDataStateTone(): 'neutral' | 'primary' | 'secondary';
1376
+ getNoDataStateVariant(): 'card' | 'inline' | 'panel' | 'transparent';
1377
+ getNoDataStateAlignment(): 'start' | 'center';
1378
+ getNoDataStateDensity(): 'compact' | 'comfortable';
1379
+ getNoDataStateActionSize(): string;
1380
+ getNoDataStateIconContainer(): 'none' | 'circle' | 'soft';
1236
1381
  getNoDataStatePrimaryAction(): any | null;
1237
1382
  getNoDataStateSecondaryActions(): any[];
1238
1383
  shouldRenderAdvancedFilter(): boolean;
@@ -1248,10 +1393,16 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1248
1393
  private schemaState;
1249
1394
  schemaOutdated: boolean;
1250
1395
  enableCustomization: boolean;
1396
+ /** Capability publica exigida para materializar configuracao governada. */
1397
+ authoringCapability: string | null;
1398
+ private activeTableSettingsRef;
1251
1399
  private _resolvedPrefs;
1252
1400
  set resolvedPrefs(val: any);
1253
1401
  get resolvedPrefs(): any;
1254
1402
  dense: boolean;
1403
+ private hostDeclaredAppearanceDensity;
1404
+ private hostDeclaredAppearanceSpacing;
1405
+ private hostDeclaredAppearanceTypography;
1255
1406
  private resolveAppearanceDensity;
1256
1407
  get hostDensityCompactClass(): boolean;
1257
1408
  get hostDensityComfortableClass(): boolean;
@@ -1340,6 +1491,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1340
1491
  private tableConfigKey;
1341
1492
  private filterConfigKey;
1342
1493
  private ensureConfigDefaults;
1494
+ private hasDeclaredAppearanceDensity;
1495
+ private hasDeclaredAppearanceSection;
1496
+ private shouldApplyAppearanceDefaultValue;
1343
1497
  private mergePersistedTableConfigWithInput;
1344
1498
  private reconcileHostDeclaredTableContract;
1345
1499
  private reconcileHostDeclaredColumns;
@@ -1348,12 +1502,33 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1348
1502
  private normalizePersistedExportFormats;
1349
1503
  private normalizePersistedRowActionIds;
1350
1504
  private normalizePersistedColumnIds;
1505
+ private columnIdentitySetChanged;
1351
1506
  private clonePlainObject;
1352
1507
  private setShowToolbar;
1353
1508
  private shouldExposeToolbar;
1354
- 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);
1509
+ private resolveCollectionDiscoveryOptions;
1510
+ private updateCollectionLinks;
1511
+ private resolveCollectionCapabilitiesHref;
1512
+ private materializeCollectionCreateToolbarAction;
1513
+ private ensureToolbarConfigForRuntime;
1514
+ private buildCollectionCreateToolbarAction;
1515
+ private resolveCollectionCreateRuntime;
1516
+ private resolveCollectionResourcePath;
1517
+ private hasCollectionCreateLink;
1518
+ private resolveCollectionCreateCapabilityOperation;
1519
+ private createSyntheticCollectionCrudOperation;
1520
+ private resolveCollectionCreateSurface;
1521
+ private isWritableCrudSurface;
1522
+ private isCollectionCreateSurface;
1523
+ private getCollectionCreateActionLabel;
1524
+ private getCollectionCreateActionTooltip;
1525
+ private getCollectionCreateUnavailableTooltip;
1526
+ private resolveCollectionCreateDisabled;
1527
+ private isCreateToolbarAction;
1528
+ 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, enterpriseRuntimeContext?: EnterpriseRuntimeContextService | undefined, loadingRenderer?: PraxisLoadingRenderer | undefined, route?: ActivatedRoute | undefined, logger?: LoggerService | undefined, analyticsStatsApi?: AnalyticsTableStatsApiService | undefined);
1355
1529
  private get resourceDiscovery();
1356
1530
  private get resourceSurfaceOpenAdapter();
1531
+ private get crudOperationResolver();
1357
1532
  private ensureAiAdapterLoaded;
1358
1533
  openAiAssistant(): void;
1359
1534
  aiAssistantTriggerTestId(position: string): string;
@@ -1362,6 +1537,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1362
1537
  aiAssistantTriggerBadge(): string;
1363
1538
  aiAssistantTriggerLabel(): string;
1364
1539
  aiAssistantTriggerTooltip(): string;
1540
+ isAiAssistantEnabled(): boolean;
1541
+ shouldShowAiAssistantEntrypoint(): boolean;
1365
1542
  openAiAssistantFromSession(session: PraxisAssistantSessionSnapshot): void;
1366
1543
  closeAiAssistant(): void;
1367
1544
  onAiAssistantPromptChange(prompt: string): void;
@@ -1397,6 +1574,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1397
1574
  private getActiveRuntimeObservationSelectedRows;
1398
1575
  private buildRuntimeObservationSelectionDigest;
1399
1576
  private buildRuntimeObservationStateDigest;
1577
+ private buildRuntimeObservationRendererStateDigest;
1400
1578
  private buildRuntimeObservationDataProfileDigest;
1401
1579
  private getRuntimeObservationSchemaFieldRefs;
1402
1580
  private getRuntimeObservationSchemaFieldDescriptors;
@@ -1405,6 +1583,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1405
1583
  private buildRuntimeObservationClaims;
1406
1584
  private isRuntimeObservationVisible;
1407
1585
  private syncAiAssistantSession;
1586
+ private disableAiAssistantSession;
1408
1587
  private assistantContextRuntimeLocale;
1409
1588
  private refreshAiAssistantContextAfterSelectionChange;
1410
1589
  private hasAiAssistantSessionState;
@@ -1421,9 +1600,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1421
1600
  private isTableDataLoading;
1422
1601
  private getRenderedRowCount;
1423
1602
  private hasActiveDataFilters;
1603
+ private hasActiveEmptyStateFilters;
1604
+ private hasMeaningfulFilterCriteria;
1424
1605
  private hasMeaningfulFilterValue;
1425
1606
  private resolveNoDataStateConfig;
1607
+ private isEmptyStateTone;
1608
+ private isEmptyStateVariant;
1426
1609
  private mapEmptyStateAction;
1610
+ private resolveMatchingEmptyStateToolbarAction;
1427
1611
  private onEmptyStateAction;
1428
1612
  private buildLoadingContext;
1429
1613
  private beginLoading;
@@ -1512,6 +1696,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1512
1696
  getExpansionDetailEmbedHeaderNodes(node: TableDetailRefNode | TableDetailTemplateRefNode | TableDetailDiagramEmbedNode | any): RichBlockNode[];
1513
1697
  getExpansionDetailEmbedMetaNodes(node: TableDetailRefNode | TableDetailTemplateRefNode | TableDetailDiagramEmbedNode | any): RichBlockNode[];
1514
1698
  getExpansionDetailEmbedActionNodes(action: TableDetailEmbedAction | any): RichBlockNode[];
1699
+ getExpansionDetailInlineRendererView(node: TableDetailRefNode | any, row: any, index: number): ExpansionDetailInlineRendererView | null;
1700
+ private resolveExpansionDetailInlineRenderer;
1701
+ private resolveExpansionDetailInlineNode;
1515
1702
  getExpansionDetailEmbedAction(node: TableDetailRefNode | TableDetailTemplateRefNode | TableDetailDiagramEmbedNode | any, row: any, index: number): TableDetailEmbedAction | null;
1516
1703
  isExpansionDetailEmbedActionDisabled(action: TableDetailEmbedAction | any, row: any, index: number): boolean;
1517
1704
  getExpansionDetailEmbedEmptyText(node: TableDetailRefNode | TableDetailTemplateRefNode | TableDetailDiagramEmbedNode | any): string;
@@ -1659,6 +1846,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1659
1846
  action: string;
1660
1847
  actionConfig?: any;
1661
1848
  }): Promise<void>;
1849
+ private tryHandleCollectionCreateToolbarAction;
1662
1850
  private resolveBulkExportFormat;
1663
1851
  private isBulkExportActionKey;
1664
1852
  private normalizeExportFormat;
@@ -1667,10 +1855,14 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1667
1855
  onExportAction(event: {
1668
1856
  format: string;
1669
1857
  scope?: PraxisExportScope;
1858
+ localOnly?: boolean;
1670
1859
  }): Promise<void>;
1671
1860
  canRunExportAction(format: unknown): boolean;
1672
1861
  private shouldBlockSelectedExportWithoutSelection;
1673
1862
  private buildTableExportRequest;
1863
+ private buildVisibleExcelExportRequest;
1864
+ private resolveVisibleExcelExportFileName;
1865
+ private formatExportDate;
1674
1866
  private resolveEffectiveExportScope;
1675
1867
  private resolveTableExportLoadedItems;
1676
1868
  private computeLocalExportRows;
@@ -1704,6 +1896,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1704
1896
  private showResetSuccessFeedback;
1705
1897
  readonly toolbarColumnVisibilityController: (field: string, visible: boolean) => void;
1706
1898
  toggleColumnVisibility(field: string, visible: boolean): void;
1899
+ isCustomizationAvailable(): boolean;
1900
+ private isAuthoringAssistantAvailable;
1707
1901
  openTableSettings(): void;
1708
1902
  private applyTableConfig;
1709
1903
  private buildTableEditorRuntimeContext;
@@ -1728,6 +1922,46 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1728
1922
  isColumnDraggingEnabled(): boolean;
1729
1923
  isColumnDragIndicatorEnabled(): boolean;
1730
1924
  isColumnDraggable(column: ColumnDefinition | null | undefined): boolean;
1925
+ isColumnResizeEnabled(): boolean;
1926
+ isColumnResizable(column: ColumnDefinition | null | undefined): boolean;
1927
+ isColumnResizeActive(column?: ColumnDefinition | null): boolean;
1928
+ getColumnResizeHandleAriaLabel(column: ColumnDefinition): string;
1929
+ getColumnResizeHandleTooltip(column: ColumnDefinition): string;
1930
+ getColumnResizeMinWidthAriaValue(column: ColumnDefinition): number;
1931
+ getColumnResizeMaxWidthAriaValue(column: ColumnDefinition): number | null;
1932
+ getColumnResizeCurrentWidthAriaValue(column: ColumnDefinition): number | null;
1933
+ onColumnResizeHandleClick(event: MouseEvent): void;
1934
+ onColumnResizeHandleKeydown(event: KeyboardEvent, column: ColumnDefinition): void;
1935
+ onColumnResizePointerDown(event: PointerEvent, column: ColumnDefinition): void;
1936
+ private onColumnResizePointerMove;
1937
+ private onColumnResizePointerUp;
1938
+ private onColumnResizePointerCancel;
1939
+ private onColumnResizeDocumentKeydown;
1940
+ private addColumnResizeDocumentListeners;
1941
+ private removeColumnResizeDocumentListeners;
1942
+ private cancelColumnResize;
1943
+ private commitColumnResize;
1944
+ private applyColumnResizeWidth;
1945
+ private emitAndPersistColumnResize;
1946
+ private updateConfigColumnWidth;
1947
+ private updateConfigColumnWidths;
1948
+ private updateColumnResizeTableWidthFromDelta;
1949
+ private captureColumnResizeLockedWidths;
1950
+ private resolveColumnResizeTableWidthPx;
1951
+ private resolveColumnWidthPx;
1952
+ private parseColumnResizePixelWidth;
1953
+ private normalizeColumnResizeWidthStyle;
1954
+ private clampColumnWidthPx;
1955
+ private resolveColumnResizeEffectiveMinWidthPx;
1956
+ private resolveColumnResizeMinWidthPx;
1957
+ private resolveColumnResizeMaxWidthPx;
1958
+ private normalizeColumnResizeConfigWidths;
1959
+ private runColumnResizeLayoutMutation;
1960
+ private reconcileColumnResizeLayoutState;
1961
+ private clearColumnResizeLayoutState;
1962
+ private createColumnResizeLayoutSignature;
1963
+ private formatColumnWidthPx;
1964
+ private isTableRtl;
1731
1965
  private resolveColumnReorderHeader;
1732
1966
  private isEnglishLocale;
1733
1967
  private isEnglishLocaleValue;
@@ -1744,9 +1978,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1744
1978
  private emitColumnReorderAttempt;
1745
1979
  private createColumnReorderOperationId;
1746
1980
  private isLatestColumnReorderOperation;
1981
+ private createColumnRuntimeMutationOperationId;
1982
+ private isLatestColumnRuntimeMutationOperation;
1747
1983
  private offerColumnReorderUndo;
1748
1984
  private restoreColumnOrderFromUndo;
1749
- onColumnDragHandleKeydown(event: KeyboardEvent, column: ColumnDefinition): void;
1985
+ onColumnHeaderReorderKeydown(event: KeyboardEvent, column: ColumnDefinition): void;
1750
1986
  onColumnDrop(event: CdkDragDrop<ColumnDefinition[]>): void;
1751
1987
  onColumnDragStarted(column: ColumnDefinition): void;
1752
1988
  onColumnDragEnded(event: CdkDragEnd<ColumnDefinition>, column: ColumnDefinition): void;
@@ -1766,9 +2002,15 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1766
2002
  */
1767
2003
  private verifyServerSchemaVersion;
1768
2004
  private loadSchema;
2005
+ private loadOrVerifyRemoteSchema;
1769
2006
  private loadFilterSchemaSnapshot;
1770
2007
  private convertFieldToColumn;
2008
+ private applySchemaFieldPresentationsToExistingColumns;
1771
2009
  private applySchemaFieldPresentation;
2010
+ private applySchemaSemanticCellPresentation;
2011
+ private resolveSemanticPresentationColor;
2012
+ private resolveSemanticPresentationVariant;
2013
+ private resolveSemanticPresentationAffixes;
1772
2014
  private resolveSchemaCurrencyFormat;
1773
2015
  private resolveSchemaBooleanFormat;
1774
2016
  private resolveSchemaValueMapping;
@@ -1783,10 +2025,6 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1783
2025
  * Runs only on initial bootstrap (when columns are derived from schema).
1784
2026
  */
1785
2027
  private applyAutoRenderer;
1786
- /**
1787
- * Check if a value is a valid ColumnDataType
1788
- */
1789
- private isValidColumnDataType;
1790
2028
  /**
1791
2029
  * Infer column data type from field name patterns when API type is not available
1792
2030
  * Refined logic to reduce false positives
@@ -1853,6 +2091,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1853
2091
  private getEffectiveFilterCriteria;
1854
2092
  retryData(): void;
1855
2093
  reloadSchema(): void;
2094
+ retryTableError(): void;
1856
2095
  refetch(): void;
1857
2096
  /**
1858
2097
  * Get the cell value for a given row and column
@@ -1921,7 +2160,6 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1921
2160
  private isJsonLogicExpression;
1922
2161
  private hasConditionalExpression;
1923
2162
  private resolveRuntimeEnvironment;
1924
- private isDiagnosticsRuntimeEnvironment;
1925
2163
  private logActionConditionFallback;
1926
2164
  getRowClasses(rowData: any): string[] | undefined;
1927
2165
  getRowNgStyle(rowData: any): Record<string, string> | undefined;
@@ -1994,6 +2232,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1994
2232
  getIconAriaLabel(row: any, column: ColumnDefinition): string | null;
1995
2233
  getIconText(row: any, column: ColumnDefinition): string | null;
1996
2234
  getIconRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
2235
+ private getIconRawText;
1997
2236
  /**
1998
2237
  * Lightweight, controlled evaluator for string/number expressions using row context.
1999
2238
  * Accepts values like '= row.status === "OK" ? "primary" : "warn"'.
@@ -2034,7 +2273,11 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2034
2273
  getBadgeClasses(row: any, column: ColumnDefinition): string[];
2035
2274
  getBadgeRichContentNodes(row: any, column: ColumnDefinition): RichBlockNode[];
2036
2275
  shouldRenderBadge(row: any, column: ColumnDefinition): boolean;
2037
- getEffectiveRendererType(row: any, column: ColumnDefinition): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | 'rating' | null;
2276
+ getEffectiveRendererType(row: any, column: ColumnDefinition): 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'html' | 'compose' | 'rating' | 'microVisualization' | null;
2277
+ getMicroVisualizationHtml(row: any, column: ColumnDefinition): SafeHtml;
2278
+ private resolveMicroVisualizationForRow;
2279
+ private applyMicroVisualizationExpression;
2280
+ private evaluateMicroVisualizationExpression;
2038
2281
  getComposeItems(row: any, column: ColumnDefinition): any[];
2039
2282
  trackComposeItem(index: number, item: any): string;
2040
2283
  getComposeClasses(row: any, column: ColumnDefinition): string[];
@@ -2163,6 +2406,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2163
2406
  private getVirtualizationSources;
2164
2407
  isVirtualized(): boolean;
2165
2408
  getVirtItemHeight(): number;
2409
+ private getDefaultDensityRowHeight;
2166
2410
  getVirtBufferSize(): number;
2167
2411
  getVirtMinHeightStyle(): string;
2168
2412
  getVirtMinHeightHostStyle(): string | null;
@@ -2177,6 +2421,9 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2177
2421
  getMasterSelectionAriaLabel(): string;
2178
2422
  private selectRowFromUserInteraction;
2179
2423
  private emitSelectionChange;
2424
+ private materializeRecordIdentity;
2425
+ private emitResourceEvent;
2426
+ private buildResourceEvent;
2180
2427
  private getSelectedRowsSnapshot;
2181
2428
  private getAiAssistantSelectionFields;
2182
2429
  private buildAiAssistantSelectionFilterCandidates;
@@ -2215,10 +2462,19 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2215
2462
  private splitVisibleRowActionsFromVisible;
2216
2463
  private decorateConfiguredRowAction;
2217
2464
  private getDiscoveredRowWorkflowActions;
2465
+ private getDiscoveredRowCrudActionsFromSnapshot;
2466
+ private buildDiscoveredRowCrudAction;
2218
2467
  private getDiscoveredRowSurfaceActionsFromSnapshot;
2219
2468
  private getDiscoveredRowWorkflowActionsFromCatalog;
2469
+ private resolveRowCrudCapabilityOperation;
2470
+ private createSyntheticCrudCapabilityOperation;
2220
2471
  private supportsRowCrudAction;
2221
2472
  private isCapabilityManagedCrudRowAction;
2473
+ private isFailClosedConfiguredRowAction;
2474
+ private getCrudRowActionLabel;
2475
+ private getCrudRowActionIcon;
2476
+ private getCrudRowActionColor;
2477
+ private getUnavailableCrudOperationMessage;
2222
2478
  private findItemWorkflowAction;
2223
2479
  private findItemSurface;
2224
2480
  private isRowSurfaceAction;
@@ -2246,8 +2502,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2246
2502
  getRowMenuIcon(): string;
2247
2503
  private scheduleRowDiscoveryMarkForCheck;
2248
2504
  ngOnDestroy(): void;
2249
- 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; }]>;
2250
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "data": { "alias": "data"; "required": false; }; "tableId": { "alias": "tableId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "configPersistenceStrategy": { "alias": "configPersistenceStrategy"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "aiContext": { "alias": "aiContext"; "required": false; }; "aiAssistantVoiceInputMode": { "alias": "aiAssistantVoiceInputMode"; "required": false; }; "aiAssistantVoiceLanguage": { "alias": "aiAssistantVoiceLanguage"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "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>;
2505
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisTable, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
2506
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "data": { "alias": "data"; "required": false; }; "tableId": { "alias": "tableId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "configPersistenceStrategy": { "alias": "configPersistenceStrategy"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "aiContext": { "alias": "aiContext"; "required": false; }; "aiAssistantVoiceInputMode": { "alias": "aiAssistantVoiceInputMode"; "required": false; }; "aiAssistantVoiceLanguage": { "alias": "aiAssistantVoiceLanguage"; "required": false; }; "horizontalScroll": { "alias": "horizontalScroll"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "authoringCapability": { "alias": "authoringCapability"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "widgetEvent": "widgetEvent"; "resourceEvent": "resourceEvent"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "exportAction": "exportAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "columnResize": "columnResize"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "configChange": "configChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; "collectionLinksChange": "collectionLinksChange"; "selectionChange": "selectionChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
2251
2507
  static ngAcceptInputType_enableCustomization: unknown;
2252
2508
  }
2253
2509
 
@@ -3110,6 +3366,7 @@ declare class FilterSettingsComponent implements OnChanges, AfterViewInit, OnDes
3110
3366
  private scrollTrackingRafId;
3111
3367
  readonly layoutPreviewFields: string[];
3112
3368
  private readonly storage;
3369
+ private readonly filterConfigService;
3113
3370
  private readonly settingsPanel;
3114
3371
  private readonly snackBar;
3115
3372
  private readonly destroyRef;
@@ -3299,16 +3556,8 @@ interface RuleGroup {
3299
3556
  }
3300
3557
  type StructuredRuleCondition = JsonLogicExpression | null;
3301
3558
  declare class RuleCompilerService {
3302
- /**
3303
- * Compiles a rule group into a single textual expression string, adding
3304
- * parentheses according to grouping and operator precedence.
3305
- */
3306
- compileGroup(group: RuleGroup): string;
3307
- /** Compiles a single rule atom to a textual expression. */
3308
- compileAtom(atom: RuleAtom): string;
3309
3559
  compileGroupToJsonLogic(group: RuleGroup): StructuredRuleCondition;
3310
3560
  compileAtomToJsonLogic(atom: RuleAtom): JsonLogicExpression | null;
3311
- private stringify;
3312
3561
  private toJsonLogicValue;
3313
3562
  private toList;
3314
3563
  static ɵfac: i0.ɵɵFactoryDeclaration<RuleCompilerService, never>;
@@ -3344,6 +3593,11 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
3344
3593
  manualMode: boolean;
3345
3594
  manualErrors: string[];
3346
3595
  testSummary: string;
3596
+ normalizationWarning: string;
3597
+ importStatus: {
3598
+ type: 'success' | 'warning' | 'error';
3599
+ message: string;
3600
+ } | null;
3347
3601
  editIndex: number;
3348
3602
  get currentRules(): RuleItem[];
3349
3603
  set currentRules(v: RuleItem[]);
@@ -3410,7 +3664,11 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
3410
3664
  removeRule(index: number): void;
3411
3665
  duplicateRule(index: number): void;
3412
3666
  onRuleToggle(): void;
3667
+ private emitRulesConfigChange;
3413
3668
  buildAppliedConfig(baseConfig?: TableConfig): TableConfig;
3669
+ private isGeneratedRendererMatch;
3670
+ private stableRendererSignature;
3671
+ private stripRulesEditorMarker;
3414
3672
  onApply(): void;
3415
3673
  isValid(): boolean;
3416
3674
  onExportRules(): void;
@@ -3510,9 +3768,14 @@ declare class TableRulesEditorComponent implements OnChanges, OnInit, OnDestroy
3510
3768
  onDropCondition(evt: CdkDragDrop<RuleAtom[]>): void;
3511
3769
  updateDraftFromGroup(): void;
3512
3770
  getAtomPreview(a: RuleAtom): string;
3771
+ private stringifyJsonLogicPreview;
3772
+ private stringifyJsonLogicInlinePreview;
3513
3773
  addSubgroup(): void;
3514
3774
  removeSubgroup(index: number): void;
3515
3775
  getGroupPreview(g: RuleGroup): string;
3776
+ private isNumericFieldType;
3777
+ private parseNumericCsv;
3778
+ private toFiniteNumber;
3516
3779
  private getActiveGroupRef;
3517
3780
  static ɵfac: i0.ɵɵFactoryDeclaration<TableRulesEditorComponent, [null, null, null, null, null, { optional: true; }]>;
3518
3781
  static ɵcmp: i0.ɵɵComponentDeclaration<TableRulesEditorComponent, "table-rules-editor", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "i18nRules": { "alias": "i18nRules"; "required": false; }; "debugLogs": { "alias": "debugLogs"; "required": false; }; "debugLevel": { "alias": "debugLevel"; "required": false; }; }, { "configChange": "configChange"; }, never, never, true, never>;
@@ -3874,11 +4137,15 @@ interface AnalyticsTableConfigAdapterOptions {
3874
4137
  subtitle?: PraxisTextValue;
3875
4138
  }
3876
4139
  declare class AnalyticsTableConfigAdapterService {
4140
+ private readonly i18n?;
4141
+ constructor(i18n?: PraxisI18nService | undefined);
3877
4142
  toTableConfig(projection: PraxisAnalyticsProjection, options?: AnalyticsTableConfigAdapterOptions): TableConfig;
3878
4143
  private buildColumns;
4144
+ private buildComparisonMetricColumns;
4145
+ private comparisonValueLabel;
3879
4146
  private getDisplayMetrics;
3880
4147
  private resolveTextValue;
3881
- static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticsTableConfigAdapterService, never>;
4148
+ static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticsTableConfigAdapterService, [{ optional: true; }]>;
3882
4149
  static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableConfigAdapterService>;
3883
4150
  }
3884
4151
 
@@ -4344,7 +4611,7 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4344
4611
  };
4345
4612
  readonly variant: {
4346
4613
  readonly type: "string";
4347
- readonly enum: readonly ["filled", "outlined", "soft"];
4614
+ readonly enum: readonly ["filled", "outlined", "soft", "plain"];
4348
4615
  };
4349
4616
  readonly icon: {
4350
4617
  readonly type: "string";
@@ -4591,5 +4858,5 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
4591
4858
  declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
4592
4859
  declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
4593
4860
 
4594
- 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, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, PraxisFilter, PraxisFilterWidgetConfigEditor, PraxisTable, PraxisTableConfigEditor, PraxisTableInlineAuthoringEditorComponent, PraxisTableToolbar, PraxisTableWidgetConfigEditor, STRING_PRESETS, TABLE_AI_CAPABILITIES, TABLE_COMPONENT_AI_CAPABILITIES, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, TABLE_COMPONENT_EDIT_PLAN_KIND, TABLE_COMPONENT_EDIT_PLAN_VERSION, TASK_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisFilterMetadata, providePraxisTableMetadata, providePraxisTableToolbarAppearance, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
4595
- 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, TableAiContext, TableAiNavigationContextPack, TableAiNavigationDestinationContext, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableConfigPersistenceStrategy, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };
4861
+ export { ANALYTICS_TABLE_ROW_KEY_FIELD, AnalyticsTableConfigAdapterService, AnalyticsTableContractService, AnalyticsTableStatsApiService, BOOLEAN_PRESETS, BehaviorConfigEditorComponent, CURRENCY_PRESETS, ColumnsConfigEditorComponent, DATE_PRESETS, DataFormatterComponent, DataFormattingService, FORMULA_TEMPLATES, FilterConfigService, FilterSettingsComponent, FormulaGeneratorService, JsonConfigEditorComponent, MessagesLocalizationEditorComponent, NUMBER_PRESETS, PERCENTAGE_PRESETS, PRAXIS_FILTER_COMPONENT_METADATA, PRAXIS_TABLE_AUTHORING_MANIFEST, PRAXIS_TABLE_COMPONENT_METADATA, PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, PraxisFilter, PraxisFilterWidgetConfigEditor, PraxisTable, PraxisTableConfigEditor, PraxisTableInlineAuthoringEditorComponent, PraxisTableToolbar, PraxisTableWidgetConfigEditor, STRING_PRESETS, TABLE_AI_CAPABILITIES, TABLE_COMPONENT_AI_CAPABILITIES, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, TABLE_COMPONENT_EDIT_PLAN_KIND, TABLE_COMPONENT_EDIT_PLAN_VERSION, TASK_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, analyticsComparisonMetricField, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisFilterMetadata, providePraxisTableMetadata, providePraxisTableToolbarAppearance, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
4862
+ export type { ActionLike, AnalyticsComparisonMetricValueKind, AnalyticsTableConfigAdapterOptions, AnalyticsTableContractDefinition, AnalyticsTableContractLoadOptions, AnalyticsTableContractLoadResult, AnalyticsTableContractSource, AnalyticsTableRow, AnalyticsTableViewModel, ArithmeticParams, BehaviorConfigChange, BooleanFormatterOptions, BulkAction, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColumnChange, ColumnDataType$1 as ColumnDataType, ConcatenationParams, ConditionalMappingParams, CurrencyFormatterOptions, DataFormattingOptions, DataMode, DateFormatterOptions, DefaultValueParams, EditorDiagnostic, EditorDocument, FieldSchema, FilterConfig, FilterTag, FormatPreset, FormatterConfig, FormulaDefinition, FormulaParameterSchema, FormulaParams, FormulaTemplate, FormulaType, I18n, JsonEditorEvent, JsonValidationResult, MessagesLocalizationChange, NestedPropertyParams, NumberFormatterOptions, PercentageFormatterOptions, PraxisFilterWidgetEditorInputs, PraxisFilterWidgetEditorValue, PraxisTableWidgetEditorInputs, PraxisTableWidgetEditorValue, ResourcePathIntent, RowAction, RowExpansionChangeBase, RowExpansionChangeEvent, RowExpansionReasonCode, RowExpansionTrigger, StringFormatterOptions, TableAiContext, TableAiNavigationContextPack, TableAiNavigationDestinationContext, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableConfigPersistenceStrategy, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };