@praxisui/crud 9.0.4-rc.12 → 9.0.4-rc.13
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/ai/component-registry.json +2 -2
- package/fesm2022/praxisui-crud.mjs +119 -63
- package/package.json +7 -7
- package/types/praxisui-crud.d.ts +8 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-03T16:02:34.468Z",
|
|
4
4
|
"packageName": "@praxisui/crud",
|
|
5
|
-
"packageVersion": "9.0.4-rc.
|
|
5
|
+
"packageVersion": "9.0.4-rc.13",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 2,
|
|
@@ -103,6 +103,7 @@ class CrudLauncherService {
|
|
|
103
103
|
storage = inject(ASYNC_CONFIG_STORAGE);
|
|
104
104
|
global = inject(GlobalConfigService);
|
|
105
105
|
operationResolver = inject(CrudOperationResolutionService);
|
|
106
|
+
dialogHostPromise;
|
|
106
107
|
drawerAdapter = (() => {
|
|
107
108
|
try {
|
|
108
109
|
return inject(CRUD_DRAWER_ADAPTER);
|
|
@@ -112,6 +113,9 @@ class CrudLauncherService {
|
|
|
112
113
|
}
|
|
113
114
|
})();
|
|
114
115
|
async launch(action, row, metadata, componentKeyId, drawerCallbacks, runtime) {
|
|
116
|
+
const prefetchedDialogHost = this.isLikelyOverlayAction(action, metadata)
|
|
117
|
+
? this.loadDialogHost()
|
|
118
|
+
: undefined;
|
|
115
119
|
// Carregar overrides de CRUD (se houver) e mesclar em uma cópia local
|
|
116
120
|
const merged = await this.mergeCrudOverrides(metadata, action, componentKeyId || undefined);
|
|
117
121
|
merged.action = this.normalizeActionForLaunch(merged.action);
|
|
@@ -177,7 +181,7 @@ class CrudLauncherService {
|
|
|
177
181
|
backdropClasses.push('pfx-transparent-backdrop');
|
|
178
182
|
}
|
|
179
183
|
const mergedBackdropClasses = mergeClassList(backdropClasses, modalCfg.backdropClass);
|
|
180
|
-
const ref = await this.dialog.openAsync(() =>
|
|
184
|
+
const ref = await this.dialog.openAsync(() => prefetchedDialogHost ?? this.loadDialogHost(), {
|
|
181
185
|
...modalCfg,
|
|
182
186
|
panelClass: panelClasses,
|
|
183
187
|
backdropClass: mergedBackdropClasses,
|
|
@@ -256,6 +260,13 @@ class CrudLauncherService {
|
|
|
256
260
|
return 'route';
|
|
257
261
|
}
|
|
258
262
|
}
|
|
263
|
+
isLikelyOverlayAction(action, metadata) {
|
|
264
|
+
const configuredMode = action.openMode ?? metadata.defaults?.openMode;
|
|
265
|
+
return configuredMode === 'drawer' || configuredMode === 'modal';
|
|
266
|
+
}
|
|
267
|
+
loadDialogHost() {
|
|
268
|
+
return this.dialogHostPromise ??= Promise.resolve().then(function () { return dynamicFormDialogHost_component; }).then((module) => module.DynamicFormDialogHostComponent);
|
|
269
|
+
}
|
|
259
270
|
buildRoute(action, row, metadata) {
|
|
260
271
|
let route = action.route;
|
|
261
272
|
const query = {};
|
|
@@ -896,6 +907,8 @@ const PRAXIS_CRUD_RUNTIME_I18N_CONFIG = {
|
|
|
896
907
|
'crud.actions.view': 'Ver',
|
|
897
908
|
'crud.actions.edit': 'Editar',
|
|
898
909
|
'crud.actions.delete': 'Excluir',
|
|
910
|
+
'crud.actions.default': 'ação',
|
|
911
|
+
'crud.actions.opening': 'Abrindo {action}…',
|
|
899
912
|
'crud.dialog.recordContextLabel': 'Registro em edição',
|
|
900
913
|
'crud.delete.confirmMessage': 'Esta ação não pode ser desfeita. Deseja continuar?',
|
|
901
914
|
'crud.delete.cancel': 'Cancelar',
|
|
@@ -914,6 +927,8 @@ const PRAXIS_CRUD_RUNTIME_I18N_CONFIG = {
|
|
|
914
927
|
'crud.actions.view': 'View',
|
|
915
928
|
'crud.actions.edit': 'Edit',
|
|
916
929
|
'crud.actions.delete': 'Delete',
|
|
930
|
+
'crud.actions.default': 'action',
|
|
931
|
+
'crud.actions.opening': 'Opening {action}…',
|
|
917
932
|
'crud.dialog.recordContextLabel': 'Record being edited',
|
|
918
933
|
'crud.delete.confirmMessage': 'This action cannot be undone. Do you want to continue?',
|
|
919
934
|
'crud.delete.cancel': 'Cancel',
|
|
@@ -3664,6 +3679,7 @@ class PraxisCrudComponent {
|
|
|
3664
3679
|
tableQueryContext = null;
|
|
3665
3680
|
tableFilterCriteria = {};
|
|
3666
3681
|
tableCrudContext;
|
|
3682
|
+
openingActionLabel = signal(null, ...(ngDevMode ? [{ debugName: "openingActionLabel" }] : /* istanbul ignore next */ []));
|
|
3667
3683
|
launcher = inject(CrudLauncherService);
|
|
3668
3684
|
http = inject(HttpClient);
|
|
3669
3685
|
destroyRef = inject(DestroyRef);
|
|
@@ -3815,6 +3831,10 @@ class PraxisCrudComponent {
|
|
|
3815
3831
|
}
|
|
3816
3832
|
}
|
|
3817
3833
|
async onAction(action, row, runtimeEvent) {
|
|
3834
|
+
if (this.openingActionLabel()) {
|
|
3835
|
+
return;
|
|
3836
|
+
}
|
|
3837
|
+
this.openingActionLabel.set(this.resolveOpeningActionLabel(action, runtimeEvent));
|
|
3818
3838
|
try {
|
|
3819
3839
|
const normalizedAction = this.normalizeCrudActionName(action);
|
|
3820
3840
|
const contextualRow = row ?? this.resolveSelectedRowForAction(normalizedAction);
|
|
@@ -3920,6 +3940,26 @@ class PraxisCrudComponent {
|
|
|
3920
3940
|
catch (err) {
|
|
3921
3941
|
this.error.emit(err);
|
|
3922
3942
|
}
|
|
3943
|
+
finally {
|
|
3944
|
+
this.openingActionLabel.set(null);
|
|
3945
|
+
}
|
|
3946
|
+
}
|
|
3947
|
+
getOpeningActionStatus(actionLabel) {
|
|
3948
|
+
return this.txWithParams('crud.actions.opening', 'Abrindo {action}…', { action: actionLabel });
|
|
3949
|
+
}
|
|
3950
|
+
resolveOpeningActionLabel(action, runtimeEvent) {
|
|
3951
|
+
const configuredLabel = String(runtimeEvent?.actionConfig?.label || '').trim();
|
|
3952
|
+
if (configuredLabel) {
|
|
3953
|
+
return configuredLabel;
|
|
3954
|
+
}
|
|
3955
|
+
const normalized = this.normalizeCrudActionName(action);
|
|
3956
|
+
if (normalized === 'create'
|
|
3957
|
+
|| normalized === 'view'
|
|
3958
|
+
|| normalized === 'edit'
|
|
3959
|
+
|| normalized === 'delete') {
|
|
3960
|
+
return this.getCrudActionLabel(normalized);
|
|
3961
|
+
}
|
|
3962
|
+
return String(action || '').trim() || this.tx('crud.actions.default', 'ação');
|
|
3923
3963
|
}
|
|
3924
3964
|
hasExplicitOpenBinding(action) {
|
|
3925
3965
|
const mode = action.openMode;
|
|
@@ -5190,38 +5230,46 @@ class PraxisCrudComponent {
|
|
|
5190
5230
|
providePraxisI18nConfig(RESOURCE_DISCOVERY_I18N_CONFIG),
|
|
5191
5231
|
providePraxisI18nConfig(PRAXIS_CRUD_RUNTIME_I18N_CONFIG),
|
|
5192
5232
|
], viewQueries: [{ propertyName: "table", first: true, predicate: PraxisTable, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
[filterCriteria]="tableFilterCriteria"
|
|
5200
|
-
[tableId]="crudId || 'default'"
|
|
5201
|
-
[crudContext]="tableCrudContext"
|
|
5202
|
-
[enableCustomization]="enableCustomization"
|
|
5203
|
-
[authoringCapability]="authoringCapability"
|
|
5204
|
-
(rowClick)="onTableRowClick($event)"
|
|
5205
|
-
(selectionChange)="onTableSelectionChange($event)"
|
|
5206
|
-
(rowAction)="onAction($event.action, $event.row, $event)"
|
|
5207
|
-
(toolbarAction)="onToolbarAction($event)"
|
|
5208
|
-
(bulkAction)="onBulkAction($event)"
|
|
5209
|
-
(collectionLinksChange)="onCollectionLinksChange($event)"
|
|
5210
|
-
(reset)="onResetPreferences()"
|
|
5211
|
-
(metadataChange)="onTableMetadataChange()"
|
|
5212
|
-
(loadingStateChange)="onTableLoadingStateChange($event)"
|
|
5213
|
-
></praxis-table>
|
|
5214
|
-
} @else {
|
|
5215
|
-
@if (isCustomizationAvailable()) {
|
|
5216
|
-
<praxis-empty-state-card
|
|
5217
|
-
icon="table_rows"
|
|
5218
|
-
[title]="getEmptyStateTitle()"
|
|
5219
|
-
[description]="getEmptyStateDescription()"
|
|
5220
|
-
[primaryAction]="{ label: getEmptyStatePrimaryAction(), icon: 'bolt', action: onConfigureRequested.bind(this) }"
|
|
5221
|
-
/>
|
|
5233
|
+
<div class="praxis-crud-runtime" [attr.aria-busy]="openingActionLabel() ? 'true' : null">
|
|
5234
|
+
@if (openingActionLabel(); as actionLabel) {
|
|
5235
|
+
<div class="praxis-crud-opening-status" role="status" aria-live="polite" data-testid="praxis-crud-opening-status">
|
|
5236
|
+
<span class="praxis-crud-opening-status__spinner" aria-hidden="true"></span>
|
|
5237
|
+
<span>{{ getOpeningActionStatus(actionLabel) }}</span>
|
|
5238
|
+
</div>
|
|
5222
5239
|
}
|
|
5223
|
-
|
|
5224
|
-
|
|
5240
|
+
@if (shouldRenderTable(resolvedMetadata)) {
|
|
5241
|
+
<praxis-table
|
|
5242
|
+
[config]="tableConfigForBinding"
|
|
5243
|
+
[resourcePath]="resolveResourcePath(resolvedMetadata)"
|
|
5244
|
+
[data]="resolveTableData(resolvedMetadata)"
|
|
5245
|
+
[queryContext]="tableQueryContext"
|
|
5246
|
+
[filterCriteria]="tableFilterCriteria"
|
|
5247
|
+
[tableId]="crudId || 'default'"
|
|
5248
|
+
[crudContext]="tableCrudContext"
|
|
5249
|
+
[enableCustomization]="enableCustomization"
|
|
5250
|
+
[authoringCapability]="authoringCapability"
|
|
5251
|
+
(rowClick)="onTableRowClick($event)"
|
|
5252
|
+
(selectionChange)="onTableSelectionChange($event)"
|
|
5253
|
+
(rowAction)="onAction($event.action, $event.row, $event)"
|
|
5254
|
+
(toolbarAction)="onToolbarAction($event)"
|
|
5255
|
+
(bulkAction)="onBulkAction($event)"
|
|
5256
|
+
(collectionLinksChange)="onCollectionLinksChange($event)"
|
|
5257
|
+
(reset)="onResetPreferences()"
|
|
5258
|
+
(metadataChange)="onTableMetadataChange()"
|
|
5259
|
+
(loadingStateChange)="onTableLoadingStateChange($event)"
|
|
5260
|
+
></praxis-table>
|
|
5261
|
+
} @else {
|
|
5262
|
+
@if (isCustomizationAvailable()) {
|
|
5263
|
+
<praxis-empty-state-card
|
|
5264
|
+
icon="table_rows"
|
|
5265
|
+
[title]="getEmptyStateTitle()"
|
|
5266
|
+
[description]="getEmptyStateDescription()"
|
|
5267
|
+
[primaryAction]="{ label: getEmptyStatePrimaryAction(), icon: 'bolt', action: onConfigureRequested.bind(this) }"
|
|
5268
|
+
/>
|
|
5269
|
+
}
|
|
5270
|
+
}
|
|
5271
|
+
</div>
|
|
5272
|
+
`, isInline: true, styles: [":host{display:block;width:100%;min-width:0;max-width:100%}.praxis-crud-runtime{position:relative;min-width:0}.praxis-crud-opening-status{position:absolute;z-index:6;top:.7rem;right:.7rem;display:inline-flex;align-items:center;gap:.55rem;min-height:2.25rem;max-width:min(24rem,calc(100% - 1.4rem));padding:.48rem .72rem;border:1px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 32%,transparent);border-radius:999px;color:var(--md-sys-color-on-surface, currentColor);background:color-mix(in srgb,var(--md-sys-color-surface-container-high, #fff) 94%,transparent);box-shadow:0 10px 28px #0f172a29;font-size:.82rem;font-weight:650;line-height:1.25;pointer-events:none}.praxis-crud-opening-status__spinner{width:.95rem;height:.95rem;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 26%,transparent);border-top-color:var(--md-sys-color-primary, #3f51b5);border-radius:50%;animation:praxis-crud-opening-spin .72s linear infinite}@keyframes praxis-crud-opening-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-crud-opening-status__spinner{animation:none;border-top-color:currentColor}}\n"], dependencies: [{ kind: "component", type: PraxisTable, selector: "praxis-table", inputs: ["config", "resourcePath", "data", "tableId", "componentInstanceId", "configPersistenceStrategy", "title", "subtitle", "icon", "autoDelete", "notifyIfOutdated", "snoozeMs", "autoOpenSettingsOnOutdated", "crudContext", "filterCriteria", "queryContext", "aiContext", "aiAssistantVoiceInputMode", "aiAssistantVoiceLanguage", "horizontalScroll", "enableCustomization", "authoringCapability", "dense"], outputs: ["rowClick", "widgetEvent", "resourceEvent", "rowDoubleClick", "rowExpansionChange", "rowAction", "toolbarAction", "bulkAction", "exportAction", "columnReorder", "columnReorderAttempt", "columnResize", "beforeDelete", "afterDelete", "deleteError", "beforeBulkDelete", "afterBulkDelete", "bulkDeleteError", "schemaStatusChange", "configChange", "metadataChange", "loadingStateChange", "collectionLinksChange", "selectionChange"] }, { kind: "component", type: EmptyStateCardComponent, selector: "praxis-empty-state-card", inputs: ["icon", "title", "description", "primaryAction", "secondaryActions", "inline", "tone", "variant", "alignment", "density", "iconContainer"] }] });
|
|
5225
5273
|
}
|
|
5226
5274
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: PraxisCrudComponent, decorators: [{
|
|
5227
5275
|
type: Component,
|
|
@@ -5229,38 +5277,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
|
|
|
5229
5277
|
providePraxisI18nConfig(RESOURCE_DISCOVERY_I18N_CONFIG),
|
|
5230
5278
|
providePraxisI18nConfig(PRAXIS_CRUD_RUNTIME_I18N_CONFIG),
|
|
5231
5279
|
], template: `
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
|
|
5235
|
-
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
[filterCriteria]="tableFilterCriteria"
|
|
5239
|
-
[tableId]="crudId || 'default'"
|
|
5240
|
-
[crudContext]="tableCrudContext"
|
|
5241
|
-
[enableCustomization]="enableCustomization"
|
|
5242
|
-
[authoringCapability]="authoringCapability"
|
|
5243
|
-
(rowClick)="onTableRowClick($event)"
|
|
5244
|
-
(selectionChange)="onTableSelectionChange($event)"
|
|
5245
|
-
(rowAction)="onAction($event.action, $event.row, $event)"
|
|
5246
|
-
(toolbarAction)="onToolbarAction($event)"
|
|
5247
|
-
(bulkAction)="onBulkAction($event)"
|
|
5248
|
-
(collectionLinksChange)="onCollectionLinksChange($event)"
|
|
5249
|
-
(reset)="onResetPreferences()"
|
|
5250
|
-
(metadataChange)="onTableMetadataChange()"
|
|
5251
|
-
(loadingStateChange)="onTableLoadingStateChange($event)"
|
|
5252
|
-
></praxis-table>
|
|
5253
|
-
} @else {
|
|
5254
|
-
@if (isCustomizationAvailable()) {
|
|
5255
|
-
<praxis-empty-state-card
|
|
5256
|
-
icon="table_rows"
|
|
5257
|
-
[title]="getEmptyStateTitle()"
|
|
5258
|
-
[description]="getEmptyStateDescription()"
|
|
5259
|
-
[primaryAction]="{ label: getEmptyStatePrimaryAction(), icon: 'bolt', action: onConfigureRequested.bind(this) }"
|
|
5260
|
-
/>
|
|
5280
|
+
<div class="praxis-crud-runtime" [attr.aria-busy]="openingActionLabel() ? 'true' : null">
|
|
5281
|
+
@if (openingActionLabel(); as actionLabel) {
|
|
5282
|
+
<div class="praxis-crud-opening-status" role="status" aria-live="polite" data-testid="praxis-crud-opening-status">
|
|
5283
|
+
<span class="praxis-crud-opening-status__spinner" aria-hidden="true"></span>
|
|
5284
|
+
<span>{{ getOpeningActionStatus(actionLabel) }}</span>
|
|
5285
|
+
</div>
|
|
5261
5286
|
}
|
|
5262
|
-
|
|
5263
|
-
|
|
5287
|
+
@if (shouldRenderTable(resolvedMetadata)) {
|
|
5288
|
+
<praxis-table
|
|
5289
|
+
[config]="tableConfigForBinding"
|
|
5290
|
+
[resourcePath]="resolveResourcePath(resolvedMetadata)"
|
|
5291
|
+
[data]="resolveTableData(resolvedMetadata)"
|
|
5292
|
+
[queryContext]="tableQueryContext"
|
|
5293
|
+
[filterCriteria]="tableFilterCriteria"
|
|
5294
|
+
[tableId]="crudId || 'default'"
|
|
5295
|
+
[crudContext]="tableCrudContext"
|
|
5296
|
+
[enableCustomization]="enableCustomization"
|
|
5297
|
+
[authoringCapability]="authoringCapability"
|
|
5298
|
+
(rowClick)="onTableRowClick($event)"
|
|
5299
|
+
(selectionChange)="onTableSelectionChange($event)"
|
|
5300
|
+
(rowAction)="onAction($event.action, $event.row, $event)"
|
|
5301
|
+
(toolbarAction)="onToolbarAction($event)"
|
|
5302
|
+
(bulkAction)="onBulkAction($event)"
|
|
5303
|
+
(collectionLinksChange)="onCollectionLinksChange($event)"
|
|
5304
|
+
(reset)="onResetPreferences()"
|
|
5305
|
+
(metadataChange)="onTableMetadataChange()"
|
|
5306
|
+
(loadingStateChange)="onTableLoadingStateChange($event)"
|
|
5307
|
+
></praxis-table>
|
|
5308
|
+
} @else {
|
|
5309
|
+
@if (isCustomizationAvailable()) {
|
|
5310
|
+
<praxis-empty-state-card
|
|
5311
|
+
icon="table_rows"
|
|
5312
|
+
[title]="getEmptyStateTitle()"
|
|
5313
|
+
[description]="getEmptyStateDescription()"
|
|
5314
|
+
[primaryAction]="{ label: getEmptyStatePrimaryAction(), icon: 'bolt', action: onConfigureRequested.bind(this) }"
|
|
5315
|
+
/>
|
|
5316
|
+
}
|
|
5317
|
+
}
|
|
5318
|
+
</div>
|
|
5319
|
+
`, styles: [":host{display:block;width:100%;min-width:0;max-width:100%}.praxis-crud-runtime{position:relative;min-width:0}.praxis-crud-opening-status{position:absolute;z-index:6;top:.7rem;right:.7rem;display:inline-flex;align-items:center;gap:.55rem;min-height:2.25rem;max-width:min(24rem,calc(100% - 1.4rem));padding:.48rem .72rem;border:1px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 32%,transparent);border-radius:999px;color:var(--md-sys-color-on-surface, currentColor);background:color-mix(in srgb,var(--md-sys-color-surface-container-high, #fff) 94%,transparent);box-shadow:0 10px 28px #0f172a29;font-size:.82rem;font-weight:650;line-height:1.25;pointer-events:none}.praxis-crud-opening-status__spinner{width:.95rem;height:.95rem;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--md-sys-color-primary, #3f51b5) 26%,transparent);border-top-color:var(--md-sys-color-primary, #3f51b5);border-radius:50%;animation:praxis-crud-opening-spin .72s linear infinite}@keyframes praxis-crud-opening-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.praxis-crud-opening-status__spinner{animation:none;border-top-color:currentColor}}\n"] }]
|
|
5264
5320
|
}], ctorParameters: () => [], propDecorators: { metadata: [{
|
|
5265
5321
|
type: Input,
|
|
5266
5322
|
args: [{ required: true }]
|
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.13",
|
|
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.13",
|
|
9
|
+
"@praxisui/table": "^9.0.4-rc.13",
|
|
10
|
+
"@praxisui/core": "^9.0.4-rc.13",
|
|
11
|
+
"@praxisui/dynamic-fields": "^9.0.4-rc.13",
|
|
12
|
+
"@praxisui/settings-panel": "^9.0.4-rc.13",
|
|
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.13",
|
|
18
18
|
"rxjs": "~7.8.0"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
package/types/praxisui-crud.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { NgZone, OnChanges, EventEmitter, SimpleChanges, OnInit, Provider, AfterViewInit, OnDestroy } from '@angular/core';
|
|
1
3
|
import * as _praxisui_core from '@praxisui/core';
|
|
2
4
|
import { RowAction, ToolbarAction, ApiEndpoint, ApiUrlEntry, DynamicFormLayoutPolicy, BackConfig, TableConfig, PraxisDataQueryContext, FormConfig, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, MaterializedResourceIdentity, LoadingState, RestApiLinks, ResourceCapabilitySnapshot, GenericCrudService, AsyncConfigStorage, ComponentDocMeta, AiCapabilityCatalog, AiCapability, AiCapabilityCategory, AiValueKind, ComponentAuthoringManifest, SettingsValueProvider } from '@praxisui/core';
|
|
3
5
|
export { BackConfig } from '@praxisui/core';
|
|
4
|
-
import * as _angular_core from '@angular/core';
|
|
5
|
-
import { NgZone, OnChanges, EventEmitter, SimpleChanges, OnInit, Provider, AfterViewInit, OnDestroy } from '@angular/core';
|
|
6
6
|
import { MatDialogConfig, MatDialogRef, MatDialog } from '@angular/material/dialog';
|
|
7
7
|
export { MAT_DIALOG_DATA as DIALOG_DATA } from '@angular/material/dialog';
|
|
8
8
|
import { ComponentType } from '@angular/cdk/portal';
|
|
@@ -199,6 +199,7 @@ declare class PraxisCrudComponent implements OnChanges {
|
|
|
199
199
|
tableQueryContext: Record<string, unknown> | null;
|
|
200
200
|
tableFilterCriteria: Record<string, unknown>;
|
|
201
201
|
tableCrudContext?: CrudContextValue;
|
|
202
|
+
readonly openingActionLabel: _angular_core.WritableSignal<string | null>;
|
|
202
203
|
private readonly launcher;
|
|
203
204
|
private readonly http;
|
|
204
205
|
private readonly destroyRef;
|
|
@@ -244,6 +245,8 @@ declare class PraxisCrudComponent implements OnChanges {
|
|
|
244
245
|
onToolbarAction(event: CrudActionRuntimeEvent): Promise<void>;
|
|
245
246
|
ngOnChanges(changes: SimpleChanges): void;
|
|
246
247
|
onAction(action: string, row?: Record<string, unknown>, runtimeEvent?: CrudActionRuntimeEvent): Promise<void>;
|
|
248
|
+
getOpeningActionStatus(actionLabel: string): string;
|
|
249
|
+
private resolveOpeningActionLabel;
|
|
247
250
|
private hasExplicitOpenBinding;
|
|
248
251
|
getCurrentTableConfigSnapshot(): TableConfig | null;
|
|
249
252
|
onTableMetadataChange(): void;
|
|
@@ -344,6 +347,7 @@ declare class CrudLauncherService {
|
|
|
344
347
|
private readonly storage;
|
|
345
348
|
private readonly global;
|
|
346
349
|
private readonly operationResolver;
|
|
350
|
+
private dialogHostPromise?;
|
|
347
351
|
private readonly drawerAdapter;
|
|
348
352
|
launch(action: CrudAction, row: Record<string, unknown> | undefined, metadata: CrudMetadata, componentKeyId?: string | null, drawerCallbacks?: {
|
|
349
353
|
onClose?: () => void;
|
|
@@ -357,6 +361,8 @@ declare class CrudLauncherService {
|
|
|
357
361
|
ref?: DialogRef<any>;
|
|
358
362
|
}>;
|
|
359
363
|
resolveOpenMode(action: CrudAction, metadata: CrudMetadata): FormOpenMode;
|
|
364
|
+
private isLikelyOverlayAction;
|
|
365
|
+
private loadDialogHost;
|
|
360
366
|
private buildRoute;
|
|
361
367
|
private mapInputs;
|
|
362
368
|
private resolveActionForLaunch;
|