@sap/ux-specification 1.90.19 → 1.96.4

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 (391) hide show
  1. package/CHANGELOG.md +17 -352
  2. package/README.md +1 -0
  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/documentation/v4/v4-AnalyticalListPage.html +1 -1
  9. package/dist/documentation/v4/v4-ApplicationV4.html +1 -1
  10. package/dist/documentation/v4/v4-ListReport.html +1 -1
  11. package/dist/documentation/v4/v4-ObjectPage.html +1 -1
  12. package/dist/index-min.js +1 -1
  13. package/dist/schemas/v2/ApplicationV2.json +31 -0
  14. package/dist/schemas/v4/AnalyticalListPageConfig.json +89 -0
  15. package/dist/schemas/v4/ListReportConfig.json +89 -0
  16. package/dist/schemas/v4/ObjectPageConfig.json +87 -0
  17. package/dist/specification/v2/index-min.js +1 -1
  18. package/dist/src/api.d.ts +9 -1
  19. package/dist/src/apiTypes.d.ts +16 -0
  20. package/dist/src/specification/v2/ApplicationV2.d.ts +21 -0
  21. package/dist/src/specification/v4/controls/ObjectPageTable.d.ts +18 -2
  22. package/dist/src/specification/v4/controls/Table.d.ts +2 -2
  23. package/dist/src/sync/common/generate/utils.d.ts +3 -1
  24. package/dist/src/sync/v2/application.d.ts +3 -1
  25. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.d.ts +14 -1
  26. package/dist/src/sync/v4/export/controls/TableColumn.d.ts +14 -1
  27. package/dist/src/sync/v4/export/exportCustomColumn.d.ts +13 -0
  28. package/dist/src/sync/v4/utils/utils.d.ts +20 -2
  29. package/package.json +19 -13
  30. package/dist/scripts/extractDocu.js +0 -488
  31. package/dist/scripts/extractDocu.js.map +0 -1
  32. package/dist/scripts/runDocu.js +0 -577
  33. package/dist/scripts/runDocu.js.map +0 -1
  34. package/dist/scripts/spec.js +0 -114
  35. package/dist/scripts/spec.js.map +0 -1
  36. package/dist/scripts/to-json-schema.js +0 -124
  37. package/dist/scripts/to-json-schema.js.map +0 -1
  38. package/dist/src/api.js +0 -167
  39. package/dist/src/api.js.map +0 -1
  40. package/dist/src/apiTypes.js +0 -5
  41. package/dist/src/apiTypes.js.map +0 -1
  42. package/dist/src/extensionLogger.js +0 -39
  43. package/dist/src/extensionLogger.js.map +0 -1
  44. package/dist/src/i18n/i18n.js +0 -25
  45. package/dist/src/i18n/i18n.js.map +0 -1
  46. package/dist/src/index.js +0 -12
  47. package/dist/src/index.js.map +0 -1
  48. package/dist/src/project.js +0 -143
  49. package/dist/src/project.js.map +0 -1
  50. package/dist/src/specification/common/Application.js +0 -3
  51. package/dist/src/specification/common/Application.js.map +0 -1
  52. package/dist/src/specification/common/i18n.json +0 -1
  53. package/dist/src/specification/common/index.js +0 -10
  54. package/dist/src/specification/common/index.js.map +0 -1
  55. package/dist/src/specification/common/page.js +0 -33
  56. package/dist/src/specification/common/page.js.map +0 -1
  57. package/dist/src/specification/common/types.js +0 -20
  58. package/dist/src/specification/common/types.js.map +0 -1
  59. package/dist/src/specification/common/webapp/manifest/Manifest.js +0 -17
  60. package/dist/src/specification/common/webapp/manifest/Manifest.js.map +0 -1
  61. package/dist/src/specification/common/webapp/manifest/index.js +0 -8
  62. package/dist/src/specification/common/webapp/manifest/index.js.map +0 -1
  63. package/dist/src/specification/common/webapp/manifest/sapOvp.js +0 -9
  64. package/dist/src/specification/common/webapp/manifest/sapOvp.js.map +0 -1
  65. package/dist/src/specification/common/webapp/manifest/sapUi5.js +0 -14
  66. package/dist/src/specification/common/webapp/manifest/sapUi5.js.map +0 -1
  67. package/dist/src/specification/schemaAccess.js +0 -63
  68. package/dist/src/specification/schemaAccess.js.map +0 -1
  69. package/dist/src/specification/v2/ApplicationV2.js +0 -9
  70. package/dist/src/specification/v2/ApplicationV2.js.map +0 -1
  71. package/dist/src/specification/v2/controls/Action.js +0 -3
  72. package/dist/src/specification/v2/controls/Action.js.map +0 -1
  73. package/dist/src/specification/v2/controls/AnalyticalListPageChart.js +0 -36
  74. package/dist/src/specification/v2/controls/AnalyticalListPageChart.js.map +0 -1
  75. package/dist/src/specification/v2/controls/AnalyticalListPageKPI.js +0 -3
  76. package/dist/src/specification/v2/controls/AnalyticalListPageKPI.js.map +0 -1
  77. package/dist/src/specification/v2/controls/Card.js +0 -72
  78. package/dist/src/specification/v2/controls/Card.js.map +0 -1
  79. package/dist/src/specification/v2/controls/Facets.js +0 -3
  80. package/dist/src/specification/v2/controls/Facets.js.map +0 -1
  81. package/dist/src/specification/v2/controls/Field.js +0 -3
  82. package/dist/src/specification/v2/controls/Field.js.map +0 -1
  83. package/dist/src/specification/v2/controls/FilterBar.js +0 -78
  84. package/dist/src/specification/v2/controls/FilterBar.js.map +0 -1
  85. package/dist/src/specification/v2/controls/Footer.js +0 -3
  86. package/dist/src/specification/v2/controls/Footer.js.map +0 -1
  87. package/dist/src/specification/v2/controls/ObjectPageChart.js +0 -3
  88. package/dist/src/specification/v2/controls/ObjectPageChart.js.map +0 -1
  89. package/dist/src/specification/v2/controls/ObjectPageForm.js +0 -3
  90. package/dist/src/specification/v2/controls/ObjectPageForm.js.map +0 -1
  91. package/dist/src/specification/v2/controls/ObjectPageHeader.js +0 -3
  92. package/dist/src/specification/v2/controls/ObjectPageHeader.js.map +0 -1
  93. package/dist/src/specification/v2/controls/ObjectPageLayout.js +0 -3
  94. package/dist/src/specification/v2/controls/ObjectPageLayout.js.map +0 -1
  95. package/dist/src/specification/v2/controls/ObjectPageSection.js +0 -13
  96. package/dist/src/specification/v2/controls/ObjectPageSection.js.map +0 -1
  97. package/dist/src/specification/v2/controls/ObjectPageTable.js +0 -7
  98. package/dist/src/specification/v2/controls/ObjectPageTable.js.map +0 -1
  99. package/dist/src/specification/v2/controls/ObjectPageToolBar.js +0 -3
  100. package/dist/src/specification/v2/controls/ObjectPageToolBar.js.map +0 -1
  101. package/dist/src/specification/v2/controls/Table.js +0 -42
  102. package/dist/src/specification/v2/controls/Table.js.map +0 -1
  103. package/dist/src/specification/v2/controls/ToolBar.js +0 -3
  104. package/dist/src/specification/v2/controls/ToolBar.js.map +0 -1
  105. package/dist/src/specification/v2/controls/index.js +0 -12
  106. package/dist/src/specification/v2/controls/index.js.map +0 -1
  107. package/dist/src/specification/v2/index.js +0 -10
  108. package/dist/src/specification/v2/index.js.map +0 -1
  109. package/dist/src/specification/v2/page.js +0 -3
  110. package/dist/src/specification/v2/page.js.map +0 -1
  111. package/dist/src/specification/v2/pages/AnalyticalListPageConfig.js +0 -3
  112. package/dist/src/specification/v2/pages/AnalyticalListPageConfig.js.map +0 -1
  113. package/dist/src/specification/v2/pages/ListReportConfig.js +0 -3
  114. package/dist/src/specification/v2/pages/ListReportConfig.js.map +0 -1
  115. package/dist/src/specification/v2/pages/ObjectPageConfig.js +0 -3
  116. package/dist/src/specification/v2/pages/ObjectPageConfig.js.map +0 -1
  117. package/dist/src/specification/v2/pages/OverviewPageConfig.js +0 -8
  118. package/dist/src/specification/v2/pages/OverviewPageConfig.js.map +0 -1
  119. package/dist/src/specification/v2/pages/index.js +0 -7
  120. package/dist/src/specification/v2/pages/index.js.map +0 -1
  121. package/dist/src/specification/v2/webapp/index.js +0 -7
  122. package/dist/src/specification/v2/webapp/index.js.map +0 -1
  123. package/dist/src/specification/v2/webapp/manifest/index.js +0 -8
  124. package/dist/src/specification/v2/webapp/manifest/index.js.map +0 -1
  125. package/dist/src/specification/v2/webapp/manifest/sapUi.js +0 -3
  126. package/dist/src/specification/v2/webapp/manifest/sapUi.js.map +0 -1
  127. package/dist/src/specification/v2/webapp/manifest/sapUi5.js +0 -10
  128. package/dist/src/specification/v2/webapp/manifest/sapUi5.js.map +0 -1
  129. package/dist/src/specification/v2/webapp/manifest/sapUiPageV2.js +0 -7
  130. package/dist/src/specification/v2/webapp/manifest/sapUiPageV2.js.map +0 -1
  131. package/dist/src/specification/v4/ApplicationV4.js +0 -3
  132. package/dist/src/specification/v4/ApplicationV4.js.map +0 -1
  133. package/dist/src/specification/v4/controls/FilterBar.js +0 -3
  134. package/dist/src/specification/v4/controls/FilterBar.js.map +0 -1
  135. package/dist/src/specification/v4/controls/ObjectPageFooter.js +0 -3
  136. package/dist/src/specification/v4/controls/ObjectPageFooter.js.map +0 -1
  137. package/dist/src/specification/v4/controls/ObjectPageHeader.js +0 -3
  138. package/dist/src/specification/v4/controls/ObjectPageHeader.js.map +0 -1
  139. package/dist/src/specification/v4/controls/ObjectPageHeaderSection.js +0 -7
  140. package/dist/src/specification/v4/controls/ObjectPageHeaderSection.js.map +0 -1
  141. package/dist/src/specification/v4/controls/ObjectPageLayout.js +0 -8
  142. package/dist/src/specification/v4/controls/ObjectPageLayout.js.map +0 -1
  143. package/dist/src/specification/v4/controls/ObjectPageSection.js +0 -12
  144. package/dist/src/specification/v4/controls/ObjectPageSection.js.map +0 -1
  145. package/dist/src/specification/v4/controls/ObjectPageTable.js +0 -3
  146. package/dist/src/specification/v4/controls/ObjectPageTable.js.map +0 -1
  147. package/dist/src/specification/v4/controls/ObjectPageToolBar.js +0 -3
  148. package/dist/src/specification/v4/controls/ObjectPageToolBar.js.map +0 -1
  149. package/dist/src/specification/v4/controls/Table.js +0 -30
  150. package/dist/src/specification/v4/controls/Table.js.map +0 -1
  151. package/dist/src/specification/v4/controls/ToolBar.js +0 -8
  152. package/dist/src/specification/v4/controls/ToolBar.js.map +0 -1
  153. package/dist/src/specification/v4/controls/index.js +0 -11
  154. package/dist/src/specification/v4/controls/index.js.map +0 -1
  155. package/dist/src/specification/v4/index.js +0 -9
  156. package/dist/src/specification/v4/index.js.map +0 -1
  157. package/dist/src/specification/v4/page.js +0 -3
  158. package/dist/src/specification/v4/page.js.map +0 -1
  159. package/dist/src/specification/v4/pages/AnalyticalListPageConfig.js +0 -3
  160. package/dist/src/specification/v4/pages/AnalyticalListPageConfig.js.map +0 -1
  161. package/dist/src/specification/v4/pages/ListReportConfig.js +0 -9
  162. package/dist/src/specification/v4/pages/ListReportConfig.js.map +0 -1
  163. package/dist/src/specification/v4/pages/ObjectPageConfig.js +0 -8
  164. package/dist/src/specification/v4/pages/ObjectPageConfig.js.map +0 -1
  165. package/dist/src/specification/v4/pages/index.js +0 -8
  166. package/dist/src/specification/v4/pages/index.js.map +0 -1
  167. package/dist/src/specification/v4/webapp/index.js +0 -7
  168. package/dist/src/specification/v4/webapp/index.js.map +0 -1
  169. package/dist/src/specification/v4/webapp/manifest/ManifestSettings.js +0 -22
  170. package/dist/src/specification/v4/webapp/manifest/ManifestSettings.js.map +0 -1
  171. package/dist/src/specification/v4/webapp/manifest/index.js +0 -10
  172. package/dist/src/specification/v4/webapp/manifest/index.js.map +0 -1
  173. package/dist/src/specification/v4/webapp/manifest/sapUi5.js +0 -11
  174. package/dist/src/specification/v4/webapp/manifest/sapUi5.js.map +0 -1
  175. package/dist/src/specification/v4/webapp/manifest/sapUiPageV4.js +0 -14
  176. package/dist/src/specification/v4/webapp/manifest/sapUiPageV4.js.map +0 -1
  177. package/dist/src/sync/common/appProvider.js +0 -57
  178. package/dist/src/sync/common/appProvider.js.map +0 -1
  179. package/dist/src/sync/common/decoration/control.js +0 -206
  180. package/dist/src/sync/common/decoration/control.js.map +0 -1
  181. package/dist/src/sync/common/decoration/decorators.js +0 -43
  182. package/dist/src/sync/common/decoration/decorators.js.map +0 -1
  183. package/dist/src/sync/common/decoration/factory.js +0 -48
  184. package/dist/src/sync/common/decoration/factory.js.map +0 -1
  185. package/dist/src/sync/common/decoration/flex.js +0 -8
  186. package/dist/src/sync/common/decoration/flex.js.map +0 -1
  187. package/dist/src/sync/common/decoration/index.js +0 -9
  188. package/dist/src/sync/common/decoration/index.js.map +0 -1
  189. package/dist/src/sync/common/flexUtils.js +0 -95
  190. package/dist/src/sync/common/flexUtils.js.map +0 -1
  191. package/dist/src/sync/common/generate/index.js +0 -8
  192. package/dist/src/sync/common/generate/index.js.map +0 -1
  193. package/dist/src/sync/common/generate/objectPage.js +0 -348
  194. package/dist/src/sync/common/generate/objectPage.js.map +0 -1
  195. package/dist/src/sync/common/generate/utils.js +0 -221
  196. package/dist/src/sync/common/generate/utils.js.map +0 -1
  197. package/dist/src/sync/common/i18n.json +0 -23
  198. package/dist/src/sync/common/import/utils.js +0 -86
  199. package/dist/src/sync/common/import/utils.js.map +0 -1
  200. package/dist/src/sync/common/importProject.js +0 -342
  201. package/dist/src/sync/common/importProject.js.map +0 -1
  202. package/dist/src/sync/common/index.js +0 -15
  203. package/dist/src/sync/common/index.js.map +0 -1
  204. package/dist/src/sync/common/types.js +0 -106
  205. package/dist/src/sync/common/types.js.map +0 -1
  206. package/dist/src/sync/common/utils.js +0 -1053
  207. package/dist/src/sync/common/utils.js.map +0 -1
  208. package/dist/src/sync/i18n.js +0 -15
  209. package/dist/src/sync/i18n.js.map +0 -1
  210. package/dist/src/sync/v2/application.js +0 -170
  211. package/dist/src/sync/v2/application.js.map +0 -1
  212. package/dist/src/sync/v2/export/controls/Action.js +0 -127
  213. package/dist/src/sync/v2/export/controls/Action.js.map +0 -1
  214. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js +0 -72
  215. package/dist/src/sync/v2/export/controls/AnalyticalListPageChart.js.map +0 -1
  216. package/dist/src/sync/v2/export/controls/AnalyticalListPageKPI.js +0 -56
  217. package/dist/src/sync/v2/export/controls/AnalyticalListPageKPI.js.map +0 -1
  218. package/dist/src/sync/v2/export/controls/Card.js +0 -655
  219. package/dist/src/sync/v2/export/controls/Card.js.map +0 -1
  220. package/dist/src/sync/v2/export/controls/Field.js +0 -32
  221. package/dist/src/sync/v2/export/controls/Field.js.map +0 -1
  222. package/dist/src/sync/v2/export/controls/FilterBar.js +0 -236
  223. package/dist/src/sync/v2/export/controls/FilterBar.js.map +0 -1
  224. package/dist/src/sync/v2/export/controls/FormAction.js +0 -96
  225. package/dist/src/sync/v2/export/controls/FormAction.js.map +0 -1
  226. package/dist/src/sync/v2/export/controls/Fragment.js +0 -476
  227. package/dist/src/sync/v2/export/controls/Fragment.js.map +0 -1
  228. package/dist/src/sync/v2/export/controls/ObjectPageChart.js +0 -37
  229. package/dist/src/sync/v2/export/controls/ObjectPageChart.js.map +0 -1
  230. package/dist/src/sync/v2/export/controls/ObjectPageCustomSection.js +0 -110
  231. package/dist/src/sync/v2/export/controls/ObjectPageCustomSection.js.map +0 -1
  232. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js +0 -62
  233. package/dist/src/sync/v2/export/controls/ObjectPageFooterAction.js.map +0 -1
  234. package/dist/src/sync/v2/export/controls/ObjectPageHeader.js +0 -60
  235. package/dist/src/sync/v2/export/controls/ObjectPageHeader.js.map +0 -1
  236. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js +0 -62
  237. package/dist/src/sync/v2/export/controls/ObjectPageHeaderAction.js.map +0 -1
  238. package/dist/src/sync/v2/export/controls/ObjectPageLayout.js +0 -59
  239. package/dist/src/sync/v2/export/controls/ObjectPageLayout.js.map +0 -1
  240. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js +0 -144
  241. package/dist/src/sync/v2/export/controls/ObjectPageSectionsV2.js.map +0 -1
  242. package/dist/src/sync/v2/export/controls/ObjectPageTable.js +0 -335
  243. package/dist/src/sync/v2/export/controls/ObjectPageTable.js.map +0 -1
  244. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js +0 -61
  245. package/dist/src/sync/v2/export/controls/ObjectPageToolBarAction.js.map +0 -1
  246. package/dist/src/sync/v2/export/controls/Table.js +0 -679
  247. package/dist/src/sync/v2/export/controls/Table.js.map +0 -1
  248. package/dist/src/sync/v2/export/controls/TableColumn.js +0 -166
  249. package/dist/src/sync/v2/export/controls/TableColumn.js.map +0 -1
  250. package/dist/src/sync/v2/export/controls/ToolBar.js +0 -6
  251. package/dist/src/sync/v2/export/controls/ToolBar.js.map +0 -1
  252. package/dist/src/sync/v2/export/controls/index.js +0 -26
  253. package/dist/src/sync/v2/export/controls/index.js.map +0 -1
  254. package/dist/src/sync/v2/export/export.js +0 -615
  255. package/dist/src/sync/v2/export/export.js.map +0 -1
  256. package/dist/src/sync/v2/export/exportPage.js +0 -312
  257. package/dist/src/sync/v2/export/exportPage.js.map +0 -1
  258. package/dist/src/sync/v2/export/factory.js +0 -59
  259. package/dist/src/sync/v2/export/factory.js.map +0 -1
  260. package/dist/src/sync/v2/export/manifest.js +0 -114
  261. package/dist/src/sync/v2/export/manifest.js.map +0 -1
  262. package/dist/src/sync/v2/export/pages/AnalyticalListPage.js +0 -44
  263. package/dist/src/sync/v2/export/pages/AnalyticalListPage.js.map +0 -1
  264. package/dist/src/sync/v2/export/pages/ListReport.js +0 -41
  265. package/dist/src/sync/v2/export/pages/ListReport.js.map +0 -1
  266. package/dist/src/sync/v2/export/pages/ObjectPage.js +0 -100
  267. package/dist/src/sync/v2/export/pages/ObjectPage.js.map +0 -1
  268. package/dist/src/sync/v2/export/pages/OverviewPage.js +0 -178
  269. package/dist/src/sync/v2/export/pages/OverviewPage.js.map +0 -1
  270. package/dist/src/sync/v2/export/pages/index.js +0 -10
  271. package/dist/src/sync/v2/export/pages/index.js.map +0 -1
  272. package/dist/src/sync/v2/export/view-controller-generator.js +0 -141
  273. package/dist/src/sync/v2/export/view-controller-generator.js.map +0 -1
  274. package/dist/src/sync/v2/generate/analyticalListReport.js +0 -92
  275. package/dist/src/sync/v2/generate/analyticalListReport.js.map +0 -1
  276. package/dist/src/sync/v2/generate/generate.js +0 -96
  277. package/dist/src/sync/v2/generate/generate.js.map +0 -1
  278. package/dist/src/sync/v2/generate/index.js +0 -14
  279. package/dist/src/sync/v2/generate/index.js.map +0 -1
  280. package/dist/src/sync/v2/generate/listReport.js +0 -118
  281. package/dist/src/sync/v2/generate/listReport.js.map +0 -1
  282. package/dist/src/sync/v2/generate/objectPage.js +0 -556
  283. package/dist/src/sync/v2/generate/objectPage.js.map +0 -1
  284. package/dist/src/sync/v2/generate/overviewPage.js +0 -73
  285. package/dist/src/sync/v2/generate/overviewPage.js.map +0 -1
  286. package/dist/src/sync/v2/generate/utils.js +0 -476
  287. package/dist/src/sync/v2/generate/utils.js.map +0 -1
  288. package/dist/src/sync/v2/import/app/appProvider.js +0 -122
  289. package/dist/src/sync/v2/import/app/appProvider.js.map +0 -1
  290. package/dist/src/sync/v2/import/app/ovpProvider.js +0 -33
  291. package/dist/src/sync/v2/import/app/ovpProvider.js.map +0 -1
  292. package/dist/src/sync/v2/import/common/index.js +0 -423
  293. package/dist/src/sync/v2/import/common/index.js.map +0 -1
  294. package/dist/src/sync/v2/import/controls/table.js +0 -32
  295. package/dist/src/sync/v2/import/controls/table.js.map +0 -1
  296. package/dist/src/sync/v2/import/getPageType.js +0 -1
  297. package/dist/src/sync/v2/import/getPageType.js.map +0 -1
  298. package/dist/src/sync/v2/import/index.js +0 -11
  299. package/dist/src/sync/v2/import/index.js.map +0 -1
  300. package/dist/src/sync/v2/import/pages/analyticalListPage.js +0 -126
  301. package/dist/src/sync/v2/import/pages/analyticalListPage.js.map +0 -1
  302. package/dist/src/sync/v2/import/pages/listReport.js +0 -124
  303. package/dist/src/sync/v2/import/pages/listReport.js.map +0 -1
  304. package/dist/src/sync/v2/import/pages/objectPage.js +0 -695
  305. package/dist/src/sync/v2/import/pages/objectPage.js.map +0 -1
  306. package/dist/src/sync/v2/import/pages/overviewPage.js +0 -113
  307. package/dist/src/sync/v2/import/pages/overviewPage.js.map +0 -1
  308. package/dist/src/sync/v2/import/utils.js +0 -124
  309. package/dist/src/sync/v2/import/utils.js.map +0 -1
  310. package/dist/src/sync/v2/types.js +0 -33
  311. package/dist/src/sync/v2/types.js.map +0 -1
  312. package/dist/src/sync/v4/application.js +0 -80
  313. package/dist/src/sync/v4/application.js.map +0 -1
  314. package/dist/src/sync/v4/export/controls/FilterBar.js +0 -6
  315. package/dist/src/sync/v4/export/controls/FilterBar.js.map +0 -1
  316. package/dist/src/sync/v4/export/controls/ObjectPageCustomSection.js +0 -136
  317. package/dist/src/sync/v4/export/controls/ObjectPageCustomSection.js.map +0 -1
  318. package/dist/src/sync/v4/export/controls/ObjectPageHeader.js +0 -55
  319. package/dist/src/sync/v4/export/controls/ObjectPageHeader.js.map +0 -1
  320. package/dist/src/sync/v4/export/controls/ObjectPageHeaderSection.js +0 -65
  321. package/dist/src/sync/v4/export/controls/ObjectPageHeaderSection.js.map +0 -1
  322. package/dist/src/sync/v4/export/controls/ObjectPageLayout.js +0 -24
  323. package/dist/src/sync/v4/export/controls/ObjectPageLayout.js.map +0 -1
  324. package/dist/src/sync/v4/export/controls/ObjectPageTable.js +0 -245
  325. package/dist/src/sync/v4/export/controls/ObjectPageTable.js.map +0 -1
  326. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.js +0 -64
  327. package/dist/src/sync/v4/export/controls/ObjectPageTableColumn.js.map +0 -1
  328. package/dist/src/sync/v4/export/controls/ObjectPageToolBarAction.js +0 -21
  329. package/dist/src/sync/v4/export/controls/ObjectPageToolBarAction.js.map +0 -1
  330. package/dist/src/sync/v4/export/controls/Table.js +0 -318
  331. package/dist/src/sync/v4/export/controls/Table.js.map +0 -1
  332. package/dist/src/sync/v4/export/controls/TableColumn.js +0 -64
  333. package/dist/src/sync/v4/export/controls/TableColumn.js.map +0 -1
  334. package/dist/src/sync/v4/export/controls/ToolBar.js +0 -9
  335. package/dist/src/sync/v4/export/controls/ToolBar.js.map +0 -1
  336. package/dist/src/sync/v4/export/controls/ToolBarAction.js +0 -21
  337. package/dist/src/sync/v4/export/controls/ToolBarAction.js.map +0 -1
  338. package/dist/src/sync/v4/export/controls/index.js +0 -18
  339. package/dist/src/sync/v4/export/controls/index.js.map +0 -1
  340. package/dist/src/sync/v4/export/export.js +0 -422
  341. package/dist/src/sync/v4/export/export.js.map +0 -1
  342. package/dist/src/sync/v4/export/factory.js +0 -44
  343. package/dist/src/sync/v4/export/factory.js.map +0 -1
  344. package/dist/src/sync/v4/export/flexibleColumnLayout.js +0 -114
  345. package/dist/src/sync/v4/export/flexibleColumnLayout.js.map +0 -1
  346. package/dist/src/sync/v4/export/manifest.js +0 -208
  347. package/dist/src/sync/v4/export/manifest.js.map +0 -1
  348. package/dist/src/sync/v4/export/pages/AnalyticalListPage.js +0 -38
  349. package/dist/src/sync/v4/export/pages/AnalyticalListPage.js.map +0 -1
  350. package/dist/src/sync/v4/export/pages/ListReport.js +0 -33
  351. package/dist/src/sync/v4/export/pages/ListReport.js.map +0 -1
  352. package/dist/src/sync/v4/export/pages/ObjectPage.js +0 -39
  353. package/dist/src/sync/v4/export/pages/ObjectPage.js.map +0 -1
  354. package/dist/src/sync/v4/export/pages/index.js +0 -9
  355. package/dist/src/sync/v4/export/pages/index.js.map +0 -1
  356. package/dist/src/sync/v4/export/types.js +0 -3
  357. package/dist/src/sync/v4/export/types.js.map +0 -1
  358. package/dist/src/sync/v4/export/utils.js +0 -26
  359. package/dist/src/sync/v4/export/utils.js.map +0 -1
  360. package/dist/src/sync/v4/generate/generate.js +0 -56
  361. package/dist/src/sync/v4/generate/generate.js.map +0 -1
  362. package/dist/src/sync/v4/generate/index.js +0 -10
  363. package/dist/src/sync/v4/generate/index.js.map +0 -1
  364. package/dist/src/sync/v4/generate/listReport.js +0 -121
  365. package/dist/src/sync/v4/generate/listReport.js.map +0 -1
  366. package/dist/src/sync/v4/generate/objectPage.js +0 -376
  367. package/dist/src/sync/v4/generate/objectPage.js.map +0 -1
  368. package/dist/src/sync/v4/import/app/appProvider.js +0 -313
  369. package/dist/src/sync/v4/import/app/appProvider.js.map +0 -1
  370. package/dist/src/sync/v4/import/fragment.js +0 -130
  371. package/dist/src/sync/v4/import/fragment.js.map +0 -1
  372. package/dist/src/sync/v4/import/index.js +0 -9
  373. package/dist/src/sync/v4/import/index.js.map +0 -1
  374. package/dist/src/sync/v4/import/pages/analyticalListPage.js +0 -60
  375. package/dist/src/sync/v4/import/pages/analyticalListPage.js.map +0 -1
  376. package/dist/src/sync/v4/import/pages/listReport.js +0 -135
  377. package/dist/src/sync/v4/import/pages/listReport.js.map +0 -1
  378. package/dist/src/sync/v4/import/pages/objectPage.js +0 -236
  379. package/dist/src/sync/v4/import/pages/objectPage.js.map +0 -1
  380. package/dist/src/sync/v4/import/utils.js +0 -34
  381. package/dist/src/sync/v4/import/utils.js.map +0 -1
  382. package/dist/src/sync/v4/types.js +0 -3
  383. package/dist/src/sync/v4/types.js.map +0 -1
  384. package/dist/src/sync/v4/utils/StableIdHelper.js +0 -153
  385. package/dist/src/sync/v4/utils/StableIdHelper.js.map +0 -1
  386. package/dist/src/sync/v4/utils/utils.js +0 -170
  387. package/dist/src/sync/v4/utils/utils.js.map +0 -1
  388. package/dist/src/v2.js +0 -8
  389. package/dist/src/v2.js.map +0 -1
  390. package/dist/src/v4.js +0 -8
  391. package/dist/src/v4.js.map +0 -1
@@ -1,615 +0,0 @@
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
- // Note: the main functions or entry points reside in ./exportPage.ts
7
- const deepmerge_1 = __importDefault(require("deepmerge"));
8
- const controls_1 = require("./controls");
9
- const common_1 = require("../../common");
10
- const v2_1 = require("../../../v2");
11
- const application_1 = require("../application");
12
- const manifest_1 = require("./manifest");
13
- const utils_1 = require("../import/utils");
14
- /**
15
- * Create missing card from the manifest
16
- * @param key - card name
17
- * @param ovp - OVP section of manifest, to be updated
18
- */
19
- function createCard(key, ovp) {
20
- if (!ovp.cards) {
21
- ovp.cards = {};
22
- }
23
- if (!(key in ovp.cards)) {
24
- ovp.cards[key] = {};
25
- }
26
- }
27
- /**
28
- * Recursive function that searches for next avaialble id by increasing number by 1.
29
- * @param {boolean} sectionIds All ids in use.
30
- * @param {string} candidateId Candidate id to check if it is available.
31
- * @return {string} Id string.
32
- */
33
- function findAvailableId(sectionIds, candidateId) {
34
- if (sectionIds.includes(candidateId)) {
35
- const idParts = candidateId.split('|');
36
- if (idParts.length === 3) {
37
- idParts.push('1');
38
- }
39
- else {
40
- idParts[3] = (parseInt(idParts[3]) + 1).toString();
41
- }
42
- return findAvailableId(sectionIds, idParts.join('|'));
43
- }
44
- return candidateId;
45
- }
46
- /**
47
- * Private recursive function that traverses the content of the current object. It reads decorators and fills manifest entries and flex changes
48
- * @param configObject - current object to traverse
49
- * @param exportResults - object with all collected manifest entries and flex changes
50
- * @param jsonSchema - application specific schema
51
- * @param targetDefinition - the current entry point or definition in the app schema
52
- * @param {MetadataInstanceInterface} factory - factory for creating metadata instances
53
- * @param pathHierarchy - elements of the path indicating the hierarchical level
54
- */
55
- function transferManifestEntriesOVP(configObject, exportResults, jsonSchema, targetDefinition, factory, pathHierarchy) {
56
- if (targetDefinition) {
57
- if (targetDefinition['properties']) {
58
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
59
- processProperties(configObject, exportResults, jsonSchema, targetDefinition['properties'], factory, pathHierarchy);
60
- }
61
- else if (targetDefinition['additionalProperties']) {
62
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
63
- processProperties(configObject, exportResults, jsonSchema, targetDefinition['additionalProperties'], factory, pathHierarchy);
64
- }
65
- }
66
- }
67
- exports.transferManifestEntriesOVP = transferManifestEntriesOVP;
68
- /**
69
- * Assign sync rules to {currentObject}
70
- *
71
- * @param {string} structureName - name of the complex structure in schema
72
- * @param {object} currentObject - the given part of the configuration
73
- * @param {string} defaultTypeName - name of the default type that shall be taken if no class is registered for structureName
74
- */
75
- function assignReflectMetadataRules(factory, structureName, currentObject, defaultTypeName) {
76
- return factory.createInstance(v2_1.PageType.OverviewPage, defaultTypeName, currentObject, structureName);
77
- }
78
- exports.assignReflectMetadataRules = assignReflectMetadataRules;
79
- function processAnyOfDefinitionsOfOVP(pathHierarchy, propertyList, jsonSchema, currentObject, configObject, factory, exportResults) {
80
- pathHierarchy.pop();
81
- let newConfigObject = currentObject;
82
- for (const anyOfKey in propertyList['anyOf']) {
83
- if (propertyList['anyOf'][anyOfKey].$ref) {
84
- const definitionArray = propertyList['anyOf'][anyOfKey].$ref.split(common_1.DEFINITION_LINK_PREFIX);
85
- const nextTargetDefinition = jsonSchema['definitions'][definitionArray[definitionArray.length - 1]];
86
- const cardSettingsType = pathHierarchy[1];
87
- currentObject = configObject[cardSettingsType];
88
- newConfigObject = assignReflectMetadataRules(factory, cardSettingsType, currentObject, 'CustomCard');
89
- transferManifestEntriesOVP(newConfigObject, exportResults, jsonSchema, nextTargetDefinition, factory, [
90
- ...pathHierarchy
91
- ]);
92
- }
93
- else if (typeof propertyList['anyOf'][anyOfKey] === 'object') {
94
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
95
- processProperties(configObject, exportResults, jsonSchema, propertyList['anyOf'][anyOfKey].properties, factory, [...pathHierarchy, 'anyOfObject']);
96
- }
97
- }
98
- return newConfigObject;
99
- }
100
- /**
101
- * Transfer manifest settings from config to manifest
102
- * @param syncRule
103
- * @param pathHierarchy
104
- * @param key
105
- * @param exportResults
106
- * @param currentObject
107
- * @param configObject
108
- * @param exceptionList
109
- */
110
- function transferToManifest(syncRule, pathHierarchy, key, exportResults, currentObject, configObject, exceptionList) {
111
- const path = syncRule.manifest.path([...pathHierarchy, key]);
112
- const manifestSection = manifest_1.getManifestSectionByPathV2(exportResults.manifest, path);
113
- if (key in v2_1.CardSettingsType || key === 'settings') {
114
- manifestSection['settings'] = deepmerge_1.default(manifestSection['settings'] || {}, currentObject || {}, {
115
- arrayMerge: common_1.arrayCombineMerge
116
- });
117
- }
118
- else if (currentObject !== undefined) {
119
- const exportHandler = syncRule.manifest.export;
120
- if (exportHandler !== false) {
121
- if (exportHandler && typeof exportHandler === 'function') {
122
- exportHandler(manifestSection, configObject, key);
123
- }
124
- else if (typeof currentObject === 'object' && !exceptionList.includes(key)) {
125
- // colorPalette is an exception as it can contain anything as per our schema, so just replace the object
126
- manifestSection[key] = deepmerge_1.default(manifestSection[key] || {}, currentObject || {}, {
127
- arrayMerge: common_1.arrayCombineMerge
128
- });
129
- }
130
- else {
131
- manifestSection[key] = currentObject;
132
- }
133
- }
134
- }
135
- else if (manifestSection[key] !== undefined) {
136
- delete manifestSection[key];
137
- }
138
- }
139
- function transferCards(currentObject, jsonSchema, factory, exportResults) {
140
- Object.keys(currentObject).forEach((cardKey) => {
141
- const cardType = currentObject[cardKey].template;
142
- //Determine target defintion
143
- let targetDefinition;
144
- if (!Object.values(v2_1.CardTemplateType).includes(cardType)) {
145
- targetDefinition = ['CustomCard'];
146
- }
147
- else {
148
- targetDefinition = Object.keys(jsonSchema['definitions']).filter((definition) => {
149
- var _a, _b, _c;
150
- return ((_c = (_b = (_a = jsonSchema['definitions'][definition].properties) === null || _a === void 0 ? void 0 : _a.template) === null || _b === void 0 ? void 0 : _b.enum) === null || _c === void 0 ? void 0 : _c.indexOf(currentObject[cardKey].template)) > -1;
151
- });
152
- }
153
- //Get metadata
154
- currentObject[cardKey] = assignReflectMetadataRules(factory, targetDefinition[0], currentObject[cardKey], 'CustomCard');
155
- createCard(cardKey, exportResults['manifest'][v2_1.ManifestSection.ovp]);
156
- transferManifestEntriesOVP(currentObject[cardKey], exportResults, jsonSchema, jsonSchema['definitions'][targetDefinition[0]], factory, [cardKey]);
157
- });
158
- //check for deletions:
159
- Object.keys(exportResults.manifest[v2_1.ManifestSection.ovp].cards).forEach((manifestCard) => {
160
- if (!currentObject[manifestCard]) {
161
- delete exportResults.manifest[v2_1.ManifestSection.ovp].cards[manifestCard];
162
- }
163
- });
164
- }
165
- /**
166
- * Recursive function that transfers the content of a list of properties of a configuration to the overall exportResults
167
- * @param configObject - the given part of the configuration
168
- * @param exportResults - overall result list, to be updated
169
- * @param jsonSchema - app-specific JSOn schema
170
- * @param propertyList - current property list of the config (properties or additional properties)
171
- * @param {MetadataInstanceInterface} factory - factory for creating metadata instances
172
- * @param pathHierarchy - elements of the path indicating the hierarchical level
173
- */
174
- function processProperties(configObject, exportResults, jsonSchema, propertyList, factory, pathHierarchy) {
175
- let currentObject;
176
- let isAnyOfObject = false;
177
- let isObjectProperty = false;
178
- const exceptionList = ['colorPalette', 'tabs'];
179
- for (const key in propertyList) {
180
- currentObject = configObject[key];
181
- let syncRule = common_1.getReflectMetadata(configObject, key);
182
- if (pathHierarchy[pathHierarchy.length - 1] === 'anyOfObject') {
183
- isAnyOfObject = true;
184
- pathHierarchy.pop();
185
- }
186
- if (isAnyOfObject) {
187
- currentObject = configObject[pathHierarchy[pathHierarchy.length - 1]][key];
188
- syncRule = common_1.getReflectMetadata(configObject, pathHierarchy[pathHierarchy.length - 1]);
189
- }
190
- if (pathHierarchy[pathHierarchy.length - 1] === 'objectProperties') {
191
- isObjectProperty = true;
192
- pathHierarchy.pop();
193
- }
194
- if (isObjectProperty) {
195
- currentObject = configObject[pathHierarchy[pathHierarchy.length - 1]][key];
196
- syncRule = common_1.getReflectMetadata(configObject, pathHierarchy[pathHierarchy.length - 1]);
197
- }
198
- if (pathHierarchy[pathHierarchy.length - 1] === 'anyOf') {
199
- currentObject = processAnyOfDefinitionsOfOVP(pathHierarchy, propertyList, jsonSchema, currentObject, configObject, factory, exportResults);
200
- }
201
- if (syncRule === null || syncRule === void 0 ? void 0 : syncRule.manifest) {
202
- transferToManifest(syncRule, pathHierarchy, key, exportResults, currentObject, configObject, exceptionList);
203
- }
204
- if (currentObject && typeof currentObject === 'object' && propertyList[key]) {
205
- if (key === 'cards') {
206
- //inserts and updates:
207
- transferCards(currentObject, jsonSchema, factory, exportResults);
208
- }
209
- else if (propertyList[key].$ref) {
210
- const definitionArray = propertyList[key].$ref.split(common_1.DEFINITION_LINK_PREFIX);
211
- const nextTargetDefinition = jsonSchema['definitions'][definitionArray[definitionArray.length - 1]];
212
- currentObject = assignReflectMetadataRules(factory, key, currentObject, key === 'settings' ? 'CustomCard' : '');
213
- transferManifestEntriesOVP(currentObject, exportResults, jsonSchema, nextTargetDefinition, factory, [
214
- ...pathHierarchy,
215
- key
216
- ]);
217
- }
218
- else if (propertyList[key].anyOf) {
219
- processProperties(configObject, exportResults, jsonSchema, propertyList[key], factory, [
220
- ...pathHierarchy,
221
- key,
222
- 'anyOf'
223
- ]);
224
- }
225
- else if (propertyList[key]['properties'] !== undefined) {
226
- processProperties(configObject, exportResults, jsonSchema, propertyList[key].properties, factory, [
227
- ...pathHierarchy,
228
- key,
229
- 'objectProperties'
230
- ]);
231
- }
232
- }
233
- }
234
- }
235
- /**
236
- * Evaluates an export rule for a property, transfers to flex change
237
- * @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
238
- * @param breadcrumbs - list of breadcrumbs, i.e. ID parts for building the stable ID
239
- * @param syncRule - export rule from the object classes decorator
240
- * @param configObject - current (sub)object of the configuration file
241
- * @param ids - list of parent & child ids
242
- * @param title - title from the app schema (comprising for instance the facet ID)
243
- * @param key - key of the given property
244
- */
245
- function evaluateFlexRule(transferParameters, breadcrumbs, syncRule, ids, title, configObject, key) {
246
- let localBreadcrumbs;
247
- if (breadcrumbs.length === 0) {
248
- //only added on top = page level, do not forward
249
- localBreadcrumbs = ['page'];
250
- }
251
- else {
252
- localBreadcrumbs = breadcrumbs;
253
- }
254
- const controlId = syncRule.flex.controlId(transferParameters.baseId, ids, localBreadcrumbs, syncRule.flex.controlType, title);
255
- const flexChange = common_1.fillFlexChangeContent(configObject, syncRule, transferParameters.ui5Version, key, controlId);
256
- const completeFlexChange = syncRule.flex.createFlexChange(flexChange, transferParameters.exportResults.manifest);
257
- const flexChangeExists = transferParameters.exportResults.flexChanges.find((change) => {
258
- let result = false, oldChange = JSON.parse(change);
259
- oldChange = {
260
- content: oldChange['content'],
261
- selector: oldChange['selector']
262
- };
263
- let newChange = JSON.parse(completeFlexChange);
264
- newChange = {
265
- content: newChange['content'],
266
- selector: newChange['selector']
267
- };
268
- if (JSON.stringify(oldChange) === JSON.stringify(newChange)) {
269
- result = true;
270
- }
271
- return result;
272
- });
273
- if (!flexChangeExists) {
274
- transferParameters.exportResults.flexChanges.push(completeFlexChange);
275
- }
276
- }
277
- /**
278
- * Evaluates an export rule for a property, transfers to manifest setting
279
- * @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
280
- * @param syncRule - export rule from the object classes decorator
281
- * @param configObject - current (sub)object of the configuration file
282
- * @param ids - list of parent & child ids
283
- * @param title - title from the app schema (comprising for instance the facet ID)
284
- * @param key - key of the given property
285
- */
286
- function evaluateManifestRule(transferParameters, path, syncRule, key, configObject) {
287
- const manifestSection = manifest_1.getManifestSectionByPathV2(transferParameters.exportResults.manifest, path);
288
- const manifestKey = syncRule.manifest.key || key;
289
- if (configObject[key] !== undefined) {
290
- // In case of arrays we take over complete array
291
- if (!(transferParameters.propertyDefinition['type'] !== 'array' &&
292
- transferParameters.nextDefinition &&
293
- transferParameters.nextDefinition['targetDefinition'].type === 'object' &&
294
- transferParameters.nextDefinition['targetDefinition'].properties)) {
295
- const exportHandler = syncRule.manifest.export;
296
- if (exportHandler && typeof exportHandler === 'function') {
297
- exportHandler(manifestSection, configObject, key, manifestKey);
298
- }
299
- else if (exportHandler !== false) {
300
- manifestSection[manifestKey] = configObject[key];
301
- }
302
- }
303
- else if (transferParameters.propertyDefinition['type'] !== 'array' &&
304
- manifestSection[manifestKey] === undefined) {
305
- manifestSection[manifestKey] = {};
306
- }
307
- }
308
- else {
309
- if (Object.prototype.hasOwnProperty.call(manifestSection, manifestKey)) {
310
- delete manifestSection[manifestKey];
311
- }
312
- }
313
- common_1.deleteEmptyStructure(transferParameters.exportResults.manifest, path);
314
- }
315
- /**
316
- * Determines the path to a manifest setting, based on the syncRule
317
- * @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
318
- * @param breadcrumbs - list of breadcrumbs, i.e. ID parts for building the stable ID
319
- * @param {SyncRule} syncRule - export rule from the object classes decorator
320
- * @param configObject - current (sub)object of the configuration file
321
- * @param title - title from the app schema (comprising for instance the facet ID)
322
- * @returns the path to the manifest setting
323
- */
324
- function getManifestPath(transferParameters, breadcrumbs, syncRule, configObject, title) {
325
- let path;
326
- if (breadcrumbs[0] === 'sections') {
327
- if (breadcrumbs[1] === 'custom') {
328
- path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[2]);
329
- }
330
- else {
331
- path = syncRule.manifest.path(transferParameters.pageKeys, {}, (title === null || title === void 0 ? void 0 : title.startsWith(common_1.FacetTitlePrefix)) ? title.split(common_1.FacetTitlePrefix)[1] : breadcrumbs[1], breadcrumbs[breadcrumbs.length - 1]);
332
- path = path.replace('/@', '::').replace(/VOCWITHCOLONS/g, '::com.sap.vocabularies');
333
- }
334
- }
335
- else if (breadcrumbs[0] === 'table') {
336
- if (breadcrumbs[1] === 'columns' && breadcrumbs[2] === 'custom') {
337
- path = syncRule.manifest.path(transferParameters.pageKeys, transferParameters.exportResults.manifest, configObject['tabKey']);
338
- }
339
- else {
340
- path = syncRule.manifest.path(transferParameters.pageKeys, {}, breadcrumbs[breadcrumbs.length - 1]);
341
- }
342
- }
343
- else if (breadcrumbs[0] === 'keyPerformanceIndicators') {
344
- path = syncRule.manifest.path(transferParameters.pageKeys, transferParameters.exportResults.manifest, title);
345
- }
346
- else {
347
- path = syncRule.manifest.path(transferParameters.pageKeys);
348
- }
349
- return path;
350
- }
351
- /**
352
- * Evaluates an export rule for a property or object, transfers to flex change or manifest setting
353
- * @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
354
- * @param {SyncRule} syncRule - export rule from the object classes decorator
355
- * @param configObject - current (sub)object of the configuration file
356
- * @param breadcrumbs - list of breadcrumbs, i.e. ID parts for building the stable ID
357
- * @param ids - list of parent & child ids
358
- * @param title - title from the app schema (comprising for instance the facet ID)
359
- * @param key - key of the given property
360
- */
361
- function evaluateExportRule(transferParameters, syncRule, configObject, breadcrumbs, ids, title, key) {
362
- if (!syncRule) {
363
- return;
364
- }
365
- //eliminate subsections' hierarchy
366
- let index = breadcrumbs.indexOf('subsections');
367
- while (index > -1) {
368
- breadcrumbs.splice(index - 1, 2);
369
- index = breadcrumbs.indexOf('subsections');
370
- }
371
- if (syncRule.flex) {
372
- evaluateFlexRule(transferParameters, breadcrumbs, syncRule, ids, title, configObject, key);
373
- }
374
- else if (syncRule.manifest) {
375
- const path = getManifestPath(transferParameters, breadcrumbs, syncRule, configObject, title);
376
- evaluateManifestRule(transferParameters, path, syncRule, key, configObject);
377
- }
378
- }
379
- /**
380
- * Walks through the extensions registered in manifest and compares the columns of the fragment with the ones present in config.
381
- * If not present anymore, the extension column gets deleted from fragment.
382
- * @param path - path to extesnions section in manifest
383
- * @param exportResults - result structure, including the fragments that may get updated
384
- * @param entitySet - current entity set
385
- * @param config - current config JSON
386
- * @param sectionKey - section key
387
- * @param extensionType - extensionType
388
- * @param appId - application ID
389
- */
390
- function deleteObsoleteColumnsFromFragment(path, exportResults, entitySet, config, sectionKey, extensionType, appId) {
391
- const folderPath = path.substr(0, path.lastIndexOf('/'));
392
- const manifestSection = manifest_1.getManifestSectionByPathV2(exportResults.manifest, folderPath);
393
- const extensionPattern = path.substr(path.lastIndexOf('/') + 1);
394
- for (const key in manifestSection) {
395
- if (key.startsWith(extensionPattern)) {
396
- const keyParts = key.split('|');
397
- const keyEntitySet = keyParts[1];
398
- const keyTab = keyParts[2];
399
- if (keyEntitySet === entitySet) {
400
- //relevant extension. still present in config?
401
- const existingConfigEntries = config === null || config === void 0 ? void 0 : config.filter((column) => (column.tabKey === keyTab ||
402
- (keyTab === undefined && column.tabKey === '') ||
403
- (keyTab && sectionKey === keyTab)) &&
404
- column.extensionType === extensionType);
405
- if (!existingConfigEntries || existingConfigEntries.length === 0) {
406
- controls_1.deleteColumnFromFragment(manifestSection, key, appId, exportResults.fragments);
407
- // delete from manifest
408
- delete manifestSection[key];
409
- // delete cells entry
410
- if (key.startsWith(common_1.ViewTemplateType.ResponsiveTableColumnsExtension)) {
411
- const cellsPattern = key.replace(common_1.ViewTemplateType.ResponsiveTableColumnsExtension, common_1.ViewTemplateType.ResponsiveTableCellsExtension);
412
- controls_1.deleteColumnFromFragment(manifestSection, cellsPattern, appId, exportResults.fragments);
413
- // delete from manifest
414
- delete manifestSection[cellsPattern];
415
- }
416
- }
417
- }
418
- }
419
- }
420
- }
421
- /**
422
- * Clusters the custom columns if a config by the extension's path in manifest
423
- * @param customColumnsInConfig - list of all custom columns in config
424
- * @param schemaDefinition - schema definition of the table custom column
425
- * @param v2Page - current page in manifest
426
- * @param entitySet - current entity set
427
- * @param sectionKey key of the section (in case of OP)
428
- * @returns the custom columns, clustered by the manifest path
429
- */
430
- function clusterConfigColumnsByPath(customColumnsInConfig, schemaDefinition, v2Page, entitySet, sectionKey) {
431
- const cluster = {};
432
- for (const customColumn of customColumnsInConfig) {
433
- //verify that mandatory parameters are filled
434
- if (!customColumn['className'] ||
435
- !customColumn['fragmentName'] ||
436
- !customColumn['columnKey'] ||
437
- !customColumn['extensionType']) {
438
- continue;
439
- }
440
- //check fragment name
441
- if (schemaDefinition['properties']['fragmentName']['pattern']) {
442
- const namePattern = new RegExp(schemaDefinition['properties']['fragmentName']['pattern']);
443
- if (namePattern.test(customColumn['fragmentName']) === false) {
444
- continue;
445
- }
446
- }
447
- const { path, viewTemplateType } = controls_1.getCustomColumnPath(v2Page, entitySet, customColumn.tabKey || sectionKey, customColumn['extensionType']);
448
- if (!cluster[path]) {
449
- cluster[path] = {
450
- viewTemplateType: viewTemplateType,
451
- columns: []
452
- };
453
- }
454
- cluster[path].columns.push(customColumn);
455
- }
456
- return cluster;
457
- }
458
- /**
459
- * Transfers column extensions to manifest and fragment files
460
- * @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
461
- * @param {TableCustomColumns} customColumnsInConfig - config part comprising the table custom columns
462
- * @param {object} schemaDefinition - Column schema definition
463
- * @param {ObjectPageSectionData} [objectPageSectionData] - Object Page section's data containing target and key options.
464
- */
465
- function transferColumnExtensions(transferParameters, customColumnsInConfig, schemaDefinition, objectPageSectionData) {
466
- const sectionKey = objectPageSectionData ? objectPageSectionData.key : undefined;
467
- const sectionTarget = objectPageSectionData ? objectPageSectionData.target : undefined;
468
- const entitySet = sectionTarget || transferParameters.v2Page.entitySet;
469
- for (const extensionType in v2_1.TableColumnExtensionTypeV2) {
470
- const { path } = controls_1.getCustomColumnPath(transferParameters.v2Page, entitySet, sectionKey, extensionType);
471
- if (!path) {
472
- continue;
473
- }
474
- deleteObsoleteColumnsFromFragment(path, transferParameters.exportResults, entitySet, customColumnsInConfig, sectionKey, extensionType, transferParameters.appId);
475
- }
476
- if (customColumnsInConfig) {
477
- //cluster existing custom columns by manifest path (or tab key)
478
- const cluster = clusterConfigColumnsByPath(customColumnsInConfig, schemaDefinition, transferParameters.v2Page, entitySet, sectionKey);
479
- //Export to fragment
480
- for (const path in cluster) {
481
- controls_1.exportCustomColumnsToFragment(transferParameters.exportResults, path, cluster[path].columns, transferParameters.appId, cluster[path].viewTemplateType, transferParameters.logger);
482
- }
483
- }
484
- }
485
- /**
486
- * Recursive function that traverses the content of the current object. It reads decorators and fills manifest entries and flex changes
487
- * @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
488
- * @param configSections - sections from configuration object
489
- * @param pageKey - page key
490
- * @param parentIds - array of collected parent ids
491
- * @param breadcrumbs - array of properties that we are currently processing. Required for instance for table column name
492
- * @param targetDefinition - the current entry point or definition in the app schema
493
- */
494
- function transferManifestExtensions(transferParameters, configSections, pageKey, parentIds, breadcrumbs, targetDefinition) {
495
- const sectionIds = [];
496
- const entity = pageKey.split('|')[1];
497
- if (!configSections) {
498
- return;
499
- }
500
- for (const section of configSections) {
501
- const id = findAvailableId(sectionIds, [section.relativePosition, entity, section.relatedFacet].join('|'));
502
- sectionIds.push(id);
503
- }
504
- for (let index = 0; index < sectionIds.length; index++) {
505
- const definition = targetDefinition['anyOf'].find((element) => element.$ref.includes(configSections[index].constructor.name));
506
- const definitionArray = definition.$ref.split(common_1.DEFINITION_LINK_PREFIX);
507
- const nextTargetDefinition = transferParameters.appSchema['definitions'][definitionArray[definitionArray.length - 1]];
508
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
509
- transferManifestEntriesAndFlexChange(transferParameters, configSections[index], parentIds, [...breadcrumbs, sectionIds[index]], nextTargetDefinition);
510
- }
511
- // Delete removed manifest entries
512
- const manifestSections = manifest_1.getManifestSectionByPathV2(transferParameters.exportResults.manifest, application_1.getViewExtensionsPath());
513
- for (const key in manifestSections) {
514
- if (utils_1.isAssociatedCustomSection(key, entity) && !sectionIds.includes(key)) {
515
- delete manifestSections[key];
516
- }
517
- }
518
- }
519
- /**
520
- * Method returns converted section id by resolving passed section id and title from schema.
521
- * @param {string[]} breadcrumbs Array of properties that we are currently processing. Required for instance for table column name.
522
- * @param {string} title Title from JSON schema, comprising the facet ID
523
- * @returns {string | undefined} Resolved section id.
524
- */
525
- function getSectionId(breadcrumbs, title) {
526
- let sectionId = undefined;
527
- for (let i = breadcrumbs.length - 1; i >= 0; i--) {
528
- if (breadcrumbs[i] === 'table') {
529
- sectionId = breadcrumbs[i - 1];
530
- break;
531
- }
532
- }
533
- return common_1.convertSectionId(sectionId, title);
534
- }
535
- function transferIndexTable(currentConfigObject, transferParameters, title, propertyDefinition, key, ids, breadcrumbs) {
536
- if (!currentConfigObject || !(propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.additionalProperties)) {
537
- return;
538
- }
539
- Object.keys(currentConfigObject).forEach((newKey) => {
540
- const nextDefinition = common_1.getNextTargetDefinition(transferParameters.appSchema, title, currentConfigObject[newKey], propertyDefinition.additionalProperties, key, transferParameters.factory, transferParameters.pageType);
541
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
542
- transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, key], nextDefinition.targetDefinition, newKey);
543
- });
544
- }
545
- function transferCustomColumns(propertyDefinition, breadcrumbs, title, transferParameters, configObject, nextDefinition) {
546
- let objectPageSectionData;
547
- const target = common_1.getTargetFromCustomColumnRef(propertyDefinition.$ref);
548
- if (target) {
549
- objectPageSectionData = {
550
- target,
551
- key: getSectionId(breadcrumbs, title)
552
- };
553
- }
554
- transferColumnExtensions(transferParameters, configObject === null || configObject === void 0 ? void 0 : configObject.custom, nextDefinition.targetDefinition, objectPageSectionData);
555
- }
556
- function handleAnyOfDefinitions(propertyDefinition, transferParameters, title, currentConfigObject, key, ids, breadcrumbs) {
557
- propertyDefinition['anyOf'].forEach((element) => {
558
- const nextDefinition = common_1.getNextTargetDefinition(transferParameters.appSchema, title, currentConfigObject, element, key, transferParameters.factory, transferParameters.pageType);
559
- if (nextDefinition) {
560
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
561
- transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, key], nextDefinition.targetDefinition, nextDefinition.title);
562
- }
563
- });
564
- }
565
- /**
566
- * Function that traverses the content of the current object. It reads decorators and fills manifest entries and flex changes
567
- * @param {TransferParameterTypeV2} transferParameters - list of input parameters for the recursive function call
568
- * @param configObject - current (sub)object of the configuration file
569
- * @param parentIds - array of collected parent ids
570
- * @param breadcrumbs - array of properties that we are currently processing. Required for instance for table column name
571
- * @param schemaDefinition - the current entry point or definition in the app schema
572
- * @param title - title from the app schema (comprising for instance the facet ID)
573
- */
574
- function transferManifestEntriesAndFlexChange(transferParameters, configObject, parentIds, breadcrumbs, schemaDefinition, title) {
575
- let currentConfigObject;
576
- if (!(schemaDefinition === null || schemaDefinition === void 0 ? void 0 : schemaDefinition['properties'])) {
577
- return;
578
- }
579
- for (const key in schemaDefinition['properties']) {
580
- currentConfigObject = configObject && configObject[key];
581
- const childId = configObject && common_1.getChildId(configObject, key);
582
- const ids = childId ? [...parentIds, childId] : parentIds;
583
- const syncRule = common_1.getReflectMetadata(configObject, key);
584
- const propertyDefinition = (transferParameters.propertyDefinition = schemaDefinition['properties'][key]);
585
- const nextDefinition = (transferParameters.nextDefinition = common_1.getNextTargetDefinition(transferParameters.appSchema, title, currentConfigObject, propertyDefinition, key, transferParameters.factory, transferParameters.pageType));
586
- //Evaluate sync rule for the export
587
- evaluateExportRule(transferParameters, syncRule, configObject, [...breadcrumbs], ids, title, key);
588
- //index table
589
- transferIndexTable(currentConfigObject, transferParameters, title, propertyDefinition, key, ids, breadcrumbs);
590
- if (currentConfigObject === undefined || typeof currentConfigObject === 'object') {
591
- if ((propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.type) === 'array' &&
592
- (breadcrumbs[0] === 'sections' || breadcrumbs[0] === 'subsections') &&
593
- key === 'custom') {
594
- transferManifestExtensions(transferParameters, configObject[key], transferParameters.pageKeys[transferParameters.pageKeys.length - 1], ids, [...breadcrumbs, key], propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.items);
595
- }
596
- else if (nextDefinition && key === 'custom') {
597
- transferCustomColumns(propertyDefinition, breadcrumbs, title, transferParameters, configObject, nextDefinition);
598
- continue;
599
- }
600
- else if (nextDefinition) {
601
- transferManifestEntriesAndFlexChange(transferParameters, nextDefinition.configObject, ids, [...breadcrumbs, key], nextDefinition.targetDefinition, nextDefinition.title);
602
- }
603
- else if (propertyDefinition['anyOf']) {
604
- handleAnyOfDefinitions(propertyDefinition, transferParameters, title, currentConfigObject, key, ids, breadcrumbs);
605
- }
606
- }
607
- else if ((propertyDefinition === null || propertyDefinition === void 0 ? void 0 : propertyDefinition.$ref) === common_1.DEFINITION_LINK_PREFIX + 'TableCustomColumns') {
608
- //empty config ==> delete all given extensions
609
- transferColumnExtensions(transferParameters, [], transferParameters.appSchema['definitions']['TableCustomColumn']);
610
- continue;
611
- }
612
- }
613
- }
614
- exports.transferManifestEntriesAndFlexChange = transferManifestEntriesAndFlexChange;
615
- //# sourceMappingURL=export.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../../src/sync/v2/export/export.ts"],"names":[],"mappings":"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"}