@sap/ux-specification 1.96.29 → 1.96.31

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