@praxisui/crud 9.0.4-rc.30 → 9.0.4-rc.32
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-08-
|
|
3
|
+
"generatedAt": "2026-08-05T09:56:10.324Z",
|
|
4
4
|
"packageName": "@praxisui/crud",
|
|
5
|
-
"packageVersion": "9.0.4-rc.
|
|
5
|
+
"packageVersion": "9.0.4-rc.32",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 2,
|
|
@@ -6,7 +6,7 @@ import { Router, ActivatedRoute, RouterLink } from '@angular/router';
|
|
|
6
6
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
7
7
|
import { firstValueFrom, BehaviorSubject, Subscription } from 'rxjs';
|
|
8
8
|
import * as i2$1 from '@praxisui/core';
|
|
9
|
-
import { ASYNC_CONFIG_STORAGE, GlobalConfigService, CrudOperationResolutionService, fillUndefined, SETTINGS_PANEL_DATA, PraxisI18nService, PraxisIconDirective, providePraxisI18nConfig, createDefaultTableConfig, EnterpriseRuntimeContextService, GLOBAL_SURFACE_SERVICE, SurfaceOutletRegistryService, ComponentKeyService, ResourceDiscoveryService, ResourceActionOpenAdapterService, ResourceSurfaceOpenAdapterService, normalizeSurfaceOperationContext, translateUnavailableWorkflowMessage, EmptyStateCardComponent, RESOURCE_DISCOVERY_I18N_CONFIG, SURFACE_DRAWER_REF, SURFACE_DRAWER_CONTENT_DATA, PraxisIconButtonComponent, PraxisResourceIdentityComponent, GenericCrudService, ComponentMetadataRegistry } from '@praxisui/core';
|
|
9
|
+
import { ASYNC_CONFIG_STORAGE, GlobalConfigService, CrudOperationResolutionService, LoggerService, SurfaceNavigationError, fillUndefined, SETTINGS_PANEL_DATA, PraxisI18nService, PraxisIconDirective, providePraxisI18nConfig, createDefaultTableConfig, EnterpriseRuntimeContextService, GLOBAL_SURFACE_SERVICE, SurfaceOutletRegistryService, ComponentKeyService, ResourceDiscoveryService, ResourceActionOpenAdapterService, ResourceSurfaceOpenAdapterService, normalizeSurfaceOperationContext, translateUnavailableWorkflowMessage, isSurfaceNavigationError, translateSurfaceNavigationRejected, EmptyStateCardComponent, RESOURCE_DISCOVERY_I18N_CONFIG, SURFACE_DRAWER_REF, SURFACE_DRAWER_CONTENT_DATA, PraxisIconButtonComponent, PraxisResourceIdentityComponent, GenericCrudService, ComponentMetadataRegistry } from '@praxisui/core';
|
|
10
10
|
import { SettingsPanelService } from '@praxisui/settings-panel';
|
|
11
11
|
import { PraxisTableInlineAuthoringEditorComponent, PraxisTable } from '@praxisui/table';
|
|
12
12
|
import { ConfirmDialogComponent } from '@praxisui/dynamic-fields';
|
|
@@ -103,6 +103,7 @@ class CrudLauncherService {
|
|
|
103
103
|
storage = inject(ASYNC_CONFIG_STORAGE);
|
|
104
104
|
global = inject(GlobalConfigService);
|
|
105
105
|
operationResolver = inject(CrudOperationResolutionService);
|
|
106
|
+
logger = inject(LoggerService, { optional: true });
|
|
106
107
|
dialogHostPromise;
|
|
107
108
|
nextSurfaceFrameId = 0;
|
|
108
109
|
drawerAdapter = (() => {
|
|
@@ -168,7 +169,23 @@ class CrudLauncherService {
|
|
|
168
169
|
},
|
|
169
170
|
});
|
|
170
171
|
if (!frameRef) {
|
|
171
|
-
|
|
172
|
+
const error = new SurfaceNavigationError('SURFACE_SESSION_NAVIGATION_REJECTED', 'push', frameId);
|
|
173
|
+
this.logger?.warn('Surface session rejected nested CRUD frame.', {
|
|
174
|
+
context: {
|
|
175
|
+
lib: '@praxisui/crud',
|
|
176
|
+
component: 'CrudLauncherService',
|
|
177
|
+
actionId: `crud.${String(actionForLaunch.action || 'unknown')}`,
|
|
178
|
+
},
|
|
179
|
+
data: {
|
|
180
|
+
code: error.code,
|
|
181
|
+
operation: error.operation,
|
|
182
|
+
frameId: error.frameId,
|
|
183
|
+
formId: actionForLaunch.formId,
|
|
184
|
+
openMode: mode,
|
|
185
|
+
},
|
|
186
|
+
throttleKey: `${error.code}:crud:${frameId}`,
|
|
187
|
+
});
|
|
188
|
+
throw error;
|
|
172
189
|
}
|
|
173
190
|
this.bindSurfaceFrameLifecycle(frameRef, drawerCallbacks);
|
|
174
191
|
return { mode };
|
|
@@ -4020,6 +4037,7 @@ class PraxisCrudComponent {
|
|
|
4020
4037
|
}
|
|
4021
4038
|
catch (err) {
|
|
4022
4039
|
this.error.emit(err);
|
|
4040
|
+
this.notifySurfaceNavigationFailure(err);
|
|
4023
4041
|
}
|
|
4024
4042
|
finally {
|
|
4025
4043
|
this.openingActionLabel.set(null);
|
|
@@ -4521,18 +4539,23 @@ class PraxisCrudComponent {
|
|
|
4521
4539
|
const handledInline = await this.surfaceOutlets.tryActivate(payload, surfaceContext);
|
|
4522
4540
|
openPromise = handledInline ? Promise.resolve(undefined) : Promise.resolve(this.surfaceService.open(payload, surfaceContext));
|
|
4523
4541
|
}
|
|
4524
|
-
catch {
|
|
4542
|
+
catch (error) {
|
|
4543
|
+
if (this.notifySurfaceNavigationFailure(error)) {
|
|
4544
|
+
this.error.emit(error);
|
|
4545
|
+
return true;
|
|
4546
|
+
}
|
|
4525
4547
|
return false;
|
|
4526
4548
|
}
|
|
4527
|
-
this.afterOpen.emit({
|
|
4528
|
-
mode: this.mapSurfacePresentationToCrudMode(payload?.presentation),
|
|
4529
|
-
action,
|
|
4530
|
-
});
|
|
4531
4549
|
try {
|
|
4532
4550
|
this.bindDiscoveredSurfaceLifecycle(await openPromise);
|
|
4551
|
+
this.afterOpen.emit({
|
|
4552
|
+
mode: this.mapSurfacePresentationToCrudMode(payload?.presentation),
|
|
4553
|
+
action,
|
|
4554
|
+
});
|
|
4533
4555
|
}
|
|
4534
4556
|
catch (err) {
|
|
4535
4557
|
this.error.emit(err);
|
|
4558
|
+
this.notifySurfaceNavigationFailure(err);
|
|
4536
4559
|
}
|
|
4537
4560
|
return true;
|
|
4538
4561
|
}
|
|
@@ -4580,7 +4603,11 @@ class PraxisCrudComponent {
|
|
|
4580
4603
|
group: catalog?.group ?? null,
|
|
4581
4604
|
});
|
|
4582
4605
|
}
|
|
4583
|
-
catch {
|
|
4606
|
+
catch (error) {
|
|
4607
|
+
if (this.notifySurfaceNavigationFailure(error)) {
|
|
4608
|
+
this.error.emit(error);
|
|
4609
|
+
return true;
|
|
4610
|
+
}
|
|
4584
4611
|
return false;
|
|
4585
4612
|
}
|
|
4586
4613
|
let openPromise;
|
|
@@ -4604,16 +4631,31 @@ class PraxisCrudComponent {
|
|
|
4604
4631
|
},
|
|
4605
4632
|
}));
|
|
4606
4633
|
}
|
|
4607
|
-
catch {
|
|
4634
|
+
catch (error) {
|
|
4635
|
+
if (this.notifySurfaceNavigationFailure(error)) {
|
|
4636
|
+
this.error.emit(error);
|
|
4637
|
+
return true;
|
|
4638
|
+
}
|
|
4608
4639
|
return false;
|
|
4609
4640
|
}
|
|
4610
|
-
|
|
4611
|
-
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4641
|
+
try {
|
|
4642
|
+
this.handleDiscoveredSurfaceResult(await openPromise);
|
|
4643
|
+
this.afterOpen.emit({
|
|
4644
|
+
mode: this.mapSurfacePresentationToCrudMode(payload?.presentation),
|
|
4645
|
+
action,
|
|
4646
|
+
});
|
|
4647
|
+
}
|
|
4648
|
+
catch (err) {
|
|
4649
|
+
this.error.emit(err);
|
|
4650
|
+
this.notifySurfaceNavigationFailure(err);
|
|
4651
|
+
}
|
|
4652
|
+
return true;
|
|
4653
|
+
}
|
|
4654
|
+
notifySurfaceNavigationFailure(error) {
|
|
4655
|
+
if (!isSurfaceNavigationError(error)) {
|
|
4656
|
+
return false;
|
|
4657
|
+
}
|
|
4658
|
+
this.snack.open(translateSurfaceNavigationRejected(this.i18n), undefined, { duration: 4500 });
|
|
4617
4659
|
return true;
|
|
4618
4660
|
}
|
|
4619
4661
|
async resolveDiscoveredActionCatalog(row) {
|
package/package.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/crud",
|
|
3
|
-
"version": "9.0.4-rc.
|
|
3
|
+
"version": "9.0.4-rc.32",
|
|
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": "^9.0.4-rc.
|
|
9
|
-
"@praxisui/table": "^9.0.4-rc.
|
|
10
|
-
"@praxisui/core": "^9.0.4-rc.
|
|
11
|
-
"@praxisui/dynamic-fields": "^9.0.4-rc.
|
|
12
|
-
"@praxisui/settings-panel": "^9.0.4-rc.
|
|
8
|
+
"@praxisui/dynamic-form": "^9.0.4-rc.32",
|
|
9
|
+
"@praxisui/table": "^9.0.4-rc.32",
|
|
10
|
+
"@praxisui/core": "^9.0.4-rc.32",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.4-rc.32",
|
|
12
|
+
"@praxisui/settings-panel": "^9.0.4-rc.32",
|
|
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": "^9.0.4-rc.
|
|
17
|
+
"@praxisui/ai": "^9.0.4-rc.32",
|
|
18
18
|
"rxjs": "~7.8.0"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
package/types/praxisui-crud.d.ts
CHANGED
|
@@ -290,6 +290,7 @@ declare class PraxisCrudComponent implements OnChanges {
|
|
|
290
290
|
private tryOpenDiscoveredCrudSurface;
|
|
291
291
|
private resolveDiscoveredSurfaceCatalog;
|
|
292
292
|
private tryOpenDiscoveredWorkflowAction;
|
|
293
|
+
private notifySurfaceNavigationFailure;
|
|
293
294
|
private resolveDiscoveredActionCatalog;
|
|
294
295
|
private selectDiscoveredWorkflowAction;
|
|
295
296
|
private resolveProvidedWorkflowAction;
|
|
@@ -360,6 +361,7 @@ declare class CrudLauncherService {
|
|
|
360
361
|
private readonly storage;
|
|
361
362
|
private readonly global;
|
|
362
363
|
private readonly operationResolver;
|
|
364
|
+
private readonly logger;
|
|
363
365
|
private dialogHostPromise?;
|
|
364
366
|
private nextSurfaceFrameId;
|
|
365
367
|
private readonly drawerAdapter;
|