@acorex/platform 20.9.27 → 20.9.28
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/fesm2022/acorex-platform-layout-entity-contracts.mjs +35 -15
- package/fesm2022/acorex-platform-layout-entity-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +59 -15
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-layout-entity-contracts.d.ts +25 -9
- package/types/acorex-platform-layout-entity.d.ts +4 -0
|
@@ -191,8 +191,7 @@ function resolveEntityListFilterQueryField(filter, operator) {
|
|
|
191
191
|
//#endregion
|
|
192
192
|
|
|
193
193
|
//#region ---- Entity action helpers (pure data, no Angular) ----
|
|
194
|
-
|
|
195
|
-
function entityMasterCreateAction() {
|
|
194
|
+
function entityMasterCreateAction(permissions) {
|
|
196
195
|
return {
|
|
197
196
|
title: '@general:actions.create.title',
|
|
198
197
|
command: {
|
|
@@ -201,9 +200,10 @@ function entityMasterCreateAction() {
|
|
|
201
200
|
priority: 'primary',
|
|
202
201
|
type: AXPSystemActionType.Create,
|
|
203
202
|
scope: AXPEntityCommandScope.TypeLevel,
|
|
203
|
+
...(permissions?.length ? { permissions } : {}),
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
|
-
function entityMasterEditAction() {
|
|
206
|
+
function entityMasterEditAction(permissions) {
|
|
207
207
|
return {
|
|
208
208
|
title: '@general:actions.edit.title',
|
|
209
209
|
command: 'Entity:Update',
|
|
@@ -211,9 +211,10 @@ function entityMasterEditAction() {
|
|
|
211
211
|
type: AXPSystemActionType.Update,
|
|
212
212
|
scope: AXPEntityCommandScope.Individual,
|
|
213
213
|
default: true,
|
|
214
|
+
...(permissions?.length ? { permissions } : {}),
|
|
214
215
|
};
|
|
215
216
|
}
|
|
216
|
-
function entityMasterBulkDeleteAction() {
|
|
217
|
+
function entityMasterBulkDeleteAction(permissions) {
|
|
217
218
|
return {
|
|
218
219
|
title: '@general:actions.delete-items.title',
|
|
219
220
|
command: 'delete-entity',
|
|
@@ -221,9 +222,10 @@ function entityMasterBulkDeleteAction() {
|
|
|
221
222
|
type: AXPSystemActionType.Delete,
|
|
222
223
|
scope: AXPEntityCommandScope.Selected,
|
|
223
224
|
order: 100,
|
|
225
|
+
...(permissions?.length ? { permissions } : {}),
|
|
224
226
|
};
|
|
225
227
|
}
|
|
226
|
-
function entityMasterViewAction() {
|
|
228
|
+
function entityMasterViewAction(permissions) {
|
|
227
229
|
return {
|
|
228
230
|
title: '@general:actions.view.title',
|
|
229
231
|
command: 'open-entity',
|
|
@@ -231,9 +233,10 @@ function entityMasterViewAction() {
|
|
|
231
233
|
type: AXPSystemActionType.View,
|
|
232
234
|
scope: AXPEntityCommandScope.Individual,
|
|
233
235
|
default: true,
|
|
236
|
+
...(permissions?.length ? { permissions } : {}),
|
|
234
237
|
};
|
|
235
238
|
}
|
|
236
|
-
function entityMasterDeleteAction() {
|
|
239
|
+
function entityMasterDeleteAction(permissions) {
|
|
237
240
|
return {
|
|
238
241
|
title: '@general:actions.delete.title',
|
|
239
242
|
command: 'delete-entity',
|
|
@@ -242,9 +245,10 @@ function entityMasterDeleteAction() {
|
|
|
242
245
|
scope: AXPEntityCommandScope.Individual,
|
|
243
246
|
order: 100,
|
|
244
247
|
shortcuts: ['ctrl+shift+delete'],
|
|
248
|
+
...(permissions?.length ? { permissions } : {}),
|
|
245
249
|
};
|
|
246
250
|
}
|
|
247
|
-
function entityMasterCrudActions(options) {
|
|
251
|
+
function entityMasterCrudActions(options, permissions) {
|
|
248
252
|
const opts = {
|
|
249
253
|
create: true,
|
|
250
254
|
delete: true,
|
|
@@ -254,22 +258,23 @@ function entityMasterCrudActions(options) {
|
|
|
254
258
|
};
|
|
255
259
|
const actions = [];
|
|
256
260
|
if (opts.create) {
|
|
257
|
-
actions.push(entityMasterCreateAction());
|
|
261
|
+
actions.push(entityMasterCreateAction(permissions?.create));
|
|
258
262
|
}
|
|
259
263
|
if (opts.delete) {
|
|
260
|
-
|
|
261
|
-
actions.push(
|
|
264
|
+
// Bulk + row delete share the same delete permission keys.
|
|
265
|
+
actions.push(entityMasterBulkDeleteAction(permissions?.delete));
|
|
266
|
+
actions.push(entityMasterDeleteAction(permissions?.delete));
|
|
262
267
|
}
|
|
263
268
|
if (opts.view) {
|
|
264
|
-
actions.push(entityMasterViewAction());
|
|
269
|
+
actions.push(entityMasterViewAction(permissions?.view));
|
|
265
270
|
}
|
|
266
271
|
if (opts.edit) {
|
|
267
|
-
actions.push(entityMasterEditAction());
|
|
272
|
+
actions.push(entityMasterEditAction(permissions?.edit));
|
|
268
273
|
}
|
|
269
274
|
return actions;
|
|
270
275
|
}
|
|
271
|
-
function entityMasterRecordActions() {
|
|
272
|
-
return [entityMasterDeleteAction()];
|
|
276
|
+
function entityMasterRecordActions(permissions) {
|
|
277
|
+
return [entityMasterDeleteAction(permissions)];
|
|
273
278
|
}
|
|
274
279
|
//#endregion
|
|
275
280
|
//#region Details
|
|
@@ -454,6 +459,21 @@ function entityDetailsReferenceCreateActions(type) {
|
|
|
454
459
|
}
|
|
455
460
|
//#endregion
|
|
456
461
|
|
|
462
|
+
//#region ---- Entity action permission helpers ----
|
|
463
|
+
/**
|
|
464
|
+
* Returns whether an entity action is permitted for the current session.
|
|
465
|
+
* Empty / missing `permissions` keeps the action visible (migration-safe).
|
|
466
|
+
* When keys are present, all must pass (AND), matching {@link AXPSessionService.authorize}.
|
|
467
|
+
*/
|
|
468
|
+
function isEntityActionPermitted(action, authorize) {
|
|
469
|
+
const keys = action.permissions;
|
|
470
|
+
if (!keys?.length) {
|
|
471
|
+
return true;
|
|
472
|
+
}
|
|
473
|
+
return authorize(...keys);
|
|
474
|
+
}
|
|
475
|
+
//#endregion
|
|
476
|
+
|
|
457
477
|
//#region ---- Helpers barrel ----
|
|
458
478
|
//#endregion
|
|
459
479
|
|
|
@@ -1248,5 +1268,5 @@ const AXPEntityEventsKeys = {
|
|
|
1248
1268
|
* Generated bundle index. Do not edit.
|
|
1249
1269
|
*/
|
|
1250
1270
|
|
|
1251
|
-
export { AXPEntityCommandScope, AXPEntityDataSourceKeys, AXPEntityEventsKeys, AXPEntityQueryType, AXPEntityType, AXPRelationshipCardinality, AXPRelationshipKind, AXP_RECORD_WORKFLOW_INFO_CORRELATION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_DEFINITION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_INSTANCE_ID_FIELD, ENTITY_LAYOUT_SINGLE_TITLE_PATH, ENTITY_ROW_POPUP_TITLE_OPTION, ENTITY_ROW_TITLE_TEMPLATE_OPTION, PAGE_LIST_WIDGET_NAME_PREFIX, buildAXPRecordWorkflowInfo, buildEntitySearchTitleContext, buildPageListTableWidgetId, buildPageListWidgetName, collectEntityListFilterDefinitions, collectEntityListSortableFields, collectEntityQuickSearchFieldPaths, collectMergeDetailListPropertyNames, collectNestedCreateHiddenProperties, collectNestedFieldPathsFromEntityColumns, collectPropertyExposeTargetPaths, collectQuickSearchPathsFromSingleEntityDefinition, createAllQueryView, createQueryView, encodeEntityListFilterContextField, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, getEntityInfo, getRecordWorkflowCorrelationId, getRecordWorkflowInstanceId, isCardFieldBadgeDisplay, isEntityPropertySortEnabled, isMeaningfulEntityDisplayTitle, isPageListWidgetName, isRowBoundEntityDisplayTemplate, isUnresolvedEntityDisplayTemplate, mergeForeignKeyFieldIntoCreateActions, normalizeEntityDisplayTemplate, normalizeExpressionTemplate, parseDottedFieldPath, parsePropertyExposeEntries, parseRelatedEntityFullName, resolveCardFieldBadgeColor, resolveDefaultMasterListLayout, resolveEnabledMasterListLayouts, resolveEntityColumnDataPath, resolveEntityListFilterContextField, resolveEntityListFilterQueryField, resolveEntityModifyRecordTitleTemplate, resolveEntityPropertyInlineFilterField, resolveEntityRowTitleTemplate, resolveLookupWidgetCreateOptions, resolvePropertyExposeDisplayTarget, sanitizeResolvedEntityDisplayTitle };
|
|
1271
|
+
export { AXPEntityCommandScope, AXPEntityDataSourceKeys, AXPEntityEventsKeys, AXPEntityQueryType, AXPEntityType, AXPRelationshipCardinality, AXPRelationshipKind, AXP_RECORD_WORKFLOW_INFO_CORRELATION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_DEFINITION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_INSTANCE_ID_FIELD, ENTITY_LAYOUT_SINGLE_TITLE_PATH, ENTITY_ROW_POPUP_TITLE_OPTION, ENTITY_ROW_TITLE_TEMPLATE_OPTION, PAGE_LIST_WIDGET_NAME_PREFIX, buildAXPRecordWorkflowInfo, buildEntitySearchTitleContext, buildPageListTableWidgetId, buildPageListWidgetName, collectEntityListFilterDefinitions, collectEntityListSortableFields, collectEntityQuickSearchFieldPaths, collectMergeDetailListPropertyNames, collectNestedCreateHiddenProperties, collectNestedFieldPathsFromEntityColumns, collectPropertyExposeTargetPaths, collectQuickSearchPathsFromSingleEntityDefinition, createAllQueryView, createQueryView, encodeEntityListFilterContextField, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, getEntityInfo, getRecordWorkflowCorrelationId, getRecordWorkflowInstanceId, isCardFieldBadgeDisplay, isEntityActionPermitted, isEntityPropertySortEnabled, isMeaningfulEntityDisplayTitle, isPageListWidgetName, isRowBoundEntityDisplayTemplate, isUnresolvedEntityDisplayTemplate, mergeForeignKeyFieldIntoCreateActions, normalizeEntityDisplayTemplate, normalizeExpressionTemplate, parseDottedFieldPath, parsePropertyExposeEntries, parseRelatedEntityFullName, resolveCardFieldBadgeColor, resolveDefaultMasterListLayout, resolveEnabledMasterListLayouts, resolveEntityColumnDataPath, resolveEntityListFilterContextField, resolveEntityListFilterQueryField, resolveEntityModifyRecordTitleTemplate, resolveEntityPropertyInlineFilterField, resolveEntityRowTitleTemplate, resolveLookupWidgetCreateOptions, resolvePropertyExposeDisplayTarget, sanitizeResolvedEntityDisplayTitle };
|
|
1252
1272
|
//# sourceMappingURL=acorex-platform-layout-entity-contracts.mjs.map
|