@praxisui/crud 9.0.0-beta.7 → 9.0.0-beta.71

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/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@praxisui/crud",
3
- "version": "9.0.0-beta.7",
3
+ "version": "9.0.0-beta.71",
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.0-beta.7",
9
- "@praxisui/table": "^9.0.0-beta.7",
10
- "@praxisui/core": "^9.0.0-beta.7",
11
- "@praxisui/dynamic-fields": "^9.0.0-beta.7",
12
- "@praxisui/settings-panel": "^9.0.0-beta.7",
8
+ "@praxisui/dynamic-form": "^9.0.0-beta.71",
9
+ "@praxisui/table": "^9.0.0-beta.71",
10
+ "@praxisui/core": "^9.0.0-beta.71",
11
+ "@praxisui/dynamic-fields": "^9.0.0-beta.71",
12
+ "@praxisui/settings-panel": "^9.0.0-beta.71",
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.0-beta.7",
17
+ "@praxisui/ai": "^9.0.0-beta.71",
18
18
  "rxjs": "~7.8.0"
19
19
  },
20
20
  "dependencies": {
@@ -28,6 +28,7 @@
28
28
  "keywords": [
29
29
  "angular",
30
30
  "praxisui",
31
+ "praxis",
31
32
  "crud",
32
33
  "admin",
33
34
  "backoffice",
@@ -48,7 +49,10 @@
48
49
  "./drawer-adapter": {
49
50
  "types": "./types/praxisui-crud-drawer-adapter.d.ts",
50
51
  "default": "./fesm2022/praxisui-crud-drawer-adapter.mjs"
52
+ },
53
+ "./ai/component-registry.json": {
54
+ "default": "./ai/component-registry.json"
51
55
  }
52
56
  },
53
57
  "type": "module"
54
- }
58
+ }
@@ -1,5 +1,5 @@
1
1
  import * as _praxisui_core from '@praxisui/core';
2
- import { RowAction, ToolbarAction, ApiEndpoint, ApiUrlEntry, BackConfig, TableConfig, PraxisDataQueryContext, FormConfig, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, LoadingState, RestApiLinks, ResourceCapabilitySnapshot, GenericCrudService, AsyncConfigStorage, ComponentDocMeta, AiCapabilityCatalog, AiCapability, AiCapabilityCategory, AiValueKind, ComponentAuthoringManifest, SettingsValueProvider } from '@praxisui/core';
2
+ import { RowAction, ToolbarAction, ApiEndpoint, ApiUrlEntry, DynamicFormLayoutPolicy, BackConfig, TableConfig, PraxisDataQueryContext, FormConfig, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, LoadingState, RestApiLinks, ResourceCapabilitySnapshot, GenericCrudService, AsyncConfigStorage, ComponentDocMeta, AiCapabilityCatalog, AiCapability, AiCapabilityCategory, AiValueKind, ComponentAuthoringManifest, SettingsValueProvider } from '@praxisui/core';
3
3
  export { BackConfig } from '@praxisui/core';
4
4
  import * as _angular_core from '@angular/core';
5
5
  import { NgZone, OnChanges, EventEmitter, SimpleChanges, OnInit, Provider, AfterViewInit, OnDestroy } from '@angular/core';
@@ -53,6 +53,7 @@ interface CrudActionFormContract {
53
53
  apiEndpointKey?: ApiEndpoint | string | null;
54
54
  apiUrlEntry?: ApiUrlEntry | null;
55
55
  initialValue?: Record<string, unknown> | null;
56
+ layoutPolicy?: DynamicFormLayoutPolicy | null;
56
57
  }
57
58
  type CrudActionResolutionMode = 'inferred' | 'explicit';
58
59
  type CrudAction = (RowAction | ToolbarAction) & {
@@ -72,8 +73,13 @@ interface CrudDefaults {
72
73
  }
73
74
  interface CrudResource {
74
75
  path: string;
76
+ schemaPath?: string | null;
75
77
  idField?: string | number;
78
+ title?: string | null;
79
+ label?: string | null;
80
+ formTitle?: string | null;
76
81
  endpointKey?: ApiEndpoint;
82
+ apiUrlEntry?: ApiUrlEntry | null;
77
83
  }
78
84
  interface CrudMetadata {
79
85
  component: 'praxis-crud';
@@ -124,7 +130,9 @@ interface CrudValidationContext {
124
130
  }
125
131
 
126
132
  type CrudActionRuntimeEvent = {
133
+ action?: string;
127
134
  actionConfig?: ResourceActionCatalogItem | ResourceSurfaceCatalogItem | null;
135
+ rows?: Record<string, unknown>[];
128
136
  };
129
137
  type CrudContextAction = {
130
138
  action: string;
@@ -188,8 +196,10 @@ declare class PraxisCrudComponent implements OnChanges {
188
196
  private resourceDiscoveryInstance?;
189
197
  private actionOpenAdapterInstance?;
190
198
  private surfaceOpenAdapterInstance?;
199
+ private materializedRefreshSequence;
191
200
  private readonly global;
192
201
  private readonly surfaceService;
202
+ private readonly surfaceOutlets;
193
203
  private readonly componentKeys;
194
204
  private readonly route;
195
205
  private warnedMissingId;
@@ -203,12 +213,14 @@ declare class PraxisCrudComponent implements OnChanges {
203
213
  private collectionCapabilitiesResolvedHref;
204
214
  private collectionCapabilitiesRequestSeq;
205
215
  private currentAuthoringDocument?;
216
+ selectedRow: Record<string, unknown> | null;
206
217
  private getResourceDiscovery;
207
218
  private getActionOpenAdapter;
208
219
  private getSurfaceOpenAdapter;
209
220
  onResetPreferences(): void;
210
221
  onTableRowClick(event: unknown): void;
211
222
  onTableSelectionChange(event: unknown): void;
223
+ onBulkAction(event: CrudActionRuntimeEvent): Promise<void>;
212
224
  ngOnChanges(changes: SimpleChanges): void;
213
225
  onAction(action: string, row?: Record<string, unknown>, runtimeEvent?: CrudActionRuntimeEvent): Promise<void>;
214
226
  private hasExplicitOpenBinding;
@@ -226,6 +238,11 @@ declare class PraxisCrudComponent implements OnChanges {
226
238
  onConfigureRequested(): void;
227
239
  private tryHandleCanonicalDeleteAction;
228
240
  private refreshTable;
241
+ private tryRefreshMaterializedLocalData;
242
+ private isCurrentMaterializedRefresh;
243
+ private resolveMaterializedReadUrl;
244
+ private unwrapRestData;
245
+ private extractCollectionData;
229
246
  private emitTableRuntimeConfigSnapshot;
230
247
  private applyResolvedCrudState;
231
248
  private assignTableConfigForBinding;
@@ -234,6 +251,10 @@ declare class PraxisCrudComponent implements OnChanges {
234
251
  private syncRuntimeBindings;
235
252
  private resolveQueryContext;
236
253
  private resolveFilterCriteria;
254
+ private extractRowFromEvent;
255
+ private extractSelectedRowFromEvent;
256
+ private extractSelectedRowFromBulkAction;
257
+ private resolveSelectedRowForAction;
237
258
  private tryOpenDiscoveredCrudSurface;
238
259
  private resolveDiscoveredSurfaceCatalog;
239
260
  private tryOpenDiscoveredWorkflowAction;
@@ -251,6 +272,9 @@ declare class PraxisCrudComponent implements OnChanges {
251
272
  private handleDiscoveredSurfaceResult;
252
273
  private buildEffectiveTableConfig;
253
274
  private isAddLike;
275
+ private normalizeCrudActionName;
276
+ private shouldCanonicalizeToolbarCreateAction;
277
+ private isCreateActionAliasName;
254
278
  private buildTableCrudContext;
255
279
  private readonly openCrudAuthoringFromTable;
256
280
  private applyCrudAuthoringPayload;
@@ -306,6 +330,7 @@ declare class CrudLauncherService {
306
330
  private buildRoute;
307
331
  private mapInputs;
308
332
  private resolveActionForLaunch;
333
+ private resolveSubmitUrlTemplate;
309
334
  private resolveActionFormContract;
310
335
  resolveRuntimeContract(action: CrudAction, row: Record<string, unknown> | undefined, metadata: CrudMetadata, runtime?: {
311
336
  capabilities?: ResourceCapabilitySnapshot | null;
@@ -316,10 +341,14 @@ declare class CrudLauncherService {
316
341
  submitMethod?: string | null;
317
342
  apiEndpointKey?: unknown;
318
343
  apiUrlEntry?: unknown;
344
+ layoutPolicy?: unknown;
319
345
  };
320
346
  private buildInferredFormId;
321
347
  private isCanonicalCrudAction;
348
+ private normalizeActionForLaunch;
349
+ private normalizeCrudOperationName;
322
350
  private isExplicitCrudAction;
351
+ private defaultInferredLayoutPolicy;
323
352
  private mergeCrudOverrides;
324
353
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CrudLauncherService, never>;
325
354
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<CrudLauncherService>;
@@ -333,6 +362,7 @@ declare class DynamicFormDialogHostComponent implements OnInit {
333
362
  private configStorage;
334
363
  formComp?: PraxisDynamicForm;
335
364
  modal: any;
365
+ presentation: 'modal' | 'drawer';
336
366
  maximized: boolean;
337
367
  private initialSize;
338
368
  private rememberState;
@@ -347,14 +377,22 @@ declare class DynamicFormDialogHostComponent implements OnInit {
347
377
  submitMethod?: string | null;
348
378
  apiEndpointKey?: ApiEndpoint | string | null;
349
379
  apiUrlEntry?: ApiUrlEntry | null;
380
+ layoutPolicy?: DynamicFormLayoutPolicy | null;
381
+ formConfig: FormConfig;
350
382
  formActions?: FormConfig['actions'];
383
+ readonly formConfigPersistenceStrategy = "input-first";
351
384
  mode: 'create' | 'edit' | 'view';
352
385
  backConfig?: BackConfig;
353
386
  private idField;
354
387
  texts: Record<string, string>;
355
388
  constructor(dialogRef: DialogRef<DynamicFormDialogHostComponent>, data: any, dialogService: DialogService, crud: GenericCrudService<any>, configStorage: AsyncConfigStorage);
356
389
  private extractInitialValue;
390
+ private resolveFormConfig;
391
+ get dialogTitle(): string;
392
+ private resolveActionDialogTitle;
393
+ private resolveResourceTitle;
357
394
  private resolveFormActions;
395
+ private resolveLayoutPolicy;
358
396
  private resolveSubmitLabel;
359
397
  ngOnInit(): void;
360
398
  onSave(result: unknown): void;