@sap/ux-specification 1.108.40 → 1.108.41
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 +27 -0
- package/dist/documentation/runDocu-min.js.map +3 -3
- 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-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 +110 -110
- package/dist/index-min.js.map +3 -3
- package/dist/specification/package.json +7 -7
- package/dist/specification/scripts/documentation/components/filter.js +0 -1
- package/dist/specification/scripts/documentation/components/filter.js.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/TreeUI.d.ts.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/TreeUI.js +2 -1
- package/dist/specification/scripts/documentation/components/ui/TreeUI.js.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/search.d.ts.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/search.js +6 -3
- package/dist/specification/scripts/documentation/components/ui/search.js.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/toggle.d.ts.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/toggle.js +6 -3
- package/dist/specification/scripts/documentation/components/ui/toggle.js.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/tooltip.d.ts.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/tooltip.js +13 -9
- package/dist/specification/scripts/documentation/components/ui/tooltip.js.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/utils.d.ts.map +1 -1
- package/dist/specification/scripts/documentation/components/ui/utils.js +8 -4
- package/dist/specification/scripts/documentation/components/ui/utils.js.map +1 -1
- package/dist/specification/scripts/extractDocu.js +64 -24
- package/dist/specification/scripts/extractDocu.js.map +1 -1
- package/dist/specification/scripts/macros/api.js +5 -5
- package/dist/specification/scripts/macros/api.js.map +1 -1
- package/dist/specification/scripts/macros/cmd.js +2 -2
- package/dist/specification/scripts/macros/schema.d.ts.map +1 -1
- package/dist/specification/scripts/macros/schema.js.map +1 -1
- package/dist/specification/scripts/to-json-schema.js +1 -1
- package/dist/specification/scripts/to-json-schema.js.map +1 -1
- package/dist/specification/src/api.js +4 -4
- package/dist/specification/src/extensionLogger.js +3 -3
- package/dist/specification/src/sync/common/appProvider.d.ts.map +1 -1
- package/dist/specification/src/sync/common/appProvider.js.map +1 -1
- package/dist/specification/src/sync/common/decoration/control.d.ts.map +1 -1
- package/dist/specification/src/sync/common/decoration/control.js +2 -2
- package/dist/specification/src/sync/common/decoration/control.js.map +1 -1
- package/dist/specification/src/sync/common/flexUtils.js +1 -1
- package/dist/specification/src/sync/common/flexUtils.js.map +1 -1
- package/dist/specification/src/sync/common/generate/objectPage.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/objectPage.js +1 -3
- package/dist/specification/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.js +10 -10
- package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/common/import/utils.js +2 -2
- package/dist/specification/src/sync/common/importProject.js +3 -3
- package/dist/specification/src/sync/common/importProject.js.map +1 -1
- package/dist/specification/src/sync/common/utils.d.ts +1 -2
- package/dist/specification/src/sync/common/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/utils.js +112 -108
- package/dist/specification/src/sync/common/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Action.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Action.js +4 -8
- package/dist/specification/src/sync/v2/export/controls/Action.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/AnalyticalListPageChart.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/AnalyticalListPageChart.js +4 -9
- package/dist/specification/src/sync/v2/export/controls/AnalyticalListPageChart.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Field.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Field.js +1 -2
- package/dist/specification/src/sync/v2/export/controls/Field.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/FilterBar.d.ts +1 -1
- package/dist/specification/src/sync/v2/export/controls/FilterBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/FilterBar.js +1 -2
- package/dist/specification/src/sync/v2/export/controls/FilterBar.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/FormAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/FormAction.js +1 -2
- package/dist/specification/src/sync/v2/export/controls/FormAction.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageFooterAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageFooterAction.js +1 -2
- package/dist/specification/src/sync/v2/export/controls/ObjectPageFooterAction.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageHeader.js +1 -2
- package/dist/specification/src/sync/v2/export/controls/ObjectPageHeader.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageHeaderAction.js +1 -2
- package/dist/specification/src/sync/v2/export/controls/ObjectPageHeaderAction.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageHeaderSection.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageHeaderSection.js +7 -8
- package/dist/specification/src/sync/v2/export/controls/ObjectPageHeaderSection.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageLayout.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageLayout.js +4 -8
- package/dist/specification/src/sync/v2/export/controls/ObjectPageLayout.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageSection.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageSection.js +11 -22
- package/dist/specification/src/sync/v2/export/controls/ObjectPageSection.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/controls/ObjectPageTable.js +7 -14
- package/dist/specification/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageToolBarAction.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/ObjectPageToolBarAction.js +1 -2
- package/dist/specification/src/sync/v2/export/controls/ObjectPageToolBarAction.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/Table.js +7 -14
- package/dist/specification/src/sync/v2/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/TableColumn.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/controls/TableColumn.js +4 -8
- package/dist/specification/src/sync/v2/export/controls/TableColumn.js.map +1 -1
- package/dist/specification/src/sync/v2/export/export.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/export.js +3 -7
- package/dist/specification/src/sync/v2/export/export.js.map +1 -1
- package/dist/specification/src/sync/v2/export/factory.js +8 -8
- package/dist/specification/src/sync/v2/export/manifest.js +0 -1
- package/dist/specification/src/sync/v2/export/manifest.js.map +1 -1
- package/dist/specification/src/sync/v2/export/pages/AnalyticalListPage.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/pages/AnalyticalListPage.js +1 -2
- package/dist/specification/src/sync/v2/export/pages/AnalyticalListPage.js.map +1 -1
- package/dist/specification/src/sync/v2/export/pages/ListReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/export/pages/ListReport.js +1 -2
- package/dist/specification/src/sync/v2/export/pages/ListReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js +1 -1
- package/dist/specification/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/objectPage.js +4 -4
- package/dist/specification/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v2/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/utils.js +0 -2
- package/dist/specification/src/sync/v2/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/v2/import/app/appProvider.js +0 -1
- package/dist/specification/src/sync/v2/import/app/appProvider.js.map +1 -1
- package/dist/specification/src/sync/v2/import/app/ovpProvider.js.map +1 -1
- package/dist/specification/src/sync/v2/import/common/index.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/import/common/index.js +3 -1
- package/dist/specification/src/sync/v2/import/common/index.js.map +1 -1
- package/dist/specification/src/sync/v2/import/pages/objectPage.js +6 -7
- package/dist/specification/src/sync/v2/import/pages/objectPage.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/Header.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageCustomSection.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFooter.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageFooter.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageForm.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderSection.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/ObjectPageHeaderSection.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBar.d.ts +1 -1
- package/dist/specification/src/sync/v4/export/controls/ToolBar.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/export/export.js +9 -10
- package/dist/specification/src/sync/v4/export/export.js.map +1 -1
- package/dist/specification/src/sync/v4/export/factory.js +6 -6
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js +1 -1
- package/dist/specification/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -1
- package/dist/specification/src/sync/v4/import/pages/objectPage.js +3 -3
- package/dist/types/src/apiTypes.d.ts +1 -1
- package/dist/types/src/apiTypes.js +2 -2
- package/dist/types/src/common/page.d.ts +1 -1
- package/dist/types/src/common/page.d.ts.map +1 -1
- package/dist/types/src/common/page.js.map +1 -1
- package/dist/types/src/common/types.d.ts +3 -5
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/dist/types/src/common/types.js +4 -4
- package/dist/types/src/common/types.js.map +1 -1
- package/package.json +7 -7
|
@@ -44,7 +44,6 @@ exports.getJSONPropertyByPath = getJSONPropertyByPath;
|
|
|
44
44
|
exports.removeNamespaces = removeNamespaces;
|
|
45
45
|
exports.replaceNamespaces = replaceNamespaces;
|
|
46
46
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
47
|
-
const ux_specification_types_2 = require("@sap/ux-specification-types");
|
|
48
47
|
const i18next_1 = __importDefault(require("i18next"));
|
|
49
48
|
const deepmerge_1 = __importDefault(require("deepmerge"));
|
|
50
49
|
const annotation_converter_1 = require("@sap-ux/annotation-converter");
|
|
@@ -52,10 +51,10 @@ const edmx_parser_1 = require("@sap-ux/edmx-parser");
|
|
|
52
51
|
const extensionLogger_1 = require("../../extensionLogger");
|
|
53
52
|
exports.DEFINITION_LINK_PREFIX = '#/definitions/';
|
|
54
53
|
exports.V4_TEMPLATES = [
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
ux_specification_types_1.v4.FE_TEMPLATE_V4_LIST_REPORT,
|
|
55
|
+
ux_specification_types_1.v4.FE_TEMPLATE_V4_ALP,
|
|
56
|
+
ux_specification_types_1.v4.FE_TEMPLATE_V4_OBJECT_PAGE,
|
|
57
|
+
ux_specification_types_1.v4.FE_TEMPLATE_V4_CUSTOM_PAGE
|
|
59
58
|
];
|
|
60
59
|
exports.V4_LIBS = ['sap.fe.core', 'sap.fe.templates'];
|
|
61
60
|
const arrayIncludes = (arr, target) => target.every((v) => arr.includes(v));
|
|
@@ -269,7 +268,7 @@ function getDataFieldDescription(dataFieldAbstract, entityType) {
|
|
|
269
268
|
}
|
|
270
269
|
return title;
|
|
271
270
|
}
|
|
272
|
-
catch
|
|
271
|
+
catch {
|
|
273
272
|
return title;
|
|
274
273
|
}
|
|
275
274
|
}
|
|
@@ -278,6 +277,7 @@ function getDataFieldDescription(dataFieldAbstract, entityType) {
|
|
|
278
277
|
* @param refInput string to be character checked and replaced
|
|
279
278
|
* @returns string with replaced characters
|
|
280
279
|
*/
|
|
280
|
+
//@typescript-eslint/no-wrapper-object-types turned off tor prevent conversion String > string; String is used by AVT
|
|
281
281
|
function prepareRef(refInput) {
|
|
282
282
|
return refInput.replace('#', '::').replace(/\//g, ':2f');
|
|
283
283
|
}
|
|
@@ -287,7 +287,7 @@ function prepareRef(refInput) {
|
|
|
287
287
|
*/
|
|
288
288
|
function getPageTypeV2(name) {
|
|
289
289
|
if (name) {
|
|
290
|
-
const templatePart = `${
|
|
290
|
+
const templatePart = `${ux_specification_types_1.v2.FE_TEMPLATE_V2}.`;
|
|
291
291
|
return name.split(templatePart)[1];
|
|
292
292
|
}
|
|
293
293
|
}
|
|
@@ -296,16 +296,16 @@ function getPageTypeV2(name) {
|
|
|
296
296
|
* @param name - page component name
|
|
297
297
|
*/
|
|
298
298
|
function getPageTypeV4(v4App) {
|
|
299
|
-
if (v4App.name && v4App.name !==
|
|
300
|
-
const templatePart = `${
|
|
299
|
+
if (v4App.name && v4App.name !== ux_specification_types_1.v4.FE_TEMPLATE_V4_CUSTOM_PAGE) {
|
|
300
|
+
const templatePart = `${ux_specification_types_1.v4.FE_TEMPLATE_V4}.`;
|
|
301
301
|
return v4App.name.split(templatePart)[1];
|
|
302
302
|
}
|
|
303
|
-
else if (v4App?.name ===
|
|
304
|
-
return
|
|
303
|
+
else if (v4App?.name === ux_specification_types_1.v4.FE_TEMPLATE_V4_CUSTOM_PAGE) {
|
|
304
|
+
return ux_specification_types_1.PageTypeV4.FPMCustomPage;
|
|
305
305
|
}
|
|
306
306
|
else if (v4App.viewId ||
|
|
307
307
|
v4App.viewName) {
|
|
308
|
-
return
|
|
308
|
+
return ux_specification_types_1.PageTypeV4.CustomPage;
|
|
309
309
|
}
|
|
310
310
|
}
|
|
311
311
|
function getTargetAnnotationName(targetAnnotation, keyForRelatedFacetKeys = false) {
|
|
@@ -373,11 +373,11 @@ function adjustKey(key, navigationParts, keyForRelatedFacetKeys) {
|
|
|
373
373
|
key = pathParts.join('::');
|
|
374
374
|
}
|
|
375
375
|
else {
|
|
376
|
-
key = uiClass.replace('@UI', `${!keyForRelatedFacetKeys ? '@' : ''}${
|
|
376
|
+
key = uiClass.replace('@UI', `${!keyForRelatedFacetKeys ? '@' : ''}${ux_specification_types_1.UIVOCABULARY}`);
|
|
377
377
|
}
|
|
378
378
|
return key;
|
|
379
379
|
}
|
|
380
|
-
function getKeyAndEntityTypeOfReferenceFacet(oDataServiceAVT, key, entityType, propertyValue, oDataVersion =
|
|
380
|
+
function getKeyAndEntityTypeOfReferenceFacet(oDataServiceAVT, key, entityType, propertyValue, oDataVersion = ux_specification_types_1.FioriElementsVersion.v2, keyForRelatedFacetKeys = false) {
|
|
381
381
|
let stopProcessing = false;
|
|
382
382
|
let namespace;
|
|
383
383
|
const navigationParts = propertyValue.split('/');
|
|
@@ -388,7 +388,7 @@ function getKeyAndEntityTypeOfReferenceFacet(oDataServiceAVT, key, entityType, p
|
|
|
388
388
|
key = adjustKey(key, navigationParts, keyForRelatedFacetKeys);
|
|
389
389
|
const targetAnnotation = determineTargetAnnotation(navigationParts, entityType, oDataServiceAVT);
|
|
390
390
|
if (targetAnnotation) {
|
|
391
|
-
const separator = oDataVersion ===
|
|
391
|
+
const separator = oDataVersion === ux_specification_types_1.FioriElementsVersion.v2 ? '::' : '#';
|
|
392
392
|
key = getTargetAnnotationName(targetAnnotation, keyForRelatedFacetKeys).replace('#', separator);
|
|
393
393
|
namespace = targetAnnotation.fullyQualifiedName?.split('@')[0];
|
|
394
394
|
}
|
|
@@ -397,7 +397,7 @@ function getKeyAndEntityTypeOfReferenceFacet(oDataServiceAVT, key, entityType, p
|
|
|
397
397
|
return { key, entityType, stopProcessing, namespace };
|
|
398
398
|
}
|
|
399
399
|
if (navigation) {
|
|
400
|
-
const navSeparator = oDataVersion ===
|
|
400
|
+
const navSeparator = oDataVersion === ux_specification_types_1.FioriElementsVersion.v2 ? '::' : '/';
|
|
401
401
|
navigationParts.pop();
|
|
402
402
|
const navigationIDs = [...navigationParts].join(navSeparator);
|
|
403
403
|
key = `${navigationIDs}${navSeparator}${key}`;
|
|
@@ -413,7 +413,7 @@ function getKeyAndEntityTypeOfReferenceFacet(oDataServiceAVT, key, entityType, p
|
|
|
413
413
|
* @param {ExtensionLogger} logger - Logger class for logging messages
|
|
414
414
|
* @returns {FacetSection} - object comprising the relevant facet information
|
|
415
415
|
*/
|
|
416
|
-
function getSectionFacet(facetDefinition, sourceEntityType, oDataServiceAVT, logger, oDataVersion =
|
|
416
|
+
function getSectionFacet(facetDefinition, sourceEntityType, oDataServiceAVT, logger, oDataVersion = ux_specification_types_1.FioriElementsVersion.v2, keyForRelatedFacetKeys = false) {
|
|
417
417
|
//Take facet ID as fallback
|
|
418
418
|
const facetName = facetDefinition.fullyQualifiedName?.substring(facetDefinition.fullyQualifiedName?.lastIndexOf('@'));
|
|
419
419
|
let key = facetDefinition.ID ? facetDefinition.ID.toString() : facetName;
|
|
@@ -569,7 +569,7 @@ function getSchemaKeyOfLineItemRecord(lineItemRecord) {
|
|
|
569
569
|
schemaKey =
|
|
570
570
|
'DataFieldForAnnotation:::sTarget::' +
|
|
571
571
|
target
|
|
572
|
-
.replace('@UI', `@${
|
|
572
|
+
.replace('@UI', `@${ux_specification_types_1.UIVOCABULARY}`)
|
|
573
573
|
.replace('@Communication', '@com.sap.vocabularies.Communication.v1')
|
|
574
574
|
.replace('@Contact', '@com.sap.vocabularies.Contact.v1');
|
|
575
575
|
}
|
|
@@ -664,20 +664,20 @@ function getAnnotationTerm(path, alias, entityType) {
|
|
|
664
664
|
* @param {ConvertedMetadata} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
|
|
665
665
|
*/
|
|
666
666
|
function evaluateTargetAnnotation(section, annotationRecord, facets, entityType, oDataServiceAVT) {
|
|
667
|
-
const alias = findAlias(
|
|
667
|
+
const alias = findAlias(ux_specification_types_1.UIVOCABULARY, oDataServiceAVT);
|
|
668
668
|
let path = section ? section.key : '';
|
|
669
669
|
const targetEntityType = section.entityType;
|
|
670
670
|
const annotationTerm = getAnnotationTerm(path, alias, entityType);
|
|
671
671
|
switch (annotationTerm) {
|
|
672
672
|
case "com.sap.vocabularies.UI.v1.Chart" /* UIAnnotationTerms.Chart */: {
|
|
673
|
-
facets[path] = { base:
|
|
673
|
+
facets[path] = { base: ux_specification_types_1.FacetBase.Chart };
|
|
674
674
|
facets[path].target = annotationRecord?.Target?.$target;
|
|
675
675
|
facets[path].entityType = targetEntityType;
|
|
676
676
|
facets[path].namespace = section.namespace;
|
|
677
677
|
break;
|
|
678
678
|
}
|
|
679
679
|
case "com.sap.vocabularies.UI.v1.Identification" /* UIAnnotationTerms.Identification */: {
|
|
680
|
-
facets[path] = { base:
|
|
680
|
+
facets[path] = { base: ux_specification_types_1.FacetBase.Identification };
|
|
681
681
|
facets[path].target = annotationRecord?.Target?.$target;
|
|
682
682
|
facets[path].entityType = targetEntityType;
|
|
683
683
|
facets[path].namespace = section.namespace;
|
|
@@ -689,21 +689,21 @@ function evaluateTargetAnnotation(section, annotationRecord, facets, entityType,
|
|
|
689
689
|
pathParts[pathParts.length - 1] = `@${"com.sap.vocabularies.UI.v1.LineItem" /* UIAnnotationTerms.LineItem */}`;
|
|
690
690
|
path = pathParts.join('::');
|
|
691
691
|
}
|
|
692
|
-
facets[path] = { base:
|
|
692
|
+
facets[path] = { base: ux_specification_types_1.FacetBase.LineItem };
|
|
693
693
|
facets[path].target = annotationRecord?.Target?.$target;
|
|
694
694
|
facets[path].entityType = targetEntityType;
|
|
695
695
|
facets[path].namespace = section.namespace;
|
|
696
696
|
break;
|
|
697
697
|
}
|
|
698
698
|
case "com.sap.vocabularies.UI.v1.FieldGroup" /* UIAnnotationTerms.FieldGroup */: {
|
|
699
|
-
facets[path] = { base:
|
|
699
|
+
facets[path] = { base: ux_specification_types_1.FacetBase.Form };
|
|
700
700
|
facets[path].target = annotationRecord?.Target?.$target;
|
|
701
701
|
facets[path].entityType = targetEntityType;
|
|
702
702
|
facets[path].namespace = section.namespace;
|
|
703
703
|
break;
|
|
704
704
|
}
|
|
705
705
|
case "com.sap.vocabularies.UI.v1.DataPoint" /* UIAnnotationTerms.DataPoint */: {
|
|
706
|
-
facets[path] = { base:
|
|
706
|
+
facets[path] = { base: ux_specification_types_1.FacetBase.DataPoint };
|
|
707
707
|
facets[path].Label = annotationRecord?.Target?.$target['Title'];
|
|
708
708
|
facets[path].target = annotationRecord?.Target?.$target;
|
|
709
709
|
facets[path].entityType = targetEntityType;
|
|
@@ -711,32 +711,32 @@ function evaluateTargetAnnotation(section, annotationRecord, facets, entityType,
|
|
|
711
711
|
break;
|
|
712
712
|
}
|
|
713
713
|
case "com.sap.vocabularies.UI.v1.PresentationVariant" /* UIAnnotationTerms.PresentationVariant */: {
|
|
714
|
-
facets[path] = { base:
|
|
714
|
+
facets[path] = { base: ux_specification_types_1.FacetBase.PresentationVariant };
|
|
715
715
|
facets[path].target = annotationRecord?.Target?.$target;
|
|
716
716
|
facets[path].entityType = targetEntityType;
|
|
717
717
|
facets[path].namespace = section.namespace;
|
|
718
718
|
break;
|
|
719
719
|
}
|
|
720
720
|
case "com.sap.vocabularies.Communication.v1.Contact" /* CommunicationAnnotationTerms.Contact */: {
|
|
721
|
-
facets[path] = { base:
|
|
721
|
+
facets[path] = { base: ux_specification_types_1.FacetBase.Contact };
|
|
722
722
|
facets[path].target = annotationRecord?.Target?.$target;
|
|
723
723
|
facets[path].entityType = targetEntityType;
|
|
724
724
|
facets[path].namespace = section.namespace;
|
|
725
725
|
break;
|
|
726
726
|
}
|
|
727
727
|
case "com.sap.vocabularies.Communication.v1.Address" /* CommunicationAnnotationTerms.Address */: {
|
|
728
|
-
facets[path] = { base:
|
|
728
|
+
facets[path] = { base: ux_specification_types_1.FacetBase.Address };
|
|
729
729
|
facets[path].target = annotationRecord?.Target?.$target;
|
|
730
730
|
facets[path].entityType = targetEntityType;
|
|
731
731
|
facets[path].namespace = section.namespace;
|
|
732
732
|
break;
|
|
733
733
|
}
|
|
734
734
|
default: {
|
|
735
|
-
facets[path] = { base:
|
|
735
|
+
facets[path] = { base: ux_specification_types_1.FacetBase.Unknown };
|
|
736
736
|
}
|
|
737
737
|
}
|
|
738
738
|
if (facets[path]) {
|
|
739
|
-
facets[path].annotationPath = `/${annotationRecord.fullyQualifiedName.replace('@com.sap.vocabularies',
|
|
739
|
+
facets[path].annotationPath = `/${annotationRecord.fullyQualifiedName.replace('@com.sap.vocabularies', ux_specification_types_1.VOCWITHSLASH)}`;
|
|
740
740
|
if (annotationRecord.Label) {
|
|
741
741
|
facets[path].Label = annotationRecord.Label;
|
|
742
742
|
}
|
|
@@ -768,7 +768,7 @@ function getAnnotationPathUsingFullyQualifiedName(entityType, fullyQualifiedName
|
|
|
768
768
|
* @param {FioriElementsVersion} oDataVersion - OData version
|
|
769
769
|
* @param {ExtensionLogger} logger - Logger class for logging messages
|
|
770
770
|
*/
|
|
771
|
-
function addFacetToConfig(annotationRecord, oDataServiceAVT, serviceName, entityType, facets, oDataVersion =
|
|
771
|
+
function addFacetToConfig(annotationRecord, oDataServiceAVT, serviceName, entityType, facets, oDataVersion = ux_specification_types_1.FioriElementsVersion.v2, logger) {
|
|
772
772
|
const section = getSectionFacet(annotationRecord, entityType, oDataServiceAVT, logger, oDataVersion, false);
|
|
773
773
|
if (section) {
|
|
774
774
|
switch (annotationRecord.$Type) {
|
|
@@ -779,14 +779,14 @@ function addFacetToConfig(annotationRecord, oDataServiceAVT, serviceName, entity
|
|
|
779
779
|
case "com.sap.vocabularies.UI.v1.CollectionFacet" /* UIAnnotationTypes.CollectionFacet */: {
|
|
780
780
|
const annotationPath = getAnnotationPathUsingFullyQualifiedName(entityType, annotationRecord.fullyQualifiedName);
|
|
781
781
|
const facet = (facets[section.key] = {
|
|
782
|
-
base:
|
|
782
|
+
base: ux_specification_types_1.FacetBase.CollectionFacet,
|
|
783
783
|
facets: {},
|
|
784
784
|
ID: section.ID,
|
|
785
785
|
annotationPath: annotationPath,
|
|
786
786
|
Label: section.label,
|
|
787
787
|
namespace: section.namespace
|
|
788
788
|
});
|
|
789
|
-
if (!facet.ID && oDataVersion ===
|
|
789
|
+
if (!facet.ID && oDataVersion === ux_specification_types_1.FioriElementsVersion.v4) {
|
|
790
790
|
(0, extensionLogger_1.log)(logger, {
|
|
791
791
|
severity: "error" /* LogSeverity.Error */,
|
|
792
792
|
message: i18next_1.default.t('NOID4SECTION', { facet: annotationRecord.fullyQualifiedName })
|
|
@@ -807,12 +807,12 @@ function addFacetToConfig(annotationRecord, oDataServiceAVT, serviceName, entity
|
|
|
807
807
|
* @param {FioriElementsVersion} oDataVersion - OData version
|
|
808
808
|
* @param {ExtensionLogger} logger - Logger class for logging messages
|
|
809
809
|
*/
|
|
810
|
-
function getObjectPageHeaderFacets(entityType, oDataServiceAVT, oDataVersion =
|
|
810
|
+
function getObjectPageHeaderFacets(entityType, oDataServiceAVT, oDataVersion = ux_specification_types_1.FioriElementsVersion.v2, logger) {
|
|
811
811
|
const facets = {};
|
|
812
812
|
if (!entityType || !entityType.annotations) {
|
|
813
813
|
return;
|
|
814
814
|
}
|
|
815
|
-
const alias = findAlias(
|
|
815
|
+
const alias = findAlias(ux_specification_types_1.UIVOCABULARY, oDataServiceAVT);
|
|
816
816
|
const facetAnnotation = alias && entityType?.annotations?.[alias]?.HeaderFacets;
|
|
817
817
|
if (facetAnnotation) {
|
|
818
818
|
const lastDot = entityType && entityType.fullyQualifiedName.lastIndexOf('.');
|
|
@@ -831,12 +831,12 @@ function getObjectPageHeaderFacets(entityType, oDataServiceAVT, oDataVersion = u
|
|
|
831
831
|
* @param {FioriElementsVersion} oDataVersion - OData version
|
|
832
832
|
* @param {ExtensionLogger} logger - Logger class for logging messages
|
|
833
833
|
*/
|
|
834
|
-
function getObjectPageFacets(entityType, oDataServiceAVT, oDataVersion =
|
|
834
|
+
function getObjectPageFacets(entityType, oDataServiceAVT, oDataVersion = ux_specification_types_1.FioriElementsVersion.v2, logger) {
|
|
835
835
|
const facets = {};
|
|
836
836
|
if (!entityType || !entityType.annotations) {
|
|
837
837
|
return;
|
|
838
838
|
}
|
|
839
|
-
const alias = findAlias(
|
|
839
|
+
const alias = findAlias(ux_specification_types_1.UIVOCABULARY, oDataServiceAVT);
|
|
840
840
|
const facetAnnotation = alias && entityType?.annotations[alias]?.Facets;
|
|
841
841
|
if (facetAnnotation) {
|
|
842
842
|
const lastDot = entityType && entityType.fullyQualifiedName.lastIndexOf('.');
|
|
@@ -854,17 +854,17 @@ function getObjectPageFacets(entityType, oDataServiceAVT, oDataVersion = ux_spec
|
|
|
854
854
|
* @returns FioriElementsVersion
|
|
855
855
|
*/
|
|
856
856
|
function getFEVersionFromManifest(manifest) {
|
|
857
|
-
if ((manifest[
|
|
858
|
-
(manifest[
|
|
859
|
-
return
|
|
857
|
+
if ((manifest[ux_specification_types_1.ManifestSection.generic] && Object.keys(manifest[ux_specification_types_1.ManifestSection.generic]).length > 0) ||
|
|
858
|
+
(manifest[ux_specification_types_1.ManifestSection.ovp] && Object.keys(manifest[ux_specification_types_1.ManifestSection.ovp]).length > 0)) {
|
|
859
|
+
return ux_specification_types_1.FioriElementsVersion.v2;
|
|
860
860
|
}
|
|
861
861
|
else {
|
|
862
|
-
const targets = manifest[
|
|
863
|
-
const libs = manifest[
|
|
862
|
+
const targets = manifest[ux_specification_types_1.ManifestSection.ui5]?.routing?.targets;
|
|
863
|
+
const libs = manifest[ux_specification_types_1.ManifestSection.ui5]?.dependencies?.libs;
|
|
864
864
|
if ((targets &&
|
|
865
865
|
Object.keys(targets).find((targetKey) => exports.V4_TEMPLATES.indexOf(targets[targetKey].name) > -1)) ||
|
|
866
866
|
(libs && Object.keys(libs).find((lib) => exports.V4_LIBS.indexOf(lib) > -1))) {
|
|
867
|
-
return
|
|
867
|
+
return ux_specification_types_1.FioriElementsVersion.v4;
|
|
868
868
|
}
|
|
869
869
|
else {
|
|
870
870
|
return undefined;
|
|
@@ -880,11 +880,11 @@ function getFEVersionFromManifest(manifest) {
|
|
|
880
880
|
* @returns - main service name
|
|
881
881
|
*/
|
|
882
882
|
function getMainService(manifest) {
|
|
883
|
-
const model = typeof manifest?.[
|
|
884
|
-
? manifest[
|
|
883
|
+
const model = typeof manifest?.[ux_specification_types_1.ManifestSection.ovp]?.globalFilterModel === 'string'
|
|
884
|
+
? manifest[ux_specification_types_1.ManifestSection.ovp].globalFilterModel
|
|
885
885
|
: '';
|
|
886
|
-
return typeof manifest?.[
|
|
887
|
-
? manifest[
|
|
886
|
+
return typeof manifest?.[ux_specification_types_1.ManifestSection.ui5]?.models?.[model]?.dataSource === 'string'
|
|
887
|
+
? manifest[ux_specification_types_1.ManifestSection.ui5].models[model].dataSource
|
|
888
888
|
: undefined;
|
|
889
889
|
}
|
|
890
890
|
/**
|
|
@@ -897,7 +897,7 @@ function getODataVersionFromManifest(manifest) {
|
|
|
897
897
|
if (!mainService) {
|
|
898
898
|
return ux_specification_types_1.OdataVersion.v2;
|
|
899
899
|
}
|
|
900
|
-
const dataSource = manifest[
|
|
900
|
+
const dataSource = manifest[ux_specification_types_1.ManifestSection.app].dataSources?.[mainService];
|
|
901
901
|
return dataSource?.settings?.odataVersion === '4.0' ? ux_specification_types_1.OdataVersion.v4 : ux_specification_types_1.OdataVersion.v2;
|
|
902
902
|
}
|
|
903
903
|
/**
|
|
@@ -908,27 +908,27 @@ function getODataVersionFromManifest(manifest) {
|
|
|
908
908
|
*/
|
|
909
909
|
function determineV2Template(manifest, logger) {
|
|
910
910
|
let templateType;
|
|
911
|
-
if (manifest[
|
|
912
|
-
const v2Pages = manifest[
|
|
911
|
+
if (manifest[ux_specification_types_1.ManifestSection.generic]) {
|
|
912
|
+
const v2Pages = manifest[ux_specification_types_1.ManifestSection.generic].pages;
|
|
913
913
|
if (!v2Pages) {
|
|
914
914
|
(0, extensionLogger_1.log)(logger, {
|
|
915
915
|
severity: "error" /* LogSeverity.Error */,
|
|
916
916
|
message: i18next_1.default.t('NOPAGES', { appId: manifest['sap.app']['id'] }),
|
|
917
917
|
location: {
|
|
918
|
-
path:
|
|
919
|
-
range: [
|
|
918
|
+
path: ux_specification_types_1.MANIFESTPATH,
|
|
919
|
+
range: [ux_specification_types_1.ManifestSection.generic]
|
|
920
920
|
}
|
|
921
921
|
});
|
|
922
922
|
return;
|
|
923
923
|
}
|
|
924
924
|
for (const pageKey in v2Pages) {
|
|
925
925
|
const v2Page = v2Pages[pageKey];
|
|
926
|
-
if (getPageTypeV2(v2Page.component?.name) ===
|
|
927
|
-
templateType =
|
|
926
|
+
if (getPageTypeV2(v2Page.component?.name) === ux_specification_types_1.PageTypeV2.AnalyticalListPage) {
|
|
927
|
+
templateType = ux_specification_types_1.TemplateType.AnalyticalListPageV2;
|
|
928
928
|
break;
|
|
929
929
|
}
|
|
930
|
-
else if (getPageTypeV2(v2Page.component?.name) ===
|
|
931
|
-
templateType =
|
|
930
|
+
else if (getPageTypeV2(v2Page.component?.name) === ux_specification_types_1.PageTypeV2.ListReport) {
|
|
931
|
+
templateType = ux_specification_types_1.TemplateType.ListReportObjectPageV2;
|
|
932
932
|
break;
|
|
933
933
|
}
|
|
934
934
|
}
|
|
@@ -937,10 +937,10 @@ function determineV2Template(manifest, logger) {
|
|
|
937
937
|
if (!templateType) {
|
|
938
938
|
(0, extensionLogger_1.log)(logger, {
|
|
939
939
|
severity: "error" /* LogSeverity.Error */,
|
|
940
|
-
message: i18next_1.default.t('NOTEMPLATE', { section:
|
|
940
|
+
message: i18next_1.default.t('NOTEMPLATE', { section: ux_specification_types_1.ManifestSection.generic }),
|
|
941
941
|
location: {
|
|
942
|
-
path:
|
|
943
|
-
range: [
|
|
942
|
+
path: ux_specification_types_1.MANIFESTPATH,
|
|
943
|
+
range: [ux_specification_types_1.ManifestSection.generic]
|
|
944
944
|
}
|
|
945
945
|
});
|
|
946
946
|
}
|
|
@@ -955,24 +955,24 @@ function determineV2Template(manifest, logger) {
|
|
|
955
955
|
function determineV4PageTemplateType(v4Page) {
|
|
956
956
|
let templateType;
|
|
957
957
|
const pageType = getPageTypeV4(v4Page);
|
|
958
|
-
if (pageType ===
|
|
959
|
-
templateType =
|
|
958
|
+
if (pageType === ux_specification_types_1.PageTypeV4.AnalyticalListPage) {
|
|
959
|
+
templateType = ux_specification_types_1.TemplateType.AnalyticalListPageV4;
|
|
960
960
|
}
|
|
961
|
-
else if (pageType ===
|
|
961
|
+
else if (pageType === ux_specification_types_1.PageTypeV4.ListReport) {
|
|
962
962
|
const viewPath = v4Page.options?.settings?.views?.paths?.[0];
|
|
963
|
-
if (viewPath && (viewPath[
|
|
964
|
-
templateType =
|
|
963
|
+
if (viewPath && (viewPath[ux_specification_types_1.ALPViewType.Primary] || viewPath[ux_specification_types_1.ALPViewType.Secondary])) {
|
|
964
|
+
templateType = ux_specification_types_1.TemplateType.AnalyticalListPageV4;
|
|
965
965
|
}
|
|
966
966
|
else {
|
|
967
|
-
templateType =
|
|
967
|
+
templateType = ux_specification_types_1.TemplateType.ListReportObjectPageV4;
|
|
968
968
|
}
|
|
969
969
|
}
|
|
970
|
-
else if (pageType ===
|
|
971
|
-
templateType =
|
|
970
|
+
else if (pageType === ux_specification_types_1.PageTypeV4.ObjectPage) {
|
|
971
|
+
templateType = ux_specification_types_1.TemplateType.ListReportObjectPageV4;
|
|
972
972
|
//fixed now for FEOP scenario, bit continue to check if LR/ALP exists
|
|
973
973
|
}
|
|
974
|
-
else if ([
|
|
975
|
-
templateType =
|
|
974
|
+
else if ([ux_specification_types_1.PageTypeV4.CustomPage, ux_specification_types_1.PageTypeV4.FPMCustomPage].includes(pageType)) {
|
|
975
|
+
templateType = ux_specification_types_1.TemplateType.FreestylePageV4;
|
|
976
976
|
}
|
|
977
977
|
return templateType;
|
|
978
978
|
}
|
|
@@ -999,29 +999,29 @@ function determineV4TemplateFromPages(v4Pages) {
|
|
|
999
999
|
* @returns {TemplateType} the template type
|
|
1000
1000
|
*/
|
|
1001
1001
|
function determineV4Template(manifest, logger) {
|
|
1002
|
-
const v4Pages = manifest[
|
|
1003
|
-
manifest[
|
|
1002
|
+
const v4Pages = manifest[ux_specification_types_1.ManifestSection.ui5].routing &&
|
|
1003
|
+
manifest[ux_specification_types_1.ManifestSection.ui5].routing.targets;
|
|
1004
1004
|
// if there are no pages in routing targets, we use LROPV4 as default template type
|
|
1005
1005
|
if (!v4Pages || Object.keys(v4Pages).length === 0) {
|
|
1006
1006
|
(0, extensionLogger_1.log)(logger, {
|
|
1007
1007
|
severity: "info" /* LogSeverity.Info */,
|
|
1008
1008
|
message: i18next_1.default.t('NOPAGES', { appId: manifest['sap.app']['id'] }),
|
|
1009
1009
|
location: {
|
|
1010
|
-
path:
|
|
1011
|
-
range: [
|
|
1010
|
+
path: ux_specification_types_1.MANIFESTPATH,
|
|
1011
|
+
range: [ux_specification_types_1.ManifestSection.ui5, 'routing']
|
|
1012
1012
|
}
|
|
1013
1013
|
});
|
|
1014
|
-
return
|
|
1014
|
+
return ux_specification_types_1.TemplateType.ListReportObjectPageV4;
|
|
1015
1015
|
}
|
|
1016
1016
|
// else try to determine template type from routing targets
|
|
1017
1017
|
const templateType = determineV4TemplateFromPages(v4Pages);
|
|
1018
1018
|
if (!templateType) {
|
|
1019
1019
|
(0, extensionLogger_1.log)(logger, {
|
|
1020
1020
|
severity: "error" /* LogSeverity.Error */,
|
|
1021
|
-
message: i18next_1.default.t('NOTEMPLATE', { section:
|
|
1021
|
+
message: i18next_1.default.t('NOTEMPLATE', { section: ux_specification_types_1.ManifestSection.ui5 }),
|
|
1022
1022
|
location: {
|
|
1023
|
-
path:
|
|
1024
|
-
range: [
|
|
1023
|
+
path: ux_specification_types_1.MANIFESTPATH,
|
|
1024
|
+
range: [ux_specification_types_1.ManifestSection.ui5, 'routing', 'targets']
|
|
1025
1025
|
}
|
|
1026
1026
|
});
|
|
1027
1027
|
}
|
|
@@ -1036,13 +1036,13 @@ function determineV4Template(manifest, logger) {
|
|
|
1036
1036
|
*/
|
|
1037
1037
|
function getTemplateTypeFromManifest(manifest, fioriElementsVersion, logger) {
|
|
1038
1038
|
let templateType;
|
|
1039
|
-
if (manifest[
|
|
1040
|
-
templateType =
|
|
1039
|
+
if (manifest[ux_specification_types_1.ManifestSection.ovp]) {
|
|
1040
|
+
templateType = ux_specification_types_1.TemplateType.OverviewPageV2;
|
|
1041
1041
|
}
|
|
1042
|
-
else if (fioriElementsVersion ===
|
|
1042
|
+
else if (fioriElementsVersion === ux_specification_types_1.FioriElementsVersion.v2) {
|
|
1043
1043
|
templateType = determineV2Template(manifest, logger);
|
|
1044
1044
|
}
|
|
1045
|
-
else if (fioriElementsVersion ===
|
|
1045
|
+
else if (fioriElementsVersion === ux_specification_types_1.FioriElementsVersion.v4) {
|
|
1046
1046
|
templateType = determineV4Template(manifest, logger);
|
|
1047
1047
|
}
|
|
1048
1048
|
return templateType;
|
|
@@ -1055,12 +1055,12 @@ function getTemplateTypeFromManifest(manifest, fioriElementsVersion, logger) {
|
|
|
1055
1055
|
*/
|
|
1056
1056
|
function addSectionTitleAndDescription(facet, section, facetKey) {
|
|
1057
1057
|
if (facet?.ID) {
|
|
1058
|
-
section.title =
|
|
1059
|
-
section[
|
|
1058
|
+
section.title = ux_specification_types_1.FACETTITLEPREFIX + facet.ID;
|
|
1059
|
+
section[ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.id, value: facet.ID }];
|
|
1060
1060
|
}
|
|
1061
1061
|
else {
|
|
1062
1062
|
section.title = facetKey.replace(/@com.sap/g, 'com.sap');
|
|
1063
|
-
section[
|
|
1063
|
+
section[ux_specification_types_1.SchemaTag.keys] = [{ name: ux_specification_types_1.SchemaKeyName.id, value: facetKey.replace(ux_specification_types_1.UIVOCABULARYALPHADOT, '') }];
|
|
1064
1064
|
}
|
|
1065
1065
|
// Description
|
|
1066
1066
|
if (facet?.Label) {
|
|
@@ -1105,8 +1105,8 @@ function createDefaultSection(appSchema, facet, facetKey) {
|
|
|
1105
1105
|
properties: {},
|
|
1106
1106
|
additionalProperties: false
|
|
1107
1107
|
};
|
|
1108
|
-
section[
|
|
1109
|
-
section[
|
|
1108
|
+
section[ux_specification_types_1.SchemaTag.isViewNode] = true;
|
|
1109
|
+
section[ux_specification_types_1.SchemaTag.annotationPath] = facet.annotationPath;
|
|
1110
1110
|
addTargetTitleAndSectionDescription(facet, section, facetKey);
|
|
1111
1111
|
return section;
|
|
1112
1112
|
}
|
|
@@ -1119,8 +1119,8 @@ function createDefaultSection(appSchema, facet, facetKey) {
|
|
|
1119
1119
|
* @param {boolean} [checkUnresolvableFacets=false] - Check and avoid facets and sections without ID and Target.
|
|
1120
1120
|
* @returns {FacetSection[]} - Array of facets or sections
|
|
1121
1121
|
*/
|
|
1122
|
-
function getObjectPageFacetSection(entityType, oDataServiceAVT, logger, oDataVersion =
|
|
1123
|
-
const alias = findAlias(
|
|
1122
|
+
function getObjectPageFacetSection(entityType, oDataServiceAVT, logger, oDataVersion = ux_specification_types_1.FioriElementsVersion.v2, checkUnresolvableFacets = false) {
|
|
1123
|
+
const alias = findAlias(ux_specification_types_1.UIVOCABULARY, oDataServiceAVT);
|
|
1124
1124
|
let sections = [];
|
|
1125
1125
|
if (entityType) {
|
|
1126
1126
|
const facetAnnotation = alias && entityType?.annotations?.[alias]?.Facets;
|
|
@@ -1156,11 +1156,16 @@ const deleteEmptyStructure = (manifest, path, deletionRequest, entityPathArray,
|
|
|
1156
1156
|
let manifestSection = manifest;
|
|
1157
1157
|
const pathArray = path.split('/');
|
|
1158
1158
|
pathArray.forEach(function (element) {
|
|
1159
|
-
|
|
1159
|
+
let decodedElement = targetAnnotationEncoded && targetAnnotationEncoded === element
|
|
1160
1160
|
? targetAnnotation
|
|
1161
1161
|
: element.replace(/\?\?/g, '/');
|
|
1162
1162
|
if (!manifestSection[decodedElement]) {
|
|
1163
|
-
|
|
1163
|
+
if (targetAnnotationEncoded === element) {
|
|
1164
|
+
decodedElement = targetAnnotationEncoded;
|
|
1165
|
+
}
|
|
1166
|
+
if (!manifestSection[decodedElement]) {
|
|
1167
|
+
return;
|
|
1168
|
+
}
|
|
1164
1169
|
}
|
|
1165
1170
|
if (Object.keys(manifestSection[decodedElement]).length === 0 ||
|
|
1166
1171
|
//deletion explicitly requested by using entityPath
|
|
@@ -1185,12 +1190,12 @@ exports.deleteEmptyStructure = deleteEmptyStructure;
|
|
|
1185
1190
|
* @return {string} File name of generic schema.
|
|
1186
1191
|
*/
|
|
1187
1192
|
const getGenericSchemaFileName = (schemaType) => {
|
|
1188
|
-
if (schemaType ===
|
|
1189
|
-
return
|
|
1193
|
+
if (schemaType === ux_specification_types_1.SchemaType.FreestylePage) {
|
|
1194
|
+
return ux_specification_types_1.PageTypeV2.CustomPage;
|
|
1190
1195
|
}
|
|
1191
|
-
if (schemaType ===
|
|
1196
|
+
if (schemaType === ux_specification_types_1.SchemaType.FPMCustomPage) {
|
|
1192
1197
|
// FPM custom pages uses generic schema generated for building blocks
|
|
1193
|
-
return
|
|
1198
|
+
return ux_specification_types_1.SchemaType.BuildingBlocks;
|
|
1194
1199
|
}
|
|
1195
1200
|
return `${schemaType}`;
|
|
1196
1201
|
};
|
|
@@ -1207,30 +1212,30 @@ const getSchemaFilePath = (schemaType, pageId, viewId) => {
|
|
|
1207
1212
|
};
|
|
1208
1213
|
switch (schemaType) {
|
|
1209
1214
|
// Application schema
|
|
1210
|
-
case
|
|
1215
|
+
case ux_specification_types_1.SchemaType.Application: {
|
|
1211
1216
|
// File name
|
|
1212
1217
|
schemaFile.filename = `App`;
|
|
1213
1218
|
// Full path
|
|
1214
|
-
schemaFile.path = `./${
|
|
1219
|
+
schemaFile.path = `./${ux_specification_types_1.DirName.Schemas}/${schemaFile.filename}`;
|
|
1215
1220
|
break;
|
|
1216
1221
|
}
|
|
1217
1222
|
// List report and object page
|
|
1218
|
-
case
|
|
1219
|
-
case
|
|
1223
|
+
case ux_specification_types_1.SchemaType.ListReport:
|
|
1224
|
+
case ux_specification_types_1.SchemaType.ObjectPage: {
|
|
1220
1225
|
// File name
|
|
1221
1226
|
schemaFile.filename = pageId ? `${schemaType}_${pageId}` : getGenericSchemaFileName(schemaType);
|
|
1222
1227
|
// Full path
|
|
1223
|
-
schemaFile.path = `../${
|
|
1228
|
+
schemaFile.path = `../${ux_specification_types_1.DirName.Schemas}/${schemaFile.filename}`;
|
|
1224
1229
|
break;
|
|
1225
1230
|
}
|
|
1226
|
-
case
|
|
1227
|
-
case
|
|
1231
|
+
case ux_specification_types_1.PageTypeV4.FPMCustomPage:
|
|
1232
|
+
case ux_specification_types_1.SchemaType.FPMCustomPage: {
|
|
1228
1233
|
// File name
|
|
1229
1234
|
schemaFile.filename = viewId
|
|
1230
|
-
? `${
|
|
1231
|
-
: getGenericSchemaFileName(
|
|
1235
|
+
? `${ux_specification_types_1.SchemaType.FPMCustomPage}_${viewId}`
|
|
1236
|
+
: getGenericSchemaFileName(ux_specification_types_1.SchemaType.FPMCustomPage);
|
|
1232
1237
|
// Full path
|
|
1233
|
-
schemaFile.path = `../${
|
|
1238
|
+
schemaFile.path = `../${ux_specification_types_1.DirName.Schemas}/${schemaFile.filename}`;
|
|
1234
1239
|
break;
|
|
1235
1240
|
}
|
|
1236
1241
|
// Other page configs
|
|
@@ -1238,7 +1243,7 @@ const getSchemaFilePath = (schemaType, pageId, viewId) => {
|
|
|
1238
1243
|
// File name
|
|
1239
1244
|
schemaFile.filename = getGenericSchemaFileName(schemaType);
|
|
1240
1245
|
// Full path
|
|
1241
|
-
schemaFile.path = `../${
|
|
1246
|
+
schemaFile.path = `../${ux_specification_types_1.DirName.Schemas}/${schemaFile.filename}`;
|
|
1242
1247
|
break;
|
|
1243
1248
|
}
|
|
1244
1249
|
}
|
|
@@ -1256,7 +1261,7 @@ exports.getSchemaFilePath = getSchemaFilePath;
|
|
|
1256
1261
|
* @returns {string} Generated page id
|
|
1257
1262
|
*/
|
|
1258
1263
|
function generatePageId(pageType, entitySet, viewId, pageName) {
|
|
1259
|
-
if (pageType ===
|
|
1264
|
+
if (pageType === ux_specification_types_1.PageTypeV2.CustomPage) {
|
|
1260
1265
|
const names = viewId && viewId.split('.');
|
|
1261
1266
|
return names && names[names.length - 1] + 'Page';
|
|
1262
1267
|
}
|
|
@@ -1375,7 +1380,6 @@ function determineNextDefinitionFromDefinitionArray(definitionArray, appSchema,
|
|
|
1375
1380
|
const lastDefinition = definitionArray[definitionArray.length - 1];
|
|
1376
1381
|
nextDefinition.targetDefinition = appSchema['definitions'][lastDefinition];
|
|
1377
1382
|
if (nextDefinition?.targetDefinition?.['$ref'] || nextDefinition?.targetDefinition?.['type'] === 'array') {
|
|
1378
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
1379
1383
|
nextDefinition = getNextTargetDefinition(appSchema, title, currentConfigObject, nextDefinition.targetDefinition, key, factory, pageType);
|
|
1380
1384
|
return nextDefinition;
|
|
1381
1385
|
}
|
|
@@ -1553,7 +1557,7 @@ function getJSONPropertyByPath(obj, paths) {
|
|
|
1553
1557
|
* @returns {string} modified string without namespace
|
|
1554
1558
|
*/
|
|
1555
1559
|
function removeNamespaces(sId) {
|
|
1556
|
-
sId = sId.replace(
|
|
1560
|
+
sId = sId.replace(ux_specification_types_1.UIVOCABULARYDOT, '');
|
|
1557
1561
|
sId = sId.replace('com.sap.vocabularies.Communication.v1.', '');
|
|
1558
1562
|
return sId;
|
|
1559
1563
|
}
|
|
@@ -1563,7 +1567,7 @@ function removeNamespaces(sId) {
|
|
|
1563
1567
|
* @returns {string} modified string with replaced namespaces
|
|
1564
1568
|
*/
|
|
1565
1569
|
function replaceNamespaces(sId) {
|
|
1566
|
-
sId = sId.replace(
|
|
1570
|
+
sId = sId.replace(ux_specification_types_1.UIVOCABULARY, 'UI');
|
|
1567
1571
|
sId = sId.replace('com.sap.vocabularies.Communication.v1', 'Communication');
|
|
1568
1572
|
return sId;
|
|
1569
1573
|
}
|