@sap/ux-specification 1.96.29 → 1.96.31
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/dist/documentation/runDocu-min.js.map +1 -1
- 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 +114 -114
- package/dist/index-min.js.map +3 -3
- package/dist/package.json +7 -6
- package/dist/schemas/v2/ApplicationV2.json +5 -2
- package/dist/schemas/v2/ObjectPageConfig.json +4 -4
- package/dist/schemas/v4/ApplicationV4.json +16 -13
- package/dist/schemas/v4/BuildingBlocksConfig.json +37 -22
- package/dist/schemas/v4/ListReportConfig.json +192 -24
- package/dist/schemas/v4/ObjectPageConfig.json +9 -9
- package/dist/src/api.d.ts.map +1 -1
- package/dist/src/api.js +9 -9
- package/dist/src/api.js.map +1 -1
- package/dist/src/sync/common/appProvider.d.ts +1 -0
- package/dist/src/sync/common/appProvider.d.ts.map +1 -1
- package/dist/src/sync/common/appProvider.js +5 -3
- package/dist/src/sync/common/appProvider.js.map +1 -1
- package/dist/src/sync/common/decoration/factory.d.ts +7 -7
- package/dist/src/sync/common/decoration/factory.d.ts.map +1 -1
- package/dist/src/sync/common/decoration/factory.js +2 -2
- package/dist/src/sync/common/decoration/factory.js.map +1 -1
- package/dist/src/sync/common/generate/objectPage.js +3 -3
- package/dist/src/sync/common/generate/objectPage.js.map +1 -1
- package/dist/src/sync/common/generate/utils.d.ts +9 -2
- package/dist/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/src/sync/common/generate/utils.js +28 -3
- package/dist/src/sync/common/generate/utils.js.map +1 -1
- package/dist/src/sync/common/i18n.json +2 -1
- package/dist/src/sync/common/importProject.d.ts +15 -2
- package/dist/src/sync/common/importProject.d.ts.map +1 -1
- package/dist/src/sync/common/importProject.js +71 -35
- package/dist/src/sync/common/importProject.js.map +1 -1
- package/dist/src/sync/common/utils.d.ts +16 -8
- package/dist/src/sync/common/utils.d.ts.map +1 -1
- package/dist/src/sync/common/utils.js +26 -11
- package/dist/src/sync/common/utils.js.map +1 -1
- package/dist/src/sync/v2/export/controls/Fragment.d.ts.map +1 -1
- package/dist/src/sync/v2/export/controls/Fragment.js +2 -1
- package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageHeader.d.ts +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
- package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js +8 -8
- package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js.map +1 -1
- package/dist/src/sync/v2/export/controls/Table.d.ts.map +1 -1
- package/dist/src/sync/v2/export/controls/Table.js.map +1 -1
- package/dist/src/sync/v2/export/export.js +1 -1
- package/dist/src/sync/v2/export/export.js.map +1 -1
- package/dist/src/sync/v2/export/exportPage.js +9 -9
- package/dist/src/sync/v2/export/exportPage.js.map +1 -1
- package/dist/src/sync/v2/export/factory.js +4 -4
- package/dist/src/sync/v2/export/factory.js.map +1 -1
- package/dist/src/sync/v2/export/manifest.d.ts.map +1 -1
- package/dist/src/sync/v2/export/manifest.js +2 -2
- package/dist/src/sync/v2/export/manifest.js.map +1 -1
- package/dist/src/sync/v2/generate/analyticalListReport.d.ts +1 -1
- package/dist/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
- package/dist/src/sync/v2/generate/analyticalListReport.js +22 -27
- package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
- package/dist/src/sync/v2/generate/generate.d.ts +12 -12
- package/dist/src/sync/v2/generate/generate.d.ts.map +1 -1
- package/dist/src/sync/v2/generate/generate.js +61 -45
- package/dist/src/sync/v2/generate/generate.js.map +1 -1
- package/dist/src/sync/v2/generate/listReport.d.ts +1 -3
- package/dist/src/sync/v2/generate/listReport.d.ts.map +1 -1
- package/dist/src/sync/v2/generate/listReport.js +7 -11
- package/dist/src/sync/v2/generate/listReport.js.map +1 -1
- package/dist/src/sync/v2/generate/objectPage.d.ts +1 -2
- package/dist/src/sync/v2/generate/objectPage.d.ts.map +1 -1
- package/dist/src/sync/v2/generate/objectPage.js +70 -81
- package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
- package/dist/src/sync/v2/generate/utils.d.ts +2 -2
- package/dist/src/sync/v2/generate/utils.d.ts.map +1 -1
- package/dist/src/sync/v2/generate/utils.js.map +1 -1
- package/dist/src/sync/v2/import/app/appProvider.d.ts.map +1 -1
- package/dist/src/sync/v2/import/app/appProvider.js +2 -2
- package/dist/src/sync/v2/import/app/appProvider.js.map +1 -1
- package/dist/src/sync/v2/import/app/ovpProvider.js +2 -2
- package/dist/src/sync/v2/import/app/ovpProvider.js.map +1 -1
- package/dist/src/sync/v2/import/common/index.d.ts +2 -2
- package/dist/src/sync/v2/import/common/index.d.ts.map +1 -1
- package/dist/src/sync/v2/import/common/index.js +3 -3
- package/dist/src/sync/v2/import/common/index.js.map +1 -1
- package/dist/src/sync/v2/import/pages/analyticalListPage.js +12 -12
- package/dist/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
- package/dist/src/sync/v2/import/pages/listReport.js +9 -9
- package/dist/src/sync/v2/import/pages/listReport.js.map +1 -1
- package/dist/src/sync/v2/import/pages/objectPage.js +16 -16
- package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
- package/dist/src/sync/v2/import/pages/overviewPage.js +1 -1
- package/dist/src/sync/v2/import/pages/overviewPage.js.map +1 -1
- package/dist/src/sync/v2/import/utils.d.ts.map +1 -1
- package/dist/src/sync/v2/import/utils.js +3 -3
- package/dist/src/sync/v2/import/utils.js.map +1 -1
- package/dist/src/sync/v2/types.d.ts +3 -3
- package/dist/src/sync/v2/types.d.ts.map +1 -1
- package/dist/src/sync/v2/types.js +1 -1
- package/dist/src/sync/v2/types.js.map +1 -1
- package/dist/src/sync/v4/application.d.ts +2 -0
- package/dist/src/sync/v4/application.d.ts.map +1 -1
- package/dist/src/sync/v4/application.js +10 -2
- package/dist/src/sync/v4/application.js.map +1 -1
- package/dist/src/sync/v4/export/controls/FilterBar.d.ts +8 -2
- package/dist/src/sync/v4/export/controls/FilterBar.d.ts.map +1 -1
- package/dist/src/sync/v4/export/controls/FilterBar.js +48 -4
- package/dist/src/sync/v4/export/controls/FilterBar.js.map +1 -1
- package/dist/src/sync/v4/export/controls/Header.d.ts +9 -0
- package/dist/src/sync/v4/export/controls/Header.d.ts.map +1 -0
- package/dist/src/sync/v4/export/controls/Header.js +10 -0
- package/dist/src/sync/v4/export/controls/Header.js.map +1 -0
- package/dist/src/sync/v4/export/controls/HeaderAction.d.ts +16 -0
- package/dist/src/sync/v4/export/controls/HeaderAction.d.ts.map +1 -0
- package/dist/src/sync/v4/export/controls/HeaderAction.js +94 -0
- package/dist/src/sync/v4/export/controls/HeaderAction.js.map +1 -0
- package/dist/src/sync/v4/export/controls/ObjectPageCustomSection.js +2 -2
- package/dist/src/sync/v4/export/controls/ObjectPageCustomSection.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.d.ts +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.d.ts.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeader.d.ts +3 -3
- package/dist/src/sync/v4/export/controls/ObjectPageHeader.d.ts.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeader.js +2 -2
- package/dist/src/sync/v4/export/controls/ObjectPageHeader.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts +5 -6
- package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.js +11 -29
- package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.js.map +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageLayout.js +1 -1
- package/dist/src/sync/v4/export/controls/ObjectPageLayout.js.map +1 -1
- package/dist/src/sync/v4/export/controls/Table.js +6 -6
- package/dist/src/sync/v4/export/controls/Table.js.map +1 -1
- package/dist/src/sync/v4/export/controls/index.d.ts +2 -0
- package/dist/src/sync/v4/export/controls/index.d.ts.map +1 -1
- package/dist/src/sync/v4/export/controls/index.js +2 -0
- package/dist/src/sync/v4/export/controls/index.js.map +1 -1
- package/dist/src/sync/v4/export/export.d.ts +1 -1
- package/dist/src/sync/v4/export/export.d.ts.map +1 -1
- package/dist/src/sync/v4/export/export.js +62 -34
- package/dist/src/sync/v4/export/export.js.map +1 -1
- package/dist/src/sync/v4/export/factory.js +3 -3
- package/dist/src/sync/v4/export/factory.js.map +1 -1
- package/dist/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -1
- package/dist/src/sync/v4/export/fpmCustomPage.js +5 -5
- package/dist/src/sync/v4/export/fpmCustomPage.js.map +1 -1
- package/dist/src/sync/v4/export/manifest.d.ts +1 -1
- package/dist/src/sync/v4/export/manifest.d.ts.map +1 -1
- package/dist/src/sync/v4/export/manifest.js +40 -30
- package/dist/src/sync/v4/export/manifest.js.map +1 -1
- package/dist/src/sync/v4/export/pages/ListReport.d.ts +2 -1
- package/dist/src/sync/v4/export/pages/ListReport.d.ts.map +1 -1
- package/dist/src/sync/v4/export/pages/ListReport.js +7 -4
- package/dist/src/sync/v4/export/pages/ListReport.js.map +1 -1
- package/dist/src/sync/v4/export/pages/ObjectPage.js +1 -1
- package/dist/src/sync/v4/export/pages/ObjectPage.js.map +1 -1
- package/dist/src/sync/v4/export/types.d.ts +2 -2
- package/dist/src/sync/v4/export/types.d.ts.map +1 -1
- package/dist/src/sync/v4/generate/fpm-custom-page/annotations.d.ts +17 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/annotations.d.ts.map +1 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/annotations.js +71 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/extensions.d.ts +11 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/extensions.d.ts.map +1 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/extensions.js +169 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/extensions.js.map +1 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/generator.d.ts +13 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -0
- package/dist/src/sync/v4/generate/{fpmCustomPage.js → fpm-custom-page/generator.js} +57 -33
- package/dist/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/utils.d.ts +3 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/utils.d.ts.map +1 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/utils.js +8 -0
- package/dist/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -0
- package/dist/src/sync/v4/generate/generate.d.ts +3 -3
- package/dist/src/sync/v4/generate/generate.d.ts.map +1 -1
- package/dist/src/sync/v4/generate/generate.js +19 -10
- package/dist/src/sync/v4/generate/generate.js.map +1 -1
- package/dist/src/sync/v4/generate/index.d.ts +1 -1
- package/dist/src/sync/v4/generate/index.d.ts.map +1 -1
- package/dist/src/sync/v4/generate/index.js +2 -2
- package/dist/src/sync/v4/generate/index.js.map +1 -1
- package/dist/src/sync/v4/generate/listReport.d.ts +13 -3
- package/dist/src/sync/v4/generate/listReport.d.ts.map +1 -1
- package/dist/src/sync/v4/generate/listReport.js +148 -24
- package/dist/src/sync/v4/generate/listReport.js.map +1 -1
- package/dist/src/sync/v4/generate/objectPage.d.ts +2 -2
- package/dist/src/sync/v4/generate/objectPage.d.ts.map +1 -1
- package/dist/src/sync/v4/generate/objectPage.js +20 -28
- package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
- package/dist/src/sync/v4/import/app/baseAppProvider.d.ts +1 -1
- package/dist/src/sync/v4/import/app/baseAppProvider.d.ts.map +1 -1
- package/dist/src/sync/v4/import/app/baseAppProvider.js +5 -7
- package/dist/src/sync/v4/import/app/baseAppProvider.js.map +1 -1
- package/dist/src/sync/v4/import/pages/fpmCustomPage.js +3 -3
- package/dist/src/sync/v4/import/pages/fpmCustomPage.js.map +1 -1
- package/dist/src/sync/v4/import/pages/listReport.d.ts.map +1 -1
- package/dist/src/sync/v4/import/pages/listReport.js +57 -0
- package/dist/src/sync/v4/import/pages/listReport.js.map +1 -1
- package/dist/src/sync/v4/import/pages/objectPage.js +8 -8
- package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
- package/dist/src/sync/v4/sync-rules/controllerExtensions.d.ts.map +1 -1
- package/dist/src/sync/v4/sync-rules/controllerExtensions.js +3 -3
- package/dist/src/sync/v4/sync-rules/controllerExtensions.js.map +1 -1
- package/dist/src/sync/v4/types.d.ts +9 -0
- package/dist/src/sync/v4/types.d.ts.map +1 -1
- package/dist/src/sync/v4/utils/StableIdHelper.js +1 -1
- package/dist/src/sync/v4/utils/StableIdHelper.js.map +1 -1
- package/dist/src/sync/v4/utils/utils.d.ts +26 -4
- package/dist/src/sync/v4/utils/utils.d.ts.map +1 -1
- package/dist/src/sync/v4/utils/utils.js +50 -17
- package/dist/src/sync/v4/utils/utils.js.map +1 -1
- package/package.json +7 -6
- package/dist/scripts/extractDocu.d.ts +0 -2
- package/dist/scripts/extractDocu.d.ts.map +0 -1
- package/dist/scripts/extractDocu.js +0 -514
- package/dist/scripts/extractDocu.js.map +0 -1
- package/dist/scripts/macros/api.d.ts +0 -9
- package/dist/scripts/macros/api.d.ts.map +0 -1
- package/dist/scripts/macros/api.js +0 -161
- package/dist/scripts/macros/api.js.map +0 -1
- package/dist/scripts/macros/cmd.d.ts +0 -7
- package/dist/scripts/macros/cmd.d.ts.map +0 -1
- package/dist/scripts/macros/cmd.js +0 -49
- package/dist/scripts/macros/cmd.js.map +0 -1
- package/dist/scripts/macros/corrections.d.ts +0 -18
- package/dist/scripts/macros/corrections.d.ts.map +0 -1
- package/dist/scripts/macros/corrections.js +0 -188
- package/dist/scripts/macros/corrections.js.map +0 -1
- package/dist/scripts/macros/index.d.ts +0 -2
- package/dist/scripts/macros/index.d.ts.map +0 -1
- package/dist/scripts/macros/index.js +0 -8
- package/dist/scripts/macros/index.js.map +0 -1
- package/dist/scripts/macros/schema.d.ts +0 -9
- package/dist/scripts/macros/schema.d.ts.map +0 -1
- package/dist/scripts/macros/schema.js +0 -201
- package/dist/scripts/macros/schema.js.map +0 -1
- package/dist/scripts/macros/types.d.ts +0 -77
- package/dist/scripts/macros/types.d.ts.map +0 -1
- package/dist/scripts/macros/types.js +0 -14
- package/dist/scripts/macros/types.js.map +0 -1
- package/dist/scripts/runDocu.d.ts +0 -2
- package/dist/scripts/runDocu.d.ts.map +0 -1
- package/dist/scripts/runDocu.js +0 -581
- package/dist/scripts/runDocu.js.map +0 -1
- package/dist/scripts/spec.d.ts +0 -2
- package/dist/scripts/spec.d.ts.map +0 -1
- package/dist/scripts/spec.js +0 -113
- package/dist/scripts/spec.js.map +0 -1
- package/dist/scripts/to-json-schema.d.ts +0 -11
- package/dist/scripts/to-json-schema.d.ts.map +0 -1
- package/dist/scripts/to-json-schema.js +0 -154
- package/dist/scripts/to-json-schema.js.map +0 -1
- package/dist/src/sync/v4/generate/fpmCustomPage.d.ts +0 -10
- package/dist/src/sync/v4/generate/fpmCustomPage.d.ts.map +0 -1
- package/dist/src/sync/v4/generate/fpmCustomPage.js.map +0 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleExtensions = void 0;
|
|
4
|
+
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
5
|
+
const utils_1 = require("../../../common/utils");
|
|
6
|
+
const utils_2 = require("../../../common/generate/utils");
|
|
7
|
+
const utils_3 = require("./utils");
|
|
8
|
+
const utils_4 = require("../../utils/utils");
|
|
9
|
+
const ANNOTATION_PREFIX_MAP = new Map([['filterFields', 'SelectionField::']]);
|
|
10
|
+
const PLACEMENT_PROPERTIES = {
|
|
11
|
+
anchor: 'anchor',
|
|
12
|
+
placement: 'placement',
|
|
13
|
+
key: 'key'
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Method checks if passed schema definition is custom extension.
|
|
17
|
+
* @param {XMLElement} node Parsed XML element.
|
|
18
|
+
* @param {SchemaDefinition} schema Schema object which contains custom extensions and annotation elements.
|
|
19
|
+
* @param {SchemaDefinition} appSchema Full app schema.
|
|
20
|
+
* @returns {string} Added property name.
|
|
21
|
+
*/
|
|
22
|
+
function isCustomExtensionSchema(schema, appSchema) {
|
|
23
|
+
if (typeof schema.additionalProperties === 'object' && schema.additionalProperties.$ref) {
|
|
24
|
+
const definition = appSchema.definitions?.[utils_1.getDefinitionKey(schema.additionalProperties.$ref)];
|
|
25
|
+
const additionalProperties = typeof definition === 'object' ? definition.properties || {} : {};
|
|
26
|
+
return (PLACEMENT_PROPERTIES.anchor in additionalProperties &&
|
|
27
|
+
PLACEMENT_PROPERTIES.placement in additionalProperties);
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Method returns annotation prefix for passed macro node name.
|
|
33
|
+
* @param {string} nodeName Macros node name.
|
|
34
|
+
* @returns {string} Annotation prefix.
|
|
35
|
+
*/
|
|
36
|
+
function getAnnotationPrefix(nodeName) {
|
|
37
|
+
return ANNOTATION_PREFIX_MAP.get(nodeName) || '';
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Method returns proxy extension object by parsing XML node.
|
|
41
|
+
* Proxy object is required to be able to reuse 'utils.addExtensionToArray' method to recalculate order of annotation and custom extensions.
|
|
42
|
+
* @param {XMLElement} node Parsed XML element.
|
|
43
|
+
* @param {SchemaDefinition} schema Schema object which contains custom extensions and annotation elements.
|
|
44
|
+
* @param {string} property Custom extension key in schema's properties.
|
|
45
|
+
* @returns {ExtensionData} Proxy extension object.
|
|
46
|
+
*/
|
|
47
|
+
function getExtensionData(node, schema, property) {
|
|
48
|
+
const schemaNode = schema.properties[property];
|
|
49
|
+
const annotationPrefix = getAnnotationPrefix(node.name);
|
|
50
|
+
// Custom extension node
|
|
51
|
+
const xmlPath = schemaNode.metadata.path;
|
|
52
|
+
const xmlExtension = node.subElements[xmlPath[xmlPath.length - 1].index];
|
|
53
|
+
const key = utils_3.getAttribute(xmlExtension, PLACEMENT_PROPERTIES.key) || property;
|
|
54
|
+
const anchor = utils_3.getAttribute(xmlExtension, PLACEMENT_PROPERTIES.anchor);
|
|
55
|
+
const placement = utils_3.getAttribute(xmlExtension, PLACEMENT_PROPERTIES.placement) || ux_specification_types_1.v4.Placement.After;
|
|
56
|
+
const annotationAnchor = `${annotationPrefix}${anchor}`;
|
|
57
|
+
const extension = {
|
|
58
|
+
position: {
|
|
59
|
+
anchor: annotationAnchor in schema.properties ? annotationAnchor : anchor,
|
|
60
|
+
placement
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return { key, extension };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Method updates 'propertyIndex' for passed schema's properties.
|
|
67
|
+
* Method prepares proxy objects and reuses 'utils.addExtensionToArray' method to recalculate order of annotation and custom extensions.
|
|
68
|
+
* @param {XMLElement} node Parsed XML element.
|
|
69
|
+
* @param {SchemaDefinition} schema Schema object which contains custom extensions and annotation elements.
|
|
70
|
+
*/
|
|
71
|
+
function updatePropertyIndices(node, schema) {
|
|
72
|
+
// Reuse "addExtensionToArray" method for calculating extensions position as it is done for manifest based extensions
|
|
73
|
+
// Logic requires to create 2 proxy objects to be able to reuse same logic
|
|
74
|
+
// Custom extension entries
|
|
75
|
+
const extensions = {};
|
|
76
|
+
// Annotation entries
|
|
77
|
+
const sortedExtensionsArray = [];
|
|
78
|
+
// Custom extension mapping between schema property key and extension key in xml
|
|
79
|
+
const extensionSchemaKeyMap = {};
|
|
80
|
+
// Populate annotation and custom extension entries
|
|
81
|
+
for (const property in schema.properties) {
|
|
82
|
+
const schemaNode = schema.properties[property];
|
|
83
|
+
if ('metadata' in schemaNode) {
|
|
84
|
+
// Custom extension node
|
|
85
|
+
const { extension, key } = getExtensionData(node, schema, property);
|
|
86
|
+
extensions[key] = extension;
|
|
87
|
+
// Mapping between extension key in xml and key in schema
|
|
88
|
+
extensionSchemaKeyMap[key] = property;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// Annotation based node
|
|
92
|
+
sortedExtensionsArray.push([property, schemaNode]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Reuse method to calculate order
|
|
96
|
+
utils_4.addExtensionToArray(extensions, sortedExtensionsArray, '', 'position');
|
|
97
|
+
// Apply order to 'propertyIndex' properties in schema
|
|
98
|
+
for (let i = 0; i < sortedExtensionsArray.length; i++) {
|
|
99
|
+
const key = sortedExtensionsArray[i][0];
|
|
100
|
+
let schemaNode = schema.properties[key];
|
|
101
|
+
if (sortedExtensionsArray[i][1].$ref === '#/definitions/' && key in extensionSchemaKeyMap) {
|
|
102
|
+
// Entry of custom extension
|
|
103
|
+
schemaNode = schema.properties[extensionSchemaKeyMap[key]];
|
|
104
|
+
}
|
|
105
|
+
if (schemaNode) {
|
|
106
|
+
// Update index to affect ordering
|
|
107
|
+
schemaNode.propertyIndex = i;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Method refreshes custom extension schema's 'anchor' property with 'oneOf' enum entires.
|
|
113
|
+
* @param {XMLElement} node Parsed XML element.
|
|
114
|
+
* @param {SchemaDefinition} schema Schema object which contains custom extensions and annotation elements.
|
|
115
|
+
* @param {SchemaDefinition} appSchema Full app schema.
|
|
116
|
+
*/
|
|
117
|
+
function applyEnumsForAnchors(node, schema, appSchema) {
|
|
118
|
+
const annotationPrefix = getAnnotationPrefix(node.name);
|
|
119
|
+
for (const name in schema.properties) {
|
|
120
|
+
const anchorProperty = 'anchor';
|
|
121
|
+
const property = schema.properties[name];
|
|
122
|
+
if (!property.metadata) {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
utils_2.addDescriptiveEnumDefinition(appSchema, schema, {
|
|
126
|
+
property: anchorProperty,
|
|
127
|
+
schema: property
|
|
128
|
+
}, {
|
|
129
|
+
excludeKey: name,
|
|
130
|
+
resolveDefinition: true
|
|
131
|
+
});
|
|
132
|
+
// Remove annotation prefix from anchor enum entries - it is difference between manifest and macros anchering
|
|
133
|
+
const oneOf = property.properties?.[anchorProperty]?.oneOf || [];
|
|
134
|
+
for (const entry of oneOf) {
|
|
135
|
+
if (typeof entry !== 'object' || typeof entry.const !== 'string') {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
const property = schema.properties[entry.const];
|
|
139
|
+
if (entry.const.startsWith(annotationPrefix)) {
|
|
140
|
+
// Remove annotation prefix - it is not required for macros
|
|
141
|
+
entry.const = entry.const.replace(annotationPrefix, '');
|
|
142
|
+
}
|
|
143
|
+
else if (property?.metadata?.path) {
|
|
144
|
+
// Reference to custom extension - use key for enum value
|
|
145
|
+
const index = property.metadata.path[property.metadata.path.length - 1].index;
|
|
146
|
+
entry.const = utils_3.getAttribute(node.subElements[index], 'key') || entry.const;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Method handles custom extension - resolve positions and ordering.
|
|
153
|
+
* Currently it handles `sap.fe.macros.FilterField`, but code is generic and can handle also other extensions - method relies on 'anchor' and 'placement' properties.
|
|
154
|
+
* @param {XMLElement} node Parsed XML element.
|
|
155
|
+
* @param {SchemaDefinition} schema Schema object which contains custom extensions and annotation elements.
|
|
156
|
+
* @param {SchemaDefinition} appSchema Full app schema.
|
|
157
|
+
*/
|
|
158
|
+
function handleExtensions(node, schema, appSchema) {
|
|
159
|
+
if (!isCustomExtensionSchema(schema, appSchema)) {
|
|
160
|
+
// Schema does not support custom extensions
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
// Update ordering of nodes by updating 'propertyIndex' for each node
|
|
164
|
+
updatePropertyIndices(node, schema);
|
|
165
|
+
// Enhance anchor property to add enum
|
|
166
|
+
applyEnumsForAnchors(node, schema, appSchema);
|
|
167
|
+
}
|
|
168
|
+
exports.handleExtensions = handleExtensions;
|
|
169
|
+
//# sourceMappingURL=extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/fpm-custom-page/extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ConvertedMetadata } from '@sap-ux/vocabularies-types';
|
|
2
|
+
import type { ExtensionLogger, SchemaDefinition } from '@sap/ux-specification-types';
|
|
3
|
+
import type { CustomPageCustomViewData } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* Method generates schema for passed XML content.
|
|
6
|
+
* @param {SchemaDefinition} genericSchema Generic schema of "sap.fe.macros".
|
|
7
|
+
* @param {string} xmlFile Object with xml file.
|
|
8
|
+
* @param {ConvertedMetadata} serviceAVT OData metadata.
|
|
9
|
+
* @param {ExtensionLogger} [logger] - Logger class for logging messages.
|
|
10
|
+
* @returns {SchemaDefinition} Generated schema for passed XML content.
|
|
11
|
+
*/
|
|
12
|
+
export declare function generateCustomPageSchemaV4(genericSchema: SchemaDefinition, xmlFile: CustomPageCustomViewData, serviceAVT: ConvertedMetadata, logger?: ExtensionLogger): SchemaDefinition | undefined;
|
|
13
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/fpm-custom-page/generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EACR,eAAe,EAEf,gBAAgB,EAEnB,MAAM,6BAA6B,CAAC;AAOrC,OAAO,KAAK,EAAE,wBAAwB,EAAwB,MAAM,aAAa,CAAC;AAyQlF;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACtC,aAAa,EAAE,gBAAgB,EAC/B,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,iBAAiB,EAC7B,MAAM,CAAC,EAAE,eAAe,GACzB,gBAAgB,GAAG,SAAS,CAoC9B"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateCustomPageSchemaV4 = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
5
|
+
const utils_1 = require("../../../common/utils");
|
|
6
|
+
const macros_1 = require("../../utils/macros");
|
|
7
|
+
const annotations_1 = require("./annotations");
|
|
8
|
+
const extensions_1 = require("./extensions");
|
|
6
9
|
const MACROS_NAMESPACE = 'sap.fe.macros';
|
|
7
10
|
// List of properties which should be used to describe schema view nodes
|
|
8
11
|
const descriptionProperties = ['id', 'key', 'title', 'text', 'label', 'header'];
|
|
@@ -123,14 +126,14 @@ function handleAttributes(node, schema, fullSchema) {
|
|
|
123
126
|
}
|
|
124
127
|
}
|
|
125
128
|
/**
|
|
126
|
-
* Method adds property to schema's properties.
|
|
129
|
+
* Method adds control or complex property to schema's properties.
|
|
127
130
|
* @param {XMLElement} node Parsed XML element.
|
|
128
131
|
* @param {SchemaDefinition} schema Schema object to update with new property.
|
|
129
132
|
* @param {XMLParseParams} params XML parsing params.
|
|
130
133
|
* @param {string} name Property name.
|
|
131
134
|
* @returns {string} Added property name.
|
|
132
135
|
*/
|
|
133
|
-
function
|
|
136
|
+
function addControlToSchema(node, schema, params, name) {
|
|
134
137
|
const fullSchema = params.schema;
|
|
135
138
|
if (!schema.properties) {
|
|
136
139
|
prepareSchemaProperties(schema, fullSchema);
|
|
@@ -149,37 +152,53 @@ function addProperty(node, schema, params, name) {
|
|
|
149
152
|
else {
|
|
150
153
|
refs = [`${MACROS_NAMESPACE}.${name}`, `${MACROS_NAMESPACE}.table.${name}`];
|
|
151
154
|
}
|
|
152
|
-
let
|
|
155
|
+
let handled = false;
|
|
153
156
|
for (const ref of refs) {
|
|
154
157
|
const refDefinition = fullSchema.definitions?.[ref];
|
|
155
|
-
if (typeof refDefinition
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
metadata
|
|
165
|
-
};
|
|
166
|
-
handleAttributes(node, newDefinition, fullSchema);
|
|
167
|
-
schema.properties[objectKey] = newDefinition;
|
|
168
|
-
unknown = false;
|
|
169
|
-
break;
|
|
158
|
+
if (typeof refDefinition !== 'object') {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const description = getViewNodeDescription(node, name);
|
|
162
|
+
if (!metadata.type) {
|
|
163
|
+
metadata.type = refDefinition.metadata.type;
|
|
164
|
+
}
|
|
165
|
+
if (metadata.type === ux_specification_types_1.MacrosPropertyType.Control) {
|
|
166
|
+
metadata.controlName = ref;
|
|
170
167
|
}
|
|
171
|
-
}
|
|
172
|
-
if (unknown) {
|
|
173
|
-
// Unknown definition
|
|
174
168
|
const newDefinition = {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
type: 'object',
|
|
178
|
-
description: name,
|
|
169
|
+
$ref: utils_1.getDefinitionsRef(ref),
|
|
170
|
+
description,
|
|
179
171
|
propertyIndex: params.index,
|
|
180
172
|
metadata
|
|
181
173
|
};
|
|
174
|
+
handleAttributes(node, newDefinition, fullSchema);
|
|
182
175
|
schema.properties[objectKey] = newDefinition;
|
|
176
|
+
handled = true;
|
|
177
|
+
// Call annotation handler
|
|
178
|
+
annotations_1.annotationMacrosHandlers[ref]?.({
|
|
179
|
+
...params,
|
|
180
|
+
node,
|
|
181
|
+
schema: newDefinition,
|
|
182
|
+
rootSchema: params.schema
|
|
183
|
+
});
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
if (!handled) {
|
|
187
|
+
if (!schemaProperty?.properties || !(objectKey in schema.properties)) {
|
|
188
|
+
// Unknown definition
|
|
189
|
+
const newDefinition = {
|
|
190
|
+
properties: {},
|
|
191
|
+
isViewNode: true,
|
|
192
|
+
type: 'object',
|
|
193
|
+
description: name,
|
|
194
|
+
propertyIndex: params.index,
|
|
195
|
+
metadata
|
|
196
|
+
};
|
|
197
|
+
schema.properties[objectKey] = newDefinition;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
schemaProperty.metadata = metadata;
|
|
201
|
+
}
|
|
183
202
|
}
|
|
184
203
|
return objectKey;
|
|
185
204
|
}
|
|
@@ -197,7 +216,7 @@ function handleXMLNode(node, schema, params) {
|
|
|
197
216
|
if (isElementWithNamespace(node, macrosPrefix) ||
|
|
198
217
|
(typeof parentSchema === 'object' && parentSchema.properties?.[node.name])) {
|
|
199
218
|
const names = node.name.split(':');
|
|
200
|
-
const name =
|
|
219
|
+
const name = addControlToSchema(node, schema, params, names[names.length - 1]);
|
|
201
220
|
// Go deeper in schema
|
|
202
221
|
schema = schema.properties[name];
|
|
203
222
|
}
|
|
@@ -220,16 +239,19 @@ function handleXMLNode(node, schema, params) {
|
|
|
220
239
|
]
|
|
221
240
|
});
|
|
222
241
|
}
|
|
242
|
+
// Post process schema
|
|
243
|
+
extensions_1.handleExtensions(node, schema, params.schema);
|
|
223
244
|
}
|
|
224
245
|
/**
|
|
225
246
|
* Method generates schema for passed XML content.
|
|
226
|
-
* @param {string} xmlContent XML content.
|
|
227
247
|
* @param {SchemaDefinition} genericSchema Generic schema of "sap.fe.macros".
|
|
248
|
+
* @param {string} xmlFile Object with xml file.
|
|
249
|
+
* @param {ConvertedMetadata} serviceAVT OData metadata.
|
|
228
250
|
* @param {ExtensionLogger} [logger] - Logger class for logging messages.
|
|
229
251
|
* @returns {SchemaDefinition} Generated schema for passed XML content.
|
|
230
252
|
*/
|
|
231
|
-
function generateCustomPageSchemaV4(genericSchema, xmlFile, logger) {
|
|
232
|
-
const viewDocument = macros_1.parseXML(xmlFile, true, logger);
|
|
253
|
+
function generateCustomPageSchemaV4(genericSchema, xmlFile, serviceAVT, logger) {
|
|
254
|
+
const viewDocument = macros_1.parseXML(xmlFile.file, true, logger);
|
|
233
255
|
if (!viewDocument) {
|
|
234
256
|
return undefined;
|
|
235
257
|
}
|
|
@@ -256,11 +278,13 @@ function generateCustomPageSchemaV4(genericSchema, xmlFile, logger) {
|
|
|
256
278
|
name: getElementName(element),
|
|
257
279
|
index
|
|
258
280
|
}
|
|
259
|
-
]
|
|
281
|
+
],
|
|
282
|
+
serviceAVT,
|
|
283
|
+
connectionContext: xmlFile.connection
|
|
260
284
|
});
|
|
261
285
|
}
|
|
262
286
|
}
|
|
263
287
|
return schema;
|
|
264
288
|
}
|
|
265
289
|
exports.generateCustomPageSchemaV4 = generateCustomPageSchemaV4;
|
|
266
|
-
//# sourceMappingURL=
|
|
290
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/fpm-custom-page/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/fpm-custom-page/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE/E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAttribute = void 0;
|
|
4
|
+
function getAttribute(node, name) {
|
|
5
|
+
return node.attributes.find((attribute) => attribute.key === name)?.value;
|
|
6
|
+
}
|
|
7
|
+
exports.getAttribute = getAttribute;
|
|
8
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/fpm-custom-page/utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,YAAY,CAAC,IAAgB,EAAE,IAAY;IACvD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC;AAC9E,CAAC;AAFD,oCAEC"}
|
|
@@ -13,7 +13,7 @@ import { TemplateType } from '@sap/ux-specification-types';
|
|
|
13
13
|
*
|
|
14
14
|
* @returns the app specific JSON schema
|
|
15
15
|
*/
|
|
16
|
-
export declare function generateObjectPageInterfaceV4(genericSchema: object,
|
|
16
|
+
export declare function generateObjectPageInterfaceV4(genericSchema: object, entitySetName: string, annotations: FileData[], manifest: object, logger?: ExtensionLogger, fragments?: FileData[], contextPath?: string): object;
|
|
17
17
|
/**
|
|
18
18
|
* Generates the app specific schema of a list report out of the generic schema.
|
|
19
19
|
* Generic types are replaced by information from the app specific annotations.
|
|
@@ -26,7 +26,7 @@ export declare function generateObjectPageInterfaceV4(genericSchema: object, ent
|
|
|
26
26
|
*
|
|
27
27
|
* @returns the app specific JSON schema
|
|
28
28
|
*/
|
|
29
|
-
export declare function generateListReportInterfaceV4(templateType: TemplateType, genericSchema: object, entitySetName: string, annotations: FileData[], logger?: ExtensionLogger, manifest?: object): object;
|
|
29
|
+
export declare function generateListReportInterfaceV4(templateType: TemplateType, genericSchema: object, entitySetName: string, annotations: FileData[], logger?: ExtensionLogger, manifest?: object, contextPath?: string): object;
|
|
30
30
|
/**
|
|
31
31
|
* Generates the app specific schema of a freestyle page out of the generic schema.
|
|
32
32
|
* Generic types are replaced by information from the app specific annotations.
|
|
@@ -50,5 +50,5 @@ export declare function generateFreestyleInterfaceV4(templateType: TemplateType,
|
|
|
50
50
|
*
|
|
51
51
|
* @returns the app specific JSON schema.
|
|
52
52
|
*/
|
|
53
|
-
export declare function generateFPMCustomPageInterfaceV4(genericSchema: object, routingId: string, manifest: Manifest, views: FileData[], featureToggles?: FeatureToggle[], logger?: ExtensionLogger): object;
|
|
53
|
+
export declare function generateFPMCustomPageInterfaceV4(genericSchema: object, routingId: string, manifest: Manifest, views: FileData[], annotations: FileData[], featureToggles?: FeatureToggle[], logger?: ExtensionLogger): object;
|
|
54
54
|
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/generate.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,eAAe,EAEf,QAAQ,EACR,QAAQ,EACR,aAAa,EAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAA4B,YAAY,EAAY,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/generate.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,eAAe,EAEf,QAAQ,EACR,QAAQ,EACR,aAAa,EAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAA4B,YAAY,EAAY,MAAM,6BAA6B,CAAC;AAI/F;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CACzC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,QAAQ,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,eAAe,EACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,EACtB,WAAW,CAAC,EAAE,MAAM,GACrB,MAAM,CAgBR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CACzC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,QAAQ,EAAE,EACvB,MAAM,CAAC,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACrB,MAAM,CAgBR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CACxC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,QAAQ,EAAE,EACvB,QAAQ,CAAC,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,eAAe,GACzB,MAAM,CAUR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC5C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,QAAQ,EAAE,EACjB,WAAW,EAAE,QAAQ,EAAE,EACvB,cAAc,CAAC,EAAE,aAAa,EAAE,EAChC,MAAM,CAAC,EAAE,eAAe,GACzB,MAAM,CAUR"}
|
|
@@ -5,6 +5,7 @@ const utils_1 = require("../../common/utils");
|
|
|
5
5
|
const _1 = require(".");
|
|
6
6
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
7
7
|
const utils_2 = require("../utils/utils");
|
|
8
|
+
const importProject_1 = require("../../common/importProject");
|
|
8
9
|
/**
|
|
9
10
|
* Generates the app specific schema of an object page out of the generic schema for the same page.
|
|
10
11
|
* Generic types are replaced by information from the app specific annotations.
|
|
@@ -18,17 +19,20 @@ const utils_2 = require("../utils/utils");
|
|
|
18
19
|
*
|
|
19
20
|
* @returns the app specific JSON schema
|
|
20
21
|
*/
|
|
21
|
-
function generateObjectPageInterfaceV4(genericSchema,
|
|
22
|
+
function generateObjectPageInterfaceV4(genericSchema, entitySetName, annotations, manifest, logger, fragments, contextPath) {
|
|
22
23
|
const serviceAVT = utils_1.parseAndMergeAndConvert(annotations, logger);
|
|
24
|
+
const { entitySet, entityType } = importProject_1.getEntityTypeEntitySetFromContextPath(serviceAVT, contextPath, entitySetName);
|
|
23
25
|
const generateParameters = {
|
|
24
26
|
templateType: ux_specification_types_1.TemplateType.ListReportObjectPageV4,
|
|
25
27
|
fioriElementsVersion: ux_specification_types_1.FioriElementsVersion.v4,
|
|
26
28
|
manifest,
|
|
27
29
|
fragments,
|
|
28
30
|
serviceAVT,
|
|
29
|
-
logger
|
|
31
|
+
logger,
|
|
32
|
+
entitySet,
|
|
33
|
+
entityType
|
|
30
34
|
};
|
|
31
|
-
return _1.generateObjectPageSchemaV4(generateParameters, genericSchema,
|
|
35
|
+
return _1.generateObjectPageSchemaV4(generateParameters, genericSchema, contextPath);
|
|
32
36
|
}
|
|
33
37
|
exports.generateObjectPageInterfaceV4 = generateObjectPageInterfaceV4;
|
|
34
38
|
/**
|
|
@@ -43,18 +47,20 @@ exports.generateObjectPageInterfaceV4 = generateObjectPageInterfaceV4;
|
|
|
43
47
|
*
|
|
44
48
|
* @returns the app specific JSON schema
|
|
45
49
|
*/
|
|
46
|
-
function generateListReportInterfaceV4(templateType, genericSchema, entitySetName, annotations, logger, manifest) {
|
|
50
|
+
function generateListReportInterfaceV4(templateType, genericSchema, entitySetName, annotations, logger, manifest, contextPath) {
|
|
47
51
|
const serviceAVT = utils_1.parseAndMergeAndConvert(annotations, logger);
|
|
48
|
-
const entitySet =
|
|
52
|
+
const { entitySet, entityType } = importProject_1.getEntityTypeEntitySetFromContextPath(serviceAVT, contextPath, entitySetName);
|
|
49
53
|
const generateParameters = {
|
|
50
54
|
templateType,
|
|
51
55
|
fioriElementsVersion: ux_specification_types_1.FioriElementsVersion.v4,
|
|
52
56
|
manifest,
|
|
53
57
|
serviceAVT,
|
|
54
|
-
logger
|
|
58
|
+
logger,
|
|
59
|
+
entitySet,
|
|
60
|
+
entityType
|
|
55
61
|
};
|
|
56
62
|
const templateName = templateType === ux_specification_types_1.TemplateType.ListReportObjectPageV4 ? ux_specification_types_1.v4.FE_TEMPLATE_V4_LIST_REPORT : ux_specification_types_1.v4.FE_TEMPLATE_V4_ALP;
|
|
57
|
-
return _1.generateListReportSchemaV4(generateParameters, genericSchema,
|
|
63
|
+
return _1.generateListReportSchemaV4(generateParameters, genericSchema, templateName, contextPath);
|
|
58
64
|
}
|
|
59
65
|
exports.generateListReportInterfaceV4 = generateListReportInterfaceV4;
|
|
60
66
|
/**
|
|
@@ -91,11 +97,14 @@ exports.generateFreestyleInterfaceV4 = generateFreestyleInterfaceV4;
|
|
|
91
97
|
*
|
|
92
98
|
* @returns the app specific JSON schema.
|
|
93
99
|
*/
|
|
94
|
-
function generateFPMCustomPageInterfaceV4(genericSchema, routingId, manifest, views, featureToggles, logger) {
|
|
100
|
+
function generateFPMCustomPageInterfaceV4(genericSchema, routingId, manifest, views, annotations, featureToggles, logger) {
|
|
95
101
|
let schema = {};
|
|
96
102
|
if (utils_1.isFeatureSupported(featureToggles, ux_specification_types_1.Features.BuildingBlocks)) {
|
|
97
|
-
const
|
|
98
|
-
|
|
103
|
+
const serviceAVT = utils_1.parseAndMergeAndConvert(annotations, logger);
|
|
104
|
+
const viewData = utils_2.getPageCustomViewFile(views || [], routingId, manifest);
|
|
105
|
+
schema = viewData?.file.fileContent
|
|
106
|
+
? _1.generateCustomPageSchemaV4(genericSchema, viewData, serviceAVT, logger)
|
|
107
|
+
: {};
|
|
99
108
|
}
|
|
100
109
|
return schema;
|
|
101
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/generate.ts"],"names":[],"mappings":";;;AAAA,8CAAiF;AACjF,wBAKW;AAQX,wEAA+F;AAC/F,0CAAuD;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { generateListReportSchemaV4 } from './listReport';
|
|
2
2
|
export { generateObjectPageSchemaV4 } from './objectPage';
|
|
3
3
|
export { generateFreestyleSchemaV4 } from './freestylePage';
|
|
4
|
-
export { generateCustomPageSchemaV4 } from './
|
|
4
|
+
export { generateCustomPageSchemaV4 } from './fpm-custom-page/generator';
|
|
5
5
|
export { generateListReportInterfaceV4, generateObjectPageInterfaceV4, generateFreestyleInterfaceV4, generateFPMCustomPageInterfaceV4 } from './generate';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EACH,6BAA6B,EAC7B,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EACnC,MAAM,YAAY,CAAC"}
|
|
@@ -7,8 +7,8 @@ var objectPage_1 = require("./objectPage");
|
|
|
7
7
|
Object.defineProperty(exports, "generateObjectPageSchemaV4", { enumerable: true, get: function () { return objectPage_1.generateObjectPageSchemaV4; } });
|
|
8
8
|
var freestylePage_1 = require("./freestylePage");
|
|
9
9
|
Object.defineProperty(exports, "generateFreestyleSchemaV4", { enumerable: true, get: function () { return freestylePage_1.generateFreestyleSchemaV4; } });
|
|
10
|
-
var
|
|
11
|
-
Object.defineProperty(exports, "generateCustomPageSchemaV4", { enumerable: true, get: function () { return
|
|
10
|
+
var generator_1 = require("./fpm-custom-page/generator");
|
|
11
|
+
Object.defineProperty(exports, "generateCustomPageSchemaV4", { enumerable: true, get: function () { return generator_1.generateCustomPageSchemaV4; } });
|
|
12
12
|
var generate_1 = require("./generate");
|
|
13
13
|
Object.defineProperty(exports, "generateListReportInterfaceV4", { enumerable: true, get: function () { return generate_1.generateListReportInterfaceV4; } });
|
|
14
14
|
Object.defineProperty(exports, "generateObjectPageInterfaceV4", { enumerable: true, get: function () { return generate_1.generateObjectPageInterfaceV4; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAAjD,wHAAA,0BAA0B,OAAA;AACnC,2CAA0D;AAAjD,wHAAA,0BAA0B,OAAA;AACnC,iDAA4D;AAAnD,0HAAA,yBAAyB,OAAA;AAClC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/sync/v4/generate/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAAjD,wHAAA,0BAA0B,OAAA;AACnC,2CAA0D;AAAjD,wHAAA,0BAA0B,OAAA;AACnC,iDAA4D;AAAnD,0HAAA,yBAAyB,OAAA;AAClC,yDAAyE;AAAhE,uHAAA,0BAA0B,OAAA;AACnC,uCAKoB;AAJhB,yHAAA,6BAA6B,OAAA;AAC7B,yHAAA,6BAA6B,OAAA;AAC7B,wHAAA,4BAA4B,OAAA;AAC5B,4HAAA,gCAAgC,OAAA"}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
import type { GenerateAppSchemaParameters } from '@sap/ux-specification-types';
|
|
2
|
-
import type {
|
|
2
|
+
import type { AnnotationTerm, EntityType } from '@sap-ux/vocabularies-types';
|
|
3
|
+
import type { SelectionFields } from '@sap-ux/vocabularies-types/vocabularies/UI';
|
|
4
|
+
import type { Definition } from 'typescript-json-schema';
|
|
5
|
+
/**
|
|
6
|
+
* Adds the selection fields to the app schema, as properties of the FilterBar
|
|
7
|
+
* @param {EntityType} entityType - the entity type as part of the AVT ConvertedMetadata
|
|
8
|
+
* @param {Definition} appSchema - the app specific schema that shall get enhanced
|
|
9
|
+
* @param {AnnotationTerm<SelectionFields>} selectionFieldsAnnotation - the UI.SelectionField annotation
|
|
10
|
+
* @param {Definition} [selectionFieldsDefinition] - Schema definitions of selection fields
|
|
11
|
+
*/
|
|
12
|
+
export declare function addSelectionFields(entityType: EntityType, appSchema: Definition, selectionFieldsAnnotation: AnnotationTerm<SelectionFields>, selectionFieldsDefinition?: Definition): void;
|
|
3
13
|
/**
|
|
4
14
|
* Generates an app specific schema for the FE V4 ListReport from the generic schema.
|
|
5
15
|
* Generic types are replaced by information from the app specific annotations.
|
|
6
16
|
* @param {GenerateAppSchemaParameters} generateParameters - list of API input parameters
|
|
7
17
|
* @param genericSchema - generic JSON schema of an object page
|
|
8
|
-
* @param {EntitySet} entitySet - entity set (AVT object) that is relevant for the given page
|
|
9
18
|
* @param {string} templateName - allows to distinguish list report from ALP
|
|
19
|
+
* @param {string} contextPath - entity set (AVT object) that is relevant for the given page
|
|
10
20
|
*
|
|
11
21
|
* @returns {object} application-specific schema of the list report
|
|
12
22
|
*/
|
|
13
|
-
export declare function generateListReportSchemaV4(generateParameters: GenerateAppSchemaParameters, genericSchema: object,
|
|
23
|
+
export declare function generateListReportSchemaV4(generateParameters: GenerateAppSchemaParameters, genericSchema: object, templateName: string, contextPath: string): object;
|
|
14
24
|
//# sourceMappingURL=listReport.d.ts.map
|
|
@@ -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":"AA2BA,OAAO,KAAK,EAAuB,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAa,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,KAAK,EAAoC,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAoBpH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,EACrB,yBAAyB,EAAE,cAAc,CAAC,eAAe,CAAC,EAC1D,yBAAyB,CAAC,EAAE,UAAU,GACvC,IAAI,CAsDN;AAy/BD;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACtC,kBAAkB,EAAE,2BAA2B,EAC/C,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GACpB,MAAM,CA2CR"}
|