@sap/ux-specification 1.71.66 → 1.71.70

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 (476) hide show
  1. package/dist/documentation/runDocu-min.js +5 -9623
  2. package/dist/documentation/runDocu-min.js.map +1 -1
  3. package/dist/documentation/v2/v2-AnalyticalListPage.html +1 -1
  4. package/dist/documentation/v2/v2-ApplicationV2.html +1 -1
  5. package/dist/documentation/v2/v2-ListReport.html +1 -1
  6. package/dist/documentation/v2/v2-ObjectPage.html +1 -1
  7. package/dist/documentation/v2/v2-OverviewPage.html +1 -1
  8. package/dist/index-min.js +83 -24668
  9. package/dist/index-min.js.map +3 -3
  10. package/dist/schemas/v2/ListReportConfig.json +83 -83
  11. package/dist/scripts/extractDocu.d.ts +2 -0
  12. package/dist/scripts/extractDocu.d.ts.map +1 -0
  13. package/dist/scripts/extractDocu.js +506 -0
  14. package/dist/scripts/extractDocu.js.map +1 -0
  15. package/dist/scripts/runDocu.d.ts +2 -0
  16. package/dist/scripts/runDocu.d.ts.map +1 -0
  17. package/dist/scripts/runDocu.js +579 -0
  18. package/dist/scripts/runDocu.js.map +1 -0
  19. package/dist/scripts/spec.d.ts +2 -0
  20. package/dist/scripts/spec.d.ts.map +1 -0
  21. package/dist/scripts/spec.js +113 -0
  22. package/dist/scripts/spec.js.map +1 -0
  23. package/dist/scripts/to-json-schema.d.ts +11 -0
  24. package/dist/scripts/to-json-schema.d.ts.map +1 -0
  25. package/dist/scripts/to-json-schema.js +134 -0
  26. package/dist/scripts/to-json-schema.js.map +1 -0
  27. package/dist/{types → src}/api.d.ts +1 -1
  28. package/dist/{types → src}/api.d.ts.map +1 -1
  29. package/dist/src/api.js +123 -0
  30. package/dist/src/api.js.map +1 -0
  31. package/dist/{types → src}/apiTypes.d.ts +9 -12
  32. package/dist/src/apiTypes.d.ts.map +1 -0
  33. package/dist/src/apiTypes.js +3 -0
  34. package/dist/src/apiTypes.js.map +1 -0
  35. package/dist/{types → src}/extensionLogger.d.ts +1 -1
  36. package/dist/{types → src}/extensionLogger.d.ts.map +1 -1
  37. package/dist/src/extensionLogger.js +36 -0
  38. package/dist/src/extensionLogger.js.map +1 -0
  39. package/dist/{types → src}/i18n/i18n.d.ts +0 -0
  40. package/dist/{types → src}/i18n/i18n.d.ts.map +0 -0
  41. package/dist/src/i18n/i18n.js +26 -0
  42. package/dist/src/i18n/i18n.js.map +1 -0
  43. package/dist/{types → src}/index.d.ts +2 -2
  44. package/dist/src/index.d.ts.map +1 -0
  45. package/dist/src/index.js +20 -0
  46. package/dist/src/index.js.map +1 -0
  47. package/dist/{types → src}/project.d.ts +2 -1
  48. package/dist/src/project.d.ts.map +1 -0
  49. package/dist/src/project.js +153 -0
  50. package/dist/src/project.js.map +1 -0
  51. package/dist/{types → src}/specification/schemaAccess.d.ts +3 -12
  52. package/dist/src/specification/schemaAccess.d.ts.map +1 -0
  53. package/dist/src/specification/schemaAccess.js +63 -0
  54. package/dist/src/specification/schemaAccess.js.map +1 -0
  55. package/dist/{types → src}/sync/common/appProvider.d.ts +4 -5
  56. package/dist/src/sync/common/appProvider.d.ts.map +1 -0
  57. package/dist/src/sync/common/appProvider.js +66 -0
  58. package/dist/src/sync/common/appProvider.js.map +1 -0
  59. package/dist/{types → src}/sync/common/decoration/control.d.ts +2 -2
  60. package/dist/src/sync/common/decoration/control.d.ts.map +1 -0
  61. package/dist/src/sync/common/decoration/control.js +219 -0
  62. package/dist/src/sync/common/decoration/control.js.map +1 -0
  63. package/dist/{types → src}/sync/common/decoration/decorators.d.ts +0 -0
  64. package/dist/src/sync/common/decoration/decorators.d.ts.map +1 -0
  65. package/dist/src/sync/common/decoration/decorators.js +52 -0
  66. package/dist/src/sync/common/decoration/decorators.js.map +1 -0
  67. package/dist/{types → src}/sync/common/decoration/factory.d.ts +1 -1
  68. package/dist/{types → src}/sync/common/decoration/factory.d.ts.map +1 -1
  69. package/dist/src/sync/common/decoration/factory.js +49 -0
  70. package/dist/src/sync/common/decoration/factory.js.map +1 -0
  71. package/dist/{types → src}/sync/common/decoration/flex.d.ts +1 -3
  72. package/dist/{types → src}/sync/common/decoration/flex.d.ts.map +1 -1
  73. package/dist/src/sync/common/decoration/flex.js +9 -0
  74. package/dist/src/sync/common/decoration/flex.js.map +1 -0
  75. package/dist/{types → src}/sync/common/decoration/index.d.ts +0 -0
  76. package/dist/{types → src}/sync/common/decoration/index.d.ts.map +0 -0
  77. package/dist/src/sync/common/decoration/index.js +16 -0
  78. package/dist/src/sync/common/decoration/index.js.map +1 -0
  79. package/dist/{types → src}/sync/common/flexUtils.d.ts +2 -3
  80. package/dist/src/sync/common/flexUtils.d.ts.map +1 -0
  81. package/dist/src/sync/common/flexUtils.js +107 -0
  82. package/dist/src/sync/common/flexUtils.js.map +1 -0
  83. package/dist/{types → src}/sync/common/generate/index.d.ts +0 -0
  84. package/dist/{types → src}/sync/common/generate/index.d.ts.map +0 -0
  85. package/dist/src/sync/common/generate/index.js +15 -0
  86. package/dist/src/sync/common/generate/index.js.map +1 -0
  87. package/dist/{types → src}/sync/common/generate/objectPage.d.ts +1 -2
  88. package/dist/src/sync/common/generate/objectPage.d.ts.map +1 -0
  89. package/dist/src/sync/common/generate/objectPage.js +357 -0
  90. package/dist/src/sync/common/generate/objectPage.js.map +1 -0
  91. package/dist/{types → src}/sync/common/generate/utils.d.ts +2 -1
  92. package/dist/src/sync/common/generate/utils.d.ts.map +1 -0
  93. package/dist/src/sync/common/generate/utils.js +383 -0
  94. package/dist/src/sync/common/generate/utils.js.map +1 -0
  95. package/dist/src/sync/common/i18n.json +21 -0
  96. package/dist/{types → src}/sync/common/import/utils.d.ts +0 -0
  97. package/dist/{types → src}/sync/common/import/utils.d.ts.map +0 -0
  98. package/dist/src/sync/common/import/utils.js +93 -0
  99. package/dist/src/sync/common/import/utils.js.map +1 -0
  100. package/dist/{types → src}/sync/common/importProject.d.ts +0 -0
  101. package/dist/{types → src}/sync/common/importProject.d.ts.map +1 -1
  102. package/dist/src/sync/common/importProject.js +252 -0
  103. package/dist/src/sync/common/importProject.js.map +1 -0
  104. package/dist/{types → src}/sync/common/index.d.ts +0 -0
  105. package/dist/{types → src}/sync/common/index.d.ts.map +0 -0
  106. package/dist/src/sync/common/index.js +23 -0
  107. package/dist/src/sync/common/index.js.map +1 -0
  108. package/dist/{types → src}/sync/common/types.d.ts +6 -56
  109. package/dist/src/sync/common/types.d.ts.map +1 -0
  110. package/dist/src/sync/common/types.js +166 -0
  111. package/dist/src/sync/common/types.js.map +1 -0
  112. package/dist/{types → src}/sync/common/utils.d.ts +10 -11
  113. package/dist/src/sync/common/utils.d.ts.map +1 -0
  114. package/dist/src/sync/common/utils.js +1067 -0
  115. package/dist/src/sync/common/utils.js.map +1 -0
  116. package/dist/{types → src}/sync/i18n.d.ts +0 -0
  117. package/dist/{types → src}/sync/i18n.d.ts.map +0 -0
  118. package/dist/src/sync/i18n.js +28 -0
  119. package/dist/src/sync/i18n.js.map +1 -0
  120. package/dist/{types → src}/sync/v2/application.d.ts +6 -6
  121. package/dist/src/sync/v2/application.d.ts.map +1 -0
  122. package/dist/src/sync/v2/application.js +169 -0
  123. package/dist/src/sync/v2/application.js.map +1 -0
  124. package/dist/src/sync/v2/export/controls/Action.d.ts +29 -0
  125. package/dist/src/sync/v2/export/controls/Action.d.ts.map +1 -0
  126. package/dist/src/sync/v2/export/controls/Action.js +129 -0
  127. package/dist/src/sync/v2/export/controls/Action.js.map +1 -0
  128. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.d.ts +9 -0
  129. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.d.ts.map +1 -0
  130. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js +64 -0
  131. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js.map +1 -0
  132. package/dist/src/sync/v2/export/controls/AnalyticalListPageKPI.d.ts +10 -0
  133. package/dist/{types → src}/sync/v2/export/controls/AnalyticalListPageKPI.d.ts.map +1 -1
  134. package/dist/src/sync/v2/export/controls/AnalyticalListPageKPI.js +57 -0
  135. package/dist/src/sync/v2/export/controls/AnalyticalListPageKPI.js.map +1 -0
  136. package/dist/{types → src}/sync/v2/export/controls/Card.d.ts +30 -30
  137. package/dist/src/sync/v2/export/controls/Card.d.ts.map +1 -0
  138. package/dist/src/sync/v2/export/controls/Card.js +656 -0
  139. package/dist/src/sync/v2/export/controls/Card.js.map +1 -0
  140. package/dist/src/sync/v2/export/controls/Field.d.ts +5 -0
  141. package/dist/src/sync/v2/export/controls/Field.d.ts.map +1 -0
  142. package/dist/src/sync/v2/export/controls/Field.js +42 -0
  143. package/dist/src/sync/v2/export/controls/Field.js.map +1 -0
  144. package/dist/{types → src}/sync/v2/export/controls/FilterBar.d.ts +3 -3
  145. package/dist/src/sync/v2/export/controls/FilterBar.d.ts.map +1 -0
  146. package/dist/src/sync/v2/export/controls/FilterBar.js +108 -0
  147. package/dist/src/sync/v2/export/controls/FilterBar.js.map +1 -0
  148. package/dist/src/sync/v2/export/controls/FormAction.d.ts +16 -0
  149. package/dist/src/sync/v2/export/controls/FormAction.d.ts.map +1 -0
  150. package/dist/src/sync/v2/export/controls/FormAction.js +129 -0
  151. package/dist/src/sync/v2/export/controls/FormAction.js.map +1 -0
  152. package/dist/{types → src}/sync/v2/export/controls/Fragment.d.ts +5 -5
  153. package/dist/src/sync/v2/export/controls/Fragment.d.ts.map +1 -0
  154. package/dist/src/sync/v2/export/controls/Fragment.js +580 -0
  155. package/dist/src/sync/v2/export/controls/Fragment.js.map +1 -0
  156. package/dist/src/sync/v2/export/controls/ObjectPageCustomSection.d.ts +18 -0
  157. package/dist/src/sync/v2/export/controls/ObjectPageCustomSection.d.ts.map +1 -0
  158. package/dist/src/sync/v2/export/controls/ObjectPageCustomSection.js +111 -0
  159. package/dist/src/sync/v2/export/controls/ObjectPageCustomSection.js.map +1 -0
  160. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.d.ts +9 -0
  161. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.d.ts.map +1 -0
  162. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js +63 -0
  163. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js.map +1 -0
  164. package/dist/src/sync/v2/export/controls/ObjectPageHeader.d.ts +9 -0
  165. package/dist/src/sync/v2/export/controls/ObjectPageHeader.d.ts.map +1 -0
  166. package/dist/src/sync/v2/export/controls/ObjectPageHeader.js +62 -0
  167. package/dist/src/sync/v2/export/controls/ObjectPageHeader.js.map +1 -0
  168. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts +9 -0
  169. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.d.ts.map +1 -0
  170. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js +63 -0
  171. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js.map +1 -0
  172. package/dist/src/sync/v2/export/controls/ObjectPageLayout.d.ts +8 -0
  173. package/dist/src/sync/v2/export/controls/ObjectPageLayout.d.ts.map +1 -0
  174. package/dist/src/sync/v2/export/controls/ObjectPageLayout.js +60 -0
  175. package/dist/src/sync/v2/export/controls/ObjectPageLayout.js.map +1 -0
  176. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +45 -0
  177. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.d.ts.map +1 -0
  178. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +200 -0
  179. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +1 -0
  180. package/dist/src/sync/v2/export/controls/ObjectPageTable.d.ts +41 -0
  181. package/dist/src/sync/v2/export/controls/ObjectPageTable.d.ts.map +1 -0
  182. package/dist/src/sync/v2/export/controls/ObjectPageTable.js +279 -0
  183. package/dist/src/sync/v2/export/controls/ObjectPageTable.js.map +1 -0
  184. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.d.ts +9 -0
  185. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.d.ts.map +1 -0
  186. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js +62 -0
  187. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js.map +1 -0
  188. package/dist/{types → src}/sync/v2/export/controls/Table.d.ts +22 -23
  189. package/dist/src/sync/v2/export/controls/Table.d.ts.map +1 -0
  190. package/dist/src/sync/v2/export/controls/Table.js +593 -0
  191. package/dist/src/sync/v2/export/controls/Table.js.map +1 -0
  192. package/dist/src/sync/v2/export/controls/TableColumn.d.ts +38 -0
  193. package/dist/src/sync/v2/export/controls/TableColumn.d.ts.map +1 -0
  194. package/dist/src/sync/v2/export/controls/TableColumn.js +173 -0
  195. package/dist/src/sync/v2/export/controls/TableColumn.js.map +1 -0
  196. package/dist/src/sync/v2/export/controls/ToolBar.d.ts +5 -0
  197. package/dist/src/sync/v2/export/controls/ToolBar.d.ts.map +1 -0
  198. package/dist/src/sync/v2/export/controls/ToolBar.js +7 -0
  199. package/dist/src/sync/v2/export/controls/ToolBar.js.map +1 -0
  200. package/dist/{types → src}/sync/v2/export/controls/index.d.ts +0 -0
  201. package/dist/{types → src}/sync/v2/export/controls/index.d.ts.map +0 -0
  202. package/dist/src/sync/v2/export/controls/index.js +32 -0
  203. package/dist/src/sync/v2/export/controls/index.js.map +1 -0
  204. package/dist/{types → src}/sync/v2/export/export.d.ts +1 -1
  205. package/dist/{types → src}/sync/v2/export/export.d.ts.map +1 -1
  206. package/dist/src/sync/v2/export/export.js +678 -0
  207. package/dist/src/sync/v2/export/export.js.map +1 -0
  208. package/dist/{types → src}/sync/v2/export/exportPage.d.ts +2 -1
  209. package/dist/src/sync/v2/export/exportPage.d.ts.map +1 -0
  210. package/dist/src/sync/v2/export/exportPage.js +304 -0
  211. package/dist/src/sync/v2/export/exportPage.js.map +1 -0
  212. package/dist/{types → src}/sync/v2/export/factory.d.ts +0 -0
  213. package/dist/{types → src}/sync/v2/export/factory.d.ts.map +1 -1
  214. package/dist/src/sync/v2/export/factory.js +68 -0
  215. package/dist/src/sync/v2/export/factory.js.map +1 -0
  216. package/dist/{types → src}/sync/v2/export/manifest.d.ts +3 -3
  217. package/dist/src/sync/v2/export/manifest.d.ts.map +1 -0
  218. package/dist/src/sync/v2/export/manifest.js +173 -0
  219. package/dist/src/sync/v2/export/manifest.js.map +1 -0
  220. package/dist/src/sync/v2/export/pages/AnalyticalListPage.d.ts +13 -0
  221. package/dist/src/sync/v2/export/pages/AnalyticalListPage.d.ts.map +1 -0
  222. package/dist/src/sync/v2/export/pages/AnalyticalListPage.js +43 -0
  223. package/dist/src/sync/v2/export/pages/AnalyticalListPage.js.map +1 -0
  224. package/dist/src/sync/v2/export/pages/ListReport.d.ts +11 -0
  225. package/dist/src/sync/v2/export/pages/ListReport.d.ts.map +1 -0
  226. package/dist/src/sync/v2/export/pages/ListReport.js +40 -0
  227. package/dist/src/sync/v2/export/pages/ListReport.js.map +1 -0
  228. package/dist/src/sync/v2/export/pages/ObjectPage.d.ts +15 -0
  229. package/dist/src/sync/v2/export/pages/ObjectPage.d.ts.map +1 -0
  230. package/dist/src/sync/v2/export/pages/ObjectPage.js +75 -0
  231. package/dist/src/sync/v2/export/pages/ObjectPage.js.map +1 -0
  232. package/dist/{types → src}/sync/v2/export/pages/OverviewPage.d.ts +3 -3
  233. package/dist/src/sync/v2/export/pages/OverviewPage.d.ts.map +1 -0
  234. package/dist/src/sync/v2/export/pages/OverviewPage.js +119 -0
  235. package/dist/src/sync/v2/export/pages/OverviewPage.js.map +1 -0
  236. package/dist/{types → src}/sync/v2/export/pages/index.d.ts +0 -0
  237. package/dist/{types → src}/sync/v2/export/pages/index.d.ts.map +0 -0
  238. package/dist/src/sync/v2/export/pages/index.js +17 -0
  239. package/dist/src/sync/v2/export/pages/index.js.map +1 -0
  240. package/dist/{types → src}/sync/v2/export/view-controller-generator.d.ts +4 -4
  241. package/dist/src/sync/v2/export/view-controller-generator.d.ts.map +1 -0
  242. package/dist/src/sync/v2/export/view-controller-generator.js +150 -0
  243. package/dist/src/sync/v2/export/view-controller-generator.js.map +1 -0
  244. package/dist/{types → src}/sync/v2/generate/analyticalListReport.d.ts +1 -1
  245. package/dist/src/sync/v2/generate/analyticalListReport.d.ts.map +1 -0
  246. package/dist/src/sync/v2/generate/analyticalListReport.js +84 -0
  247. package/dist/src/sync/v2/generate/analyticalListReport.js.map +1 -0
  248. package/dist/{types → src}/sync/v2/generate/generate.d.ts +1 -1
  249. package/dist/src/sync/v2/generate/generate.d.ts.map +1 -0
  250. package/dist/src/sync/v2/generate/generate.js +100 -0
  251. package/dist/src/sync/v2/generate/generate.js.map +1 -0
  252. package/dist/{types → src}/sync/v2/generate/index.d.ts +0 -0
  253. package/dist/{types → src}/sync/v2/generate/index.d.ts.map +0 -0
  254. package/dist/src/sync/v2/generate/index.js +15 -0
  255. package/dist/src/sync/v2/generate/index.js.map +1 -0
  256. package/dist/{types → src}/sync/v2/generate/listReport.d.ts +2 -2
  257. package/dist/src/sync/v2/generate/listReport.d.ts.map +1 -0
  258. package/dist/src/sync/v2/generate/listReport.js +113 -0
  259. package/dist/src/sync/v2/generate/listReport.js.map +1 -0
  260. package/dist/{types → src}/sync/v2/generate/objectPage.d.ts +1 -1
  261. package/dist/src/sync/v2/generate/objectPage.d.ts.map +1 -0
  262. package/dist/src/sync/v2/generate/objectPage.js +539 -0
  263. package/dist/src/sync/v2/generate/objectPage.js.map +1 -0
  264. package/dist/{types → src}/sync/v2/generate/overviewPage.d.ts +1 -1
  265. package/dist/{types → src}/sync/v2/generate/overviewPage.d.ts.map +1 -1
  266. package/dist/src/sync/v2/generate/overviewPage.js +71 -0
  267. package/dist/src/sync/v2/generate/overviewPage.js.map +1 -0
  268. package/dist/{types → src}/sync/v2/generate/utils.d.ts +3 -4
  269. package/dist/src/sync/v2/generate/utils.d.ts.map +1 -0
  270. package/dist/src/sync/v2/generate/utils.js +536 -0
  271. package/dist/src/sync/v2/generate/utils.js.map +1 -0
  272. package/dist/{types → src}/sync/v2/import/app/appProvider.d.ts +4 -4
  273. package/dist/src/sync/v2/import/app/appProvider.d.ts.map +1 -0
  274. package/dist/src/sync/v2/import/app/appProvider.js +142 -0
  275. package/dist/src/sync/v2/import/app/appProvider.js.map +1 -0
  276. package/dist/{types → src}/sync/v2/import/app/ovpProvider.d.ts +1 -1
  277. package/dist/src/sync/v2/import/app/ovpProvider.d.ts.map +1 -0
  278. package/dist/src/sync/v2/import/app/ovpProvider.js +33 -0
  279. package/dist/src/sync/v2/import/app/ovpProvider.js.map +1 -0
  280. package/dist/{types → src}/sync/v2/import/common/index.d.ts +6 -9
  281. package/dist/src/sync/v2/import/common/index.d.ts.map +1 -0
  282. package/dist/src/sync/v2/import/common/index.js +400 -0
  283. package/dist/src/sync/v2/import/common/index.js.map +1 -0
  284. package/dist/{types → src}/sync/v2/import/controls/table.d.ts +2 -2
  285. package/dist/src/sync/v2/import/controls/table.d.ts.map +1 -0
  286. package/dist/src/sync/v2/import/controls/table.js +34 -0
  287. package/dist/src/sync/v2/import/controls/table.js.map +1 -0
  288. package/dist/{types → src}/sync/v2/import/getPageType.d.ts +0 -0
  289. package/dist/{types → src}/sync/v2/import/getPageType.d.ts.map +0 -0
  290. package/dist/src/sync/v2/import/getPageType.js +1 -0
  291. package/dist/src/sync/v2/import/getPageType.js.map +1 -0
  292. package/dist/{types → src}/sync/v2/import/index.d.ts +0 -0
  293. package/dist/{types → src}/sync/v2/import/index.d.ts.map +0 -0
  294. package/dist/src/sync/v2/import/index.js +18 -0
  295. package/dist/src/sync/v2/import/index.js.map +1 -0
  296. package/dist/{types → src}/sync/v2/import/pages/analyticalListPage.d.ts +2 -2
  297. package/dist/src/sync/v2/import/pages/analyticalListPage.d.ts.map +1 -0
  298. package/dist/src/sync/v2/import/pages/analyticalListPage.js +120 -0
  299. package/dist/src/sync/v2/import/pages/analyticalListPage.js.map +1 -0
  300. package/dist/{types → src}/sync/v2/import/pages/listReport.d.ts +2 -2
  301. package/dist/src/sync/v2/import/pages/listReport.d.ts.map +1 -0
  302. package/dist/src/sync/v2/import/pages/listReport.js +144 -0
  303. package/dist/src/sync/v2/import/pages/listReport.js.map +1 -0
  304. package/dist/{types → src}/sync/v2/import/pages/objectPage.d.ts +3 -2
  305. package/dist/src/sync/v2/import/pages/objectPage.d.ts.map +1 -0
  306. package/dist/src/sync/v2/import/pages/objectPage.js +741 -0
  307. package/dist/src/sync/v2/import/pages/objectPage.js.map +1 -0
  308. package/dist/{types → src}/sync/v2/import/pages/overviewPage.d.ts +2 -3
  309. package/dist/src/sync/v2/import/pages/overviewPage.d.ts.map +1 -0
  310. package/dist/src/sync/v2/import/pages/overviewPage.js +105 -0
  311. package/dist/src/sync/v2/import/pages/overviewPage.js.map +1 -0
  312. package/dist/{types → src}/sync/v2/import/utils.d.ts +5 -5
  313. package/dist/src/sync/v2/import/utils.d.ts.map +1 -0
  314. package/dist/src/sync/v2/import/utils.js +169 -0
  315. package/dist/src/sync/v2/import/utils.js.map +1 -0
  316. package/dist/{types → src}/sync/v2/types.d.ts +5 -6
  317. package/dist/src/sync/v2/types.d.ts.map +1 -0
  318. package/dist/src/sync/v2/types.js +37 -0
  319. package/dist/src/sync/v2/types.js.map +1 -0
  320. package/dist/{types → src}/sync/v4/utils/StableIdHelper.d.ts +1 -1
  321. package/dist/{types → src}/sync/v4/utils/StableIdHelper.d.ts.map +1 -1
  322. package/dist/src/sync/v4/utils/StableIdHelper.js +145 -0
  323. package/dist/src/sync/v4/utils/StableIdHelper.js.map +1 -0
  324. package/package.json +14 -14
  325. package/CHANGELOG.md +0 -1079
  326. package/dist/types/apiTypes.d.ts.map +0 -1
  327. package/dist/types/index.d.ts.map +0 -1
  328. package/dist/types/project.d.ts.map +0 -1
  329. package/dist/types/specification/common/Application.d.ts +0 -16
  330. package/dist/types/specification/common/Application.d.ts.map +0 -1
  331. package/dist/types/specification/common/index.d.ts +0 -6
  332. package/dist/types/specification/common/index.d.ts.map +0 -1
  333. package/dist/types/specification/common/page.d.ts +0 -42
  334. package/dist/types/specification/common/page.d.ts.map +0 -1
  335. package/dist/types/specification/common/types.d.ts +0 -21
  336. package/dist/types/specification/common/types.d.ts.map +0 -1
  337. package/dist/types/specification/common/webapp/manifest/Manifest.d.ts +0 -49
  338. package/dist/types/specification/common/webapp/manifest/Manifest.d.ts.map +0 -1
  339. package/dist/types/specification/common/webapp/manifest/index.d.ts +0 -4
  340. package/dist/types/specification/common/webapp/manifest/index.d.ts.map +0 -1
  341. package/dist/types/specification/common/webapp/manifest/sapOvp.d.ts +0 -376
  342. package/dist/types/specification/common/webapp/manifest/sapOvp.d.ts.map +0 -1
  343. package/dist/types/specification/common/webapp/manifest/sapUi5.d.ts +0 -34
  344. package/dist/types/specification/common/webapp/manifest/sapUi5.d.ts.map +0 -1
  345. package/dist/types/specification/schemaAccess.d.ts.map +0 -1
  346. package/dist/types/specification/v2/ApplicationV2.d.ts +0 -31
  347. package/dist/types/specification/v2/ApplicationV2.d.ts.map +0 -1
  348. package/dist/types/specification/v2/controls/Action.d.ts +0 -83
  349. package/dist/types/specification/v2/controls/Action.d.ts.map +0 -1
  350. package/dist/types/specification/v2/controls/AnalyticalListPageChart.d.ts +0 -55
  351. package/dist/types/specification/v2/controls/AnalyticalListPageChart.d.ts.map +0 -1
  352. package/dist/types/specification/v2/controls/AnalyticalListPageKPI.d.ts +0 -31
  353. package/dist/types/specification/v2/controls/AnalyticalListPageKPI.d.ts.map +0 -1
  354. package/dist/types/specification/v2/controls/Card.d.ts +0 -626
  355. package/dist/types/specification/v2/controls/Card.d.ts.map +0 -1
  356. package/dist/types/specification/v2/controls/Facets.d.ts +0 -18
  357. package/dist/types/specification/v2/controls/Facets.d.ts.map +0 -1
  358. package/dist/types/specification/v2/controls/Field.d.ts +0 -11
  359. package/dist/types/specification/v2/controls/Field.d.ts.map +0 -1
  360. package/dist/types/specification/v2/controls/FilterBar.d.ts +0 -81
  361. package/dist/types/specification/v2/controls/FilterBar.d.ts.map +0 -1
  362. package/dist/types/specification/v2/controls/Footer.d.ts +0 -21
  363. package/dist/types/specification/v2/controls/Footer.d.ts.map +0 -1
  364. package/dist/types/specification/v2/controls/ObjectPageChart.d.ts +0 -17
  365. package/dist/types/specification/v2/controls/ObjectPageChart.d.ts.map +0 -1
  366. package/dist/types/specification/v2/controls/ObjectPageForm.d.ts +0 -16
  367. package/dist/types/specification/v2/controls/ObjectPageForm.d.ts.map +0 -1
  368. package/dist/types/specification/v2/controls/ObjectPageHeader.d.ts +0 -35
  369. package/dist/types/specification/v2/controls/ObjectPageHeader.d.ts.map +0 -1
  370. package/dist/types/specification/v2/controls/ObjectPageLayout.d.ts +0 -23
  371. package/dist/types/specification/v2/controls/ObjectPageLayout.d.ts.map +0 -1
  372. package/dist/types/specification/v2/controls/ObjectPageSection.d.ts +0 -121
  373. package/dist/types/specification/v2/controls/ObjectPageSection.d.ts.map +0 -1
  374. package/dist/types/specification/v2/controls/ObjectPageTable.d.ts +0 -131
  375. package/dist/types/specification/v2/controls/ObjectPageTable.d.ts.map +0 -1
  376. package/dist/types/specification/v2/controls/ObjectPageToolBar.d.ts +0 -16
  377. package/dist/types/specification/v2/controls/ObjectPageToolBar.d.ts.map +0 -1
  378. package/dist/types/specification/v2/controls/Table.d.ts +0 -402
  379. package/dist/types/specification/v2/controls/Table.d.ts.map +0 -1
  380. package/dist/types/specification/v2/controls/ToolBar.d.ts +0 -9
  381. package/dist/types/specification/v2/controls/ToolBar.d.ts.map +0 -1
  382. package/dist/types/specification/v2/controls/index.d.ts +0 -18
  383. package/dist/types/specification/v2/controls/index.d.ts.map +0 -1
  384. package/dist/types/specification/v2/index.d.ts +0 -6
  385. package/dist/types/specification/v2/index.d.ts.map +0 -1
  386. package/dist/types/specification/v2/page.d.ts +0 -8
  387. package/dist/types/specification/v2/page.d.ts.map +0 -1
  388. package/dist/types/specification/v2/pages/AnalyticalListPageConfig.d.ts +0 -22
  389. package/dist/types/specification/v2/pages/AnalyticalListPageConfig.d.ts.map +0 -1
  390. package/dist/types/specification/v2/pages/ListReportConfig.d.ts +0 -13
  391. package/dist/types/specification/v2/pages/ListReportConfig.d.ts.map +0 -1
  392. package/dist/types/specification/v2/pages/ObjectPageConfig.d.ts +0 -25
  393. package/dist/types/specification/v2/pages/ObjectPageConfig.d.ts.map +0 -1
  394. package/dist/types/specification/v2/pages/OverviewPageConfig.d.ts +0 -83
  395. package/dist/types/specification/v2/pages/OverviewPageConfig.d.ts.map +0 -1
  396. package/dist/types/specification/v2/pages/index.d.ts +0 -5
  397. package/dist/types/specification/v2/pages/index.d.ts.map +0 -1
  398. package/dist/types/specification/v2/webapp/index.d.ts +0 -2
  399. package/dist/types/specification/v2/webapp/index.d.ts.map +0 -1
  400. package/dist/types/specification/v2/webapp/manifest/index.d.ts +0 -3
  401. package/dist/types/specification/v2/webapp/manifest/index.d.ts.map +0 -1
  402. package/dist/types/specification/v2/webapp/manifest/sapUi.d.ts +0 -11
  403. package/dist/types/specification/v2/webapp/manifest/sapUi.d.ts.map +0 -1
  404. package/dist/types/specification/v2/webapp/manifest/sapUi5.d.ts +0 -99
  405. package/dist/types/specification/v2/webapp/manifest/sapUi5.d.ts.map +0 -1
  406. package/dist/types/specification/v2/webapp/manifest/sapUiPageV2.d.ts +0 -32
  407. package/dist/types/specification/v2/webapp/manifest/sapUiPageV2.d.ts.map +0 -1
  408. package/dist/types/sync/common/appProvider.d.ts.map +0 -1
  409. package/dist/types/sync/common/decoration/control.d.ts.map +0 -1
  410. package/dist/types/sync/common/decoration/decorators.d.ts.map +0 -1
  411. package/dist/types/sync/common/flexUtils.d.ts.map +0 -1
  412. package/dist/types/sync/common/generate/objectPage.d.ts.map +0 -1
  413. package/dist/types/sync/common/generate/utils.d.ts.map +0 -1
  414. package/dist/types/sync/common/types.d.ts.map +0 -1
  415. package/dist/types/sync/common/utils.d.ts.map +0 -1
  416. package/dist/types/sync/v2/application.d.ts.map +0 -1
  417. package/dist/types/sync/v2/export/controls/Action.d.ts +0 -29
  418. package/dist/types/sync/v2/export/controls/Action.d.ts.map +0 -1
  419. package/dist/types/sync/v2/export/controls/AnalyticalListPageChart.d.ts +0 -9
  420. package/dist/types/sync/v2/export/controls/AnalyticalListPageChart.d.ts.map +0 -1
  421. package/dist/types/sync/v2/export/controls/AnalyticalListPageKPI.d.ts +0 -10
  422. package/dist/types/sync/v2/export/controls/Card.d.ts.map +0 -1
  423. package/dist/types/sync/v2/export/controls/Field.d.ts +0 -5
  424. package/dist/types/sync/v2/export/controls/Field.d.ts.map +0 -1
  425. package/dist/types/sync/v2/export/controls/FilterBar.d.ts.map +0 -1
  426. package/dist/types/sync/v2/export/controls/FormAction.d.ts +0 -16
  427. package/dist/types/sync/v2/export/controls/FormAction.d.ts.map +0 -1
  428. package/dist/types/sync/v2/export/controls/Fragment.d.ts.map +0 -1
  429. package/dist/types/sync/v2/export/controls/ObjectPageCustomSection.d.ts +0 -20
  430. package/dist/types/sync/v2/export/controls/ObjectPageCustomSection.d.ts.map +0 -1
  431. package/dist/types/sync/v2/export/controls/ObjectPageFooterAction.d.ts +0 -9
  432. package/dist/types/sync/v2/export/controls/ObjectPageFooterAction.d.ts.map +0 -1
  433. package/dist/types/sync/v2/export/controls/ObjectPageHeader.d.ts +0 -9
  434. package/dist/types/sync/v2/export/controls/ObjectPageHeader.d.ts.map +0 -1
  435. package/dist/types/sync/v2/export/controls/ObjectPageHeaderAction.d.ts +0 -9
  436. package/dist/types/sync/v2/export/controls/ObjectPageHeaderAction.d.ts.map +0 -1
  437. package/dist/types/sync/v2/export/controls/ObjectPageLayout.d.ts +0 -8
  438. package/dist/types/sync/v2/export/controls/ObjectPageLayout.d.ts.map +0 -1
  439. package/dist/types/sync/v2/export/controls/ObjectPageSectionsV2.d.ts +0 -45
  440. package/dist/types/sync/v2/export/controls/ObjectPageSectionsV2.d.ts.map +0 -1
  441. package/dist/types/sync/v2/export/controls/ObjectPageTable.d.ts +0 -43
  442. package/dist/types/sync/v2/export/controls/ObjectPageTable.d.ts.map +0 -1
  443. package/dist/types/sync/v2/export/controls/ObjectPageToolBarAction.d.ts +0 -9
  444. package/dist/types/sync/v2/export/controls/ObjectPageToolBarAction.d.ts.map +0 -1
  445. package/dist/types/sync/v2/export/controls/Table.d.ts.map +0 -1
  446. package/dist/types/sync/v2/export/controls/TableColumn.d.ts +0 -39
  447. package/dist/types/sync/v2/export/controls/TableColumn.d.ts.map +0 -1
  448. package/dist/types/sync/v2/export/controls/ToolBar.d.ts +0 -5
  449. package/dist/types/sync/v2/export/controls/ToolBar.d.ts.map +0 -1
  450. package/dist/types/sync/v2/export/exportPage.d.ts.map +0 -1
  451. package/dist/types/sync/v2/export/manifest.d.ts.map +0 -1
  452. package/dist/types/sync/v2/export/pages/AnalyticalListPage.d.ts +0 -15
  453. package/dist/types/sync/v2/export/pages/AnalyticalListPage.d.ts.map +0 -1
  454. package/dist/types/sync/v2/export/pages/ListReport.d.ts +0 -11
  455. package/dist/types/sync/v2/export/pages/ListReport.d.ts.map +0 -1
  456. package/dist/types/sync/v2/export/pages/ObjectPage.d.ts +0 -16
  457. package/dist/types/sync/v2/export/pages/ObjectPage.d.ts.map +0 -1
  458. package/dist/types/sync/v2/export/pages/OverviewPage.d.ts.map +0 -1
  459. package/dist/types/sync/v2/export/view-controller-generator.d.ts.map +0 -1
  460. package/dist/types/sync/v2/generate/analyticalListReport.d.ts.map +0 -1
  461. package/dist/types/sync/v2/generate/generate.d.ts.map +0 -1
  462. package/dist/types/sync/v2/generate/listReport.d.ts.map +0 -1
  463. package/dist/types/sync/v2/generate/objectPage.d.ts.map +0 -1
  464. package/dist/types/sync/v2/generate/utils.d.ts.map +0 -1
  465. package/dist/types/sync/v2/import/app/appProvider.d.ts.map +0 -1
  466. package/dist/types/sync/v2/import/app/ovpProvider.d.ts.map +0 -1
  467. package/dist/types/sync/v2/import/common/index.d.ts.map +0 -1
  468. package/dist/types/sync/v2/import/controls/table.d.ts.map +0 -1
  469. package/dist/types/sync/v2/import/pages/analyticalListPage.d.ts.map +0 -1
  470. package/dist/types/sync/v2/import/pages/listReport.d.ts.map +0 -1
  471. package/dist/types/sync/v2/import/pages/objectPage.d.ts.map +0 -1
  472. package/dist/types/sync/v2/import/pages/overviewPage.d.ts.map +0 -1
  473. package/dist/types/sync/v2/import/utils.d.ts.map +0 -1
  474. package/dist/types/sync/v2/types.d.ts.map +0 -1
  475. package/dist/types/v2.d.ts +0 -3
  476. package/dist/types/v2.d.ts.map +0 -1
@@ -0,0 +1,539 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateObjectPageSchemaV2 = void 0;
7
+ const ux_specification_types_1 = require("@sap/ux-specification-types");
8
+ const common_1 = require("../../common");
9
+ const utils_1 = require("./utils");
10
+ const import_1 = require("../import");
11
+ const extensionLogger_1 = require("../../../extensionLogger");
12
+ const i18next_1 = __importDefault(require("i18next"));
13
+ const i18n_1 = require("../../../i18n/i18n");
14
+ const types_1 = require("../types");
15
+ /**
16
+ * Adds flexChange properties for sub(sections)
17
+ * @param appSchema - app schema in general
18
+ * @param schemaSection - current section
19
+ * @param property - property that will be enhanced
20
+ * @param sectionType - type of section
21
+ */
22
+ function addFlexChangeForSection(appSchema, schemaSection, property, sectionType) {
23
+ schemaSection.properties[property][common_1.SchemaTag.artifactType] = ux_specification_types_1.ArtifactType.FlexChange;
24
+ let controlType;
25
+ switch (sectionType) {
26
+ case types_1.SectionTypeV2.Section:
27
+ case types_1.SectionTypeV2.SectionForm:
28
+ case types_1.SectionTypeV2.SectionChart:
29
+ case types_1.SectionTypeV2.SectionTable:
30
+ controlType = ux_specification_types_1.ControlType.Section;
31
+ break;
32
+ case types_1.SectionTypeV2.SubSection:
33
+ controlType = ux_specification_types_1.ControlType.SubSection;
34
+ break;
35
+ case types_1.SectionTypeV2.SubSectionForm:
36
+ controlType = ux_specification_types_1.ControlType.Group;
37
+ break;
38
+ case types_1.SectionTypeV2.SubSectionChart:
39
+ controlType = ux_specification_types_1.ControlType.SmartChart;
40
+ break;
41
+ case types_1.SectionTypeV2.SubSectionTable:
42
+ controlType = ux_specification_types_1.ControlType.SmartTable;
43
+ break;
44
+ }
45
+ if (!controlType) {
46
+ return;
47
+ }
48
+ common_1.addPatternForBindingChangeOfEnumOP(appSchema, schemaSection, property);
49
+ schemaSection.properties[property][common_1.SchemaTag.controlType] = controlType;
50
+ }
51
+ /**
52
+ * Callback for adding a single action to headerActions of V2
53
+ * @param {EntityType} entityType - current entity type
54
+ * @param {object} appSchema Schema of the app
55
+ * @param actionAnnotation - annotation as present in AVT ConvertedMetadata
56
+ * @param headerActions - list of header actions, to be enhanced
57
+ */
58
+ function addHeaderActionCallBackV2(entityType, appSchema, actionAnnotation, headerActions, oDataServiceAVT) {
59
+ return (item, index) => {
60
+ if (!item['Determining'] && item.$Type === "com.sap.vocabularies.UI.v1.DataFieldForAction" /* DataFieldForAction */) {
61
+ const action = common_1.replaceAlias(item.Action, oDataServiceAVT);
62
+ const { actionName, actionId } = common_1.getActionNameAndId(action, entityType);
63
+ const description = item.Label || actionName;
64
+ const actionDefinitionKey = `HeaderAction<${common_1.prepareRef(actionId)}>`;
65
+ appSchema.definitions[actionDefinitionKey] = JSON.parse(JSON.stringify(appSchema.definitions['HeaderAction']));
66
+ const convertedIdentification = actionAnnotation.fullyQualifiedName.replace(`@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`, `/@${"com.sap.vocabularies.UI.v1.Identification" /* Identification */}`);
67
+ appSchema.definitions[actionDefinitionKey][common_1.SchemaTag.annotationPath] = `/${convertedIdentification}/${index}`;
68
+ appSchema.definitions[actionDefinitionKey]['description'] = description;
69
+ headerActions.properties[actionId] = {
70
+ $ref: `${common_1.DEFINITION_LINK_PREFIX}${actionDefinitionKey}`
71
+ };
72
+ }
73
+ };
74
+ }
75
+ /**
76
+ * Method ensures that definitions for custom columns are created for passed entitySet.
77
+ * @param {object} appSchema App schema in general
78
+ * @param {object} manifest manifest.json of the app
79
+ * @param {string} entitySetName Entity set name.
80
+ * @param {string} entityTypeName Entity type name.
81
+ * @param {ConvertedMetadata} oDataServiceAVT Complete service information, as returned by annotation vocabularies tool
82
+ * @param {FacetConfig} facet information
83
+ * @param {string} facetKey - key of the facet, as listed in FacetConfigs
84
+ * @param {FileData[]} [fragments] Array with XML fragments.
85
+ * @return {string} Name of custom columns definition.
86
+ */
87
+ function ensureCustomColumnDefinitionExists(appSchema, manifest, entitySetName, entityTypeName, oDataServiceAVT, facet, facetKey, fragments) {
88
+ let suffix, customColumnsDefinitionName;
89
+ if (facet.ID && facet.Label) {
90
+ suffix = facet.ID + facet.Label.replace(/\s+/g, '');
91
+ }
92
+ else if (facet.ID) {
93
+ suffix = facet.ID;
94
+ }
95
+ else if (facet.Label) {
96
+ suffix = facet.Label.replace(/\s+/g, '');
97
+ }
98
+ if (suffix) {
99
+ customColumnsDefinitionName = `${common_1.DefinitionName.CustomColumns}<${entitySetName}><${facetKey}><${suffix}>`;
100
+ }
101
+ else {
102
+ customColumnsDefinitionName = `${common_1.DefinitionName.CustomColumns}<${entitySetName}><${facetKey}>`;
103
+ }
104
+ if (appSchema.definitions[customColumnsDefinitionName]) {
105
+ // Definition is already created - we do not need to create it again
106
+ return customColumnsDefinitionName;
107
+ }
108
+ // Create type specific 'TableCustomColumn' definition - use entity set as type.
109
+ const customColumnDefinitionName = `${common_1.DefinitionName.CustomColumn}<${entitySetName}>`;
110
+ const customColumnDefinition = JSON.parse(JSON.stringify(appSchema.definitions['TableCustomColumn']));
111
+ appSchema.definitions[customColumnDefinitionName] = customColumnDefinition;
112
+ // Update definitions for type specific custom columns
113
+ const pageKeys = [];
114
+ const entityType = oDataServiceAVT.entityTypes.find((et) => et.name === entityTypeName);
115
+ const v2Page = import_1.findObjectPageV2(manifest[ux_specification_types_1.ManifestSection.generic].pages, entitySetName, pageKeys);
116
+ utils_1.addTableColumnExtensions(appSchema, entityType, v2Page, manifest, fragments, customColumnsDefinitionName, customColumnDefinitionName);
117
+ return customColumnsDefinitionName;
118
+ }
119
+ /**
120
+ * Method fills new app schema section with properties.
121
+ * @param {Definition} appSchema App schema in general
122
+ * @param {object} appSchemaSection app schema section to be filled
123
+ * @param {SectionTypeV2} sectionType (sub)section type
124
+ * @param {SectionTypeV2} mainSectionType main section type, used to fill app schema section
125
+ */
126
+ function addAppSchemaDefinition(appSchema, appSchemaSection, sectionType, mainSectionType) {
127
+ appSchemaSection.properties = JSON.parse(JSON.stringify(appSchema.definitions[mainSectionType].properties));
128
+ if (appSchemaSection.properties.visible) {
129
+ addFlexChangeForSection(appSchema, appSchemaSection, 'visible', sectionType);
130
+ }
131
+ }
132
+ /**
133
+ * Method adds reference to section property key.
134
+ * @param {object} sections - schema of current sections definition
135
+ * @param {string} key section key which will contain the reference
136
+ * @param {string} definitionKey key which the section should point to
137
+ */
138
+ function addSectionReference(sections, key, definitionKey) {
139
+ sections.properties[key] = { $ref: `${common_1.DEFINITION_LINK_PREFIX}${definitionKey}` };
140
+ }
141
+ /**
142
+ * Reuse function for all table types, copies and adapts the generic definition
143
+ * @param tableType - Table type
144
+ * @param facetId - facet ID, as derived for the given section
145
+ * @param facet - facet or section information
146
+ * @param appSchema - app-specific schema, to be updated
147
+ */
148
+ function addTableDefinition(tableType, facetId, facet, appSchema) {
149
+ const schemaId = common_1.prepareRef(`${tableType}<${facetId}>`);
150
+ appSchema.definitions[schemaId] = JSON.parse(JSON.stringify(appSchema.definitions[tableType]));
151
+ appSchema.definitions[schemaId]['properties']['columns']['$ref'] = common_1.DEFINITION_LINK_PREFIX + facetId;
152
+ appSchema.definitions[schemaId].properties.toolBar['$ref'] = `${common_1.DEFINITION_LINK_PREFIX}ObjectPageToolBar<${facetId}>`;
153
+ appSchema.definitions[schemaId][common_1.SchemaTag.annotationPath] = facet.annotationPath;
154
+ if (facet.ID !== undefined) {
155
+ appSchema.definitions[schemaId].title = common_1.FacetTitlePrefix + facet.ID;
156
+ }
157
+ appSchema.definitions[schemaId].description = common_1.DefinitionName.Table;
158
+ //adjust quickVariantSelection
159
+ appSchema.definitions[schemaId].properties['quickVariantSelection']['$ref'] = `${common_1.DEFINITION_LINK_PREFIX}QuickVariantSelectionOP<${facetId}>`;
160
+ appSchema.definitions[`QuickVariantSelectionOP<${facetId}>`] = JSON.parse(JSON.stringify(appSchema.definitions['QuickVariantSelectionOP']));
161
+ appSchema.definitions[`QuickVariant<${facetId}>`] = JSON.parse(JSON.stringify(appSchema.definitions['QuickVariant']));
162
+ appSchema.definitions[`QuickVariantSelectionOP<${facetId}>`].properties.variants.patternProperties['^[0-9]+$']['$ref'] = `${common_1.DEFINITION_LINK_PREFIX}QuickVariant<${facetId}>`;
163
+ common_1.addEnumForSingleTabVariant(facet.entityType, appSchema, `QuickVariant<${facetId}>`);
164
+ }
165
+ /**
166
+ * Adds definitions for line items in object page sections to the app schema
167
+ * @param {GenerateSchemaParameters} generateParameters - list of API input parameters
168
+ * @param {string} facetKey - key of the facet, as listed in FacetConfigs
169
+ * @param {Definition} appSchema - app schema in general
170
+ * @param {FacetConfig} facet - the given facet from the UI annotations
171
+ * @param {FacetConfigs} facets - list of all facets
172
+ * @param {SectionTypeV2} sectionType (sub)section type
173
+ */
174
+ function handleLineItem(generateParameters, facetKey, appSchema, facet, facets, sectionType) {
175
+ if (facet.base !== common_1.FacetBase.LineItem || !facetKey) {
176
+ //no properties
177
+ return;
178
+ }
179
+ const navigationProperty = facetKey.split('::')[0];
180
+ const schemaIdForOpSection = `${sectionType}<${facetKey}>`;
181
+ appSchema.definitions[schemaIdForOpSection] = common_1.createDefaultSection(appSchema, facet, facetKey);
182
+ const appSchemaSection = appSchema.definitions[schemaIdForOpSection];
183
+ addAppSchemaDefinition(appSchema, appSchemaSection, sectionType, types_1.SectionTypeV2.SectionTable);
184
+ appSchemaSection.properties.table = JSON.parse(JSON.stringify(appSchema.definitions[types_1.SectionTypeV2.SectionTable]['properties'][common_1.PropertyName.table]));
185
+ appSchemaSection.properties.table.anyOf = [
186
+ {
187
+ $ref: `${common_1.DEFINITION_LINK_PREFIX}ObjectPageResponsiveTable<${facetKey}>`
188
+ },
189
+ {
190
+ $ref: `${common_1.DEFINITION_LINK_PREFIX}ObjectPageAnalyticalTable<${facetKey}>`
191
+ },
192
+ {
193
+ $ref: `${common_1.DEFINITION_LINK_PREFIX}ObjectPageGridTable<${facetKey}>`
194
+ },
195
+ {
196
+ $ref: `${common_1.DEFINITION_LINK_PREFIX}ObjectPageTreeTable<${facetKey}>`
197
+ }
198
+ ];
199
+ appSchemaSection[common_1.SchemaTag.annotationPath] = facet.annotationPath;
200
+ common_1.addSectionTitleAndDescription(facet, appSchemaSection, facetKey);
201
+ addTableDefinition('ObjectPageResponsiveTable', facetKey, facet, appSchema);
202
+ addTableDefinition('ObjectPageGridTable', facetKey, facet, appSchema);
203
+ addTableDefinition('ObjectPageTreeTable', facetKey, facet, appSchema);
204
+ addTableDefinition('ObjectPageAnalyticalTable', facetKey, facet, appSchema);
205
+ let customColumnDefinitionKey;
206
+ // Find target entity
207
+ const targetEntitySet = common_1.determineEntitySetOfFacet(facet, generateParameters.serviceAVT);
208
+ if (targetEntitySet) {
209
+ // Make sure that custom columns definitions are created for passed entity
210
+ customColumnDefinitionKey = ensureCustomColumnDefinitionExists(appSchema, generateParameters.manifest, targetEntitySet.name, facet.entityType.name, generateParameters.serviceAVT, facet, facetKey, generateParameters.fragments);
211
+ }
212
+ for (const facetItem in facets) {
213
+ if (facets[facetItem].base === common_1.FacetBase.LineItem && facetItem.includes(navigationProperty)) {
214
+ utils_1.addLineItemsType(appSchema, facets[facetItem].target, facets[facetItem].entityType, facetItem, customColumnDefinitionKey);
215
+ }
216
+ }
217
+ }
218
+ /**
219
+ * Adds definitions for subsections in object page sections to the app schema
220
+ * @param {Definition} appSchema - app schema in general
221
+ * @param {string} definitionKey - key of app schema definition to be filled
222
+ * @param {FacetConfig} facet facet or section information
223
+ * @param {string} facetId - key of the facet, as listed in FacetConfigs
224
+ * @param {SectionTypeV2} sectionType (sub)section type
225
+ */
226
+ function handleSubSection(appSchema, definitionKey, facet, facetId, sectionType) {
227
+ appSchema.definitions[definitionKey] = common_1.createDefaultSection(appSchema, facet, facetId);
228
+ const appSchemaSection = appSchema.definitions[definitionKey];
229
+ addAppSchemaDefinition(appSchema, appSchemaSection, sectionType, types_1.SectionTypeV2.SubSection);
230
+ appSchemaSection.properties.subsections = {
231
+ type: 'object',
232
+ description: 'Subsections',
233
+ properties: {},
234
+ additionalProperties: false
235
+ };
236
+ appSchemaSection.properties.subsections[common_1.SchemaTag.isViewNode] = true;
237
+ }
238
+ /**
239
+ * Method fills new chart section with properties.
240
+ * @param {Definition} appSchema App schema in general
241
+ * @param {string} definitionKey - key of app schema definition to be filled
242
+ * @param {FacetConfig} facet facet or section information
243
+ * @param {string} facetKey - facet key.
244
+ * @param {SectionTypeV2} sectionType (sub)section type
245
+ */
246
+ function handleSectionChart(appSchema, definitionKey, facet, facetKey, sectionType) {
247
+ appSchema.definitions[definitionKey] = common_1.createDefaultSection(appSchema, facet, facetKey);
248
+ const appSchemaSection = appSchema.definitions[definitionKey];
249
+ addAppSchemaDefinition(appSchema, appSchemaSection, sectionType, types_1.SectionTypeV2.SectionChart);
250
+ }
251
+ /**
252
+ * Method fills new form section in app schema with properties.
253
+ * @param {Definition} appSchema App schema in general
254
+ * @param {string} definitionKey - key of app schema definition to be filled
255
+ * @param {FacetConfig} facet facet or section information
256
+ * @param {string} facetKey - facet key.
257
+ * @param {SectionTypeV2} sectionType (sub)section type
258
+ * @return {object} returns filled form section in app schema.
259
+ */
260
+ function handleAppSchemaFormSection(appSchema, definitionKey, facet, facetKey, sectionType) {
261
+ appSchema.definitions[definitionKey] = common_1.createDefaultSection(appSchema, facet, facetKey);
262
+ const appSchemaSection = appSchema.definitions[definitionKey];
263
+ addAppSchemaDefinition(appSchema, appSchemaSection, sectionType, types_1.SectionTypeV2.SectionForm);
264
+ appSchemaSection[common_1.SchemaTag.annotationPath] = facet.annotationPath;
265
+ appSchemaSection[common_1.SchemaTag.isViewNode] = true;
266
+ return appSchemaSection;
267
+ }
268
+ /**
269
+ * Mapping of facet type to (sub)section type to enable correct further handling
270
+ * @param {FacetBase} facetType - facet type to be mapped
271
+ * @param {boolean} isSubSection - if section is subsection of section
272
+ * @return {SectionTypeV2} sectionType (sub)section type
273
+ */
274
+ function getSectionType(facetType, isSubSection) {
275
+ const sectionTypeMapping = new Map([
276
+ [common_1.FacetBase.CollectionFacet, types_1.SectionTypeV2.Section],
277
+ [common_1.FacetBase.LineItem, types_1.SectionTypeV2.SectionTable],
278
+ [common_1.FacetBase.Chart, types_1.SectionTypeV2.SectionChart],
279
+ [common_1.FacetBase.Address, types_1.SectionTypeV2.SectionAddress],
280
+ [common_1.FacetBase.Contact, types_1.SectionTypeV2.SectionContact],
281
+ [common_1.FacetBase.Form, types_1.SectionTypeV2.SectionForm],
282
+ [common_1.FacetBase.Identification, types_1.SectionTypeV2.SectionForm]
283
+ ]);
284
+ const subSectionTypeMapping = new Map([
285
+ [common_1.FacetBase.CollectionFacet, types_1.SectionTypeV2.SubSection],
286
+ [common_1.FacetBase.LineItem, types_1.SectionTypeV2.SubSectionTable],
287
+ [common_1.FacetBase.Chart, types_1.SectionTypeV2.SubSectionChart],
288
+ [common_1.FacetBase.Address, types_1.SectionTypeV2.SubSectionAddress],
289
+ [common_1.FacetBase.Contact, types_1.SectionTypeV2.SubSectionContact],
290
+ [common_1.FacetBase.Form, types_1.SectionTypeV2.SubSectionForm],
291
+ [common_1.FacetBase.Identification, types_1.SectionTypeV2.SubSectionForm]
292
+ ]);
293
+ if (isSubSection) {
294
+ return subSectionTypeMapping.get(facetType);
295
+ }
296
+ else {
297
+ return sectionTypeMapping.get(facetType);
298
+ }
299
+ }
300
+ /**
301
+ * Method returns reference key, special handling of (sub)sections
302
+ * @param {FacetConfig} facet facet or section information
303
+ * @param {string} facetKey - facet key.
304
+ * @param {SectionTypeV2} sectionType (sub)section type
305
+ * @return {string} reference key
306
+ */
307
+ function getReferenceKey(facet, facetKey, sectionType) {
308
+ let referenceKey = facetKey;
309
+ if (sectionType === (types_1.SectionTypeV2.Section || types_1.SectionTypeV2.SubSection)) {
310
+ referenceKey = referenceKey.replace(`@${"com.sap.vocabularies.UI.v1.Facets" /* Facets */}`, facet.base);
311
+ }
312
+ return `${referenceKey}`;
313
+ }
314
+ /**
315
+ * Creates a section definition in app schema.
316
+ * @param {GenerateSchemaParameters} generateParameters - list of API input parameters
317
+ * @param {FacetConfigs} facets - list of all facets.
318
+ * @param {string} facetKey - facet key.
319
+ * @param {object} sections - schema of current sections definition.
320
+ * @param {Definition} appSchema - app specific schema that potentially gets enhanced.
321
+ * @param {boolean} isSubSection - if section is subsection of section
322
+ */
323
+ function addSection(generateParameters, facets, facetKey, sections, appSchema, isSubSection = false) {
324
+ const facet = facets[facetKey];
325
+ const sectionType = getSectionType(facet.base, isSubSection);
326
+ const referenceKey = getReferenceKey(facet, facetKey, sectionType);
327
+ const definitionKey = `${sectionType}<${referenceKey}>`;
328
+ addSectionReference(sections, referenceKey, definitionKey);
329
+ switch (sectionType) {
330
+ case types_1.SectionTypeV2.Section:
331
+ case types_1.SectionTypeV2.SubSection: {
332
+ //handle collection facets
333
+ isSubSection = true;
334
+ handleSubSection(appSchema, definitionKey, facet, facetKey, sectionType);
335
+ const subSections = appSchema.definitions[definitionKey].properties
336
+ .subsections;
337
+ for (const key in facet.facets) {
338
+ addSection(generateParameters, facet.facets, key, subSections, appSchema, isSubSection);
339
+ }
340
+ break;
341
+ }
342
+ case types_1.SectionTypeV2.SectionTable:
343
+ case types_1.SectionTypeV2.SubSectionTable: {
344
+ handleLineItem(generateParameters, facetKey, appSchema, facet, facets, sectionType);
345
+ break;
346
+ }
347
+ case types_1.SectionTypeV2.SectionChart:
348
+ case types_1.SectionTypeV2.SubSectionChart: {
349
+ //handle reference facet (if comprising chart)
350
+ handleSectionChart(appSchema, definitionKey, facet, facetKey, sectionType);
351
+ break;
352
+ }
353
+ case types_1.SectionTypeV2.SectionForm:
354
+ case types_1.SectionTypeV2.SubSectionForm: {
355
+ const withActions = facet.base !== common_1.FacetBase.Identification;
356
+ const appSchemaSection = handleAppSchemaFormSection(appSchema, definitionKey, facet, facetKey, sectionType);
357
+ common_1.handleForm(ux_specification_types_1.SectionType.Section, facet, appSchemaSection, appSchema, ux_specification_types_1.FioriElementsVersion.v2, withActions);
358
+ break;
359
+ }
360
+ case types_1.SectionTypeV2.SectionAddress:
361
+ case types_1.SectionTypeV2.SectionContact: {
362
+ common_1.handleAddressContact(facet, facetKey, sections, appSchema, ux_specification_types_1.SectionType.Section, undefined, 'V2');
363
+ break;
364
+ }
365
+ case types_1.SectionTypeV2.SubSectionAddress:
366
+ case types_1.SectionTypeV2.SubSectionContact: {
367
+ common_1.handleAddressContact(facet, facetKey, sections, appSchema, ux_specification_types_1.SectionType.Section, ux_specification_types_1.SectionType.SubSection, 'V2');
368
+ break;
369
+ }
370
+ default: {
371
+ // Other facets -> only default properties of ObjectPageSection
372
+ sections.properties[facetKey] = common_1.createDefaultSection(appSchema, facet, facetKey);
373
+ }
374
+ }
375
+ }
376
+ /**
377
+ * Adds the sections to the app schema
378
+ * @param {GenerateSchemaParameters} generateParameters - list of API input parameters
379
+ * @param {Definition} appSchema - app specific schema that potentially gets enhanced
380
+ * @param {EntityType} entityType - current entity type
381
+ * @param {string} entitySetName Entity set name
382
+ * @param {SapUiAppPagesV2} pages - list of (manifest) pages
383
+ */
384
+ function addSections(generateParameters, appSchema, entityType, entitySetName, pages) {
385
+ const sections = appSchema.definitions[common_1.DefinitionName.Sections];
386
+ sections[common_1.SchemaTag.isViewNode] = true;
387
+ if (entityType) {
388
+ sections[common_1.SchemaTag.annotationPath] = `/${entityType.fullyQualifiedName}/@${"com.sap.vocabularies.UI.v1.Facets" /* Facets */}`;
389
+ }
390
+ if (!pages) {
391
+ return;
392
+ }
393
+ // Get facet annotations
394
+ const facets = common_1.getObjectPageFacets(entityType, generateParameters.serviceAVT, ux_specification_types_1.FioriElementsVersion.v2, generateParameters.logger);
395
+ if (!facets || Object.keys(facets).length === 0) {
396
+ return;
397
+ }
398
+ // Loop on all pages, look for the right entity set
399
+ for (const key in pages) {
400
+ const element = pages[key];
401
+ if (entitySetName.includes(element.entitySet)) {
402
+ // Loop on all facets (of the given entitySet)
403
+ for (const facetKey in facets) {
404
+ addSection(generateParameters, facets, facetKey, sections, appSchema);
405
+ }
406
+ }
407
+ else {
408
+ addSections(generateParameters, appSchema, entityType, entitySetName, element.pages);
409
+ }
410
+ }
411
+ // Add custom sections
412
+ const customSections = appSchema.definitions['CustomSections'];
413
+ for (const name in customSections.properties) {
414
+ sections.properties[name] = customSections.properties[name];
415
+ }
416
+ }
417
+ /**
418
+ * Add Object Page Header to app-specific schema
419
+ *
420
+ * @param {object} appSchema Schema of the app
421
+ * @param {EntityType} entityType - current entity type
422
+ * @param {ConvertedMetadata} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
423
+ */
424
+ function addHeader(appSchema, entityType, oDataServiceAVT) {
425
+ common_1.addCommonHeaderSchema(appSchema, entityType);
426
+ //Add header actions
427
+ common_1.addHeaderActions(appSchema, entityType, oDataServiceAVT, addHeaderActionCallBackV2);
428
+ }
429
+ /**
430
+ * Adds the related facets keys 'enum' to the app schema
431
+ * @param schema - app specific schema that potentially gets enhanced
432
+ * @param {EntityType} entityType - current entity type
433
+ * @param {ConvertedMetadata} oDataServiceAVT - complete service information, as returned by annotation vocabularies tool
434
+ * @param {ExtensionLogger} logger - Logger class for logging messages
435
+ */
436
+ function addRelatedFacetKeysType(schema, entityType, oDataServiceAVT, logger) {
437
+ // Find sections from annotation
438
+ // And create new definition in schema as enum with description
439
+ const facetSections = common_1.getObjectPageFacetSection(entityType, oDataServiceAVT, logger, undefined, true);
440
+ if (facetSections) {
441
+ common_1.addDefinitionForRelatedFacetKeys(schema, ['ObjectPageCustomSectionFragment', 'ObjectPageCustomSectionView'], facetSections, ['ID', 'key']);
442
+ }
443
+ }
444
+ /**
445
+ * Generates an app specific schema out of the generic schema.
446
+ * @param {GenerateSchemaParameters} generateParameters - list of API input parameters
447
+ * @param genericSchema - generic JSON schema of an object page
448
+ * @param entityTypeName - the base entity type of the given page
449
+ *
450
+ * @returns the app specific JSON schema
451
+ */
452
+ function generateObjectPageSchemaV2(generateParameters, genericSchema, entityTypeName) {
453
+ // Initialize i18next
454
+ i18n_1.initI18n();
455
+ const appSchema = JSON.parse(JSON.stringify(genericSchema));
456
+ // Custom sections as part of sections
457
+ const additionalSections = {};
458
+ for (const name in appSchema.definitions['CustomSections']['properties']) {
459
+ additionalSections[name] = appSchema.definitions['CustomSections'].properties[name];
460
+ }
461
+ // Change reference to generated sections
462
+ appSchema.properties[common_1.PropertyName.sections] = {
463
+ $ref: common_1.DEFINITION_LINK_PREFIX + 'Sections'
464
+ };
465
+ const entitySet = generateParameters.serviceAVT.entitySets &&
466
+ generateParameters.serviceAVT.entitySets.find((es) => es.entityType.name === entityTypeName || es.name === entityTypeName);
467
+ if (!entitySet) {
468
+ extensionLogger_1.log(generateParameters.logger, {
469
+ severity: "error" /* Error */,
470
+ message: i18next_1.default.t('NOENTITYSET4NAME', { entityType: entityTypeName }),
471
+ location: {
472
+ path: common_1.METADATAPATH
473
+ }
474
+ });
475
+ return appSchema;
476
+ }
477
+ const entityType = entitySet?.entityType;
478
+ generateParameters.entitySet = entitySet;
479
+ const pages = generateParameters.manifest[ux_specification_types_1.ManifestSection.generic].pages;
480
+ if (!pages) {
481
+ extensionLogger_1.log(generateParameters.logger, {
482
+ severity: "error" /* Error */,
483
+ message: i18next_1.default.t('NOPAGES', { appId: generateParameters.manifest['sap.app']['id'] }),
484
+ location: {
485
+ path: common_1.MANIFESTPATH,
486
+ range: [ux_specification_types_1.ManifestSection.generic]
487
+ }
488
+ });
489
+ return appSchema;
490
+ }
491
+ // Add header
492
+ addHeader(appSchema, entityType, generateParameters.serviceAVT);
493
+ // Add sections
494
+ appSchema.definitions[common_1.DefinitionName.Sections] = {
495
+ type: 'object',
496
+ properties: {},
497
+ description: 'Sections',
498
+ additionalProperties: false
499
+ };
500
+ addSections(generateParameters, appSchema, entityType, entitySet.name, pages);
501
+ // Custom section facets
502
+ addRelatedFacetKeysType(appSchema, entityType, generateParameters.serviceAVT, generateParameters.logger);
503
+ if (!appSchema.definitions.Sections) {
504
+ if (appSchema.definitions.RelatedFacetKeys && appSchema.definitions.RelatedFacetKeys['oneOf'].length) {
505
+ // If related facets exists - then we need sections definition
506
+ appSchema.definitions.Sections = {
507
+ type: 'object',
508
+ properties: additionalSections,
509
+ additionalProperties: false
510
+ };
511
+ appSchema.definitions.Sections[common_1.SchemaTag.isViewNode] = true;
512
+ }
513
+ else {
514
+ delete appSchema.properties[common_1.PropertyName.sections];
515
+ }
516
+ }
517
+ common_1.addFooterActions(appSchema, generateParameters);
518
+ // Eliminate generic definitions
519
+ delete appSchema.definitions['GenericSections'];
520
+ delete appSchema.definitions['GenericSubSections'];
521
+ delete appSchema.definitions['ObjectPageSectionTableV2'];
522
+ delete appSchema.definitions['GenericColumns'];
523
+ delete appSchema.definitions['TableColumnAction'];
524
+ delete appSchema.definitions['ObjectPageSectionFormV2'];
525
+ delete appSchema.definitions['ObjectPageSectionTableV2'];
526
+ delete appSchema.definitions['ObjectPageSubSectionV2'];
527
+ delete appSchema.definitions['ObjectPageResponsiveTable'];
528
+ delete appSchema.definitions['ObjectPageAnalyticalTable'];
529
+ delete appSchema.definitions['ObjectPageTreeTable'];
530
+ delete appSchema.definitions['ObjectPageGridTable'];
531
+ delete appSchema.definitions['ObjectPageToolBar'];
532
+ delete appSchema.definitions['ObjectPageToolBarActions'];
533
+ delete appSchema.definitions['ObjectPageForm'];
534
+ delete appSchema.definitions['ObjectPageFormFields'];
535
+ delete appSchema.definitions['ObjectPageFormActions'];
536
+ return appSchema;
537
+ }
538
+ exports.generateObjectPageSchemaV2 = generateObjectPageSchemaV2;
539
+ //# sourceMappingURL=objectPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectPage.js","sourceRoot":"","sources":["../../../../../src/sync/v2/generate/objectPage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Manifest } from '../../../specification/common';
1
+ import type { Manifest } from '@sap/ux-specification-types';
2
2
  /**
3
3
  * Method returns array of card definition names.
4
4
  * @param genericSchema - Generic schema of Overview Page.
@@ -1 +1 @@
1
- {"version":3,"file":"overviewPage.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v2/generate/overviewPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,+BAA+B,CAAC;AAGhF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAa3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAsBzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAS9F"}
1
+ {"version":3,"file":"overviewPage.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v2/generate/overviewPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,6BAA6B,CAAC;AAG9E;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAa3E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAsBzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAS9F"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateOverviewPageSchemaV2 = exports.addModelsEnum = exports.getCardDefinitionNames = void 0;
4
+ const common_1 = require("../../common");
5
+ /**
6
+ * Method returns array of card definition names.
7
+ * @param genericSchema - Generic schema of Overview Page.
8
+ *
9
+ * @returns Array of definition names
10
+ */
11
+ function getCardDefinitionNames(genericSchema) {
12
+ // Apply enum to all card properties
13
+ const properties = genericSchema['properties'];
14
+ const cardProperties = (properties['cards'] &&
15
+ properties['cards']['additionalProperties'] &&
16
+ properties['cards']['additionalProperties']['anyOf']) ||
17
+ [];
18
+ return cardProperties.map((cardProperty) => {
19
+ // Resolve ref
20
+ const refParts = cardProperty['$ref'].split('/');
21
+ return refParts[refParts.length - 1];
22
+ });
23
+ }
24
+ exports.getCardDefinitionNames = getCardDefinitionNames;
25
+ /**
26
+ * Defines and adds enum entries for 'model' property of Cards.
27
+ * @param appSchema - the app specific schema that shall get enhanced
28
+ * @param manifest - manifest.json of the app
29
+ */
30
+ function addModelsEnum(appSchema, manifest) {
31
+ const dataSources = (manifest && manifest['sap.app'] && manifest['sap.app'].dataSources) || {};
32
+ const serviceKeys = Object.keys(dataSources);
33
+ const models = (manifest && manifest['sap.ui5'] && manifest['sap.ui5'].models) || {};
34
+ let enumValues = [];
35
+ enumValues = enumValues.concat(Object.keys(models).filter((model) => serviceKeys.includes(models[model].dataSource)));
36
+ // Define enum
37
+ const definition = appSchema['definitions'];
38
+ definition['CardModel'] = {
39
+ enum: enumValues,
40
+ type: 'string'
41
+ };
42
+ // Apply enum to all card properties
43
+ const cards = getCardDefinitionNames(appSchema);
44
+ for (const card of cards) {
45
+ const property = definition[card]['properties']['model'];
46
+ delete property.type;
47
+ property['$ref'] = common_1.DEFINITION_LINK_PREFIX + 'CardModel';
48
+ }
49
+ }
50
+ exports.addModelsEnum = addModelsEnum;
51
+ /**
52
+ * Generates an app specific schema out of the generic schema.
53
+ * Generic types are replaced by information from the app manifest.
54
+ *
55
+ * @param genericSchema - generic JSON schema of an object page
56
+ * @param manifest - manifest.json of the app
57
+ *
58
+ * @returns the app specific JSON schema
59
+ */
60
+ function generateOverviewPageSchemaV2(genericSchema, manifest) {
61
+ const appSchema = JSON.parse(JSON.stringify(genericSchema));
62
+ // schema validation for card name
63
+ appSchema['properties']['cards']['propertyNames'] = {
64
+ pattern: '^[a-zA-Z0-9_\\.\\-]+$'
65
+ };
66
+ // Enhance 'model' property with enum entries
67
+ addModelsEnum(appSchema, manifest);
68
+ return appSchema;
69
+ }
70
+ exports.generateOverviewPageSchemaV2 = generateOverviewPageSchemaV2;
71
+ //# sourceMappingURL=overviewPage.js.map