@sap/ux-specification 1.136.14 → 1.136.15
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/CHANGELOG.md +42 -0
- package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
- package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
- package/dist/documentation/v2/v2-ListReport.html +2 -2
- package/dist/documentation/v2/v2-ListReportNew.html +2 -2
- package/dist/documentation/v2/v2-ObjectPage.html +2 -2
- package/dist/documentation/v2/v2-OverviewPage.html +2 -2
- package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
- package/dist/documentation/v4/v4-BuildingBlocks.html +2 -2
- package/dist/documentation/v4/v4-FreestylePage.html +2 -2
- package/dist/documentation/v4/v4-ListReport.html +2 -2
- package/dist/documentation/v4/v4-ObjectPage.html +2 -2
- package/dist/index-min.js +257 -258
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v4/BuildingBlocksConfig.json +72 -35
- package/dist/schemas/v4/ListReportConfig.json +251 -28
- package/dist/schemas/v4/ObjectPageConfig.json +385 -130
- package/dist/specification/package.json +8 -8
- package/dist/specification/scripts/macros/corrections.d.ts.map +1 -1
- package/dist/specification/scripts/macros/corrections.js +17 -1
- package/dist/specification/scripts/macros/corrections.js.map +1 -1
- package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
- package/dist/specification/scripts/macros/schema.js +10 -1
- package/dist/specification/scripts/macros/schema.js.map +1 -1
- package/dist/specification/scripts/macros/types.d.ts +1 -0
- package/dist/specification/scripts/macros/types.d.ts.map +1 -1
- package/dist/specification/src/api.d.ts.map +1 -1
- package/dist/specification/src/api.js +2 -1
- package/dist/specification/src/api.js.map +1 -1
- package/dist/specification/src/sync/common/DataFieldStrategy.d.ts +38 -8
- package/dist/specification/src/sync/common/DataFieldStrategy.d.ts.map +1 -1
- package/dist/specification/src/sync/common/DataFieldStrategy.js +64 -11
- package/dist/specification/src/sync/common/DataFieldStrategy.js.map +1 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts +0 -4
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.d.ts.map +1 -1
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js +0 -3
- package/dist/specification/src/sync/common/ManifestDrivenSchemaProcessor.js.map +1 -1
- package/dist/specification/src/sync/common/appProvider.d.ts +0 -1
- package/dist/specification/src/sync/common/appProvider.d.ts.map +1 -1
- package/dist/specification/src/sync/common/appProvider.js +0 -1
- package/dist/specification/src/sync/common/appProvider.js.map +1 -1
- package/dist/specification/src/sync/common/generate/objectPage.d.ts +0 -1
- package/dist/specification/src/sync/common/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/objectPage.js +0 -3
- package/dist/specification/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.d.ts +1 -2
- package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.js +1 -2
- package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/common/import/utils.d.ts +0 -1
- package/dist/specification/src/sync/common/import/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/import/utils.js +0 -1
- package/dist/specification/src/sync/common/import/utils.js.map +1 -1
- package/dist/specification/src/sync/common/rules.js +0 -1
- package/dist/specification/src/sync/common/rules.js.map +1 -1
- package/dist/specification/src/sync/common/utils.d.ts +13 -2
- package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/utils.js +84 -4
- package/dist/specification/src/sync/common/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js +3 -13
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js +46 -0
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +28 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
- package/dist/specification/src/sync/v2/import/importPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/importPage.js +5 -6
- package/dist/specification/src/sync/v2/import/importPage.js.map +1 -1
- package/dist/specification/src/sync/v4/application.d.ts +1 -1
- package/dist/specification/src/sync/v4/application.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/application.js +1 -1
- package/dist/specification/src/sync/v4/application.js.map +1 -1
- package/dist/specification/src/sync/v4/export/actions.d.ts +39 -0
- package/dist/specification/src/sync/v4/export/actions.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/export/actions.js +99 -0
- package/dist/specification/src/sync/v4/export/actions.js.map +1 -0
- package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.d.ts +2 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.d.ts +2 -4
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.js +2 -21
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFormAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts +2 -2
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts +14 -3
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.js +52 -9
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.d.ts +15 -3
- package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.js +53 -10
- package/dist/specification/src/sync/v4/export/controls/ObjectPageToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts +0 -3
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js +0 -3
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBar.d.ts +9 -2
- package/dist/specification/src/sync/v4/export/controls/ToolBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBar.js +39 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBar.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts +17 -4
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js +76 -19
- package/dist/specification/src/sync/v4/export/controls/ToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v4/export/export.d.ts +7 -0
- package/dist/specification/src/sync/v4/export/export.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/export.js +100 -11
- package/dist/specification/src/sync/v4/export/export.js.map +1 -1
- package/dist/specification/src/sync/v4/export/types.d.ts +2 -0
- package/dist/specification/src/sync/v4/export/types.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js +19 -17
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/actions.d.ts +35 -0
- package/dist/specification/src/sync/v4/generate/actions.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/actions.js +112 -0
- package/dist/specification/src/sync/v4/generate/actions.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts +3 -3
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js +10 -2
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.d.ts +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.js +3 -2
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/extensions.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js +9 -2
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js +2 -2
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/listReport.d.ts +25 -5
- package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/listReport.js +97 -262
- package/dist/specification/src/sync/v4/generate/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts +0 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +8 -14
- package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/objectPage.js +16 -3
- package/dist/specification/src/sync/v4/import/pages/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/import/utils.d.ts +0 -1
- package/dist/specification/src/sync/v4/import/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/import/utils.js +0 -1
- package/dist/specification/src/sync/v4/import/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.d.ts +103 -25
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +357 -44
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/types/src/apiTypes.d.ts +3 -2
- package/dist/types/src/apiTypes.d.ts.map +1 -1
- package/dist/types/src/apiTypes.js +1 -0
- package/dist/types/src/apiTypes.js.map +1 -1
- package/dist/types/src/common/types.d.ts +43 -2
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +41 -2
- package/dist/types/src/common/types.js.map +1 -1
- package/dist/types/src/v4/controls/CustomAction.d.ts +133 -19
- package/dist/types/src/v4/controls/CustomAction.d.ts.map +1 -1
- package/dist/types/src/v4/controls/CustomAction.js.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageForm.d.ts +2 -2
- package/dist/types/src/v4/controls/ObjectPageForm.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageHeader.d.ts +22 -3
- package/dist/types/src/v4/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageToolBar.d.ts +2 -2
- package/dist/types/src/v4/controls/ObjectPageToolBar.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ToolBar.d.ts +3 -3
- package/dist/types/src/v4/controls/ToolBar.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -9,7 +9,7 @@ exports.addVisualFilters = addVisualFilters;
|
|
|
9
9
|
exports.applyCustomFilterFields = applyCustomFilterFields;
|
|
10
10
|
exports.analyzeViewAnnotation = analyzeViewAnnotation;
|
|
11
11
|
exports.addALPViews = addALPViews;
|
|
12
|
-
exports.
|
|
12
|
+
exports.applyLRSchemaAdjustments = applyLRSchemaAdjustments;
|
|
13
13
|
exports.addTagsToView = addTagsToView;
|
|
14
14
|
exports.addLRViewParts = addLRViewParts;
|
|
15
15
|
exports.getDefaultAnnotationPath = getDefaultAnnotationPath;
|
|
@@ -22,6 +22,7 @@ const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
|
22
22
|
const i18next_1 = __importDefault(require("i18next"));
|
|
23
23
|
const extensionLogger_1 = require("../../../extensionLogger");
|
|
24
24
|
const common_1 = require("../../common");
|
|
25
|
+
const actions_1 = require("./actions");
|
|
25
26
|
const AppSchema_1 = require("../sync-rules/AppSchema");
|
|
26
27
|
const App_1 = require("../sync-rules/App");
|
|
27
28
|
const Page_1 = require("../sync-rules/Page");
|
|
@@ -181,38 +182,6 @@ function applyCustomFilterFields(appSchema, selectionFieldsDefinition, v4Page) {
|
|
|
181
182
|
});
|
|
182
183
|
}
|
|
183
184
|
}
|
|
184
|
-
/**
|
|
185
|
-
* Adds selection fields or compact/visual filters to filter bar.
|
|
186
|
-
*
|
|
187
|
-
* @param entityType - actual entity type (AVT information)
|
|
188
|
-
* @param appSchema - app-specific JSON schema
|
|
189
|
-
* @param v4Page - actual page in the manifest
|
|
190
|
-
* @param alias - the given alias or namespace of the OData annotations
|
|
191
|
-
*/
|
|
192
|
-
function addFilterBar(entityType, appSchema, v4Page, alias) {
|
|
193
|
-
const visualFilters = getVisualFilters(v4Page);
|
|
194
|
-
const selectionFields = alias && entityType?.annotations?.[alias]?.SelectionFields;
|
|
195
|
-
let selectionFieldsDefinition;
|
|
196
|
-
// Hide visualFilters/selectionFields depending on existing visual filters
|
|
197
|
-
if (visualFilters) {
|
|
198
|
-
appSchema.definitions[ux_specification_types_1.DefinitionName.SelectionFields][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
199
|
-
appSchema.definitions[ux_specification_types_1.DefinitionName.SelectionFields]['properties'] = {};
|
|
200
|
-
selectionFieldsDefinition = appSchema.definitions[ux_specification_types_1.DefinitionName.CompactFilters];
|
|
201
|
-
selectionFieldsDefinition.additionalProperties = false;
|
|
202
|
-
selectionFieldsDefinition.properties = {};
|
|
203
|
-
addVisualFilters(entityType, appSchema, visualFilters, selectionFields);
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
const filterBar = appSchema.definitions[ux_specification_types_1.DefinitionName.FilterBar];
|
|
207
|
-
filterBar.properties['initialLayout'][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
208
|
-
filterBar.properties['layout'][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
209
|
-
appSchema.definitions[ux_specification_types_1.DefinitionName.CompactFilters][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
210
|
-
appSchema.definitions[ux_specification_types_1.DefinitionName.VisualFilters][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
211
|
-
}
|
|
212
|
-
selectionFieldsDefinition = addSelectionFields(entityType, appSchema, selectionFields, selectionFieldsDefinition);
|
|
213
|
-
// Apply custom filter fields
|
|
214
|
-
applyCustomFilterFields(appSchema, selectionFieldsDefinition, v4Page);
|
|
215
|
-
}
|
|
216
185
|
/**
|
|
217
186
|
*
|
|
218
187
|
* @param appSchema - The app JSON schema to be updated
|
|
@@ -498,28 +467,27 @@ function addALPViews(appSchema, viewsPaths, generateParameters, templateAnnotati
|
|
|
498
467
|
appSchema.definitions[ux_specification_types_1.DefinitionName.ALPTable][ux_specification_types_1.SchemaTag.annotationPath] = target;
|
|
499
468
|
}
|
|
500
469
|
const schemaAdjustmentParameters = {
|
|
470
|
+
logger: generateParameters.logger,
|
|
501
471
|
appSchema,
|
|
502
472
|
v4Page,
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
dataForLineItem
|
|
473
|
+
tableDefinitionKey: ux_specification_types_1.DefinitionName.ALPTable,
|
|
474
|
+
facetDefinitionKey: ux_specification_types_1.DefinitionName.LineItems,
|
|
475
|
+
dataForLineItem,
|
|
476
|
+
customActionDefinitionName: ux_specification_types_1.DefinitionName.CustomTableAction,
|
|
477
|
+
sectionActionsDefinitionKey: `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`
|
|
506
478
|
};
|
|
507
|
-
|
|
479
|
+
applyLRSchemaAdjustments(schemaAdjustmentParameters);
|
|
508
480
|
const pathParts = annotations[viewAnnotation].fullyQualifiedName.split('@');
|
|
509
481
|
tableView[ux_specification_types_1.SchemaTag.annotationPath] = `/${pathParts[0]}/@${pathParts[1]}`;
|
|
510
482
|
tableView[ux_specification_types_1.SchemaTag.key] = 'secondary';
|
|
511
483
|
tableView[ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.key, value: 'secondary' }];
|
|
512
484
|
}
|
|
513
485
|
(0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger);
|
|
514
|
-
// Table toolbar actions with custom actions
|
|
515
|
-
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`;
|
|
516
|
-
(0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, undefined, schemaIdForToolbarActions);
|
|
517
|
-
(0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForToolbarActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
|
|
518
486
|
// Add "manifestPath" for table properties
|
|
519
487
|
addManifestPathsToPropertiesLR(appSchema, ux_specification_types_1.DefinitionName.ALPTable, tableDefinition, {
|
|
520
488
|
pageName: v4Page.id,
|
|
521
489
|
manifest: generateParameters.manifest,
|
|
522
|
-
targetAnnotation
|
|
490
|
+
targetAnnotation: target
|
|
523
491
|
});
|
|
524
492
|
}
|
|
525
493
|
/**
|
|
@@ -558,18 +526,30 @@ function addViewChartDefinitions(inputParameters, annotations) {
|
|
|
558
526
|
* @param viewsDefinition - the views definition in app schema (MultiTableModeV4)
|
|
559
527
|
* @param viewKey - view key
|
|
560
528
|
* @param title - view title
|
|
529
|
+
* @param page - Represents the page in the application's structure where the view line items are to be added.
|
|
561
530
|
*/
|
|
562
|
-
function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition, viewKey, title) {
|
|
531
|
+
function addViewChart(inputParameters, UIAnnotations, appSchema, viewsDefinition, viewKey, title, page) {
|
|
563
532
|
const idForChart = addViewChartDefinitions(inputParameters, UIAnnotations);
|
|
564
|
-
appSchema.definitions[idForChart]
|
|
565
|
-
|
|
566
|
-
|
|
533
|
+
const chartViewDefinition = appSchema.definitions[idForChart];
|
|
534
|
+
chartViewDefinition.properties.annotationPath[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
535
|
+
chartViewDefinition.properties.index[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
536
|
+
chartViewDefinition.properties.entitySet[ux_specification_types_1.SchemaTag.hidden] = true;
|
|
567
537
|
const titleOnHover = `Chart View (key: ${viewKey})`;
|
|
568
538
|
viewsDefinition.properties[viewKey] = {
|
|
569
539
|
$ref: `${common_1.DEFINITION_LINK_PREFIX}${idForChart}`,
|
|
570
540
|
description: title ? title : titleOnHover,
|
|
571
541
|
title: titleOnHover
|
|
572
542
|
};
|
|
543
|
+
// Add "manifestPath" for table properties
|
|
544
|
+
addManifestPathsToPropertiesLR(inputParameters.appSchema, ux_specification_types_1.DefinitionName.LRChartView, chartViewDefinition, {
|
|
545
|
+
pageName: page.getPage().id,
|
|
546
|
+
manifest: page.getApp().manifest,
|
|
547
|
+
targetAnnotation: inputParameters.targetAnnotation,
|
|
548
|
+
viewConfig: {
|
|
549
|
+
key: viewKey,
|
|
550
|
+
entitySet: inputParameters.entitySet
|
|
551
|
+
}
|
|
552
|
+
});
|
|
573
553
|
}
|
|
574
554
|
/**
|
|
575
555
|
* Retrieves the line item reference for a specified view and entity type.
|
|
@@ -599,20 +579,19 @@ function getLineItemRef(v4Page, entityType, viewKey, lineItemTerm, lineItemQuali
|
|
|
599
579
|
*
|
|
600
580
|
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
601
581
|
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
602
|
-
* @returns {void} This function does not return any value.
|
|
603
582
|
*/
|
|
604
583
|
function adjustCreationFieldsDefinition(schemaAdjustmentParameters) {
|
|
605
|
-
const { entityType, appSchema,
|
|
584
|
+
const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey, v4Page, viewKey } = schemaAdjustmentParameters;
|
|
606
585
|
// when the table view is created, the entity type may differ from the one used for the table
|
|
607
586
|
// schemaAdjustmentParameters contains the entity type used for the view
|
|
608
587
|
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term);
|
|
609
588
|
// set specific implementation for creation fields in the LR table
|
|
610
|
-
const creationModeDefinitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.TableCreationModeLR,
|
|
611
|
-
const tableDefinition = appSchema.definitions[
|
|
589
|
+
const creationModeDefinitionKey = (0, common_1.getFacetDefinitionKey)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
|
|
590
|
+
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
612
591
|
const creationModeProperty = tableDefinition.properties[ux_specification_types_1.PropertyName.creationMode];
|
|
613
|
-
creationModeProperty.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.TableCreationModeLR,
|
|
592
|
+
creationModeProperty.$ref = (0, common_1.getFacetDefinitionLink)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey);
|
|
614
593
|
const creationModeDefinition = appSchema.definitions[creationModeDefinitionKey] ??
|
|
615
|
-
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.TableCreationModeLR,
|
|
594
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.TableCreationModeLR, facetDefinitionKey, appSchema);
|
|
616
595
|
const context = {
|
|
617
596
|
page: v4Page,
|
|
618
597
|
schema: creationModeDefinition,
|
|
@@ -634,20 +613,19 @@ function adjustCreationFieldsDefinition(schemaAdjustmentParameters) {
|
|
|
634
613
|
*
|
|
635
614
|
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
636
615
|
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
637
|
-
* @returns {void} This function does not return any value.
|
|
638
616
|
*/
|
|
639
617
|
function adjustAnalyticalConfiguration(schemaAdjustmentParameters) {
|
|
640
|
-
const { entityType, appSchema,
|
|
618
|
+
const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
|
|
641
619
|
// when the table view is created, the entity type may differ from the one used for the table
|
|
642
620
|
// schemaAdjustmentParameters contains the entity type used for the view
|
|
643
621
|
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem.lineItemAnnotation?.qualifier);
|
|
644
622
|
// set specific implementation for analytical configuration in the LR table
|
|
645
|
-
const tableDefinition = appSchema.definitions[
|
|
623
|
+
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
646
624
|
const analyticalConfigurationDefinitionName = viewKey
|
|
647
625
|
? ux_specification_types_1.DefinitionName.ViewAnalyticalConfiguration
|
|
648
626
|
: ux_specification_types_1.DefinitionName.AnalyticalConfiguration;
|
|
649
627
|
const analyticalConfigurationDefinition = appSchema.definitions[analyticalConfigurationDefinitionName] ??
|
|
650
|
-
(0, common_1.parseSchemaDefinition)(analyticalConfigurationDefinitionName,
|
|
628
|
+
(0, common_1.parseSchemaDefinition)(analyticalConfigurationDefinitionName, facetDefinitionKey, appSchema);
|
|
651
629
|
const context = {
|
|
652
630
|
page: v4Page,
|
|
653
631
|
schema: analyticalConfigurationDefinition,
|
|
@@ -665,46 +643,61 @@ function adjustAnalyticalConfiguration(schemaAdjustmentParameters) {
|
|
|
665
643
|
*
|
|
666
644
|
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - An object containing parameters required for schema adjustments.
|
|
667
645
|
* It includes the application schema, table definition ID, facet definition ID, and the V4 page information.
|
|
668
|
-
* @returns {void} This function does not return any value.
|
|
669
646
|
*/
|
|
670
647
|
function adjustPopinLayout(schemaAdjustmentParameters) {
|
|
671
|
-
const { entityType, appSchema,
|
|
648
|
+
const { entityType, appSchema, tableDefinitionKey, v4Page, viewKey, dataForLineItem } = schemaAdjustmentParameters;
|
|
672
649
|
// when the table view is created, the entity type may differ from the one used for the table
|
|
673
650
|
// schemaAdjustmentParameters contains the entity type used for the view
|
|
674
651
|
const lineItemRef = getLineItemRef(v4Page, entityType, viewKey, entityType?.annotations?.UI?.LineItem?.term, dataForLineItem.lineItemAnnotation?.qualifier);
|
|
652
|
+
// set specific implementation for popinLayout in the LR table
|
|
653
|
+
const tableDefinition = appSchema.definitions[tableDefinitionKey];
|
|
654
|
+
const popinLayoutDefinition = tableDefinition.properties['popinLayout'];
|
|
655
|
+
const context = {
|
|
656
|
+
page: v4Page,
|
|
657
|
+
schema: popinLayoutDefinition,
|
|
658
|
+
parameters: {
|
|
659
|
+
lineItemRef,
|
|
660
|
+
tableDefinition
|
|
661
|
+
}
|
|
662
|
+
};
|
|
663
|
+
// for the ResponsiveTable (default table type) we allow to set the popin layout property
|
|
664
|
+
common_1.manifestDrivenSchemaProcessor.apply(ux_specification_types_1.RuleName.LRPopinLayoutForNonResponsiveTable, context);
|
|
675
665
|
}
|
|
676
666
|
/**
|
|
677
667
|
* Adjusts the schema for a table by making necessary changes such as populating creation fields,
|
|
678
668
|
* adjusting creation field definitions, and adding enum mappings for mass edit functionalities.
|
|
679
669
|
*
|
|
680
670
|
* @param {SchemaAdjustmentParameters} schemaAdjustmentParameters - Object containing the parameters required for schema adjustments. Includes the generate parameters, application schema, table definition ID, and facet definition ID.
|
|
681
|
-
* @returns {void} This function does not return a value; it performs in-place adjustments to the schema provided through the input parameters.
|
|
682
671
|
*/
|
|
683
|
-
function
|
|
684
|
-
const { entityType, appSchema,
|
|
672
|
+
function applyLRSchemaAdjustments(schemaAdjustmentParameters) {
|
|
673
|
+
const { entityType, appSchema, tableDefinitionKey, facetDefinitionKey } = schemaAdjustmentParameters;
|
|
685
674
|
// in the future, all postgeneration adjustments for the LR Page should be done here
|
|
686
675
|
// populate the creation fields for the table with the data from the columns
|
|
687
|
-
(0, utils_1.initializeCreationModeSchema)(appSchema,
|
|
676
|
+
(0, utils_1.initializeCreationModeSchema)(appSchema, facetDefinitionKey, entityType, ux_specification_types_1.DefinitionName.TableCreationModeLR);
|
|
688
677
|
// remove unnecessary properties from the creation mode aggregation according to the table type
|
|
689
678
|
adjustCreationFieldsDefinition(schemaAdjustmentParameters);
|
|
690
679
|
// remove unnecessary properties from the analytical configuration aggregation according to the table type
|
|
691
680
|
adjustAnalyticalConfiguration(schemaAdjustmentParameters);
|
|
692
681
|
adjustPopinLayout(schemaAdjustmentParameters);
|
|
693
682
|
// add columns to a enum, in this case enableMassEdit -> visibleFields and ignoredFields
|
|
694
|
-
(0, utils_2.addEnumForEnableMassEdit)(appSchema,
|
|
683
|
+
(0, utils_2.addEnumForEnableMassEdit)(appSchema, tableDefinitionKey, facetDefinitionKey, entityType);
|
|
684
|
+
// add the custom action and custom action menu definition
|
|
685
|
+
(0, actions_1.configureCustomActionDefinition)(schemaAdjustmentParameters);
|
|
695
686
|
}
|
|
696
687
|
/**
|
|
697
688
|
* Modifies the app schema, adds the right line item settings as derived from the visualization.
|
|
698
689
|
*
|
|
699
|
-
* @param {ViewsParameters} inputParameters -
|
|
700
|
-
* @param {Definition} viewsDefinition - The
|
|
701
|
-
* @param {string} visualization - The visualization
|
|
702
|
-
* @param {string} templateAnnotation -
|
|
703
|
-
* @param
|
|
704
|
-
* @param
|
|
705
|
-
* @
|
|
690
|
+
* @param {ViewsParameters} inputParameters - Parameters containing details needed for the view line item addition, including the app schema, view key, and target annotation.
|
|
691
|
+
* @param {Definition} viewsDefinition - The definition object to which the view line items will be added.
|
|
692
|
+
* @param {string} visualization - The specific visualization type, typically used to determine the annotation term.
|
|
693
|
+
* @param {string} templateAnnotation - Annotation path or type related to the template.
|
|
694
|
+
* @param generateParameters - list of API input parameters
|
|
695
|
+
* @param generateParameters.serviceAVT - OData service AVT information
|
|
696
|
+
* @param generateParameters.entityType - entity type of the current page
|
|
697
|
+
* @param {Page} page - Represents the page in the application's structure where the view line items are to be added.
|
|
698
|
+
* @param {ExtensionLogger} logger - Logger for recording informational or error messages during the schema adjustment process.
|
|
706
699
|
*/
|
|
707
|
-
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, { serviceAVT, entityType }, page) {
|
|
700
|
+
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, { serviceAVT, entityType }, page, logger) {
|
|
708
701
|
const tableId = `${ux_specification_types_1.DefinitionName.LRTableView}<${inputParameters.viewKey}>`;
|
|
709
702
|
const viewId = `${ux_specification_types_1.DefinitionName.LineItemsOfView}::${inputParameters.viewKey}`;
|
|
710
703
|
const lrTableView = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.LRTableView, inputParameters.viewKey, inputParameters.appSchema);
|
|
@@ -738,21 +731,42 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
|
|
|
738
731
|
lineItemId: viewId
|
|
739
732
|
};
|
|
740
733
|
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem, ux_specification_types_1.DefinitionName.ViewTableColumn, ux_specification_types_1.DefinitionName.ViewCustomColumn, ux_specification_types_1.DefinitionName.ViewCustomAction);
|
|
734
|
+
// Table toolbar actions with custom actions
|
|
735
|
+
const sectionIdPrefix = inputParameters.entitySet ? `/${inputParameters.entitySet}/` : '';
|
|
736
|
+
const sectionIdInManifest = `${sectionIdPrefix}@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}${visualization.split(ux_specification_types_1.Visualization.LineItem)[1]}`;
|
|
737
|
+
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${viewId}>`;
|
|
738
|
+
const customActionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomAction}<${viewId}>`;
|
|
739
|
+
// Anchor selection
|
|
740
|
+
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomActionPosition, viewId, inputParameters.appSchema);
|
|
741
|
+
const customActionPositionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomActionPosition}<${viewId}>`;
|
|
742
|
+
const customActionDefinition = inputParameters.appSchema.definitions[customActionDefinitionKey];
|
|
743
|
+
customActionDefinition.properties.position.$ref =
|
|
744
|
+
`${common_1.DEFINITION_LINK_PREFIX}${customActionPositionDefinitionKey}`;
|
|
741
745
|
const schemaAdjustmentParameters = {
|
|
746
|
+
logger: logger,
|
|
742
747
|
appSchema: inputParameters.appSchema,
|
|
743
748
|
v4Page: page.getPage(),
|
|
744
|
-
|
|
745
|
-
|
|
749
|
+
tableDefinitionKey: tableId,
|
|
750
|
+
facetDefinitionKey: viewId,
|
|
746
751
|
viewKey: inputParameters.viewKey,
|
|
747
752
|
entityType: inputParameters.targetEntityType || entityType,
|
|
748
|
-
dataForLineItem
|
|
753
|
+
dataForLineItem,
|
|
754
|
+
sectionActionsDefinitionKey: schemaIdForToolbarActions,
|
|
755
|
+
scopedCustomActionDefinitionKey: customActionDefinitionKey,
|
|
756
|
+
customActionDefinitionName: ux_specification_types_1.DefinitionName.ViewCustomAction,
|
|
757
|
+
sectionIdInManifest,
|
|
758
|
+
customActionPosition: customActionPositionDefinitionKey
|
|
749
759
|
};
|
|
750
|
-
|
|
760
|
+
applyLRSchemaAdjustments(schemaAdjustmentParameters);
|
|
751
761
|
// Add "manifestPath" for table properties
|
|
752
762
|
addManifestPathsToPropertiesLR(inputParameters.appSchema, ux_specification_types_1.DefinitionName.LRTableView, lrTableView, {
|
|
753
763
|
pageName: page.getPage().id,
|
|
754
764
|
manifest: page.getApp().manifest,
|
|
755
|
-
targetAnnotation: inputParameters.targetAnnotation
|
|
765
|
+
targetAnnotation: inputParameters.targetAnnotation,
|
|
766
|
+
viewConfig: {
|
|
767
|
+
key: inputParameters.viewKey,
|
|
768
|
+
entitySet: inputParameters.entitySet
|
|
769
|
+
}
|
|
756
770
|
});
|
|
757
771
|
}
|
|
758
772
|
/**
|
|
@@ -772,25 +786,6 @@ function addTagsToView(viewsDefinition, viewKey, namespace, view) {
|
|
|
772
786
|
viewsDefinition.properties[viewKey][ux_specification_types_1.SchemaTag.key] = viewKey;
|
|
773
787
|
viewsDefinition.properties[viewKey][ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.key, value: viewKey }];
|
|
774
788
|
}
|
|
775
|
-
/**
|
|
776
|
-
* Adjusts the entity type if a different entity set is maintained for a view.
|
|
777
|
-
*
|
|
778
|
-
* @param {EntitySet} entitySet - actual entity set (AVT information)
|
|
779
|
-
* @param view - the current view in manifest
|
|
780
|
-
* @param {GenerateAppSchemaParameters} generateParameters - list of API input parameters
|
|
781
|
-
* @returns the target entity type
|
|
782
|
-
*/
|
|
783
|
-
function getTargetEntityType(entitySet, view, generateParameters) {
|
|
784
|
-
let targetEntityType = generateParameters.entityType;
|
|
785
|
-
let viewEntitySet = entitySet;
|
|
786
|
-
if (view['entitySet'] && view['entitySet'] !== entitySet.name) {
|
|
787
|
-
viewEntitySet = generateParameters.serviceAVT?.entitySets.find((es) => {
|
|
788
|
-
return es.name === view['entitySet'];
|
|
789
|
-
});
|
|
790
|
-
targetEntityType = viewEntitySet.entityType;
|
|
791
|
-
}
|
|
792
|
-
return targetEntityType;
|
|
793
|
-
}
|
|
794
789
|
/**
|
|
795
790
|
* Adds view custom extensions - custom column and custom action definitions.
|
|
796
791
|
*
|
|
@@ -812,17 +807,6 @@ function addViewCustomExtensions(commonInputParameters, visualization, v4Page, l
|
|
|
812
807
|
if (commonInputParameters.appSchema.definitions.Position) {
|
|
813
808
|
delete commonInputParameters.appSchema.definitions.Position;
|
|
814
809
|
}
|
|
815
|
-
// Table toolbar actions with custom actions
|
|
816
|
-
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${sectionId}>`;
|
|
817
|
-
const customActionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomAction}<${sectionId}>`;
|
|
818
|
-
(0, utils_2.addCustomActionDefinition)(commonInputParameters.appSchema, v4Page, logger, customActionDefinitionKey, schemaIdForToolbarActions, sectionIdInManifest);
|
|
819
|
-
// Anchor selection
|
|
820
|
-
(0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.ViewCustomActionPosition, sectionId, commonInputParameters.appSchema);
|
|
821
|
-
const customActionPositionDefinitionKey = `${ux_specification_types_1.DefinitionName.ViewCustomActionPosition}<${sectionId}>`;
|
|
822
|
-
const customActionDefinition = commonInputParameters.appSchema.definitions[customActionDefinitionKey];
|
|
823
|
-
customActionDefinition.properties.position.$ref =
|
|
824
|
-
`${common_1.DEFINITION_LINK_PREFIX}${customActionPositionDefinitionKey}`;
|
|
825
|
-
(0, utils_2.addEnumForActionAnchor)(commonInputParameters.appSchema, schemaIdForToolbarActions, customActionPositionDefinitionKey);
|
|
826
810
|
}
|
|
827
811
|
/**
|
|
828
812
|
* Adds definition parts to a LR View (LineItem/Chart).
|
|
@@ -841,12 +825,12 @@ function addViewCustomExtensions(commonInputParameters, visualization, v4Page, l
|
|
|
841
825
|
function addLRViewParts(visualization, viewsDefinition, commonInputParameters, { serviceAVT, entityType, logger }, page, uiAnnotations, view) {
|
|
842
826
|
if (visualization?.indexOf(ux_specification_types_1.Visualization.LineItem) > -1) {
|
|
843
827
|
//Add Line item view
|
|
844
|
-
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, { serviceAVT, entityType }, page);
|
|
828
|
+
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, { serviceAVT, entityType }, page, logger);
|
|
845
829
|
addViewCustomExtensions(commonInputParameters, visualization, page.getPage(), logger);
|
|
846
830
|
}
|
|
847
831
|
else if (visualization?.indexOf('Chart') > -1) {
|
|
848
832
|
//Add Chart view
|
|
849
|
-
addViewChart(commonInputParameters, uiAnnotations, commonInputParameters.appSchema, viewsDefinition, commonInputParameters.viewKey, commonInputParameters.title);
|
|
833
|
+
addViewChart(commonInputParameters, uiAnnotations, commonInputParameters.appSchema, viewsDefinition, commonInputParameters.viewKey, commonInputParameters.title, page);
|
|
850
834
|
}
|
|
851
835
|
else if (view['template']) {
|
|
852
836
|
const titleOnHover = view['label'] || `Custom View (key: ${commonInputParameters.viewKey})`;
|
|
@@ -867,159 +851,6 @@ function addLRViewParts(visualization, viewsDefinition, commonInputParameters, {
|
|
|
867
851
|
};
|
|
868
852
|
}
|
|
869
853
|
}
|
|
870
|
-
/**
|
|
871
|
-
* Add list report views to the app-specific schema.
|
|
872
|
-
*
|
|
873
|
-
* @param appSchema - app-specific JSON schema
|
|
874
|
-
* @param viewsPaths - views' paths' section in the manifest
|
|
875
|
-
* @param generateParameters - list of API input parameters
|
|
876
|
-
* @param page - the current page object
|
|
877
|
-
* @param tableDefinitionName - The name of the table definition in the schema
|
|
878
|
-
*/
|
|
879
|
-
function addLRViews(appSchema, viewsPaths, generateParameters, page, tableDefinitionName) {
|
|
880
|
-
const tableDefinition = appSchema.definitions[tableDefinitionName];
|
|
881
|
-
tableDefinition.properties = {
|
|
882
|
-
annotationPath: tableDefinition.properties.annotationPath,
|
|
883
|
-
initialLoad: tableDefinition.properties.initialLoad,
|
|
884
|
-
views: tableDefinition.properties.views
|
|
885
|
-
};
|
|
886
|
-
const viewsDefinition = appSchema.definitions.MultiTableModeV4;
|
|
887
|
-
for (const view of viewsPaths) {
|
|
888
|
-
if (!view[ux_specification_types_1.SchemaTag.key]) {
|
|
889
|
-
continue;
|
|
890
|
-
}
|
|
891
|
-
let navPropName = undefined;
|
|
892
|
-
const targetEntityType = getTargetEntityType(generateParameters.entitySet, view, generateParameters);
|
|
893
|
-
const uiAnnotations = targetEntityType?.annotations.UI;
|
|
894
|
-
const { visualization, targetAnnotation, namespace, title } = analyzeViewAnnotation(view?.[ux_specification_types_1.SchemaTag.annotationPath], uiAnnotations, generateParameters.serviceAVT, view[ux_specification_types_1.SchemaTag.key], undefined, generateParameters.logger);
|
|
895
|
-
if (view['entitySet']) {
|
|
896
|
-
navPropName = generateParameters.entityType.navigationProperties.find((np) => {
|
|
897
|
-
return np.targetTypeName === namespace;
|
|
898
|
-
})?.name;
|
|
899
|
-
}
|
|
900
|
-
const viewKey = (0, common_1.prepareRef)(view[ux_specification_types_1.SchemaTag.key]);
|
|
901
|
-
const commonInputParameters = {
|
|
902
|
-
viewKey,
|
|
903
|
-
appSchema,
|
|
904
|
-
targetAnnotation,
|
|
905
|
-
navPropName,
|
|
906
|
-
targetEntityType,
|
|
907
|
-
title,
|
|
908
|
-
entitySet: view['entitySet']
|
|
909
|
-
};
|
|
910
|
-
addLRViewParts(visualization, viewsDefinition, commonInputParameters, generateParameters, page, uiAnnotations, view);
|
|
911
|
-
addTagsToView(viewsDefinition, viewKey, namespace, view);
|
|
912
|
-
}
|
|
913
|
-
}
|
|
914
|
-
/**
|
|
915
|
-
* Adapts the table definition in schema.
|
|
916
|
-
* Evaluates the path depending on if defaultTemplateAnnotationPath or Selection-/PresentationVariant is present.
|
|
917
|
-
*
|
|
918
|
-
* @param appSchema - the app-specific JSON schema
|
|
919
|
-
* @param generateParameters - list of API input parameters
|
|
920
|
-
* @param templateAnnotation - defaultTemplateAnnotationPath as registered in manifest
|
|
921
|
-
* @param v4Page - the given page in manifest
|
|
922
|
-
* @param alias - alias definition for the UI vocabulary
|
|
923
|
-
* @param tableDefinitionName - The name of the table definition in the schema
|
|
924
|
-
*/
|
|
925
|
-
function adaptTableDefinition(appSchema, generateParameters, templateAnnotation, v4Page, alias, tableDefinitionName) {
|
|
926
|
-
//here: tableDefinitionName = DefinitionName.Table
|
|
927
|
-
const tableDefinition = appSchema.definitions[tableDefinitionName];
|
|
928
|
-
const { visualization, targetAnnotation, namespace } = analyzeViewAnnotation(templateAnnotation, generateParameters.entityType?.annotations.UI, generateParameters.serviceAVT, undefined, ux_specification_types_1.Visualization.LineItem, generateParameters.logger);
|
|
929
|
-
if (visualization) {
|
|
930
|
-
const annotationTerm = visualization.split('.')[1];
|
|
931
|
-
const annotationTermInSchema = `${ux_specification_types_1.DefinitionName.LineItems}OfSPV::${(0, common_1.prepareRef)(annotationTerm)}`;
|
|
932
|
-
const spvTable = (appSchema.definitions[`${tableDefinitionName}SPV`] = JSON.parse(JSON.stringify(appSchema.definitions[tableDefinitionName])));
|
|
933
|
-
delete spvTable[ux_specification_types_1.SchemaTag.isViewNode];
|
|
934
|
-
(0, common_1.addDefinitionRef)(spvTable.properties.toolBar, ux_specification_types_1.DefinitionName.ToolBar, annotationTermInSchema);
|
|
935
|
-
// Switch from generic column to specific definition
|
|
936
|
-
spvTable[ux_specification_types_1.SchemaTag.annotationPath] = targetAnnotation;
|
|
937
|
-
spvTable.properties.columns = {};
|
|
938
|
-
(0, common_1.addDefinitionRef)(spvTable.properties.columns, annotationTermInSchema);
|
|
939
|
-
delete tableDefinition.properties;
|
|
940
|
-
(0, common_1.addDefinitionRef)(tableDefinition, `${tableDefinitionName}SPV`);
|
|
941
|
-
tableDefinition[ux_specification_types_1.SchemaTag.annotationPath] = `/${namespace}/@${templateAnnotation}`;
|
|
942
|
-
const lineItemAnnotation = generateParameters.entityType?.annotations.UI[annotationTerm];
|
|
943
|
-
if (!lineItemAnnotation) {
|
|
944
|
-
(0, extensionLogger_1.log)(generateParameters.logger, {
|
|
945
|
-
severity: "error" /* LogSeverity.Error */,
|
|
946
|
-
message: i18next_1.default.t('NOTARGET', { target: annotationTerm })
|
|
947
|
-
});
|
|
948
|
-
}
|
|
949
|
-
const dataForLineItem = {
|
|
950
|
-
isObjectPage: false,
|
|
951
|
-
appSchema,
|
|
952
|
-
lineItemAnnotation,
|
|
953
|
-
entityType: generateParameters.entityType,
|
|
954
|
-
oDataServiceAVT: generateParameters.serviceAVT,
|
|
955
|
-
lineItemId: annotationTermInSchema
|
|
956
|
-
};
|
|
957
|
-
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem);
|
|
958
|
-
const annotationTermQualifier = annotationTerm.split('#')?.[1];
|
|
959
|
-
const sectionIdInManifest = annotationTermQualifier
|
|
960
|
-
? `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}#${annotationTermQualifier}`
|
|
961
|
-
: `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}`;
|
|
962
|
-
(0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger, undefined, annotationTermInSchema, sectionIdInManifest);
|
|
963
|
-
(0, utils_2.addFragmentEnumForAnchor)(appSchema, annotationTermInSchema, v4Page, undefined, sectionIdInManifest);
|
|
964
|
-
const schemaAdjustmentParameters = {
|
|
965
|
-
appSchema,
|
|
966
|
-
v4Page,
|
|
967
|
-
tableDefinitionId: `${tableDefinitionName}SPV`,
|
|
968
|
-
facetDefinitionId: annotationTermInSchema,
|
|
969
|
-
dataForLineItem
|
|
970
|
-
};
|
|
971
|
-
applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
|
|
972
|
-
// Table toolbar actions with custom actions
|
|
973
|
-
const schemaIdForToolbarActions = `${ux_specification_types_1.DefinitionName.Actions}<${annotationTermInSchema}>`;
|
|
974
|
-
const customColumnDefinitionName = (0, common_1.getCustomExtensionDefinitionName)(appSchema, annotationTermInSchema, ux_specification_types_1.DefinitionName.CustomTableAction);
|
|
975
|
-
(0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, (0, common_1.getDefinitionKey)(customColumnDefinitionName), schemaIdForToolbarActions, sectionIdInManifest);
|
|
976
|
-
(0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForToolbarActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
|
|
977
|
-
}
|
|
978
|
-
else {
|
|
979
|
-
tableDefinition.properties.toolBar['$ref'] = `${common_1.DEFINITION_LINK_PREFIX}${ux_specification_types_1.DefinitionName.ToolBarLR}`;
|
|
980
|
-
// Switch from generic column to specific definition
|
|
981
|
-
(0, common_1.addDefinitionRef)(tableDefinition.properties.columns, ux_specification_types_1.DefinitionName.LineItems);
|
|
982
|
-
const lineItemAnnotation = generateParameters.entityType?.annotations?.[alias]?.LineItem;
|
|
983
|
-
if (!lineItemAnnotation && !v4Page.options?.settings?.views?.paths) {
|
|
984
|
-
(0, extensionLogger_1.log)(generateParameters.logger, {
|
|
985
|
-
severity: "error" /* LogSeverity.Error */,
|
|
986
|
-
message: i18next_1.default.t('NOLINEITEMS')
|
|
987
|
-
});
|
|
988
|
-
}
|
|
989
|
-
const dataForLineItem = {
|
|
990
|
-
isObjectPage: false,
|
|
991
|
-
appSchema,
|
|
992
|
-
lineItemAnnotation,
|
|
993
|
-
entityType: generateParameters.entityType,
|
|
994
|
-
oDataServiceAVT: generateParameters.serviceAVT,
|
|
995
|
-
lineItemId: ux_specification_types_1.DefinitionName.LineItems
|
|
996
|
-
};
|
|
997
|
-
(0, utils_2.addLineItemsTypeToSchema)(dataForLineItem);
|
|
998
|
-
(0, utils_2.addCustomColumnDefinition)(appSchema, v4Page, generateParameters.logger);
|
|
999
|
-
(0, utils_2.addFragmentEnumForAnchor)(appSchema, ux_specification_types_1.DefinitionName.LineItems, v4Page);
|
|
1000
|
-
const schemaAdjustmentParameters = {
|
|
1001
|
-
appSchema,
|
|
1002
|
-
v4Page,
|
|
1003
|
-
tableDefinitionId: tableDefinitionName,
|
|
1004
|
-
facetDefinitionId: ux_specification_types_1.DefinitionName.LineItems,
|
|
1005
|
-
dataForLineItem
|
|
1006
|
-
};
|
|
1007
|
-
applyLRTableSchemaAdjustments(schemaAdjustmentParameters);
|
|
1008
|
-
if (lineItemAnnotation && !v4Page.options?.settings?.views?.paths) {
|
|
1009
|
-
tableDefinition[ux_specification_types_1.SchemaTag.annotationPath] = (0, common_1.createAnnotationPath)(generateParameters.entityType?.fullyQualifiedName, lineItemAnnotation.term, lineItemAnnotation.qualifier);
|
|
1010
|
-
}
|
|
1011
|
-
// Table toolbar actions with custom actions
|
|
1012
|
-
const schemaIdForActions = `${ux_specification_types_1.DefinitionName.Actions}<${(0, common_1.prepareRef)(ux_specification_types_1.DefinitionName.LineItems)}>`;
|
|
1013
|
-
(0, utils_2.addCustomActionDefinition)(appSchema, v4Page, generateParameters.logger, undefined, schemaIdForActions);
|
|
1014
|
-
(0, utils_2.addEnumForActionAnchor)(appSchema, schemaIdForActions, ux_specification_types_1.DefinitionName.CustomActionPosition);
|
|
1015
|
-
}
|
|
1016
|
-
// Add "manifestPath" for table properties
|
|
1017
|
-
addManifestPathsToPropertiesLR(appSchema, tableDefinitionName, tableDefinition, {
|
|
1018
|
-
pageName: v4Page.id,
|
|
1019
|
-
manifest: generateParameters.manifest,
|
|
1020
|
-
targetAnnotation
|
|
1021
|
-
});
|
|
1022
|
-
}
|
|
1023
854
|
/**
|
|
1024
855
|
* Checks for the default annotation path to use for LR table.
|
|
1025
856
|
*
|
|
@@ -1084,9 +915,13 @@ function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, p
|
|
|
1084
915
|
// Default annotation path
|
|
1085
916
|
targetAnnotation = `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}`;
|
|
1086
917
|
}
|
|
918
|
+
const entitySet = pathParams.viewConfig?.entitySet;
|
|
919
|
+
if (entitySet) {
|
|
920
|
+
targetAnnotation = entitySet ? `/${entitySet}/${targetAnnotation}` : targetAnnotation;
|
|
921
|
+
}
|
|
1087
922
|
(0, utils_1.addManifestPathsToProperties)(appSchema, definitionName, definition, {
|
|
1088
923
|
...pathParams,
|
|
1089
|
-
pathsParts: [targetAnnotation, '', targetAnnotation]
|
|
924
|
+
pathsParts: [targetAnnotation, '', targetAnnotation, pathParams.viewConfig]
|
|
1090
925
|
});
|
|
1091
926
|
}
|
|
1092
927
|
/**
|