@praxisui/table 8.0.0-beta.1 → 8.0.0-beta.12

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.
package/index.d.ts CHANGED
@@ -10,7 +10,7 @@ import { CdkDragDrop, CdkDragEnd, CdkDrag, CdkDropList } from '@angular/cdk/drag
10
10
  import { BehaviorSubject, Subscription, Observable } from 'rxjs';
11
11
  import { SettingsPanelService, SettingsValueProvider } from '@praxisui/settings-panel';
12
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';
13
+ import { TableConfig, LoggerService, PraxisI18nService, GlobalConfigService, AsyncConfigStorage, FieldMetadata, SchemaIdParams, FormConfig, GenericCrudService, DynamicFormService, SchemaNormalizerService, ComponentKeyService, ComponentDocMeta, LoadingState, RestApiLinks, ColumnDefinition, RichBlockNode, ConnectionStorage, ResourceDiscoveryService, LoadingOrchestrator, GlobalActionService, PraxisLoadingRenderer, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, GlobalActionRef, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, JsonLogicExpression, GlobalActionCatalogEntry, IconPickerService, SurfaceOpenPayload, GlobalActionField, FieldDefinition, PraxisJsonLogicService, TableConfigService, PraxisTextValue, PraxisAnalyticsProjection, PraxisDataQueryContext, ApiUrlConfig, AnalyticsSchemaContractService, AnalyticsPresentationResolver, RichPresenterNode, RichComposeNode, ComponentAuthoringManifest, AiCapabilityCategory, AiValueKind, AiCapability, AiCapabilityCatalog } from '@praxisui/core';
14
14
  import { FormGroup, FormControl, FormBuilder } from '@angular/forms';
15
15
  import { MatDialog } from '@angular/material/dialog';
16
16
  import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
@@ -46,11 +46,15 @@ declare class PraxisTableToolbar implements OnDestroy {
46
46
  showActionsGroup: boolean;
47
47
  showEndActions: boolean;
48
48
  showMobileActions: boolean;
49
+ exportBusy: boolean;
49
50
  evaluationContext: Record<string, any> | null;
50
51
  toolbarAction: EventEmitter<{
51
52
  action: string;
52
53
  actionConfig?: any;
53
54
  }>;
55
+ exportAction: EventEmitter<{
56
+ format: string;
57
+ }>;
54
58
  readonly getActionId: typeof getActionId;
55
59
  private readonly jsonLogic;
56
60
  private readonly validToolbarActionTypes;
@@ -65,6 +69,7 @@ declare class PraxisTableToolbar implements OnDestroy {
65
69
  constructor(hostRef?: ElementRef<HTMLElement> | null, logger?: LoggerService | undefined, i18n?: PraxisI18nService | undefined);
66
70
  getExportDataLabel(): string;
67
71
  getMoreActionsLabel(): string;
72
+ emitExportAction(event: Event, format: string): void;
68
73
  private tx;
69
74
  ngOnDestroy(): void;
70
75
  private getNestedPropertyValue;
@@ -112,7 +117,7 @@ declare class PraxisTableToolbar implements OnDestroy {
112
117
  private sortActions;
113
118
  getExportIcon(format: string): string;
114
119
  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>;
120
+ 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
121
  }
117
122
 
118
123
  type ColumnDataType$1 = 'date' | 'number' | 'currency' | 'percentage' | 'string' | 'boolean' | 'custom';
@@ -835,6 +840,7 @@ type RowActionRuntimeOptions = {
835
840
  type RuntimeRowAction = {
836
841
  id: string;
837
842
  action: string;
843
+ globalAction?: GlobalActionRef;
838
844
  label?: string;
839
845
  icon?: string;
840
846
  color?: string;
@@ -842,6 +848,7 @@ type RuntimeRowAction = {
842
848
  disabled?: boolean;
843
849
  overflow?: boolean;
844
850
  __praxisDiscoveredAction?: ResourceActionCatalogItem;
851
+ __praxisDiscoveredSurface?: ResourceSurfaceCatalogItem;
845
852
  __praxisCapabilityDenied?: boolean;
846
853
  };
847
854
  type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
@@ -868,6 +875,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
868
875
  private resourceDiscovery;
869
876
  private componentKeys;
870
877
  private loadingOrchestrator;
878
+ private globalActions;
871
879
  private loadingRenderer?;
872
880
  private route?;
873
881
  private logger?;
@@ -900,6 +908,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
900
908
  rowAction: EventEmitter<any>;
901
909
  toolbarAction: EventEmitter<any>;
902
910
  bulkAction: EventEmitter<any>;
911
+ exportAction: EventEmitter<any>;
903
912
  columnReorder: EventEmitter<any>;
904
913
  columnReorderAttempt: EventEmitter<any>;
905
914
  beforeDelete: EventEmitter<any>;
@@ -912,6 +921,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
912
921
  metadataChange: EventEmitter<any>;
913
922
  loadingStateChange: EventEmitter<LoadingState>;
914
923
  collectionLinksChange: EventEmitter<RestApiLinks | null>;
924
+ selectionChange: EventEmitter<any>;
915
925
  private latestLoadingState;
916
926
  paginator: MatPaginator;
917
927
  sort: MatSort;
@@ -936,6 +946,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
936
946
  readonly isExpansionDetailRow: (index: number, row: any) => boolean;
937
947
  columnReorderStatusMessage: string;
938
948
  columnReorderVisualStatusMessage: string;
949
+ exportBusy: boolean;
950
+ exportStatusMessage: string;
939
951
  private columnReorderStatusTimer;
940
952
  private columnReorderVisualStatusTimer;
941
953
  private columnReorderUndoSubscription;
@@ -975,6 +987,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
975
987
  private rowDiscoveryMarkForCheckScheduled;
976
988
  private lastRowDiscoveryScopeKey;
977
989
  private readonly i18n;
990
+ private readonly collectionExport;
978
991
  private readonly paginatorIntl;
979
992
  private schemaFieldsSnapshot;
980
993
  private runtimeSchemaMeta;
@@ -1129,7 +1142,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1129
1142
  private ensureConfigDefaults;
1130
1143
  private setShowToolbar;
1131
1144
  private shouldExposeToolbar;
1132
- 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);
1145
+ 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, globalActions: GlobalActionService, loadingRenderer?: PraxisLoadingRenderer | undefined, route?: ActivatedRoute | undefined, logger?: LoggerService | undefined);
1133
1146
  private ensureAiAdapterLoaded;
1134
1147
  openAiAssistant(): void;
1135
1148
  closeAiAssistant(): void;
@@ -1359,19 +1372,36 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1359
1372
  private emitRowActionEvent;
1360
1373
  private showConfirmDialog;
1361
1374
  private executeDeleteAction;
1375
+ private dispatchRowAction;
1362
1376
  private cloneForEmit;
1363
1377
  private interpolateActionMessageTemplate;
1364
1378
  private buildActionFeedbackContext;
1365
1379
  private resolveActionFeedbackMessage;
1366
1380
  private showActionFeedbackMessage;
1367
1381
  private emitEventWithActionFeedback;
1382
+ private executeConfiguredGlobalAction;
1383
+ private shouldEmitLocalForGlobalAction;
1368
1384
  private resolveBulkValidationMessage;
1369
1385
  private hasValidBulkSelectionCount;
1370
1386
  private showBulkConfirmDialog;
1371
1387
  onToolbarAction(event: {
1372
1388
  action: string;
1373
1389
  actionConfig?: any;
1374
- }): void;
1390
+ }): Promise<void>;
1391
+ onExportAction(event: {
1392
+ format: string;
1393
+ }): Promise<void>;
1394
+ private buildTableExportRequest;
1395
+ private resolveEffectiveExportScope;
1396
+ private resolveTableExportLoadedItems;
1397
+ private computeLocalExportRows;
1398
+ private buildTableExportFields;
1399
+ private downloadExportResult;
1400
+ private triggerExportDownload;
1401
+ private resolveExportFileName;
1402
+ private getExportFileExtension;
1403
+ private getExportMimeType;
1404
+ private showExportFeedback;
1375
1405
  onAdvancedFilterSubmit(criteria: Record<string, any>): void;
1376
1406
  onAdvancedFilterChange(criteria: Record<string, any>): void;
1377
1407
  onAdvancedFilterClear(): void;
@@ -1768,6 +1798,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1768
1798
  private reconcileSelectionAfterDataChange;
1769
1799
  private getComparableRowIdentity;
1770
1800
  getIdField(): string;
1801
+ private resolveConfigMetaIdField;
1771
1802
  private syncRuntimeSchemaMetaFromConfig;
1772
1803
  private getEffectiveMetadataSnapshot;
1773
1804
  getActionId(action: any): string;
@@ -1785,6 +1816,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1785
1816
  isAllSelected(): boolean;
1786
1817
  toggleRow(row: any): void;
1787
1818
  private selectRowFromUserInteraction;
1819
+ private emitSelectionChange;
1788
1820
  private getRowActionsConfig;
1789
1821
  getActionsHeaderAlign(): string;
1790
1822
  getActionsHeaderTooltip(): string | undefined;
@@ -1809,11 +1841,19 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1809
1841
  private splitVisibleRowActionsFromVisible;
1810
1842
  private decorateConfiguredRowAction;
1811
1843
  private getDiscoveredRowWorkflowActions;
1844
+ private getDiscoveredRowSurfaceActionsFromSnapshot;
1812
1845
  private getDiscoveredRowWorkflowActionsFromCatalog;
1813
1846
  private supportsRowCrudAction;
1814
1847
  private isCapabilityManagedCrudRowAction;
1815
1848
  private findItemWorkflowAction;
1849
+ private findItemSurface;
1850
+ private isRowSurfaceAction;
1851
+ private isWritableRowSurface;
1852
+ private isReadableRowSurface;
1853
+ private getDiscoveredSurfaceIcon;
1854
+ private getDiscoveredSurfaceColor;
1816
1855
  private getUnavailableWorkflowMessage;
1856
+ private getUnavailableSurfaceMessage;
1817
1857
  private normalizeActionId;
1818
1858
  private isActionVisible;
1819
1859
  trackAction(index: number, item: any): any;
@@ -1827,8 +1867,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1827
1867
  getRowMenuIcon(): string;
1828
1868
  private scheduleRowDiscoveryMarkForCheck;
1829
1869
  ngOnDestroy(): void;
1830
- 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; }]>;
1831
- 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"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
1870
+ 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; }]>;
1871
+ 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"; "exportAction": "exportAction"; "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>;
1832
1872
  static ngAcceptInputType_enableCustomization: unknown;
1833
1873
  }
1834
1874
 
@@ -1841,7 +1881,6 @@ interface EditorDocument<TConfig, TBindings = unknown> {
1841
1881
  type TableHorizontalScroll = 'auto' | 'wrap' | 'none';
1842
1882
  interface TableBindings {
1843
1883
  resourcePath?: string | null;
1844
- idField?: string;
1845
1884
  horizontalScroll?: TableHorizontalScroll;
1846
1885
  }
1847
1886
  interface TableAuthoringDocument extends EditorDocument<TableConfig, TableBindings> {
@@ -1898,7 +1937,6 @@ interface TableApplyPlan {
1898
1937
  };
1899
1938
  diff?: {
1900
1939
  resourcePathChanged?: boolean;
1901
- idFieldChanged?: boolean;
1902
1940
  horizontalScrollChanged?: boolean;
1903
1941
  requiresDataRefresh?: boolean;
1904
1942
  };
@@ -2371,6 +2409,7 @@ interface ToolbarAction {
2371
2409
  /** Material button appearance: filled (flat), outlined (stroked), elevated (raised), text, tonal */
2372
2410
  appearance?: 'filled' | 'outlined' | 'elevated' | 'text' | 'tonal';
2373
2411
  action: string;
2412
+ globalAction?: GlobalActionRef;
2374
2413
  position: 'start' | 'end';
2375
2414
  order?: number;
2376
2415
  disabled?: boolean;
@@ -2386,6 +2425,7 @@ interface RowAction {
2386
2425
  label: string;
2387
2426
  icon: string;
2388
2427
  action: string;
2428
+ globalAction?: GlobalActionRef;
2389
2429
  color?: 'primary' | 'accent' | 'warn';
2390
2430
  tooltip?: string;
2391
2431
  requiresConfirmation?: boolean;
@@ -2398,6 +2438,7 @@ interface BulkAction {
2398
2438
  label: string;
2399
2439
  icon: string;
2400
2440
  action: string;
2441
+ globalAction?: GlobalActionRef;
2401
2442
  color?: 'primary' | 'accent' | 'warn';
2402
2443
  tooltip?: string;
2403
2444
  requiresConfirmation?: boolean;
@@ -2411,6 +2452,22 @@ interface ToolbarActionsChange {
2411
2452
  value: any;
2412
2453
  fullConfig: TableConfig;
2413
2454
  }
2455
+ type GlobalActionCatalogOption = GlobalActionCatalogEntry & {
2456
+ param?: {
2457
+ required?: boolean;
2458
+ label?: string;
2459
+ placeholder?: string;
2460
+ hint?: string;
2461
+ };
2462
+ };
2463
+ type EditableTableAction = {
2464
+ id?: string;
2465
+ label?: string;
2466
+ action?: string;
2467
+ globalAction?: GlobalActionRef;
2468
+ position?: string;
2469
+ appearance?: string;
2470
+ };
2414
2471
  type ToolbarShortcutScope = 'toolbar' | 'global';
2415
2472
  interface InternalActionSpec {
2416
2473
  id: string;
@@ -2431,14 +2488,14 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2431
2488
  editingToolbarActionIndex: number | null;
2432
2489
  editingRowActionIndex: number | null;
2433
2490
  editingBulkActionIndex: number | null;
2434
- readonly globalActionCatalog: GlobalActionSpec[];
2491
+ private readonly i18n;
2492
+ readonly globalActionCatalog: GlobalActionCatalogOption[];
2435
2493
  get internalActionCatalog(): InternalActionSpec[];
2436
2494
  readonly customActionValue = "__custom__";
2437
2495
  readonly validShortcutScopes: ToolbarShortcutScope[];
2438
2496
  private readonly actionFieldDrafts;
2439
2497
  private readonly actionFieldErrors;
2440
2498
  private readonly warnedInvalidShortcutScopes;
2441
- private readonly i18n;
2442
2499
  private destroy$;
2443
2500
  constructor(fb: FormBuilder, iconPicker: IconPickerService);
2444
2501
  tx(key: string, fallback: string): string;
@@ -2467,56 +2524,35 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2467
2524
  private removeAddToolbarAction;
2468
2525
  private syncAddFormFromActions;
2469
2526
  private updateConfig;
2470
- getActionSelectValue(value?: string): string;
2471
- getActionParam(value?: string): string;
2472
- getActionCustomValue(value?: string): string;
2527
+ getActionSelectValue(action?: EditableTableAction): string;
2528
+ getActionParam(action?: EditableTableAction): string;
2529
+ isRequiredGlobalActionParamMissing(action: EditableTableAction, spec: GlobalActionCatalogOption): boolean;
2530
+ getActionCustomValue(action?: EditableTableAction): string;
2473
2531
  isInternalAction(value?: string): boolean;
2474
- getActionSpecById(id: string): GlobalActionSpec | undefined;
2475
- onActionSelectChange(action: {
2476
- action?: string;
2477
- }, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2478
- onActionParamChange(action: {
2479
- action?: string;
2480
- }, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2481
- onActionCustomChange(action: {
2482
- action?: string;
2483
- }, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2532
+ getActionSpecById(id: string): GlobalActionCatalogOption | undefined;
2533
+ onActionSelectChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2534
+ onActionParamChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2535
+ onActionCustomChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2484
2536
  private touchActionList;
2485
- private parseActionValue;
2486
2537
  isGlobalActionId(id?: string): boolean;
2487
- getGlobalActionSchema(action: {
2488
- action?: string;
2489
- }): _praxisui_core.GlobalActionUiSchema | undefined;
2490
- getSurfaceOpenActionPayload(action: {
2491
- action?: string;
2492
- }): SurfaceOpenPayload;
2538
+ getGlobalActionSchema(action: EditableTableAction): _praxisui_core.GlobalActionUiSchema | undefined;
2539
+ getSurfaceOpenActionPayload(action: EditableTableAction): SurfaceOpenPayload;
2493
2540
  onSurfaceOpenActionPayloadChange(action: {
2494
2541
  action?: string;
2542
+ globalAction?: GlobalActionRef;
2495
2543
  }, payload: SurfaceOpenPayload, kind: 'toolbar' | 'row' | 'bulk'): void;
2496
- shouldShowGlobalActionField(action: {
2497
- action?: string;
2498
- }, field: GlobalActionField): boolean;
2499
- hasActionFieldError(action: {
2500
- action?: string;
2501
- }, key: string): boolean;
2502
- getActionFieldError(action: {
2503
- action?: string;
2504
- }, key: string): string;
2505
- getGlobalActionFieldValue(action: {
2506
- action?: string;
2507
- }, field: GlobalActionField): any;
2508
- onGlobalActionFieldChange(action: {
2509
- action?: string;
2510
- }, field: GlobalActionField, value: any, kind: 'toolbar' | 'row' | 'bulk'): void;
2511
- private getActionParamInfo;
2512
- private parseMethodAndUrl;
2544
+ shouldShowGlobalActionField(action: EditableTableAction, field: GlobalActionField): boolean;
2545
+ isGlobalActionFieldRequired(action: EditableTableAction, field: GlobalActionField): boolean;
2546
+ isGlobalActionFieldMissing(action: EditableTableAction, field: GlobalActionField): boolean;
2547
+ hasActionFieldError(action: EditableTableAction, key: string): boolean;
2548
+ getActionFieldError(action: EditableTableAction, key: string): string;
2549
+ getGlobalActionFieldValue(action: EditableTableAction, field: GlobalActionField): any;
2550
+ onGlobalActionFieldChange(action: EditableTableAction, field: GlobalActionField, value: any, kind: 'toolbar' | 'row' | 'bulk'): void;
2513
2551
  private stringifyJson;
2514
2552
  private normalizeSurfaceOpenPayload;
2515
2553
  private setActionFieldError;
2516
2554
  private clearActionFieldError;
2517
2555
  private collectGlobalActionFieldValues;
2518
- private serializeGlobalActionParam;
2519
- private buildPrimaryParam;
2520
2556
  private buildGlobalActionPayload;
2521
2557
  getToolbarActionShortcutScope(action: ToolbarAction): ToolbarShortcutScope;
2522
2558
  onToolbarActionShortcutScopeChange(action: ToolbarAction, value: ToolbarShortcutScope | string): void;
@@ -3078,6 +3114,8 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3078
3114
  private cdr;
3079
3115
  private configService;
3080
3116
  private readonly i18n;
3117
+ private readonly globalActionCatalogSource;
3118
+ private readonly globalActionCatalog;
3081
3119
  filterSettingsEditor?: FilterSettingsComponent;
3082
3120
  behaviorEditor?: BehaviorConfigEditorComponent;
3083
3121
  rulesEditor?: TableRulesEditorComponent;
@@ -3140,6 +3178,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3140
3178
  private hasLocalDataInput;
3141
3179
  private filterDtoLoadSeq;
3142
3180
  private lastKnownFilterSettings;
3181
+ private globalActionValidationIssues;
3143
3182
  private readonly panelData;
3144
3183
  private readonly crudService;
3145
3184
  private readonly panelRef;
@@ -3166,6 +3205,10 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3166
3205
  onRulesConfigChange(newCfg: TableConfig): void;
3167
3206
  private updateColumnMetas;
3168
3207
  private updateCanSaveState;
3208
+ private collectGlobalActionValidationIssues;
3209
+ private collectGlobalActionValidationTargets;
3210
+ private findGlobalActionCatalogEntry;
3211
+ private buildGlobalActionCatalog;
3169
3212
  private subscribeCrudEditorChanges;
3170
3213
  private showSuccess;
3171
3214
  private showError;
@@ -3174,6 +3217,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3174
3217
  * Normaliza uma configuração de tabela para comparação consistente
3175
3218
  * Remove propriedades undefined, ordena arrays e objetos de forma consistente
3176
3219
  */
3220
+ private withCanonicalIdField;
3177
3221
  private normalizeTableConfig;
3178
3222
  /**
3179
3223
  * Realiza comparação profunda de objetos, ignorando ordem de propriedades
@@ -3395,6 +3439,15 @@ declare function buildTableApplyPlan(doc: TableAuthoringDocument, runtime?: Tabl
3395
3439
  }): TableApplyPlan;
3396
3440
  declare function serializeTableAuthoringDocument(doc: TableAuthoringDocument): unknown;
3397
3441
 
3442
+ /**
3443
+ * Manifesto de authoring canônico para o componente praxis-table.
3444
+ * Este arquivo define o contrato executável para que agentes de IA editem tabelas.
3445
+ *
3446
+ * @version 2.0.0
3447
+ * @status COMPLIANT - Alinhado com o contrato v2 e TableConfig canônico.
3448
+ */
3449
+ declare const PRAXIS_TABLE_AUTHORING_MANIFEST: ComponentAuthoringManifest;
3450
+
3398
3451
  declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
3399
3452
  private readonly i18n;
3400
3453
  config: TableConfig;
@@ -3641,7 +3694,6 @@ declare function providePraxisTableMetadata(): Provider;
3641
3694
  declare module '@praxisui/core' {
3642
3695
  interface AiCapabilityCategoryMap {
3643
3696
  meta: true;
3644
- bindings: true;
3645
3697
  columns: true;
3646
3698
  renderer: true;
3647
3699
  conditional: true;
@@ -3993,5 +4045,5 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
3993
4045
  declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
3994
4046
  declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
3995
4047
 
3996
- 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 };
4048
+ 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, 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 };
3997
4049
  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 };
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "8.0.0-beta.1",
3
+ "version": "8.0.0-beta.12",
4
4
  "description": "Advanced data table for Angular (Praxis UI) with editing, filtering, sorting, virtualization, and settings panel integration.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^20.0.0",
7
7
  "@angular/core": "^20.0.0",
8
- "@praxisui/ai": "^8.0.0-beta.1",
9
- "@praxisui/core": "^8.0.0-beta.1",
10
- "@praxisui/dynamic-fields": "^8.0.0-beta.1",
11
- "@praxisui/dynamic-form": "^8.0.0-beta.1",
12
- "@praxisui/metadata-editor": "^8.0.0-beta.1",
13
- "@praxisui/rich-content": "^8.0.0-beta.1",
14
- "@praxisui/settings-panel": "^8.0.0-beta.1",
15
- "@praxisui/table-rule-builder": "^8.0.0-beta.1"
8
+ "@praxisui/ai": "^8.0.0-beta.12",
9
+ "@praxisui/core": "^8.0.0-beta.12",
10
+ "@praxisui/dynamic-fields": "^8.0.0-beta.12",
11
+ "@praxisui/dynamic-form": "^8.0.0-beta.12",
12
+ "@praxisui/metadata-editor": "^8.0.0-beta.12",
13
+ "@praxisui/rich-content": "^8.0.0-beta.12",
14
+ "@praxisui/settings-panel": "^8.0.0-beta.12",
15
+ "@praxisui/table-rule-builder": "^8.0.0-beta.12"
16
16
  },
17
17
  "dependencies": {
18
18
  "tslib": "^2.3.0"