@sapui5/sap.suite.ui.generic.template 1.131.1 → 1.132.0

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 (218) hide show
  1. package/package.json +1 -1
  2. package/src/sap/suite/ui/generic/template/.library +1 -1
  3. package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/SmartFilterBarExt.js +3 -1
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/SmartKpiTag.js +37 -11
  5. package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/visualfilterbar/FilterItem.js +3 -1
  6. package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/visualfilterbar/FilterItemMicroChart.js +19 -4
  7. package/src/sap/suite/ui/generic/template/AnalyticalListPage/control/visualfilterbar/SmartVisualFilterBar.js +46 -15
  8. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/DropDownController.js +42 -17
  9. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/KpiTagController.js +13 -3
  10. package/src/sap/suite/ui/generic/template/AnalyticalListPage/extensionAPI/ExtensionAPI.js +2 -2
  11. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_US_saptrc.properties +105 -105
  12. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sk.properties +1 -1
  13. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +1 -1
  14. package/src/sap/suite/ui/generic/template/AnalyticalListPage/util/FilterUtil.js +17 -6
  15. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  16. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +44 -22
  17. package/src/sap/suite/ui/generic/template/ListReport/controller/IappStateHandler.js +18 -2
  18. package/src/sap/suite/ui/generic/template/ListReport/extensionAPI/ExtensionAPI.js +2 -2
  19. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n.properties +1 -4
  20. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ar.properties +1 -3
  21. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_bg.properties +1 -3
  22. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ca.properties +1 -3
  23. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cnr.properties +1 -3
  24. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cs.properties +1 -3
  25. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cy.properties +1 -3
  26. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_da.properties +1 -3
  27. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_de.properties +1 -3
  28. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_el.properties +1 -3
  29. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en.properties +1 -3
  30. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_GB.properties +1 -3
  31. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_US_saprigi.properties +1 -3
  32. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_US_saptrc.properties +58 -58
  33. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_es.properties +1 -3
  34. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_es_MX.properties +1 -3
  35. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_et.properties +1 -3
  36. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fi.properties +1 -3
  37. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr.properties +1 -3
  38. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr_CA.properties +1 -3
  39. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hi.properties +1 -3
  40. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hr.properties +1 -3
  41. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hu.properties +1 -3
  42. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_id.properties +1 -3
  43. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_it.properties +1 -3
  44. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_iw.properties +1 -3
  45. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ja.properties +1 -3
  46. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_kk.properties +1 -3
  47. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ko.properties +1 -3
  48. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_lt.properties +1 -3
  49. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_lv.properties +1 -3
  50. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_mk.properties +1 -3
  51. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ms.properties +1 -3
  52. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_nl.properties +1 -3
  53. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_no.properties +1 -3
  54. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pl.properties +2 -4
  55. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pt.properties +1 -3
  56. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pt_PT.properties +1 -3
  57. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ro.properties +1 -3
  58. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ru.properties +1 -3
  59. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sh.properties +1 -3
  60. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sk.properties +1 -3
  61. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sl.properties +1 -3
  62. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sr.properties +1 -3
  63. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sv.properties +1 -3
  64. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_th.properties +1 -3
  65. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_tr.properties +1 -3
  66. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_uk.properties +1 -3
  67. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_vi.properties +1 -3
  68. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_zh_CN.properties +1 -3
  69. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_zh_TW.properties +1 -3
  70. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +1 -1
  71. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/BreakoutActionButtons.fragment.xml +3 -2
  72. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/FullscreenPage.fragment.xml +1 -1
  73. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartList.fragment.xml +3 -3
  74. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartTable.fragment.xml +1 -0
  75. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +107 -23
  76. package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +34 -1
  77. package/src/sap/suite/ui/generic/template/ObjectPage/controller/inlineCreationRows/InlineCreationRowsHelper.js +46 -4
  78. package/src/sap/suite/ui/generic/template/ObjectPage/controllerFrameworkExtensions.js +21 -4
  79. package/src/sap/suite/ui/generic/template/ObjectPage/extensionAPI/ExtensionAPI.js +29 -5
  80. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saptrc.properties +95 -95
  81. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +1 -1
  82. package/src/sap/suite/ui/generic/template/ObjectPage/view/Details.view.xml +2 -2
  83. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/CRUDActionButtons.fragment.xml +2 -2
  84. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Footer.fragment.xml +3 -3
  85. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/HeaderContainer.fragment.xml +4 -4
  86. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/HeaderImage.fragment.xml +4 -4
  87. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartChart.fragment.xml +1 -1
  88. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTable.fragment.xml +2 -1
  89. package/src/sap/suite/ui/generic/template/QuickCreate/i18n/i18n_en_US_saptrc.properties +14 -14
  90. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  91. package/src/sap/suite/ui/generic/template/QuickView/i18n/i18n_en_US_saptrc.properties +2 -2
  92. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  93. package/src/sap/suite/ui/generic/template/designtime/controls/DynamicPage.designtime.js +142 -194
  94. package/src/sap/suite/ui/generic/template/designtime/controls/ObjectPageLayout.designtime.js +204 -0
  95. package/src/sap/suite/ui/generic/template/designtime/controls/SmartFilterBar.designtime.js +236 -0
  96. package/src/sap/suite/ui/generic/template/designtime/utils/designtimeHelper.js +36 -9
  97. package/src/sap/suite/ui/generic/template/designtime/utils/designtimeUtils.js +67 -23
  98. package/src/sap/suite/ui/generic/template/detailTemplates/i18n/i18n_en_US_saptrc.properties +6 -6
  99. package/src/sap/suite/ui/generic/template/fragments/BreakoutActions.fragment.xml +2 -2
  100. package/src/sap/suite/ui/generic/template/fragments/DeterminingActions.fragment.xml +3 -2
  101. package/src/sap/suite/ui/generic/template/fragments/EasyFilter.fragment.xml +0 -6
  102. package/src/sap/suite/ui/generic/template/fragments/GlobalActions.fragment.xml +3 -2
  103. package/src/sap/suite/ui/generic/template/fragments/GridTableCells.fragment.xml +3 -2
  104. package/src/sap/suite/ui/generic/template/fragments/HeaderAddress.fragment.xml +2 -1
  105. package/src/sap/suite/ui/generic/template/fragments/HeaderContactWithDetailsPopover.fragment.xml +2 -1
  106. package/src/sap/suite/ui/generic/template/fragments/HeaderDataPointContent.fragment.xml +1 -1
  107. package/src/sap/suite/ui/generic/template/fragments/HeaderForm.fragment.xml +1 -1
  108. package/src/sap/suite/ui/generic/template/fragments/HeaderFormDataField.fragment.xml +12 -5
  109. package/src/sap/suite/ui/generic/template/fragments/HeaderPlainText.fragment.xml +1 -1
  110. package/src/sap/suite/ui/generic/template/fragments/HeaderRatingIndicator.fragment.xml +5 -7
  111. package/src/sap/suite/ui/generic/template/fragments/ProgressIndicator.fragment.xml +2 -2
  112. package/src/sap/suite/ui/generic/template/fragments/QuickViewSmartForm.fragment.xml +2 -2
  113. package/src/sap/suite/ui/generic/template/fragments/RatingIndicatorFacet.fragment.xml +2 -2
  114. package/src/sap/suite/ui/generic/template/fragments/SmartFormDataField.fragment.xml +4 -3
  115. package/src/sap/suite/ui/generic/template/fragments/SmartMicroChart.fragment.xml +1 -1
  116. package/src/sap/suite/ui/generic/template/fragments/SmartTableUiTableCommons.fragment.xml +2 -5
  117. package/src/sap/suite/ui/generic/template/fragments/TableCell.fragment.xml +7 -5
  118. package/src/sap/suite/ui/generic/template/fragments/TableColumnListItem.fragment.xml +2 -5
  119. package/src/sap/suite/ui/generic/template/fragments/ToolbarButton.fragment.xml +2 -2
  120. package/src/sap/suite/ui/generic/template/fragments/TreeTableColumns.fragment.xml +3 -2
  121. package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +10 -9
  122. package/src/sap/suite/ui/generic/template/genericUtilities/filterHelper.js +70 -2
  123. package/src/sap/suite/ui/generic/template/genericUtilities/polyFill.js +14 -0
  124. package/src/sap/suite/ui/generic/template/js/AnnotationHelper.js +53 -12
  125. package/src/sap/suite/ui/generic/template/js/QuickTemplates/QuickTemplateComponentFactory.js +25 -13
  126. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +16 -225
  127. package/src/sap/suite/ui/generic/template/lib/CRUDHelper.js +5 -3
  128. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +11 -4
  129. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +37 -12
  130. package/src/sap/suite/ui/generic/template/lib/ComponentUtils.js +3 -3
  131. package/src/sap/suite/ui/generic/template/lib/ContextBookkeeping.js +39 -23
  132. package/src/sap/suite/ui/generic/template/lib/FlexibleColumnLayoutHandler.js +13 -5
  133. package/src/sap/suite/ui/generic/template/lib/FlexibleColumnLayoutHelper.js +168 -0
  134. package/src/sap/suite/ui/generic/template/lib/MessageStripHelper.js +1 -1
  135. package/src/sap/suite/ui/generic/template/lib/ShellPersonalizationService.js +137 -0
  136. package/src/sap/suite/ui/generic/template/lib/SideEffectUtil.js +56 -1
  137. package/src/sap/suite/ui/generic/template/lib/TemplateComponent.js +24 -4
  138. package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +91 -36
  139. package/src/sap/suite/ui/generic/template/lib/ai/FioriAIHandler.js +30 -35
  140. package/src/sap/suite/ui/generic/template/lib/deletionHelper.js +10 -2
  141. package/src/sap/suite/ui/generic/template/lib/filterHelper.js +7 -3
  142. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +6 -15
  143. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +1 -9
  144. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +1 -9
  145. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +1 -9
  146. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +1 -9
  147. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +1 -9
  148. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +1 -9
  149. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +1 -9
  150. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +2 -10
  151. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +1 -9
  152. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +1 -9
  153. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +1 -9
  154. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_sappsd.properties +0 -11
  155. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +1 -9
  156. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saptrc.properties +174 -149
  157. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +3 -11
  158. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +1 -9
  159. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +1 -9
  160. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +1 -9
  161. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +1 -9
  162. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +1 -9
  163. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +1 -9
  164. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +1 -9
  165. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +1 -9
  166. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +1 -9
  167. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +1 -9
  168. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +1 -9
  169. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +1 -9
  170. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +1 -9
  171. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +1 -9
  172. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +1 -9
  173. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +1 -9
  174. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +1 -9
  175. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +1 -9
  176. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +1 -9
  177. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +1 -9
  178. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +1 -9
  179. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +1 -9
  180. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +1 -9
  181. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +1 -9
  182. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +1 -9
  183. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +1 -9
  184. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +1 -9
  185. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +1 -9
  186. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +1 -9
  187. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +1 -9
  188. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +1 -9
  189. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +1 -9
  190. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +1 -9
  191. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +3 -11
  192. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +1 -9
  193. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +1 -9
  194. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +59 -38
  195. package/src/sap/suite/ui/generic/template/library.js +7 -3
  196. package/src/sap/suite/ui/generic/template/listTemplates/fragments/ChartActions.fragment.xml +4 -3
  197. package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +4 -3
  198. package/src/sap/suite/ui/generic/template/listTemplates/i18n/i18n_en_US_saptrc.properties +1 -1
  199. package/src/sap/suite/ui/generic/template/manifestMerger/ChangePageConfiguration.js +1 -1
  200. package/src/sap/suite/ui/generic/template/support/DiagnosticsTool/DiagnosticsTool.js +15 -3
  201. package/src/sap/suite/ui/generic/template/support/DiagnosticsTool/view/DiagnosticsTool.view.xml +0 -24
  202. package/src/sap/suite/ui/generic/template/support/lib/CommonChecks.js +11 -19
  203. package/src/sap/suite/ui/generic/template/themes/base/ObjectPage.less +0 -4
  204. package/src/sap/suite/ui/generic/template/themes/sap_belize_base/ObjectPage.less +0 -4
  205. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ObjectPage.less +0 -4
  206. package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcb/AnalyticalListPage.less +0 -1
  207. package/src/sap/suite/ui/generic/template/themes/sap_fiori_3_hcw/AnalyticalListPage.less +0 -1
  208. package/src/sap/suite/ui/generic/template/themes/sap_hcb/base_ObjectPage.less +0 -4
  209. package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcb/AnalyticalListPage.less +0 -1
  210. package/src/sap/suite/ui/generic/template/themes/sap_horizon_hcw/AnalyticalListPage.less +0 -1
  211. package/src/sap/suite/ui/generic/template/fragments/ContactDetailsQuickViewGroup.fragment.xml +0 -36
  212. package/src/sap/suite/ui/generic/template/js/formatters/formatDisplayValueForProgressIndicator.js +0 -28
  213. package/src/sap/suite/ui/generic/template/js/formatters/formatImageUrl.js +0 -21
  214. package/src/sap/suite/ui/generic/template/js/formatters/formatRatingIndicatorAggregateCount.js +0 -21
  215. package/src/sap/suite/ui/generic/template/js/formatters/formatRatingIndicatorFooterText.js +0 -21
  216. package/src/sap/suite/ui/generic/template/js/formatters/formatRatingIndicatorSubTitle.js +0 -21
  217. package/src/sap/suite/ui/generic/template/js/formatters/setInfoHighlight.js +0 -21
  218. package/src/sap/suite/ui/generic/template/js/formatters/setRowNavigated.js +0 -26
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  "sap/base/util/extend",
25
25
  "sap/base/util/isPlainObject",
26
26
  "sap/m/NavContainer",
27
- "sap/f/FlexibleColumnLayout",
27
+ "sap/suite/ui/generic/template/lib/FlexibleColumnLayoutHelper",
28
28
  "sap/ui/core/UIComponent",
29
29
  "sap/ui/model/base/ManagedObjectModel",
30
30
  "sap/ui/model/Filter",
@@ -59,14 +59,16 @@ sap.ui.define([
59
59
  "sap/suite/ui/generic/template/lib/ai/FioriAIHandler",
60
60
  "sap/suite/ui/generic/template/lib/RetryAfterHandler",
61
61
  "sap/suite/ui/generic/template/js/RuntimeFormatters", // just to make sure that this class is loaded
62
- "sap/f/FlexibleColumnLayoutData",
63
- "sap/f/FlexibleColumnLayoutDataForDesktop",
64
- "sap/f/FlexibleColumnLayoutDataForTablet"
62
+ "sap/suite/ui/generic/template/lib/ShellPersonalizationService",
63
+ // As per UI5 2.0 mandate, making sure that the routers are loaded before the AppComponent is initialized.
64
+ // Please don't remove them
65
+ "sap/m/routing/Router",
66
+ "sap/f/routing/Router"
65
67
  ], function(
66
68
  extend,
67
69
  isPlainObject,
68
70
  NavContainer,
69
- FlexibleColumnLayout,
71
+ FlexibleColumnLayoutHelper,
70
72
  UIComponent,
71
73
  ManagedObjectModel,
72
74
  Filter,
@@ -97,13 +99,11 @@ sap.ui.define([
97
99
  JouleContextProvider,
98
100
  ServiceFactoryRegistry,
99
101
  VersionInfo,
100
- IllustratedMessageType,
102
+ IllustratedMessageType,
101
103
  FioriAIHandler,
102
104
  RetryAfterHandler,
103
105
  RuntimeFormatters,
104
- FlexibleColumnLayoutData,
105
- FlexibleColumnLayoutDataForDesktop,
106
- FlexibleColumnLayoutDataForTablet
106
+ ShellPersonalizationService
107
107
  ) {
108
108
  "use strict";
109
109
  var sClassName = "lib.AppComponent";
@@ -147,8 +147,6 @@ sap.ui.define([
147
147
 
148
148
  var fnLeaveAppResolve;
149
149
  var oTemplateContract = { // template contract object which is used for data interchange between framework classes
150
- getStoredLayout: getStoredLayout,
151
- setColumnDistributionModel: setColumnDistributionModel,
152
150
  oAppComponent: oAppComponent,
153
151
  leaveAppPromise: Promise.resolve(), // promise which is resolved once the user leaves the component
154
152
  ghostapp: (function(){
@@ -280,9 +278,6 @@ sap.ui.define([
280
278
  var oNavigationController; // instance of NavigationController
281
279
  var fnDeregister; // function to be called to deregister at TemplateContract
282
280
 
283
- var shellPersonalizationService;
284
- var applicationPersonalizers = {};
285
-
286
281
  // Begin: Private helper methods called in init
287
282
 
288
283
  // This function instantiates the global private model that can be used as named model with name _templPrivGlobal in all views and fragments.
@@ -519,215 +514,11 @@ sap.ui.define([
519
514
  var oRetryAfterHandler = new RetryAfterHandler(oTemplateContract, oAppComponent);
520
515
  oRetryAfterHandler.registerRetryAfterHandler();
521
516
 
522
- if (UShellContainer) {
523
- var oShellPersonalizationServicePromise = UShellContainer.getServiceAsync("PersonalizationV2");
524
- oShellPersonalizationServicePromise.then((oShellPersonalizationService) => {
525
- shellPersonalizationService = oShellPersonalizationService;
526
- });
527
- }
528
-
529
- oLogger.info("Init done for AppComponent " + sAppComponentId);
530
- }
531
-
532
- /**
533
- * Gets the personalizer from the shell service.
534
- * We set some defaults for the scope object.
535
- * @param persId Personalization object
536
- * @param scope Scope object
537
- * @param component
538
- * @returns {Promise<PersonalizerType> | undefined} Personalizer object which handles personalization
539
- */
540
- async function getPersonalizer(persId, scope, component) {
541
- if (!shellPersonalizationService) {
542
- return;
543
- }
544
- scope = {
545
- // merge some defaults
546
- keyCategory: shellPersonalizationService.constants.keyCategory.FIXED_KEY,
547
- writeFrequency: shellPersonalizationService.constants.writeFrequency.LOW,
548
- clientStorageAllowed: false,
549
- validity: Infinity,
550
- ...scope
551
- };
552
- return shellPersonalizationService.getPersonalizer(persId, scope, component);
553
- }
554
-
555
- /**
556
- * Prepares the container name for personalizer.
557
- * @returns Container name
558
- */
559
- function getContainerName() {
560
- // personalizer logs error if name longer than 40 symbols
561
- var sContainer = `App#${(oAppComponent).getManifest()["sap.app"].id}`;
562
- return sContainer;
563
- }
564
-
565
- /**
566
- * Initializes the personalizer to access the Application data stored in the shell Personalization.
567
- * @param {string} itemName The name of the item for which the personalizer is created.
568
- * @returns {Promise<PersonalizerType>} A personalizer
569
- */
570
- async function getApplicationPersonalizer(itemName) {
571
- if (!applicationPersonalizers[itemName]) {
572
- applicationPersonalizers[itemName] = getPersonalizer(
573
- {
574
- container: getContainerName(),
575
- item: itemName
576
- },
577
- {},
578
- oAppComponent
579
- );
580
- }
581
- return applicationPersonalizers[itemName];
582
- }
583
-
584
- /**
585
- * Returns data from the personalization service.
586
- * @param {string} itemName
587
- * @returns {Promise<object | undefined>} Data
588
- */
589
- async function getApplicationPersonalizationData(itemName) {
590
- return (await (await getApplicationPersonalizer(itemName))?.getPersData());
591
- }
592
-
593
- /**
594
- * Stores an object in the personalization service.
595
- * @param {string} itemName
596
- * @param {object} data
597
- * @returns {Promise<void>} A promise
598
- */
599
- async function setApplicationPersonalizationData(itemName, data) {
600
- (await getApplicationPersonalizer(itemName)).setPersData(data);
601
- }
602
-
603
- /**
604
- * Retieves the FCL state from the personalization service.
605
- * @returns The FCL state
606
- */
607
- async function getFCLPersonalizationData() {
608
- var oEmptyFCLState = {
609
- defaultLayouts: {},
610
- columnsDistribution: {
611
- desktop: {},
612
- tablet: {}
613
- }
614
- };
615
- return ((await getApplicationPersonalizationData("FCL-Personalization")) ?? oEmptyFCLState);
616
- }
517
+ oTemplateContract.oShellPersonalizationService = new ShellPersonalizationService(oTemplateContract);
518
+ var oShellPersonalizatonServicePromise = oTemplateContract.oShellPersonalizationService.init();
519
+ oTemplateContract.oBusyHelper.setBusy(oShellPersonalizatonServicePromise, undefined, undefined, true);
617
520
 
618
- /**
619
- * Sets the FCL state in the personalization service.
620
- * @param fclState The FCL state
621
- */
622
- function setFCLPersonalizationData(fclState) {
623
- setApplicationPersonalizationData("FCL-Personalization", fclState);
624
- }
625
-
626
- /**
627
- * Requests the FCL state from the personalization service and sets the model accordingly.
628
- */
629
- async function setColumnDistributionModel() {
630
- if (!shellPersonalizationService) {
631
- return;
632
- }
633
- var oColumnsDistribution = (await getFCLPersonalizationData()).columnsDistribution;
634
- if (oColumnsDistribution) {
635
- var oTemplatePrivateGlobalModel = oAppComponent.getModel("_templPrivGlobal");
636
- oTemplatePrivateGlobalModel.setProperty("/generic/FCL/FCLColumnsDistribution", oColumnsDistribution);
637
- }
638
- }
639
-
640
- /**
641
- * Is called when the user changes the FCL columns distribution.
642
- * Updates the FCL state in the personalization service.
643
- * @param {Event<{ media: "tablet" | "desktop"; layout: LayoutTypeType; columnsSizes: string }>} event
644
- */
645
- async function onColumnsDistributionChange(event) {
646
- if (!shellPersonalizationService) {
647
- return;
648
- }
649
-
650
- var { media, layout, columnsSizes } = event.getParameters();
651
-
652
- var oTemplatePrivateGlobalModel = oAppComponent.getModel("_templPrivGlobal");
653
- oTemplatePrivateGlobalModel.setProperty(`/generic/FCL/FCLColumnsDistribution/${media}/${layout}`, columnsSizes);
654
-
655
- var oFclState = await getFCLPersonalizationData();
656
- var iColumnsDisplayed = getNumberOfColumnsFromLayout(layout);
657
- if (iColumnsDisplayed) {
658
- oFclState.defaultLayouts[iColumnsDisplayed] = layout;
659
- oFclState.columnsDistribution[media][layout] = columnsSizes;
660
- setFCLPersonalizationData(oFclState);
661
- }
662
- }
663
-
664
- /**
665
- * Gets the number of columns displayed in the FCL based on the layout.
666
- * @param {LayoutTypeType} layout The layout
667
- * @returns {1 | 2 | 3 | null} The number of columns displayed
668
- */
669
- function getNumberOfColumnsFromLayout(layout) {
670
- var iColumnsDisplayed = /^(One|Two|Three)Column/.exec(layout)?.[1];
671
- switch (iColumnsDisplayed) {
672
- case "One":
673
- return 1;
674
- case "Two":
675
- return 2;
676
- case "Three":
677
- return 3;
678
- default:
679
- return null;
680
- }
681
- }
682
-
683
- /**
684
- * Gets the layout stored in the personalization service based on the proposed layout.
685
- * @param {LayoutTypeType | undefined } proposedLayout
686
- * @returns The FCL layout stored in the personalization service
687
- */
688
- async function getStoredLayout(oProposedLayout) {
689
- if (shellPersonalizationService) {
690
- var iColumnsDisplayed = getNumberOfColumnsFromLayout(oProposedLayout);
691
- if (iColumnsDisplayed) {
692
- var defaultLayouts = (await getFCLPersonalizationData()).defaultLayouts;
693
- return defaultLayouts?.[iColumnsDisplayed] ?? oProposedLayout;
694
- }
695
- }
696
- return oProposedLayout;
697
- }
698
-
699
- function initFlexibleColumnLayout() {
700
- var oFCL = new FlexibleColumnLayout();
701
-
702
- var oLayoutData = new FlexibleColumnLayoutData();
703
- var oDesktopLayoutData = new FlexibleColumnLayoutDataForDesktop();
704
- var oTabletLayoutData = new FlexibleColumnLayoutDataForTablet();
705
-
706
- var sFCLColumnsDistributionPath = "_templPrivGlobal>/generic/FCL/FCLColumnsDistribution";
707
- var sDesktopFCLColumnsDistributionPath = `${sFCLColumnsDistributionPath}/desktop`;
708
- var sTabletFCLColumnsDistributionPath = `${sFCLColumnsDistributionPath}/tablet`;
709
-
710
- oDesktopLayoutData.bindProperty("twoColumnsBeginExpanded", `${sDesktopFCLColumnsDistributionPath}/TwoColumnsBeginExpanded`);
711
- oDesktopLayoutData.bindProperty("twoColumnsMidExpanded", `${sDesktopFCLColumnsDistributionPath}/TwoColumnsMidExpanded`);
712
- oDesktopLayoutData.bindProperty("threeColumnsBeginExpandedEndHidden", `${sDesktopFCLColumnsDistributionPath}/ThreeColumnsBeginExpandedEndHidden`);
713
- oDesktopLayoutData.bindProperty("threeColumnsEndExpanded", `${sDesktopFCLColumnsDistributionPath}/ThreeColumnsEndExpanded`);
714
- oDesktopLayoutData.bindProperty("threeColumnsMidExpanded", `${sDesktopFCLColumnsDistributionPath}/ThreeColumnsMidExpanded`);
715
- oDesktopLayoutData.bindProperty("threeColumnsMidExpandedEndHidden", `${sDesktopFCLColumnsDistributionPath}/ThreeColumnsMidExpandedEndHidden`);
716
-
717
- oTabletLayoutData.bindProperty("twoColumnsBeginExpanded", `${sTabletFCLColumnsDistributionPath}/TwoColumnsBeginExpanded`);
718
- oTabletLayoutData.bindProperty("twoColumnsMidExpanded", `${sTabletFCLColumnsDistributionPath}/TwoColumnsMidExpanded`);
719
- oTabletLayoutData.bindProperty("threeColumnsBeginExpandedEndHidden", `${sTabletFCLColumnsDistributionPath}/ThreeColumnsBeginExpandedEndHidden`);
720
- oTabletLayoutData.bindProperty("threeColumnsEndExpanded", `${sTabletFCLColumnsDistributionPath}/ThreeColumnsEndExpanded`);
721
- oTabletLayoutData.bindProperty("threeColumnsMidExpanded", `${sTabletFCLColumnsDistributionPath}/ThreeColumnsMidExpanded`);
722
- oTabletLayoutData.bindProperty("threeColumnsMidExpandedEndHidden", `${sTabletFCLColumnsDistributionPath}/ThreeColumnsMidExpandedEndHidden`);
723
-
724
- oLayoutData.setDesktopLayoutData(oDesktopLayoutData);
725
- oLayoutData.setTabletLayoutData(oTabletLayoutData);
726
- oFCL.setAggregation("layoutData", oLayoutData);
727
-
728
- oFCL.attachColumnsDistributionChange(onColumnsDistributionChange);
729
-
730
- return oFCL;
521
+ oLogger.info("Init done for AppComponent " + sAppComponentId);
731
522
  }
732
523
 
733
524
  function createContent(){
@@ -736,8 +527,8 @@ sap.ui.define([
736
527
  return "";
737
528
  }
738
529
  if (oAppComponent.getFlexibleColumnLayout()){
739
- var oFCL = initFlexibleColumnLayout();
740
-
530
+ var oFCL = new FlexibleColumnLayoutHelper(oTemplateContract).initFlexibleColumnLayout();
531
+
741
532
  oTemplateContract.oNavigationHost = oFCL;
742
533
  oTemplateContract.aNavigationObservers = [
743
534
  new ProcessObserver({
@@ -1160,7 +951,7 @@ sap.ui.define([
1160
951
  * @public
1161
952
  * @extends sap.ui.core.UIComponent
1162
953
  * @author SAP SE
1163
- * @version 1.131.1
954
+ * @version 1.132.0
1164
955
  * @name sap.suite.ui.generic.template.lib.AppComponent
1165
956
  */
1166
957
  var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
@@ -216,7 +216,7 @@ sap.ui.define(["sap/ui/model/Context", "sap/suite/ui/generic/template/lib/Messag
216
216
  ]);
217
217
  var sEdit = oResourceObject.getText("Edit");
218
218
  var sCancel = oResourceObject.getText("CANCEL");
219
- MessageBox.warning(sWarningText, {
219
+ MessageBox.warning(sWarningText, {
220
220
  title: oResourceObject.getText("ST_UNSAVED_CHANGES_TITLE"),
221
221
  actions: [sEdit, sCancel],
222
222
  emphasizedAction: sEdit,
@@ -224,7 +224,7 @@ sap.ui.define(["sap/ui/model/Context", "sap/suite/ui/generic/template/lib/Messag
224
224
  if (sAction === sEdit) {
225
225
  resolve();
226
226
  } else if (sAction === sCancel) {
227
- if (bOpenInEditMode) {
227
+ if (bOpenInEditMode && oViewProxy && oViewProxy.navigateUp) {
228
228
  oViewProxy.navigateUp();
229
229
  }
230
230
  }
@@ -368,7 +368,9 @@ sap.ui.define(["sap/ui/model/Context", "sap/suite/ui/generic/template/lib/Messag
368
368
  });
369
369
  oApplication.getBusyHelper().setBusy(oUnsavedChangesEditPromise, true);
370
370
  };
371
- var editRejection = Function.prototype;
371
+ var editRejection = reject({
372
+ cancelled: true
373
+ });
372
374
  var unSavedChangesDialogPromise = fnUnsavedChangesDialog(undefined, oResponse.DraftAdministrativeData,oCommonUtils, oViewProxy, bOpenInEditMode);
373
375
  unSavedChangesDialogPromise.then(editConfirmation,editRejection);
374
376
  }
@@ -27,7 +27,8 @@ sap.ui.define(["sap/ui/base/Object",
27
27
  'sap/ui/performance/trace/FESRHelper',
28
28
  "sap/ui/core/CustomData",
29
29
  "sap/m/VBox",
30
- "sap/suite/ui/generic/template/genericUtilities/utils"
30
+ "sap/suite/ui/generic/template/genericUtilities/utils",
31
+ "sap/ui/core/Element"
31
32
  ], function(
32
33
  BaseObject,
33
34
  Event,
@@ -58,7 +59,9 @@ sap.ui.define(["sap/ui/base/Object",
58
59
  FESRHelper,
59
60
  CustomData,
60
61
  VBox,
61
- genericUtils) {
62
+ genericUtils,
63
+ Element
64
+ ) {
62
65
  "use strict";
63
66
 
64
67
  var oLogger = new FeLogger("lib.CommonEventHandlers").getLogger();
@@ -829,7 +832,7 @@ sap.ui.define(["sap/ui/base/Object",
829
832
  // Element.closest is not supported in IE11 so we are injecting polyFill as dependency
830
833
  var closestUI5ControlNode = oElement.closest('[data-sap-ui]');
831
834
  if (closestUI5ControlNode) {
832
- oControl = sap.ui.getCore().byId(closestUI5ControlNode.id);
835
+ oControl = Element.getElementById(closestUI5ControlNode.id);
833
836
  }
834
837
  }
835
838
  }
@@ -1663,6 +1666,10 @@ sap.ui.define(["sap/ui/base/Object",
1663
1666
  if (oError.lockedByUser) {
1664
1667
  var sLockText = oCommonUtils.getText("ST_GENERIC_DRAFT_LOCKED_BY_USER", [" ", oError.lockedByUser]);
1665
1668
  MessageBox.error(sLockText);
1669
+ } else if (oError.cancelled) {
1670
+ if (oViewProxy && oViewProxy.navigateUp){
1671
+ oViewProxy.navigateUp();
1672
+ }
1666
1673
  } else {
1667
1674
  MessageUtils.handleError(MessageUtils.operations.editEntity, oController, oServices, oError);
1668
1675
  if (oViewProxy && oViewProxy.navigateUp){
@@ -2605,7 +2612,7 @@ sap.ui.define(["sap/ui/base/Object",
2605
2612
  function onSmartLabelAttachFieldVisibility(oSmartField, sViewId){
2606
2613
  var sValue = oSmartField.data('LabelId');
2607
2614
  var sSmartLabelId = sViewId + '--' + sValue;
2608
- var oSmartLabel = sap.ui.getCore().byId(sSmartLabelId);
2615
+ var oSmartLabel = Element.getElementById(sSmartLabelId);
2609
2616
  if (oSmartLabel) {
2610
2617
  oSmartLabel.attachFieldVisibilityChange(oSmartField);
2611
2618
  }
@@ -15,9 +15,29 @@ sap.ui.define(["sap/ui/base/Object",
15
15
  "sap/ui/core/IconPool",
16
16
  "sap/ui/export/util/Filter",
17
17
  "sap/ui/model/odata/ODataUtils",
18
- "sap/ui/comp/util/TableUtil"
19
- ], function(BaseObject, ControllerExtension, MessageBox, SelectionVariant, controlHelper, metadataAnalyser,
20
- testableHelper, FeLogger, odata4analytics, extend, deepExtend, FeError, ControlStateWrapperFactory, oDataModelHelper, IconPool, ExportFilter, ODataUtils, TableUtil) {
18
+ "sap/ui/comp/util/TableUtil",
19
+ "sap/ui/core/Element"
20
+ ], function (
21
+ BaseObject,
22
+ ControllerExtension,
23
+ MessageBox,
24
+ SelectionVariant,
25
+ controlHelper,
26
+ metadataAnalyser,
27
+ testableHelper,
28
+ FeLogger,
29
+ odata4analytics,
30
+ extend,
31
+ deepExtend,
32
+ FeError,
33
+ ControlStateWrapperFactory,
34
+ oDataModelHelper,
35
+ IconPool,
36
+ ExportFilter,
37
+ ODataUtils,
38
+ TableUtil,
39
+ Element
40
+ ) {
21
41
  "use strict";
22
42
  var sClassName = "lib.CommonUtils";
23
43
 
@@ -764,11 +784,16 @@ sap.ui.define(["sap/ui/base/Object",
764
784
 
765
785
  setComponentRefreshBehaviour(oOutbound);
766
786
 
767
- oServices.oApplication.navigateExternal(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(),
768
- null, fnHandleError);
769
- //null object has to be passed to the NavigationHandler as an
770
- //indicator that the state should not be overwritten
771
- //if draft enabled then passing NavigateExternal else on back button passing LeavePage
787
+ // We now ensure that the 'sap-ushell-navmode' parameter is passed to the NavigationHandler.navigate method
788
+ // and skip setting the app to busy mode when opening a new tab
789
+ if (oOutbound.parameters["sap-ushell-navmode"] === "explace") {
790
+ oNavigationHandler.navigate(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, null, null, oOutbound.parameters["sap-ushell-navmode"]);
791
+ } else {
792
+ oServices.oApplication.navigateExternal(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, fnHandleError);
793
+ //null object has to be passed to the NavigationHandler as an
794
+ //indicator that the state should not be overwritten
795
+ //if draft enabled then passing NavigateExternal else on back button passing LeavePage
796
+ }
772
797
  }, Function.prototype, "LeaveApp");
773
798
  }
774
799
 
@@ -913,7 +938,7 @@ sap.ui.define(["sap/ui/base/Object",
913
938
  */
914
939
  function fnGetSemanticObjectLinkInfo (oEvent) {
915
940
  var sSmartLinkId = oEvent.getParameter("originalId"),
916
- oSmartLink = sap.ui.getCore().byId(sSmartLinkId),
941
+ oSmartLink = Element.getElementById(sSmartLinkId),
917
942
  oOwnerControl = getOwnerControl(oSmartLink, true),
918
943
  oSourceInfo = Object.create(null);
919
944
 
@@ -1345,7 +1370,7 @@ sap.ui.define(["sap/ui/base/Object",
1345
1370
  */
1346
1371
  function fnGetSmartTableDefaultVariant(oSmartTable) {
1347
1372
  var tableVariantId = oSmartTable.getId() + "-variant";
1348
- var oVM = sap.ui.getCore().byId(tableVariantId);
1373
+ var oVM = Element.getElementById(tableVariantId);
1349
1374
  var sVariantKey = oVM.getDefaultVariantKey();
1350
1375
  return sVariantKey === oVM.STANDARDVARIANTKEY ? "" : sVariantKey;
1351
1376
  }
@@ -1353,7 +1378,7 @@ sap.ui.define(["sap/ui/base/Object",
1353
1378
  // Return the default variant id for SmartChart
1354
1379
  function fnGetSmartChartDefaultVariant(oSmartChart) {
1355
1380
  var chartVariantId = oSmartChart.getId() + "-variant";
1356
- var oVM = sap.ui.getCore().byId(chartVariantId);
1381
+ var oVM = Element.getElementById(chartVariantId);
1357
1382
  var sVariantKey = oVM.getDefaultVariantKey();
1358
1383
  return sVariantKey === oVM.STANDARDVARIANTKEY ? "" : sVariantKey;
1359
1384
  }
@@ -1603,7 +1628,7 @@ sap.ui.define(["sap/ui/base/Object",
1603
1628
  var oEventSource = oEvent.getSource();
1604
1629
  return controlHelper.isButton(oEventSource) ?
1605
1630
  oEventSource.data() :
1606
- sap.ui.getCore().byId(oController.createId(getElementCustomData(oEventSource)["ActionId"])).data();
1631
+ Element.getElementById(oController.createId(getElementCustomData(oEventSource)["ActionId"])).data();
1607
1632
  }
1608
1633
 
1609
1634
  /**
@@ -491,7 +491,7 @@ sap.ui.define([
491
491
  if (oComponentRegistryEntry.routingSpec && oComponentRegistryEntry.routingSpec.noOData){
492
492
  fnPageDataLoadedOnNavigation(null, bAreKeysDifferent);
493
493
  }
494
- return;
494
+ return Promise.resolve();
495
495
  }
496
496
  var oViewReadyPromise = Promise.resolve();
497
497
  if (oComponentRegistryEntry.oController) {
@@ -511,10 +511,10 @@ sap.ui.define([
511
511
  }
512
512
  var oComponentContainer = oComponent.getComponentContainer();
513
513
  if (!oComponentContainer){
514
- return;
514
+ return Promise.resolve();
515
515
  }
516
516
 
517
- oViewReadyPromise.then(function() {
517
+ return oViewReadyPromise.then(function() {
518
518
  var oUIModel = oComponent.getModel("ui");
519
519
  var bIsNonDraftCreate = !!oComponentRegistryEntry.nonDraftCreateContext;
520
520
  if (bIsNonDraftCreate) {
@@ -126,13 +126,17 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/each", "sap/base/util/extend
126
126
  var oTreeNode = oTemplateContract.mEntityTree[sEntitySet];
127
127
  if (oTreeNode && !oTreeNode.noOData){
128
128
  if (aKeysFromIdentity){
129
+ // Get the root context's info for the current draft context
130
+ oRootContextInfo = getRootContextInfo(oTreeNode, aKeysFromIdentity);
131
+ // If the current context is a draft, register context info for the active sibling as well
129
132
  if (oContextInfo.bIsDraft){
130
133
  var aActiveKeys = [];
131
134
  var oActiveFoundPromise = oTemplateContract.oApplicationProxy.fillSiblingKeyPromise(oTreeNode, aKeysFromIdentity, aActiveKeys);
132
135
  oActiveFoundPromise.then(function(oReplaceNode){
133
136
  var sReplacePath = oReplaceNode.getPath(3, aActiveKeys);
134
- if (!mPath2ContextData[sReplacePath]){
135
- mPath2ContextData[sReplacePath] = {
137
+ var oActiveContextData = mPath2ContextData[sReplacePath];
138
+ if (!oActiveContextData){
139
+ oActiveContextData = {
136
140
  oContextInfo: {
137
141
  bIsDraft: false,
138
142
  bIsDraftSupported: true,
@@ -142,30 +146,18 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/each", "sap/base/util/extend
142
146
  },
143
147
  aKeysFromIdentity: aActiveKeys
144
148
  };
149
+ // Finally add the active context data to the cache
150
+ mPath2ContextData[sReplacePath] = oActiveContextData;
151
+ }
152
+
153
+ // Fill rootContextInfo for the active context's data
154
+ if (!oActiveContextData.oRootContextInfo) {
155
+ oActiveContextData.oRootContextInfo = getRootContextInfo(oReplaceNode, aActiveKeys);
156
+ // Add the active context's data to root context info's children
157
+ oActiveContextData.oRootContextInfo.childContexts[sReplacePath] = oActiveContextData;
145
158
  }
146
159
  });
147
160
  }
148
- if (oTreeNode && !oTreeNode.noOData){
149
- var oMainObjectNode = oTemplateContract.oApplicationProxy.getAncestralNode(oTreeNode, 1);
150
- var oActiveDraftInfoForDraftRoot = mActiveDraftRoots[oMainObjectNode.entitySet];
151
- if (!oActiveDraftInfoForDraftRoot){
152
- oActiveDraftInfoForDraftRoot = {
153
- treeNode: oMainObjectNode,
154
- draftRoots: Object.create(null)
155
- };
156
- mActiveDraftRoots[oMainObjectNode.entitySet] = oActiveDraftInfoForDraftRoot;
157
- }
158
- var sRootKey = aKeysFromIdentity[1];
159
- oRootContextInfo = oActiveDraftInfoForDraftRoot[sRootKey];
160
- if (!oRootContextInfo){
161
- oRootContextInfo = {
162
- treeNode: oMainObjectNode,
163
- key: sRootKey,
164
- childContexts: Object.create(null)
165
- };
166
- oActiveDraftInfoForDraftRoot[sRootKey] = oRootContextInfo;
167
- }
168
- }
169
161
  }
170
162
  var oModel = oContext.getModel();
171
163
  var oMetaModel = oModel.getMetaModel();
@@ -201,6 +193,30 @@ sap.ui.define(["sap/ui/base/Object", "sap/base/util/each", "sap/base/util/extend
201
193
  return oContextInfo;
202
194
  }
203
195
 
196
+ // Gets the root context's info for the given tree node
197
+ function getRootContextInfo(oTreeNode, aKeysFromIdentity) {
198
+ var oMainObjectNode = oTemplateContract.oApplicationProxy.getAncestralNode(oTreeNode, 1);
199
+ var oActiveDraftInfoForDraftRoot = mActiveDraftRoots[oMainObjectNode.entitySet];
200
+ if (!oActiveDraftInfoForDraftRoot){
201
+ oActiveDraftInfoForDraftRoot = {
202
+ treeNode: oMainObjectNode,
203
+ draftRoots: Object.create(null)
204
+ };
205
+ mActiveDraftRoots[oMainObjectNode.entitySet] = oActiveDraftInfoForDraftRoot;
206
+ }
207
+ var sRootKey = aKeysFromIdentity[1];
208
+ var oRootContextInfo = oActiveDraftInfoForDraftRoot[sRootKey];
209
+ if (!oRootContextInfo){
210
+ oRootContextInfo = {
211
+ treeNode: oMainObjectNode,
212
+ key: sRootKey,
213
+ childContexts: Object.create(null)
214
+ };
215
+ oActiveDraftInfoForDraftRoot[sRootKey] = oRootContextInfo;
216
+ }
217
+ return oRootContextInfo;
218
+ }
219
+
204
220
  function getPathOfLastShownDraftRoot() {
205
221
  for (var i = aPathOfLastShownDraftRoots.length - 1; i >= 0; i--) {
206
222
  var oContext = mPath2ContextData[aPathOfLastShownDraftRoots[i]].oContext;
@@ -1,5 +1,12 @@
1
- sap.ui.define(["sap/ui/base/Object", "sap/f/FlexibleColumnLayoutSemanticHelper", "sap/f/library", "sap/base/util/extend", "sap/suite/ui/generic/template/genericUtilities/controlHelper"],
2
- function(BaseObject, FlexibleColumnLayoutSemanticHelper, fioriLibrary, extend, controlHelper) {
1
+ sap.ui.define([
2
+ "sap/ui/base/Object",
3
+ "sap/f/FlexibleColumnLayoutSemanticHelper",
4
+ "sap/f/library",
5
+ "sap/base/util/extend",
6
+ "sap/suite/ui/generic/template/genericUtilities/controlHelper",
7
+ "sap/suite/ui/generic/template/lib/FlexibleColumnLayoutHelper"
8
+ ],
9
+ function(BaseObject, FlexibleColumnLayoutSemanticHelper, fioriLibrary, extend, controlHelper, FlexibleColumnLayoutHelper) {
3
10
  "use strict";
4
11
 
5
12
  // shortcut for sap.f.LayoutType
@@ -8,7 +15,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/f/FlexibleColumnLayoutSemanticHelper",
8
15
  var iDefaultColumn = 2;
9
16
 
10
17
  var aColumnNames = ["begin", "mid", "end"];
11
-
18
+
12
19
  var aActionButtons = ["fullScreen", "exitFullScreen", "closeColumn"];
13
20
 
14
21
  var aMessagePageTargets = ["messagePageBeginColumn", "messagePageMidColumn", "messagePageEndColumn"];
@@ -62,7 +69,8 @@ sap.ui.define(["sap/ui/base/Object", "sap/f/FlexibleColumnLayoutSemanticHelper",
62
69
  var oFCLSettings = oTemplateContract.oAppComponent.getFlexibleColumnLayout();
63
70
  var oFlexibleColumnLayoutSemanticHelper = FlexibleColumnLayoutSemanticHelper.getInstanceFor(oFlexibleColumnLayout, oFCLSettings);
64
71
 
65
- oTemplateContract.setColumnDistributionModel();
72
+ var oFlexibleColumnLayoutHelper = new FlexibleColumnLayoutHelper(oTemplateContract);
73
+ oFlexibleColumnLayoutHelper.setColumnDistributionModel();
66
74
 
67
75
  var oUiState;
68
76
  var sCurrentLayout;
@@ -322,7 +330,7 @@ sap.ui.define(["sap/ui/base/Object", "sap/f/FlexibleColumnLayoutSemanticHelper",
322
330
  sCurrentLayout = oCurrentIdentity.treeNode.fCLLevel === 0 ? aDefaultLayouts[0] : LayoutType.EndColumnFullScreen;
323
331
  }
324
332
 
325
- sCurrentLayout = await oTemplateContract.getStoredLayout(sCurrentLayout);
333
+ sCurrentLayout = await oFlexibleColumnLayoutHelper.getStoredLayout(sCurrentLayout);
326
334
 
327
335
  oFlexibleColumnLayout.setLayout(sCurrentLayout);
328
336
  oFlexibleColumnLayout.setAutoFocus(false);