@sap/ux-specification 1.71.41 → 1.71.45

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 (187) hide show
  1. package/CHANGELOG.md +88 -22
  2. package/README.md +4 -4
  3. package/dist/documentation/runDocu-min.js +2 -0
  4. package/dist/documentation/runDocu-min.js.LICENSE.txt +24 -0
  5. package/dist/documentation/styleDocu.css +227 -0
  6. package/dist/documentation/v2/v2-AnalyticalListPage.html +49 -0
  7. package/dist/documentation/v2/v2-ApplicationV2.html +48 -0
  8. package/dist/documentation/v2/v2-ListReport.html +49 -0
  9. package/dist/documentation/v2/v2-ObjectPage.html +49 -0
  10. package/dist/documentation/v2/v2-OverviewPage.html +49 -0
  11. package/dist/index-min.js +1 -1
  12. package/dist/schemas/v2/AnalyticalListPageConfig.json +76 -6
  13. package/dist/schemas/v2/ApplicationV2.json +6 -0
  14. package/dist/schemas/v2/ListReportConfig.json +75 -5
  15. package/dist/schemas/v2/ObjectPageConfig.json +302 -42
  16. package/dist/schemas/v2/OverviewPageConfig.json +24 -41
  17. package/dist/scripts/extractDocu.js +186 -19
  18. package/dist/scripts/extractDocu.js.map +1 -1
  19. package/dist/scripts/runDocu.d.ts +1 -0
  20. package/dist/scripts/runDocu.js +561 -0
  21. package/dist/scripts/runDocu.js.map +1 -0
  22. package/dist/specification/v2/index-min.js +1 -1
  23. package/dist/src/api.js +8 -14
  24. package/dist/src/api.js.map +1 -1
  25. package/dist/src/apiTypes.d.ts +72 -65
  26. package/dist/src/extensionLogger.js +2 -2
  27. package/dist/src/extensionLogger.js.map +1 -1
  28. package/dist/src/specification/common/page.d.ts +2 -2
  29. package/dist/src/specification/common/page.js.map +1 -1
  30. package/dist/src/specification/common/types.d.ts +1 -0
  31. package/dist/src/specification/common/webapp/manifest/Manifest.d.ts +3 -1
  32. package/dist/src/specification/common/webapp/manifest/Manifest.js +1 -0
  33. package/dist/src/specification/common/webapp/manifest/Manifest.js.map +1 -1
  34. package/dist/src/specification/common/webapp/manifest/sapOvp.d.ts +2 -1
  35. package/dist/src/specification/v2/ApplicationV2.d.ts +6 -0
  36. package/dist/src/specification/v2/controls/AnalyticalListPageChart.d.ts +1 -1
  37. package/dist/src/specification/v2/controls/Card.d.ts +11 -13
  38. package/dist/src/specification/v2/controls/Card.js +0 -3
  39. package/dist/src/specification/v2/controls/Card.js.map +1 -1
  40. package/dist/src/specification/v2/controls/Facets.d.ts +2 -1
  41. package/dist/src/specification/v2/controls/Field.d.ts +10 -0
  42. package/dist/src/specification/v2/controls/Field.js +3 -0
  43. package/dist/src/specification/v2/controls/Field.js.map +1 -0
  44. package/dist/src/specification/v2/controls/FormAction.d.ts +38 -0
  45. package/dist/src/specification/v2/controls/FormAction.js +15 -0
  46. package/dist/src/specification/v2/controls/FormAction.js.map +1 -0
  47. package/dist/src/specification/v2/controls/ObjectPageFooter.d.ts +11 -0
  48. package/dist/src/specification/v2/controls/ObjectPageFooter.js +3 -0
  49. package/dist/src/specification/v2/controls/ObjectPageFooter.js.map +1 -0
  50. package/dist/src/specification/v2/controls/ObjectPageForm.d.ts +16 -0
  51. package/dist/src/specification/v2/controls/ObjectPageForm.js +3 -0
  52. package/dist/src/specification/v2/controls/ObjectPageForm.js.map +1 -0
  53. package/dist/src/specification/v2/controls/ObjectPageHeaderAction.d.ts +21 -5
  54. package/dist/src/specification/v2/controls/ObjectPageHeaderAction.js +0 -5
  55. package/dist/src/specification/v2/controls/ObjectPageHeaderAction.js.map +1 -1
  56. package/dist/src/specification/v2/controls/ObjectPageSection.d.ts +24 -7
  57. package/dist/src/specification/v2/controls/ObjectPageSection.js.map +1 -1
  58. package/dist/src/specification/v2/controls/ObjectPageTable.d.ts +4 -1
  59. package/dist/src/specification/v2/controls/Table.d.ts +4 -0
  60. package/dist/src/specification/v2/controls/Table.js.map +1 -1
  61. package/dist/src/specification/v2/controls/ToolBar.d.ts +2 -6
  62. package/dist/src/specification/v2/controls/index.d.ts +5 -0
  63. package/dist/src/specification/v2/controls/index.js +1 -1
  64. package/dist/src/specification/v2/controls/index.js.map +1 -1
  65. package/dist/src/specification/v2/pages/ListReportConfig.d.ts +2 -1
  66. package/dist/src/specification/v2/pages/ObjectPageConfig.d.ts +2 -1
  67. package/dist/src/specification/v2/webapp/manifest/sapUiPageV2.d.ts +1 -0
  68. package/dist/src/specification/v2/webapp/manifest/sapUiPageV2.js +1 -0
  69. package/dist/src/specification/v2/webapp/manifest/sapUiPageV2.js.map +1 -1
  70. package/dist/src/sync/common/decoration/control.d.ts +8 -1
  71. package/dist/src/sync/common/decoration/control.js +62 -21
  72. package/dist/src/sync/common/decoration/control.js.map +1 -1
  73. package/dist/src/sync/common/flexUtils.d.ts +2 -2
  74. package/dist/src/sync/common/flexUtils.js +10 -5
  75. package/dist/src/sync/common/flexUtils.js.map +1 -1
  76. package/dist/src/sync/common/generate/index.d.ts +1 -0
  77. package/dist/src/sync/common/generate/index.js +7 -0
  78. package/dist/src/sync/common/generate/index.js.map +1 -0
  79. package/dist/src/sync/common/generate/objectPage.d.ts +49 -0
  80. package/dist/src/sync/common/generate/objectPage.js +319 -0
  81. package/dist/src/sync/common/generate/objectPage.js.map +1 -0
  82. package/dist/src/sync/common/import/utils.d.ts +28 -0
  83. package/dist/src/sync/common/import/utils.js +75 -0
  84. package/dist/src/sync/common/import/utils.js.map +1 -0
  85. package/dist/src/sync/common/importProject.js +53 -50
  86. package/dist/src/sync/common/importProject.js.map +1 -1
  87. package/dist/src/sync/common/index.d.ts +2 -0
  88. package/dist/src/sync/common/index.js +2 -0
  89. package/dist/src/sync/common/index.js.map +1 -1
  90. package/dist/src/sync/common/types.d.ts +19 -6
  91. package/dist/src/sync/common/types.js +12 -0
  92. package/dist/src/sync/common/types.js.map +1 -1
  93. package/dist/src/sync/common/utils.d.ts +30 -9
  94. package/dist/src/sync/common/utils.js +255 -173
  95. package/dist/src/sync/common/utils.js.map +1 -1
  96. package/dist/src/sync/v2/application.d.ts +2 -0
  97. package/dist/src/sync/v2/application.js +18 -5
  98. package/dist/src/sync/v2/application.js.map +1 -1
  99. package/dist/src/sync/v2/export/controls/Card.d.ts +4 -3
  100. package/dist/src/sync/v2/export/controls/Card.js +16 -9
  101. package/dist/src/sync/v2/export/controls/Card.js.map +1 -1
  102. package/dist/src/sync/v2/export/controls/Field.d.ts +4 -0
  103. package/dist/src/sync/v2/export/controls/Field.js +32 -0
  104. package/dist/src/sync/v2/export/controls/Field.js.map +1 -0
  105. package/dist/src/sync/v2/export/controls/FormAction.d.ts +15 -0
  106. package/dist/src/sync/v2/export/controls/FormAction.js +127 -0
  107. package/dist/src/sync/v2/export/controls/FormAction.js.map +1 -0
  108. package/dist/src/sync/v2/export/controls/Fragment.d.ts +1 -1
  109. package/dist/src/sync/v2/export/controls/Fragment.js +100 -87
  110. package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -1
  111. package/dist/src/sync/v2/export/controls/ObjectPageHeader.js +1 -1
  112. package/dist/src/sync/v2/export/controls/ObjectPageHeader.js.map +1 -1
  113. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts +6 -2
  114. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js +43 -4
  115. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js.map +1 -1
  116. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +25 -0
  117. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +113 -0
  118. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -0
  119. package/dist/src/sync/v2/export/controls/ObjectPageTable.js +4 -5
  120. package/dist/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -1
  121. package/dist/src/sync/v2/export/controls/Table.d.ts +8 -1
  122. package/dist/src/sync/v2/export/controls/Table.js +88 -31
  123. package/dist/src/sync/v2/export/controls/Table.js.map +1 -1
  124. package/dist/src/sync/v2/export/controls/TableColumn.js +1 -1
  125. package/dist/src/sync/v2/export/controls/TableColumn.js.map +1 -1
  126. package/dist/src/sync/v2/export/controls/index.d.ts +3 -0
  127. package/dist/src/sync/v2/export/controls/index.js +3 -0
  128. package/dist/src/sync/v2/export/controls/index.js.map +1 -1
  129. package/dist/src/sync/v2/export/export.d.ts +24 -10
  130. package/dist/src/sync/v2/export/export.js +285 -503
  131. package/dist/src/sync/v2/export/export.js.map +1 -1
  132. package/dist/src/sync/v2/export/exportPage.d.ts +10 -0
  133. package/dist/src/sync/v2/export/exportPage.js +311 -0
  134. package/dist/src/sync/v2/export/exportPage.js.map +1 -0
  135. package/dist/src/sync/v2/export/pages/ListReport.d.ts +3 -1
  136. package/dist/src/sync/v2/export/pages/ListReport.js.map +1 -1
  137. package/dist/src/sync/v2/export/pages/OverviewPage.d.ts +3 -1
  138. package/dist/src/sync/v2/export/pages/OverviewPage.js.map +1 -1
  139. package/dist/src/sync/v2/export/view-controller-generator.js +1 -1
  140. package/dist/src/sync/v2/export/view-controller-generator.js.map +1 -1
  141. package/dist/src/sync/v2/generate/analyticalListReport.d.ts +3 -9
  142. package/dist/src/sync/v2/generate/analyticalListReport.js +13 -16
  143. package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  144. package/dist/src/sync/v2/generate/generate.js +28 -6
  145. package/dist/src/sync/v2/generate/generate.js.map +1 -1
  146. package/dist/src/sync/v2/generate/listReport.d.ts +3 -9
  147. package/dist/src/sync/v2/generate/listReport.js +20 -23
  148. package/dist/src/sync/v2/generate/listReport.js.map +1 -1
  149. package/dist/src/sync/v2/generate/objectPage.d.ts +3 -10
  150. package/dist/src/sync/v2/generate/objectPage.js +226 -141
  151. package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
  152. package/dist/src/sync/v2/generate/utils.d.ts +1 -2
  153. package/dist/src/sync/v2/generate/utils.js +21 -6
  154. package/dist/src/sync/v2/generate/utils.js.map +1 -1
  155. package/dist/src/sync/v2/import/app/appProvider.js +25 -3
  156. package/dist/src/sync/v2/import/app/appProvider.js.map +1 -1
  157. package/dist/src/sync/v2/import/app/ovpProvider.d.ts +2 -1
  158. package/dist/src/sync/v2/import/app/ovpProvider.js +7 -3
  159. package/dist/src/sync/v2/import/app/ovpProvider.js.map +1 -1
  160. package/dist/src/sync/v2/import/common/index.d.ts +10 -1
  161. package/dist/src/sync/v2/import/common/index.js +17 -38
  162. package/dist/src/sync/v2/import/common/index.js.map +1 -1
  163. package/dist/src/sync/v2/import/controls/table.d.ts +2 -1
  164. package/dist/src/sync/v2/import/controls/table.js +1 -1
  165. package/dist/src/sync/v2/import/controls/table.js.map +1 -1
  166. package/dist/src/sync/v2/import/pages/analyticalListPage.d.ts +3 -8
  167. package/dist/src/sync/v2/import/pages/analyticalListPage.js +23 -24
  168. package/dist/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
  169. package/dist/src/sync/v2/import/pages/listReport.d.ts +3 -7
  170. package/dist/src/sync/v2/import/pages/listReport.js +23 -24
  171. package/dist/src/sync/v2/import/pages/listReport.js.map +1 -1
  172. package/dist/src/sync/v2/import/pages/objectPage.d.ts +6 -12
  173. package/dist/src/sync/v2/import/pages/objectPage.js +293 -154
  174. package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
  175. package/dist/src/sync/v2/import/pages/overviewPage.d.ts +9 -1
  176. package/dist/src/sync/v2/import/pages/overviewPage.js +69 -39
  177. package/dist/src/sync/v2/import/pages/overviewPage.js.map +1 -1
  178. package/dist/src/sync/v2/import/utils.d.ts +3 -3
  179. package/dist/src/sync/v2/import/utils.js +5 -5
  180. package/dist/src/sync/v2/import/utils.js.map +1 -1
  181. package/dist/src/sync/v2/types.d.ts +32 -0
  182. package/dist/src/sync/v2/types.js +15 -0
  183. package/dist/src/sync/v2/types.js.map +1 -1
  184. package/dist/src/sync/v4/utils/StableIdHelper.d.ts +4 -0
  185. package/dist/src/sync/v4/utils/StableIdHelper.js +153 -0
  186. package/dist/src/sync/v4/utils/StableIdHelper.js.map +1 -0
  187. package/package.json +15 -7
@@ -0,0 +1,319 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const StableIdHelper_1 = require("../../v4/utils/StableIdHelper");
4
+ const common_1 = require("../../../specification/common");
5
+ const __1 = require("..");
6
+ /**
7
+ * Adds a field definition to the app specific schema
8
+ * @param {string} sectionType - prefix to distinguish Section and HeaderSection
9
+ * @param {object} appSchema - App schema in general
10
+ * @param {DataFieldAbstractTypes} field - field definition in parser output (AVT)
11
+ * @param {string} targetID - unique ID, identifies the parent object (form)
12
+ * @param {string} key - current field key
13
+ * @param {SectionType} section - current section of the object page
14
+ */
15
+ function addField(sectionType, appSchema, field, targetID, key, section, version, withActions = true) {
16
+ var _a, _b, _c, _d, _e;
17
+ const fieldReferenceId = StableIdHelper_1.getStableIdPartFromDataField(field);
18
+ const fieldReference = version === common_1.FioriElementsVersion.v2 && fieldReferenceId && fieldReferenceId.includes('::')
19
+ ? fieldReferenceId
20
+ .split('::')
21
+ .splice(1)
22
+ .join('::')
23
+ : fieldReferenceId;
24
+ const fieldReferenceType = version === common_1.FioriElementsVersion.v2 && fieldReferenceId && fieldReferenceId.includes('::')
25
+ ? fieldReferenceId.split('::')[0].replace('DataField', 'Field')
26
+ : undefined;
27
+ const fieldDefinition = version === common_1.FioriElementsVersion.v2
28
+ ? `${fieldReferenceType}<${targetID}::${fieldReference}>`
29
+ : `${targetID}::${fieldReference}`;
30
+ const fieldsDefinition = `${sectionType}Fields<${targetID}>`;
31
+ const actionsDefinition = `${sectionType}Actions<${targetID}>`;
32
+ if (!field || !field.$Type) {
33
+ return;
34
+ }
35
+ else if (field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" /* DataFieldForAction */ ||
36
+ field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation" /* DataFieldForIntentBasedNavigation */) {
37
+ if (withActions && sectionType === __1.SectionType.Section) {
38
+ appSchema['definitions'][actionsDefinition]['properties'][fieldReference] = {
39
+ $ref: __1.DEFINITION_LINK_PREFIX + fieldDefinition,
40
+ propertyIndex: parseInt(key)
41
+ };
42
+ }
43
+ }
44
+ else {
45
+ appSchema['definitions'][fieldsDefinition]['properties'][fieldReference] = {
46
+ $ref: __1.DEFINITION_LINK_PREFIX + fieldDefinition,
47
+ propertyIndex: parseInt(key)
48
+ };
49
+ }
50
+ appSchema['definitions'][fieldDefinition] = {
51
+ type: 'object',
52
+ isViewNode: true,
53
+ properties: {},
54
+ description: __1.getDatafieldDescription(field, section.entityType),
55
+ additionalProperties: false
56
+ };
57
+ if (version === common_1.FioriElementsVersion.v2 && appSchema['definitions']['Field']) {
58
+ switch (field.$Type) {
59
+ case "com.sap.vocabularies.UI.v1.DataField" /* DataField */:
60
+ case "com.sap.vocabularies.UI.v1.DataFieldForAnnotation" /* DataFieldForAnnotation */:
61
+ case "com.sap.vocabularies.UI.v1.DataFieldWithUrl" /* DataFieldWithUrl */: {
62
+ appSchema['definitions'][fieldDefinition]['properties'] =
63
+ appSchema['definitions']['Field']['properties'];
64
+ break;
65
+ }
66
+ }
67
+ }
68
+ if (field.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" /* DataFieldForAction */ && ((_a = appSchema['definitions']) === null || _a === void 0 ? void 0 : _a['FormAction'])) {
69
+ appSchema['definitions'][fieldDefinition]['properties'] = appSchema['definitions']['FormAction']['properties'];
70
+ }
71
+ if ((_c = (_b = field['Value']) === null || _b === void 0 ? void 0 : _b.$target) === null || _c === void 0 ? void 0 : _c.type) {
72
+ appSchema['definitions'][fieldDefinition].dataType = (_e = (_d = field['Value']) === null || _d === void 0 ? void 0 : _d.$target) === null || _e === void 0 ? void 0 : _e.type;
73
+ }
74
+ appSchema['definitions'][fieldDefinition].annotationPath = `/${section.entityType.fullyQualifiedName}/${field.fullyQualifiedName.split(section.entityType.fullyQualifiedName)[1]}`;
75
+ }
76
+ function determineTargetIdOfForm(section) {
77
+ let targetID;
78
+ if (section.target && section.target['qualifier'] && section.entityType) {
79
+ targetID = `${section.entityType.name}::${section.base}::${section.target['qualifier']}`;
80
+ }
81
+ else if (section.entityType) {
82
+ targetID = `${section.entityType.name}::${section.base}`;
83
+ }
84
+ else {
85
+ targetID = section.ID;
86
+ }
87
+ return targetID;
88
+ }
89
+ /**
90
+ * Adds definitions for forms in object page sections to the app schema
91
+ * @param {SectionType} sectionType - prefix to distinguish Section and HeaderSection
92
+ * @param {FacetConfig} section - facet or section in the FE core model
93
+ * @param {object} appSchemaSection - current definition of facet or section in the JSON schema
94
+ * @param {object} appSchema - app specific schema that gets enhanced
95
+ */
96
+ function handleForm(sectionType, section, appSchemaSection, appSchema, version, withActions = true) {
97
+ var _a;
98
+ if (!section.target) {
99
+ return;
100
+ }
101
+ const targetID = determineTargetIdOfForm(section);
102
+ const formDefinition = `${sectionType}Form<${targetID}>`;
103
+ const fieldsDefinition = `${sectionType}Fields<${targetID}>`;
104
+ const actionsDefinition = `${sectionType}Actions<${targetID}>`;
105
+ // Form definition
106
+ appSchemaSection['properties']['form'] = { $ref: __1.DEFINITION_LINK_PREFIX + formDefinition };
107
+ if (sectionType === __1.SectionType.Section && withActions) {
108
+ appSchema['definitions'][formDefinition] = {
109
+ type: 'object',
110
+ properties: {
111
+ actions: {
112
+ $ref: __1.DEFINITION_LINK_PREFIX + actionsDefinition
113
+ },
114
+ fields: { $ref: __1.DEFINITION_LINK_PREFIX + fieldsDefinition }
115
+ },
116
+ isViewNode: true,
117
+ description: 'Form',
118
+ additionalProperties: false
119
+ };
120
+ appSchema['definitions'][actionsDefinition] = {
121
+ type: 'object',
122
+ properties: {},
123
+ isViewNode: true,
124
+ description: 'Actions',
125
+ additionalProperties: false
126
+ };
127
+ }
128
+ else {
129
+ appSchema['definitions'][formDefinition] = {
130
+ type: 'object',
131
+ properties: {
132
+ fields: { $ref: __1.DEFINITION_LINK_PREFIX + fieldsDefinition }
133
+ },
134
+ isViewNode: true,
135
+ description: 'Form',
136
+ additionalProperties: false
137
+ };
138
+ }
139
+ if ((_a = section.entityType) === null || _a === void 0 ? void 0 : _a.name) {
140
+ appSchema['definitions'][formDefinition].annotationPath = __1.createAnnotationPath(section.entityType.fullyQualifiedName, section.target['term'], section.target['qualifier']);
141
+ }
142
+ // Fields definition
143
+ appSchema['definitions'][fieldsDefinition] = {
144
+ type: 'object',
145
+ properties: {},
146
+ isViewNode: true,
147
+ description: 'Fields',
148
+ additionalProperties: false
149
+ };
150
+ // Add fields
151
+ if (section.base === __1.FacetBase.Identification) {
152
+ for (const key in section.target) {
153
+ const field = section.target[key];
154
+ if (field) {
155
+ addField(sectionType, appSchema, field, targetID, key, section, version, withActions);
156
+ }
157
+ }
158
+ }
159
+ else {
160
+ for (const key in section.target['Data']) {
161
+ const field = section.target['Data'][key];
162
+ addField(sectionType, appSchema, field, targetID, key, section, version);
163
+ }
164
+ }
165
+ }
166
+ exports.handleForm = handleForm;
167
+ /**
168
+ * Replaces an alias in an annotation ID or reference, based on the AVT references' list
169
+ * @param annotationIdentifier - annotation ID or reference
170
+ * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
171
+ * @returns the converted string
172
+ */
173
+ function replaceAlias(annotationIdentifier, oDataServiceAVT) {
174
+ const potentialAlias = annotationIdentifier.indexOf('.') > -1 ? annotationIdentifier.split('.')[0] : undefined;
175
+ let result = annotationIdentifier;
176
+ if (potentialAlias) {
177
+ const reference = oDataServiceAVT.references.find((ref) => {
178
+ return ref.alias === potentialAlias;
179
+ });
180
+ if (reference) {
181
+ result = annotationIdentifier.replace(potentialAlias, reference.namespace);
182
+ }
183
+ }
184
+ return result;
185
+ }
186
+ exports.replaceAlias = replaceAlias;
187
+ /**
188
+ * Common routine to determine the name and the ID of a header action
189
+ * @param action - action as given by AVT
190
+ * @param entityType - entity type by AVT
191
+ * @returns an object comprising action name and action id
192
+ */
193
+ function getActionNameAndId(action, entityType) {
194
+ let separatorIndex = action.lastIndexOf('/');
195
+ if (separatorIndex === -1) {
196
+ separatorIndex = action.lastIndexOf('.');
197
+ }
198
+ let actionName, actionId;
199
+ if (separatorIndex > -1) {
200
+ actionName = action.substr(separatorIndex + 1);
201
+ actionId = action.substr(0, separatorIndex) + '::' + actionName;
202
+ }
203
+ else {
204
+ actionName = action;
205
+ const namespace = entityType.fullyQualifiedName.split(entityType.name)[0];
206
+ actionId = namespace.substr(0, namespace.length - 1) + '::' + actionName;
207
+ }
208
+ return { actionName, actionId };
209
+ }
210
+ exports.getActionNameAndId = getActionNameAndId;
211
+ /**
212
+ * Add Object Page Footer Action Buttons to app-specific schema
213
+ *
214
+ * @param {object} appSchema Schema of the app
215
+ * @param {EntityType} entityType - current entity type
216
+ * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
217
+ */
218
+ function addFooterActions(appSchema, entityType, oDataServiceAVT) {
219
+ appSchema['definitions']['ObjectPageFooter'] = JSON.parse(JSON.stringify(appSchema['definitions']['ObjectPageFooter<GenericFooterActions>']));
220
+ // Change reference of footer
221
+ appSchema['properties']['footer'] = {
222
+ $ref: __1.DEFINITION_LINK_PREFIX + 'ObjectPageFooter'
223
+ };
224
+ // Add action to configuration
225
+ appSchema['definitions']['ObjectPageFooter'].properties['actions'] = {
226
+ $ref: `${__1.DEFINITION_LINK_PREFIX}FooterActions`
227
+ };
228
+ const footerActions = (appSchema['definitions']['FooterActions'] = {
229
+ type: 'object',
230
+ properties: {},
231
+ description: 'Actions',
232
+ additionalProperties: false,
233
+ isViewNode: true
234
+ });
235
+ const alias = __1.findAlias(__1.UIVOCABULARY, oDataServiceAVT);
236
+ const actionAnnotation = alias &&
237
+ entityType.annotations &&
238
+ entityType.annotations[alias] &&
239
+ entityType.annotations[alias].Identification;
240
+ if (actionAnnotation) {
241
+ const convertedIdentification = actionAnnotation.fullyQualifiedName.replace(`@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`, `/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`);
242
+ footerActions['annotationPath'] = `/${convertedIdentification}`;
243
+ actionAnnotation.forEach((item, index) => {
244
+ if (item['Determining'] && item.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" /* DataFieldForAction */) {
245
+ const { actionName, actionId } = getActionNameAndId(item.Action, entityType);
246
+ const description = item.Label || actionName;
247
+ const actionDefinitionKey = `FooterAction<${actionId}>`;
248
+ appSchema['definitions'][actionDefinitionKey] = {
249
+ isViewNode: true,
250
+ type: 'object',
251
+ properties: {},
252
+ description: description,
253
+ annotationPath: `/${convertedIdentification}/${index}`
254
+ };
255
+ footerActions.properties[actionId] = {
256
+ $ref: `${__1.DEFINITION_LINK_PREFIX}${actionDefinitionKey}`
257
+ };
258
+ }
259
+ });
260
+ }
261
+ else {
262
+ footerActions['annotationPath'] = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`;
263
+ }
264
+ delete appSchema['definitions']['GenericFooterActions'];
265
+ delete appSchema['definitions']['FooterAction'];
266
+ delete appSchema['definitions']['ObjectPageFooter<GenericFooterActions>'];
267
+ }
268
+ exports.addFooterActions = addFooterActions;
269
+ /**
270
+ * Add Object Page Header Action Buttons to app-specific schema
271
+ * @param {object} appSchema Schema of the app
272
+ * @param {EntityType} entityType - current entity type
273
+ * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
274
+ */
275
+ function addHeaderActions(appSchema, entityType, oDataServiceAVT,
276
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
277
+ addHeaderActionCallBack) {
278
+ appSchema['definitions']['ObjectPageHeader'].properties['actions'] = {
279
+ $ref: `${__1.DEFINITION_LINK_PREFIX}HeaderActions`
280
+ };
281
+ const headerActions = (appSchema['definitions']['HeaderActions'] = {
282
+ type: 'object',
283
+ properties: {},
284
+ description: 'Actions',
285
+ additionalProperties: false,
286
+ isViewNode: true
287
+ });
288
+ const alias = __1.findAlias(__1.UIVOCABULARY, oDataServiceAVT);
289
+ const identification = alias &&
290
+ entityType.annotations &&
291
+ entityType.annotations[alias] &&
292
+ entityType.annotations[alias].Identification;
293
+ if (identification) {
294
+ headerActions['annotationPath'] =
295
+ '/' +
296
+ identification.fullyQualifiedName.replace(`@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`, `/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`);
297
+ identification.forEach(addHeaderActionCallBack(entityType, appSchema, identification, headerActions, oDataServiceAVT));
298
+ }
299
+ else {
300
+ headerActions['annotationPath'] = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`;
301
+ }
302
+ delete appSchema['definitions']['GenericActions'];
303
+ delete appSchema['definitions']['ObjectPageHeader<GenericActions>'];
304
+ }
305
+ exports.addHeaderActions = addHeaderActions;
306
+ /**
307
+ * Adds common Object Page Header definitions to the app schema
308
+ * @param appSchema - app-specific JSOn schema
309
+ * @param entityType - current entity Type
310
+ */
311
+ function addCommonHeaderSchema(appSchema, entityType) {
312
+ appSchema['properties']['header'] = {
313
+ $ref: __1.DEFINITION_LINK_PREFIX + 'ObjectPageHeader'
314
+ };
315
+ appSchema['definitions']['ObjectPageHeader'] = JSON.parse(JSON.stringify(appSchema['definitions']['ObjectPageHeader<GenericActions>']));
316
+ appSchema['definitions']['ObjectPageHeader'].annotationPath = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.HeaderInfo" /* HeaderInfo */}`;
317
+ }
318
+ exports.addCommonHeaderSchema = addCommonHeaderSchema;
319
+ //# sourceMappingURL=objectPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectPage.js","sourceRoot":"","sources":["../../../../../src/sync/common/generate/objectPage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { DeprecatedProperties, SyncRule } from '../';
2
+ import { ExtensionLogger } from '../../../apiTypes';
3
+ /**
4
+ * Transfers the value of a single manifest setting to the config
5
+ * @param syncRule - Metadata rule
6
+ * @param manifestSection - Section in manifest.json
7
+ * @param propertyKey - Key of the property or setting
8
+ * @param configPart - Part of the config JSON
9
+ * @param sectionId - Section or facet ID
10
+ */
11
+ export declare function importProperty(syncRule: SyncRule, manifestSection: {}, propertyKey: string, configPart: {
12
+ [key: string]: any;
13
+ }, sectionId?: string): void;
14
+ /**
15
+ * Validation during import: check if properties are marked as deprecated.
16
+ * If so, log them.
17
+ * @param deprecatedProperties - existing list, to be actualized
18
+ * @param manifestSection - Section in manifest.json
19
+ * @param path - path to the section in manifest
20
+ * @param {ExtensionLogger} logger - Logger class for logging messages
21
+ */
22
+ export declare function checkDeprecatedProperties(deprecatedProperties: DeprecatedProperties[], manifestSection: {}, path: string, logger?: ExtensionLogger): void;
23
+ /**
24
+ * get title of the section (Facet ID)
25
+ * @param schemaSection - Section in manifest.json
26
+ * @param jsonSchema - app specific schema
27
+ */
28
+ export declare function getSectionTitle(schemaSection: object, jsonSchema: object): string;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const __1 = require("../");
4
+ const extensionLogger_1 = require("../../../extensionLogger");
5
+ /**
6
+ * Transfers the value of a single manifest setting to the config
7
+ * @param syncRule - Metadata rule
8
+ * @param manifestSection - Section in manifest.json
9
+ * @param propertyKey - Key of the property or setting
10
+ * @param configPart - Part of the config JSON
11
+ * @param sectionId - Section or facet ID
12
+ */
13
+ function importProperty(syncRule, manifestSection, propertyKey, configPart, sectionId) {
14
+ const manifestKey = syncRule.manifest.key || propertyKey;
15
+ const importHandler = syncRule.manifest.import;
16
+ if (importHandler && typeof importHandler === 'function') {
17
+ const value = importHandler(manifestSection, sectionId);
18
+ if (value !== undefined) {
19
+ configPart[propertyKey] = value;
20
+ }
21
+ }
22
+ else if (manifestSection[manifestKey] !== undefined) {
23
+ configPart[propertyKey] = manifestSection[manifestKey];
24
+ }
25
+ }
26
+ exports.importProperty = importProperty;
27
+ /**
28
+ * Validation during import: check if properties are marked as deprecated.
29
+ * If so, log them.
30
+ * @param deprecatedProperties - existing list, to be actualized
31
+ * @param manifestSection - Section in manifest.json
32
+ * @param path - path to the section in manifest
33
+ * @param {ExtensionLogger} logger - Logger class for logging messages
34
+ */
35
+ function checkDeprecatedProperties(deprecatedProperties, manifestSection, path, logger) {
36
+ if (manifestSection && deprecatedProperties) {
37
+ for (const key in manifestSection) {
38
+ const deprecated = deprecatedProperties[key];
39
+ if (deprecated) {
40
+ extensionLogger_1.log(logger, {
41
+ severity: "warning" /* Warning */,
42
+ message: __1.getTextForDeprecated(key, deprecated),
43
+ location: {
44
+ path: 'webapp/manifest.json/',
45
+ range: path.split('/')
46
+ }
47
+ });
48
+ delete deprecatedProperties[key];
49
+ }
50
+ }
51
+ }
52
+ }
53
+ exports.checkDeprecatedProperties = checkDeprecatedProperties;
54
+ /**
55
+ * get title of the section (Facet ID)
56
+ * @param schemaSection - Section in manifest.json
57
+ * @param jsonSchema - app specific schema
58
+ */
59
+ function getSectionTitle(schemaSection, jsonSchema) {
60
+ if (schemaSection['$ref'] && !schemaSection['title']) {
61
+ const refTitle = jsonSchema['definitions'][schemaSection['$ref'].split(__1.DEFINITION_LINK_PREFIX)[1]];
62
+ getSectionTitle(refTitle, jsonSchema);
63
+ }
64
+ else if (schemaSection['title'] && schemaSection['title'].startsWith(__1.FacetTitlePrefix)) {
65
+ return schemaSection['title'].split(__1.FacetTitlePrefix)[1];
66
+ }
67
+ else if (schemaSection['title']) {
68
+ return schemaSection['title'];
69
+ }
70
+ else {
71
+ return undefined;
72
+ }
73
+ }
74
+ exports.getSectionTitle = getSectionTitle;
75
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/sync/common/import/utils.ts"],"names":[],"mappings":";;AAAA,2BAAqH;AACrH,8DAA4D;AAG5D;;;;;;;GAOG;AACH,SAAgB,cAAc,CAC1B,QAAkB,EAClB,eAAmB,EACnB,WAAmB,EACnB,UAAkC,EAClC,SAAkB;IAElB,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,WAAW,CAAC;IAEzD,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC/C,IAAI,aAAa,IAAI,OAAO,aAAa,KAAK,UAAU,EAAE;QACtD,MAAM,KAAK,GAAG,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,UAAU,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;SACnC;KACJ;SAAM,IAAI,eAAe,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE;QACnD,UAAU,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;KAC1D;AACL,CAAC;AAlBD,wCAkBC;AAED;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CACrC,oBAA4C,EAC5C,eAAmB,EACnB,IAAY,EACZ,MAAwB;IAExB,IAAI,eAAe,IAAI,oBAAoB,EAAE;QACzC,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE;YAC/B,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,UAAU,EAAE;gBACZ,qBAAG,CAAC,MAAM,EAAE;oBACR,QAAQ,yBAAqB;oBAC7B,OAAO,EAAE,wBAAoB,CAAC,GAAG,EAAE,UAAU,CAAC;oBAC9C,QAAQ,EAAE;wBACN,IAAI,EAAE,uBAAuB;wBAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;qBACzB;iBACJ,CAAC,CAAC;gBACH,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;aACpC;SACJ;KACJ;AACL,CAAC;AAtBD,8DAsBC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,aAAqB,EAAE,UAAkB;IACrE,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;QAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,0BAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KACzC;SAAM,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,oBAAgB,CAAC,EAAE;QACtF,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,oBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KAC5D;SAAM,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE;QAC/B,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;KACjC;SAAM;QACH,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAXD,0CAWC"}
@@ -54,9 +54,9 @@ function getAnnotationsForUi(oDataServiceAVT) {
54
54
  Facets: [],
55
55
  LineItems: []
56
56
  };
57
- const allEntityTypes = oDataServiceAVT && oDataServiceAVT.entityTypes;
57
+ const allEntityTypes = oDataServiceAVT === null || oDataServiceAVT === void 0 ? void 0 : oDataServiceAVT.entityTypes;
58
58
  if (allEntityTypes) {
59
- const alias = utils_1.findAlias('com.sap.vocabularies.UI.v1', oDataServiceAVT);
59
+ const alias = utils_1.findAlias(types_1.UIVOCABULARY, oDataServiceAVT);
60
60
  for (const entity of allEntityTypes) {
61
61
  if (!entity.annotations || !entity.annotations[alias]) {
62
62
  continue;
@@ -65,8 +65,8 @@ function getAnnotationsForUi(oDataServiceAVT) {
65
65
  const { LineItem, Facets } = entity.annotations[alias];
66
66
  if (LineItem &&
67
67
  !LineItem.qualifier &&
68
- LineItem.find((li) => li.$Type === 'com.sap.vocabularies.UI.v1.DataField' ||
69
- li.$Type === 'com.sap.vocabularies.UI.v1.DataFieldForAnnotation')) {
68
+ LineItem.find((li) => li.$Type === "com.sap.vocabularies.UI.v1.DataField" /* DataField */ ||
69
+ li.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAnnotation" /* DataFieldForAnnotation */)) {
70
70
  filteredEntityTypes.LineItems.push(name);
71
71
  }
72
72
  if (Facets && !Facets.qualifier) {
@@ -82,84 +82,77 @@ function getEntitySetByEntitySetName(entitySetName, oDataServiceAVT) {
82
82
  exports.getEntitySetByEntitySetName = getEntitySetByEntitySetName;
83
83
  /**
84
84
  * The function generates one app schema per entitySet that is linked with an object page in V2
85
+ * @param {GenerateSchemaParameters} generateParameters - list of API input parameters
85
86
  * @param {Schema} genericSchemas - The generic schemas
86
- * @param {Manifest} manifest - manifest.json of the given app
87
- * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
88
87
  * @param {Schema} appSchemas - the list of app schemas that shall get extended
89
- * @param {FileData[]} [fragments] - array with XML fragments
90
- * @param {ExtensionLogger} logger - Logger class for logging messages
91
88
  */
92
- function generateObjectPageSchemasV2(genericSchemas, manifest, oDataServiceAVT, appSchemas, fragments, logger) {
93
- const allPages = appProvider_1.getPages(manifest[common_1.ManifestSection.generic].pages, pageV2.FE_TEMPLATE_V2_OBJECT_PAGE);
89
+ function generateObjectPageSchemasV2(generateParameters, genericSchemas, appSchemas) {
90
+ const allPages = appProvider_1.getPages(generateParameters.manifest[common_1.ManifestSection.generic].pages, pageV2.FE_TEMPLATE_V2_OBJECT_PAGE);
94
91
  for (const page in allPages) {
95
92
  const entitySetName = allPages[page].entitySet;
96
- const entitySet = getEntitySetByEntitySetName(entitySetName, oDataServiceAVT);
93
+ const entitySet = getEntitySetByEntitySetName(entitySetName, generateParameters.serviceAVT);
97
94
  const entityTypeName = entitySet && entitySet.entityType && entitySet.entityType.name;
98
95
  const schemaFile = utils_1.getSchemaFilePath(common_1.SchemaType.ObjectPage, (entitySet === null || entitySet === void 0 ? void 0 : entitySet.name) || entitySetName);
99
96
  const genericSchemaFile = utils_1.getSchemaFilePath(common_1.SchemaType.ObjectPage);
100
- appSchemas[schemaFile.filename] = generate_1.generateObjectPageSchemaV2(genericSchemas[genericSchemaFile.filename], entityTypeName, oDataServiceAVT, manifest, fragments, logger);
97
+ appSchemas[schemaFile.filename] = generate_1.generateObjectPageSchemaV2(generateParameters, genericSchemas[genericSchemaFile.filename], entityTypeName);
101
98
  }
102
99
  }
103
100
  /**
104
101
  * Generates all app specific schemas for a Fiori Elements V2 application
102
+ * @param {GenerateSchemaParameters} generateParameters - list of API input parameters
105
103
  * @param {Schemas} genericSchemas - The generic schemas
106
104
  * @param {UiEntityTypes} uiEntityTypes - list of all entity types, as comprised in oDataServiceAVT
107
- * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
108
- * @param {Manifest} manifest - manifest.json of the given app
109
105
  * @param {TemplateType} templateType - the given Fiori Elements' template type
110
- * @param {FileData[]} fragments - list of fragment files and their content
111
- * @param {ExtensionLogger} logger - Logger class for logging messages
112
106
  */
113
- function generateAppSchemasV2(genericSchemas, uiEntityTypes, oDataServiceAVT, manifest, templateType, fragments, logger) {
114
- const appSchemas = {}, entityTypes = oDataServiceAVT && oDataServiceAVT.entityTypes;
107
+ function generateAppSchemasV2(generateParameters, genericSchemas, uiEntityTypes, templateType) {
108
+ var _a;
109
+ const appSchemas = {};
115
110
  if (templateType === utils_1.TemplateType.ListReportObjectPageV2 && uiEntityTypes) {
116
111
  /*--- List Report ----*/
117
- const allPages = appProvider_1.getPages(manifest[common_1.ManifestSection.generic].pages, pageV2.FE_TEMPLATE_V2_LIST_REPORT);
112
+ const allPages = appProvider_1.getPages(generateParameters.manifest[common_1.ManifestSection.generic].pages, pageV2.FE_TEMPLATE_V2_LIST_REPORT);
118
113
  for (const page in allPages) {
119
114
  const entitySetName = allPages[page].entitySet;
120
- const entitySet = getEntitySetByEntitySetName(entitySetName, oDataServiceAVT);
115
+ const entitySet = getEntitySetByEntitySetName(entitySetName, generateParameters.serviceAVT);
121
116
  const entityTypeName = entitySet && entitySet.entityType && entitySet.entityType.name;
122
117
  const schemaFile = utils_1.getSchemaFilePath(common_1.SchemaType.ListReport, (entitySet === null || entitySet === void 0 ? void 0 : entitySet.name) || entitySetName);
123
118
  const genericSchemaFile = utils_1.getSchemaFilePath(common_1.SchemaType.ListReport);
124
- appSchemas[schemaFile.filename] = generate_1.generateListReportSchemaV2(genericSchemas[genericSchemaFile.filename], entityTypeName, entityTypes, manifest, fragments, logger);
119
+ appSchemas[schemaFile.filename] = generate_1.generateListReportSchemaV2(generateParameters, genericSchemas[genericSchemaFile.filename], entityTypeName);
125
120
  }
126
121
  /*--- Object Pages ----*/
127
- generateObjectPageSchemasV2(genericSchemas, manifest, oDataServiceAVT, appSchemas);
122
+ generateObjectPageSchemasV2(generateParameters, genericSchemas, appSchemas);
128
123
  }
129
124
  else if (templateType === utils_1.TemplateType.AnalyticalListPageV2 && uiEntityTypes) {
130
125
  /*--- Analytical List Page ----*/
131
- const allPages = appProvider_1.getPages(manifest[common_1.ManifestSection.generic].pages, pageV2.FE_TEMPLATE_V2_ALP);
126
+ const allPages = appProvider_1.getPages(generateParameters.manifest[common_1.ManifestSection.generic].pages, pageV2.FE_TEMPLATE_V2_ALP);
132
127
  for (const page in allPages) {
133
128
  const entitySetName = allPages[page].entitySet;
134
- const entitySet = getEntitySetByEntitySetName(entitySetName, oDataServiceAVT);
135
- const entityTypeName = entitySet && entitySet.entityType && entitySet.entityType.name;
129
+ const entitySet = getEntitySetByEntitySetName(entitySetName, generateParameters.serviceAVT);
130
+ const entityTypeName = (_a = entitySet === null || entitySet === void 0 ? void 0 : entitySet.entityType) === null || _a === void 0 ? void 0 : _a.name;
136
131
  const schemaFile = utils_1.getSchemaFilePath(common_1.SchemaType.AnalyticalListPage, (entitySet === null || entitySet === void 0 ? void 0 : entitySet.name) || entitySetName);
137
132
  const genericSchemaFile = utils_1.getSchemaFilePath(common_1.SchemaType.AnalyticalListPage);
138
- appSchemas[schemaFile.filename] = generate_1.generateAnalyticalListReportSchemaV2(genericSchemas[genericSchemaFile.filename], entityTypeName, entityTypes, manifest, fragments, logger);
133
+ appSchemas[schemaFile.filename] = generate_1.generateAnalyticalListReportSchemaV2(generateParameters, genericSchemas[genericSchemaFile.filename], entityTypeName);
139
134
  }
140
135
  /*--- Object Pages ----*/
141
- generateObjectPageSchemasV2(genericSchemas, manifest, oDataServiceAVT, appSchemas);
136
+ generateObjectPageSchemasV2(generateParameters, genericSchemas, appSchemas);
142
137
  }
143
138
  else if (templateType === utils_1.TemplateType.OverviewPageV2) {
144
139
  /*--- Overview Page ----*/
145
140
  const schemaFile = utils_1.getSchemaFilePath(common_1.SchemaType.OverviewPage);
146
141
  const genericSchemaFile = utils_1.getSchemaFilePath(common_1.SchemaType.OverviewPage);
147
- appSchemas[schemaFile.filename] = generate_1.generateOVPInterfaceV2(genericSchemas[genericSchemaFile.filename], manifest);
142
+ appSchemas[schemaFile.filename] = generate_1.generateOVPInterfaceV2(genericSchemas[genericSchemaFile.filename], generateParameters.manifest);
148
143
  }
149
144
  return Object.assign(Object.assign({}, genericSchemas), appSchemas);
150
145
  }
151
146
  /**
152
147
  * Generates app specific schemas by adding annotation information to copies of the generic schemas, thus replacing all generic definitions.
148
+ * @param {GenerateAppSchemaParameters} generateParameters - list of API input parameters
153
149
  * @param {UiEntityTypes} uiEntityTypes - list of all entity types from the service metadata
154
- * @param {FioriElementsVersion} fioriElementsVersion - version of Fiori Element (V2 or V4)
155
- * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
156
- * @param manifest - manifest.json file content of the app in JSON format
157
150
  * @param templateType - type of the Fiori Elements' template
158
151
  */
159
- async function generateAppSchemas(uiEntityTypes, fioriElementsVersion, oDataServiceAVT, manifest, templateType, fragments) {
160
- const genericSchemas = await getGenericSchemas(templateType, fioriElementsVersion);
161
- if (fioriElementsVersion === common_1.FioriElementsVersion.v2) {
162
- return generateAppSchemasV2(genericSchemas, uiEntityTypes, oDataServiceAVT, manifest, templateType, fragments);
152
+ async function generateAppSchemas(generateParameters, uiEntityTypes, templateType) {
153
+ if (generateParameters.fioriElementsVersion === common_1.FioriElementsVersion.v2) {
154
+ const genericSchemas = await getGenericSchemas(templateType, generateParameters.fioriElementsVersion);
155
+ return generateAppSchemasV2(generateParameters, genericSchemas, uiEntityTypes, templateType);
163
156
  }
164
157
  }
165
158
  /**
@@ -167,11 +160,10 @@ async function generateAppSchemas(uiEntityTypes, fioriElementsVersion, oDataServ
167
160
  * @param {Manifest} manifest - manifest.json file content of the app in JSON format
168
161
  * @param {string[]} flex - list of all UI flexibility changes
169
162
  * @param {Schemas} appSchemas - list of app-specific schemas
170
- * @param {ConverterOutput} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
171
163
  * @param {TemplateType} templateType - type of the Fiori Elements' template
172
164
  * @returns {File[]} a list of all configuration files as generated by the function
173
165
  */
174
- function importConfigs(manifest, flex, appSchemas, oDataServiceAVT, templateType, fragments) {
166
+ function importConfigs(manifest, flex, appSchemas, templateType, fragments) {
175
167
  let provider;
176
168
  const files = [];
177
169
  switch (templateType) {
@@ -221,16 +213,21 @@ async function importProjectSchema(importProjectParameters) {
221
213
  // Initialize i18next
222
214
  i18n_1.initI18n();
223
215
  let files = [];
224
- const { manifest, annotations, fragments, logger } = importProjectParameters;
225
- const fioriElementsVersion = utils_1.getVersionFromManifest(manifest);
226
- const service = utils_1.parseAndMergeAndConvert(annotations, logger);
216
+ const fioriElementsVersion = utils_1.getVersionFromManifest(importProjectParameters.manifest);
217
+ const service = utils_1.parseAndMergeAndConvert(importProjectParameters.annotations, importProjectParameters.logger);
227
218
  const uiEntityTypes = getAnnotationsForUi(service);
228
- const templateType = utils_1.getTemplateTypeFromManifest(manifest, fioriElementsVersion, logger);
229
- if (!templateType) {
230
- return;
219
+ const templateType = utils_1.getTemplateTypeFromManifest(importProjectParameters.manifest, fioriElementsVersion, importProjectParameters.logger);
220
+ const generateParameters = {
221
+ manifest: importProjectParameters.manifest,
222
+ serviceAVT: service,
223
+ fragments: importProjectParameters.fragments,
224
+ fioriElementsVersion,
225
+ logger: importProjectParameters.logger
226
+ };
227
+ if (templateType) {
228
+ const appSchemas = await generateAppSchemas(generateParameters, uiEntityTypes, templateType);
229
+ files = getFileList(appSchemas);
231
230
  }
232
- const appSchemas = await generateAppSchemas(uiEntityTypes, fioriElementsVersion, service, manifest, templateType, fragments);
233
- files = getFileList(appSchemas);
234
231
  return files;
235
232
  }
236
233
  exports.importProjectSchema = importProjectSchema;
@@ -246,14 +243,20 @@ async function importProjectSchemaAndConfig(importProjectParameters) {
246
243
  const { manifest, annotations, flex, fragments, logger } = importProjectParameters;
247
244
  const fioriElementsVersion = utils_1.getVersionFromManifest(manifest);
248
245
  const oDataServiceAVT = utils_1.parseAndMergeAndConvert(annotations, logger);
246
+ const generateParameters = {
247
+ manifest: importProjectParameters.manifest,
248
+ serviceAVT: oDataServiceAVT,
249
+ fragments: importProjectParameters.fragments,
250
+ fioriElementsVersion,
251
+ logger: importProjectParameters.logger
252
+ };
249
253
  const uiEntityTypes = getAnnotationsForUi(oDataServiceAVT);
250
254
  const templateType = utils_1.getTemplateTypeFromManifest(manifest, fioriElementsVersion, logger);
251
- if (!templateType) {
252
- return;
255
+ if (templateType) {
256
+ const appSchemas = await generateAppSchemas(generateParameters, uiEntityTypes, templateType);
257
+ configFiles = importConfigs(manifest, flex, appSchemas, templateType, fragments);
258
+ files = getFileList(appSchemas, configFiles);
253
259
  }
254
- const appSchemas = await generateAppSchemas(uiEntityTypes, fioriElementsVersion, oDataServiceAVT, manifest, templateType, fragments);
255
- configFiles = importConfigs(manifest, flex, appSchemas, oDataServiceAVT, templateType, fragments);
256
- files = getFileList(appSchemas, configFiles);
257
260
  return files;
258
261
  }
259
262
  exports.importProjectSchemaAndConfig = importProjectSchemaAndConfig;