@sap/ux-specification 1.71.43 → 1.71.47
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 +71 -8
- package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
- package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
- package/dist/documentation/v2/v2-ListReport.html +1 -1
- package/dist/documentation/v2/v2-ObjectPage.html +1 -1
- package/dist/documentation/v2/v2-OverviewPage.html +1 -1
- package/dist/index-min.js +1 -1
- package/dist/schemas/v2/AnalyticalListPageConfig.json +75 -5
- package/dist/schemas/v2/ListReportConfig.json +75 -5
- package/dist/schemas/v2/ObjectPageConfig.json +229 -46
- package/dist/schemas/v2/OverviewPageConfig.json +0 -28
- package/dist/scripts/to-json-schema.js +9 -1
- package/dist/scripts/to-json-schema.js.map +1 -1
- package/dist/specification/v2/index-min.js +1 -1
- package/dist/src/apiTypes.d.ts +8 -0
- package/dist/src/specification/v2/controls/Card.d.ts +0 -8
- package/dist/src/specification/v2/controls/Card.js.map +1 -1
- package/dist/src/specification/v2/controls/{DataField.d.ts → Field.d.ts} +2 -2
- package/dist/src/specification/v2/controls/{DataField.js → Field.js} +1 -1
- package/dist/src/specification/v2/controls/Field.js.map +1 -0
- package/dist/src/specification/v2/controls/FormAction.d.ts +38 -0
- package/dist/src/specification/v2/controls/FormAction.js +15 -0
- package/dist/src/specification/v2/controls/FormAction.js.map +1 -0
- package/dist/src/specification/v2/controls/ObjectPageFooter.d.ts +11 -0
- package/dist/src/specification/v2/controls/ObjectPageFooter.js +3 -0
- package/dist/src/specification/v2/controls/ObjectPageFooter.js.map +1 -0
- package/dist/src/specification/v2/controls/ObjectPageForm.d.ts +4 -5
- package/dist/src/specification/v2/controls/ObjectPageHeaderAction.d.ts +20 -0
- package/dist/src/specification/v2/controls/ObjectPageSection.d.ts +21 -11
- package/dist/src/specification/v2/controls/ObjectPageSection.js.map +1 -1
- package/dist/src/specification/v2/controls/Table.d.ts +4 -0
- package/dist/src/specification/v2/controls/Table.js.map +1 -1
- package/dist/src/specification/v2/controls/ToolBar.d.ts +2 -6
- package/dist/src/specification/v2/controls/index.d.ts +4 -1
- package/dist/src/specification/v2/controls/index.js +1 -0
- package/dist/src/specification/v2/controls/index.js.map +1 -1
- package/dist/src/specification/v2/pages/ObjectPageConfig.d.ts +2 -1
- package/dist/src/sync/common/decoration/control.js +34 -19
- package/dist/src/sync/common/decoration/control.js.map +1 -1
- package/dist/src/sync/common/generate/index.d.ts +1 -0
- package/dist/src/sync/common/generate/index.js +1 -0
- package/dist/src/sync/common/generate/index.js.map +1 -1
- package/dist/src/sync/common/generate/objectPage.d.ts +31 -2
- package/dist/src/sync/common/generate/objectPage.js +183 -29
- package/dist/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/src/sync/common/generate/utils.d.ts +59 -0
- package/dist/src/sync/common/generate/utils.js +192 -0
- package/dist/src/sync/common/generate/utils.js.map +1 -0
- package/dist/src/sync/common/import/utils.d.ts +6 -0
- package/dist/src/sync/common/import/utils.js +21 -0
- package/dist/src/sync/common/import/utils.js.map +1 -1
- package/dist/src/sync/common/importProject.js +45 -39
- package/dist/src/sync/common/importProject.js.map +1 -1
- package/dist/src/sync/common/types.d.ts +7 -3
- package/dist/src/sync/common/types.js +4 -0
- package/dist/src/sync/common/types.js.map +1 -1
- package/dist/src/sync/common/utils.d.ts +3 -23
- package/dist/src/sync/common/utils.js +90 -162
- package/dist/src/sync/common/utils.js.map +1 -1
- package/dist/src/sync/v2/export/controls/Card.d.ts +0 -2
- package/dist/src/sync/v2/export/controls/Card.js +0 -14
- package/dist/src/sync/v2/export/controls/Card.js.map +1 -1
- package/dist/src/sync/v2/export/controls/Field.d.ts +4 -0
- package/dist/src/sync/v2/export/controls/{DataField.js → Field.js} +6 -6
- package/dist/src/sync/v2/export/controls/Field.js.map +1 -0
- package/dist/src/sync/v2/export/controls/FormAction.d.ts +15 -0
- package/dist/src/sync/v2/export/controls/FormAction.js +127 -0
- package/dist/src/sync/v2/export/controls/FormAction.js.map +1 -0
- package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts +5 -1
- package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js +42 -3
- package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +25 -0
- package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +113 -0
- package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -0
- package/dist/src/sync/v2/export/controls/ObjectPageTable.js +1 -2
- package/dist/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/src/sync/v2/export/controls/Table.d.ts +8 -1
- package/dist/src/sync/v2/export/controls/Table.js +69 -13
- package/dist/src/sync/v2/export/controls/Table.js.map +1 -1
- package/dist/src/sync/v2/export/controls/index.d.ts +3 -1
- package/dist/src/sync/v2/export/controls/index.js +3 -1
- package/dist/src/sync/v2/export/controls/index.js.map +1 -1
- package/dist/src/sync/v2/export/export.js +126 -86
- package/dist/src/sync/v2/export/export.js.map +1 -1
- package/dist/src/sync/v2/export/exportPage.js +3 -2
- package/dist/src/sync/v2/export/exportPage.js.map +1 -1
- package/dist/src/sync/v2/generate/analyticalListReport.d.ts +3 -9
- package/dist/src/sync/v2/generate/analyticalListReport.js +13 -13
- package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/src/sync/v2/generate/generate.js +28 -6
- package/dist/src/sync/v2/generate/generate.js.map +1 -1
- package/dist/src/sync/v2/generate/listReport.d.ts +11 -9
- package/dist/src/sync/v2/generate/listReport.js +22 -12
- package/dist/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/src/sync/v2/generate/objectPage.d.ts +3 -10
- package/dist/src/sync/v2/generate/objectPage.js +189 -141
- package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/src/sync/v2/generate/utils.d.ts +1 -2
- package/dist/src/sync/v2/generate/utils.js +8 -3
- package/dist/src/sync/v2/generate/utils.js.map +1 -1
- package/dist/src/sync/v2/import/pages/objectPage.js +172 -98
- package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
- package/dist/src/sync/v2/types.d.ts +12 -0
- package/dist/src/sync/v2/types.js +11 -0
- package/dist/src/sync/v2/types.js.map +1 -1
- package/dist/src/sync/v4/utils/StableIdHelper.d.ts +0 -3
- package/dist/src/sync/v4/utils/StableIdHelper.js +9 -11
- package/dist/src/sync/v4/utils/StableIdHelper.js.map +1 -1
- package/package.json +5 -5
- package/dist/src/specification/v2/controls/DataField.js.map +0 -1
- package/dist/src/sync/v2/export/controls/DataField.d.ts +0 -4
- package/dist/src/sync/v2/export/controls/DataField.js.map +0 -1
|
@@ -19,7 +19,7 @@ function handleActionRecord(appSchema, entityType, actions, lineItemPath, lineIt
|
|
|
19
19
|
// Action but not inline action
|
|
20
20
|
if (lineItemRecord.Determining !== true) {
|
|
21
21
|
//no footer bar -> toolbar action
|
|
22
|
-
const actionDefinition = `ToolBarAction<${lineItemRecord.Action}>`;
|
|
22
|
+
const actionDefinition = `ToolBarAction<${common_1.prepareRef(lineItemRecord.Action)}>`;
|
|
23
23
|
const description = common_1.getDatafieldDescription(lineItemRecord, entityType);
|
|
24
24
|
actions['properties'][`DataFieldForAction::${lineItemRecord.Action}`] = {
|
|
25
25
|
$ref: common_1.DEFINITION_LINK_PREFIX + actionDefinition,
|
|
@@ -54,8 +54,8 @@ function addLineItemsType(appSchema, lineItemAnnotation, entityType, lineItemId,
|
|
|
54
54
|
if (lineItemAnnotation) {
|
|
55
55
|
let i = 0;
|
|
56
56
|
lineItemAnnotation.forEach((lineItemRecord) => {
|
|
57
|
-
if (lineItemRecord.$Type ===
|
|
58
|
-
(lineItemRecord.$Type ===
|
|
57
|
+
if (lineItemRecord.$Type === "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation" /* DataFieldForIntentBasedNavigation */ ||
|
|
58
|
+
(lineItemRecord.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" /* DataFieldForAction */ &&
|
|
59
59
|
(lineItemRecord.Inline !== true || lineItemRecord.Determining === true))) {
|
|
60
60
|
handleActionRecord(appSchema, entityType, actions, lineItemPath, lineItemRecord, i);
|
|
61
61
|
}
|
|
@@ -247,6 +247,7 @@ function processSingleProperty(metaDataDefinition, schema, pageType, factory, pr
|
|
|
247
247
|
if (propertyDefinition.type === 'object' || propertyDefinition.$ref) {
|
|
248
248
|
const nextDefinition = common_1.getNextTargetDefinition(schema, '', {}, propertyDefinition, propertyKey, factory, pageType);
|
|
249
249
|
if (nextDefinition) {
|
|
250
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
250
251
|
processMetadata(schema, nextDefinition.targetDefinition, nextDefinition.configObject, pageType, factory);
|
|
251
252
|
}
|
|
252
253
|
}
|
|
@@ -254,6 +255,7 @@ function processSingleProperty(metaDataDefinition, schema, pageType, factory, pr
|
|
|
254
255
|
propertyDefinition['anyOf'].forEach((element) => {
|
|
255
256
|
const nextDefinition = common_1.getNextTargetDefinition(schema, '', {}, element, propertyKey, factory, pageType);
|
|
256
257
|
if (nextDefinition) {
|
|
258
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
257
259
|
processMetadata(schema, nextDefinition.targetDefinition, nextDefinition.configObject, pageType, factory);
|
|
258
260
|
}
|
|
259
261
|
});
|
|
@@ -274,6 +276,7 @@ function processProperties(schema, schemaDefinition, metaDataDefinition, propert
|
|
|
274
276
|
schemaDefinition[propertiesSection]['anyOf'].forEach((element) => {
|
|
275
277
|
const nextDefinition = common_1.getNextTargetDefinition(schema, '', {}, element, propertyKey, factory, pageType);
|
|
276
278
|
if (nextDefinition) {
|
|
279
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
277
280
|
processMetadata(schema, nextDefinition.targetDefinition, nextDefinition.configObject, pageType, factory);
|
|
278
281
|
}
|
|
279
282
|
});
|
|
@@ -284,6 +287,7 @@ function processProperties(schema, schemaDefinition, metaDataDefinition, propert
|
|
|
284
287
|
propertyDefinition['anyOf'].forEach((element) => {
|
|
285
288
|
const nextDefinition = common_1.getNextTargetDefinition(schema, '', {}, element, propertyKey, factory, pageType);
|
|
286
289
|
if (nextDefinition) {
|
|
290
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
287
291
|
processMetadata(schema, nextDefinition.targetDefinition, nextDefinition.configObject, pageType, factory);
|
|
288
292
|
}
|
|
289
293
|
});
|
|
@@ -292,6 +296,7 @@ function processProperties(schema, schemaDefinition, metaDataDefinition, propert
|
|
|
292
296
|
if (propertyKey === '$ref') {
|
|
293
297
|
const nextDefinition = common_1.getNextTargetDefinition(schema, '', {}, schemaDefinition[propertiesSection], propertyKey, factory, pageType);
|
|
294
298
|
if (nextDefinition) {
|
|
299
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
295
300
|
processMetadata(schema, nextDefinition.targetDefinition, nextDefinition.configObject, pageType, factory);
|
|
296
301
|
}
|
|
297
302
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/sync/v2/generate/utils.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/sync/v2/generate/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,18 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const v2_1 = require("../../../../v2");
|
|
7
|
-
const common_1 = require("../../../common");
|
|
8
7
|
const table_1 = require("../controls/table");
|
|
9
8
|
const extensionLogger_1 = require("../../../../extensionLogger");
|
|
10
9
|
const utils_1 = require("../utils");
|
|
11
|
-
const
|
|
10
|
+
const common_1 = require("../../../common");
|
|
12
11
|
const manifest_1 = require("../../export/manifest");
|
|
13
12
|
const sapUiPageV2_1 = require("../.../../../../../specification/v2/webapp/manifest/sapUiPageV2");
|
|
14
13
|
const i18next_1 = __importDefault(require("i18next"));
|
|
15
14
|
const i18n_1 = require("../../../../i18n/i18n");
|
|
16
|
-
const
|
|
15
|
+
const common_2 = require("../../../../specification/common");
|
|
17
16
|
const listReport_1 = require("../pages/listReport");
|
|
18
17
|
const factory_1 = require("../../export/factory");
|
|
18
|
+
const types_1 = require("../../types");
|
|
19
19
|
/**
|
|
20
20
|
* Prepares the list of flex changes
|
|
21
21
|
* @param change - the flex change (UI Adaptation)
|
|
@@ -28,21 +28,21 @@ function prepareFlexChanges(changes, entitySet, logger) {
|
|
|
28
28
|
changes.forEach((changeString) => {
|
|
29
29
|
var _a, _b;
|
|
30
30
|
try {
|
|
31
|
-
const change =
|
|
31
|
+
const change = common_1.parseChangeString(changeString);
|
|
32
32
|
if (change && ((_a = change.controlId) === null || _a === void 0 ? void 0 : _a.includes(sapUiPageV2_1.FE_TEMPLATE_V2_OBJECT_PAGE)) && ((_b = change.controlId) === null || _b === void 0 ? void 0 : _b.includes(entitySet))) {
|
|
33
33
|
let selectorId = change.controlId.split('--')[1].replace(/:3a:3a/g, '::');
|
|
34
34
|
const complexIdMatch = new RegExp('.+DataField.+:::sSmartTableId::.+');
|
|
35
35
|
if (complexIdMatch.exec(selectorId) !== null) {
|
|
36
36
|
selectorId = selectorId.split('template:::TableColumn:::')[1];
|
|
37
37
|
}
|
|
38
|
-
const
|
|
38
|
+
const selectorIdParts = selectorId.split(':::');
|
|
39
39
|
let id, facetID;
|
|
40
|
-
if (
|
|
41
|
-
const lastIdParts =
|
|
40
|
+
if (selectorIdParts.length === 1) {
|
|
41
|
+
const lastIdParts = selectorIdParts[0].split('-');
|
|
42
42
|
id = lastIdParts[lastIdParts.length - 1];
|
|
43
|
-
if (
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
if (selectorIdParts[0].indexOf("com.sap.vocabularies.UI.v1.LineItem" /* LineItem */) >= 0 ||
|
|
44
|
+
selectorIdParts[0].indexOf('UI.LineItem') >= 0 ||
|
|
45
|
+
selectorIdParts[0].indexOf('::Table') >= 0) {
|
|
46
46
|
facetID = lastIdParts[0]
|
|
47
47
|
.split('::Table')[0]
|
|
48
48
|
.split('::responsiveTable')[0]
|
|
@@ -52,7 +52,6 @@ function prepareFlexChanges(changes, entitySet, logger) {
|
|
|
52
52
|
const idParts = id.split('::');
|
|
53
53
|
if (idParts.length > 1) {
|
|
54
54
|
facetID = idParts[0];
|
|
55
|
-
id = idParts[1];
|
|
56
55
|
}
|
|
57
56
|
else if (lastIdParts[0].indexOf('::') > -1) {
|
|
58
57
|
facetID = lastIdParts[0].split('::')[0];
|
|
@@ -60,22 +59,19 @@ function prepareFlexChanges(changes, entitySet, logger) {
|
|
|
60
59
|
}
|
|
61
60
|
}
|
|
62
61
|
else if (selectorId.indexOf('sSmartTableId') >= 0) {
|
|
63
|
-
|
|
64
|
-
for (let index = 0; index < idParts.length; index++) {
|
|
65
|
-
const element = idParts[index];
|
|
62
|
+
for (const element of selectorIdParts) {
|
|
66
63
|
if (element.startsWith('sSmartTableId')) {
|
|
67
64
|
facetID = element
|
|
68
65
|
.split('sSmartTableId::')[1]
|
|
69
66
|
.split('::Table')[0]
|
|
70
67
|
.split('/responsiveTable')[0]
|
|
71
|
-
.replace(
|
|
68
|
+
.replace(`::${"com.sap.vocabularies.UI.v1.LineItem" /* LineItem */}`, `/@${"com.sap.vocabularies.UI.v1.LineItem" /* LineItem */}`);
|
|
72
69
|
break;
|
|
73
70
|
}
|
|
74
71
|
}
|
|
75
72
|
}
|
|
76
73
|
else {
|
|
77
|
-
facetID =
|
|
78
|
-
id = idParts[1];
|
|
74
|
+
facetID = selectorIdParts[0];
|
|
79
75
|
}
|
|
80
76
|
selectorId = selectorId
|
|
81
77
|
.replace(/:2f/g, '/')
|
|
@@ -105,19 +101,37 @@ function prepareFlexChanges(changes, entitySet, logger) {
|
|
|
105
101
|
});
|
|
106
102
|
return result;
|
|
107
103
|
}
|
|
104
|
+
const addFlexToConfig = (config, propertyKey, flexChange) => {
|
|
105
|
+
config[propertyKey] = flexChange;
|
|
106
|
+
};
|
|
107
|
+
const getSectionType = (schemaSection) => {
|
|
108
|
+
let reference;
|
|
109
|
+
if (schemaSection['$ref']) {
|
|
110
|
+
reference = schemaSection['$ref'].includes('<') ? schemaSection['$ref'].split('<')[0] : schemaSection['$ref'];
|
|
111
|
+
return reference.replace(common_1.DEFINITION_LINK_PREFIX, '');
|
|
112
|
+
}
|
|
113
|
+
else if (schemaSection['properties']['subsections']['$ref']) {
|
|
114
|
+
reference = schemaSection['properties']['subsections']['$ref'];
|
|
115
|
+
reference = reference.includes('<') ? reference.split('<')[0] : reference;
|
|
116
|
+
return reference.replace(common_1.DEFINITION_LINK_PREFIX, '');
|
|
117
|
+
}
|
|
118
|
+
else if (schemaSection['properties']['subsections']) {
|
|
119
|
+
return types_1.SectionTypeV2.SubSection;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
108
122
|
/**
|
|
109
123
|
* Transfers settings from manifest and flexChanges to object page config
|
|
110
124
|
* @param {ImportObjectPageV2Parameters} importParameters - object comprising all input data
|
|
111
125
|
* @param configPart - part of the configuration to be filled
|
|
112
|
-
* @param manifest - manifest.json of the app
|
|
113
126
|
* @param schemaDefinition - current section of the app specific schema
|
|
114
127
|
* @param pageKeys - list of page keys (comprises the one entry describing the given page)
|
|
115
128
|
* @param flexChanges - list of flex changes (pre-processed by prepareFlexChanges)
|
|
116
129
|
* @param sectionId - ID of the given section (optional)
|
|
117
|
-
* @param sectionTitle - title of the section (
|
|
130
|
+
* @param sectionTitle - title of the section (optional)
|
|
118
131
|
* @param actionId - ID of the given action (optional)
|
|
119
132
|
*/
|
|
120
133
|
function transferSettingsAndFlexChanges(importParameters, configPart, schemaDefinition, pageKeys, flexChanges, sectionId, sectionTitle, actionId) {
|
|
134
|
+
var _a;
|
|
121
135
|
if (!schemaDefinition) {
|
|
122
136
|
return;
|
|
123
137
|
}
|
|
@@ -128,18 +142,16 @@ function transferSettingsAndFlexChanges(importParameters, configPart, schemaDefi
|
|
|
128
142
|
}
|
|
129
143
|
const unescapedId = sectionId && sectionId.replace(/::@com.sap.vocabularies/g, v2_1.VOCWITHSLASH);
|
|
130
144
|
for (const propertyKey in schemaDefinition['properties'] || schemaDefinition) {
|
|
131
|
-
const syncRule =
|
|
145
|
+
const syncRule = common_1.getReflectMetadata(configPart, propertyKey);
|
|
132
146
|
if (syncRule || propertyKey === 'columns') {
|
|
133
147
|
if (propertyKey === 'columns' || (syncRule && syncRule.flex)) {
|
|
134
148
|
if (sectionId) {
|
|
135
149
|
for (const selector in flexChanges) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
flexChanges[selector].facetId === unescapedId ||
|
|
142
|
-
flexChanges[selector].facetId === sectionTitle)) {
|
|
150
|
+
const flexChange = flexChanges[selector];
|
|
151
|
+
const propertyIdMatch = flexChange.propertyId === propertyKey;
|
|
152
|
+
const isTableColumn = propertyKey === 'columns' && flexChange.controlType === common_1.ControlType.TableColumn;
|
|
153
|
+
const facetIds = [sectionId, unescapedId, sectionTitle];
|
|
154
|
+
if ((propertyIdMatch || isTableColumn) && facetIds.indexOf(flexChange === null || flexChange === void 0 ? void 0 : flexChange.facetId) > -1) {
|
|
143
155
|
table_1.addFlexForTable(configPart, flexChanges[selector], importParameters.jsonSchema);
|
|
144
156
|
}
|
|
145
157
|
}
|
|
@@ -147,13 +159,32 @@ function transferSettingsAndFlexChanges(importParameters, configPart, schemaDefi
|
|
|
147
159
|
else {
|
|
148
160
|
for (const selector in flexChanges) {
|
|
149
161
|
const flexChange = flexChanges[selector];
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
162
|
+
const actionIdMatch = !actionId || new RegExp(`.*${actionId}\\d?$`).test(selector);
|
|
163
|
+
const propertyIdMatch = flexChange.propertyId === propertyKey;
|
|
164
|
+
const schemaControlType = (_a = schemaDefinition['properties'][flexChange.propertyId]) === null || _a === void 0 ? void 0 : _a.controlType;
|
|
165
|
+
const controlTypeMatch = flexChange.controlType === schemaControlType;
|
|
166
|
+
if (!flexChange.facetId && actionIdMatch && propertyIdMatch) {
|
|
167
|
+
addFlexToConfig(configPart, propertyKey, flexChange.newValue);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
else if (flexChange.facetId === 'action' &&
|
|
171
|
+
!sectionTitle &&
|
|
172
|
+
actionIdMatch &&
|
|
173
|
+
propertyIdMatch) {
|
|
174
|
+
// Actions
|
|
175
|
+
addFlexToConfig(configPart, propertyKey, flexChange.newValue);
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
else if (!sectionTitle && actionIdMatch && propertyIdMatch && controlTypeMatch) {
|
|
179
|
+
addFlexToConfig(configPart, propertyKey, flexChange.newValue);
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
else if (selector.includes(sectionTitle) &&
|
|
183
|
+
actionIdMatch &&
|
|
184
|
+
propertyIdMatch &&
|
|
185
|
+
controlTypeMatch) {
|
|
186
|
+
// Sections
|
|
187
|
+
addFlexToConfig(configPart, propertyKey, flexChange.newValue);
|
|
157
188
|
break;
|
|
158
189
|
}
|
|
159
190
|
}
|
|
@@ -185,7 +216,7 @@ function transferSettingsAndFlexChanges(importParameters, configPart, schemaDefi
|
|
|
185
216
|
if (deprecated) {
|
|
186
217
|
extensionLogger_1.log(importParameters.logger, {
|
|
187
218
|
severity: "warning" /* Warning */,
|
|
188
|
-
message:
|
|
219
|
+
message: common_1.getTextForDeprecated(key, deprecated),
|
|
189
220
|
location: {
|
|
190
221
|
path: 'webapp/manifest.json/',
|
|
191
222
|
range: path.split('/')
|
|
@@ -212,13 +243,13 @@ function transferSettingsAndFlexChanges(importParameters, configPart, schemaDefi
|
|
|
212
243
|
*/
|
|
213
244
|
function fillFields(importParameters, escapedId, fieldProperties, configPart, factory, pageKeys, flexChanges) {
|
|
214
245
|
let fieldId;
|
|
215
|
-
configPart[escapedId]['form'] = {
|
|
246
|
+
configPart[escapedId]['form']['fields'] = {};
|
|
216
247
|
for (const fieldProperty in fieldProperties) {
|
|
217
248
|
fieldId = fieldProperty.includes('::')
|
|
218
249
|
? fieldProperty.split('::')[1] + '::GroupElement'
|
|
219
250
|
: fieldProperty + '::GroupElement';
|
|
220
|
-
configPart[escapedId]['form']['fields'][fieldProperty] = factory.createInstance(
|
|
221
|
-
transferSettingsAndFlexChanges(importParameters, configPart[escapedId]['form']['fields'][fieldProperty], importParameters.jsonSchema['definitions']['
|
|
251
|
+
configPart[escapedId]['form']['fields'][fieldProperty] = factory.createInstance(common_2.PageType.ObjectPage, 'Field');
|
|
252
|
+
transferSettingsAndFlexChanges(importParameters, configPart[escapedId]['form']['fields'][fieldProperty], importParameters.jsonSchema['definitions']['Field'], pageKeys, flexChanges, undefined, undefined, fieldId);
|
|
222
253
|
if (Object.keys(configPart[escapedId]['form']['fields'][fieldProperty]).length === 0) {
|
|
223
254
|
delete configPart[escapedId]['form']['fields'][fieldProperty];
|
|
224
255
|
}
|
|
@@ -226,12 +257,6 @@ function fillFields(importParameters, escapedId, fieldProperties, configPart, fa
|
|
|
226
257
|
if (Object.keys(configPart[escapedId]['form']['fields']).length === 0) {
|
|
227
258
|
delete configPart[escapedId]['form']['fields'];
|
|
228
259
|
}
|
|
229
|
-
if (Object.keys(configPart[escapedId]['form']).length === 0) {
|
|
230
|
-
delete configPart[escapedId]['form'];
|
|
231
|
-
}
|
|
232
|
-
if (Object.keys(configPart[escapedId]).length === 0) {
|
|
233
|
-
delete configPart[escapedId];
|
|
234
|
-
}
|
|
235
260
|
}
|
|
236
261
|
/**
|
|
237
262
|
* Fill table settings in config.json
|
|
@@ -244,10 +269,11 @@ function fillFields(importParameters, escapedId, fieldProperties, configPart, fa
|
|
|
244
269
|
* @param pageKeys - list of page keys (comprises the one entry describing the given page)
|
|
245
270
|
* @param logger - Logger class for logging messages
|
|
246
271
|
* @param sectionId - ID of the current section
|
|
272
|
+
* @param sectionType - Section type (Sub/Section Table)
|
|
247
273
|
*/
|
|
248
|
-
function fillTableInConfig(importParameters, manifestSettings, flexChanges, factory, configPart, pageKeys, sectionId) {
|
|
274
|
+
function fillTableInConfig(importParameters, manifestSettings, flexChanges, factory, configPart, pageKeys, sectionId, sectionType) {
|
|
249
275
|
const escapedSectionId = sectionId.replace(/\/@/g, '::');
|
|
250
|
-
const schemaSection = importParameters.jsonSchema['definitions'][
|
|
276
|
+
const schemaSection = importParameters.jsonSchema['definitions'][`${sectionType}<${sectionId}>`];
|
|
251
277
|
const sectionTitle = schemaSection.title ? schemaSection.title.split(v2_1.FacetTitlePrefix)[1] : undefined;
|
|
252
278
|
const manifestKey = escapedSectionId.replace('@com.sap', 'com.sap');
|
|
253
279
|
const manifestSection = manifestSettings && manifestSettings.sections && manifestSettings.sections[manifestKey];
|
|
@@ -260,8 +286,9 @@ function fillTableInConfig(importParameters, manifestSettings, flexChanges, fact
|
|
|
260
286
|
: 'ResponsiveTable'
|
|
261
287
|
: 'ResponsiveTable';
|
|
262
288
|
//Instantiate metadata
|
|
263
|
-
const OPtable = factory.createInstance(
|
|
264
|
-
configPart[escapedSectionId] = { table:
|
|
289
|
+
const OPtable = factory.createInstance(common_2.PageType.ObjectPage, `ObjectPage${tableType}`);
|
|
290
|
+
configPart[escapedSectionId] = factory.createInstance(common_2.PageType.ObjectPage, sectionType, { table: {} });
|
|
291
|
+
configPart[escapedSectionId]['table'] = OPtable;
|
|
265
292
|
let localJsonSchema;
|
|
266
293
|
const schemaDefinitions = importParameters.jsonSchema['definitions'];
|
|
267
294
|
if (tableType) {
|
|
@@ -270,6 +297,7 @@ function fillTableInConfig(importParameters, manifestSettings, flexChanges, fact
|
|
|
270
297
|
else {
|
|
271
298
|
localJsonSchema = schemaDefinitions['ObjectPageResponsiveTable<' + escapedSectionId + '>'];
|
|
272
299
|
}
|
|
300
|
+
transferSettingsAndFlexChanges(importParameters, configPart[escapedSectionId], schemaSection, pageKeys, flexChanges, undefined, sectionTitle);
|
|
273
301
|
transferSettingsAndFlexChanges(importParameters, configPart[escapedSectionId]['table'], localJsonSchema, pageKeys, flexChanges, sectionId, sectionTitle);
|
|
274
302
|
}
|
|
275
303
|
}
|
|
@@ -293,7 +321,36 @@ function fillCustomColumnsInConfig(importParameters, escapedSectionId, sectionTi
|
|
|
293
321
|
key: sectionTitle || escapedSectionId.replace('@', ''),
|
|
294
322
|
target: customColumnTarget
|
|
295
323
|
};
|
|
296
|
-
listReport_1.addFragments(configPart[escapedSectionId], importParameters.manifest, v2Page,
|
|
324
|
+
listReport_1.addFragments(configPart[escapedSectionId], importParameters.manifest, v2Page, common_2.PageType.ObjectPage, importParameters.fragments, objectPageSectionData);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Fills the action of the configuration
|
|
329
|
+
* @param {ImportObjectPageV2Parameters} importParameters - object comprising all input data
|
|
330
|
+
* @param actionProperties - current properties' list (of action)
|
|
331
|
+
* @param configPart - the given part of the object page config
|
|
332
|
+
* @param actionInstance - type of action that should be initiated
|
|
333
|
+
* @param {MetadataInstanceInterface} factory - factory, for generating the access to reflect-metadata
|
|
334
|
+
* @param pageKeys - list of page keys (comprises the one entry describing the given page)
|
|
335
|
+
* @param flexChanges - list of flex changes (pre-processed by prepareFlexChanges)
|
|
336
|
+
*/
|
|
337
|
+
function fillActions(importParameters, actionProperties, configPart, factory, pageKeys, flexChanges, sectionId) {
|
|
338
|
+
let actionId, configActionId;
|
|
339
|
+
configPart['actions'] = {};
|
|
340
|
+
const actionType = sectionId ? 'FormAction' : 'HeaderAction';
|
|
341
|
+
if (flexChanges.constructor === Object && Object.keys(flexChanges).length !== 0) {
|
|
342
|
+
for (const actionProperty in actionProperties) {
|
|
343
|
+
configActionId = actionProperty.replace(/@/g, '::');
|
|
344
|
+
actionId = (sectionId ? `${actionProperty}${sectionId}` : actionProperty).replace(/@/g, '::');
|
|
345
|
+
configPart['actions'][configActionId] = factory.createInstance(common_2.PageType.ObjectPage, actionType);
|
|
346
|
+
transferSettingsAndFlexChanges(importParameters, configPart['actions'][configActionId], importParameters.jsonSchema['definitions'][actionType], pageKeys, flexChanges, undefined, undefined, actionId);
|
|
347
|
+
if (sectionId && Object.keys(configPart['actions'][configActionId]).length === 0) {
|
|
348
|
+
delete configPart['actions'][configActionId];
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
if (sectionId && Object.keys(configPart['actions']).length === 0) {
|
|
353
|
+
delete configPart['actions'];
|
|
297
354
|
}
|
|
298
355
|
}
|
|
299
356
|
/**
|
|
@@ -308,66 +365,83 @@ function fillCustomColumnsInConfig(importParameters, escapedSectionId, sectionTi
|
|
|
308
365
|
* @param {ObjectPageConfig} objectPageConfig - page config object.
|
|
309
366
|
*/
|
|
310
367
|
function fillSectionsInConfig(importParameters, sectionProperties, manifestSettings, configPart, factory, pageKeys, flexChanges, v2Page, objectPageConfig) {
|
|
368
|
+
var _a, _b;
|
|
311
369
|
let sectionTitle;
|
|
312
370
|
for (const sectionId in sectionProperties) {
|
|
313
371
|
const escapedSectionId = sectionId.replace(/\/@/g, '::');
|
|
314
372
|
let schemaSection = sectionProperties[sectionId];
|
|
315
373
|
if (schemaSection['$ref'] &&
|
|
316
|
-
schemaSection
|
|
317
|
-
|
|
374
|
+
(getSectionType(schemaSection) === types_1.SectionTypeV2.SectionTable ||
|
|
375
|
+
getSectionType(schemaSection) === types_1.SectionTypeV2.SubSectionTable)) {
|
|
376
|
+
const sectionType = getSectionType(schemaSection);
|
|
377
|
+
fillTableInConfig(importParameters, manifestSettings, flexChanges, factory, configPart, pageKeys, sectionId, sectionType);
|
|
318
378
|
// Custom column ref
|
|
319
379
|
fillCustomColumnsInConfig(importParameters, escapedSectionId, sectionTitle, configPart, v2Page);
|
|
320
380
|
}
|
|
321
|
-
else if (schemaSection['properties'] && schemaSection['properties']['subsections']) {
|
|
322
|
-
// Section with subsections
|
|
323
|
-
configPart[escapedSectionId] = {
|
|
324
|
-
subsections: {}
|
|
325
|
-
};
|
|
326
|
-
schemaSection = importParameters.jsonSchema['definitions']['ObjectPageSectionV2<' + escapedSectionId + '>'];
|
|
327
|
-
sectionTitle = schemaSection.title ? schemaSection.title.split(v2_1.FacetTitlePrefix)[1] : undefined;
|
|
328
|
-
fillSectionsInConfig(importParameters, schemaSection['properties'], manifestSettings, configPart[escapedSectionId]['subsections'], factory, pageKeys, flexChanges, v2Page, objectPageConfig);
|
|
329
|
-
}
|
|
330
381
|
else if (schemaSection['$ref'] &&
|
|
331
|
-
schemaSection
|
|
332
|
-
|
|
333
|
-
|
|
382
|
+
(getSectionType(schemaSection) === types_1.SectionTypeV2.SectionChart ||
|
|
383
|
+
getSectionType(schemaSection) === types_1.SectionTypeV2.SubSectionChart)) {
|
|
384
|
+
// Section without subsections
|
|
385
|
+
const sectionType = getSectionType(schemaSection);
|
|
386
|
+
schemaSection = importParameters.jsonSchema['definitions'][`${sectionType}<${sectionId}>`];
|
|
387
|
+
const sectionTitle = common_1.getSectionTitle(schemaSection, importParameters.jsonSchema);
|
|
334
388
|
const manifestKey = escapedSectionId.replace('@com.sap', 'com.sap');
|
|
335
389
|
const manifestSection = manifestSettings && manifestSettings.sections && manifestSettings.sections[manifestKey];
|
|
336
|
-
|
|
337
|
-
configPart[escapedSectionId] =
|
|
390
|
+
configPart[escapedSectionId] = factory.createInstance(common_2.PageType.ObjectPage, sectionType, { chart: {} });
|
|
391
|
+
configPart[escapedSectionId]['chart'] = factory.createInstance(common_2.PageType.ObjectPage, 'ObjectPageChart');
|
|
338
392
|
if (manifestSection || flexChanges) {
|
|
393
|
+
transferSettingsAndFlexChanges(importParameters, configPart[escapedSectionId], schemaSection, pageKeys, flexChanges, undefined, sectionTitle);
|
|
339
394
|
transferSettingsAndFlexChanges(importParameters, configPart[escapedSectionId]['chart'], importParameters.jsonSchema['definitions']['ObjectPageChart'], pageKeys, flexChanges, sectionId, sectionTitle);
|
|
340
395
|
}
|
|
341
396
|
}
|
|
342
397
|
else if (schemaSection['$ref'] &&
|
|
343
|
-
schemaSection
|
|
344
|
-
|
|
398
|
+
(getSectionType(schemaSection) === types_1.SectionTypeV2.SectionForm ||
|
|
399
|
+
getSectionType(schemaSection) === types_1.SectionTypeV2.SubSectionForm)) {
|
|
400
|
+
const sectionType = getSectionType(schemaSection);
|
|
401
|
+
schemaSection = importParameters.jsonSchema['definitions'][`${sectionType}<${sectionId}>`];
|
|
402
|
+
const sectionTitle = common_1.getSectionTitle(schemaSection, importParameters.jsonSchema);
|
|
403
|
+
const formId = schemaSection['properties']['form']['$ref'].split('SectionForm')[1];
|
|
404
|
+
configPart[escapedSectionId] = factory.createInstance(common_2.PageType.ObjectPage, sectionType, { form: {} });
|
|
405
|
+
if (flexChanges) {
|
|
406
|
+
transferSettingsAndFlexChanges(importParameters, configPart[escapedSectionId], schemaSection, pageKeys, flexChanges, undefined, sectionTitle);
|
|
407
|
+
}
|
|
408
|
+
const formActions = importParameters.jsonSchema['definitions'][`SectionActions${formId}`];
|
|
409
|
+
if (formActions['properties']) {
|
|
410
|
+
fillActions(importParameters, formActions.properties, configPart[escapedSectionId]['form'], factory, pageKeys, flexChanges, `${escapedSectionId}::FormAction`);
|
|
411
|
+
}
|
|
345
412
|
const formFields = importParameters.jsonSchema['definitions'][`SectionFields${formId}`];
|
|
346
413
|
if (formFields['properties']) {
|
|
347
|
-
const formConfig = factory.createInstance(common_3.PageType.ObjectPage, 'ObjectPageForm');
|
|
348
|
-
configPart[escapedSectionId] = { form: formConfig };
|
|
349
414
|
fillFields(importParameters, escapedSectionId, formFields.properties, configPart, factory, pageKeys, flexChanges);
|
|
350
415
|
}
|
|
416
|
+
if (Object.keys(configPart[escapedSectionId]['form']).length === 0) {
|
|
417
|
+
delete configPart[escapedSectionId]['form'];
|
|
418
|
+
}
|
|
419
|
+
if (Object.keys(configPart[escapedSectionId]).length === 0) {
|
|
420
|
+
delete configPart[escapedSectionId];
|
|
421
|
+
}
|
|
351
422
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
423
|
+
else if ((schemaSection['properties'] && schemaSection['properties']['subsections']) ||
|
|
424
|
+
(schemaSection['$ref'] &&
|
|
425
|
+
(getSectionType(schemaSection) === types_1.SectionTypeV2.Section ||
|
|
426
|
+
getSectionType(schemaSection) === types_1.SectionTypeV2.SubSection))) {
|
|
427
|
+
// Section with subsections
|
|
428
|
+
const sectionType = getSectionType(schemaSection);
|
|
429
|
+
schemaSection = importParameters.jsonSchema['definitions'][`${sectionType}<${sectionId}>`];
|
|
430
|
+
const sectionTitle = common_1.getSectionTitle(schemaSection, importParameters.jsonSchema);
|
|
431
|
+
configPart[escapedSectionId] = factory.createInstance(common_2.PageType.ObjectPage, sectionType, {
|
|
432
|
+
subsections: {}
|
|
433
|
+
});
|
|
434
|
+
if (flexChanges) {
|
|
435
|
+
transferSettingsAndFlexChanges(importParameters, configPart[escapedSectionId], schemaSection, pageKeys, flexChanges, undefined, sectionTitle);
|
|
436
|
+
}
|
|
437
|
+
let currentSchemaSection;
|
|
438
|
+
if ((_b = (_a = schemaSection['properties']) === null || _a === void 0 ? void 0 : _a['subsections']) === null || _b === void 0 ? void 0 : _b['properties']) {
|
|
439
|
+
currentSchemaSection = schemaSection['properties']['subsections']['properties'];
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
currentSchemaSection = schemaSection['properties'];
|
|
443
|
+
}
|
|
444
|
+
fillSectionsInConfig(importParameters, currentSchemaSection, manifestSettings, configPart[escapedSectionId]['subsections'], factory, pageKeys, flexChanges, v2Page, objectPageConfig);
|
|
371
445
|
}
|
|
372
446
|
}
|
|
373
447
|
}
|
|
@@ -381,12 +455,12 @@ function fillActions(importParameters, actionProperties, configPart, factory, pa
|
|
|
381
455
|
* @returns {ObjectPageConfig} - the object page configuration (JSON)
|
|
382
456
|
*/
|
|
383
457
|
function fillConfig(importParameters, pageKeys, flexChangesForTransfer, v2Page, factory) {
|
|
384
|
-
const objectPageConfig = factory.createPageInstance(
|
|
458
|
+
const objectPageConfig = factory.createPageInstance(common_2.PageType.ObjectPage);
|
|
385
459
|
const manifestSettings = v2Page.component.settings;
|
|
386
460
|
// Transfer page information
|
|
387
461
|
transferSettingsAndFlexChanges(importParameters, objectPageConfig, importParameters.jsonSchema['properties'], pageKeys, flexChangesForTransfer);
|
|
388
462
|
// Transfer header information
|
|
389
|
-
objectPageConfig.header = factory.createInstance(
|
|
463
|
+
objectPageConfig.header = factory.createInstance(common_2.PageType.ObjectPage, 'ObjectPageHeader');
|
|
390
464
|
transferSettingsAndFlexChanges(importParameters, objectPageConfig.header, importParameters.jsonSchema['definitions']['ObjectPageHeader']
|
|
391
465
|
? importParameters.jsonSchema['definitions']['ObjectPageHeader']
|
|
392
466
|
: importParameters.jsonSchema['definitions']['ObjectPageHeader<GenericActions>'], pageKeys, flexChangesForTransfer);
|
|
@@ -395,7 +469,7 @@ function fillConfig(importParameters, pageKeys, flexChangesForTransfer, v2Page,
|
|
|
395
469
|
fillActions(importParameters, headerAction.properties, objectPageConfig.header, factory, pageKeys, flexChangesForTransfer);
|
|
396
470
|
}
|
|
397
471
|
// Transfer Layout information
|
|
398
|
-
objectPageConfig.layout = factory.createInstance(
|
|
472
|
+
objectPageConfig.layout = factory.createInstance(common_2.PageType.ObjectPage, 'ObjectPageLayout');
|
|
399
473
|
transferSettingsAndFlexChanges(importParameters, objectPageConfig.layout, importParameters.jsonSchema['definitions']['ObjectPageLayout'], pageKeys, flexChangesForTransfer);
|
|
400
474
|
if (Object.keys(objectPageConfig.layout).length === 0) {
|
|
401
475
|
delete objectPageConfig.layout;
|
|
@@ -412,8 +486,8 @@ function fillConfig(importParameters, pageKeys, flexChangesForTransfer, v2Page,
|
|
|
412
486
|
objectPageConfig.sections.custom = [];
|
|
413
487
|
for (const sectionId in customSections) {
|
|
414
488
|
const customSection = 'fragmentName' in customSections[sectionId]
|
|
415
|
-
? factory.createInstance(
|
|
416
|
-
: factory.createInstance(
|
|
489
|
+
? factory.createInstance(common_2.PageType.ObjectPage, 'ObjectPageCustomSectionFragment')
|
|
490
|
+
: factory.createInstance(common_2.PageType.ObjectPage, 'ObjectPageCustomSectionView');
|
|
417
491
|
transferSettingsAndFlexChanges(importParameters, customSection, importParameters.jsonSchema['definitions']['fragmentName' in customSections[sectionId]
|
|
418
492
|
? 'ObjectPageCustomSectionFragment'
|
|
419
493
|
: 'ObjectPageCustomSectionView'], pageKeys, flexChangesForTransfer, sectionId);
|
|
@@ -431,26 +505,26 @@ function fillConfig(importParameters, pageKeys, flexChangesForTransfer, v2Page,
|
|
|
431
505
|
function createObjectPageConfigV2(importParameters) {
|
|
432
506
|
// Initialize i18next
|
|
433
507
|
i18n_1.initI18n();
|
|
434
|
-
if (!importParameters.manifest[
|
|
508
|
+
if (!importParameters.manifest[common_2.ManifestSection.generic]) {
|
|
435
509
|
extensionLogger_1.log(importParameters.logger, {
|
|
436
510
|
severity: "error" /* Error */,
|
|
437
511
|
message: i18next_1.default.t('NOFE'),
|
|
438
512
|
location: {
|
|
439
513
|
path: v2_1.MANIFESTPATH,
|
|
440
|
-
range: [
|
|
514
|
+
range: [common_2.ManifestSection.generic]
|
|
441
515
|
}
|
|
442
516
|
});
|
|
443
517
|
return;
|
|
444
518
|
}
|
|
445
519
|
const pageKeys = [];
|
|
446
|
-
const v2Pages = importParameters.manifest[
|
|
520
|
+
const v2Pages = importParameters.manifest[common_2.ManifestSection.generic].pages;
|
|
447
521
|
if (!v2Pages) {
|
|
448
522
|
extensionLogger_1.log(importParameters.logger, {
|
|
449
523
|
severity: "error" /* Error */,
|
|
450
524
|
message: i18next_1.default.t('NOPAGES', { appId: importParameters.manifest['sap.app']['id'] }),
|
|
451
525
|
location: {
|
|
452
526
|
path: v2_1.MANIFESTPATH,
|
|
453
|
-
range: [
|
|
527
|
+
range: [common_2.ManifestSection.generic]
|
|
454
528
|
}
|
|
455
529
|
});
|
|
456
530
|
return;
|
|
@@ -463,7 +537,7 @@ function createObjectPageConfigV2(importParameters) {
|
|
|
463
537
|
message: i18next_1.default.t('NOENTITYSET', { entitySet }),
|
|
464
538
|
location: {
|
|
465
539
|
path: v2_1.MANIFESTPATH,
|
|
466
|
-
range: [
|
|
540
|
+
range: [common_2.ManifestSection.generic]
|
|
467
541
|
}
|
|
468
542
|
});
|
|
469
543
|
return;
|