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

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';
@@ -835,6 +835,7 @@ type RowActionRuntimeOptions = {
835
835
  type RuntimeRowAction = {
836
836
  id: string;
837
837
  action: string;
838
+ globalAction?: GlobalActionRef;
838
839
  label?: string;
839
840
  icon?: string;
840
841
  color?: string;
@@ -842,6 +843,7 @@ type RuntimeRowAction = {
842
843
  disabled?: boolean;
843
844
  overflow?: boolean;
844
845
  __praxisDiscoveredAction?: ResourceActionCatalogItem;
846
+ __praxisDiscoveredSurface?: ResourceSurfaceCatalogItem;
845
847
  __praxisCapabilityDenied?: boolean;
846
848
  };
847
849
  type ExpansionDetailRuntimeStatus = 'idle' | 'loading' | 'ready' | 'error' | 'blocked';
@@ -868,6 +870,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
868
870
  private resourceDiscovery;
869
871
  private componentKeys;
870
872
  private loadingOrchestrator;
873
+ private globalActions;
871
874
  private loadingRenderer?;
872
875
  private route?;
873
876
  private logger?;
@@ -912,6 +915,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
912
915
  metadataChange: EventEmitter<any>;
913
916
  loadingStateChange: EventEmitter<LoadingState>;
914
917
  collectionLinksChange: EventEmitter<RestApiLinks | null>;
918
+ selectionChange: EventEmitter<any>;
915
919
  private latestLoadingState;
916
920
  paginator: MatPaginator;
917
921
  sort: MatSort;
@@ -1129,7 +1133,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1129
1133
  private ensureConfigDefaults;
1130
1134
  private setShowToolbar;
1131
1135
  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);
1136
+ 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
1137
  private ensureAiAdapterLoaded;
1134
1138
  openAiAssistant(): void;
1135
1139
  closeAiAssistant(): void;
@@ -1359,19 +1363,22 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1359
1363
  private emitRowActionEvent;
1360
1364
  private showConfirmDialog;
1361
1365
  private executeDeleteAction;
1366
+ private dispatchRowAction;
1362
1367
  private cloneForEmit;
1363
1368
  private interpolateActionMessageTemplate;
1364
1369
  private buildActionFeedbackContext;
1365
1370
  private resolveActionFeedbackMessage;
1366
1371
  private showActionFeedbackMessage;
1367
1372
  private emitEventWithActionFeedback;
1373
+ private executeConfiguredGlobalAction;
1374
+ private shouldEmitLocalForGlobalAction;
1368
1375
  private resolveBulkValidationMessage;
1369
1376
  private hasValidBulkSelectionCount;
1370
1377
  private showBulkConfirmDialog;
1371
1378
  onToolbarAction(event: {
1372
1379
  action: string;
1373
1380
  actionConfig?: any;
1374
- }): void;
1381
+ }): Promise<void>;
1375
1382
  onAdvancedFilterSubmit(criteria: Record<string, any>): void;
1376
1383
  onAdvancedFilterChange(criteria: Record<string, any>): void;
1377
1384
  onAdvancedFilterClear(): void;
@@ -1768,6 +1775,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1768
1775
  private reconcileSelectionAfterDataChange;
1769
1776
  private getComparableRowIdentity;
1770
1777
  getIdField(): string;
1778
+ private resolveConfigMetaIdField;
1771
1779
  private syncRuntimeSchemaMetaFromConfig;
1772
1780
  private getEffectiveMetadataSnapshot;
1773
1781
  getActionId(action: any): string;
@@ -1785,6 +1793,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1785
1793
  isAllSelected(): boolean;
1786
1794
  toggleRow(row: any): void;
1787
1795
  private selectRowFromUserInteraction;
1796
+ private emitSelectionChange;
1788
1797
  private getRowActionsConfig;
1789
1798
  getActionsHeaderAlign(): string;
1790
1799
  getActionsHeaderTooltip(): string | undefined;
@@ -1809,11 +1818,19 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1809
1818
  private splitVisibleRowActionsFromVisible;
1810
1819
  private decorateConfiguredRowAction;
1811
1820
  private getDiscoveredRowWorkflowActions;
1821
+ private getDiscoveredRowSurfaceActionsFromSnapshot;
1812
1822
  private getDiscoveredRowWorkflowActionsFromCatalog;
1813
1823
  private supportsRowCrudAction;
1814
1824
  private isCapabilityManagedCrudRowAction;
1815
1825
  private findItemWorkflowAction;
1826
+ private findItemSurface;
1827
+ private isRowSurfaceAction;
1828
+ private isWritableRowSurface;
1829
+ private isReadableRowSurface;
1830
+ private getDiscoveredSurfaceIcon;
1831
+ private getDiscoveredSurfaceColor;
1816
1832
  private getUnavailableWorkflowMessage;
1833
+ private getUnavailableSurfaceMessage;
1817
1834
  private normalizeActionId;
1818
1835
  private isActionVisible;
1819
1836
  trackAction(index: number, item: any): any;
@@ -1827,8 +1844,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1827
1844
  getRowMenuIcon(): string;
1828
1845
  private scheduleRowDiscoveryMarkForCheck;
1829
1846
  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>;
1847
+ 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; }]>;
1848
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisTable, "praxis-table", never, { "config": { "alias": "config"; "required": false; }; "resourcePath": { "alias": "resourcePath"; "required": false; }; "data": { "alias": "data"; "required": false; }; "tableId": { "alias": "tableId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "autoDelete": { "alias": "autoDelete"; "required": false; }; "notifyIfOutdated": { "alias": "notifyIfOutdated"; "required": false; }; "snoozeMs": { "alias": "snoozeMs"; "required": false; }; "autoOpenSettingsOnOutdated": { "alias": "autoOpenSettingsOnOutdated"; "required": false; }; "crudContext": { "alias": "crudContext"; "required": false; }; "filterCriteria": { "alias": "filterCriteria"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "dense": { "alias": "dense"; "required": false; }; }, { "rowClick": "rowClick"; "rowDoubleClick": "rowDoubleClick"; "rowExpansionChange": "rowExpansionChange"; "rowAction": "rowAction"; "toolbarAction": "toolbarAction"; "bulkAction": "bulkAction"; "columnReorder": "columnReorder"; "columnReorderAttempt": "columnReorderAttempt"; "beforeDelete": "beforeDelete"; "afterDelete": "afterDelete"; "deleteError": "deleteError"; "beforeBulkDelete": "beforeBulkDelete"; "afterBulkDelete": "afterBulkDelete"; "bulkDeleteError": "bulkDeleteError"; "schemaStatusChange": "schemaStatusChange"; "metadataChange": "metadataChange"; "loadingStateChange": "loadingStateChange"; "collectionLinksChange": "collectionLinksChange"; "selectionChange": "selectionChange"; }, ["toolbar", "projectedFilter"], ["[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]", "[advancedFilter]", "[toolbar]"], true, never>;
1832
1849
  static ngAcceptInputType_enableCustomization: unknown;
1833
1850
  }
1834
1851
 
@@ -1841,7 +1858,6 @@ interface EditorDocument<TConfig, TBindings = unknown> {
1841
1858
  type TableHorizontalScroll = 'auto' | 'wrap' | 'none';
1842
1859
  interface TableBindings {
1843
1860
  resourcePath?: string | null;
1844
- idField?: string;
1845
1861
  horizontalScroll?: TableHorizontalScroll;
1846
1862
  }
1847
1863
  interface TableAuthoringDocument extends EditorDocument<TableConfig, TableBindings> {
@@ -1898,7 +1914,6 @@ interface TableApplyPlan {
1898
1914
  };
1899
1915
  diff?: {
1900
1916
  resourcePathChanged?: boolean;
1901
- idFieldChanged?: boolean;
1902
1917
  horizontalScrollChanged?: boolean;
1903
1918
  requiresDataRefresh?: boolean;
1904
1919
  };
@@ -2371,6 +2386,7 @@ interface ToolbarAction {
2371
2386
  /** Material button appearance: filled (flat), outlined (stroked), elevated (raised), text, tonal */
2372
2387
  appearance?: 'filled' | 'outlined' | 'elevated' | 'text' | 'tonal';
2373
2388
  action: string;
2389
+ globalAction?: GlobalActionRef;
2374
2390
  position: 'start' | 'end';
2375
2391
  order?: number;
2376
2392
  disabled?: boolean;
@@ -2386,6 +2402,7 @@ interface RowAction {
2386
2402
  label: string;
2387
2403
  icon: string;
2388
2404
  action: string;
2405
+ globalAction?: GlobalActionRef;
2389
2406
  color?: 'primary' | 'accent' | 'warn';
2390
2407
  tooltip?: string;
2391
2408
  requiresConfirmation?: boolean;
@@ -2398,6 +2415,7 @@ interface BulkAction {
2398
2415
  label: string;
2399
2416
  icon: string;
2400
2417
  action: string;
2418
+ globalAction?: GlobalActionRef;
2401
2419
  color?: 'primary' | 'accent' | 'warn';
2402
2420
  tooltip?: string;
2403
2421
  requiresConfirmation?: boolean;
@@ -2411,6 +2429,22 @@ interface ToolbarActionsChange {
2411
2429
  value: any;
2412
2430
  fullConfig: TableConfig;
2413
2431
  }
2432
+ type GlobalActionCatalogOption = GlobalActionCatalogEntry & {
2433
+ param?: {
2434
+ required?: boolean;
2435
+ label?: string;
2436
+ placeholder?: string;
2437
+ hint?: string;
2438
+ };
2439
+ };
2440
+ type EditableTableAction = {
2441
+ id?: string;
2442
+ label?: string;
2443
+ action?: string;
2444
+ globalAction?: GlobalActionRef;
2445
+ position?: string;
2446
+ appearance?: string;
2447
+ };
2414
2448
  type ToolbarShortcutScope = 'toolbar' | 'global';
2415
2449
  interface InternalActionSpec {
2416
2450
  id: string;
@@ -2431,14 +2465,14 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2431
2465
  editingToolbarActionIndex: number | null;
2432
2466
  editingRowActionIndex: number | null;
2433
2467
  editingBulkActionIndex: number | null;
2434
- readonly globalActionCatalog: GlobalActionSpec[];
2468
+ private readonly i18n;
2469
+ readonly globalActionCatalog: GlobalActionCatalogOption[];
2435
2470
  get internalActionCatalog(): InternalActionSpec[];
2436
2471
  readonly customActionValue = "__custom__";
2437
2472
  readonly validShortcutScopes: ToolbarShortcutScope[];
2438
2473
  private readonly actionFieldDrafts;
2439
2474
  private readonly actionFieldErrors;
2440
2475
  private readonly warnedInvalidShortcutScopes;
2441
- private readonly i18n;
2442
2476
  private destroy$;
2443
2477
  constructor(fb: FormBuilder, iconPicker: IconPickerService);
2444
2478
  tx(key: string, fallback: string): string;
@@ -2467,56 +2501,35 @@ declare class ToolbarActionsEditorComponent implements OnInit, OnDestroy, OnChan
2467
2501
  private removeAddToolbarAction;
2468
2502
  private syncAddFormFromActions;
2469
2503
  private updateConfig;
2470
- getActionSelectValue(value?: string): string;
2471
- getActionParam(value?: string): string;
2472
- getActionCustomValue(value?: string): string;
2504
+ getActionSelectValue(action?: EditableTableAction): string;
2505
+ getActionParam(action?: EditableTableAction): string;
2506
+ isRequiredGlobalActionParamMissing(action: EditableTableAction, spec: GlobalActionCatalogOption): boolean;
2507
+ getActionCustomValue(action?: EditableTableAction): string;
2473
2508
  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;
2509
+ getActionSpecById(id: string): GlobalActionCatalogOption | undefined;
2510
+ onActionSelectChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2511
+ onActionParamChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2512
+ onActionCustomChange(action: EditableTableAction, value: string, kind: 'toolbar' | 'row' | 'bulk'): void;
2484
2513
  private touchActionList;
2485
- private parseActionValue;
2486
2514
  isGlobalActionId(id?: string): boolean;
2487
- getGlobalActionSchema(action: {
2488
- action?: string;
2489
- }): _praxisui_core.GlobalActionUiSchema | undefined;
2490
- getSurfaceOpenActionPayload(action: {
2491
- action?: string;
2492
- }): SurfaceOpenPayload;
2515
+ getGlobalActionSchema(action: EditableTableAction): _praxisui_core.GlobalActionUiSchema | undefined;
2516
+ getSurfaceOpenActionPayload(action: EditableTableAction): SurfaceOpenPayload;
2493
2517
  onSurfaceOpenActionPayloadChange(action: {
2494
2518
  action?: string;
2519
+ globalAction?: GlobalActionRef;
2495
2520
  }, 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;
2521
+ shouldShowGlobalActionField(action: EditableTableAction, field: GlobalActionField): boolean;
2522
+ isGlobalActionFieldRequired(action: EditableTableAction, field: GlobalActionField): boolean;
2523
+ isGlobalActionFieldMissing(action: EditableTableAction, field: GlobalActionField): boolean;
2524
+ hasActionFieldError(action: EditableTableAction, key: string): boolean;
2525
+ getActionFieldError(action: EditableTableAction, key: string): string;
2526
+ getGlobalActionFieldValue(action: EditableTableAction, field: GlobalActionField): any;
2527
+ onGlobalActionFieldChange(action: EditableTableAction, field: GlobalActionField, value: any, kind: 'toolbar' | 'row' | 'bulk'): void;
2513
2528
  private stringifyJson;
2514
2529
  private normalizeSurfaceOpenPayload;
2515
2530
  private setActionFieldError;
2516
2531
  private clearActionFieldError;
2517
2532
  private collectGlobalActionFieldValues;
2518
- private serializeGlobalActionParam;
2519
- private buildPrimaryParam;
2520
2533
  private buildGlobalActionPayload;
2521
2534
  getToolbarActionShortcutScope(action: ToolbarAction): ToolbarShortcutScope;
2522
2535
  onToolbarActionShortcutScopeChange(action: ToolbarAction, value: ToolbarShortcutScope | string): void;
@@ -3078,6 +3091,8 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3078
3091
  private cdr;
3079
3092
  private configService;
3080
3093
  private readonly i18n;
3094
+ private readonly globalActionCatalogSource;
3095
+ private readonly globalActionCatalog;
3081
3096
  filterSettingsEditor?: FilterSettingsComponent;
3082
3097
  behaviorEditor?: BehaviorConfigEditorComponent;
3083
3098
  rulesEditor?: TableRulesEditorComponent;
@@ -3140,6 +3155,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3140
3155
  private hasLocalDataInput;
3141
3156
  private filterDtoLoadSeq;
3142
3157
  private lastKnownFilterSettings;
3158
+ private globalActionValidationIssues;
3143
3159
  private readonly panelData;
3144
3160
  private readonly crudService;
3145
3161
  private readonly panelRef;
@@ -3166,6 +3182,10 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3166
3182
  onRulesConfigChange(newCfg: TableConfig): void;
3167
3183
  private updateColumnMetas;
3168
3184
  private updateCanSaveState;
3185
+ private collectGlobalActionValidationIssues;
3186
+ private collectGlobalActionValidationTargets;
3187
+ private findGlobalActionCatalogEntry;
3188
+ private buildGlobalActionCatalog;
3169
3189
  private subscribeCrudEditorChanges;
3170
3190
  private showSuccess;
3171
3191
  private showError;
@@ -3174,6 +3194,7 @@ declare class PraxisTableConfigEditor implements OnInit, OnDestroy, SettingsValu
3174
3194
  * Normaliza uma configuração de tabela para comparação consistente
3175
3195
  * Remove propriedades undefined, ordena arrays e objetos de forma consistente
3176
3196
  */
3197
+ private withCanonicalIdField;
3177
3198
  private normalizeTableConfig;
3178
3199
  /**
3179
3200
  * Realiza comparação profunda de objetos, ignorando ordem de propriedades
@@ -3395,6 +3416,15 @@ declare function buildTableApplyPlan(doc: TableAuthoringDocument, runtime?: Tabl
3395
3416
  }): TableApplyPlan;
3396
3417
  declare function serializeTableAuthoringDocument(doc: TableAuthoringDocument): unknown;
3397
3418
 
3419
+ /**
3420
+ * Manifesto de authoring canônico para o componente praxis-table.
3421
+ * Este arquivo define o contrato executável para que agentes de IA editem tabelas.
3422
+ *
3423
+ * @version 2.0.0
3424
+ * @status COMPLIANT - Alinhado com o contrato v2 e TableConfig canônico.
3425
+ */
3426
+ declare const PRAXIS_TABLE_AUTHORING_MANIFEST: ComponentAuthoringManifest;
3427
+
3398
3428
  declare class PraxisTableInlineAuthoringEditorComponent implements OnChanges {
3399
3429
  private readonly i18n;
3400
3430
  config: TableConfig;
@@ -3641,7 +3671,6 @@ declare function providePraxisTableMetadata(): Provider;
3641
3671
  declare module '@praxisui/core' {
3642
3672
  interface AiCapabilityCategoryMap {
3643
3673
  meta: true;
3644
- bindings: true;
3645
3674
  columns: true;
3646
3675
  renderer: true;
3647
3676
  conditional: true;
@@ -3993,5 +4022,5 @@ declare function coerceTableComponentEditPlan(value: unknown): TableComponentEdi
3993
4022
  declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[], currentConfig: TableConfig): TableComponentEditPlanCompileResult;
3994
4023
  declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
3995
4024
 
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 };
4025
+ 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
4026
  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.11",
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.11",
9
+ "@praxisui/core": "^8.0.0-beta.11",
10
+ "@praxisui/dynamic-fields": "^8.0.0-beta.11",
11
+ "@praxisui/dynamic-form": "^8.0.0-beta.11",
12
+ "@praxisui/metadata-editor": "^8.0.0-beta.11",
13
+ "@praxisui/rich-content": "^8.0.0-beta.11",
14
+ "@praxisui/settings-panel": "^8.0.0-beta.11",
15
+ "@praxisui/table-rule-builder": "^8.0.0-beta.11"
16
16
  },
17
17
  "dependencies": {
18
18
  "tslib": "^2.3.0"