@sap/ux-specification 1.102.14 → 1.102.16

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 (268) 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/ListReportConfig.json +0 -25
  17. package/dist/schemas/v2/ObjectPageConfig.json +4 -4
  18. package/dist/schemas/v4/ApplicationV4.json +16 -13
  19. package/dist/schemas/v4/BuildingBlocksConfig.json +50 -30
  20. package/dist/schemas/v4/ListReportConfig.json +195 -27
  21. package/dist/schemas/v4/ObjectPageConfig.json +9 -9
  22. package/dist/src/api.d.ts.map +1 -1
  23. package/dist/src/api.js +9 -9
  24. package/dist/src/api.js.map +1 -1
  25. package/dist/src/sync/common/appProvider.d.ts +1 -0
  26. package/dist/src/sync/common/appProvider.d.ts.map +1 -1
  27. package/dist/src/sync/common/appProvider.js +5 -3
  28. package/dist/src/sync/common/appProvider.js.map +1 -1
  29. package/dist/src/sync/common/decoration/factory.d.ts +7 -7
  30. package/dist/src/sync/common/decoration/factory.d.ts.map +1 -1
  31. package/dist/src/sync/common/decoration/factory.js +2 -2
  32. package/dist/src/sync/common/decoration/factory.js.map +1 -1
  33. package/dist/src/sync/common/generate/objectPage.js +3 -3
  34. package/dist/src/sync/common/generate/objectPage.js.map +1 -1
  35. package/dist/src/sync/common/generate/utils.d.ts +9 -2
  36. package/dist/src/sync/common/generate/utils.d.ts.map +1 -1
  37. package/dist/src/sync/common/generate/utils.js +28 -3
  38. package/dist/src/sync/common/generate/utils.js.map +1 -1
  39. package/dist/src/sync/common/i18n.json +2 -1
  40. package/dist/src/sync/common/importProject.d.ts +15 -2
  41. package/dist/src/sync/common/importProject.d.ts.map +1 -1
  42. package/dist/src/sync/common/importProject.js +71 -35
  43. package/dist/src/sync/common/importProject.js.map +1 -1
  44. package/dist/src/sync/common/utils.d.ts +16 -8
  45. package/dist/src/sync/common/utils.d.ts.map +1 -1
  46. package/dist/src/sync/common/utils.js +26 -11
  47. package/dist/src/sync/common/utils.js.map +1 -1
  48. package/dist/src/sync/v2/export/controls/Fragment.d.ts.map +1 -1
  49. package/dist/src/sync/v2/export/controls/Fragment.js +2 -1
  50. package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -1
  51. package/dist/src/sync/v2/export/controls/ObjectPageHeader.d.ts +1 -1
  52. package/dist/src/sync/v2/export/controls/ObjectPageHeader.d.ts.map +1 -1
  53. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts +1 -1
  54. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
  55. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js +8 -8
  56. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js.map +1 -1
  57. package/dist/src/sync/v2/export/controls/Table.d.ts +0 -4
  58. package/dist/src/sync/v2/export/controls/Table.d.ts.map +1 -1
  59. package/dist/src/sync/v2/export/controls/Table.js +0 -40
  60. package/dist/src/sync/v2/export/controls/Table.js.map +1 -1
  61. package/dist/src/sync/v2/export/export.js +2 -2
  62. package/dist/src/sync/v2/export/export.js.map +1 -1
  63. package/dist/src/sync/v2/export/exportPage.d.ts.map +1 -1
  64. package/dist/src/sync/v2/export/exportPage.js +10 -9
  65. package/dist/src/sync/v2/export/exportPage.js.map +1 -1
  66. package/dist/src/sync/v2/export/factory.js +4 -4
  67. package/dist/src/sync/v2/export/factory.js.map +1 -1
  68. package/dist/src/sync/v2/export/manifest.d.ts.map +1 -1
  69. package/dist/src/sync/v2/export/manifest.js +2 -2
  70. package/dist/src/sync/v2/export/manifest.js.map +1 -1
  71. package/dist/src/sync/v2/generate/analyticalListReport.d.ts +1 -1
  72. package/dist/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -1
  73. package/dist/src/sync/v2/generate/analyticalListReport.js +22 -27
  74. package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -1
  75. package/dist/src/sync/v2/generate/generate.d.ts +12 -12
  76. package/dist/src/sync/v2/generate/generate.d.ts.map +1 -1
  77. package/dist/src/sync/v2/generate/generate.js +61 -45
  78. package/dist/src/sync/v2/generate/generate.js.map +1 -1
  79. package/dist/src/sync/v2/generate/listReport.d.ts +1 -3
  80. package/dist/src/sync/v2/generate/listReport.d.ts.map +1 -1
  81. package/dist/src/sync/v2/generate/listReport.js +7 -11
  82. package/dist/src/sync/v2/generate/listReport.js.map +1 -1
  83. package/dist/src/sync/v2/generate/objectPage.d.ts +1 -2
  84. package/dist/src/sync/v2/generate/objectPage.d.ts.map +1 -1
  85. package/dist/src/sync/v2/generate/objectPage.js +70 -81
  86. package/dist/src/sync/v2/generate/objectPage.js.map +1 -1
  87. package/dist/src/sync/v2/generate/utils.d.ts +2 -2
  88. package/dist/src/sync/v2/generate/utils.d.ts.map +1 -1
  89. package/dist/src/sync/v2/generate/utils.js.map +1 -1
  90. package/dist/src/sync/v2/import/app/appProvider.d.ts.map +1 -1
  91. package/dist/src/sync/v2/import/app/appProvider.js +2 -2
  92. package/dist/src/sync/v2/import/app/appProvider.js.map +1 -1
  93. package/dist/src/sync/v2/import/app/ovpProvider.js +2 -2
  94. package/dist/src/sync/v2/import/app/ovpProvider.js.map +1 -1
  95. package/dist/src/sync/v2/import/common/index.d.ts +2 -2
  96. package/dist/src/sync/v2/import/common/index.d.ts.map +1 -1
  97. package/dist/src/sync/v2/import/common/index.js +3 -3
  98. package/dist/src/sync/v2/import/common/index.js.map +1 -1
  99. package/dist/src/sync/v2/import/pages/analyticalListPage.js +12 -12
  100. package/dist/src/sync/v2/import/pages/analyticalListPage.js.map +1 -1
  101. package/dist/src/sync/v2/import/pages/listReport.js +9 -9
  102. package/dist/src/sync/v2/import/pages/listReport.js.map +1 -1
  103. package/dist/src/sync/v2/import/pages/objectPage.js +16 -16
  104. package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -1
  105. package/dist/src/sync/v2/import/pages/overviewPage.js +1 -1
  106. package/dist/src/sync/v2/import/pages/overviewPage.js.map +1 -1
  107. package/dist/src/sync/v2/import/utils.d.ts.map +1 -1
  108. package/dist/src/sync/v2/import/utils.js +3 -3
  109. package/dist/src/sync/v2/import/utils.js.map +1 -1
  110. package/dist/src/sync/v2/types.d.ts +3 -3
  111. package/dist/src/sync/v2/types.d.ts.map +1 -1
  112. package/dist/src/sync/v2/types.js +1 -1
  113. package/dist/src/sync/v2/types.js.map +1 -1
  114. package/dist/src/sync/v4/application.d.ts +2 -0
  115. package/dist/src/sync/v4/application.d.ts.map +1 -1
  116. package/dist/src/sync/v4/application.js +10 -2
  117. package/dist/src/sync/v4/application.js.map +1 -1
  118. package/dist/src/sync/v4/export/controls/FilterBar.d.ts +8 -1
  119. package/dist/src/sync/v4/export/controls/FilterBar.d.ts.map +1 -1
  120. package/dist/src/sync/v4/export/controls/FilterBar.js +56 -2
  121. package/dist/src/sync/v4/export/controls/FilterBar.js.map +1 -1
  122. package/dist/src/sync/v4/export/controls/Header.d.ts +9 -0
  123. package/dist/src/sync/v4/export/controls/Header.d.ts.map +1 -0
  124. package/dist/src/sync/v4/export/controls/Header.js +10 -0
  125. package/dist/src/sync/v4/export/controls/Header.js.map +1 -0
  126. package/dist/src/sync/v4/export/controls/HeaderAction.d.ts +16 -0
  127. package/dist/src/sync/v4/export/controls/HeaderAction.d.ts.map +1 -0
  128. package/dist/src/sync/v4/export/controls/HeaderAction.js +94 -0
  129. package/dist/src/sync/v4/export/controls/HeaderAction.js.map +1 -0
  130. package/dist/src/sync/v4/export/controls/ObjectPageCustomSection.js +2 -2
  131. package/dist/src/sync/v4/export/controls/ObjectPageCustomSection.js.map +1 -1
  132. package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.d.ts +1 -1
  133. package/dist/src/sync/v4/export/controls/ObjectPageFooterAction.d.ts.map +1 -1
  134. package/dist/src/sync/v4/export/controls/ObjectPageHeader.d.ts +3 -3
  135. package/dist/src/sync/v4/export/controls/ObjectPageHeader.d.ts.map +1 -1
  136. package/dist/src/sync/v4/export/controls/ObjectPageHeader.js +2 -2
  137. package/dist/src/sync/v4/export/controls/ObjectPageHeader.js.map +1 -1
  138. package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts +5 -6
  139. package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.d.ts.map +1 -1
  140. package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.js +11 -29
  141. package/dist/src/sync/v4/export/controls/ObjectPageHeaderAction.js.map +1 -1
  142. package/dist/src/sync/v4/export/controls/ObjectPageLayout.js +1 -1
  143. package/dist/src/sync/v4/export/controls/ObjectPageLayout.js.map +1 -1
  144. package/dist/src/sync/v4/export/controls/Table.js +6 -6
  145. package/dist/src/sync/v4/export/controls/Table.js.map +1 -1
  146. package/dist/src/sync/v4/export/controls/index.d.ts +2 -0
  147. package/dist/src/sync/v4/export/controls/index.d.ts.map +1 -1
  148. package/dist/src/sync/v4/export/controls/index.js +2 -0
  149. package/dist/src/sync/v4/export/controls/index.js.map +1 -1
  150. package/dist/src/sync/v4/export/export.d.ts +1 -1
  151. package/dist/src/sync/v4/export/export.d.ts.map +1 -1
  152. package/dist/src/sync/v4/export/export.js +63 -35
  153. package/dist/src/sync/v4/export/export.js.map +1 -1
  154. package/dist/src/sync/v4/export/factory.js +3 -3
  155. package/dist/src/sync/v4/export/factory.js.map +1 -1
  156. package/dist/src/sync/v4/export/fpmCustomPage.d.ts.map +1 -1
  157. package/dist/src/sync/v4/export/fpmCustomPage.js +5 -5
  158. package/dist/src/sync/v4/export/fpmCustomPage.js.map +1 -1
  159. package/dist/src/sync/v4/export/manifest.d.ts +1 -1
  160. package/dist/src/sync/v4/export/manifest.d.ts.map +1 -1
  161. package/dist/src/sync/v4/export/manifest.js +40 -30
  162. package/dist/src/sync/v4/export/manifest.js.map +1 -1
  163. package/dist/src/sync/v4/export/pages/ListReport.d.ts +2 -1
  164. package/dist/src/sync/v4/export/pages/ListReport.d.ts.map +1 -1
  165. package/dist/src/sync/v4/export/pages/ListReport.js +7 -4
  166. package/dist/src/sync/v4/export/pages/ListReport.js.map +1 -1
  167. package/dist/src/sync/v4/export/pages/ObjectPage.js +1 -1
  168. package/dist/src/sync/v4/export/pages/ObjectPage.js.map +1 -1
  169. package/dist/src/sync/v4/export/types.d.ts +2 -2
  170. package/dist/src/sync/v4/export/types.d.ts.map +1 -1
  171. package/dist/src/sync/v4/generate/fpm-custom-page/annotations.d.ts +17 -0
  172. package/dist/src/sync/v4/generate/fpm-custom-page/annotations.d.ts.map +1 -0
  173. package/dist/src/sync/v4/generate/fpm-custom-page/annotations.js +71 -0
  174. package/dist/src/sync/v4/generate/fpm-custom-page/annotations.js.map +1 -0
  175. package/dist/src/sync/v4/generate/fpm-custom-page/extensions.d.ts +11 -0
  176. package/dist/src/sync/v4/generate/fpm-custom-page/extensions.d.ts.map +1 -0
  177. package/dist/src/sync/v4/generate/fpm-custom-page/extensions.js +169 -0
  178. package/dist/src/sync/v4/generate/fpm-custom-page/extensions.js.map +1 -0
  179. package/dist/src/sync/v4/generate/fpm-custom-page/generator.d.ts +13 -0
  180. package/dist/src/sync/v4/generate/fpm-custom-page/generator.d.ts.map +1 -0
  181. package/dist/src/sync/v4/generate/{fpmCustomPage.js → fpm-custom-page/generator.js} +57 -33
  182. package/dist/src/sync/v4/generate/fpm-custom-page/generator.js.map +1 -0
  183. package/dist/src/sync/v4/generate/fpm-custom-page/utils.d.ts +3 -0
  184. package/dist/src/sync/v4/generate/fpm-custom-page/utils.d.ts.map +1 -0
  185. package/dist/src/sync/v4/generate/fpm-custom-page/utils.js +8 -0
  186. package/dist/src/sync/v4/generate/fpm-custom-page/utils.js.map +1 -0
  187. package/dist/src/sync/v4/generate/generate.d.ts +3 -3
  188. package/dist/src/sync/v4/generate/generate.d.ts.map +1 -1
  189. package/dist/src/sync/v4/generate/generate.js +19 -10
  190. package/dist/src/sync/v4/generate/generate.js.map +1 -1
  191. package/dist/src/sync/v4/generate/index.d.ts +1 -1
  192. package/dist/src/sync/v4/generate/index.d.ts.map +1 -1
  193. package/dist/src/sync/v4/generate/index.js +2 -2
  194. package/dist/src/sync/v4/generate/index.js.map +1 -1
  195. package/dist/src/sync/v4/generate/listReport.d.ts +13 -3
  196. package/dist/src/sync/v4/generate/listReport.d.ts.map +1 -1
  197. package/dist/src/sync/v4/generate/listReport.js +148 -24
  198. package/dist/src/sync/v4/generate/listReport.js.map +1 -1
  199. package/dist/src/sync/v4/generate/objectPage.d.ts +2 -2
  200. package/dist/src/sync/v4/generate/objectPage.d.ts.map +1 -1
  201. package/dist/src/sync/v4/generate/objectPage.js +20 -28
  202. package/dist/src/sync/v4/generate/objectPage.js.map +1 -1
  203. package/dist/src/sync/v4/import/app/baseAppProvider.d.ts +1 -1
  204. package/dist/src/sync/v4/import/app/baseAppProvider.d.ts.map +1 -1
  205. package/dist/src/sync/v4/import/app/baseAppProvider.js +5 -7
  206. package/dist/src/sync/v4/import/app/baseAppProvider.js.map +1 -1
  207. package/dist/src/sync/v4/import/pages/fpmCustomPage.js +3 -3
  208. package/dist/src/sync/v4/import/pages/fpmCustomPage.js.map +1 -1
  209. package/dist/src/sync/v4/import/pages/listReport.d.ts.map +1 -1
  210. package/dist/src/sync/v4/import/pages/listReport.js +57 -0
  211. package/dist/src/sync/v4/import/pages/listReport.js.map +1 -1
  212. package/dist/src/sync/v4/import/pages/objectPage.js +8 -8
  213. package/dist/src/sync/v4/import/pages/objectPage.js.map +1 -1
  214. package/dist/src/sync/v4/sync-rules/controllerExtensions.d.ts.map +1 -1
  215. package/dist/src/sync/v4/sync-rules/controllerExtensions.js +3 -3
  216. package/dist/src/sync/v4/sync-rules/controllerExtensions.js.map +1 -1
  217. package/dist/src/sync/v4/types.d.ts +9 -0
  218. package/dist/src/sync/v4/types.d.ts.map +1 -1
  219. package/dist/src/sync/v4/utils/StableIdHelper.js +1 -1
  220. package/dist/src/sync/v4/utils/StableIdHelper.js.map +1 -1
  221. package/dist/src/sync/v4/utils/utils.d.ts +26 -4
  222. package/dist/src/sync/v4/utils/utils.d.ts.map +1 -1
  223. package/dist/src/sync/v4/utils/utils.js +50 -17
  224. package/dist/src/sync/v4/utils/utils.js.map +1 -1
  225. package/package.json +8 -7
  226. package/dist/scripts/extractDocu.d.ts +0 -2
  227. package/dist/scripts/extractDocu.d.ts.map +0 -1
  228. package/dist/scripts/extractDocu.js +0 -514
  229. package/dist/scripts/extractDocu.js.map +0 -1
  230. package/dist/scripts/macros/api.d.ts +0 -9
  231. package/dist/scripts/macros/api.d.ts.map +0 -1
  232. package/dist/scripts/macros/api.js +0 -161
  233. package/dist/scripts/macros/api.js.map +0 -1
  234. package/dist/scripts/macros/cmd.d.ts +0 -7
  235. package/dist/scripts/macros/cmd.d.ts.map +0 -1
  236. package/dist/scripts/macros/cmd.js +0 -49
  237. package/dist/scripts/macros/cmd.js.map +0 -1
  238. package/dist/scripts/macros/corrections.d.ts +0 -18
  239. package/dist/scripts/macros/corrections.d.ts.map +0 -1
  240. package/dist/scripts/macros/corrections.js +0 -188
  241. package/dist/scripts/macros/corrections.js.map +0 -1
  242. package/dist/scripts/macros/index.d.ts +0 -2
  243. package/dist/scripts/macros/index.d.ts.map +0 -1
  244. package/dist/scripts/macros/index.js +0 -8
  245. package/dist/scripts/macros/index.js.map +0 -1
  246. package/dist/scripts/macros/schema.d.ts +0 -9
  247. package/dist/scripts/macros/schema.d.ts.map +0 -1
  248. package/dist/scripts/macros/schema.js +0 -201
  249. package/dist/scripts/macros/schema.js.map +0 -1
  250. package/dist/scripts/macros/types.d.ts +0 -77
  251. package/dist/scripts/macros/types.d.ts.map +0 -1
  252. package/dist/scripts/macros/types.js +0 -14
  253. package/dist/scripts/macros/types.js.map +0 -1
  254. package/dist/scripts/runDocu.d.ts +0 -2
  255. package/dist/scripts/runDocu.d.ts.map +0 -1
  256. package/dist/scripts/runDocu.js +0 -581
  257. package/dist/scripts/runDocu.js.map +0 -1
  258. package/dist/scripts/spec.d.ts +0 -2
  259. package/dist/scripts/spec.d.ts.map +0 -1
  260. package/dist/scripts/spec.js +0 -113
  261. package/dist/scripts/spec.js.map +0 -1
  262. package/dist/scripts/to-json-schema.d.ts +0 -11
  263. package/dist/scripts/to-json-schema.d.ts.map +0 -1
  264. package/dist/scripts/to-json-schema.js +0 -154
  265. package/dist/scripts/to-json-schema.js.map +0 -1
  266. package/dist/src/sync/v4/generate/fpmCustomPage.d.ts +0 -10
  267. package/dist/src/sync/v4/generate/fpmCustomPage.d.ts.map +0 -1
  268. package/dist/src/sync/v4/generate/fpmCustomPage.js.map +0 -1
@@ -38,7 +38,7 @@ let ListReport = class ListReport {
38
38
  __decorate([
39
39
  decorators_1.syncRule({
40
40
  manifest: {
41
- path: (entitySet) => application_1.getSettingsPathForPage(entitySet) + '/views',
41
+ path: (pageName) => application_1.getSettingsPathForPage(pageName) + '/views',
42
42
  import: doNotImport,
43
43
  export: doNotExport,
44
44
  delete: deleteAllALPViews
@@ -48,7 +48,7 @@ __decorate([
48
48
  __decorate([
49
49
  decorators_1.syncRule({
50
50
  manifest: {
51
- path: (entitySet) => application_1.getSettingsPathForPage(entitySet)
51
+ path: (pageName) => application_1.getSettingsPathForPage(pageName)
52
52
  }
53
53
  }),
54
54
  decorators_1.validity({
@@ -58,17 +58,20 @@ __decorate([
58
58
  __decorate([
59
59
  decorators_1.syncRule({
60
60
  manifest: {
61
- path: (entitySet) => application_1.getSettingsPathForPage(entitySet) + '/views/paths/[]/0'
61
+ path: (pageName) => application_1.getSettingsPathForPage(pageName) + '/views/paths/[]/0'
62
62
  }
63
63
  })
64
64
  ], ListReport.prototype, "defaultPath", void 0);
65
65
  __decorate([
66
66
  decorators_1.syncRule({
67
67
  manifest: {
68
- path: (entitySet) => application_1.getSettingsPathForPage(entitySet)
68
+ path: (pageName) => application_1.getSettingsPathForPage(pageName)
69
69
  }
70
70
  })
71
71
  ], ListReport.prototype, "defaultTemplateAnnotationPath", void 0);
72
+ __decorate([
73
+ decorators_1.childId('header')
74
+ ], ListReport.prototype, "header", void 0);
72
75
  __decorate([
73
76
  decorators_1.childId('fe::FilterBar')
74
77
  ], ListReport.prototype, "filterBar", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"ListReport.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/export/pages/ListReport.ts"],"names":[],"mappings":";;;;;;;;;AAEA,sEAA2G;AAC3G,mDAA2D;AAE3D;;;GAGG;AACH,SAAS,iBAAiB,CAAC,eAAuB;IAC9C,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE;QACpF,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9E;AACL,CAAC;AAED;;GAEG;AACH,SAAS,WAAW;IAChB,OAAO;AACX,CAAC;AAED;;GAEG;AACH,SAAS,WAAW;IAChB,OAAO;AACX,CAAC;AAED;;GAEG;AAKH,IAAa,UAAU,GAAvB,MAAa,UAAU;CA6CtB,CAAA;AApCG;IARC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,SAAS,EAAU,EAAE,CAAC,oCAAsB,CAAC,SAAS,CAAC,GAAG,QAAQ;YACzE,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,iBAAiB;SAC5B;KACJ,CAAC;yCACsB;AAiBxB;IARC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,SAAmB,EAAU,EAAE,CAAC,oCAAsB,CAAC,SAAS,CAAC;SAC3E;KACJ,CAAC;IACD,qBAAQ,CAAC;QACN,KAAK,EAAE,QAAQ;KAClB,CAAC;qDACqD;AAOvD;IALC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,SAAS,EAAU,EAAE,CAAC,oCAAsB,CAAC,SAAS,CAAC,GAAG,mBAAmB;SACvF;KACJ,CAAC;+CAC+B;AAOjC;IALC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,SAAS,EAAU,EAAE,CAAC,oCAAsB,CAAC,SAAS,CAAC;SACjE;KACJ,CAAC;iEACqC;AAIvC;IADC,oBAAO,CAAC,eAAe,CAAC;6CACH;AA5Cb,UAAU;IAJtB,kCAAqB,CAAC;QACnB,EAAE,EAAE,0DAA0D;QAC9D,MAAM,EAAE,0CAA0C;KACrD,CAAC;GACW,UAAU,CA6CtB;AA7CY,gCAAU"}
1
+ {"version":3,"file":"ListReport.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/export/pages/ListReport.ts"],"names":[],"mappings":";;;;;;;;;AAEA,sEAA2G;AAC3G,mDAA2D;AAE3D;;;GAGG;AACH,SAAS,iBAAiB,CAAC,eAAuB;IAC9C,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE;QACpF,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9E;AACL,CAAC;AAED;;GAEG;AACH,SAAS,WAAW;IAChB,OAAO;AACX,CAAC;AAED;;GAEG;AACH,SAAS,WAAW;IAChB,OAAO;AACX,CAAC;AAED;;GAEG;AAKH,IAAa,UAAU,GAAvB,MAAa,UAAU;CAgDtB,CAAA;AAvCG;IARC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,QAAQ,EAAU,EAAE,CAAC,oCAAsB,CAAC,QAAQ,CAAC,GAAG,QAAQ;YACvE,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,iBAAiB;SAC5B;KACJ,CAAC;yCACsB;AAiBxB;IARC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,QAAkB,EAAU,EAAE,CAAC,oCAAsB,CAAC,QAAQ,CAAC;SACzE;KACJ,CAAC;IACD,qBAAQ,CAAC;QACN,KAAK,EAAE,QAAQ;KAClB,CAAC;qDACqD;AAOvD;IALC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,QAAQ,EAAU,EAAE,CAAC,oCAAsB,CAAC,QAAQ,CAAC,GAAG,mBAAmB;SACrF;KACJ,CAAC;+CAC+B;AAOjC;IALC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,QAAQ,EAAU,EAAE,CAAC,oCAAsB,CAAC,QAAQ,CAAC;SAC/D;KACJ,CAAC;iEACqC;AAGvC;IADC,oBAAO,CAAC,QAAQ,CAAC;0CACF;AAIhB;IADC,oBAAO,CAAC,eAAe,CAAC;6CACH;AA/Cb,UAAU;IAJtB,kCAAqB,CAAC;QACnB,EAAE,EAAE,0DAA0D;QAC9D,MAAM,EAAE,0CAA0C;KACrD,CAAC;GACW,UAAU,CAgDtB;AAhDY,gCAAU"}
@@ -21,7 +21,7 @@ __decorate([
21
21
  __decorate([
22
22
  decorators_1.syncRule({
23
23
  manifest: {
24
- path: (entitySet) => application_1.getSettingsPathForPage(entitySet)
24
+ path: (pageName) => application_1.getSettingsPathForPage(pageName)
25
25
  }
26
26
  }),
27
27
  decorators_1.validity({
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectPage.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/export/pages/ObjectPage.ts"],"names":[],"mappings":";;;;;;;;;AACA,wEAAiD;AACjD,sEAA2G;AAC3G,mDAA2D;AAM3D,IAAa,UAAU,GAAvB,MAAa,UAAU;CAqBtB,CAAA;AAnBG;IADC,oBAAO,CAAC,QAAQ,CAAC;0CACQ;AAG1B;IADC,oBAAO,CAAC,QAAQ,CAAC;0CACQ;AAU1B;IARC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,SAAmB,EAAU,EAAE,CAAC,oCAAsB,CAAC,SAAS,CAAC;SAC3E;KACJ,CAAC;IACD,qBAAQ,CAAC;QACN,KAAK,EAAE,QAAQ;KAClB,CAAC;qDACqD;AAGvD;IADC,oBAAO,CAAC,UAAU,CAAC;4CAC8B;AAlBzC,UAAU;IAJtB,kCAAqB,CAAC;QACnB,EAAE,EAAE,GAAG,2BAAE,CAAC,0BAA0B,eAAe;QACnD,MAAM,EAAE,2BAAE,CAAC,0BAA0B;KACxC,CAAC;GACW,UAAU,CAqBtB;AArBY,gCAAU"}
1
+ {"version":3,"file":"ObjectPage.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/export/pages/ObjectPage.ts"],"names":[],"mappings":";;;;;;;;;AACA,wEAAiD;AACjD,sEAA2G;AAC3G,mDAA2D;AAM3D,IAAa,UAAU,GAAvB,MAAa,UAAU;CAqBtB,CAAA;AAnBG;IADC,oBAAO,CAAC,QAAQ,CAAC;0CACQ;AAG1B;IADC,oBAAO,CAAC,QAAQ,CAAC;0CACQ;AAU1B;IARC,qBAAQ,CAAC;QACN,QAAQ,EAAE;YACN,IAAI,EAAE,CAAC,QAAkB,EAAU,EAAE,CAAC,oCAAsB,CAAC,QAAQ,CAAC;SACzE;KACJ,CAAC;IACD,qBAAQ,CAAC;QACN,KAAK,EAAE,QAAQ;KAClB,CAAC;qDACqD;AAGvD;IADC,oBAAO,CAAC,UAAU,CAAC;4CAC8B;AAlBzC,UAAU;IAJtB,kCAAqB,CAAC;QACnB,EAAE,EAAE,GAAG,2BAAE,CAAC,0BAA0B,eAAe;QACnD,MAAM,EAAE,2BAAE,CAAC,0BAA0B;KACxC,CAAC;GACW,UAAU,CAqBtB;AArBY,gCAAU"}
@@ -1,6 +1,6 @@
1
1
  import type { Definition } from 'typescript-json-schema';
2
2
  import type { MetadataFactory } from '../../common/decoration/factory';
3
- import type { ExportResults, FlexAdapter, TemplateType, PageType, ExtensionLogger, UI5Version } from '@sap/ux-specification-types';
3
+ import type { ExportResults, FlexAdapter, TemplateType, PageTypeV4, ExtensionLogger, UI5Version } from '@sap/ux-specification-types';
4
4
  export declare type ManifestPathSection = (path: string, targetAnnotationPath: string) => string;
5
5
  export interface ManifestConverter4Section {
6
6
  path: ManifestPathSection;
@@ -18,7 +18,7 @@ export declare type TransferParameterTypeV4 = {
18
18
  ui5Version: UI5Version;
19
19
  factory: MetadataFactory;
20
20
  pageNameArray: string[];
21
- pageType: PageType;
21
+ pageType: PageTypeV4;
22
22
  title: string;
23
23
  appRootPath?: string;
24
24
  logger?: ExtensionLogger;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/export/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,UAAU,EACb,MAAM,6BAA6B,CAAC;AAErC,oBAAY,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,KAAK,MAAM,CAAC;AAEzF,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;CACxC;AAED,oBAAY,uBAAuB,GAAG;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v4/export/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,UAAU,EACb,MAAM,6BAA6B,CAAC;AAErC,oBAAY,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,KAAK,MAAM,CAAC;AAEzF,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;CACxC;AAED,oBAAY,uBAAuB,GAAG;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC9B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ConvertedMetadata } from '@sap-ux/vocabularies-types';
2
+ import type { XMLElement } from '@xml-tools/ast';
3
+ import type { SchemaDefinition } from '@sap/ux-specification-types';
4
+ import type { CustomPageConnection } from '../../types';
5
+ interface HandlerParams {
6
+ serviceAVT: ConvertedMetadata;
7
+ node: XMLElement;
8
+ schema: SchemaDefinition;
9
+ rootSchema: SchemaDefinition;
10
+ connectionContext: CustomPageConnection;
11
+ }
12
+ declare type AnnotationMacrosHandler = (params: HandlerParams) => void;
13
+ export declare const annotationMacrosHandlers: {
14
+ [key: string]: AnnotationMacrosHandler;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=annotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/fpm-custom-page/annotations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiD,MAAM,4BAA4B,CAAC;AACnH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAKxD,UAAU,aAAa;IACnB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,IAAI,EAAE,UAAU,CAAC;IAEjB,MAAM,EAAE,gBAAgB,CAAC;IAEzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,iBAAiB,EAAE,oBAAoB,CAAC;CAC3C;AAED,aAAK,uBAAuB,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;AAiD/D,eAAO,MAAM,wBAAwB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAmB9E,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.annotationMacrosHandlers = void 0;
4
+ const ux_specification_types_1 = require("@sap/ux-specification-types");
5
+ const listReport_1 = require("../listReport");
6
+ const common_1 = require("../../../common");
7
+ const utils_1 = require("./utils");
8
+ /**
9
+ * Method returns entity type for passed macros annotation handler params.
10
+ * @param {HandlerParams} params Macros annotation handler params containing serviceAvt and connection context information.
11
+ * @returns {EntityType | undefined} EntityType for passed connection.
12
+ */
13
+ function getEntityTypeResolution(params) {
14
+ const { node, serviceAVT, connectionContext } = params;
15
+ const contextPath = utils_1.getAttribute(node, 'contextPath') || connectionContext.contextPath;
16
+ const entitySet = connectionContext.entitySet;
17
+ if (!contextPath && !entitySet) {
18
+ return undefined;
19
+ }
20
+ const resolvedContextPath = serviceAVT?.resolvePath(contextPath || `/${entitySet}`);
21
+ let entityType;
22
+ switch (resolvedContextPath?.target?.['_type']) {
23
+ case 'EntitySet': {
24
+ entityType = resolvedContextPath.target.entityType;
25
+ break;
26
+ }
27
+ case 'NavigationProperty': {
28
+ entityType = resolvedContextPath.target.targetType;
29
+ break;
30
+ }
31
+ case 'EntityType': {
32
+ entityType = resolvedContextPath.target;
33
+ break;
34
+ }
35
+ }
36
+ return entityType;
37
+ }
38
+ /**
39
+ * Method applies annotation path for passed XML node's schema.
40
+ * @param {HandlerParams} schema Schema to update with "annotationPath".
41
+ * @param {XMLElement} node XML node of macro element.
42
+ * @param {EntityType} [entityType] Entity type object.
43
+ */
44
+ function applyAnnotationPath(schema, node, entityType) {
45
+ const metaPath = utils_1.getAttribute(node, 'metaPath');
46
+ if (metaPath && entityType) {
47
+ schema.annotationPath = `/${entityType.fullyQualifiedName}/${metaPath}`;
48
+ }
49
+ }
50
+ // Handlers map for macros controls
51
+ exports.annotationMacrosHandlers = {
52
+ 'sap.fe.macros.Chart': (params) => {
53
+ const entityType = getEntityTypeResolution(params);
54
+ applyAnnotationPath(params.schema, params.node, entityType);
55
+ },
56
+ 'sap.fe.macros.FilterBar': (params) => {
57
+ const { schema, serviceAVT, rootSchema } = params;
58
+ const entityType = getEntityTypeResolution(params);
59
+ // Handler selection fields
60
+ const filterFieldsDefinition = schema.properties?.filterFields;
61
+ if (typeof filterFieldsDefinition === 'object' && entityType) {
62
+ if (!filterFieldsDefinition.properties) {
63
+ filterFieldsDefinition.properties = {};
64
+ }
65
+ const alias = common_1.findAlias(ux_specification_types_1.UIVOCABULARY, serviceAVT);
66
+ const selectionFieldAnnotation = alias && entityType.annotations?.[alias]?.SelectionFields;
67
+ listReport_1.addSelectionFields(entityType, rootSchema, selectionFieldAnnotation, filterFieldsDefinition);
68
+ }
69
+ }
70
+ };
71
+ //# sourceMappingURL=annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/fpm-custom-page/annotations.ts"],"names":[],"mappings":";;;AAGA,wEAA2D;AAE3D,8CAAmD;AACnD,4CAA4C;AAC5C,mCAAuC;AAcvC;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,MAAqB;IAClD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAAC;IACvD,MAAM,WAAW,GAAG,oBAAY,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC;IACvF,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;IAC9C,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE;QAC5B,OAAO,SAAS,CAAC;KACpB;IACD,MAAM,mBAAmB,GAAG,UAAU,EAAE,WAAW,CAC/C,WAAW,IAAI,IAAI,SAAS,EAAE,CACjC,CAAC;IACF,IAAI,UAAkC,CAAC;IACvC,QAAQ,mBAAmB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE;QAC5C,KAAK,WAAW,CAAC,CAAC;YACd,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC;YACnD,MAAM;SACT;QACD,KAAK,oBAAoB,CAAC,CAAC;YACvB,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC;YACnD,MAAM;SACT;QACD,KAAK,YAAY,CAAC,CAAC;YACf,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC;YACxC,MAAM;SACT;KACJ;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,MAAwB,EAAE,IAAgB,EAAE,UAAuB;IAC5F,MAAM,QAAQ,GAAG,oBAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,QAAQ,IAAI,UAAU,EAAE;QACxB,MAAM,CAAC,cAAc,GAAG,IAAI,UAAU,CAAC,kBAAkB,IAAI,QAAQ,EAAE,CAAC;KAC3E;AACL,CAAC;AAED,mCAAmC;AACtB,QAAA,wBAAwB,GAA+C;IAChF,qBAAqB,EAAE,CAAC,MAAqB,EAAE,EAAE;QAC7C,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACnD,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IACD,yBAAyB,EAAE,CAAC,MAAqB,EAAE,EAAE;QACjD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAClD,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACnD,2BAA2B;QAC3B,MAAM,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;QAC/D,IAAI,OAAO,sBAAsB,KAAK,QAAQ,IAAI,UAAU,EAAE;YAC1D,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE;gBACpC,sBAAsB,CAAC,UAAU,GAAG,EAAE,CAAC;aAC1C;YACD,MAAM,KAAK,GAAG,kBAAS,CAAC,qCAAY,EAAE,UAAU,CAAC,CAAC;YAClD,MAAM,wBAAwB,GAAG,KAAK,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;YAC3F,+BAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;SAChG;IACL,CAAC;CACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { SchemaDefinition } from '@sap/ux-specification-types';
2
+ import type { XMLElement } from '@xml-tools/ast';
3
+ /**
4
+ * Method handles custom extension - resolve positions and ordering.
5
+ * Currently it handles `sap.fe.macros.FilterField`, but code is generic and can handle also other extensions - method relies on 'anchor' and 'placement' properties.
6
+ * @param {XMLElement} node Parsed XML element.
7
+ * @param {SchemaDefinition} schema Schema object which contains custom extensions and annotation elements.
8
+ * @param {SchemaDefinition} appSchema Full app schema.
9
+ */
10
+ export declare function handleExtensions(node: XMLElement, schema: SchemaDefinition, appSchema: SchemaDefinition): void;
11
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v4/generate/fpm-custom-page/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAIpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAqKjD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAU9G"}
@@ -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) {
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