@praxisui/table 9.0.0-beta.36 → 9.0.0-beta.37

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,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-07-04T01:05:24.857Z",
3
+ "generatedAt": "2026-07-06T00:01:30.215Z",
4
4
  "packageName": "@praxisui/table",
5
- "packageVersion": "9.0.0-beta.36",
5
+ "packageVersion": "9.0.0-beta.37",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 3,
@@ -6251,6 +6251,11 @@
6251
6251
  "type": "WidgetEventEnvelope",
6252
6252
  "required": false
6253
6253
  },
6254
+ {
6255
+ "name": "resourceEvent",
6256
+ "type": "PraxisResourceEvent",
6257
+ "required": false
6258
+ },
6254
6259
  {
6255
6260
  "name": "rowDoubleClick",
6256
6261
  "type": "{ action: string; row: any }",
@@ -21991,9 +21996,9 @@
21991
21996
  {
21992
21997
  "chunkIndex": 0,
21993
21998
  "chunkKind": "summary",
21994
- "content": "Component ID: praxis-table\nSelector: praxis-table\nFriendly Name: Praxis Table\nDescription: Tabela interativa com paginação, ordenação e ações em massa.\nCategory: table\nLib/Package: @praxisui/table\nTags: widget, table, configurable, hasWizard, stable\nInputs:\n - config (TableConfig)\n - resourcePath (string)\n - data (any[])\n - configPersistenceStrategy ('local-first' | 'input-first' | 'volatile')\n - queryContext (PraxisDataQueryContext | null)\n - aiContext (TableAiContext | null)\n - aiAssistantVoiceInputMode ('disabled' | 'browser-speech')\n - aiAssistantVoiceLanguage (string)\n - filterCriteria (Record<string, any>)\n - autoDelete (boolean)\n - enableCustomization (boolean)\n - dense (boolean)\n - horizontalScroll ('auto' | 'wrap' | 'none')\n - tableId (string)\n - componentInstanceId (string)\n - title (string)\n - subtitle (string)\n - icon (string)\n - notifyIfOutdated ('inline' | 'snackbar' | 'both' | 'none')\n - snoozeMs (number)\n - autoOpenSettingsOnOutdated (boolean)\n - crudContext (any)\nOutputs:\n - rowClick ({ row: any; index: number })\n - widgetEvent (WidgetEventEnvelope)\n - rowDoubleClick ({ action: string; row: any })\n - rowExpansionChange (RowExpansionChangeEvent)\n - selectionChange ({ trigger: string; row?: any; selectedRows: any[]; selectedCount: number; tableId?: string })\n - rowAction ({ action: string; row: any })\n - toolbarAction ({ action: string })\n - bulkAction ({ action: string; rows: any[] })\n - columnReorder ({ action: string; trigger: \"drag\" | \"keyboard\" | \"undo\"; operationId: number; tableId: string; sourceField: string; targetField: string; previousIndex: number; currentIndex: number; sourceZone: \"start\" | \"center\" | \"end\"; targetZone: \"start\" | \"center\" | \"end\"; previousOrder: string[]; currentOrder: string[]; persisted: boolean })\n - columnReorderAttempt ({ action: \"columnReorderAttempt\"; trigger: \"drag\" | \"keyboard\"; operationId: number; tableId: string; sourceField: string; targetField: string; previousIndex: number; currentIndex: number; sourceZone: \"start\" | \"center\" | \"end\"; targetZone: \"start\" | \"center\" | \"end\"; result: \"blocked\"; reasonCode: \"drop-zone-policy-blocked\"; configuredColumnDropZones: string[] })\n - beforeDelete (any)\n - afterDelete (any)\n - deleteError ({ row: any; error: unknown })\n - beforeBulkDelete (any[])\n - afterBulkDelete (any[])\n - bulkDeleteError ({ rows: any[]; error: unknown })\n - schemaStatusChange ({ outdated: boolean; serverHash?: string; lastVerifiedAt?: string; trigger?: string; tableId?: string })\n - metadataChange ({ trigger: string; meta: any; tableId?: string })\n - configChange (TableConfig)\n - loadingStateChange (LoadingState)\n",
21999
+ "content": "Component ID: praxis-table\nSelector: praxis-table\nFriendly Name: Praxis Table\nDescription: Tabela interativa com paginação, ordenação e ações em massa.\nCategory: table\nLib/Package: @praxisui/table\nTags: widget, table, configurable, hasWizard, stable\nInputs:\n - config (TableConfig)\n - resourcePath (string)\n - data (any[])\n - configPersistenceStrategy ('local-first' | 'input-first' | 'volatile')\n - queryContext (PraxisDataQueryContext | null)\n - aiContext (TableAiContext | null)\n - aiAssistantVoiceInputMode ('disabled' | 'browser-speech')\n - aiAssistantVoiceLanguage (string)\n - filterCriteria (Record<string, any>)\n - autoDelete (boolean)\n - enableCustomization (boolean)\n - dense (boolean)\n - horizontalScroll ('auto' | 'wrap' | 'none')\n - tableId (string)\n - componentInstanceId (string)\n - title (string)\n - subtitle (string)\n - icon (string)\n - notifyIfOutdated ('inline' | 'snackbar' | 'both' | 'none')\n - snoozeMs (number)\n - autoOpenSettingsOnOutdated (boolean)\n - crudContext (any)\nOutputs:\n - rowClick ({ row: any; index: number })\n - widgetEvent (WidgetEventEnvelope)\n - resourceEvent (PraxisResourceEvent)\n - rowDoubleClick ({ action: string; row: any })\n - rowExpansionChange (RowExpansionChangeEvent)\n - selectionChange ({ trigger: string; row?: any; selectedRows: any[]; selectedCount: number; tableId?: string })\n - rowAction ({ action: string; row: any })\n - toolbarAction ({ action: string })\n - bulkAction ({ action: string; rows: any[] })\n - columnReorder ({ action: string; trigger: \"drag\" | \"keyboard\" | \"undo\"; operationId: number; tableId: string; sourceField: string; targetField: string; previousIndex: number; currentIndex: number; sourceZone: \"start\" | \"center\" | \"end\"; targetZone: \"start\" | \"center\" | \"end\"; previousOrder: string[]; currentOrder: string[]; persisted: boolean })\n - columnReorderAttempt ({ action: \"columnReorderAttempt\"; trigger: \"drag\" | \"keyboard\"; operationId: number; tableId: string; sourceField: string; targetField: string; previousIndex: number; currentIndex: number; sourceZone: \"start\" | \"center\" | \"end\"; targetZone: \"start\" | \"center\" | \"end\"; result: \"blocked\"; reasonCode: \"drop-zone-policy-blocked\"; configuredColumnDropZones: string[] })\n - beforeDelete (any)\n - afterDelete (any)\n - deleteError ({ row: any; error: unknown })\n - beforeBulkDelete (any[])\n - afterBulkDelete (any[])\n - bulkDeleteError ({ rows: any[]; error: unknown })\n - schemaStatusChange ({ outdated: boolean; serverHash?: string; lastVerifiedAt?: string; trigger?: string; tableId?: string })\n - metadataChange ({ trigger: string; meta: any; tableId?: string })\n - configChange (TableConfig)\n - loadingStateChange (LoadingState)\n",
21995
22000
  "sourcePointer": "praxis-ui-angular/projects/praxis-table/src/lib/praxis-table.metadata.ts",
21996
- "contentHash": "ac9d8292f50c1b60e14f1e86a7cc47bd16d8d4d25ab4d126ae83e972675f5556",
22001
+ "contentHash": "39eff500d21972a173e38f773e212226f348e0d3d9d51d3a047eebadaa99231e",
21997
22002
  "sourceKind": "component_definition",
21998
22003
  "sourceId": "praxis-table",
21999
22004
  "corpusVersion": "1.0.0"
@@ -0,0 +1,26 @@
1
+ # Praxis Table Resource Events
2
+
3
+ `PraxisTable` emits `resourceEvent` in parallel with its existing public outputs. The envelope is intended for enterprise hosts that need one governed stream for audit, analytics, shell orchestration, and related-resource surfaces.
4
+
5
+ ## Event Mapping
6
+
7
+ | Table interaction | `kind` | `sourceOutput` | `phase` |
8
+ | --- | --- | --- | --- |
9
+ | Row click | `row-click` | `rowClick` | `notification` |
10
+ | Row double click | `row-double-click` | `rowDoubleClick` | `notification` |
11
+ | Selection change | `selection-change` | `selectionChange` | `notification` |
12
+ | Row action | `row-action` | `rowAction` | `notification` |
13
+ | Toolbar action | `toolbar-action` | `toolbarAction` | `notification` |
14
+ | Bulk action | `bulk-action` | `bulkAction` | `notification` |
15
+ | Export action | `export-action` | `exportAction` | `success` or `error` |
16
+ | Dynamic record surface fallback | `surface-open` | `recordSurfaceOpen` | `request` |
17
+ | Catalog-backed record surface | `surface-open` | `recordSurfaceOpen` | `request`, then `success` or `error` |
18
+ | Catalog-backed collection surface | `surface-open` | `toolbarAction` | `request`, then `success` or `error` |
19
+
20
+ `notification` events preserve the old output semantics and should not be interpreted as business completion. Host-mediated operations such as `surface.open` emit `request` before invoking `GlobalActionService` and then emit `success` or `error` after the result is known.
21
+
22
+ ## Surface Rules
23
+
24
+ For catalog-backed surfaces, `resourceEvent.surface` carries the canonical `ResourceSurfaceCatalogItem`, including `relatedResource` when the backend publishes it. For fallback dynamic-page requests, the payload still carries the requested surface context, but `surface` may be `null` because no full catalog item is available.
25
+
26
+ Consumers must keep legacy outputs wired where they already depend on them. `resourceEvent` is the canonical cross-component event stream, not a breaking replacement for existing outputs.
@@ -39501,6 +39501,7 @@ class PraxisTable {
39501
39501
  advancedFilterMetadataOverridesCache;
39502
39502
  rowClick = new EventEmitter();
39503
39503
  widgetEvent = new EventEmitter();
39504
+ resourceEvent = new EventEmitter();
39504
39505
  rowDoubleClick = new EventEmitter();
39505
39506
  rowExpansionChange = new EventEmitter();
39506
39507
  rowAction = new EventEmitter();
@@ -41507,7 +41508,7 @@ class PraxisTable {
41507
41508
  if (this.aiAdapter || this.aiAdapterLoadStarted)
41508
41509
  return;
41509
41510
  this.aiAdapterLoadStarted = true;
41510
- import('./praxisui-table-table-ai.adapter-utRTtk0G.mjs')
41511
+ import('./praxisui-table-table-ai.adapter-oYLM5-wf.mjs')
41511
41512
  .then(({ TableAiAdapter }) => {
41512
41513
  if (!this.isAiAssistantEnabled()) {
41513
41514
  this.aiAssistantOpenAfterAdapterLoad = false;
@@ -43187,7 +43188,9 @@ class PraxisTable {
43187
43188
  if (this.shouldSelectRowOnRowClick(event)) {
43188
43189
  this.selectRowFromUserInteraction(row);
43189
43190
  }
43190
- this.rowClick.emit({ row, index });
43191
+ const payload = { row, index };
43192
+ this.rowClick.emit(payload);
43193
+ this.emitResourceEvent('row-click', 'rowClick', payload);
43191
43194
  }
43192
43195
  requestRecordSurfaceOpen(surface) {
43193
43196
  const selectedRows = this.getSelectedRowsSnapshot();
@@ -43202,19 +43205,24 @@ class PraxisTable {
43202
43205
  const index = Array.isArray(this.dataSource?.data)
43203
43206
  ? this.dataSource.data.indexOf(row)
43204
43207
  : -1;
43208
+ const resourceEvent = this.buildResourceEvent('surface-open', 'recordSurfaceOpen', {
43209
+ operationId: 'dynamicPage.surface.open',
43210
+ surface,
43211
+ selectedRow: row,
43212
+ selectedRows,
43213
+ selectedCount: selectedRows.length,
43214
+ tableId: this.tableId,
43215
+ }, null, null, 'request');
43205
43216
  this.widgetEvent.emit({
43206
43217
  sourceComponentId: 'praxis-table',
43207
43218
  output: 'recordSurfaceOpen',
43208
- payload: {
43209
- operationId: 'dynamicPage.surface.open',
43210
- surface,
43211
- selectedRow: row,
43212
- selectedRows,
43213
- selectedCount: selectedRows.length,
43214
- tableId: this.tableId,
43215
- },
43219
+ payload: resourceEvent.payload,
43220
+ resourceEvent,
43216
43221
  });
43217
- this.rowClick.emit({ row, index });
43222
+ this.resourceEvent.emit(resourceEvent);
43223
+ const rowClickPayload = { row, index };
43224
+ this.rowClick.emit(rowClickPayload);
43225
+ this.emitResourceEvent('row-click', 'rowClick', rowClickPayload);
43218
43226
  return true;
43219
43227
  }
43220
43228
  resolveResourceRecordSurfaceContext(surface) {
@@ -43240,6 +43248,15 @@ class PraxisTable {
43240
43248
  title: surface.title || contextSurface.label,
43241
43249
  subtitle: surface.description || contextSurface.description || undefined,
43242
43250
  });
43251
+ const surfaceOpenPayload = {
43252
+ operationId: 'dynamicPage.surface.open',
43253
+ surface: contextSurface,
43254
+ selectedRow: row,
43255
+ selectedRows,
43256
+ selectedCount: selectedRows.length,
43257
+ tableId: this.tableId,
43258
+ };
43259
+ this.emitResourceEvent('surface-open', 'recordSurfaceOpen', surfaceOpenPayload, surface, resourceId, 'request');
43243
43260
  const result = await this.globalActions.execute('surface.open', payload, {
43244
43261
  sourceId: this.tableId || this.componentInstanceId || 'praxis-table',
43245
43262
  output: 'recordSurfaceOpen',
@@ -43264,6 +43281,10 @@ class PraxisTable {
43264
43281
  },
43265
43282
  });
43266
43283
  if (!result.success) {
43284
+ this.emitResourceEvent('surface-open', 'recordSurfaceOpen', {
43285
+ ...surfaceOpenPayload,
43286
+ error: result.error,
43287
+ }, surface, resourceId, 'error');
43267
43288
  this.warnLog('[PraxisTable] Falha ao abrir surface de registro descoberta por capabilities', { surfaceId: surface.id, error: result.error }, { actionId: 'dynamicPage.surface.open' });
43268
43289
  this.showActionFeedbackMessage('errors', 'dynamicPage.surface.open', {
43269
43290
  label: surface.title || contextSurface.label,
@@ -43272,8 +43293,20 @@ class PraxisTable {
43272
43293
  duration: 3000,
43273
43294
  });
43274
43295
  }
43296
+ else {
43297
+ this.emitResourceEvent('surface-open', 'recordSurfaceOpen', surfaceOpenPayload, surface, resourceId, 'success');
43298
+ }
43275
43299
  }
43276
43300
  catch (error) {
43301
+ this.emitResourceEvent('surface-open', 'recordSurfaceOpen', {
43302
+ operationId: 'dynamicPage.surface.open',
43303
+ surface: contextSurface,
43304
+ selectedRow: row,
43305
+ selectedRows,
43306
+ selectedCount: selectedRows.length,
43307
+ tableId: this.tableId,
43308
+ error,
43309
+ }, surface, resourceId, 'error');
43277
43310
  this.warnLog('[PraxisTable] Falha ao preparar surface de registro descoberta por capabilities', { surfaceId: surface.id, error }, { actionId: 'dynamicPage.surface.open' });
43278
43311
  this.showActionFeedbackMessage('errors', 'dynamicPage.surface.open', {
43279
43312
  label: surface.title || contextSurface.label,
@@ -46205,7 +46238,9 @@ class PraxisTable {
46205
46238
  actionId: actId,
46206
46239
  throttleKey: `praxis-table:row-double-click:${actId}`,
46207
46240
  });
46208
- this.rowDoubleClick.emit({ action: actId, row });
46241
+ const payload = { action: actId, row };
46242
+ this.rowDoubleClick.emit(payload);
46243
+ this.emitResourceEvent('row-double-click', 'rowDoubleClick', payload, null, this.getRowId(row), 'notification');
46209
46244
  }
46210
46245
  catch { }
46211
46246
  }
@@ -46290,6 +46325,9 @@ class PraxisTable {
46290
46325
  label: actionLabel,
46291
46326
  row,
46292
46327
  selectedCount: 1,
46328
+ resourceEventKind: 'row-action',
46329
+ sourceOutput: 'rowAction',
46330
+ resourceId: this.getRowId(row),
46293
46331
  });
46294
46332
  }
46295
46333
  showConfirmDialog(action, row, cfg, willAutoDelete, runtimeOptions) {
@@ -46610,6 +46648,9 @@ class PraxisTable {
46610
46648
  emitEventWithActionFeedback(emitter, payload, options) {
46611
46649
  try {
46612
46650
  emitter.emit(payload);
46651
+ if (options.resourceEventKind && options.sourceOutput) {
46652
+ this.emitResourceEvent(options.resourceEventKind, options.sourceOutput, payload, options.surface, options.resourceId, 'notification');
46653
+ }
46613
46654
  this.showActionFeedbackMessage('success', options.actionId, {
46614
46655
  label: options.label,
46615
46656
  selectedCount: options.selectedCount,
@@ -46877,6 +46918,8 @@ class PraxisTable {
46877
46918
  label: actionLabel,
46878
46919
  rows,
46879
46920
  selectedCount: rows.length,
46921
+ resourceEventKind: 'bulk-action',
46922
+ sourceOutput: 'bulkAction',
46880
46923
  });
46881
46924
  return;
46882
46925
  }
@@ -46984,6 +47027,8 @@ class PraxisTable {
46984
47027
  label: actionLabel,
46985
47028
  rows,
46986
47029
  selectedCount: rows.length,
47030
+ resourceEventKind: 'bulk-action',
47031
+ sourceOutput: 'bulkAction',
46987
47032
  });
46988
47033
  };
46989
47034
  if (requiresConfirmation) {
@@ -47016,6 +47061,8 @@ class PraxisTable {
47016
47061
  this.emitEventWithActionFeedback(this.toolbarAction, payload, {
47017
47062
  actionId: action,
47018
47063
  label: toolbarActionConfig?.label || action,
47064
+ resourceEventKind: 'toolbar-action',
47065
+ sourceOutput: 'toolbarAction',
47019
47066
  });
47020
47067
  }
47021
47068
  async tryHandleCollectionCreateToolbarAction(action, actionConfig) {
@@ -47040,6 +47087,8 @@ class PraxisTable {
47040
47087
  this.emitEventWithActionFeedback(this.toolbarAction, payload, {
47041
47088
  actionId: action,
47042
47089
  label: configuredAction.label || action,
47090
+ resourceEventKind: 'toolbar-action',
47091
+ sourceOutput: 'toolbarAction',
47043
47092
  });
47044
47093
  return true;
47045
47094
  }
@@ -47052,6 +47101,10 @@ class PraxisTable {
47052
47101
  presentation: 'drawer',
47053
47102
  queryContext: this.queryContext ?? undefined,
47054
47103
  });
47104
+ this.emitResourceEvent('surface-open', 'toolbarAction', {
47105
+ ...payload,
47106
+ surface,
47107
+ }, surface, null, 'request');
47055
47108
  const result = await this.globalActions.execute('surface.open', surfacePayload, {
47056
47109
  sourceId: this.tableId || this.componentInstanceId || 'praxis-table',
47057
47110
  output: 'toolbarAction',
@@ -47072,11 +47125,25 @@ class PraxisTable {
47072
47125
  },
47073
47126
  });
47074
47127
  if (result.success) {
47128
+ this.emitResourceEvent('surface-open', 'toolbarAction', {
47129
+ ...payload,
47130
+ surface,
47131
+ }, surface, null, 'success');
47075
47132
  return true;
47076
47133
  }
47134
+ this.emitResourceEvent('surface-open', 'toolbarAction', {
47135
+ ...payload,
47136
+ surface,
47137
+ error: result.error,
47138
+ }, surface, null, 'error');
47077
47139
  this.warnLog('[PraxisTable] Falha ao abrir create de coleção via surface.open', { surfaceId: surface.id, error: result.error }, { actionId: 'create' });
47078
47140
  }
47079
47141
  catch (error) {
47142
+ this.emitResourceEvent('surface-open', 'toolbarAction', {
47143
+ ...payload,
47144
+ surface,
47145
+ error,
47146
+ }, surface, null, 'error');
47080
47147
  this.warnLog('[PraxisTable] Falha ao preparar create de coleção via surface.open', { surfaceId: surface.id, error }, { actionId: 'create' });
47081
47148
  }
47082
47149
  this.emitEventWithActionFeedback(this.toolbarAction, {
@@ -47085,6 +47152,9 @@ class PraxisTable {
47085
47152
  }, {
47086
47153
  actionId: action,
47087
47154
  label: configuredAction.label || action,
47155
+ resourceEventKind: 'toolbar-action',
47156
+ sourceOutput: 'toolbarAction',
47157
+ surface,
47088
47158
  });
47089
47159
  return true;
47090
47160
  }
@@ -47196,6 +47266,12 @@ class PraxisTable {
47196
47266
  result: this.cloneForEmit(result),
47197
47267
  tableId: this.tableId,
47198
47268
  });
47269
+ this.emitResourceEvent('export-action', 'exportAction', {
47270
+ format,
47271
+ request: this.cloneForEmit(request),
47272
+ result: this.cloneForEmit(result),
47273
+ tableId: this.tableId,
47274
+ }, null, null, 'success');
47199
47275
  this.downloadExportResult(result, request);
47200
47276
  this.showExportFeedback(result);
47201
47277
  }
@@ -47208,6 +47284,11 @@ class PraxisTable {
47208
47284
  error,
47209
47285
  tableId: this.tableId,
47210
47286
  });
47287
+ this.emitResourceEvent('export-action', 'exportAction', {
47288
+ format,
47289
+ error,
47290
+ tableId: this.tableId,
47291
+ }, null, null, 'error');
47211
47292
  try {
47212
47293
  this.snackBar.open(translateTableRuntimeText(this.i18n, 'table.export.error', 'Nao foi possivel exportar os dados.'), undefined, { duration: 4000 });
47213
47294
  }
@@ -54780,15 +54861,37 @@ class PraxisTable {
54780
54861
  }
54781
54862
  emitSelectionChange(trigger, row) {
54782
54863
  const selectedRows = this.selection.selected.slice();
54783
- this.selectionChange.emit({
54864
+ const payload = {
54784
54865
  trigger,
54785
54866
  row,
54786
54867
  selectedRows,
54787
54868
  selectedCount: selectedRows.length,
54788
54869
  tableId: this.tableId,
54789
- });
54870
+ };
54871
+ this.selectionChange.emit(payload);
54872
+ this.emitResourceEvent('selection-change', 'selectionChange', payload);
54790
54873
  this.refreshAiAssistantContextAfterSelectionChange();
54791
54874
  }
54875
+ emitResourceEvent(kind, sourceOutput, payload, surface, resourceId, phase) {
54876
+ this.resourceEvent.emit(this.buildResourceEvent(kind, sourceOutput, payload, surface, resourceId, phase));
54877
+ }
54878
+ buildResourceEvent(kind, sourceOutput, payload, surface, resourceId, phase) {
54879
+ return {
54880
+ kind,
54881
+ sourceComponentId: 'praxis-table',
54882
+ sourceOutput,
54883
+ phase,
54884
+ resourcePath: this.resourcePath || null,
54885
+ resourceKey: surface?.resourceKey ?? null,
54886
+ resourceId: resourceId ?? null,
54887
+ surface: surface ?? null,
54888
+ payload,
54889
+ context: {
54890
+ tableId: this.tableId,
54891
+ componentInstanceId: this.componentInstanceId,
54892
+ },
54893
+ };
54894
+ }
54792
54895
  getSelectedRowsSnapshot() {
54793
54896
  return Array.isArray(this.selection?.selected)
54794
54897
  ? this.selection.selected.slice()
@@ -55764,7 +55867,7 @@ class PraxisTable {
55764
55867
  this.removeViewportChangeListeners = null;
55765
55868
  }
55766
55869
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisTable, deps: [{ token: i0.ChangeDetectorRef }, { token: i3$3.SettingsPanelService }, { token: i1.GenericCrudService }, { token: TableDefaultsProvider }, { token: FilterConfigService }, { token: DataFormattingService }, { token: i6$2.PraxisDialog }, { token: i2$2.MatSnackBar }, { token: ASYNC_CONFIG_STORAGE }, { token: CONNECTION_STORAGE }, { token: i0.ElementRef }, { token: i1.GlobalConfigService }, { token: i0.Injector }, { token: i1.ComponentKeyService }, { token: i1.LoadingOrchestrator }, { token: i1.GlobalActionService }, { token: PRAXIS_LOADING_RENDERER, optional: true }, { token: i6$1.ActivatedRoute, optional: true }, { token: i1.LoggerService, optional: true }, { token: AnalyticsTableStatsApiService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
55767
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisTable, isStandalone: true, selector: "praxis-table", inputs: { config: "config", resourcePath: "resourcePath", data: "data", tableId: "tableId", componentInstanceId: "componentInstanceId", configPersistenceStrategy: "configPersistenceStrategy", title: "title", subtitle: "subtitle", icon: "icon", autoDelete: "autoDelete", notifyIfOutdated: "notifyIfOutdated", snoozeMs: "snoozeMs", autoOpenSettingsOnOutdated: "autoOpenSettingsOnOutdated", crudContext: "crudContext", filterCriteria: "filterCriteria", queryContext: "queryContext", aiContext: "aiContext", aiAssistantVoiceInputMode: "aiAssistantVoiceInputMode", aiAssistantVoiceLanguage: "aiAssistantVoiceLanguage", horizontalScroll: "horizontalScroll", enableCustomization: ["enableCustomization", "enableCustomization", booleanAttribute], dense: "dense" }, outputs: { rowClick: "rowClick", widgetEvent: "widgetEvent", 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" }, host: { properties: { "class.density-compact": "this.hostDensityCompactClass", "class.density-comfortable": "this.hostDensityComfortableClass", "class.density-spacious": "this.hostDensitySpaciousClass", "class.row-borders": "this.hostRowBordersClass", "class.col-borders": "this.hostColumnBordersClass" } }, providers: [
55870
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: PraxisTable, isStandalone: true, selector: "praxis-table", inputs: { config: "config", resourcePath: "resourcePath", data: "data", tableId: "tableId", componentInstanceId: "componentInstanceId", configPersistenceStrategy: "configPersistenceStrategy", title: "title", subtitle: "subtitle", icon: "icon", autoDelete: "autoDelete", notifyIfOutdated: "notifyIfOutdated", snoozeMs: "snoozeMs", autoOpenSettingsOnOutdated: "autoOpenSettingsOnOutdated", crudContext: "crudContext", filterCriteria: "filterCriteria", queryContext: "queryContext", aiContext: "aiContext", aiAssistantVoiceInputMode: "aiAssistantVoiceInputMode", aiAssistantVoiceLanguage: "aiAssistantVoiceLanguage", horizontalScroll: "horizontalScroll", enableCustomization: ["enableCustomization", "enableCustomization", booleanAttribute], dense: "dense" }, outputs: { 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" }, host: { properties: { "class.density-compact": "this.hostDensityCompactClass", "class.density-comfortable": "this.hostDensityComfortableClass", "class.density-spacious": "this.hostDensitySpaciousClass", "class.row-borders": "this.hostRowBordersClass", "class.col-borders": "this.hostColumnBordersClass" } }, providers: [
55768
55871
  providePraxisI18nConfig(RESOURCE_DISCOVERY_I18N_CONFIG),
55769
55872
  providePraxisI18nConfig(PRAXIS_TABLE_RUNTIME_I18N_CONFIG),
55770
55873
  MatPaginatorIntl,
@@ -55869,6 +55972,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
55869
55972
  type: Output
55870
55973
  }], widgetEvent: [{
55871
55974
  type: Output
55975
+ }], resourceEvent: [{
55976
+ type: Output
55872
55977
  }], rowDoubleClick: [{
55873
55978
  type: Output
55874
55979
  }], rowExpansionChange: [{
@@ -60974,6 +61079,16 @@ const PRAXIS_TABLE_PORTS = [
60974
61079
  description: 'Evento canonico de selecao de linhas; tambem alimenta o contexto sanitizado do assistente sem decidir intencao primaria.',
60975
61080
  exposure: { public: true, group: 'selection' },
60976
61081
  },
61082
+ {
61083
+ id: 'resourceEvent',
61084
+ label: 'Resource Event',
61085
+ direction: 'output',
61086
+ semanticKind: 'event',
61087
+ schema: { id: 'PraxisResourceEvent', kind: 'ts-type', ref: 'PraxisResourceEvent' },
61088
+ cardinality: 'stream',
61089
+ description: 'Envelope canonico para eventos de recurso, tabela e surface sem substituir os outputs legados.',
61090
+ exposure: { public: true, group: 'resource-runtime' },
61091
+ },
60977
61092
  {
60978
61093
  id: 'recordSurfaceOpen',
60979
61094
  label: 'Record Surface Open',
@@ -61166,6 +61281,12 @@ const PRAXIS_TABLE_COMPONENT_METADATA = {
61166
61281
  label: 'Evento de widget',
61167
61282
  description: 'Canal host-mediated para eventos runtime governados, incluindo abertura de superfície relacionada solicitada pelo assistente.',
61168
61283
  },
61284
+ {
61285
+ name: 'resourceEvent',
61286
+ type: 'PraxisResourceEvent',
61287
+ label: 'Evento de recurso',
61288
+ description: 'Envelope canonico emitido em paralelo para cliques, selecao, acoes, exportacao e abertura de superficies relacionadas.',
61289
+ },
61169
61290
  {
61170
61291
  name: 'rowDoubleClick',
61171
61292
  type: '{ action: string; row: any }',
@@ -1,7 +1,7 @@
1
1
  import { firstValueFrom } from 'rxjs';
2
2
  import { BaseAiAdapter, sanitizePraxisAssistantText, createComponentAuthoringContext } from '@praxisui/ai';
3
3
  import { PRAXIS_GLOBAL_ACTION_CATALOG, deepMerge } from '@praxisui/core';
4
- import { H as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, X as coerceTableComponentEditPlans, Z as compileTableComponentEditPlans, K as TASK_PRESETS, a2 as getTableComponentEditPlanCapabilities, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, G as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-DVrdSuiO.mjs';
4
+ import { H as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, X as coerceTableComponentEditPlans, Z as compileTableComponentEditPlans, K as TASK_PRESETS, a2 as getTableComponentEditPlanCapabilities, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, G as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-BKzD2XCB.mjs';
5
5
 
6
6
  const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
7
7
  mode: 'expression',
@@ -1 +1 @@
1
- export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, n as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, o as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, p as PraxisFilter, q as PraxisFilterWidgetConfigEditor, r as PraxisTable, s as PraxisTableConfigEditor, t as PraxisTableInlineAuthoringEditorComponent, u as PraxisTableToolbar, v as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, w as TABLE_COMPONENT_AI_CAPABILITIES, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, G as TABLE_COMPONENT_EDIT_PLAN_KIND, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, K as TASK_PRESETS, L as TableDefaultsProvider, O as TableRulesEditorComponent, Q as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, R as VisualFormulaBuilderComponent, U as buildTableApplyPlan, W as coerceTableComponentEditPlan, X as coerceTableComponentEditPlans, Y as compileTableComponentEditPlan, Z as compileTableComponentEditPlans, _ as createTableAuthoringDocument, $ as getActionId, a0 as getEnum, a1 as getTableCapabilities, a2 as getTableComponentEditPlanCapabilities, a3 as isTableRendererSupportedByRichContentP0, a4 as mapTableRendererToRichContentP0, a5 as normalizeTableAuthoringDocument, a6 as parseLegacyOrTableDocument, a7 as providePraxisFilterMetadata, a8 as providePraxisTableMetadata, a9 as providePraxisTableToolbarAppearance, aa as serializeTableAuthoringDocument, ab as toCanonicalTableConfig, ac as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-DVrdSuiO.mjs';
1
+ export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, n as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, o as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, p as PraxisFilter, q as PraxisFilterWidgetConfigEditor, r as PraxisTable, s as PraxisTableConfigEditor, t as PraxisTableInlineAuthoringEditorComponent, u as PraxisTableToolbar, v as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, w as TABLE_COMPONENT_AI_CAPABILITIES, x as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, y as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, z as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, G as TABLE_COMPONENT_EDIT_PLAN_KIND, I as TABLE_COMPONENT_EDIT_PLAN_VERSION, K as TASK_PRESETS, L as TableDefaultsProvider, O as TableRulesEditorComponent, Q as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, R as VisualFormulaBuilderComponent, U as buildTableApplyPlan, W as coerceTableComponentEditPlan, X as coerceTableComponentEditPlans, Y as compileTableComponentEditPlan, Z as compileTableComponentEditPlans, _ as createTableAuthoringDocument, $ as getActionId, a0 as getEnum, a1 as getTableCapabilities, a2 as getTableComponentEditPlanCapabilities, a3 as isTableRendererSupportedByRichContentP0, a4 as mapTableRendererToRichContentP0, a5 as normalizeTableAuthoringDocument, a6 as parseLegacyOrTableDocument, a7 as providePraxisFilterMetadata, a8 as providePraxisTableMetadata, a9 as providePraxisTableToolbarAppearance, aa as serializeTableAuthoringDocument, ab as toCanonicalTableConfig, ac as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-BKzD2XCB.mjs';
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "9.0.0-beta.36",
3
+ "version": "9.0.0-beta.37",
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": "^21.0.0",
7
7
  "@angular/core": "^21.0.0",
8
8
  "@angular/platform-browser": "^21.0.0",
9
- "@praxisui/ai": "^9.0.0-beta.36",
10
- "@praxisui/core": "^9.0.0-beta.36",
11
- "@praxisui/dynamic-fields": "^9.0.0-beta.36",
12
- "@praxisui/dynamic-form": "^9.0.0-beta.36",
13
- "@praxisui/metadata-editor": "^9.0.0-beta.36",
14
- "@praxisui/rich-content": "^9.0.0-beta.36",
15
- "@praxisui/settings-panel": "^9.0.0-beta.36",
16
- "@praxisui/table-rule-builder": "^9.0.0-beta.36",
9
+ "@praxisui/ai": "^9.0.0-beta.37",
10
+ "@praxisui/core": "^9.0.0-beta.37",
11
+ "@praxisui/dynamic-fields": "^9.0.0-beta.37",
12
+ "@praxisui/dynamic-form": "^9.0.0-beta.37",
13
+ "@praxisui/metadata-editor": "^9.0.0-beta.37",
14
+ "@praxisui/rich-content": "^9.0.0-beta.37",
15
+ "@praxisui/settings-panel": "^9.0.0-beta.37",
16
+ "@praxisui/table-rule-builder": "^9.0.0-beta.37",
17
17
  "@angular/cdk": "^21.0.0",
18
18
  "@angular/forms": "^21.0.0",
19
19
  "@angular/material": "^21.0.0",
20
20
  "@angular/router": "^21.0.0",
21
- "@praxisui/dialog": "^9.0.0-beta.36",
21
+ "@praxisui/dialog": "^9.0.0-beta.37",
22
22
  "rxjs": "~7.8.0"
23
23
  },
24
24
  "dependencies": {
@@ -1,5 +1,5 @@
1
1
  import * as _praxisui_core from '@praxisui/core';
2
- import { TableToolbarAppearanceConfig, TableConfig, 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, 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, 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';
2
+ import { TableToolbarAppearanceConfig, TableConfig, 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, PraxisLoadingRenderer, PraxisRuntimeComponentObservationEnvelope, TableDetailRichListNode, TableDetailCardGridNode, TableDetailCardGridCardNode, TableDetailTimelineNode, JsonLogicDataRecord, TableDetailListItemAction, TableDetailActionBarNode, TableDetailActionBarAction, TableDetailRefNode, TableDetailTemplateRefNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, PraxisExportScope, 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
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';
@@ -1091,6 +1091,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1091
1091
  private advancedFilterMetadataOverridesCache?;
1092
1092
  rowClick: EventEmitter<any>;
1093
1093
  widgetEvent: EventEmitter<any>;
1094
+ resourceEvent: EventEmitter<PraxisResourceEvent<unknown>>;
1094
1095
  rowDoubleClick: EventEmitter<any>;
1095
1096
  rowExpansionChange: EventEmitter<RowExpansionChangeEvent>;
1096
1097
  rowAction: EventEmitter<any>;
@@ -2296,6 +2297,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2296
2297
  getMasterSelectionAriaLabel(): string;
2297
2298
  private selectRowFromUserInteraction;
2298
2299
  private emitSelectionChange;
2300
+ private emitResourceEvent;
2301
+ private buildResourceEvent;
2299
2302
  private getSelectedRowsSnapshot;
2300
2303
  private getAiAssistantSelectionFields;
2301
2304
  private buildAiAssistantSelectionFilterCandidates;
@@ -2374,7 +2377,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
2374
2377
  private scheduleRowDiscoveryMarkForCheck;
2375
2378
  ngOnDestroy(): void;
2376
2379
  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; }]>;
2377
- 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"; "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>;
2380
+ 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"; "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>;
2378
2381
  static ngAcceptInputType_enableCustomization: unknown;
2379
2382
  }
2380
2383