@praxisui/crud 10.0.0-rc.27 → 10.0.0-rc.29

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-10-15T22:42:56.841Z",
3
+ "generatedAt": "2026-10-16T14:27:38.517Z",
4
4
  "packageName": "@praxisui/crud",
5
- "packageVersion": "10.0.0-rc.27",
5
+ "packageVersion": "10.0.0-rc.29",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 2,
@@ -10801,7 +10801,7 @@ class PraxisCrudComponent {
10801
10801
  if (this.tryRefreshMaterializedLocalData()) {
10802
10802
  return;
10803
10803
  }
10804
- this.table.refetch();
10804
+ this.table?.refetch?.();
10805
10805
  }
10806
10806
  resolveSurfaceRuntime() {
10807
10807
  const candidate = this.context?.['surfaceRuntime'];
@@ -11292,7 +11292,17 @@ class PraxisCrudComponent {
11292
11292
  return true;
11293
11293
  }
11294
11294
  try {
11295
- this.handleDiscoveredSurfaceResult(await openPromise);
11295
+ const openedRef = await openPromise;
11296
+ if (openedRef &&
11297
+ typeof openedRef === 'object' &&
11298
+ (typeof openedRef.afterClosed === 'function' ||
11299
+ typeof openedRef.result$?.subscribe === 'function' ||
11300
+ typeof openedRef.closed$?.subscribe === 'function')) {
11301
+ this.bindDiscoveredSurfaceLifecycle(openedRef);
11302
+ }
11303
+ else {
11304
+ this.handleDiscoveredSurfaceResult(openedRef);
11305
+ }
11296
11306
  this.afterOpen.emit({
11297
11307
  mode: this.mapSurfacePresentationToCrudMode(payload?.presentation),
11298
11308
  action,
@@ -11464,12 +11474,14 @@ class PraxisCrudComponent {
11464
11474
  handleDiscoveredSurfaceResult(result) {
11465
11475
  const data = (result?.data || {});
11466
11476
  const idField = this.getIdField();
11467
- if (result?.type === 'save') {
11477
+ const type = typeof result?.type === 'string' ? result.type.trim().toLowerCase() : '';
11478
+ if (type === 'save' ||
11479
+ (result?.kind === 'completed' && (!type || type === 'save'))) {
11468
11480
  const id = data?.[idField];
11469
11481
  this.afterSave.emit({ id, data });
11470
11482
  this.refreshTable();
11471
11483
  }
11472
- if (result?.type === 'delete') {
11484
+ if (type === 'delete') {
11473
11485
  const id = data?.[idField];
11474
11486
  this.afterDelete.emit({ id });
11475
11487
  this.refreshTable();
@@ -11481,9 +11493,33 @@ class PraxisCrudComponent {
11481
11493
  return;
11482
11494
  let terminalResultHandled = false;
11483
11495
  let closeHandled = false;
11496
+ const isCompletedSaveOrDelete = (candidate) => {
11497
+ if (!candidate || typeof candidate !== 'object') {
11498
+ return false;
11499
+ }
11500
+ const outcome = candidate;
11501
+ if (outcome.kind === 'dismissed' ||
11502
+ outcome.kind === 'notification' ||
11503
+ outcome.kind === 'failed') {
11504
+ return false;
11505
+ }
11506
+ const type = typeof outcome.type === 'string'
11507
+ ? outcome.type.trim().toLowerCase()
11508
+ : '';
11509
+ if (type === 'cancel' ||
11510
+ type === 'close' ||
11511
+ type === 'back' ||
11512
+ type === 'esc' ||
11513
+ type === 'backdrop') {
11514
+ return false;
11515
+ }
11516
+ if (outcome.kind === 'completed') {
11517
+ return !type || type === 'save' || type === 'delete';
11518
+ }
11519
+ return outcome.kind == null && (type === 'save' || type === 'delete');
11520
+ };
11484
11521
  const handleResult = (result) => {
11485
- const type = String(result?.type || '');
11486
- if (terminalResultHandled || (type !== 'save' && type !== 'delete'))
11522
+ if (terminalResultHandled || !isCompletedSaveOrDelete(result))
11487
11523
  return;
11488
11524
  terminalResultHandled = true;
11489
11525
  this.handleDiscoveredSurfaceResult(result);
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@praxisui/crud",
3
- "version": "10.0.0-rc.27",
3
+ "version": "10.0.0-rc.29",
4
4
  "description": "CRUD building blocks for Praxis UI: integrates dynamic forms and tables with unified configuration and services.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
7
7
  "@angular/core": "^21.0.0",
8
- "@praxisui/dynamic-form": "^10.0.0-rc.27",
9
- "@praxisui/table": "^10.0.0-rc.27",
10
- "@praxisui/core": "^10.0.0-rc.27",
11
- "@praxisui/dynamic-fields": "^10.0.0-rc.27",
12
- "@praxisui/settings-panel": "^10.0.0-rc.27",
8
+ "@praxisui/dynamic-form": "^10.0.0-rc.29",
9
+ "@praxisui/table": "^10.0.0-rc.29",
10
+ "@praxisui/core": "^10.0.0-rc.29",
11
+ "@praxisui/dynamic-fields": "^10.0.0-rc.29",
12
+ "@praxisui/settings-panel": "^10.0.0-rc.29",
13
13
  "@angular/cdk": "^21.0.0",
14
14
  "@angular/forms": "^21.0.0",
15
15
  "@angular/material": "^21.0.0",
16
16
  "@angular/router": "^21.0.0",
17
- "@praxisui/ai": "^10.0.0-rc.27",
17
+ "@praxisui/ai": "^10.0.0-rc.29",
18
18
  "rxjs": "~7.8.0"
19
19
  },
20
20
  "dependencies": {