@sap/ux-specification 1.84.35 → 1.84.38

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.
Files changed (141) hide show
  1. package/CHANGELOG.md +69 -24
  2. package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
  3. package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
  4. package/dist/documentation/v2/v2-ListReport.html +1 -1
  5. package/dist/documentation/v2/v2-ObjectPage.html +1 -1
  6. package/dist/documentation/v2/v2-OverviewPage.html +1 -1
  7. package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
  8. package/dist/documentation/v4/v4-ListReport.html +1 -1
  9. package/dist/documentation/v4/v4-ObjectPage.html +1 -1
  10. package/dist/index-min.js +1 -1
  11. package/dist/schemas/v2/AnalyticalListPageConfig.json +9 -5
  12. package/dist/schemas/v2/ListReportConfig.json +11 -7
  13. package/dist/schemas/v2/ObjectPageConfig.json +195 -7
  14. package/dist/schemas/v4/ListReportConfig.json +34 -4
  15. package/dist/schemas/v4/ObjectPageConfig.json +36 -0
  16. package/dist/specification/v2/index-min.js +1 -1
  17. package/dist/src/apiTypes.d.ts +2 -1
  18. package/dist/src/project.d.ts +1 -0
  19. package/dist/src/project.js +13 -5
  20. package/dist/src/project.js.map +1 -1
  21. package/dist/src/specification/v2/controls/ObjectPageSection.d.ts +40 -7
  22. package/dist/src/specification/v2/controls/ObjectPageSection.js.map +1 -1
  23. package/dist/src/specification/v2/controls/ObjectPageTable.d.ts +2 -3
  24. package/dist/src/specification/v2/controls/Table.d.ts +5 -2
  25. package/dist/src/specification/v2/controls/Table.js +5 -0
  26. package/dist/src/specification/v2/controls/Table.js.map +1 -1
  27. package/dist/src/specification/v4/controls/ObjectPageSection.d.ts +22 -1
  28. package/dist/src/specification/v4/controls/ObjectPageSection.js.map +1 -1
  29. package/dist/src/specification/v4/controls/ObjectPageTable.d.ts +0 -14
  30. package/dist/src/specification/v4/controls/Table.d.ts +12 -29
  31. package/dist/src/specification/v4/pages/ListReportConfig.d.ts +6 -1
  32. package/dist/src/specification/v4/webapp/manifest/sapUiPageV4.d.ts +1 -0
  33. package/dist/src/specification/v4/webapp/manifest/sapUiPageV4.js.map +1 -1
  34. package/dist/src/sync/common/decoration/control.d.ts +1 -1
  35. package/dist/src/sync/common/decoration/control.js +27 -22
  36. package/dist/src/sync/common/decoration/control.js.map +1 -1
  37. package/dist/src/sync/common/generate/objectPage.d.ts +5 -4
  38. package/dist/src/sync/common/generate/objectPage.js +67 -66
  39. package/dist/src/sync/common/generate/objectPage.js.map +1 -1
  40. package/dist/src/sync/common/generate/utils.d.ts +53 -12
  41. package/dist/src/sync/common/generate/utils.js +139 -46
  42. package/dist/src/sync/common/generate/utils.js.map +1 -1
  43. package/dist/src/sync/common/import/utils.d.ts +3 -2
  44. package/dist/src/sync/common/import/utils.js +11 -6
  45. package/dist/src/sync/common/import/utils.js.map +1 -1
  46. package/dist/src/sync/common/importProject.js +20 -19
  47. package/dist/src/sync/common/importProject.js.map +1 -1
  48. package/dist/src/sync/common/types.d.ts +105 -26
  49. package/dist/src/sync/common/types.js +101 -22
  50. package/dist/src/sync/common/types.js.map +1 -1
  51. package/dist/src/sync/common/utils.d.ts +17 -12
  52. package/dist/src/sync/common/utils.js +132 -88
  53. package/dist/src/sync/common/utils.js.map +1 -1
  54. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js +1 -1
  55. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js.map +1 -1
  56. package/dist/src/sync/v2/export/controls/Fragment.js +2 -2
  57. package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -1
  58. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +26 -14
  59. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +57 -5
  60. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -1
  61. package/dist/src/sync/v2/export/controls/ObjectPageTable.d.ts +2 -3
  62. package/dist/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -1
  63. package/dist/src/sync/v2/export/controls/Table.d.ts +3 -3
  64. package/dist/src/sync/v2/export/controls/Table.js +89 -48
  65. package/dist/src/sync/v2/export/controls/Table.js.map +1 -1
  66. package/dist/src/sync/v2/export/export.d.ts +0 -1
  67. package/dist/src/sync/v2/export/export.js +222 -160
  68. package/dist/src/sync/v2/export/export.js.map +1 -1
  69. package/dist/src/sync/v2/export/exportPage.js +35 -34
  70. package/dist/src/sync/v2/export/exportPage.js.map +1 -1
  71. package/dist/src/sync/v2/export/manifest.d.ts +22 -0
  72. package/dist/src/sync/v2/export/manifest.js +77 -36
  73. package/dist/src/sync/v2/export/manifest.js.map +1 -1
  74. package/dist/src/sync/v2/export/pages/OverviewPage.d.ts +1 -1
  75. package/dist/src/sync/v2/export/pages/OverviewPage.js +18 -16
  76. package/dist/src/sync/v2/export/pages/OverviewPage.js.map +1 -1
  77. package/dist/src/sync/v2/generate/analyticalListReport.js +10 -10
  78. package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  79. package/dist/src/sync/v2/generate/listReport.js +1 -1
  80. package/dist/src/sync/v2/generate/listReport.js.map +1 -1
  81. package/dist/src/sync/v2/generate/objectPage.js +57 -43
  82. package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
  83. package/dist/src/sync/v2/generate/utils.d.ts +5 -4
  84. package/dist/src/sync/v2/generate/utils.js +73 -69
  85. package/dist/src/sync/v2/generate/utils.js.map +1 -1
  86. package/dist/src/sync/v2/import/app/appProvider.d.ts +9 -0
  87. package/dist/src/sync/v2/import/app/appProvider.js +36 -13
  88. package/dist/src/sync/v2/import/app/appProvider.js.map +1 -1
  89. package/dist/src/sync/v2/import/app/ovpProvider.js +1 -1
  90. package/dist/src/sync/v2/import/app/ovpProvider.js.map +1 -1
  91. package/dist/src/sync/v2/import/common/index.js +6 -6
  92. package/dist/src/sync/v2/import/common/index.js.map +1 -1
  93. package/dist/src/sync/v2/import/pages/objectPage.js +93 -101
  94. package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
  95. package/dist/src/sync/v2/import/pages/overviewPage.js +1 -1
  96. package/dist/src/sync/v2/import/pages/overviewPage.js.map +1 -1
  97. package/dist/src/sync/v2/import/utils.js +1 -1
  98. package/dist/src/sync/v2/import/utils.js.map +1 -1
  99. package/dist/src/sync/v2/types.d.ts +8 -3
  100. package/dist/src/sync/v2/types.js +6 -2
  101. package/dist/src/sync/v2/types.js.map +1 -1
  102. package/dist/src/sync/v4/application.d.ts +22 -10
  103. package/dist/src/sync/v4/application.js +68 -19
  104. package/dist/src/sync/v4/application.js.map +1 -1
  105. package/dist/src/sync/v4/export/controls/Table.d.ts +5 -0
  106. package/dist/src/sync/v4/export/controls/Table.js +91 -50
  107. package/dist/src/sync/v4/export/controls/Table.js.map +1 -1
  108. package/dist/src/sync/v4/export/controls/TableColumn.js +4 -4
  109. package/dist/src/sync/v4/export/controls/TableColumn.js.map +1 -1
  110. package/dist/src/sync/v4/export/export.js +287 -150
  111. package/dist/src/sync/v4/export/export.js.map +1 -1
  112. package/dist/src/sync/v4/export/manifest.js +25 -6
  113. package/dist/src/sync/v4/export/manifest.js.map +1 -1
  114. package/dist/src/sync/v4/export/pages/ListReport.d.ts +1 -0
  115. package/dist/src/sync/v4/export/pages/ListReport.js +7 -0
  116. package/dist/src/sync/v4/export/pages/ListReport.js.map +1 -1
  117. package/dist/src/sync/v4/export/pages/ObjectPage.js +3 -2
  118. package/dist/src/sync/v4/export/pages/ObjectPage.js.map +1 -1
  119. package/dist/src/sync/v4/export/types.d.ts +5 -5
  120. package/dist/src/sync/v4/generate/listReport.js +304 -156
  121. package/dist/src/sync/v4/generate/listReport.js.map +1 -1
  122. package/dist/src/sync/v4/generate/objectPage.d.ts +1 -1
  123. package/dist/src/sync/v4/generate/objectPage.js +288 -147
  124. package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
  125. package/dist/src/sync/v4/import/app/appProvider.js +32 -22
  126. package/dist/src/sync/v4/import/app/appProvider.js.map +1 -1
  127. package/dist/src/sync/v4/import/pages/listReport.js +54 -37
  128. package/dist/src/sync/v4/import/pages/listReport.js.map +1 -1
  129. package/dist/src/sync/v4/import/pages/objectPage.d.ts +13 -0
  130. package/dist/src/sync/v4/import/pages/objectPage.js +64 -35
  131. package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
  132. package/dist/src/sync/v4/import/utils.d.ts +2 -1
  133. package/dist/src/sync/v4/import/utils.js.map +1 -1
  134. package/dist/src/sync/v4/types.d.ts +2 -0
  135. package/dist/src/sync/v4/utils/StableIdHelper.js +13 -10
  136. package/dist/src/sync/v4/utils/StableIdHelper.js.map +1 -1
  137. package/dist/src/sync/v4/utils/utils.d.ts +7 -7
  138. package/dist/src/sync/v4/utils/utils.js +43 -32
  139. package/dist/src/sync/v4/utils/utils.js.map +1 -1
  140. package/dist/test/unit/export/manifest.test.d.ts +1 -0
  141. package/package.json +2 -2
@@ -3,18 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const i18next_1 = __importDefault(require("i18next"));
7
+ const extensionLogger_1 = require("../../../extensionLogger");
6
8
  const common_1 = require("../../../specification/common");
7
9
  const v4_1 = require("../../../v4");
8
10
  const common_2 = require("../../common");
9
11
  const utils_1 = require("../utils/utils");
10
- const i18next_1 = __importDefault(require("i18next"));
11
- const extensionLogger_1 = require("../../../extensionLogger");
12
12
  /**
13
13
  * Callback for adding a single action to headerActions of V4
14
14
  * @param {EntityType} entityType - current entity type
15
- * @param {object} appSchema Schema of the app
15
+ * @param {Definition} appSchema Schema of the app
16
16
  * @param actionAnnotation - annotation as present in AVT ConverterOutput
17
- * @param headerActions - list of header actions, to be enhanced
17
+ * @param {Definition} headerActions - list of header actions, to be enhanced
18
18
  * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
19
19
  */
20
20
  function addHeaderActionCallBackV4(entityType, appSchema, actionAnnotation, headerActions, oDataServiceAVT) {
@@ -23,121 +23,258 @@ function addHeaderActionCallBackV4(entityType, appSchema, actionAnnotation, head
23
23
  item.$Type === "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation" /* DataFieldForIntentBasedNavigation */) {
24
24
  const action = common_2.replaceAlias(item.Action, oDataServiceAVT);
25
25
  const { actionName, actionId } = common_2.getActionNameAndId(action, entityType);
26
- const description = item.Label || actionName;
27
- const actionDefinitionKey = `HeaderAction<${common_2.prepareRef(actionId)}>`;
28
26
  const convertedIdentification = actionAnnotation.fullyQualifiedName.replace(`@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`, `/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`);
29
- appSchema['definitions'][actionDefinitionKey] = {
30
- isViewNode: true,
27
+ const actionDefinitionKey = `HeaderAction<${common_2.prepareRef(actionId)}>`;
28
+ const headerAction = (appSchema.definitions[actionDefinitionKey] = {
31
29
  type: 'object',
32
30
  properties: {},
33
- description: description,
34
- annotationPath: `/${convertedIdentification}/${index}`
35
- };
31
+ description: item.Label || actionName
32
+ });
33
+ headerAction[v4_1.SchemaTag.isViewNode] = true;
34
+ headerAction[v4_1.SchemaTag.annotationPath] = `/${convertedIdentification}/${index}`;
36
35
  headerActions.properties[actionId] = {
37
36
  $ref: `${common_2.DEFINITION_LINK_PREFIX}${actionDefinitionKey}`
38
37
  };
39
38
  }
40
39
  };
41
40
  }
41
+ /**
42
+ * Adds definitions for collections in object page sections to the app schema
43
+ * @param {FacetConfig} facet - the given facet from the UI annotations
44
+ * @param {string} facetKey - key of the facet, as used in annotation
45
+ * @param {Definition} appSchema - app schema in general
46
+ * @param {Definition} sections - schema of current sections definition.
47
+ * @param {SectionType} sectionPrefix - prefix to distinguish Section and HeaderSection
48
+ * @param {GenerateSchemaParameters} generateParameters - list of API input parameters
49
+ * @param {SapUiAppPageV4} v4Page Current page in manifest
50
+ */
51
+ function handleCollection(facet, facetKey, appSchema, sections, sectionPrefix, generateParameters, v4Page) {
52
+ const collectionFacet = (sections.properties[facetKey] = common_2.createDefaultSection(appSchema, facet, facetKey));
53
+ collectionFacet.properties = {
54
+ subsections: {
55
+ additionalProperties: false,
56
+ type: 'object',
57
+ properties: {},
58
+ description: 'Subsections'
59
+ }
60
+ };
61
+ const subSections = collectionFacet.properties.subsections;
62
+ subSections[v4_1.SchemaTag.annotationPath] = facet.annotationPath;
63
+ subSections[v4_1.SchemaTag.isViewNode] = true;
64
+ for (const key in facet.facets) {
65
+ addSection(generateParameters, facet.facets, key, subSections, appSchema, sectionPrefix, v4Page);
66
+ }
67
+ }
42
68
  /**
43
69
  * Adds definitions for line items in object page sections to the app schema
44
- * @param facet - the given facet from the UI annotations
45
- * @param facetIdInSchema - key of the facet, as used in schema
46
- * @param facets - list of all facets
47
- * @param appSchema - app schema in general
70
+ * @param {FacetConfig} facet - the given facet from the UI annotations
71
+ * @param {string} facetKey - key of the facet, as used in annotation
72
+ * @param {Definition} appSchema - app schema in general
73
+ * @param {object} lineItemFacet - current lineItem facet
48
74
  * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
75
+ * @param {SapUiAppPageV4} v4Page Current page in manifest
76
+ * @param {ExtensionLogger} logger - logger for exceptions
49
77
  */
50
- function handleLineItem(facet, facetIdInSchema, facets, appSchema, oDataServiceAVT) {
51
- let navigationProperty = '', annotation = '';
52
- [navigationProperty, annotation] = facetIdInSchema.split('::');
53
- const schemaIdForOpSection = `ObjectPageSectionTableV4<${facetIdInSchema}>`;
54
- appSchema['definitions'][schemaIdForOpSection] = JSON.parse(JSON.stringify(appSchema['definitions']['ObjectPageSectionTableV4']));
55
- const schemaIdForTable = `ObjectPageTable<${facetIdInSchema}>`;
56
- appSchema['definitions'][schemaIdForOpSection].properties.table.$ref = `${common_2.DEFINITION_LINK_PREFIX}${schemaIdForTable}`;
57
- appSchema['definitions'][schemaIdForTable] = JSON.parse(JSON.stringify(appSchema['definitions'][v4_1.DefinitionName.ObjectPageTable]));
58
- appSchema['definitions'][schemaIdForOpSection].annotationPath = facet.annotationPath;
59
- common_2.addSectionTitleAndDescription(facet, appSchema['definitions'][schemaIdForOpSection], facetIdInSchema);
60
- appSchema['definitions'][schemaIdForOpSection].properties.table.$ref = `${common_2.DEFINITION_LINK_PREFIX}ObjectPageTable<${facetIdInSchema}>`;
61
- const idForTable = `ObjectPageTable<${facetIdInSchema}>`;
62
- appSchema['definitions'][idForTable] = JSON.parse(JSON.stringify(appSchema['definitions'][v4_1.DefinitionName.ObjectPageTable]));
78
+ function handleLineItem(facet, facetKey, appSchema, lineItemFacet, oDataServiceAVT) {
79
+ const lineItemId = common_2.getFacetKeyInSchema(facetKey);
80
+ const annotation = lineItemId.split('::')[1];
81
+ const tableDefinition = common_2.parseSchemaDefinition(v4_1.DefinitionName.ObjectPageTable, facetKey, appSchema);
63
82
  if (facet.entityType && annotation) {
64
- appSchema['definitions'][idForTable].annotationPath = `/${facet.entityType.fullyQualifiedName}/${annotation}`;
83
+ tableDefinition[v4_1.SchemaTag.annotationPath] = `/${facet.entityType.fullyQualifiedName}/${annotation}`;
65
84
  }
66
- appSchema['definitions'][idForTable].properties['columns'] = {
67
- $ref: common_2.DEFINITION_LINK_PREFIX + facetIdInSchema
85
+ tableDefinition.properties.columns = {
86
+ $ref: `${common_2.DEFINITION_LINK_PREFIX}${lineItemId}`
68
87
  };
69
- appSchema['definitions'][idForTable].properties['toolBar'].$ref = `${common_2.DEFINITION_LINK_PREFIX}ObjectPageToolBar<${facetIdInSchema}>`;
88
+ tableDefinition.properties.toolBar.$ref = common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageToolBar, facetKey);
70
89
  //adjust quickVariantSelection
71
- appSchema['definitions'][idForTable].properties['quickVariantSelection'].$ref = `${common_2.DEFINITION_LINK_PREFIX}QuickVariantSelectionV4OP<${facetIdInSchema}>`;
72
- appSchema['definitions'][`QuickVariantSelectionV4OP<${facetIdInSchema}>`] = JSON.parse(JSON.stringify(appSchema['definitions']['QuickVariantSelectionV4OP']));
73
- appSchema['definitions'][`AnnotationPathAsObject<${facetIdInSchema}>`] = JSON.parse(JSON.stringify(appSchema['definitions'][v4_1.DefinitionName.AnnotationPathAsObject]));
74
- appSchema['definitions'][`QuickVariantSelectionV4OP<${facetIdInSchema}>`].properties.paths.items.$ref = `${common_2.DEFINITION_LINK_PREFIX}AnnotationPathAsObject<${facetIdInSchema}>`;
75
- common_2.addEnumForSingleTabVariant(facet.entityType, appSchema, `AnnotationPathAsObject<${facetIdInSchema}>`);
76
- for (const facetKey in facets) {
77
- if (facets[facetKey].base === common_2.FacetBase.LineItem && facetKey.includes(navigationProperty)) {
78
- utils_1.addLineItemsType(appSchema, facets[facetKey].target, facets[facetKey].entityType, oDataServiceAVT, v4_1.DefinitionName.ObjectPageTableColumn, facetIdInSchema);
79
- }
90
+ tableDefinition.properties.quickVariantSelection.$ref = common_2.getFacetDefinitionLink(v4_1.DefinitionName.QuickVariantSelectionV4OP, facetKey);
91
+ const tableQVS = common_2.parseSchemaDefinition(v4_1.DefinitionName.QuickVariantSelectionV4OP, facetKey, appSchema);
92
+ tableQVS.properties.paths['items'].$ref = common_2.getFacetDefinitionLink(v4_1.DefinitionName.AnnotationPathAsObject, facetKey);
93
+ common_2.parseSchemaDefinition(v4_1.DefinitionName.AnnotationPathAsObject, facetKey, appSchema);
94
+ common_2.addEnumForSingleTabVariant(facet.entityType, appSchema, `${v4_1.DefinitionName.AnnotationPathAsObject}<${lineItemId}>`);
95
+ utils_1.addLineItemsType(appSchema, lineItemFacet['target'], lineItemFacet['entityType'], oDataServiceAVT, lineItemId, v4_1.DefinitionName.ObjectPageTableColumn);
96
+ return tableDefinition;
97
+ }
98
+ /**
99
+ * Adds definitions for table section in object page sections to the app schema
100
+ * @param {FacetConfig} facet - current facet.
101
+ * @param {string} facetKey - facet key.
102
+ * @param {Definition} appSchema - app specific schema that potentially gets enhanced.
103
+ * @param {object} lineItemFacet - current lineItem facet
104
+ * @param {GenerateSchemaParameters} generateParameters - list of API input parameters
105
+ * @param {SapUiAppPageV4} v4Page Current page in manifest
106
+ * @param {Definition} sections - schema of current sections definition.
107
+ * @returns {object} sectionTable - section of app schema containing added table section
108
+ */
109
+ function handleSectionTable(facet, facetKey, appSchema, lineItemFacet, generateParameters, sections) {
110
+ if (sections) {
111
+ sections.properties[facetKey] = {
112
+ $ref: common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageSectionTableV4, facetKey)
113
+ };
80
114
  }
115
+ const sectionTable = common_2.parseSchemaDefinition(v4_1.DefinitionName.ObjectPageSectionTableV4, facetKey, appSchema);
116
+ common_2.addSectionTitleAndDescription(facet, sectionTable, common_2.getFacetKeyInSchema(facetKey));
117
+ sectionTable[v4_1.SchemaTag.annotationPath] = facet.annotationPath;
118
+ sectionTable.properties.table['$ref'] = common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageTable, facetKey);
119
+ const table = handleLineItem(facet, facetKey, appSchema, lineItemFacet, generateParameters.serviceAVT);
120
+ return { sectionTable, table };
81
121
  }
82
122
  /**
83
123
  * Adds definitions for Identification and Form facet items in object page sections to the app schema
84
- * @param {FacetConfigs} facet - current facet.
124
+ * @param {FacetConfig} facet - current facet.
85
125
  * @param {string} facetKey - facet key.
86
126
  * @param {object} sections - schema of current sections definition.
87
127
  * @param {object} appSchema - app specific schema that potentially gets enhanced.
88
128
  * @param {SectionType} sectionPrefix - prefix to distinguish Section and HeaderSection
89
- * @param {SectionType} formDefinitionKey - key to identify new definition
90
129
  */
91
- function handleFormIdentification(facet, facetKey, sections, appSchema, sectionPrefix, formDefinitionKey) {
130
+ function handleFormIdentification(facet, facetKey, sections, appSchema, sectionPrefix) {
131
+ let definitionType;
132
+ if (sectionPrefix === v4_1.SectionType.Section) {
133
+ definitionType = v4_1.DefinitionName.ObjectPageSectionForm;
134
+ }
135
+ else if (sectionPrefix === v4_1.SectionType.HeaderSection) {
136
+ definitionType = v4_1.DefinitionName.ObjectPageHeaderSectionForm;
137
+ }
92
138
  sections['properties'][facetKey] = {
93
- $ref: `${common_2.DEFINITION_LINK_PREFIX}${formDefinitionKey}`
139
+ $ref: common_2.getFacetDefinitionLink(definitionType, facetKey)
94
140
  };
95
- appSchema['definitions'][formDefinitionKey] = JSON.parse(JSON.stringify(appSchema['definitions'][`ObjectPage${sectionPrefix}Form`]));
141
+ const formSection = common_2.parseSchemaDefinition(definitionType, facetKey, appSchema);
96
142
  if (!facet.ID) {
97
- appSchema['definitions'][formDefinitionKey]['properties'] = {};
143
+ formSection.properties = {};
98
144
  }
99
- common_2.addSectionTitleAndDescription(facet, appSchema['definitions'][formDefinitionKey], facetKey);
100
- appSchema['definitions'][formDefinitionKey]['annotationPath'] = facet.annotationPath;
101
- appSchema['definitions'][formDefinitionKey]['isViewNode'] = true;
145
+ common_2.addSectionTitleAndDescription(facet, formSection, facetKey);
146
+ formSection[v4_1.SchemaTag.annotationPath] = facet.annotationPath;
147
+ formSection[v4_1.SchemaTag.isViewNode] = true;
102
148
  const withActions = facet.base === common_2.FacetBase.Identification && facetKey.indexOf('#') < 0 ? false : true;
103
- common_2.handleForm(sectionPrefix, facet, appSchema['definitions'][formDefinitionKey], appSchema, common_1.FioriElementsVersion.v4, withActions);
149
+ common_2.handleForm(sectionPrefix, facet, formSection, appSchema, common_1.FioriElementsVersion.v4, withActions);
104
150
  }
105
151
  /**
106
- * Adds definitions for DataPoint items in object page sections to the app schema
107
- * @param {FacetConfigs} facet - current facet.
152
+ * Adds definitions for header sections (DataPoint, Chart) in object page sections to the app schema
153
+ * @param {FacetConfig} facet - current facet.
108
154
  * @param {string} facetKey - facet key.
109
155
  * @param {object} sections - schema of current sections definition.
110
156
  * @param {object} appSchema - app specific schema that potentially gets enhanced.
111
- * @param {SectionType} sectionPrefix - prefix to distinguish Section and HeaderSection
112
157
  * @param {SectionType} facetDefinitionKey - key to identify new definition
113
158
  */
114
- function handleChartAndDataPoint(facet, facetKey, sections, appSchema, facetDefinitionKey) {
159
+ function handleHeaderFacet(facet, facetKey, sections, appSchema, facetDefinitionKey) {
115
160
  sections['properties'][facetKey] = {
116
161
  $ref: `${common_2.DEFINITION_LINK_PREFIX}${facetDefinitionKey}`
117
162
  };
118
- appSchema['definitions'][facetDefinitionKey] = JSON.parse(JSON.stringify(appSchema['definitions'][`CommonHeaderFacetSettings`]));
119
- common_2.addTargetTitleAndSectionDescription(facet, appSchema['definitions'][facetDefinitionKey], facetKey);
120
- appSchema['definitions'][facetDefinitionKey]['annotationPath'] = facet.annotationPath;
121
- appSchema['definitions'][facetDefinitionKey]['dataType'] = common_2.determineDataTypeOfTarget(facet === null || facet === void 0 ? void 0 : facet.target);
122
- appSchema['definitions'][facetDefinitionKey]['isViewNode'] = true;
163
+ const sectionFacet = common_2.parseSchemaDefinition(v4_1.DefinitionName.CommonHeaderFacetSettings, facetDefinitionKey, appSchema, false);
164
+ common_2.addTargetTitleAndSectionDescription(facet, sectionFacet, facetKey);
165
+ sectionFacet[v4_1.SchemaTag.annotationPath] = facet.annotationPath;
166
+ sectionFacet[v4_1.SchemaTag.dataType] = common_2.determineDataTypeOfTarget(facet === null || facet === void 0 ? void 0 : facet.target);
167
+ sectionFacet[v4_1.SchemaTag.isViewNode] = true;
123
168
  }
124
169
  /**
125
- * Adds definitions for Address and Contact items in object page sections to the app schema
126
- * @param {FacetConfigs} facet - current facet.
170
+ * Adds definitions for Chart items in object page sections to the app schema
171
+ * @param {FacetConfig | Chart | object} facet - current facet.
127
172
  * @param {string} facetKey - facet key.
128
- * @param {object} sections - schema of current sections definition.
129
173
  * @param {object} appSchema - app specific schema that potentially gets enhanced.
130
- * @param {SectionType} sectionPrefix - prefix to distinguish Section and HeaderSection
131
- * @param {SectionType} facetDefinitionKey - key to identify new definition
174
+ * @param {EntityType} entityType - current entity type
132
175
  */
133
- function handleAddressContact(facet, facetKey, sections, appSchema, sectionPrefix, facetDefinitionKey) {
134
- sections['properties'][facetKey] = {
135
- $ref: `${common_2.DEFINITION_LINK_PREFIX}${facetDefinitionKey}`
136
- };
137
- appSchema['definitions'][facetDefinitionKey] = JSON.parse(JSON.stringify(appSchema['definitions'][`ObjectPage${sectionPrefix}${facet.base}`]));
138
- common_2.addSectionTitleAndDescription(facet, appSchema['definitions'][facetDefinitionKey], facetKey);
139
- appSchema['definitions'][facetDefinitionKey]['annotationPath'] = facet.annotationPath;
140
- appSchema['definitions'][facetDefinitionKey]['isViewNode'] = true;
176
+ function handleChartActions(facet, facetKey, appSchema, entityType) {
177
+ const actions = common_2.parseSchemaDefinition(v4_1.DefinitionName.ObjectPageToolBarActions, facetKey, appSchema);
178
+ actions.additionalProperties = false;
179
+ actions.properties = {};
180
+ if (facet.Actions) {
181
+ let i = 0;
182
+ facet.Actions.forEach((actionRecord) => {
183
+ const description = common_2.getDataFieldDescription(actionRecord, entityType);
184
+ const prefix = actionRecord.$Type.split(v4_1.UIVOCABULARYDOT)[1];
185
+ const actionId = actionRecord.Action.replace('/', '??');
186
+ const toolBarActionsProperty = (actions.properties[`${prefix}::${actionRecord.Action}`] = {
187
+ $ref: common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageToolBarAction, actionId),
188
+ description
189
+ });
190
+ toolBarActionsProperty[v4_1.SchemaTag.propertyIndex] = i;
191
+ toolBarActionsProperty[v4_1.SchemaTag.annotationType] = actionRecord.$Type;
192
+ const toolBarAction = common_2.parseSchemaDefinition(v4_1.DefinitionName.ObjectPageToolBarAction, common_2.prepareRef(actionId), appSchema);
193
+ toolBarAction[v4_1.SchemaTag.annotationPath] = common_2.getFacetAnnotationPath(actionRecord);
194
+ toolBarAction[v4_1.SchemaTag.dataType] = common_2.determineDataType(actionRecord);
195
+ toolBarAction.properties = {};
196
+ i++;
197
+ });
198
+ }
199
+ return actions;
200
+ }
201
+ /**
202
+ * Adds definitions for Chart items in object page sections to the app schema
203
+ * @param {FacetConfig | Chart | object} facet - current facet.
204
+ * @param {string} facetKey - facet key.
205
+ * @param {object} appSchema - app specific schema that potentially gets enhanced.
206
+ * @param {EntityType} entityType - current entity type
207
+ */
208
+ function handleChart(facet, facetKey, appSchema, entityType) {
209
+ const chart = common_2.parseSchemaDefinition(v4_1.DefinitionName.ObjectPageChart, facetKey, appSchema);
210
+ chart[v4_1.SchemaTag.annotationPath] = common_2.getFacetAnnotationPath(facet);
211
+ chart[v4_1.SchemaTag.dataType] = common_2.determineDataTypeOfTarget(facet.target || facet);
212
+ chart[v4_1.SchemaTag.isViewNode] = true;
213
+ chart.properties.toolBar['$ref'] = common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageToolBar, facetKey);
214
+ const chartToolBar = common_2.parseSchemaDefinition(v4_1.DefinitionName.ObjectPageToolBar, facetKey, appSchema);
215
+ chartToolBar.properties.actions['$ref'] = common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageToolBarActions, facetKey);
216
+ const chartActions = handleChartActions(facet, facetKey, appSchema, entityType);
217
+ return { chart, chartActions };
218
+ }
219
+ /**
220
+ * Adds definitions for Chart section in object page sections to the app schema
221
+ * @param {FacetConfig} facet - current facet.
222
+ * @param {string} facetKey - facet key.
223
+ * @param {object} appSchema - app specific schema that potentially gets enhanced.
224
+ * @param {object} sections - schema of current sections definition.
225
+ * @param {EntityType} entityType - current entity type
226
+ */
227
+ function handleSectionChart(facet, facetKey, appSchema, sections, entityType = facet.entityType) {
228
+ if (sections) {
229
+ sections.properties[facetKey] = {
230
+ $ref: common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageSectionChart, facetKey)
231
+ };
232
+ }
233
+ const sectionChart = common_2.parseSchemaDefinition(v4_1.DefinitionName.ObjectPageSectionChart, facetKey, appSchema);
234
+ sectionChart[v4_1.SchemaTag.annotationPath] = common_2.getFacetAnnotationPath(facet);
235
+ sectionChart.properties.chart['$ref'] = common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageChart, facetKey);
236
+ const { chart, chartActions } = handleChart(facet.target || facet, facetKey, appSchema, entityType);
237
+ return { sectionChart, chart, chartActions };
238
+ }
239
+ /**
240
+ * Adds definitions for presentation variants in object page sections to the app schema
241
+ * @param {FacetConfig} facet - the given facet from the UI annotations
242
+ * @param {string} facetKey - key of the facet, as used in annotation
243
+ * @param {Definition} appSchema - app schema in general
244
+ * @param {object} sections - schema of current sections definition.
245
+ * @param {GenerateSchemaParameters} generateParameters - list of API input parameters
246
+ * @param {SapUiAppPageV4} v4Page Current page in manifest
247
+ */
248
+ function handleSectionPresentationVariant(facet, facetKey, appSchema, sections, generateParameters) {
249
+ var _a;
250
+ const facetTarget = facet.target.Visualizations
251
+ ? (_a = facet.target.Visualizations[0]) === null || _a === void 0 ? void 0 : _a.$target : undefined;
252
+ if (facetTarget) {
253
+ const [namespace, target] = facet.target[v4_1.SchemaTag.fullyQualifiedName].split('@');
254
+ const visualizationKey = `@${facetTarget.fullyQualifiedName.split('@')[1]}`;
255
+ sections.properties[`${facetKey}<${visualizationKey}>`] = {
256
+ $ref: common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageSectionPresentationVariant, visualizationKey)
257
+ };
258
+ const sectionDefinition = common_2.parseSchemaDefinition(v4_1.DefinitionName.ObjectPageSectionPresentationVariant, visualizationKey, appSchema);
259
+ delete sectionDefinition.additionalProperties;
260
+ common_2.addTargetTitleAndSectionDescription(facet, sectionDefinition, facetKey);
261
+ sectionDefinition[v4_1.SchemaTag.annotationPath] = facet.annotationPath;
262
+ sectionDefinition[v4_1.SchemaTag.isViewNode] = true;
263
+ const annotationPath = `/${namespace}/@${target}`;
264
+ const visualizationType = visualizationKey.split(v4_1.UIVOCABULARYDOT)[1];
265
+ if (visualizationType.startsWith('Chart')) {
266
+ sectionDefinition.$ref = common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageSectionChart, visualizationKey);
267
+ const { sectionChart, chart } = handleSectionChart(facetTarget, visualizationKey, appSchema, undefined, facet.entityType);
268
+ sectionChart[v4_1.SchemaTag.annotationPath] = annotationPath;
269
+ chart[v4_1.SchemaTag.annotationPath] = `/${namespace}/${visualizationKey}`;
270
+ }
271
+ else if (visualizationType.startsWith('LineItem')) {
272
+ sectionDefinition.$ref = common_2.getFacetDefinitionLink(v4_1.DefinitionName.ObjectPageSectionTableV4, visualizationKey);
273
+ const { sectionTable, table } = handleSectionTable(facet, visualizationKey, appSchema, { target: facetTarget, entityType: facet.entityType }, generateParameters);
274
+ sectionTable[v4_1.SchemaTag.annotationPath] = annotationPath;
275
+ table[v4_1.SchemaTag.annotationPath] = `/${namespace}/${visualizationKey}`;
276
+ }
277
+ }
141
278
  }
142
279
  /**
143
280
  * Creates a section definition in app schema.
@@ -146,54 +283,54 @@ function handleAddressContact(facet, facetKey, sections, appSchema, sectionPrefi
146
283
  * @param {string} facetKey - facet key.
147
284
  * @param {object} sections - schema of current sections definition.
148
285
  * @param {object} appSchema - app specific schema that potentially gets enhanced.
149
- * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
150
286
  * @param {SectionType} sectionPrefix - prefix to distinguish Section and HeaderSection
151
287
  * @param {SapUiAppPageV4} v4Page Current page in manifest
152
288
  */
153
289
  function addSection(generateParameters, facets, facetKey, sections, appSchema, sectionPrefix, v4Page) {
154
290
  const facet = facets[facetKey];
155
- const facetKeyInSchema = facetKey.replace('#', '::');
156
- if (facet.base === 'CollectionFacet') {
157
- //handle collection facets
158
- sections['properties'][facetKey] = common_2.createSectionWithoutProperties(facet, facetKey);
159
- sections['properties'][facetKey].properties = {
160
- subsections: {
161
- additionalProperties: false,
162
- type: 'object',
163
- properties: {},
164
- annotationPath: facet.annotationPath,
165
- isViewNode: true,
166
- description: 'Subsections'
291
+ const facetDefinitionKey = `ObjectPage${sectionPrefix}${facet.base}<${common_2.getFacetKeyInSchema(facetKey)}>`;
292
+ switch (facet.base) {
293
+ case common_2.FacetBase.PresentationVariant: {
294
+ handleSectionPresentationVariant(facet, facetKey, appSchema, sections, generateParameters);
295
+ break;
296
+ }
297
+ case common_2.FacetBase.CollectionFacet: {
298
+ handleCollection(facet, facetKey, appSchema, sections, sectionPrefix, generateParameters, v4Page);
299
+ break;
300
+ }
301
+ case common_2.FacetBase.LineItem: {
302
+ if (sectionPrefix === v4_1.SectionType.Section) {
303
+ const lineItemFacet = facets[facetKey];
304
+ handleSectionTable(facet, facetKey, appSchema, lineItemFacet, generateParameters, sections);
167
305
  }
168
- };
169
- const subSections = sections['properties'][facetKey].properties.subsections;
170
- for (const key in facet['facets']) {
171
- addSection(generateParameters, facet['facets'], key, subSections, appSchema, sectionPrefix, v4Page);
306
+ break;
307
+ }
308
+ case common_2.FacetBase.Form:
309
+ case common_2.FacetBase.Identification: {
310
+ handleFormIdentification(facet, facetKey, sections, appSchema, sectionPrefix);
311
+ break;
312
+ }
313
+ case common_2.FacetBase.DataPoint: {
314
+ handleHeaderFacet(facet, facetKey, sections, appSchema, facetDefinitionKey);
315
+ break;
316
+ }
317
+ case common_2.FacetBase.Chart: {
318
+ if (sectionPrefix === v4_1.SectionType.HeaderSection) {
319
+ handleHeaderFacet(facet, facetKey, sections, appSchema, facetDefinitionKey);
320
+ }
321
+ else if (sectionPrefix === v4_1.SectionType.Section) {
322
+ handleSectionChart(facet, facetKey, appSchema, sections);
323
+ }
324
+ break;
325
+ }
326
+ case common_2.FacetBase.Address:
327
+ case common_2.FacetBase.Contact: {
328
+ common_2.handleAddressContact(facet, facetKey, sections, appSchema, sectionPrefix);
329
+ break;
330
+ }
331
+ default: {
332
+ sections['properties'][facetKey] = common_2.createDefaultSection(appSchema, facet, facetKey);
172
333
  }
173
- }
174
- else if (facet.base === 'LineItem' && sectionPrefix === v4_1.SectionType.Section) {
175
- const tableDefinitionKey = `ObjectPage${sectionPrefix}TableV4<${facetKeyInSchema}>`;
176
- //handle reference facet (if comprising line item)
177
- sections['properties'][facetKey] = {
178
- $ref: `${common_2.DEFINITION_LINK_PREFIX}${tableDefinitionKey}`
179
- };
180
- handleLineItem(facet, facetKeyInSchema, facets, appSchema, generateParameters.serviceAVT);
181
- }
182
- else if (facet.base === common_2.FacetBase.Form || facet.base === common_2.FacetBase.Identification) {
183
- const formDefinitionKey = `ObjectPage${sectionPrefix}Form<${facetKeyInSchema}>`;
184
- handleFormIdentification(facet, facetKey, sections, appSchema, sectionPrefix, formDefinitionKey);
185
- }
186
- else if (facet.base === common_2.FacetBase.DataPoint ||
187
- (facet.base === common_2.FacetBase.Chart && sectionPrefix === v4_1.SectionType.HeaderSection)) {
188
- const facetDefinitionKey = `ObjectPage${sectionPrefix}${facet.base}<${facetKeyInSchema}>`;
189
- handleChartAndDataPoint(facet, facetKey, sections, appSchema, facetDefinitionKey);
190
- }
191
- else if (facet.base === common_2.FacetBase.Address || facet.base === common_2.FacetBase.Contact) {
192
- const facetDefinitionKey = `ObjectPage${sectionPrefix}${facet.base}<${facetKeyInSchema}>`;
193
- handleAddressContact(facet, facetKey, sections, appSchema, sectionPrefix, facetDefinitionKey);
194
- }
195
- else {
196
- sections['properties'][facetKey] = common_2.createSectionWithoutProperties(facet, facetKey);
197
334
  }
198
335
  }
199
336
  /**
@@ -207,16 +344,16 @@ function addSections(generateParameters, appSchema, entityType, v4Page) {
207
344
  // Get facet annotations
208
345
  const facets = common_2.getObjectPageFacets(entityType, generateParameters === null || generateParameters === void 0 ? void 0 : generateParameters.serviceAVT, common_1.FioriElementsVersion.v4, generateParameters.logger);
209
346
  if (!facets) {
210
- delete appSchema['definitions']['ObjectPageSubSections'];
347
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageSubSections];
211
348
  return;
212
349
  }
213
- const sections = appSchema['definitions']['Sections'];
350
+ const sections = appSchema.definitions[v4_1.DefinitionName.Sections];
214
351
  for (const facetKey in facets) {
215
352
  addSection(generateParameters, facets, facetKey, sections, appSchema, v4_1.SectionType.Section, v4Page);
216
353
  }
217
354
  // Custom sections as part of sections
218
- if (appSchema['definitions']['CustomSections']) {
219
- sections.properties = Object.assign(Object.assign({}, sections.properties), appSchema['definitions']['CustomSections'].properties);
355
+ if (appSchema.definitions[v4_1.DefinitionName.CustomSections]) {
356
+ sections.properties = Object.assign(Object.assign({}, sections.properties), appSchema.definitions[v4_1.DefinitionName.CustomSections].properties);
220
357
  }
221
358
  }
222
359
  /**
@@ -229,7 +366,7 @@ function addSections(generateParameters, appSchema, entityType, v4Page) {
229
366
  function addHeaderSections(generateParameters, appSchema, entityType, v4Page) {
230
367
  // Get facet annotations
231
368
  const facets = common_2.getObjectPageHeaderFacets(entityType, generateParameters === null || generateParameters === void 0 ? void 0 : generateParameters.serviceAVT, common_1.FioriElementsVersion.v4, generateParameters.logger);
232
- const sections = appSchema['definitions']['HeaderSections'];
369
+ const sections = appSchema.definitions[v4_1.DefinitionName.HeaderSections];
233
370
  sections.properties = {};
234
371
  sections.additionalProperties = false;
235
372
  if (!facets) {
@@ -239,11 +376,11 @@ function addHeaderSections(generateParameters, appSchema, entityType, v4Page) {
239
376
  addSection(generateParameters, facets, facetKey, sections, appSchema, v4_1.SectionType.HeaderSection, v4Page);
240
377
  }
241
378
  //delete generic definitions
242
- delete appSchema['definitions']['ObjectPageHeaderSectionForm'];
243
- delete appSchema['definitions']['ObjectPageHeaderSectionChart'];
244
- delete appSchema['definitions']['ObjectPageHeaderSectionDataPoint'];
245
- delete appSchema['definitions']['ObjectPageHeaderSectionContact'];
246
- delete appSchema['definitions']['ObjectPageHeaderSectionAddress'];
379
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageHeaderSectionForm];
380
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageHeaderSectionChart];
381
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageHeaderSectionDataPoint];
382
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageHeaderSectionContact];
383
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageHeaderSectionAddress];
247
384
  }
248
385
  /**
249
386
  * Adds the related facets keys 'enum' to the app schema
@@ -279,7 +416,7 @@ function addRelatedFacetKeysType(generateParameters, schema, entityType, entityS
279
416
  });
280
417
  }
281
418
  // Update schema definition
282
- common_2.addDefinitionForRelatedFacetKeys(schema, ['ObjectPageCustomSectionFragment'], facetSections, [
419
+ common_2.addDefinitionForRelatedFacetKeys(schema, [v4_1.DefinitionName.ObjectPageCustomSectionFragment], facetSections, [
283
420
  'ID',
284
421
  'label',
285
422
  'key'
@@ -299,7 +436,7 @@ function addHeader(generateParameters, appSchema, entityType, v4Page) {
299
436
  // Add header actions
300
437
  common_2.addHeaderActions(appSchema, entityType, generateParameters === null || generateParameters === void 0 ? void 0 : generateParameters.serviceAVT, addHeaderActionCallBackV4);
301
438
  // Add header sections
302
- appSchema['definitions']['HeaderSections']['annotationPath'] = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.HeaderFacets" /* HeaderFacets */}`;
439
+ appSchema.definitions[v4_1.DefinitionName.HeaderSections][v4_1.SchemaTag.annotationPath] = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.HeaderFacets" /* HeaderFacets */}`;
303
440
  addHeaderSections(generateParameters, appSchema, entityType, v4Page);
304
441
  }
305
442
  /**
@@ -315,8 +452,8 @@ function generateObjectPageSchemaV4(generateParameters, genericSchema, entityTyp
315
452
  var _a, _b;
316
453
  const appSchema = JSON.parse(JSON.stringify(genericSchema));
317
454
  // Change reference to generated sections
318
- appSchema['properties']['sections'] = {
319
- $ref: common_2.DEFINITION_LINK_PREFIX + 'Sections'
455
+ appSchema.properties.sections = {
456
+ $ref: `${common_2.DEFINITION_LINK_PREFIX}${v4_1.DefinitionName.Sections}`
320
457
  };
321
458
  const entitySet = (_b = (_a = generateParameters === null || generateParameters === void 0 ? void 0 : generateParameters.serviceAVT) === null || _a === void 0 ? void 0 : _a.entitySets) === null || _b === void 0 ? void 0 : _b.find((es) => es.entityType.name === entityTypeName);
322
459
  if (!entitySet) {
@@ -341,13 +478,13 @@ function generateObjectPageSchemaV4(generateParameters, genericSchema, entityTyp
341
478
  return appSchema;
342
479
  }
343
480
  //initialize sections
344
- appSchema['definitions']['Sections'] = {
481
+ const sections = (appSchema.definitions[v4_1.DefinitionName.Sections] = {
345
482
  type: 'object',
346
483
  properties: {},
347
484
  additionalProperties: false,
348
- isViewNode: true,
349
- description: 'Sections'
350
- };
485
+ description: v4_1.DefinitionName.Sections
486
+ });
487
+ sections[v4_1.SchemaTag.isViewNode] = true;
351
488
  if (entitySet) {
352
489
  const pages = generateParameters.manifest[common_1.ManifestSection.ui5].routing.targets;
353
490
  if (!pages) {
@@ -368,7 +505,8 @@ function generateObjectPageSchemaV4(generateParameters, genericSchema, entityTyp
368
505
  // Add Header
369
506
  addHeader(generateParameters, appSchema, entityType, v4Page);
370
507
  // Add sections
371
- appSchema['definitions']['Sections']['annotationPath'] = `/${entitySet.entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.Facets" /* Facets */}`;
508
+ sections[v4_1.SchemaTag.isViewNode] = true;
509
+ sections[v4_1.SchemaTag.annotationPath] = `/${entitySet.entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.Facets" /* Facets */}`;
372
510
  addSections(generateParameters, appSchema, entityType, v4Page);
373
511
  // Custom Section facets
374
512
  addRelatedFacetKeysType(generateParameters, appSchema, entityType, entitySet.name, pages);
@@ -376,20 +514,23 @@ function generateObjectPageSchemaV4(generateParameters, genericSchema, entityTyp
376
514
  common_2.addFooterActions(appSchema, entityType, generateParameters === null || generateParameters === void 0 ? void 0 : generateParameters.serviceAVT);
377
515
  }
378
516
  // Delete generic definitions from schema
379
- delete appSchema['definitions']['GenericSections'];
380
- delete appSchema['definitions']['ObjectPageSubSections'];
381
- delete appSchema['definitions']['ObjectPageTable'];
382
- delete appSchema['definitions']['GenericColumnsOP'];
383
- delete appSchema['definitions']['CommonHeaderFacetSettings'];
384
- delete appSchema['definitions']['ObjectPageSectionTableV4'];
385
- delete appSchema['definitions']['ObjectPageSectionForm'];
386
- delete appSchema['definitions']['ObjectPageSectionDataPoint'];
387
- delete appSchema['definitions']['ObjectPageSectionAddress'];
388
- delete appSchema['definitions']['ObjectPageSectionContact'];
389
- delete appSchema['definitions']['ObjectPageToolBar'];
390
- delete appSchema['definitions']['ObjectPageToolBarActions'];
391
- delete appSchema['definitions']['ObjectPageToolBarAction'];
392
- delete appSchema['definitions']['QuickVariantSelectionV4OP'];
517
+ delete appSchema.definitions[v4_1.DefinitionName.CommonHeaderFacetSettings];
518
+ delete appSchema.definitions[v4_1.DefinitionName.GenericColumnsOP];
519
+ delete appSchema.definitions[v4_1.DefinitionName.GenericSections];
520
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageChart];
521
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageSectionAddress];
522
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageSectionChart];
523
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageSectionContact];
524
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageSectionDataPoint];
525
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageSectionForm];
526
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageSectionTableV4];
527
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageSectionPresentationVariant];
528
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageSubSections];
529
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageTable];
530
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageToolBar];
531
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageToolBarAction];
532
+ delete appSchema.definitions[v4_1.DefinitionName.ObjectPageToolBarActions];
533
+ delete appSchema.definitions[v4_1.DefinitionName.QuickVariantSelectionV4OP];
393
534
  return appSchema;
394
535
  }
395
536
  exports.generateObjectPageSchemaV4 = generateObjectPageSchemaV4;