@sap/ux-specification 1.84.128 → 1.84.129
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 +32 -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-ListReport.html +2 -2
- package/dist/documentation/v4/v4-ObjectPage.html +2 -2
- package/dist/index-min.js +177 -177
- package/dist/index-min.js.map +4 -4
- package/dist/schemas/v2/ApplicationV2.json +22 -2
- package/dist/schemas/v2/ListReportNewConfig.json +45 -0
- package/dist/schemas/v2/ObjectPageConfig.json +12 -5
- package/dist/schemas/v4/ApplicationV4.json +10 -11
- package/dist/specification/package.json +16 -15
- package/dist/specification/scripts/schema/to-json-schema.d.ts.map +1 -1
- package/dist/specification/scripts/schema/to-json-schema.js +23 -13
- package/dist/specification/scripts/schema/to-json-schema.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.d.ts +72 -4
- package/dist/specification/src/sync/common/decoration/decorators.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/decorators.js +145 -8
- package/dist/specification/src/sync/common/decoration/decorators.js.map +1 -1
- package/dist/specification/src/sync/common/distTagEvaluator.d.ts +7 -0
- package/dist/specification/src/sync/common/distTagEvaluator.d.ts.map +1 -1
- package/dist/specification/src/sync/common/distTagEvaluator.js +10 -0
- package/dist/specification/src/sync/common/distTagEvaluator.js.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.d.ts +17 -7
- package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.js +38 -22
- package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/common/i18n.json +5 -4
- package/dist/specification/src/sync/common/utils.d.ts +39 -0
- package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/utils.js +94 -3
- package/dist/specification/src/sync/common/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/application.d.ts +1 -0
- package/dist/specification/src/sync/v2/application.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/application.js +18 -0
- package/dist/specification/src/sync/v2/application.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/exportPage.js +15 -4
- package/dist/specification/src/sync/v2/export/exportPage.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 +5 -2
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -1
- package/dist/specification/src/sync/v2/export/factory.d.ts +26 -0
- package/dist/specification/src/sync/v2/export/factory.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/factory.js +3 -3
- package/dist/specification/src/sync/v2/export/factory.js.map +1 -1
- package/dist/specification/src/sync/v2/export/pages/ObjectPage.d.ts +1 -0
- package/dist/specification/src/sync/v2/export/pages/ObjectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/pages/ObjectPage.js +11 -0
- package/dist/specification/src/sync/v2/export/pages/ObjectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/listReport.js +44 -0
- package/dist/specification/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.js +86 -31
- package/dist/specification/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiViewSingleTable.d.ts +22 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiViewSingleTable.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiViewSingleTable.js +124 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/MultiViewSingleTable.js.map +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js +4 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js +1 -0
- package/dist/specification/src/sync/v2/genericSchemaHandling/controls/index.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/overviewPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/overviewPage.js +4 -0
- package/dist/specification/src/sync/v2/import/pages/overviewPage.js.map +1 -1
- package/dist/specification/src/sync/v2/utils.d.ts +17 -1
- package/dist/specification/src/sync/v2/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/utils.js +57 -0
- package/dist/specification/src/sync/v2/utils.js.map +1 -1
- package/dist/specification/src/sync/v4/export/pages/ListReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/pages/ListReport.js +2 -1
- package/dist/specification/src/sync/v4/export/pages/ListReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts +74 -0
- package/dist/specification/src/sync/v4/generate/ListReportUtils.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js +262 -0
- package/dist/specification/src/sync/v4/generate/ListReportUtils.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/listReport.d.ts +61 -2
- package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/listReport.js +92 -94
- package/dist/specification/src/sync/v4/generate/listReport.js.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/objectPage.js +7 -7
- package/dist/specification/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts +141 -0
- package/dist/specification/src/sync/v4/sync-rules/App.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/App.js +208 -0
- package/dist/specification/src/sync/v4/sync-rules/App.js.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts +193 -0
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js +384 -0
- package/dist/specification/src/sync/v4/sync-rules/AppSchema.js.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts +172 -0
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js +410 -0
- package/dist/specification/src/sync/v4/sync-rules/DecoratorClass.js.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts +70 -0
- package/dist/specification/src/sync/v4/sync-rules/Page.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/Page.js +73 -0
- package/dist/specification/src/sync/v4/sync-rules/Page.js.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.d.ts +9 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.d.ts.map +1 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.js +43 -0
- package/dist/specification/src/sync/v4/sync-rules/utils.js.map +1 -0
- package/dist/specification/src/sync/v4/utils/utils.d.ts +6 -29
- package/dist/specification/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/utils/utils.js +7 -54
- package/dist/specification/src/sync/v4/utils/utils.js.map +1 -1
- package/dist/types/src/common/Application.d.ts +3 -0
- package/dist/types/src/common/Application.d.ts.map +1 -1
- package/dist/types/src/common/Application.js +4 -0
- package/dist/types/src/common/Application.js.map +1 -1
- package/dist/types/src/common/types.d.ts +105 -1
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +2 -0
- package/dist/types/src/common/types.js.map +1 -1
- package/dist/types/src/common/webapp/manifest/Manifest.d.ts +1 -1
- package/dist/types/src/common/webapp/manifest/Manifest.d.ts.map +1 -1
- package/dist/types/src/v2/application.d.ts +18 -0
- package/dist/types/src/v2/application.d.ts.map +1 -1
- package/dist/types/src/v2/controls/Action.d.ts +12 -0
- package/dist/types/src/v2/controls/Action.d.ts.map +1 -1
- package/dist/types/src/v2/controls/AnalyticalListPageChart.d.ts +1 -0
- package/dist/types/src/v2/controls/AnalyticalListPageChart.d.ts.map +1 -1
- package/dist/types/src/v2/controls/AnalyticalListPageKPI.d.ts +1 -0
- package/dist/types/src/v2/controls/AnalyticalListPageKPI.d.ts.map +1 -1
- package/dist/types/src/v2/controls/Card.d.ts +13 -0
- package/dist/types/src/v2/controls/Card.d.ts.map +1 -1
- package/dist/types/src/v2/controls/Card.js.map +1 -1
- package/dist/types/src/v2/controls/Field.d.ts +1 -0
- package/dist/types/src/v2/controls/Field.d.ts.map +1 -1
- package/dist/types/src/v2/controls/FilterBar.d.ts +6 -0
- package/dist/types/src/v2/controls/FilterBar.d.ts.map +1 -1
- package/dist/types/src/v2/controls/FilterBar.js.map +1 -1
- package/dist/types/src/v2/controls/Header.d.ts +1 -0
- package/dist/types/src/v2/controls/Header.d.ts.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageChart.d.ts +1 -0
- package/dist/types/src/v2/controls/ObjectPageChart.d.ts.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageFooter.d.ts +2 -0
- package/dist/types/src/v2/controls/ObjectPageFooter.d.ts.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageForm.d.ts +1 -0
- package/dist/types/src/v2/controls/ObjectPageForm.d.ts.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageHeader.d.ts +1 -0
- package/dist/types/src/v2/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageHeaderSection.d.ts +3 -0
- package/dist/types/src/v2/controls/ObjectPageHeaderSection.d.ts.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageLayout.d.ts +1 -0
- package/dist/types/src/v2/controls/ObjectPageLayout.d.ts.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageSection.d.ts +13 -0
- package/dist/types/src/v2/controls/ObjectPageSection.d.ts.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageSection.js.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageTable.d.ts +10 -4
- package/dist/types/src/v2/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/types/src/v2/controls/ObjectPageToolBar.d.ts +2 -0
- package/dist/types/src/v2/controls/ObjectPageToolBar.d.ts.map +1 -1
- package/dist/types/src/v2/controls/Table.d.ts +28 -0
- package/dist/types/src/v2/controls/Table.d.ts.map +1 -1
- package/dist/types/src/v2/controls/Table.js.map +1 -1
- package/dist/types/src/v2/controls/ToolBar.d.ts +1 -0
- package/dist/types/src/v2/controls/ToolBar.d.ts.map +1 -1
- package/dist/types/src/v2/pages/AnalyticalListPageConfigV2.d.ts +1 -0
- package/dist/types/src/v2/pages/AnalyticalListPageConfigV2.d.ts.map +1 -1
- package/dist/types/src/v2/pages/ObjectPageConfigV2.d.ts +10 -1
- package/dist/types/src/v2/pages/ObjectPageConfigV2.d.ts.map +1 -1
- package/dist/types/src/v2/pages/OverviewPageConfigV2.d.ts +4 -0
- package/dist/types/src/v2/pages/OverviewPageConfigV2.d.ts.map +1 -1
- package/dist/types/src/v4/controls/FilterBar.d.ts +2 -0
- package/dist/types/src/v4/controls/FilterBar.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageFooter.d.ts +1 -0
- package/dist/types/src/v4/controls/ObjectPageFooter.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageHeader.d.ts +1 -0
- package/dist/types/src/v4/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageHeaderSection.d.ts +4 -0
- package/dist/types/src/v4/controls/ObjectPageHeaderSection.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageLayout.d.ts +1 -0
- package/dist/types/src/v4/controls/ObjectPageLayout.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageSection.d.ts +15 -0
- package/dist/types/src/v4/controls/ObjectPageSection.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageSection.js.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts +2 -0
- package/dist/types/src/v4/controls/ObjectPageTable.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageTable.js.map +1 -1
- package/dist/types/src/v4/controls/ObjectPageToolBar.d.ts +3 -0
- package/dist/types/src/v4/controls/ObjectPageToolBar.d.ts.map +1 -1
- package/dist/types/src/v4/controls/Table.d.ts +15 -0
- package/dist/types/src/v4/controls/Table.d.ts.map +1 -1
- package/dist/types/src/v4/controls/ToolBar.d.ts +6 -0
- package/dist/types/src/v4/controls/ToolBar.d.ts.map +1 -1
- package/dist/types/src/v4/webapp/manifest/ManifestSettings.d.ts +22 -0
- package/dist/types/src/v4/webapp/manifest/ManifestSettings.d.ts.map +1 -1
- package/package.json +16 -15
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TableAndViews = exports.FilterBar = exports.GeneralListReportSettings = exports.BaseConstruct = void 0;
|
|
7
|
+
const __1 = require("../../..");
|
|
8
|
+
const utils_1 = require("../utils/utils");
|
|
9
|
+
const listReport_1 = require("./listReport");
|
|
10
|
+
const listReport_2 = require("./listReport");
|
|
11
|
+
const common_1 = require("../../common");
|
|
12
|
+
const i18next_1 = __importDefault(require("i18next"));
|
|
13
|
+
class BaseConstruct {
|
|
14
|
+
/**
|
|
15
|
+
* Constructor for BaseConstruct.
|
|
16
|
+
*
|
|
17
|
+
* @param schema - the application schema
|
|
18
|
+
* @param page - the page object
|
|
19
|
+
* @param logger - optional extension logger
|
|
20
|
+
*/
|
|
21
|
+
constructor(schema, page, logger) {
|
|
22
|
+
this.schema = schema;
|
|
23
|
+
this.page = page;
|
|
24
|
+
this.logger = logger;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.BaseConstruct = BaseConstruct;
|
|
28
|
+
/**
|
|
29
|
+
* Add general settings to schema (LR or ALP).
|
|
30
|
+
*
|
|
31
|
+
* - Adds Selection-(PresentationVariant) related enums to the schema.
|
|
32
|
+
*/
|
|
33
|
+
class GeneralListReportSettings extends BaseConstruct {
|
|
34
|
+
/**
|
|
35
|
+
* Constructor for general settings of ListReport.
|
|
36
|
+
*
|
|
37
|
+
* @param schema - the application schema
|
|
38
|
+
* @param page - the page object
|
|
39
|
+
* @param logger - optional extension logger
|
|
40
|
+
*/
|
|
41
|
+
constructor(schema, page, logger) {
|
|
42
|
+
super(schema, page, logger);
|
|
43
|
+
//enum for annotation path as part of QuickVariantSelection
|
|
44
|
+
(0, common_1.addEnumForSingleTabVariant)(page.entity.type, schema.getSchema(), __1.DefinitionName.AnnotationPathAsObject);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.GeneralListReportSettings = GeneralListReportSettings;
|
|
48
|
+
/**
|
|
49
|
+
* Add filter bar to schema (LR or ALP).
|
|
50
|
+
*/
|
|
51
|
+
class FilterBar extends BaseConstruct {
|
|
52
|
+
/**
|
|
53
|
+
* Constructor for FilterBar.
|
|
54
|
+
*
|
|
55
|
+
* @param schema - the application schema
|
|
56
|
+
* @param page - the page object
|
|
57
|
+
* @param logger - optional extension logger
|
|
58
|
+
*/
|
|
59
|
+
constructor(schema, page, logger) {
|
|
60
|
+
super(schema, page, logger);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Instantiates the FilterBar and adds the filterBar to the schema.
|
|
64
|
+
*/
|
|
65
|
+
instantiate() {
|
|
66
|
+
this.addFilterBar(this.page.getEntityType(), this.schema, this.page.getPage(), this.page.getApp().getUIVocabularyAlias() || 'UI');
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Adds filter bar to schema (LR or ALP).
|
|
70
|
+
*
|
|
71
|
+
* @param entityType - the entity type
|
|
72
|
+
* @param schema - the application schema
|
|
73
|
+
* @param v4Page - the actual page in the manifest
|
|
74
|
+
* @param alias - alias definition for the UI vocabulary
|
|
75
|
+
*/
|
|
76
|
+
addFilterBar(entityType, schema, v4Page, alias) {
|
|
77
|
+
const selectionFields = alias && entityType?.annotations?.[alias]?.SelectionFields;
|
|
78
|
+
(0, listReport_2.addSelectionFields)(entityType, schema.getSchema(), selectionFields);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.FilterBar = FilterBar;
|
|
82
|
+
/**
|
|
83
|
+
* Adjusts the entity type if a different entity set is maintained for a view.
|
|
84
|
+
*
|
|
85
|
+
* @param {EntitySet} entitySet - actual entity set (AVT information)
|
|
86
|
+
* @param view - the current view in manifest
|
|
87
|
+
* @param page - the page object
|
|
88
|
+
* @returns the target entity type
|
|
89
|
+
*/
|
|
90
|
+
function getTargetEntityType(entitySet, view, page) {
|
|
91
|
+
let targetEntityType = page.getEntityType();
|
|
92
|
+
let viewEntitySet = entitySet;
|
|
93
|
+
if (view['entitySet'] && view['entitySet'] !== entitySet.name) {
|
|
94
|
+
viewEntitySet = page
|
|
95
|
+
.getApp()
|
|
96
|
+
.getAVT()
|
|
97
|
+
?.entitySets.find((es) => {
|
|
98
|
+
return es.name === view['entitySet'];
|
|
99
|
+
});
|
|
100
|
+
targetEntityType = viewEntitySet.entityType;
|
|
101
|
+
}
|
|
102
|
+
return targetEntityType;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Adapts the table definition in schema.
|
|
106
|
+
* Evaluates the path depending on if defaultTemplateAnnotationPath or Selection-/PresentationVariant is present.
|
|
107
|
+
*
|
|
108
|
+
* @param schema - the app-specific JSON schema
|
|
109
|
+
* @param page - the page object
|
|
110
|
+
* @param templateAnnotation - defaultTemplateAnnotationPath as registered in manifest
|
|
111
|
+
* @param tableDefinitionName - The name of the table definition in the schema
|
|
112
|
+
*/
|
|
113
|
+
function adaptTableDefinition(schema, page, templateAnnotation, tableDefinitionName) {
|
|
114
|
+
const logger = page.getApp().getLogger();
|
|
115
|
+
//here: tableDefinitionName = DefinitionName.Table
|
|
116
|
+
const tableDefinition = schema.getDefinition(tableDefinitionName);
|
|
117
|
+
const { visualization, targetAnnotation, namespace } = (0, listReport_2.analyzeViewAnnotation)(templateAnnotation, page.getUIAnnotations(), undefined, __1.Visualization.LineItem, page.getApp().getLogger());
|
|
118
|
+
if (visualization) {
|
|
119
|
+
const annotationTerm = visualization.split('.')[1];
|
|
120
|
+
const annotationTermInSchema = `${__1.DefinitionName.LineItems}OfSPV::${(0, common_1.prepareRef)(annotationTerm)}`;
|
|
121
|
+
const spvTable = schema.cloneDefinition(tableDefinitionName, `${tableDefinitionName}SPV`);
|
|
122
|
+
schema.setPropertyRef(spvTable, ['properties', 'toolBar'], `${__1.DefinitionName.ToolBar}<${annotationTermInSchema}>`);
|
|
123
|
+
// Switch from generic column to specific definition
|
|
124
|
+
// schema.setProperty(spvTable, ['properties', 'columns'], {});
|
|
125
|
+
schema.setProperty(spvTable, [__1.SchemaTag.annotationPath], targetAnnotation);
|
|
126
|
+
schema.setPropertyRef(spvTable, ['properties', 'columns'], annotationTermInSchema);
|
|
127
|
+
schema.setDefinitionRef(tableDefinition, `${tableDefinitionName}SPV`);
|
|
128
|
+
schema.removeProperty(spvTable, __1.SchemaTag.isViewNode);
|
|
129
|
+
schema.removeProperty(tableDefinition, 'properties');
|
|
130
|
+
schema.setProperty(tableDefinition, [__1.SchemaTag.annotationPath], `/${namespace}/@${templateAnnotation}`);
|
|
131
|
+
const lineItemAnnotation = page.getUIAnnotations()[annotationTerm];
|
|
132
|
+
if (!lineItemAnnotation) {
|
|
133
|
+
(0, __1.log)(logger, {
|
|
134
|
+
severity: "error" /* LogSeverity.Error */,
|
|
135
|
+
message: i18next_1.default.t('NOTARGET', { target: annotationTerm })
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
const dataForLineItem = {
|
|
139
|
+
isObjectPage: false,
|
|
140
|
+
appSchema: schema.getSchema(),
|
|
141
|
+
lineItemAnnotation,
|
|
142
|
+
entityType: page.entity.type,
|
|
143
|
+
oDataServiceAVT: page.getApp().getAVT(),
|
|
144
|
+
lineItemId: annotationTermInSchema
|
|
145
|
+
};
|
|
146
|
+
(0, utils_1.addLineItemsTypeToSchema)(dataForLineItem);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
schema.setPropertyRef(tableDefinition, ['properties', 'toolBar'], `${__1.DefinitionName.ToolBarLR}`);
|
|
150
|
+
schema.setPropertyRef(tableDefinition, ['properties', 'columns'], `${__1.DefinitionName.LineItems}`);
|
|
151
|
+
// Switch from generic column to specific definition
|
|
152
|
+
const lineItemAnnotation = page.getUIAnnotations()?.LineItem;
|
|
153
|
+
if (!lineItemAnnotation && !page.getPage().options?.settings?.views?.paths) {
|
|
154
|
+
(0, __1.log)(logger, {
|
|
155
|
+
severity: "error" /* LogSeverity.Error */,
|
|
156
|
+
message: i18next_1.default.t('NOLINEITEMS')
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
const dataForLineItem = {
|
|
160
|
+
isObjectPage: false,
|
|
161
|
+
appSchema: schema.getSchema(),
|
|
162
|
+
lineItemAnnotation,
|
|
163
|
+
entityType: page.entity.type,
|
|
164
|
+
oDataServiceAVT: page.getApp().getAVT(),
|
|
165
|
+
lineItemId: __1.DefinitionName.LineItems
|
|
166
|
+
};
|
|
167
|
+
(0, utils_1.addLineItemsTypeToSchema)(dataForLineItem);
|
|
168
|
+
}
|
|
169
|
+
// Add "manifestPath" for table properties
|
|
170
|
+
(0, listReport_1.addManifestPathsToPropertiesLR)(schema.getSchema(), tableDefinitionName, tableDefinition, {
|
|
171
|
+
pageName: page.getPage().id,
|
|
172
|
+
manifest: page.getApp().getManifest(),
|
|
173
|
+
targetAnnotation
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Add list report views to the app-specific schema.
|
|
178
|
+
*
|
|
179
|
+
* @param schema - app-specific JSON schema
|
|
180
|
+
* @param viewsPaths - views' paths' section in the manifest
|
|
181
|
+
* @param page - the given page in manifest
|
|
182
|
+
* @param tableDefinitionName - The name of the table definition in the schema
|
|
183
|
+
*/
|
|
184
|
+
function addLRViews(schema, viewsPaths, page, tableDefinitionName) {
|
|
185
|
+
const tableDefinition = schema.getDefinition(tableDefinitionName);
|
|
186
|
+
tableDefinition.properties = {
|
|
187
|
+
annotationPath: tableDefinition.properties.annotationPath,
|
|
188
|
+
initialLoad: tableDefinition.properties.initialLoad,
|
|
189
|
+
views: tableDefinition.properties.views
|
|
190
|
+
};
|
|
191
|
+
const viewsDefinition = schema.getDefinition(__1.DefinitionName.MultiTableModeV4);
|
|
192
|
+
for (const view of viewsPaths) {
|
|
193
|
+
if (!view[__1.SchemaTag.key]) {
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
let navPropName = undefined;
|
|
197
|
+
const targetEntityType = getTargetEntityType(page.entity.set, view, page);
|
|
198
|
+
const uiAnnotations = targetEntityType?.annotations.UI;
|
|
199
|
+
const { visualization, targetAnnotation, namespace, title } = (0, listReport_2.analyzeViewAnnotation)(view?.[__1.SchemaTag.annotationPath], uiAnnotations, view[__1.SchemaTag.key], undefined, page.getApp().getLogger());
|
|
200
|
+
if (view['entitySet']) {
|
|
201
|
+
navPropName = page.getEntityType().navigationProperties.find((np) => {
|
|
202
|
+
return np.targetTypeName === namespace;
|
|
203
|
+
})?.name;
|
|
204
|
+
}
|
|
205
|
+
const viewKey = (0, common_1.prepareRef)(view[__1.SchemaTag.key]);
|
|
206
|
+
const commonInputParameters = {
|
|
207
|
+
viewKey,
|
|
208
|
+
appSchema: schema.getSchema(),
|
|
209
|
+
targetAnnotation,
|
|
210
|
+
navPropName,
|
|
211
|
+
targetEntityType,
|
|
212
|
+
title,
|
|
213
|
+
entitySet: view['entitySet']
|
|
214
|
+
};
|
|
215
|
+
(0, listReport_2.addLRViewParts)(visualization, viewsDefinition, commonInputParameters, { serviceAVT: page.getApp().getAVT(), entityType: targetEntityType, logger: page.getApp().getLogger() }, page, uiAnnotations, view);
|
|
216
|
+
(0, listReport_2.addTagsToView)(viewsDefinition, viewKey, namespace, view);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
class TableAndViews extends BaseConstruct {
|
|
220
|
+
/**
|
|
221
|
+
* Constructor for TableAndViews.
|
|
222
|
+
*
|
|
223
|
+
* @param schema - the application schema
|
|
224
|
+
* @param page - the page object
|
|
225
|
+
* @param logger - optional extension logger
|
|
226
|
+
*/
|
|
227
|
+
constructor(schema, page, logger) {
|
|
228
|
+
super(schema, page, logger);
|
|
229
|
+
}
|
|
230
|
+
addTableAndViews() {
|
|
231
|
+
const views = this.page.getPage().options?.settings?.views;
|
|
232
|
+
const defaultAnnotation = (0, listReport_2.getDefaultAnnotationPath)(this.page.getPage(), this.page.getEntityType(), this.page.getTemplate().type);
|
|
233
|
+
const tableDefinitionName = (0, utils_1.alignSchemaWithTemplateType)(this.schema.getSchema(), this.page.getTemplate().type);
|
|
234
|
+
if (this.page.getTemplate().type === __1.TemplateType.ListReportObjectPageV4) {
|
|
235
|
+
this.schema.hide(this.schema.getRootProperty([__1.PropertyName.chart]));
|
|
236
|
+
adaptTableDefinition(this.schema, this.page, defaultAnnotation, tableDefinitionName);
|
|
237
|
+
if (!views) {
|
|
238
|
+
this.schema.setProperty(__1.DefinitionName.MultiTableModeV4, ['properties'], {});
|
|
239
|
+
}
|
|
240
|
+
else if (views.paths) {
|
|
241
|
+
this.schema.cleanup(['LineItems', 'ToolBar<LineItems>', 'Actions<LineItems>']);
|
|
242
|
+
addLRViews(this.schema, views.paths, this.page, tableDefinitionName);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else if (this.page.getTemplate().type === __1.TemplateType.AnalyticalListPageV4) {
|
|
246
|
+
const generateParameters = {
|
|
247
|
+
logger: this.logger,
|
|
248
|
+
entityType: this.page.getEntityType(),
|
|
249
|
+
serviceAVT: this.page.getApp().getAVT()
|
|
250
|
+
};
|
|
251
|
+
(0, listReport_2.addALPViews)(this.schema.getSchema(), views?.paths, generateParameters, defaultAnnotation, this.page.getPage(), tableDefinitionName);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Instantiates the TableAndViews and adds them to the schema.
|
|
256
|
+
*/
|
|
257
|
+
instantiate() {
|
|
258
|
+
this.addTableAndViews();
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
exports.TableAndViews = TableAndViews;
|
|
262
|
+
//# sourceMappingURL=ListReportUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListReportUtils.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/ListReportUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { Visualization } from '@sap/ux-specification-types';
|
|
2
|
-
import type { GenerateAppSchemaParameters, ExtensionLogger } from '@sap/ux-specification-types';
|
|
1
|
+
import { TemplateType, Visualization } from '@sap/ux-specification-types';
|
|
2
|
+
import type { v4, GenerateAppSchemaParameters, ExtensionLogger } from '@sap/ux-specification-types';
|
|
3
3
|
import type { AnnotationTerm, EntitySet, EntityType } from '@sap-ux/vocabularies-types';
|
|
4
4
|
import type { SelectionFields } from '@sap-ux/vocabularies-types/vocabularies/UI';
|
|
5
|
+
import { type ManifestPathParams } from '../../common';
|
|
5
6
|
import type { Definition } from 'typescript-json-schema';
|
|
7
|
+
import { Page } from '../sync-rules/Page';
|
|
6
8
|
/**
|
|
7
9
|
* Adds the selection fields to the app schema, as properties of the FilterBar
|
|
8
10
|
* @param {EntityType} entityType - the entity type as part of the AVT ConvertedMetadata
|
|
@@ -29,6 +31,63 @@ export declare function analyzeViewAnnotation(annotationPath: string, uIAnnotati
|
|
|
29
31
|
namespace: string;
|
|
30
32
|
title: string;
|
|
31
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Adds the ALP views to the app-specific schema
|
|
36
|
+
* @param {Definition} appSchema - app-specific JSON schema
|
|
37
|
+
* @param {Array<Object>} viewsPaths - views' paths' section in the manifest
|
|
38
|
+
* @param {GenerateAppSchemaParameters} generateParameters - list of API input parameters
|
|
39
|
+
* @param {string} templateAnnotation - defaultTemplateAnnotationPath as registered in manifest
|
|
40
|
+
* @param {SapUiAppPageV4} v4Page - actual page in the manifest
|
|
41
|
+
*/
|
|
42
|
+
export declare function addALPViews(appSchema: Definition, viewsPaths: Array<object>, generateParameters: GenerateAppSchemaParameters, templateAnnotation: string, v4Page: v4.SapUiAppPageV4, tableDefinitionName: string): void;
|
|
43
|
+
export type ViewsParameters = {
|
|
44
|
+
viewKey: string;
|
|
45
|
+
appSchema: Definition;
|
|
46
|
+
targetAnnotation: string;
|
|
47
|
+
navPropName: string;
|
|
48
|
+
targetEntityType: EntityType;
|
|
49
|
+
title: string;
|
|
50
|
+
entitySet?: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Adds the schema tags to a given view
|
|
54
|
+
* @param viewsDefinition - the views definition in app schema (MultiTableModeV4)
|
|
55
|
+
* @param viewKey - key property of the view
|
|
56
|
+
* @param namespace - target namespace for annotations
|
|
57
|
+
* @param view - the given view
|
|
58
|
+
*/
|
|
59
|
+
export declare function addTagsToView(viewsDefinition: Definition, viewKey: string, namespace: string, view: object): void;
|
|
60
|
+
/**
|
|
61
|
+
* Adds definition parts to a LR View (LineItem/Chart)
|
|
62
|
+
* @param {string} templateAnnotation - defaultTemplateAnnotationPath as registered in manifest
|
|
63
|
+
* @param {string} visualization - visualization of the annotation
|
|
64
|
+
* @param viewsDefinition - the views definition in app schema (MultiTableModeV4)
|
|
65
|
+
* @param commonInputParameters - list of input parameters as collected by the calling instance
|
|
66
|
+
* @param generateParameters - list of API input parameters
|
|
67
|
+
* @param generateParameters.serviceAVT - OData service AVT information
|
|
68
|
+
* @param generateParameters.entityType - entity type of the current page
|
|
69
|
+
* @param generateParameters.logger - extension logger
|
|
70
|
+
* @param page - the current page object
|
|
71
|
+
* @param uiAnnotations - UI annotations of the given entityType
|
|
72
|
+
* @param view - the given view
|
|
73
|
+
*/
|
|
74
|
+
export declare function addLRViewParts(visualization: string, viewsDefinition: Definition, commonInputParameters: ViewsParameters, { serviceAVT, entityType, logger }: Partial<GenerateAppSchemaParameters>, page: Page, uiAnnotations: object, view: object): void;
|
|
75
|
+
/**
|
|
76
|
+
* Checks for the default annotation path to use for LR table
|
|
77
|
+
* @param {SapUiAppPageV4} v4Page - actual page in the manifest
|
|
78
|
+
* @param {EntityType} entityType - actual entity type (AVT information)
|
|
79
|
+
* @returns {string} annotation term
|
|
80
|
+
*/
|
|
81
|
+
export declare function getDefaultAnnotationPath(v4Page: v4.SapUiAppPageV4, entityType: EntityType, templateType: TemplateType): string | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Adds 'manifestPath' to each property in a definition based on metadata sync rules.
|
|
84
|
+
*
|
|
85
|
+
* @param appSchema - Full schema.
|
|
86
|
+
* @param definitionName - The name of the definition/class whose properties are being processed.
|
|
87
|
+
* @param definition - The definition object containing property schemas.
|
|
88
|
+
* @param pathParams - Additional context required to compute manifest paths.
|
|
89
|
+
*/
|
|
90
|
+
export declare function addManifestPathsToPropertiesLR(appSchema: Definition, definitionName: string | undefined, definition: Definition, pathParams: ManifestPathParams): void;
|
|
32
91
|
/**
|
|
33
92
|
* Generates an app specific schema for the FE V4 ListReport from the generic schema.
|
|
34
93
|
* Generic types are replaced by information from the app specific annotations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listReport.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/listReport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"listReport.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/listReport.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.addSelectionFields = addSelectionFields;
|
|
7
7
|
exports.analyzeViewAnnotation = analyzeViewAnnotation;
|
|
8
|
+
exports.addALPViews = addALPViews;
|
|
9
|
+
exports.addTagsToView = addTagsToView;
|
|
10
|
+
exports.addLRViewParts = addLRViewParts;
|
|
11
|
+
exports.getDefaultAnnotationPath = getDefaultAnnotationPath;
|
|
12
|
+
exports.addManifestPathsToPropertiesLR = addManifestPathsToPropertiesLR;
|
|
8
13
|
exports.generateListReportSchemaV4 = generateListReportSchemaV4;
|
|
9
14
|
const utils_1 = require("../utils/utils");
|
|
10
15
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
11
16
|
const i18next_1 = __importDefault(require("i18next"));
|
|
12
17
|
const extensionLogger_1 = require("../../../extensionLogger");
|
|
13
18
|
const common_1 = require("../../common");
|
|
19
|
+
const Page_1 = require("../sync-rules/Page");
|
|
20
|
+
const App_1 = require("../sync-rules/App");
|
|
21
|
+
const AppSchema_1 = require("../sync-rules/AppSchema");
|
|
22
|
+
const ListReportUtils_1 = require("./ListReportUtils");
|
|
14
23
|
const ROOT_PROPERTIES_ORDER = ['filterBar', 'chart', 'table'];
|
|
15
24
|
const UILINEITEM = '@UI.LineItem';
|
|
16
25
|
/**
|
|
@@ -250,7 +259,7 @@ function addALPChartView(appSchema, chartAnnotationPath, targetAnnotation, annot
|
|
|
250
259
|
}
|
|
251
260
|
else {
|
|
252
261
|
// Add message about unexisting annotation path
|
|
253
|
-
(0, common_1.addMessageToSchema)(chartView, i18next_1.default.t('UNEXISTING_ANNOTATION_PATH'));
|
|
262
|
+
(0, common_1.addMessageToSchema)(chartView, { text: i18next_1.default.t('UNEXISTING_ANNOTATION_PATH') });
|
|
254
263
|
}
|
|
255
264
|
}
|
|
256
265
|
chartView[ux_specification_types_1.SchemaTag.artifactType] = ux_specification_types_1.ArtifactType.Manifest;
|
|
@@ -407,10 +416,10 @@ function createEmptyProperties(definition) {
|
|
|
407
416
|
* @param {string} visualization - The visualization format or mode for the line items, used to determine the associated annotations.
|
|
408
417
|
* @param {string} templateAnnotation - The template annotation to infer metadata for the line items.
|
|
409
418
|
* @param {GenerateAppSchemaParameters} generateParameters - Parameters essential for schema generation, including OData service metadata.
|
|
410
|
-
* @param {
|
|
419
|
+
* @param {Page} page - The page object representing the context in which the view is being generated.
|
|
411
420
|
* @returns {void} No return value.
|
|
412
421
|
*/
|
|
413
|
-
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation,
|
|
422
|
+
function addViewLineItems(inputParameters, viewsDefinition, visualization, templateAnnotation, { serviceAVT, entityType }, page) {
|
|
414
423
|
const tableId = `${ux_specification_types_1.DefinitionName.LRTableView}<${inputParameters.viewKey}>`;
|
|
415
424
|
const viewId = `${ux_specification_types_1.DefinitionName.LineItemsOfView}::${inputParameters.viewKey}`;
|
|
416
425
|
const lrTableView = (0, common_1.parseSchemaDefinition)(ux_specification_types_1.DefinitionName.LRTableView, inputParameters.viewKey, inputParameters.appSchema);
|
|
@@ -440,9 +449,8 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
|
|
|
440
449
|
appSchema: inputParameters.appSchema,
|
|
441
450
|
lineItemAnnotation: inputParameters.targetEntityType?.annotations.UI[annotationTerm],
|
|
442
451
|
entityType: inputParameters.targetEntityType,
|
|
443
|
-
oDataServiceAVT:
|
|
444
|
-
lineItemId: viewId
|
|
445
|
-
entitySet: lrTableView['entitySet']
|
|
452
|
+
oDataServiceAVT: serviceAVT,
|
|
453
|
+
lineItemId: viewId
|
|
446
454
|
};
|
|
447
455
|
let columnDefinitionName = ux_specification_types_1.DefinitionName.ViewTableColumn;
|
|
448
456
|
// handle basic columns and basic actions for view with different entity set (remove properties)
|
|
@@ -459,8 +467,8 @@ function addViewLineItems(inputParameters, viewsDefinition, visualization, templ
|
|
|
459
467
|
(0, utils_1.addLineItemsTypeToSchema)(dataForLineItem, columnDefinitionName);
|
|
460
468
|
// Add "manifestPath" for table properties
|
|
461
469
|
addManifestPathsToPropertiesLR(inputParameters.appSchema, ux_specification_types_1.DefinitionName.LRTableView, lrTableView, {
|
|
462
|
-
pageName:
|
|
463
|
-
manifest:
|
|
470
|
+
pageName: page.getPage().id,
|
|
471
|
+
manifest: page.getApp().manifest,
|
|
464
472
|
targetAnnotation: inputParameters.targetAnnotation
|
|
465
473
|
});
|
|
466
474
|
}
|
|
@@ -518,16 +526,19 @@ function handleViewProperties(definition, validProperties) {
|
|
|
518
526
|
* @param {string} templateAnnotation - defaultTemplateAnnotationPath as registered in manifest
|
|
519
527
|
* @param {string} visualization - visualization of the annotation
|
|
520
528
|
* @param viewsDefinition - the views definition in app schema (MultiTableModeV4)
|
|
521
|
-
* @param
|
|
522
|
-
* @param
|
|
523
|
-
* @param
|
|
524
|
-
* @param
|
|
525
|
-
* @param
|
|
529
|
+
* @param commonInputParameters - list of input parameters as collected by the calling instance
|
|
530
|
+
* @param generateParameters - list of API input parameters
|
|
531
|
+
* @param generateParameters.serviceAVT - OData service AVT information
|
|
532
|
+
* @param generateParameters.entityType - entity type of the current page
|
|
533
|
+
* @param generateParameters.logger - extension logger
|
|
534
|
+
* @param page - the current page object
|
|
535
|
+
* @param uiAnnotations - UI annotations of the given entityType
|
|
536
|
+
* @param view - the given view
|
|
526
537
|
*/
|
|
527
|
-
function addLRViewParts(visualization, viewsDefinition, commonInputParameters,
|
|
538
|
+
function addLRViewParts(visualization, viewsDefinition, commonInputParameters, { serviceAVT, entityType, logger }, page, uiAnnotations, view) {
|
|
528
539
|
if (visualization?.indexOf(ux_specification_types_1.Visualization.LineItem) > -1) {
|
|
529
540
|
//Add Line item view
|
|
530
|
-
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation,
|
|
541
|
+
addViewLineItems(commonInputParameters, viewsDefinition, visualization, commonInputParameters.targetAnnotation, { serviceAVT, entityType }, page);
|
|
531
542
|
if (view['entitySet'] !== undefined) {
|
|
532
543
|
// handle root properties of current view if entity set is different
|
|
533
544
|
handleViewProperties(commonInputParameters.appSchema.definitions[`${ux_specification_types_1.DefinitionName.LRTableView}<${view['key']}>`], ['visible']);
|
|
@@ -557,14 +568,15 @@ function addLRViewParts(visualization, viewsDefinition, commonInputParameters, g
|
|
|
557
568
|
}
|
|
558
569
|
}
|
|
559
570
|
/**
|
|
560
|
-
* Add list report views to the app-specific schema
|
|
561
|
-
*
|
|
562
|
-
* @param
|
|
563
|
-
* @param
|
|
564
|
-
* @param
|
|
565
|
-
* @param
|
|
571
|
+
* Add list report views to the app-specific schema.
|
|
572
|
+
*
|
|
573
|
+
* @param appSchema - app-specific JSON schema
|
|
574
|
+
* @param viewsPaths - views' paths' section in the manifest
|
|
575
|
+
* @param generateParameters - list of API input parameters
|
|
576
|
+
* @param page - the current page object
|
|
577
|
+
* @param tableDefinitionName - The name of the table definition in the schema
|
|
566
578
|
*/
|
|
567
|
-
function addLRViews(appSchema, viewsPaths, generateParameters,
|
|
579
|
+
function addLRViews(appSchema, viewsPaths, generateParameters, page, tableDefinitionName) {
|
|
568
580
|
const tableDefinition = appSchema.definitions[tableDefinitionName];
|
|
569
581
|
tableDefinition.properties = {
|
|
570
582
|
annotationPath: tableDefinition.properties.annotationPath,
|
|
@@ -595,7 +607,7 @@ function addLRViews(appSchema, viewsPaths, generateParameters, v4Page, tableDefi
|
|
|
595
607
|
title,
|
|
596
608
|
entitySet: view['entitySet']
|
|
597
609
|
};
|
|
598
|
-
addLRViewParts(visualization, viewsDefinition, commonInputParameters, generateParameters,
|
|
610
|
+
addLRViewParts(visualization, viewsDefinition, commonInputParameters, generateParameters, page, uiAnnotations, view);
|
|
599
611
|
addTagsToView(viewsDefinition, viewKey, namespace, view);
|
|
600
612
|
}
|
|
601
613
|
}
|
|
@@ -691,40 +703,13 @@ function getDefaultAnnotationPath(v4Page, entityType, templateType) {
|
|
|
691
703
|
entityType?.annotations.UI?.PresentationVariant?.term);
|
|
692
704
|
}
|
|
693
705
|
}
|
|
694
|
-
/**
|
|
695
|
-
* Add views to schema (LR or ALP)
|
|
696
|
-
* @param {Definition} appSchema - app-specific JSON schema
|
|
697
|
-
* @param {SapUiAppPageV4} v4Page - actual page in the manifest
|
|
698
|
-
* @param {GenerateAppSchemaParameters} generateParameters - list of API input parameters
|
|
699
|
-
*/
|
|
700
|
-
function addTableAndViews(appSchema, v4Page, generateParameters, alias) {
|
|
701
|
-
const viewsPaths = v4Page.options?.settings?.views?.paths;
|
|
702
|
-
const defaultAnnotation = getDefaultAnnotationPath(v4Page, generateParameters.entityType, generateParameters.templateType);
|
|
703
|
-
const tableDefinitionName = (0, utils_1.alignSchemaWithTemplateType)(appSchema, generateParameters);
|
|
704
|
-
if (generateParameters.templateType === ux_specification_types_1.TemplateType.ListReportObjectPageV4) {
|
|
705
|
-
adaptTableDefinition(appSchema, generateParameters, defaultAnnotation, v4Page, alias, tableDefinitionName);
|
|
706
|
-
if (viewsPaths) {
|
|
707
|
-
delete appSchema.definitions['LineItems'];
|
|
708
|
-
delete appSchema.definitions['ToolBar<LineItems>'];
|
|
709
|
-
delete appSchema.definitions['Actions<LineItems>'];
|
|
710
|
-
addLRViews(appSchema, viewsPaths, generateParameters, v4Page, tableDefinitionName);
|
|
711
|
-
}
|
|
712
|
-
else if (!v4Page.options?.settings?.views) {
|
|
713
|
-
appSchema.definitions.MultiTableModeV4.properties = {};
|
|
714
|
-
}
|
|
715
|
-
appSchema.properties[ux_specification_types_1.PropertyName.chart][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
716
|
-
}
|
|
717
|
-
else if (generateParameters.templateType === ux_specification_types_1.TemplateType.AnalyticalListPageV4) {
|
|
718
|
-
addALPViews(appSchema, viewsPaths, generateParameters, defaultAnnotation, v4Page, tableDefinitionName);
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
706
|
/**
|
|
722
707
|
* Adds 'manifestPath' to each property in a definition based on metadata sync rules.
|
|
723
708
|
*
|
|
724
|
-
* @param
|
|
725
|
-
* @param
|
|
726
|
-
* @param
|
|
727
|
-
* @param
|
|
709
|
+
* @param appSchema - Full schema.
|
|
710
|
+
* @param definitionName - The name of the definition/class whose properties are being processed.
|
|
711
|
+
* @param definition - The definition object containing property schemas.
|
|
712
|
+
* @param pathParams - Additional context required to compute manifest paths.
|
|
728
713
|
*/
|
|
729
714
|
function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, pathParams) {
|
|
730
715
|
let targetAnnotation = undefined;
|
|
@@ -744,8 +729,8 @@ function addManifestPathsToPropertiesLR(appSchema, definitionName, definition, p
|
|
|
744
729
|
/**
|
|
745
730
|
* Adds 'manifestPath' to static nodes in schema.
|
|
746
731
|
*
|
|
747
|
-
* @param
|
|
748
|
-
* @param
|
|
732
|
+
* @param appSchema - Full schema.
|
|
733
|
+
* @param pathParams - Additional context required to compute manifest paths.
|
|
749
734
|
*/
|
|
750
735
|
function addManifestPathsToStaticNodes(appSchema, pathParams) {
|
|
751
736
|
// Root level - rules stored on page class level
|
|
@@ -759,6 +744,52 @@ function addManifestPathsToStaticNodes(appSchema, pathParams) {
|
|
|
759
744
|
}
|
|
760
745
|
}
|
|
761
746
|
}
|
|
747
|
+
/**
|
|
748
|
+
* Class to generate the List Report page schema.
|
|
749
|
+
*/
|
|
750
|
+
class ListReportPage {
|
|
751
|
+
/**
|
|
752
|
+
* Constructor for ListReportPage.
|
|
753
|
+
*
|
|
754
|
+
* @param generateParameters - parameters for generating the app schema
|
|
755
|
+
* @param schema - generic JSON schema of the List Report page
|
|
756
|
+
* @param templateName - name of the template
|
|
757
|
+
* @param contextPath - context path of the page
|
|
758
|
+
*/
|
|
759
|
+
constructor(generateParameters, schema, templateName) {
|
|
760
|
+
this.schema = new AppSchema_1.AppSchema(schema);
|
|
761
|
+
this.app = (0, App_1.createApp)(generateParameters.manifest, generateParameters.serviceAVT, generateParameters.logger);
|
|
762
|
+
this.page = new Page_1.Page(this.app, { name: templateName, type: generateParameters.templateType }, generateParameters.entitySet);
|
|
763
|
+
}
|
|
764
|
+
/**
|
|
765
|
+
* Cleans up the schema by hiding specific properties and removing unnecessary definitions.
|
|
766
|
+
*/
|
|
767
|
+
cleanup() {
|
|
768
|
+
this.schema.hide(this.schema.getRootProperty([ux_specification_types_1.PropertyName.defaultTemplateAnnotationPath]));
|
|
769
|
+
this.schema.cleanup(['GenericColumns', 'Action']);
|
|
770
|
+
(0, common_1.updatePropertyIndices)(this.schema.getSchema(), ROOT_PROPERTIES_ORDER);
|
|
771
|
+
}
|
|
772
|
+
/**
|
|
773
|
+
* Generates the finalized schema for the List Report page.
|
|
774
|
+
*
|
|
775
|
+
* @returns The finalized schema for List Report page
|
|
776
|
+
*/
|
|
777
|
+
generate() {
|
|
778
|
+
new ListReportUtils_1.GeneralListReportSettings(this.schema, this.page, this.app.getLogger());
|
|
779
|
+
if (!this.page.getPage()) {
|
|
780
|
+
return this.schema.finalize();
|
|
781
|
+
}
|
|
782
|
+
new ListReportUtils_1.FilterBar(this.schema, this.page, this.app.getLogger()).instantiate();
|
|
783
|
+
new ListReportUtils_1.TableAndViews(this.schema, this.page, this.app.getLogger()).instantiate();
|
|
784
|
+
// Add "manifestPath" for properties in static nodes
|
|
785
|
+
addManifestPathsToStaticNodes(this.schema.getSchema(), {
|
|
786
|
+
pageName: this.page.getPage().id,
|
|
787
|
+
manifest: this.app.getManifest()
|
|
788
|
+
});
|
|
789
|
+
this.cleanup();
|
|
790
|
+
return this.schema.finalize();
|
|
791
|
+
}
|
|
792
|
+
}
|
|
762
793
|
/**
|
|
763
794
|
* Generates an app specific schema for the FE V4 ListReport from the generic schema.
|
|
764
795
|
* Generic types are replaced by information from the app specific annotations.
|
|
@@ -770,44 +801,11 @@ function addManifestPathsToStaticNodes(appSchema, pathParams) {
|
|
|
770
801
|
* @returns {object} application-specific schema of the list report
|
|
771
802
|
*/
|
|
772
803
|
function generateListReportSchemaV4(generateParameters, genericSchema, entitySet, templateName) {
|
|
773
|
-
const
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
const selectionFieldAnnotation = alias && entityType?.annotations?.[alias]?.SelectionFields;
|
|
778
|
-
addSelectionFields(entityType, appSchema, selectionFieldAnnotation);
|
|
779
|
-
appSchema.properties[ux_specification_types_1.PropertyName.defaultTemplateAnnotationPath][ux_specification_types_1.SchemaTag.hidden] = true;
|
|
780
|
-
//enum for annotation path as part of QuickVariantSelection
|
|
781
|
-
(0, common_1.addEnumForSingleTabVariant)(entityType, appSchema, ux_specification_types_1.DefinitionName.AnnotationPathAsObject);
|
|
782
|
-
if (generateParameters.manifest) {
|
|
783
|
-
//Find page in targets
|
|
784
|
-
const pages = generateParameters.manifest[ux_specification_types_1.ManifestSection.ui5].routing
|
|
785
|
-
.targets;
|
|
786
|
-
if (!pages) {
|
|
787
|
-
(0, extensionLogger_1.log)(generateParameters.logger, {
|
|
788
|
-
severity: "error" /* LogSeverity.Error */,
|
|
789
|
-
message: i18next_1.default.t('NOPAGES', { appId: generateParameters.manifest['sap.app']['id'] }),
|
|
790
|
-
location: {
|
|
791
|
-
path: ux_specification_types_1.MANIFESTPATH,
|
|
792
|
-
range: [ux_specification_types_1.ManifestSection.generic]
|
|
793
|
-
}
|
|
794
|
-
});
|
|
795
|
-
return appSchema;
|
|
796
|
-
}
|
|
797
|
-
const v4Page = (0, utils_1.findPageV4)(pages, templateName, entitySet, generateParameters.logger);
|
|
798
|
-
if (!v4Page) {
|
|
799
|
-
return appSchema;
|
|
800
|
-
}
|
|
801
|
-
addTableAndViews(appSchema, v4Page, generateParameters, alias);
|
|
802
|
-
// Add "manifestPath" for properties in static nodes
|
|
803
|
-
addManifestPathsToStaticNodes(appSchema, {
|
|
804
|
-
pageName: v4Page.id,
|
|
805
|
-
manifest: generateParameters.manifest
|
|
806
|
-
});
|
|
804
|
+
const listReport = new ListReportPage(generateParameters, genericSchema, templateName);
|
|
805
|
+
if (!listReport.app.getManifest()) {
|
|
806
|
+
listReport.cleanup();
|
|
807
|
+
return listReport.schema.finalize();
|
|
807
808
|
}
|
|
808
|
-
|
|
809
|
-
delete appSchema.definitions.Action;
|
|
810
|
-
(0, common_1.updatePropertyIndices)(appSchema, ROOT_PROPERTIES_ORDER);
|
|
811
|
-
return appSchema;
|
|
809
|
+
return listReport.generate();
|
|
812
810
|
}
|
|
813
811
|
//# sourceMappingURL=listReport.js.map
|