@sap/open.fe 1.96.0 → 1.97.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 (490) hide show
  1. package/package.json +1 -1
  2. package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
  3. package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
  4. package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +57 -42
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
  6. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
  7. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +2 -2
  8. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +4 -4
  9. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
  10. package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
  11. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/resources.json +4 -4
  13. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  14. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  15. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  16. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  17. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  18. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +2 -2
  19. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
  20. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +59 -274
  21. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
  22. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +52 -64
  23. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
  24. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +2 -2
  25. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
  26. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +18 -22
  27. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
  28. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +80 -4
  29. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
  30. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +42 -23
  31. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
  32. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +36 -21
  33. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  34. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +9 -3
  35. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  36. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +20 -50
  37. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  38. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +222 -102
  39. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
  40. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +33 -6
  41. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  42. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +109 -111
  43. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +1 -1
  44. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +8 -0
  45. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +5 -0
  46. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
  47. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +2 -1
  48. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  49. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
  50. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +10 -1
  51. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  52. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +9 -1
  53. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +2 -2
  54. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  55. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
  56. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +67 -40
  57. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  58. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -3
  59. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  60. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -3
  61. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +57 -18
  62. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  63. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +51 -13
  64. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -19
  65. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  66. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +139 -18
  67. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +9 -1
  68. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +1 -1
  69. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +4 -0
  70. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +18 -7
  71. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  72. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +17 -12
  73. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +2 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  75. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
  76. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +2 -2
  77. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +27 -4
  78. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  79. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
  80. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  81. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +211 -0
  82. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +5 -0
  83. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
  84. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +32 -0
  85. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +5 -0
  86. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +51 -0
  88. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  89. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +1 -1
  90. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +10 -9
  91. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +1 -1
  92. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +232 -228
  93. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
  94. package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
  95. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  96. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +15 -1
  97. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +10 -0
  98. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +10 -0
  99. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +10 -0
  100. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -0
  101. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +10 -0
  102. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +10 -0
  103. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +10 -0
  104. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +10 -0
  105. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +10 -0
  106. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +10 -0
  107. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +6 -0
  108. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +11 -1
  109. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +11 -1
  110. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +10 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +10 -0
  112. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +10 -0
  113. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +10 -0
  114. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +10 -0
  115. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +10 -0
  116. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +10 -0
  117. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +10 -0
  118. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +10 -0
  119. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +11 -1
  120. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +10 -0
  121. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +10 -0
  122. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +19 -9
  123. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +10 -0
  124. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +10 -0
  125. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +10 -0
  126. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +10 -0
  127. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +10 -0
  128. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +10 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +10 -0
  130. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +10 -0
  131. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +11 -1
  132. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +10 -0
  133. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +10 -0
  134. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +10 -0
  135. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +10 -0
  136. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +10 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +10 -0
  138. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +10 -0
  139. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +10 -0
  140. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +10 -0
  141. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +10 -0
  142. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +10 -0
  143. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +10 -0
  144. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +10 -0
  145. package/packages/sap.fe.core/src/sap/fe/core/resources.json +200 -121
  146. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +30 -19
  147. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  148. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -1
  149. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  150. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +80 -7
  151. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  152. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +42 -2
  153. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
  154. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  155. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  156. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +4 -0
  157. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +1 -0
  158. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +2 -2
  159. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +13 -10
  160. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +7 -4
  161. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +1 -2
  162. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +1 -0
  163. package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +119 -0
  164. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +285 -4
  165. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +121 -0
  166. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +79 -0
  167. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +147 -0
  168. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +96 -0
  169. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +51 -18
  170. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +109 -17
  171. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +66 -0
  172. package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelper.cds +33 -0
  173. package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelperMainEntitySortableFalse.cds +12 -0
  174. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +8 -8
  175. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +68 -0
  176. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +38 -0
  177. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +483 -0
  178. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +376 -0
  179. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.js +101 -0
  180. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.ts +105 -0
  181. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.js +103 -0
  182. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.ts +106 -0
  183. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.js +118 -0
  184. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.ts +118 -0
  185. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.js +101 -0
  186. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.ts +102 -0
  187. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +118 -1
  188. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +70 -0
  189. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.js +89 -0
  190. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.ts +73 -0
  191. package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +4 -2
  192. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +6 -0
  193. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  194. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  195. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +15 -5
  196. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  197. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +9 -5
  198. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
  199. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +30 -11
  200. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +1 -1
  201. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +3 -5
  202. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
  203. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +3 -5
  204. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +17 -3
  205. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +1 -1
  206. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +1 -1
  207. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +1 -2
  208. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +4 -4
  209. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  210. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +6 -15
  211. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +14 -12
  212. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +1 -1
  213. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  214. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +2 -1
  215. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +12 -1
  216. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  217. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +15 -8
  218. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  219. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +10 -0
  220. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
  221. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
  222. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +81 -9
  223. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  224. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +13 -3
  225. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  226. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +5 -5
  227. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  228. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +4 -4
  229. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +1 -7
  230. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -3
  231. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  232. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +1 -1
  233. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +46 -0
  234. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +6 -0
  235. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +17 -8
  236. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +26 -16
  237. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +1 -0
  238. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +4 -13
  239. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  240. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +10 -10
  241. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +5 -3
  242. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
  243. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +72 -8
  244. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  245. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  246. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +12 -11
  247. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
  248. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +93 -91
  249. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  250. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  251. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  252. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +1 -1
  253. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +1 -1
  254. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +5 -0
  255. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +2 -2
  256. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +2 -2
  257. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +2 -2
  258. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +2 -2
  259. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +2 -2
  260. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +2 -2
  261. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +2 -2
  262. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +2 -2
  263. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +1 -1
  264. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
  265. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -0
  266. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +2 -2
  267. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +2 -2
  268. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +2 -2
  269. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +2 -2
  270. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +2 -2
  271. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +2 -2
  272. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +2 -2
  273. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +2 -2
  274. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +2 -2
  275. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +2 -2
  276. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +2 -2
  277. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +2 -2
  278. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -3
  279. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +2 -2
  280. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +2 -2
  281. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +2 -2
  282. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +2 -2
  283. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +2 -2
  284. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +2 -2
  285. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +2 -2
  286. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +2 -2
  287. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +2 -2
  288. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +2 -2
  289. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +2 -2
  290. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +2 -2
  291. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +2 -2
  292. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +2 -2
  293. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +2 -2
  294. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +2 -2
  295. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +2 -2
  296. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +2 -2
  297. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +2 -2
  298. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +2 -2
  299. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +2 -2
  300. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +2 -2
  301. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +21 -11
  302. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +2 -1
  303. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +149 -110
  304. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +3 -0
  305. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +70 -29
  306. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +53 -36
  307. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  308. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +1 -1
  309. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
  310. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +3 -4
  311. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  312. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +2 -2
  313. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  314. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  315. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +844 -0
  316. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +833 -0
  317. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +495 -0
  318. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +440 -0
  319. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +469 -0
  320. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +448 -0
  321. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +94 -0
  322. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +70 -0
  323. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +12 -1
  324. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +11 -0
  325. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +61 -0
  326. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.js +46 -0
  327. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.ts +30 -0
  328. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +13 -1
  329. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +11 -0
  330. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.js +66 -0
  331. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.ts +35 -0
  332. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +48 -1
  333. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +56 -0
  334. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +68 -0
  335. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +65 -0
  336. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +82 -0
  337. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +23 -5
  338. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldHelper.spec.ts.snap +47 -0
  339. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +52 -3
  340. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormElement.spec.ts.snap +25 -0
  341. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +0 -3
  342. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +69 -0
  343. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +451 -0
  344. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldHelper.xml +68 -0
  345. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +13 -1
  346. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +152 -0
  347. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +116 -0
  348. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +115 -0
  349. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.js +86 -0
  350. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.ts +54 -0
  351. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/__snapshots__/FormElement.spec.ts.snap +33 -0
  352. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +154 -0
  353. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +128 -0
  354. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +7 -2
  355. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +23 -12
  356. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1 -1
  357. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
  358. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +1 -1
  359. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
  360. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +108 -1
  361. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  362. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  363. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  364. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  365. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
  366. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  367. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  368. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  369. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  370. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  371. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  372. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  373. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  374. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  375. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +4 -4
  376. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +1 -1
  377. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  378. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  379. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +3 -3
  380. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +1 -1
  381. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +1 -1
  382. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  383. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  384. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  385. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  386. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  387. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  388. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  389. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -2
  390. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +91 -60
  391. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  392. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  393. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +31 -5
  394. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  395. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +5 -5
  396. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +2 -2
  397. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  398. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +18 -1
  399. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  400. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +114 -85
  401. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  402. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +8 -0
  403. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
  404. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  405. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +23 -3
  406. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  407. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +15 -15
  408. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +6 -5
  409. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +1 -1
  410. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +6 -4
  411. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +26 -16
  412. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +5 -5
  413. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +63 -9
  414. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
  415. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +54 -32
  416. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
  417. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +24 -21
  418. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
  419. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +2 -1
  420. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +1 -1
  421. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +2 -0
  422. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  423. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -9
  424. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
  425. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +23 -30
  426. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  427. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  428. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
  429. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +51 -60
  430. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  431. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
  432. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  433. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  434. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +95 -0
  435. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +66 -0
  436. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +134 -0
  437. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +94 -0
  438. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +61 -0
  439. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/ObjectPageHeaderForm.spec.ts.snap +53 -0
  440. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  441. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  442. package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +0 -6
  443. package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +1 -1
  444. package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +14 -3
  445. package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +1 -1
  446. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +85 -8
  447. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
  448. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +54 -2
  449. package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +0 -11
  450. package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
  451. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +0 -38
  452. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
  453. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +0 -12
  454. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +1 -1
  455. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +22 -1
  456. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  457. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +14 -0
  458. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +21 -0
  459. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +9 -5
  460. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
  461. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +18 -5
  462. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +1 -1
  463. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +25 -5
  464. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +1 -1
  465. package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +9 -0
  466. package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +1 -1
  467. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +38 -4
  468. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +1 -1
  469. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +33 -4
  470. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +1 -1
  471. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +1 -1
  472. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  473. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +3 -3
  474. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +23 -16
  475. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
  476. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  477. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  478. package/packages/sap.fe.test/src/sap/fe/test/resources.json +36 -34
  479. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  480. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  481. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -1
  482. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  483. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.96.json +0 -49
  484. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.96.json +0 -189
  485. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldRuntime.qunit.js +0 -73
  486. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.96.json +0 -160
  487. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/relnote/changes-1.96.json +0 -17
  488. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +0 -26
  489. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +0 -6
  490. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.96.json +0 -153
@@ -129,6 +129,7 @@ sap.ui.define(
129
129
  this._bDisableOnHashChange = false;
130
130
  this._bIgnoreRestore = false;
131
131
  this._bCleanedRestore = false;
132
+ this._bForceFocus = true; // Trigger the focus mechanism for the first view displayed by the app
132
133
  },
133
134
 
134
135
  destroy: function() {
@@ -159,6 +160,14 @@ sap.ui.define(
159
160
  return this._oRouter.getHashChanger().getHash();
160
161
  },
161
162
 
163
+ isFocusForced: function() {
164
+ return this._bForceFocus;
165
+ },
166
+
167
+ setFocusForced: function(bForced) {
168
+ this._bForceFocus = bForced;
169
+ },
170
+
162
171
  /**
163
172
  * Resets the internal variable sIAppStateKey.
164
173
  *
@@ -181,42 +190,31 @@ sap.ui.define(
181
190
  * @param {string} sHash Hash to be navigated to
182
191
  * @param {boolean} bPreserveHistory If set to true, non-ancestor entries in history will be retained
183
192
  * @param {boolean} bDisablePreservationCache If set to true, cache preservation mechanism is disabled for the current navigation
193
+ * @param {boolean} bForceFocus If set to true, the logic to set the focus once the navigation is finalized will be triggered (onPageReady)
184
194
  * @returns {Promise} Promise that is resolved when the navigation is finalized
185
195
  * @ui5-restricted
186
196
  */
187
- navToHash: function(sHash, bPreserveHistory, bDisablePreservationCache) {
197
+ navToHash: function(sHash, bPreserveHistory, bDisablePreservationCache, bForceFocus) {
188
198
  var that = this;
189
199
 
190
200
  if (this._oRouteMatchSynchronization) {
191
201
  return this._oRouteMatchSynchronization.waitFor().then(function() {
192
202
  that._oRouteMatchSynchronization = null;
193
- return that._internalNavToHash(sHash, bPreserveHistory, bDisablePreservationCache);
203
+ return that._internalNavToHash(sHash, bPreserveHistory, bDisablePreservationCache, bForceFocus);
194
204
  });
195
205
  } else {
196
206
  if (this._bActivateRouteMatchSynchro) {
197
207
  this.waitForRouteMatchBeforeNavigation();
198
208
  }
199
- return that._internalNavToHash(sHash, bPreserveHistory, bDisablePreservationCache);
209
+ return that._internalNavToHash(sHash, bPreserveHistory, bDisablePreservationCache, bForceFocus);
200
210
  }
201
211
  },
202
212
 
203
- _internalNavToHash: function(sHash, bPreserveHistory, bDisablePreservationCache) {
204
- var that = this,
205
- sLastFocusControlId = sap.ui.getCore().getCurrentFocusedControlId(),
206
- sLastFocusInfo =
207
- sLastFocusControlId && sap.ui.getCore().byId(sLastFocusControlId)
208
- ? sap.ui
209
- .getCore()
210
- .byId(sLastFocusControlId)
211
- .getFocusInfo()
212
- : null,
213
- shashBeforeRoutechanged = this.getHash();
214
-
213
+ _internalNavToHash: function(sHash, bPreserveHistory, bDisablePreservationCache, bForceFocus) {
215
214
  // Add the app state in the hash if needed
216
215
  if (this.fclEnabled && this.sIAppStateKey && !findAppStateInHash(sHash)) {
217
216
  sHash = setAppStateInHash(sHash, this.sIAppStateKey);
218
217
  }
219
- var oNewState = this._extractStateFromHash(sHash);
220
218
 
221
219
  if (!this.checkHashWithGuard(sHash)) {
222
220
  if (!this.oResourceBundle) {
@@ -231,11 +229,24 @@ sap.ui.define(
231
229
  }
232
230
  this.bIsGuardCrossAllowed = true;
233
231
  }
232
+
233
+ // In case the navigation will cause a new view to be displayed, we force the focus
234
+ // I.e. if the keys for the hash we're navigating to is a superset of the current hash keys.
235
+ var oNewState = this._extractStateFromHash(sHash);
236
+ if (!this._bForceFocus) {
237
+ // If the focus was already forced, keep it
238
+ var aCurrentHashKeys = this._extractKeysFromHash(this.getHash());
239
+ this._bForceFocus =
240
+ bForceFocus ||
241
+ (aCurrentHashKeys.length < oNewState.keys.length &&
242
+ aCurrentHashKeys.every(function(key, index) {
243
+ return key === oNewState.keys[index];
244
+ }));
245
+ }
246
+
234
247
  var oHistoryAction = this._pushNewState(oNewState, false, bPreserveHistory, bDisablePreservationCache);
235
248
 
236
- return this._rebuildBrowserHistory(oHistoryAction, false).then(function() {
237
- that.storeFocusForHash(sLastFocusControlId, sLastFocusInfo, shashBeforeRoutechanged);
238
- });
249
+ return this._rebuildBrowserHistory(oHistoryAction, false);
239
250
  },
240
251
 
241
252
  /**
@@ -259,34 +270,6 @@ sap.ui.define(
259
270
  }
260
271
  },
261
272
 
262
- getFocusControlForCurrentHash: function() {
263
- var sCurrenthash = this.getHash();
264
- var oLastFocusedControl;
265
- for (var i = this._oManagedHistory.length - 1; i >= 0; i--) {
266
- if (sCurrenthash === this._oManagedHistory[i].hash) {
267
- oLastFocusedControl = this._oManagedHistory[i].oLastFocusControl;
268
- break;
269
- } else {
270
- this._oManagedHistory[i].oLastFocusControl = undefined;
271
- }
272
- }
273
-
274
- return oLastFocusedControl;
275
- },
276
-
277
- storeFocusForHash: function(sLastFocusControlId, sLastFocusInfo, sHash) {
278
- var oManagedhistory = this._oManagedHistory;
279
- for (var i = 0; i < oManagedhistory.length; i++) {
280
- if (sHash === oManagedhistory[i].hash) {
281
- oManagedhistory[i].oLastFocusControl = {
282
- controlId: sLastFocusControlId,
283
- focusInfo: sLastFocusInfo
284
- };
285
- break;
286
- }
287
- }
288
- },
289
-
290
273
  /**
291
274
  * Navigates back in the history.
292
275
  *
@@ -433,6 +416,24 @@ sap.ui.define(
433
416
  this._bActivateRouteMatchSynchro = false;
434
417
  },
435
418
 
419
+ _extractKeysFromHash: function(sHash) {
420
+ if (sHash === undefined) {
421
+ sHash = "";
422
+ }
423
+ var sHashNoParams = sHash.split("?")[0]; // remove params
424
+ var aTokens = sHashNoParams.split("/");
425
+ var aKeys = [];
426
+
427
+ aTokens.forEach(function(sToken) {
428
+ var regexKey = /[^\(\)]+\([^\(\)]+\)/; // abc(def)
429
+ if (regexKey.test(sToken)) {
430
+ aKeys.push(sToken.split("(")[0]);
431
+ }
432
+ });
433
+
434
+ return aKeys;
435
+ },
436
+
436
437
  /**
437
438
  * Builds a state from a hash.
438
439
  *
@@ -442,22 +443,13 @@ sap.ui.define(
442
443
  * @ui5-restricted
443
444
  */
444
445
  _extractStateFromHash: function(sHash) {
445
- var oState = {
446
- keys: []
447
- };
448
-
449
- // Retrieve object keys
450
446
  if (sHash === undefined) {
451
447
  sHash = "";
452
448
  }
453
- var sHashNoParams = sHash.split("?")[0];
454
- var sTokens = sHashNoParams.split("/");
455
- sTokens.forEach(function(sToken) {
456
- var regexKey = /[^\(\)]+\([^\(\)]+\)/; // abc(def)
457
- if (regexKey.test(sToken)) {
458
- oState.keys.push(sToken.split("(")[0]);
459
- }
460
- });
449
+
450
+ var oState = {
451
+ keys: this._extractKeysFromHash(sHash)
452
+ };
461
453
 
462
454
  // Retrieve layout (if any)
463
455
  var aLayout = sHash.match(new RegExp("\\?.*" + enumURLParams.LAYOUTPARAM + "=([^&]*)"));
@@ -519,7 +511,6 @@ sap.ui.define(
519
511
  }
520
512
 
521
513
  // 3. Then pop all states until we find an ancestor of the new state, or we find a state that need to be preserved
522
- var oLastFocusControl;
523
514
  var oLastRemovedItem;
524
515
  while (this._oManagedHistory.length > 0) {
525
516
  var oTopState = this._oManagedHistory[this._oManagedHistory.length - 1];
@@ -528,13 +519,11 @@ sap.ui.define(
528
519
  this._compareCacheStates(oTopState, oNewState) !== enumState.ANCESTOR
529
520
  ) {
530
521
  // The top state is not an ancestor of oNewState and is not preserved --> we can pop it
531
- oLastFocusControl = oTopState.oLastFocusControl;
532
522
  oLastRemovedItem = this._oManagedHistory.pop();
533
523
  iPopCount++;
534
524
  } else if (oTopState.preserved && removeAppStateInHash(oTopState.hash) === removeAppStateInHash(oNewState.hash)) {
535
525
  // We try to add a state that is already in cache (due to preserved flag) but with a different iapp-state
536
526
  // --> we should delete the previous entry (it will be later replaced by the new one) and stop popping
537
- oLastFocusControl = oTopState.oLastFocusControl;
538
527
  oLastRemovedItem = this._oManagedHistory.pop();
539
528
  iPopCount++;
540
529
  oNewState.preserved = true;
@@ -566,7 +555,6 @@ sap.ui.define(
566
555
  }
567
556
 
568
557
  // 5. Now we can push the state at the top of the internal history
569
- oNewState.oLastFocusControl = oLastFocusControl;
570
558
  var bHasSameHash = oLastRemovedItem && oNewState.hash === oLastRemovedItem.hash;
571
559
  if (this._oManagedHistory.length === 0 || this._oManagedHistory[this._oManagedHistory.length - 1].hash !== oNewState.hash) {
572
560
  this._oManagedHistory.push(oNewState);
@@ -3,4 +3,4 @@
3
3
  (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
 
5
5
  */
6
- sap.ui.define(["sap/base/Log","sap/ui/base/Object","sap/ui/base/EventProvider","sap/fe/core/Synchronization","sap/ui/thirdparty/URI"],function(L,B,E,S,U){"use strict";var e={EQUAL:0,COMPATIBLE:1,ANCESTOR:2,DIFFERENT:3};var a={LAYOUTPARAM:"layout",IAPPSTATEPARAM:"sap-iapp-state"};function c(g){return{_guardHash:g.replace(/\?[^\?]*$/,""),check:function(h){return h.indexOf(this._guardHash)===0;}};}function f(h){var A=h.match(new RegExp("\\?.*"+a.IAPPSTATEPARAM+"=([^&]*)"));return A&&A.length>1?A[1]:null;}function r(h){return h.replace(new RegExp("[&?]*"+a.IAPPSTATEPARAM+"=[^&]*"),"");}function s(h,A){var n;if(h.indexOf(a.IAPPSTATEPARAM)>=0){n=h.replace(new RegExp(a.IAPPSTATEPARAM+"=[^&]*"),a.IAPPSTATEPARAM+"="+A);}else{if(h.indexOf("?")<0){n=h+"?";}else{n=h+"&";}n+=a.IAPPSTATEPARAM+"="+A;}return n;}return B.extend("sap.fe.core.RouterProxy",{bIsRebuildHistoryRunning:false,bIsComputingTitleHierachy:false,bIsGuardCrossAllowed:false,sIAppStateKey:null,init:function(A,i){A.getService("shellServices").then(function(){this._oShellServices=A.getShellServices();this.initRaw(A.getRouter());this.waitForRouteMatchBeforeNavigation();history.replaceState(Object.assign({feLevel:0},history.state),"",window.location);this.fclEnabled=i;this._fnBlockingNavFilter=this._blockingNavigationFilter.bind(this);this._oShellServices.registerNavigationFilter(this._fnBlockingNavFilter);}.bind(this)).catch(function(o){L.error("Cannot retrieve the shell services",o);});this._fnHashGuard=this.hashGuard.bind(this);window.addEventListener("popstate",this._fnHashGuard);this._bDisableOnHashChange=false;this._bIgnoreRestore=false;this._bCleanedRestore=false;},destroy:function(){if(this._oShellServices){this._oShellServices.unregisterNavigationFilter(this._fnBlockingNavFilter);}window.removeEventListener("popstate",this._fnHashGuard);},initRaw:function(R){this._oRouter=R;this._oManagedHistory=[];this._oNavigationGuard=null;var C=this.getHash();this._oManagedHistory.push(this._extractStateFromHash(C));this.sIAppStateKey=f(C);},getHash:function(){return this._oRouter.getHashChanger().getHash();},removeIAppStateKey:function(){this.sIAppStateKey=null;},navToHash:function(h,p,d){var t=this;if(this._oRouteMatchSynchronization){return this._oRouteMatchSynchronization.waitFor().then(function(){t._oRouteMatchSynchronization=null;return t._internalNavToHash(h,p,d);});}else{if(this._bActivateRouteMatchSynchro){this.waitForRouteMatchBeforeNavigation();}return t._internalNavToHash(h,p,d);}},_internalNavToHash:function(h,p,d){var t=this,l=sap.ui.getCore().getCurrentFocusedControlId(),b=l&&sap.ui.getCore().byId(l)?sap.ui.getCore().byId(l).getFocusInfo():null,g=this.getHash();if(this.fclEnabled&&this.sIAppStateKey&&!f(h)){h=s(h,this.sIAppStateKey);}var n=this._extractStateFromHash(h);if(!this.checkHashWithGuard(h)){if(!this.oResourceBundle){this.oResourceBundle=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");}if(!confirm(this.oResourceBundle.getText("C_ROUTER_PROXY_SAPFE_EXIT_NOTSAVED_MESSAGE"))){return Promise.resolve();}this.bIsGuardCrossAllowed=true;}var H=this._pushNewState(n,false,p,d);return this._rebuildBrowserHistory(H,false).then(function(){t.storeFocusForHash(l,b,g);});},restoreHistory:function(){if(this._bApplyRestore){this._bApplyRestore=false;var t=this.getHash();t=t.replace(/(\?|&)restoreHistory=true/,"");var n=this._extractStateFromHash(t);var h=this._pushNewState(n,true,false,true);return this._rebuildBrowserHistory(h,true);}else{return Promise.resolve();}},getFocusControlForCurrentHash:function(){var C=this.getHash();var l;for(var i=this._oManagedHistory.length-1;i>=0;i--){if(C===this._oManagedHistory[i].hash){l=this._oManagedHistory[i].oLastFocusControl;break;}else{this._oManagedHistory[i].oLastFocusControl=undefined;}}return l;},storeFocusForHash:function(l,b,h){var m=this._oManagedHistory;for(var i=0;i<m.length;i++){if(h===m[i].hash){m[i].oLastFocusControl={controlId:l,focusInfo:b};break;}}},navBack:function(){var C=this.getHash(),p;for(var i=this._oManagedHistory.length-1;i>0;i--){if(this._oManagedHistory[i].hash===C){p=this._oManagedHistory[i-1].hash;break;}}if(p){return this.navToHash(p);}else{window.history.back();return Promise.resolve();}},navTo:function(R,p){var h=this._oRouter.getURL(R,p);return this.navToHash(h,false,p.noPreservationCache);},exitFromApp:function(){return this._oShellServices.backToPreviousApp();},isCurrentStateImpactedBy:function(h){if(h[0]==="/"){h=h.substring(1);}var l=c(h);return l.check(this.getHash());},isNavigationFinalized:function(){return!this.bIsRebuildHistoryRunning&&!this._bDelayedRebuild;},setNavigationGuard:function(){this._oNavigationGuard=c(this.getHash());this.bIsGuardCrossAllowed=false;},discardNavigationGuard:function(){this._oNavigationGuard=null;},hasNavigationGuard:function(){return this._oNavigationGuard!==null;},checkHashWithGuard:function(h){return this._oNavigationGuard===null||this._oNavigationGuard.check(h);},isGuardCrossAllowedByUser:function(){return this.bIsGuardCrossAllowed;},activateRouteMatchSynchronization:function(){this._bActivateRouteMatchSynchro=true;},resolveRouteMatch:function(){if(this._oRouteMatchSynchronization){this._oRouteMatchSynchronization.resolve();}},waitForRouteMatchBeforeNavigation:function(){this._oRouteMatchSynchronization=new S();this._bActivateRouteMatchSynchro=false;},_extractStateFromHash:function(h){var o={keys:[]};if(h===undefined){h="";}var H=h.split("?")[0];var t=H.split("/");t.forEach(function(T){var b=/[^\(\)]+\([^\(\)]+\)/;if(b.test(T)){o.keys.push(T.split("(")[0]);}});var l=h.match(new RegExp("\\?.*"+a.LAYOUTPARAM+"=([^&]*)"));o.sLayout=l&&l.length>1?l[1]:null;if(o.sLayout==="MidColumnFullScreen"){o.screenMode=1;}else if(o.sLayout==="EndColumnFullScreen"){o.screenMode=2;}else{o.screenMode=0;}o.hash=h;return o;},_pushNewState:function(n,R,p,d){var C=this.getHash(),l=this._oManagedHistory.length-1,P=R?1:0,t=this;if(!R){while(l>=0&&this._oManagedHistory[l].hash!==C){this._oManagedHistory.pop();l--;}if(this._oManagedHistory.length===0){this._oManagedHistory.push(this._extractStateFromHash(C));history.replaceState(Object.assign({feLevel:0},history.state),"");}}if(p&&!d){this._oManagedHistory[this._oManagedHistory.length-1].preserved=true;}var o;var b;while(this._oManagedHistory.length>0){var T=this._oManagedHistory[this._oManagedHistory.length-1];if((d||!T.preserved)&&this._compareCacheStates(T,n)!==e.ANCESTOR){o=T.oLastFocusControl;b=this._oManagedHistory.pop();P++;}else if(T.preserved&&r(T.hash)===r(n.hash)){o=T.oLastFocusControl;b=this._oManagedHistory.pop();P++;n.preserved=true;break;}else{break;}}this.sIAppStateKey=f(n.hash);if(this.fclEnabled&&this.sIAppStateKey){this._oManagedHistory.forEach(function(m){m.hash=s(m.hash,t.sIAppStateKey);});}else if(!this.fclEnabled&&b){var g=f(b.hash);var h=this._compareCacheStates(b,n);if(!this.sIAppStateKey&&g&&(h===e.EQUAL||h===e.COMPATIBLE)){n.hash=s(n.hash,g);}}n.oLastFocusControl=o;var H=b&&n.hash===b.hash;if(this._oManagedHistory.length===0||this._oManagedHistory[this._oManagedHistory.length-1].hash!==n.hash){this._oManagedHistory.push(n);}if(P===0){return{type:"append"};}else if(P===1){return H?{type:"none"}:{type:"replace"};}else{return H?{type:"back",steps:P-1}:{type:"back-replace",steps:P-1};}},_blockingNavigationFilter:function(){return this._bDisableOnHashChange?"Custom":"Continue";},_disableEventOnHashChange:function(){this._bDisableOnHashChange=true;this._oRouter.stop();},_enableEventOnHashChange:function(i){this._bDisableOnHashChange=false;this._oRouter.initialize(i);},_rebuildBrowserHistory:function(h,R){var t=this;return new Promise(function(b,d){t.bIsRebuildHistoryRunning=true;var T=t._oManagedHistory[t._oManagedHistory.length-1],n=t._oManagedHistory.length-1;function g(){if(!R){t._enableEventOnHashChange(true);}t._oRouter.getHashChanger().replaceHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");if(R){setTimeout(function(){t._enableEventOnHashChange(true);},0);}t.bIsRebuildHistoryRunning=false;b();}function i(){window.removeEventListener("popstate",i);setTimeout(function(){g();},0);}function j(){window.removeEventListener("popstate",j);t.bIsRebuildHistoryRunning=false;b();}t._bIgnoreRestore=true;switch(h.type){case"replace":t._oRouter.getHashChanger().replaceHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");t.bIsRebuildHistoryRunning=false;b();break;case"append":t._oRouter.getHashChanger().setHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");t.bIsRebuildHistoryRunning=false;b();break;case"back":window.addEventListener("popstate",j);history.go(-h.steps);break;case"back-replace":t._disableEventOnHashChange();window.addEventListener("popstate",i);history.go(-h.steps);break;default:t.bIsRebuildHistoryRunning=false;b();}});},getLastHistoryEntry:function(){return this._oManagedHistory[this._oManagedHistory.length-1];},hashGuard:function(o){if(this._bCleanedRestore){this._bCleanedRestore=false;return;}var h=window.location.hash;if(h.indexOf("restoreHistory=true")!==-1){this._bApplyRestore=true;}else if(!this.bIsRebuildHistoryRunning){var H=h.split("&/");var A=H[1]?H[1]:"";if(this.checkHashWithGuard(A)){this._bDelayedRebuild=true;var n=this._extractStateFromHash(A);this._pushNewState(n,false,false,true);var t=this;setTimeout(function(){t._bDelayedRebuild=false;},0);}}},_compareCacheStates:function(o,b){if(o.keys.length>b.keys.length){return e.DIFFERENT;}var d=true;var i;for(i=0;d&&i<o.keys.length;i++){if(o.keys[i]!==b.keys[i]){d=false;}}if(!d){return e.DIFFERENT;}if(o.keys.length<b.keys.length||o.screenMode<b.screenMode){return e.ANCESTOR;}if(o.screenMode>b.screenMode){return e.DIFFERENT;}return o.sLayout===b.sLayout?e.EQUAL:e.COMPATIBLE;},checkIfBackIsOutOfGuard:function(p){var t=this,P;if(p===undefined){var o=this._oShellServices.splitHash(window.location.hash);if(o&&o.appSpecificRoute){p=o.appSpecificRoute;if(p.indexOf("&/")===0){p=p.substring(2);}}else{p=window.location.hash.substring(1);if(p[0]==="/"){p=p.substring(1);}}}p=U.decode(p);if(t._oNavigationGuard){for(var i=t._oManagedHistory.length-1;i>0;i--){if(t._oManagedHistory[i].hash===p){P=t._oManagedHistory[i-1].hash;break;}}return!P||!t.checkHashWithGuard(P);}return false;}});});
6
+ sap.ui.define(["sap/base/Log","sap/ui/base/Object","sap/ui/base/EventProvider","sap/fe/core/Synchronization","sap/ui/thirdparty/URI"],function(L,B,E,S,U){"use strict";var e={EQUAL:0,COMPATIBLE:1,ANCESTOR:2,DIFFERENT:3};var a={LAYOUTPARAM:"layout",IAPPSTATEPARAM:"sap-iapp-state"};function c(g){return{_guardHash:g.replace(/\?[^\?]*$/,""),check:function(h){return h.indexOf(this._guardHash)===0;}};}function f(h){var A=h.match(new RegExp("\\?.*"+a.IAPPSTATEPARAM+"=([^&]*)"));return A&&A.length>1?A[1]:null;}function r(h){return h.replace(new RegExp("[&?]*"+a.IAPPSTATEPARAM+"=[^&]*"),"");}function s(h,A){var n;if(h.indexOf(a.IAPPSTATEPARAM)>=0){n=h.replace(new RegExp(a.IAPPSTATEPARAM+"=[^&]*"),a.IAPPSTATEPARAM+"="+A);}else{if(h.indexOf("?")<0){n=h+"?";}else{n=h+"&";}n+=a.IAPPSTATEPARAM+"="+A;}return n;}return B.extend("sap.fe.core.RouterProxy",{bIsRebuildHistoryRunning:false,bIsComputingTitleHierachy:false,bIsGuardCrossAllowed:false,sIAppStateKey:null,init:function(A,i){A.getService("shellServices").then(function(){this._oShellServices=A.getShellServices();this.initRaw(A.getRouter());this.waitForRouteMatchBeforeNavigation();history.replaceState(Object.assign({feLevel:0},history.state),"",window.location);this.fclEnabled=i;this._fnBlockingNavFilter=this._blockingNavigationFilter.bind(this);this._oShellServices.registerNavigationFilter(this._fnBlockingNavFilter);}.bind(this)).catch(function(o){L.error("Cannot retrieve the shell services",o);});this._fnHashGuard=this.hashGuard.bind(this);window.addEventListener("popstate",this._fnHashGuard);this._bDisableOnHashChange=false;this._bIgnoreRestore=false;this._bCleanedRestore=false;this._bForceFocus=true;},destroy:function(){if(this._oShellServices){this._oShellServices.unregisterNavigationFilter(this._fnBlockingNavFilter);}window.removeEventListener("popstate",this._fnHashGuard);},initRaw:function(R){this._oRouter=R;this._oManagedHistory=[];this._oNavigationGuard=null;var C=this.getHash();this._oManagedHistory.push(this._extractStateFromHash(C));this.sIAppStateKey=f(C);},getHash:function(){return this._oRouter.getHashChanger().getHash();},isFocusForced:function(){return this._bForceFocus;},setFocusForced:function(F){this._bForceFocus=F;},removeIAppStateKey:function(){this.sIAppStateKey=null;},navToHash:function(h,p,d,F){var t=this;if(this._oRouteMatchSynchronization){return this._oRouteMatchSynchronization.waitFor().then(function(){t._oRouteMatchSynchronization=null;return t._internalNavToHash(h,p,d,F);});}else{if(this._bActivateRouteMatchSynchro){this.waitForRouteMatchBeforeNavigation();}return t._internalNavToHash(h,p,d,F);}},_internalNavToHash:function(h,p,d,F){if(this.fclEnabled&&this.sIAppStateKey&&!f(h)){h=s(h,this.sIAppStateKey);}if(!this.checkHashWithGuard(h)){if(!this.oResourceBundle){this.oResourceBundle=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");}if(!confirm(this.oResourceBundle.getText("C_ROUTER_PROXY_SAPFE_EXIT_NOTSAVED_MESSAGE"))){return Promise.resolve();}this.bIsGuardCrossAllowed=true;}var n=this._extractStateFromHash(h);if(!this._bForceFocus){var C=this._extractKeysFromHash(this.getHash());this._bForceFocus=F||(C.length<n.keys.length&&C.every(function(k,i){return k===n.keys[i];}));}var H=this._pushNewState(n,false,p,d);return this._rebuildBrowserHistory(H,false);},restoreHistory:function(){if(this._bApplyRestore){this._bApplyRestore=false;var t=this.getHash();t=t.replace(/(\?|&)restoreHistory=true/,"");var n=this._extractStateFromHash(t);var h=this._pushNewState(n,true,false,true);return this._rebuildBrowserHistory(h,true);}else{return Promise.resolve();}},navBack:function(){var C=this.getHash(),p;for(var i=this._oManagedHistory.length-1;i>0;i--){if(this._oManagedHistory[i].hash===C){p=this._oManagedHistory[i-1].hash;break;}}if(p){return this.navToHash(p);}else{window.history.back();return Promise.resolve();}},navTo:function(R,p){var h=this._oRouter.getURL(R,p);return this.navToHash(h,false,p.noPreservationCache);},exitFromApp:function(){return this._oShellServices.backToPreviousApp();},isCurrentStateImpactedBy:function(h){if(h[0]==="/"){h=h.substring(1);}var l=c(h);return l.check(this.getHash());},isNavigationFinalized:function(){return!this.bIsRebuildHistoryRunning&&!this._bDelayedRebuild;},setNavigationGuard:function(){this._oNavigationGuard=c(this.getHash());this.bIsGuardCrossAllowed=false;},discardNavigationGuard:function(){this._oNavigationGuard=null;},hasNavigationGuard:function(){return this._oNavigationGuard!==null;},checkHashWithGuard:function(h){return this._oNavigationGuard===null||this._oNavigationGuard.check(h);},isGuardCrossAllowedByUser:function(){return this.bIsGuardCrossAllowed;},activateRouteMatchSynchronization:function(){this._bActivateRouteMatchSynchro=true;},resolveRouteMatch:function(){if(this._oRouteMatchSynchronization){this._oRouteMatchSynchronization.resolve();}},waitForRouteMatchBeforeNavigation:function(){this._oRouteMatchSynchronization=new S();this._bActivateRouteMatchSynchro=false;},_extractKeysFromHash:function(h){if(h===undefined){h="";}var H=h.split("?")[0];var t=H.split("/");var k=[];t.forEach(function(T){var b=/[^\(\)]+\([^\(\)]+\)/;if(b.test(T)){k.push(T.split("(")[0]);}});return k;},_extractStateFromHash:function(h){if(h===undefined){h="";}var o={keys:this._extractKeysFromHash(h)};var l=h.match(new RegExp("\\?.*"+a.LAYOUTPARAM+"=([^&]*)"));o.sLayout=l&&l.length>1?l[1]:null;if(o.sLayout==="MidColumnFullScreen"){o.screenMode=1;}else if(o.sLayout==="EndColumnFullScreen"){o.screenMode=2;}else{o.screenMode=0;}o.hash=h;return o;},_pushNewState:function(n,R,p,d){var C=this.getHash(),l=this._oManagedHistory.length-1,P=R?1:0,t=this;if(!R){while(l>=0&&this._oManagedHistory[l].hash!==C){this._oManagedHistory.pop();l--;}if(this._oManagedHistory.length===0){this._oManagedHistory.push(this._extractStateFromHash(C));history.replaceState(Object.assign({feLevel:0},history.state),"");}}if(p&&!d){this._oManagedHistory[this._oManagedHistory.length-1].preserved=true;}var o;while(this._oManagedHistory.length>0){var T=this._oManagedHistory[this._oManagedHistory.length-1];if((d||!T.preserved)&&this._compareCacheStates(T,n)!==e.ANCESTOR){o=this._oManagedHistory.pop();P++;}else if(T.preserved&&r(T.hash)===r(n.hash)){o=this._oManagedHistory.pop();P++;n.preserved=true;break;}else{break;}}this.sIAppStateKey=f(n.hash);if(this.fclEnabled&&this.sIAppStateKey){this._oManagedHistory.forEach(function(m){m.hash=s(m.hash,t.sIAppStateKey);});}else if(!this.fclEnabled&&o){var b=f(o.hash);var g=this._compareCacheStates(o,n);if(!this.sIAppStateKey&&b&&(g===e.EQUAL||g===e.COMPATIBLE)){n.hash=s(n.hash,b);}}var h=o&&n.hash===o.hash;if(this._oManagedHistory.length===0||this._oManagedHistory[this._oManagedHistory.length-1].hash!==n.hash){this._oManagedHistory.push(n);}if(P===0){return{type:"append"};}else if(P===1){return h?{type:"none"}:{type:"replace"};}else{return h?{type:"back",steps:P-1}:{type:"back-replace",steps:P-1};}},_blockingNavigationFilter:function(){return this._bDisableOnHashChange?"Custom":"Continue";},_disableEventOnHashChange:function(){this._bDisableOnHashChange=true;this._oRouter.stop();},_enableEventOnHashChange:function(i){this._bDisableOnHashChange=false;this._oRouter.initialize(i);},_rebuildBrowserHistory:function(h,R){var t=this;return new Promise(function(b,d){t.bIsRebuildHistoryRunning=true;var T=t._oManagedHistory[t._oManagedHistory.length-1],n=t._oManagedHistory.length-1;function g(){if(!R){t._enableEventOnHashChange(true);}t._oRouter.getHashChanger().replaceHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");if(R){setTimeout(function(){t._enableEventOnHashChange(true);},0);}t.bIsRebuildHistoryRunning=false;b();}function i(){window.removeEventListener("popstate",i);setTimeout(function(){g();},0);}function j(){window.removeEventListener("popstate",j);t.bIsRebuildHistoryRunning=false;b();}t._bIgnoreRestore=true;switch(h.type){case"replace":t._oRouter.getHashChanger().replaceHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");t.bIsRebuildHistoryRunning=false;b();break;case"append":t._oRouter.getHashChanger().setHash(T.hash);history.replaceState(Object.assign({feLevel:n},history.state),"");t.bIsRebuildHistoryRunning=false;b();break;case"back":window.addEventListener("popstate",j);history.go(-h.steps);break;case"back-replace":t._disableEventOnHashChange();window.addEventListener("popstate",i);history.go(-h.steps);break;default:t.bIsRebuildHistoryRunning=false;b();}});},getLastHistoryEntry:function(){return this._oManagedHistory[this._oManagedHistory.length-1];},hashGuard:function(o){if(this._bCleanedRestore){this._bCleanedRestore=false;return;}var h=window.location.hash;if(h.indexOf("restoreHistory=true")!==-1){this._bApplyRestore=true;}else if(!this.bIsRebuildHistoryRunning){var H=h.split("&/");var A=H[1]?H[1]:"";if(this.checkHashWithGuard(A)){this._bDelayedRebuild=true;var n=this._extractStateFromHash(A);this._pushNewState(n,false,false,true);var t=this;setTimeout(function(){t._bDelayedRebuild=false;},0);}}},_compareCacheStates:function(o,b){if(o.keys.length>b.keys.length){return e.DIFFERENT;}var d=true;var i;for(i=0;d&&i<o.keys.length;i++){if(o.keys[i]!==b.keys[i]){d=false;}}if(!d){return e.DIFFERENT;}if(o.keys.length<b.keys.length||o.screenMode<b.screenMode){return e.ANCESTOR;}if(o.screenMode>b.screenMode){return e.DIFFERENT;}return o.sLayout===b.sLayout?e.EQUAL:e.COMPATIBLE;},checkIfBackIsOutOfGuard:function(p){var t=this,P;if(p===undefined){var o=this._oShellServices.splitHash(window.location.hash);if(o&&o.appSpecificRoute){p=o.appSpecificRoute;if(p.indexOf("&/")===0){p=p.substring(2);}}else{p=window.location.hash.substring(1);if(p[0]==="/"){p=p.substring(1);}}}p=U.decode(p);if(t._oNavigationGuard){for(var i=t._oManagedHistory.length-1;i>0;i--){if(t._oManagedHistory[i].hash===p){P=t._oManagedHistory[i-1].hash;break;}}return!P||!t.checkHashWithGuard(P);}return false;}});});
@@ -103,11 +103,11 @@ sap.ui.define(
103
103
  return this.oAppComponent;
104
104
  },
105
105
 
106
- onPageReady: function(oLastFocusedControl) {
106
+ onPageReady: function(mParameters) {
107
107
  if (this.getRootControl() && this.getRootControl().getController() && this.getRootControl().getController().onPageReady) {
108
108
  this.getRootControl()
109
109
  .getController()
110
- .onPageReady(oLastFocusedControl);
110
+ .onPageReady(mParameters);
111
111
  }
112
112
  },
113
113
 
@@ -3,4 +3,4 @@
3
3
  (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
 
5
5
  */
6
- sap.ui.define(["sap/ui/core/UIComponent","sap/fe/core/CommonUtils","sap/base/Log"],function(U,C,L){"use strict";var T=U.extend("sap.fe.core.TemplateComponent",{metadata:{interfaces:["sap.ui.core.IAsyncContentCreation"],properties:{entitySet:{type:"string",defaultValue:null},contextPath:{type:"string",defaultValue:null},bindingContextPattern:{type:"string"},navigation:{type:"object"},enhanceI18n:{type:"string[]"},controlConfiguration:{type:"object"},content:{type:"object"},allowDeepLinking:{type:"boolean"},refreshStrategyOnAppRestore:{type:"object"}},events:{containerDefined:{container:{type:"sap.ui.base.ManagedObject"}},heroesBatchReceived:{element:{type:"sap.ui.base.ManagedObject"}},workersBatchReceived:{element:{type:"sap.ui.base.ManagedObject"}}},library:"sap.fe.core"},setContainer:function(c){U.prototype.setContainer.apply(this,arguments);this.fireContainerDefined({container:c});},init:function(){this.oAppComponent=C.getAppComponent(this);U.prototype.init.apply(this,arguments);},getExtensionComponent:function(){return this.oAppComponent;},onPageReady:function(l){if(this.getRootControl()&&this.getRootControl().getController()&&this.getRootControl().getController().onPageReady){this.getRootControl().getController().onPageReady(l);}},getNavigationConfiguration:function(t){var n=this.getNavigation();return n[t];},getViewData:function(){var p=this.getMetadata().getAllProperties();var v=Object.keys(p).reduce(function(V,P){V[P]=p[P].get(this);return V;}.bind(this),{});v.fclEnabled=this.oAppComponent._isFclEnabled();return v;},_getPageTitleInformation:function(){if(this.getRootControl()&&this.getRootControl().getController()&&this.getRootControl().getController()._getPageTitleInformation){return this.getRootControl().getController()._getPageTitleInformation();}else{return Promise.resolve({});}},getExtensionAPI:function(){return this.getRootControl().getController().getExtensionAPI();}});return T;},true);
6
+ sap.ui.define(["sap/ui/core/UIComponent","sap/fe/core/CommonUtils","sap/base/Log"],function(U,C,L){"use strict";var T=U.extend("sap.fe.core.TemplateComponent",{metadata:{interfaces:["sap.ui.core.IAsyncContentCreation"],properties:{entitySet:{type:"string",defaultValue:null},contextPath:{type:"string",defaultValue:null},bindingContextPattern:{type:"string"},navigation:{type:"object"},enhanceI18n:{type:"string[]"},controlConfiguration:{type:"object"},content:{type:"object"},allowDeepLinking:{type:"boolean"},refreshStrategyOnAppRestore:{type:"object"}},events:{containerDefined:{container:{type:"sap.ui.base.ManagedObject"}},heroesBatchReceived:{element:{type:"sap.ui.base.ManagedObject"}},workersBatchReceived:{element:{type:"sap.ui.base.ManagedObject"}}},library:"sap.fe.core"},setContainer:function(c){U.prototype.setContainer.apply(this,arguments);this.fireContainerDefined({container:c});},init:function(){this.oAppComponent=C.getAppComponent(this);U.prototype.init.apply(this,arguments);},getExtensionComponent:function(){return this.oAppComponent;},onPageReady:function(p){if(this.getRootControl()&&this.getRootControl().getController()&&this.getRootControl().getController().onPageReady){this.getRootControl().getController().onPageReady(p);}},getNavigationConfiguration:function(t){var n=this.getNavigation();return n[t];},getViewData:function(){var p=this.getMetadata().getAllProperties();var v=Object.keys(p).reduce(function(V,P){V[P]=p[P].get(this);return V;}.bind(this),{});v.fclEnabled=this.oAppComponent._isFclEnabled();return v;},_getPageTitleInformation:function(){if(this.getRootControl()&&this.getRootControl().getController()&&this.getRootControl().getController()._getPageTitleInformation){return this.getRootControl().getController()._getPageTitleInformation();}else{return Promise.resolve({});}},getExtensionAPI:function(){return this.getRootControl().getController().getExtensionAPI();}});return T;},true);
@@ -211,8 +211,7 @@ sap.ui.define(
211
211
  aNonComputedVisibleKeyFields,
212
212
  oModel,
213
213
  mParameters,
214
- messageHandler,
215
- sFunctionName
214
+ messageHandler
216
215
  );
217
216
  } else {
218
217
  oNewDocumentContext = oMainListBinding.create(mParameters.data, bSkipRefresh, mParameters.createAtEnd);
@@ -645,7 +644,7 @@ sap.ui.define(
645
644
  })
646
645
  )
647
646
  .catch(function(oError) {
648
- return messageHandler.showMessageDialog().then(function() {
647
+ return messageHandler.showMessages().then(function() {
649
648
  // re-throw error to enforce rejecting the general promise
650
649
  throw oError;
651
650
  });
@@ -769,7 +768,7 @@ sap.ui.define(
769
768
  });
770
769
  })
771
770
  .catch(function(err) {
772
- return messageHandler.showMessageDialog().then(function() {
771
+ return messageHandler.showMessages().then(function() {
773
772
  return Promise.reject(err);
774
773
  });
775
774
  })
@@ -896,12 +895,12 @@ sap.ui.define(
896
895
  // remove existing bound transition messages
897
896
  messageHandler.removeTransitionMessages();
898
897
  // show unbound messages
899
- return messageHandler.showMessageDialog().then(function() {
898
+ return messageHandler.showMessages().then(function() {
900
899
  return context;
901
900
  });
902
901
  })
903
902
  .catch(function(err) {
904
- return messageHandler.showMessageDialog().then(function() {
903
+ return messageHandler.showMessages().then(function() {
905
904
  return Promise.reject(err);
906
905
  });
907
906
  })
@@ -968,7 +967,7 @@ sap.ui.define(
968
967
  }
969
968
  });
970
969
  }
971
- return messageHandler.showMessageDialog().then(function() {
970
+ return messageHandler.showMessages().then(function() {
972
971
  return Promise.reject(err);
973
972
  });
974
973
  })
@@ -1176,7 +1175,7 @@ sap.ui.define(
1176
1175
  if (aTransientMessages.length > 0 && mParameters && mParameters.internalModelContext) {
1177
1176
  mParameters.internalModelContext.setProperty("sActionName", mParameters.label ? mParameters.label : sActionName);
1178
1177
  }
1179
- return messageHandler.showMessageDialog();
1178
+ return messageHandler.showMessages();
1180
1179
  },
1181
1180
  /**
1182
1181
  * Handles validation errors for the 'discard' action.
@@ -1310,8 +1309,7 @@ sap.ui.define(
1310
1309
  mFields,
1311
1310
  oModel,
1312
1311
  mParameters,
1313
- messageHandler,
1314
- sFunctionName
1312
+ messageHandler
1315
1313
  ) {
1316
1314
  var that = this,
1317
1315
  oDialog,
@@ -1454,7 +1452,7 @@ sap.ui.define(
1454
1452
  .finally(function() {
1455
1453
  BusyLocker.unlock(oDialog);
1456
1454
  oCreateButton.setEnabled(true);
1457
- return messageHandler.showMessageDialog();
1455
+ return messageHandler.showMessages();
1458
1456
  });
1459
1457
  }
1460
1458
  },
@@ -1464,15 +1462,6 @@ sap.ui.define(
1464
1462
  oDialog.close();
1465
1463
  }
1466
1464
  },
1467
- beforeOpen: function() {
1468
- if (sFunctionName) {
1469
- for (var i = 0; i < Object.keys(mParameters.data).length; i++) {
1470
- if (mParameters.data && mFields.indexOf(Object.keys(mParameters.data)[i]) > -1) {
1471
- oTransientContext.setProperty(mFields[i], mParameters.data[mFields[i]]);
1472
- }
1473
- }
1474
- }
1475
- },
1476
1465
  afterClose: function() {
1477
1466
  // show footer as per UX guidelines when dialog is not open
1478
1467
  oDialog.getBindingContext("internal").setProperty("isCreateDialogOpen", false);
@@ -1494,7 +1483,14 @@ sap.ui.define(
1494
1483
  }
1495
1484
  oCreateButton = oDialog.getBeginButton();
1496
1485
  oDialog.setBindingContext(oTransientContext);
1497
- return CommonUtils.setUserDefaults(oAppComponent, aImmutableFields, oTransientContext)
1486
+ return CommonUtils.setUserDefaults(
1487
+ oAppComponent,
1488
+ aImmutableFields,
1489
+ oTransientContext,
1490
+ undefined,
1491
+ mParameters.createAction,
1492
+ mParameters.data
1493
+ )
1498
1494
  .then(function() {
1499
1495
  validateRequiredProperties();
1500
1496
  // footer must not be visible when the dialog is open as per UX guidelines
@@ -1502,7 +1498,7 @@ sap.ui.define(
1502
1498
  oDialog.open();
1503
1499
  })
1504
1500
  .catch(function(oError) {
1505
- return messageHandler.showMessageDialog().then(function() {
1501
+ return messageHandler.showMessages().then(function() {
1506
1502
  return Promise.reject(oError);
1507
1503
  });
1508
1504
  });
@@ -3,4 +3,4 @@
3
3
  (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
 
5
5
  */
6
- sap.ui.define(["sap/ui/base/Object","sap/fe/core/AnnotationHelper","sap/fe/core/actions/draft","sap/fe/core/actions/sticky","sap/fe/core/actions/operations","sap/ui/model/json/JSONModel","sap/m/Popover","sap/m/VBox","sap/m/CheckBox","sap/m/Text","sap/m/Button","sap/m/MessageToast","sap/m/Dialog","sap/ui/model/BindingMode","sap/base/Log","sap/ui/core/message/Message","sap/fe/core/CommonUtils","sap/fe/core/BusyLocker","sap/ui/core/util/XMLPreprocessor","sap/ui/core/XMLTemplateProcessor","sap/ui/core/Fragment","sap/m/MessageBox","sap/fe/core/helpers/ModelHelper","sap/fe/core/library","sap/ui/core/ValueState","sap/fe/core/actions/messageHandling"],function(B,A,d,s,o,J,P,V,C,T,a,M,D,b,L,c,e,f,X,g,F,h,j,k,l,m){"use strict";var n=k.CreationMode,p=k.ProgrammingModel;function q(i){if(i&&i.getMetadata&&i.getMetadata().getName()==="sap.ui.base.Event"){i={};}return i||{};}return B.extend("sap.fe.core.TransactionHelper",{constructor:function(i,r){this._oAppComponent=i;this.oLockObject=r;},getProgrammingModel:function(i){if(!this.sProgrammingModel&&i){if(j.isDraftSupported(i.getModel().getMetaModel(),i.getPath())){this.sProgrammingModel=p.Draft;}else if(j.isStickySessionSupported(i.getModel().getMetaModel())){this.sProgrammingModel=p.Sticky;}else{return p.NonDraft;}}return this.sProgrammingModel;},createDocument:function(i,r,R,t,u){var N,v=this,S,w=i.getModel(),x=w.getMetaModel(),y=x.getMetaPath(i.getHeaderContext().getPath()),z=this._getAppComponent().getRouterProxy().getHash(),E=this._getAppComponent().getComponentData(),G=(E&&E.startupParameters)||{},H=!i.isRelative()?this._getNewAction(G,z,x,y):undefined,I,K={"$$patchWithoutSideEffects":true},O=x.getObject(y+"/@com.sap.vocabularies.Common.v1.Messages/$Path"),Q,U="/busy",W=x.getObject(y+"@com.sap.vocabularies.Common.v1.DefaultValuesFunction")||x.getObject(j.getTargetEntitySet(x.getContext(y))+"@com.sap.vocabularies.Common.v1.DefaultValuesFunction");if(O){K["$select"]=O;}r=q(r);if(!i){return Promise.reject("Binding required for new document creation");}Q=this.getProgrammingModel(i);if(Q!==p.Draft&&Q!==p.Sticky){return Promise.reject("Create document only allowed for draft or sticky session supported services");}if(r.busyMode==="Local"){U="/busyLocal/"+i.sId;}f.lock(this.oLockObject,U);S=!r.refreshList;var Y=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");if(H){I=this.callAction(H,{contexts:i.getHeaderContext(),showActionParameterDialog:true,label:Y.getText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE"),bindingParameters:K,parentControl:r.parentControl,bIsCreateAction:true},null,t);}else{var Z=r.creationMode!==n.CreationRow&&r.creationMode!==n.Inline;var $=Z?e.getNonComputedVisibleFields(x,y):[];W=u?null:W;I=o.callFunctionImport(W,w).then(function(_){if(_){return _.getObject();}else{return undefined;}}).catch(function(_){L.error("Error while calling function Import "+W,_);throw _;}).then(function(_){r.data=_?Object.assign({},_,r.data):r.data;if(r.data){delete r.data["@odata.context"];}if($.length>0){var a1=w.bindList(i.getPath(),i.getContext(),[],[],{$$updateGroupId:"submitLater"});a1.refreshInternal=function(){};N=a1.create(r.data,S);return v._launchDialogWithKeyFields(i,a1,N,$,w,r,t,W);}else{N=i.create(r.data,S,r.createAtEnd);return v.onAfterCreateCompletion(i,N,r,Y);}}).catch(function(_){L.error("Error while creating the new document",_);throw _;});}return I.then(function(_){if(!i.isRelative()){v._bCreateMode=true;}N=N||(_&&_.response);if(_&&_.bConsiderDocumentModified){v.handleDocumentModifications();}return t.showMessageDialog().then(function(){return N;});}).catch(function(_){return t.showMessageDialog().then(function(){if(_&&_.bDeleteTransientContext&&N.isTransient()){N.delete("$direct");}return Promise.reject(_);});}).finally(function(){f.unlock(v.oLockObject,U);});},findActiveDraftRootContexts:function(i,r){if(!r){return Promise.resolve();}var t=i.reduce(function(R,u){var v=u.getModel().getMetaModel();var w=v.getMetaPath(u.getPath());if(v.getObject(w+"@com.sap.vocabularies.Common.v1.DraftRoot")){var I=u.getObject().IsActiveEntity,H=u.getObject().HasActiveEntity,x;if(!I&&H){x=u.getModel().bindContext(u.getPath()+"/SiblingEntity").getBoundContext();R.push(x);}}return R;},[]);return Promise.all(t.map(function(u){return u.requestCanonicalPath().then(function(){return u;},function(){return;});}));},afterDeleteProcess:function(i,r,t,R){var I=i.internalModelContext;if(I&&I.getProperty("deleteEnabled")!=undefined){if(r.isCheckBoxVisible===true&&r.isCheckBoxSelected===false){I.setProperty("deleteEnabled",true);var u=Object.assign(I.getObject(),{});u.selectedContexts=u.selectedContexts.filter(function(v){return u.deletableContexts.indexOf(v)===-1;});u.deletableContexts=[];u.selectedContexts=[];u.numberOfSelectedContexts=u.selectedContexts.length;I.setProperty("",u);}else{I.setProperty("deleteEnabled",false);I.setProperty("selectedContexts",[]);I.setProperty("numberOfSelectedContexts",0);}}if(t.length===1){M.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_DELETE_TOAST_SINGULAR",R,null,i.entitySetName));}else{M.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_DELETE_TOAST_PLURAL",R,null,i.entitySetName));}},deleteDocument:function(v,r,R,t){var u,w,x=[],y=false,z=false,E=false,G,H=false,I=this,K=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core"),N,O={title:K.getText("C_COMMON_OBJECT_PAGE_DELETE")};f.lock(this.oLockObject);if(!Array.isArray(v)){v=[v];}Promise.resolve(this.getProgrammingModel(v[0])).then(function(Q){if(r){if(!r.numberOfSelectedContexts){if(Q===p.Draft){for(var i=0;i<v.length;i++){var S=v[i].getObject();if(S.IsActiveEntity===true&&S.HasDraftEntity===true&&S.DraftAdministrativeData&&S.DraftAdministrativeData.InProcessByUser&&!S.DraftAdministrativeData.DraftIsCreatedByMe){h.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_SINGLE_OBJECT_LOCKED",R),{title:K.getText("C_COMMON_OBJECT_PAGE_DELETE"),onClose:u});return;}}}r=q(r);if(r.title){if(r.description){N=[r.title,r.description];O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO",R,N,r.entitySetName);}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName);}}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R);}x=v;}else{O={title:K.getText("C_COMMON_OBJECT_PAGE_DELETE")};if(r.numberOfSelectedContexts===1&&r.numberOfSelectedContexts===v.length){x=v;O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName);}else if(r.numberOfSelectedContexts===1&&r.unSavedContexts.length===1){x=r.unSavedContexts;var U=x[0].getObject()["DraftAdministrativeData"];var W="";if(U){W=U["LastChangedByUserDescription"]||U["LastChangedByUser"]||"";}N=[W];O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_CHANGES",R,N);}else if(r.numberOfSelectedContexts===r.unSavedContexts.length){x=r.unSavedContexts;O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_CHANGES_MULTIPLE_OBJECTS",R);}else if(r.numberOfSelectedContexts===v.concat(r.unSavedContexts.concat(r.lockedContexts)).length){x=v.concat(r.unSavedContexts);O.text=x.length===1?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_PLURAL",R,null,r.entitySetName);}else{x=v.concat(r.unSavedContexts);E=true;O.text=x.length===1?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR_NON_DELETABLE",R,null,r.entitySetName):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_PLURAL_NON_DELETABLE",R,null,r.entitySetName);O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length,r.numberOfSelectedContexts]);}if(r.lockedContexts.length==1){z=true;O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_ONE_OBJECT_LOCKED",R,[r.numberOfSelectedContexts]);}if(r.lockedContexts.length>1){z=true;O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_LOCKED",R,[r.lockedContexts.length,r.numberOfSelectedContexts]);}if(r.unSavedContexts.length>0&&r.unSavedContexts.length!==r.numberOfSelectedContexts){if((E||z)&&x.length===r.unSavedContexts.length){y=false;x=r.unSavedContexts;if(r.unSavedContexts.length===1){O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_AND_FEW_OBJECTS_LOCKED_SINGULAR",R);}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_AND_FEW_OBJECTS_LOCKED_PLURAL",R);}}else{if(r.unSavedContexts.length===1){O.checkBoxText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_UNSAVED_SINGULAR",R);}else{O.checkBoxText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_UNSAVED_PLURAL",R);}y=true;}}if(E&&z){if(r.unSavedContexts.length>1){O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_LOCKED_AND_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length-r.lockedContexts.length,r.lockedContexts.length,r.numberOfSelectedContexts]);}if(r.unSavedContexts.length==1){O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_ONE_OBJECT_LOCKED_AND_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length-r.lockedContexts.length,r.numberOfSelectedContexts]);}}}}var Y,Z,$=new V({items:[(Y=new T({text:O.nonDeletableText,visible:z||E})),(Z=new T({text:O.text})),new C({text:O.checkBoxText,selected:true,select:function(c1){var d1=c1.getSource().getSelected();if(d1){x=v.concat(r.unSavedContexts);G=true;}else{x=v;G=false;}},visible:y})]});var _=K.getText("C_COMMON_OBJECT_PAGE_DELETE");var a1=function(){H=true;f.lock(I.oLockObject);var c1=x;return I.findActiveDraftRootContexts(c1,r.bFindActiveContexts).then(function(d1){return Promise.all(c1.map(function(e1){return d.deleteDraft(e1);})).catch(function(e1){return t.showMessageDialog().then(function(){throw e1;});}).then(function(){var e1={"isCheckBoxVisible":y,"isCheckBoxSelected":G};if(d1&&d1.length){return Promise.all(d1.map(function(f1){return f1.delete();})).then(function(){I.afterDeleteProcess(r,e1,c1,R);return t.showMessageDialog().then(w);});}else{I.afterDeleteProcess(r,e1,c1,R);return t.showMessageDialog().then(w);}});}).catch(function(){u();}).finally(function(){f.unlock(I.oLockObject);});};var b1=new D({title:_,state:"Warning",content:[$],ariaLabelledBy:Y.getVisible()?[Y,Z]:Z,beginButton:new a({text:K.getText("C_COMMON_OBJECT_PAGE_DELETE"),type:"Emphasized",press:function(){b1.close();return a1();}}),endButton:new a({text:e.getTranslatedText("C_COMMON_OBJECT_PAGE_CANCEL",R),press:function(){b1.close();}}),afterClose:function(){b1.destroy();if(!H){u();}}});if(r.noDialog){return a1();}else{b1.addStyleClass("sapUiContentPadding");b1.open();}}).finally(function(){f.unlock(I.oLockObject);}).catch(function(){L.warning("Couldn't get Programming model");u();});return new Promise(function(i,Q){u=Q;w=i;});},editDocument:function(i,r,v,t){var u=this,w=this.getProgrammingModel(i),E;if(!i){return Promise.reject(new Error("Binding context to active document is required"));}this._bIsModified=false;f.lock(u.oLockObject);t.removeTransitionMessages();if(w===p.Draft){E=d.createDraftFromActiveDocument(i,this._getAppComponent(),{bPreserveChanges:true,bPrepareOnEdit:r,oView:v});}else if(w===p.Sticky){E=s.editDocumentInStickySession(i);}else{f.unlock(u.oLockObject);return Promise.reject(new Error("Edit is only allowed for draft or sticky session supported services"));}return E.then(function(N){u._bCreateMode=false;return t.showMessageDialog().then(function(){return N;});}).catch(function(x){return t.showMessageDialog().then(function(){return Promise.reject(x);});}).finally(function(){f.unlock(u.oLockObject);});},cancelDocument:function(i,r,R,t){var u=this,v;if(!i){return Promise.reject("No context exists. Pass a meaningful context");}f.lock(u.oLockObject);r=q(r);var w=i,x=r.cancelButton,y=w.getModel(),z;return Promise.resolve(this.getProgrammingModel(i)).then(function(E){v=E;if(E===p.Draft){var G=y.bindContext(w.getPath()+"/DraftAdministrativeData").getBoundContext();if(!u._bIsModified){return G.requestObject().then(function(H){if(H){u._bIsModified=!(H.CreationDateTime===H.LastChangeDateTime);}});}}}).then(function(){if(!r.bSkipDiscardPopover){return u._showDiscardPopover(x,u._bIsModified,R);}else{return Promise.resolve();}}).then(function(){switch(v){case p.Draft:return w.requestObject("HasActiveEntity").then(function(H){var E;if(!H){if(w&&w.hasPendingChanges()){w.getBinding().resetChanges();}E=d.deleteDraft(w);return E;}else{var G=y.bindContext(w.getPath()+"/SiblingEntity").getBoundContext();return G.requestCanonicalPath().then(function(I){z=I;if(w&&w.hasPendingChanges()){w.getBinding().resetChanges();}E=d.deleteDraft(w);return E;},function(){d.deleteDraft(w);return;}).then(function(){if(!z){return;}if(G.getPath()!==z){G=y.bindContext(z).getBoundContext();}return G;});}});case p.Sticky:return s.discardDocument(i).then(function(i){if(i){if(i.hasPendingChanges()){i.getBinding().resetChanges();}if(!u._bCreateMode){i.refresh();return i;}}return false;});default:return Promise.reject("Cancel document only allowed for draft or sticky session supported services");}}).then(function(E){u._bIsModified=false;t.removeTransitionMessages();return t.showMessageDialog().then(function(){return E;});}).catch(function(E){return t.showMessageDialog().then(function(){return Promise.reject(E);});}).finally(function(){f.unlock(u.oLockObject);});},saveDocument:function(i,r,E,t,u){var v=this,w=this.getProgrammingModel(i),S;if(!i){return Promise.reject(new Error("Binding context to draft document is required"));}u.removeTransitionMessages();f.lock(v.oLockObject);if(w===p.Draft){S=d.activateDocument(i,this._getAppComponent());}else if(w===p.Sticky){S=s.activateDocument(i);}else{f.unlock(v.oLockObject);return Promise.reject(new Error("Save is only allowed for draft or sticky session supported services"));}return S.then(function(x){var N=v.sProgrammingModel===p.Sticky?v._bCreateMode:!i.getObject().HasActiveEntity;M.show(N?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_CREATED",r):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_SAVED",r));v._bIsModified=false;return u.showMessageDialog().then(function(){return x;});}).catch(function(x){if(t&&t.length>0){t.forEach(function(y){if(!e.hasTransientContext(y)&&E){var z=v._getAppComponent();z.getSideEffectsService().requestSideEffectsForNavigationProperty(y.getPath(),i);}});}return u.showMessageDialog().then(function(){return Promise.reject(x);});}).finally(function(){f.unlock(v.oLockObject);});},callAction:function(r,t,v,u){t=q(t);var w=this,x,y,z,N,E=t.bindingParameters;if(!r){return Promise.reject("Provide name of action to be executed");}N=r.split("/")[1];r=N||r;x=N?undefined:t.contexts;if(x&&((Array.isArray(x)&&x.length)||!Array.isArray(x))){x=Array.isArray(x)?x[0]:x;y=x.getModel();}if(t.model){y=t.model;}if(!y){return Promise.reject("Pass a context for a bound action or pass the model for an unbound action");}var G=w._getAppComponent();var S=G.getSideEffectsService().getODataActionSideEffects(r,x)||{};if(x&&y){z=new Promise(function(H,I){var K;var O={onClose:function(){K.close();H();},onContinue:function(){K.close();H(t.applicableContext);}};var Q=function(){var _,a1=t.notApplicableContext.length,b1=[];for(var i=0;i<t.notApplicableContext.length;i++){_=t.notApplicableContext[i].getObject();b1.push(_);}var c1=new J(b1);var d1=new J({total:a1,label:t.label});K.setModel(c1,"notApplicable");K.setModel(d1,"totals");K.open();};if(t.notApplicableContext&&t.notApplicableContext.length>=1){var R="sap.fe.core.controls.ActionPartial";var U=g.loadTemplate(R,"fragment");var W=y.getMetaModel();var Y=t.contexts[0].getCanonicalPath();var Z=Y.substr(0,Y.indexOf("("))+"/";var $=new J({title:t.label});Promise.resolve(X.process(U,{name:R},{bindingContexts:{entityType:W.createBindingContext(Z),label:$.createBindingContext("/")},models:{entityType:W,metaModel:W,label:$}})).then(function(i){return F.load({definition:i,controller:O});}).then(function(i){K=i;t.parentControl.addDependent(i);Q();}).catch(I);}else{H(t.contexts);}}).then(function(i){if(i){return o.callBoundAction(r,i,y,G,{invocationGrouping:t.invocationGrouping,label:t.label,showActionParameterDialog:true,mBindingParameters:E,entitySetName:t.entitySetName,additionalSideEffect:S,onSubmitted:function(){u.removeTransitionMessages();f.lock(w.oLockObject);},onResponse:function(){f.unlock(w.oLockObject);},parentControl:t.parentControl,internalModelContext:t.internalModelContext,operationAvailableMap:t.operationAvailableMap,bIsCreateAction:t.bIsCreateAction,bGetBoundContext:t.bGetBoundContext,bObjectPage:t.bObjectPage,messageHandler:u,defaultValuesExtensionFunction:t.defaultValuesExtensionFunction});}else{return null;}});}else{z=o.callActionImport(r,y,G,{label:t.label,showActionParameterDialog:true,bindingParameters:E,entitySetName:t.entitySetName,onSubmitted:function(){f.lock(w.oLockObject);},onResponse:function(){f.unlock(w.oLockObject);},parentControl:t.parentControl,internalModelContext:t.internalModelContext,operationAvailableMap:t.operationAvailableMap,messageHandler:u,bObjectPage:t.bObjectPage});}return z.then(function(R){return w._handleActionResponse(u,t,r).then(function(){return R;});}).catch(function(i){return w._handleActionResponse(u,t,r).then(function(){return Promise.reject(i);});});},_handleActionResponse:function(i,r,t){var u=m.getMessages(true,true);if(u.length>0&&r&&r.internalModelContext){r.internalModelContext.setProperty("sActionName",r.label?r.label:t);}return i.showMessageDialog();},handleValidationError:function(){var i=sap.ui.getCore().getMessageManager(),r=i.getMessageModel().getData().filter(function(t){if(t.validation){return t;}});i.removeMessages(r);},_showDiscardPopover:function(i,I,r){var t=this;t._bContinueDiscard=false;return new Promise(function(u,v){if(!i){v("Cancel button not found");}if(I){var O=function(){i.setEnabled(true);if(t._bContinueDiscard){u();}else{v("Discard operation was rejected. Document has not been discarded");}t._oPopover.detachAfterClose(O);};if(!t._oPopover){var w=new T({text:e.getTranslatedText("C_TRANSACTION_HELPER_DRAFT_DISCARD_MESSAGE",r)}),x=new a({text:e.getTranslatedText("C_TRANSACTION_HELPER_DRAFT_DISCARD_BUTTON",r),width:"100%",press:function(){t.handleValidationError();t._bContinueDiscard=true;t._oPopover.close();},ariaLabelledBy:w});t._oPopover=new P({showHeader:false,placement:"Top",content:[new V({items:[w,x]})],beforeOpen:function(){i.setEnabled(false);t._oPopover.setInitialFocus(x);}});t._oPopover.addStyleClass("sapUiContentPadding");}t._oPopover.attachAfterClose(O);t._oPopover.openBy(i);}else{t.handleValidationError();u();}});},handleDocumentModifications:function(){this._bIsModified=true;},_getAppComponent:function(){return this._oAppComponent;},_launchDialogWithKeyFields:function(r,t,u,v,w,x,y,z){var E=this,G,H=x.parentControl,S=false;return new Promise(function(I,K){var N="sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog";var O=g.loadTemplate(N,"fragment"),R=H.getController().oResourceBundle,Q=w.getMetaModel(),U=[],W=E._getAppComponent(),Y=Q.createBindingContext(r.getPath()),Z=Q.getMetaPath(r.getPath());for(var i in v){U.push(Q.createBindingContext(Z+"/"+v[i]));}var $=new J(U);$=$.createBindingContext("/");return Promise.resolve(X.process(O,{name:N},{bindingContexts:{entitySet:Y,fields:$},models:{entitySet:Y.getModel(),fields:$.getModel(),metaModel:Q}})).then(function(O){var _=[],a1={},b1,c1=function(){return Promise.all(_.map(function(e1){return e1.getFields()[0];}).filter(function(e1){return e1.getRequired();}).map(function(e1){var f1=e1.getId();if(f1 in a1){return Promise.resolve(a1[f1]).then(function(g1){return g1;}).catch(function(){return undefined;});}return e1.getValueState()===l.Error?undefined:e1.getValue();})).then(function(e1){return e1.every(function(f1){return f1!==undefined&&f1!==null&&f1!=="";});}).catch(function(){return false;}).then(function(e1){b1.setEnabled(e1);});},d1={handleChange:function(e1){y.removeTransitionMessages();var f1=e1.getSource();var g1=e1.getParameter("id");var h1=e1.getParameter("promise");if(h1){a1[g1]=h1.then(function(){return f1.getValue();});}c1();},handleLiveChange:function(e1){var f1=e1.getParameter("id");var g1=e1.getParameter("value");a1[f1]=g1;c1();}};return F.load({definition:O,controller:d1}).then(function(e1){G=new D({title:e.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE",R),content:[e1],beginButton:{text:e.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE_BUTTON",R),type:"Emphasized",press:function(f1){var b1=f1.getSource();b1.setEnabled(false);f.lock(G);return Promise.all(Object.keys(a1).map(function(g1){return a1[g1];})).then(function(){var g1=E.onAfterCreateCompletion(t,u,x,R);w.submitBatch("submitLater");return g1;}).then(function(g1){G.setBindingContext(null);G.close();I(g1);}).finally(function(){f.unlock(G);b1.setEnabled(true);return y.showMessageDialog();});}},endButton:{text:e.getTranslatedText("C_COMMON_ACTION_PARAMETER_DIALOG_CANCEL",R),press:function(){G.close();}},beforeOpen:function(){if(z){for(var i=0;i<Object.keys(x.data).length;i++){if(x.data&&v.indexOf(Object.keys(x.data)[i])>-1){u.setProperty(v[i],x.data[v[i]]);}}}},afterClose:function(){G.getBindingContext("internal").setProperty("isCreateDialogOpen",false);G.destroy();if(!S){K({bDeleteTransientContext:true});}}});_=e1.getAggregation("form").getAggregation("formContainers")[0].getAggregation("formElements");if(H&&H.addDependent){H.addDependent(G);}b1=G.getBeginButton();G.setBindingContext(u);return e.setUserDefaults(W,U,u).then(function(){c1();G.getBindingContext("internal").setProperty("isCreateDialogOpen",true);G.open();}).catch(function(f1){return y.showMessageDialog().then(function(){return Promise.reject(f1);});});});});});},onAfterCreateCompletion:function(i,N,r,R){var t,u,v=new Promise(function(x,y){t=x;u=y;});var w=function(E){var x=E.getParameter("context"),S=E.getParameter("success");if(x===N){i.detachCreateCompleted(w,this);if(!S){var y={bDeleteTransientContext:false};if(!r.keepTransientContextOnFailed){y.bDeleteTransientContext=true;x.created().then(undefined,function(){L.trace("transient creation context deleted");}).catch(function(y){L.trace("transient creation context deletion error",y);});y.navigateBackFromTransientState=true;}u(y);}else{t();}}};i.attachCreateCompleted(w,this);return v;},_getNewAction:function(S,i,r,t){var N;if(S&&S.preferredMode&&i.indexOf("i-action=createWith")>-1){var u=S.preferredMode[0];N=u.indexOf("createWith:")>-1?u.substr(u.lastIndexOf(":")+1):undefined;}else{N=r&&r.getObject!==undefined?r.getObject(t+"@com.sap.vocabularies.Session.v1.StickySessionSupported/NewAction")||r.getObject(t+"@com.sap.vocabularies.Common.v1.DraftRoot/NewAction"):undefined;}return N;}});});
6
+ sap.ui.define(["sap/ui/base/Object","sap/fe/core/AnnotationHelper","sap/fe/core/actions/draft","sap/fe/core/actions/sticky","sap/fe/core/actions/operations","sap/ui/model/json/JSONModel","sap/m/Popover","sap/m/VBox","sap/m/CheckBox","sap/m/Text","sap/m/Button","sap/m/MessageToast","sap/m/Dialog","sap/ui/model/BindingMode","sap/base/Log","sap/ui/core/message/Message","sap/fe/core/CommonUtils","sap/fe/core/BusyLocker","sap/ui/core/util/XMLPreprocessor","sap/ui/core/XMLTemplateProcessor","sap/ui/core/Fragment","sap/m/MessageBox","sap/fe/core/helpers/ModelHelper","sap/fe/core/library","sap/ui/core/ValueState","sap/fe/core/actions/messageHandling"],function(B,A,d,s,o,J,P,V,C,T,a,M,D,b,L,c,e,f,X,g,F,h,j,k,l,m){"use strict";var n=k.CreationMode,p=k.ProgrammingModel;function q(i){if(i&&i.getMetadata&&i.getMetadata().getName()==="sap.ui.base.Event"){i={};}return i||{};}return B.extend("sap.fe.core.TransactionHelper",{constructor:function(i,r){this._oAppComponent=i;this.oLockObject=r;},getProgrammingModel:function(i){if(!this.sProgrammingModel&&i){if(j.isDraftSupported(i.getModel().getMetaModel(),i.getPath())){this.sProgrammingModel=p.Draft;}else if(j.isStickySessionSupported(i.getModel().getMetaModel())){this.sProgrammingModel=p.Sticky;}else{return p.NonDraft;}}return this.sProgrammingModel;},createDocument:function(i,r,R,t,u){var N,v=this,S,w=i.getModel(),x=w.getMetaModel(),y=x.getMetaPath(i.getHeaderContext().getPath()),z=this._getAppComponent().getRouterProxy().getHash(),E=this._getAppComponent().getComponentData(),G=(E&&E.startupParameters)||{},H=!i.isRelative()?this._getNewAction(G,z,x,y):undefined,I,K={"$$patchWithoutSideEffects":true},O=x.getObject(y+"/@com.sap.vocabularies.Common.v1.Messages/$Path"),Q,U="/busy",W=x.getObject(y+"@com.sap.vocabularies.Common.v1.DefaultValuesFunction")||x.getObject(j.getTargetEntitySet(x.getContext(y))+"@com.sap.vocabularies.Common.v1.DefaultValuesFunction");if(O){K["$select"]=O;}r=q(r);if(!i){return Promise.reject("Binding required for new document creation");}Q=this.getProgrammingModel(i);if(Q!==p.Draft&&Q!==p.Sticky){return Promise.reject("Create document only allowed for draft or sticky session supported services");}if(r.busyMode==="Local"){U="/busyLocal/"+i.sId;}f.lock(this.oLockObject,U);S=!r.refreshList;var Y=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");if(H){I=this.callAction(H,{contexts:i.getHeaderContext(),showActionParameterDialog:true,label:Y.getText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE"),bindingParameters:K,parentControl:r.parentControl,bIsCreateAction:true},null,t);}else{var Z=r.creationMode!==n.CreationRow&&r.creationMode!==n.Inline;var $=Z?e.getNonComputedVisibleFields(x,y):[];W=u?null:W;I=o.callFunctionImport(W,w).then(function(_){if(_){return _.getObject();}else{return undefined;}}).catch(function(_){L.error("Error while calling function Import "+W,_);throw _;}).then(function(_){r.data=_?Object.assign({},_,r.data):r.data;if(r.data){delete r.data["@odata.context"];}if($.length>0){var a1=w.bindList(i.getPath(),i.getContext(),[],[],{$$updateGroupId:"submitLater"});a1.refreshInternal=function(){};N=a1.create(r.data,S);return v._launchDialogWithKeyFields(i,a1,N,$,w,r,t);}else{N=i.create(r.data,S,r.createAtEnd);return v.onAfterCreateCompletion(i,N,r,Y);}}).catch(function(_){L.error("Error while creating the new document",_);throw _;});}return I.then(function(_){if(!i.isRelative()){v._bCreateMode=true;}N=N||(_&&_.response);if(_&&_.bConsiderDocumentModified){v.handleDocumentModifications();}return t.showMessageDialog().then(function(){return N;});}).catch(function(_){return t.showMessageDialog().then(function(){if(_&&_.bDeleteTransientContext&&N.isTransient()){N.delete("$direct");}return Promise.reject(_);});}).finally(function(){f.unlock(v.oLockObject,U);});},findActiveDraftRootContexts:function(i,r){if(!r){return Promise.resolve();}var t=i.reduce(function(R,u){var v=u.getModel().getMetaModel();var w=v.getMetaPath(u.getPath());if(v.getObject(w+"@com.sap.vocabularies.Common.v1.DraftRoot")){var I=u.getObject().IsActiveEntity,H=u.getObject().HasActiveEntity,x;if(!I&&H){x=u.getModel().bindContext(u.getPath()+"/SiblingEntity").getBoundContext();R.push(x);}}return R;},[]);return Promise.all(t.map(function(u){return u.requestCanonicalPath().then(function(){return u;},function(){return;});}));},afterDeleteProcess:function(i,r,t,R){var I=i.internalModelContext;if(I&&I.getProperty("deleteEnabled")!=undefined){if(r.isCheckBoxVisible===true&&r.isCheckBoxSelected===false){I.setProperty("deleteEnabled",true);var u=Object.assign(I.getObject(),{});u.selectedContexts=u.selectedContexts.filter(function(v){return u.deletableContexts.indexOf(v)===-1;});u.deletableContexts=[];u.selectedContexts=[];u.numberOfSelectedContexts=u.selectedContexts.length;I.setProperty("",u);}else{I.setProperty("deleteEnabled",false);I.setProperty("selectedContexts",[]);I.setProperty("numberOfSelectedContexts",0);}}if(t.length===1){M.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_DELETE_TOAST_SINGULAR",R,null,i.entitySetName));}else{M.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_DELETE_TOAST_PLURAL",R,null,i.entitySetName));}},deleteDocument:function(v,r,R,t){var u,w,x=[],y=false,z=false,E=false,G,H=false,I=this,K=sap.ui.getCore().getLibraryResourceBundle("sap.fe.core"),N,O={title:K.getText("C_COMMON_OBJECT_PAGE_DELETE")};f.lock(this.oLockObject);if(!Array.isArray(v)){v=[v];}Promise.resolve(this.getProgrammingModel(v[0])).then(function(Q){if(r){if(!r.numberOfSelectedContexts){if(Q===p.Draft){for(var i=0;i<v.length;i++){var S=v[i].getObject();if(S.IsActiveEntity===true&&S.HasDraftEntity===true&&S.DraftAdministrativeData&&S.DraftAdministrativeData.InProcessByUser&&!S.DraftAdministrativeData.DraftIsCreatedByMe){h.show(e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_SINGLE_OBJECT_LOCKED",R),{title:K.getText("C_COMMON_OBJECT_PAGE_DELETE"),onClose:u});return;}}}r=q(r);if(r.title){if(r.description){N=[r.title,r.description];O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO",R,N,r.entitySetName);}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName);}}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R);}x=v;}else{O={title:K.getText("C_COMMON_OBJECT_PAGE_DELETE")};if(r.numberOfSelectedContexts===1&&r.numberOfSelectedContexts===v.length){x=v;O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName);}else if(r.numberOfSelectedContexts===1&&r.unSavedContexts.length===1){x=r.unSavedContexts;var U=x[0].getObject()["DraftAdministrativeData"];var W="";if(U){W=U["LastChangedByUserDescription"]||U["LastChangedByUser"]||"";}N=[W];O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_CHANGES",R,N);}else if(r.numberOfSelectedContexts===r.unSavedContexts.length){x=r.unSavedContexts;O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_CHANGES_MULTIPLE_OBJECTS",R);}else if(r.numberOfSelectedContexts===v.concat(r.unSavedContexts.concat(r.lockedContexts)).length){x=v.concat(r.unSavedContexts);O.text=x.length===1?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR",R,null,r.entitySetName):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_PLURAL",R,null,r.entitySetName);}else{x=v.concat(r.unSavedContexts);E=true;O.text=x.length===1?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_SINGULAR_NON_DELETABLE",R,null,r.entitySetName):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTTITLE_PLURAL_NON_DELETABLE",R,null,r.entitySetName);O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length,r.numberOfSelectedContexts]);}if(r.lockedContexts.length==1){z=true;O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_ONE_OBJECT_LOCKED",R,[r.numberOfSelectedContexts]);}if(r.lockedContexts.length>1){z=true;O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_LOCKED",R,[r.lockedContexts.length,r.numberOfSelectedContexts]);}if(r.unSavedContexts.length>0&&r.unSavedContexts.length!==r.numberOfSelectedContexts){if((E||z)&&x.length===r.unSavedContexts.length){y=false;x=r.unSavedContexts;if(r.unSavedContexts.length===1){O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_AND_FEW_OBJECTS_LOCKED_SINGULAR",R);}else{O.text=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_UNSAVED_AND_FEW_OBJECTS_LOCKED_PLURAL",R);}}else{if(r.unSavedContexts.length===1){O.checkBoxText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_UNSAVED_SINGULAR",R);}else{O.checkBoxText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_UNSAVED_PLURAL",R);}y=true;}}if(E&&z){if(r.unSavedContexts.length>1){O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_FEW_OBJECTS_LOCKED_AND_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length-r.lockedContexts.length,r.lockedContexts.length,r.numberOfSelectedContexts]);}if(r.unSavedContexts.length==1){O.nonDeletableText=e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_PAGE_CONFIRM_DELETE_WITH_OBJECTINFO_AND_ONE_OBJECT_LOCKED_AND_NON_DELETABLE",R,[r.numberOfSelectedContexts-v.concat(r.unSavedContexts).length-r.lockedContexts.length,r.numberOfSelectedContexts]);}}}}var Y,Z,$=new V({items:[(Y=new T({text:O.nonDeletableText,visible:z||E})),(Z=new T({text:O.text})),new C({text:O.checkBoxText,selected:true,select:function(c1){var d1=c1.getSource().getSelected();if(d1){x=v.concat(r.unSavedContexts);G=true;}else{x=v;G=false;}},visible:y})]});var _=K.getText("C_COMMON_OBJECT_PAGE_DELETE");var a1=function(){H=true;f.lock(I.oLockObject);var c1=x;return I.findActiveDraftRootContexts(c1,r.bFindActiveContexts).then(function(d1){return Promise.all(c1.map(function(e1){return d.deleteDraft(e1);})).catch(function(e1){return t.showMessages().then(function(){throw e1;});}).then(function(){var e1={"isCheckBoxVisible":y,"isCheckBoxSelected":G};if(d1&&d1.length){return Promise.all(d1.map(function(f1){return f1.delete();})).then(function(){I.afterDeleteProcess(r,e1,c1,R);return t.showMessageDialog().then(w);});}else{I.afterDeleteProcess(r,e1,c1,R);return t.showMessageDialog().then(w);}});}).catch(function(){u();}).finally(function(){f.unlock(I.oLockObject);});};var b1=new D({title:_,state:"Warning",content:[$],ariaLabelledBy:Y.getVisible()?[Y,Z]:Z,beginButton:new a({text:K.getText("C_COMMON_OBJECT_PAGE_DELETE"),type:"Emphasized",press:function(){b1.close();return a1();}}),endButton:new a({text:e.getTranslatedText("C_COMMON_OBJECT_PAGE_CANCEL",R),press:function(){b1.close();}}),afterClose:function(){b1.destroy();if(!H){u();}}});if(r.noDialog){return a1();}else{b1.addStyleClass("sapUiContentPadding");b1.open();}}).finally(function(){f.unlock(I.oLockObject);}).catch(function(){L.warning("Couldn't get Programming model");u();});return new Promise(function(i,Q){u=Q;w=i;});},editDocument:function(i,r,v,t){var u=this,w=this.getProgrammingModel(i),E;if(!i){return Promise.reject(new Error("Binding context to active document is required"));}this._bIsModified=false;f.lock(u.oLockObject);t.removeTransitionMessages();if(w===p.Draft){E=d.createDraftFromActiveDocument(i,this._getAppComponent(),{bPreserveChanges:true,bPrepareOnEdit:r,oView:v});}else if(w===p.Sticky){E=s.editDocumentInStickySession(i);}else{f.unlock(u.oLockObject);return Promise.reject(new Error("Edit is only allowed for draft or sticky session supported services"));}return E.then(function(N){u._bCreateMode=false;return t.showMessageDialog().then(function(){return N;});}).catch(function(x){return t.showMessages().then(function(){return Promise.reject(x);});}).finally(function(){f.unlock(u.oLockObject);});},cancelDocument:function(i,r,R,t){var u=this,v;if(!i){return Promise.reject("No context exists. Pass a meaningful context");}f.lock(u.oLockObject);r=q(r);var w=i,x=r.cancelButton,y=w.getModel(),z;return Promise.resolve(this.getProgrammingModel(i)).then(function(E){v=E;if(E===p.Draft){var G=y.bindContext(w.getPath()+"/DraftAdministrativeData").getBoundContext();if(!u._bIsModified){return G.requestObject().then(function(H){if(H){u._bIsModified=!(H.CreationDateTime===H.LastChangeDateTime);}});}}}).then(function(){if(!r.bSkipDiscardPopover){return u._showDiscardPopover(x,u._bIsModified,R);}else{return Promise.resolve();}}).then(function(){switch(v){case p.Draft:return w.requestObject("HasActiveEntity").then(function(H){var E;if(!H){if(w&&w.hasPendingChanges()){w.getBinding().resetChanges();}E=d.deleteDraft(w);return E;}else{var G=y.bindContext(w.getPath()+"/SiblingEntity").getBoundContext();return G.requestCanonicalPath().then(function(I){z=I;if(w&&w.hasPendingChanges()){w.getBinding().resetChanges();}E=d.deleteDraft(w);return E;},function(){d.deleteDraft(w);return;}).then(function(){if(!z){return;}if(G.getPath()!==z){G=y.bindContext(z).getBoundContext();}return G;});}});case p.Sticky:return s.discardDocument(i).then(function(i){if(i){if(i.hasPendingChanges()){i.getBinding().resetChanges();}if(!u._bCreateMode){i.refresh();return i;}}return false;});default:return Promise.reject("Cancel document only allowed for draft or sticky session supported services");}}).then(function(E){u._bIsModified=false;t.removeTransitionMessages();return t.showMessages().then(function(){return E;});}).catch(function(E){return t.showMessages().then(function(){return Promise.reject(E);});}).finally(function(){f.unlock(u.oLockObject);});},saveDocument:function(i,r,E,t,u){var v=this,w=this.getProgrammingModel(i),S;if(!i){return Promise.reject(new Error("Binding context to draft document is required"));}u.removeTransitionMessages();f.lock(v.oLockObject);if(w===p.Draft){S=d.activateDocument(i,this._getAppComponent());}else if(w===p.Sticky){S=s.activateDocument(i);}else{f.unlock(v.oLockObject);return Promise.reject(new Error("Save is only allowed for draft or sticky session supported services"));}return S.then(function(x){var N=v.sProgrammingModel===p.Sticky?v._bCreateMode:!i.getObject().HasActiveEntity;M.show(N?e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_CREATED",r):e.getTranslatedText("C_TRANSACTION_HELPER_OBJECT_SAVED",r));v._bIsModified=false;return u.showMessageDialog().then(function(){return x;});}).catch(function(x){if(t&&t.length>0){t.forEach(function(y){if(!e.hasTransientContext(y)&&E){var z=v._getAppComponent();z.getSideEffectsService().requestSideEffectsForNavigationProperty(y.getPath(),i);}});}return u.showMessages().then(function(){return Promise.reject(x);});}).finally(function(){f.unlock(v.oLockObject);});},callAction:function(r,t,v,u){t=q(t);var w=this,x,y,z,N,E=t.bindingParameters;if(!r){return Promise.reject("Provide name of action to be executed");}N=r.split("/")[1];r=N||r;x=N?undefined:t.contexts;if(x&&((Array.isArray(x)&&x.length)||!Array.isArray(x))){x=Array.isArray(x)?x[0]:x;y=x.getModel();}if(t.model){y=t.model;}if(!y){return Promise.reject("Pass a context for a bound action or pass the model for an unbound action");}var G=w._getAppComponent();var S=G.getSideEffectsService().getODataActionSideEffects(r,x)||{};if(x&&y){z=new Promise(function(H,I){var K;var O={onClose:function(){K.close();H();},onContinue:function(){K.close();H(t.applicableContext);}};var Q=function(){var _,a1=t.notApplicableContext.length,b1=[];for(var i=0;i<t.notApplicableContext.length;i++){_=t.notApplicableContext[i].getObject();b1.push(_);}var c1=new J(b1);var d1=new J({total:a1,label:t.label});K.setModel(c1,"notApplicable");K.setModel(d1,"totals");K.open();};if(t.notApplicableContext&&t.notApplicableContext.length>=1){var R="sap.fe.core.controls.ActionPartial";var U=g.loadTemplate(R,"fragment");var W=y.getMetaModel();var Y=t.contexts[0].getCanonicalPath();var Z=Y.substr(0,Y.indexOf("("))+"/";var $=new J({title:t.label});Promise.resolve(X.process(U,{name:R},{bindingContexts:{entityType:W.createBindingContext(Z),label:$.createBindingContext("/")},models:{entityType:W,metaModel:W,label:$}})).then(function(i){return F.load({definition:i,controller:O});}).then(function(i){K=i;t.parentControl.addDependent(i);Q();}).catch(I);}else{H(t.contexts);}}).then(function(i){if(i){return o.callBoundAction(r,i,y,G,{invocationGrouping:t.invocationGrouping,label:t.label,showActionParameterDialog:true,mBindingParameters:E,entitySetName:t.entitySetName,additionalSideEffect:S,onSubmitted:function(){u.removeTransitionMessages();f.lock(w.oLockObject);},onResponse:function(){f.unlock(w.oLockObject);},parentControl:t.parentControl,internalModelContext:t.internalModelContext,operationAvailableMap:t.operationAvailableMap,bIsCreateAction:t.bIsCreateAction,bGetBoundContext:t.bGetBoundContext,bObjectPage:t.bObjectPage,messageHandler:u,defaultValuesExtensionFunction:t.defaultValuesExtensionFunction});}else{return null;}});}else{z=o.callActionImport(r,y,G,{label:t.label,showActionParameterDialog:true,bindingParameters:E,entitySetName:t.entitySetName,onSubmitted:function(){f.lock(w.oLockObject);},onResponse:function(){f.unlock(w.oLockObject);},parentControl:t.parentControl,internalModelContext:t.internalModelContext,operationAvailableMap:t.operationAvailableMap,messageHandler:u,bObjectPage:t.bObjectPage});}return z.then(function(R){return w._handleActionResponse(u,t,r).then(function(){return R;});}).catch(function(i){return w._handleActionResponse(u,t,r).then(function(){return Promise.reject(i);});});},_handleActionResponse:function(i,r,t){var u=m.getMessages(true,true);if(u.length>0&&r&&r.internalModelContext){r.internalModelContext.setProperty("sActionName",r.label?r.label:t);}return i.showMessages();},handleValidationError:function(){var i=sap.ui.getCore().getMessageManager(),r=i.getMessageModel().getData().filter(function(t){if(t.validation){return t;}});i.removeMessages(r);},_showDiscardPopover:function(i,I,r){var t=this;t._bContinueDiscard=false;return new Promise(function(u,v){if(!i){v("Cancel button not found");}if(I){var O=function(){i.setEnabled(true);if(t._bContinueDiscard){u();}else{v("Discard operation was rejected. Document has not been discarded");}t._oPopover.detachAfterClose(O);};if(!t._oPopover){var w=new T({text:e.getTranslatedText("C_TRANSACTION_HELPER_DRAFT_DISCARD_MESSAGE",r)}),x=new a({text:e.getTranslatedText("C_TRANSACTION_HELPER_DRAFT_DISCARD_BUTTON",r),width:"100%",press:function(){t.handleValidationError();t._bContinueDiscard=true;t._oPopover.close();},ariaLabelledBy:w});t._oPopover=new P({showHeader:false,placement:"Top",content:[new V({items:[w,x]})],beforeOpen:function(){i.setEnabled(false);t._oPopover.setInitialFocus(x);}});t._oPopover.addStyleClass("sapUiContentPadding");}t._oPopover.attachAfterClose(O);t._oPopover.openBy(i);}else{t.handleValidationError();u();}});},handleDocumentModifications:function(){this._bIsModified=true;},_getAppComponent:function(){return this._oAppComponent;},_launchDialogWithKeyFields:function(r,t,u,v,w,x,y){var z=this,E,G=x.parentControl,S=false;return new Promise(function(H,I){var K="sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog";var N=g.loadTemplate(K,"fragment"),R=G.getController().oResourceBundle,O=w.getMetaModel(),Q=[],U=z._getAppComponent(),W=O.createBindingContext(r.getPath()),Y=O.getMetaPath(r.getPath());for(var i in v){Q.push(O.createBindingContext(Y+"/"+v[i]));}var Z=new J(Q);Z=Z.createBindingContext("/");return Promise.resolve(X.process(N,{name:K},{bindingContexts:{entitySet:W,fields:Z},models:{entitySet:W.getModel(),fields:Z.getModel(),metaModel:O}})).then(function(N){var $=[],_={},a1,b1=function(){return Promise.all($.map(function(d1){return d1.getFields()[0];}).filter(function(d1){return d1.getRequired();}).map(function(d1){var e1=d1.getId();if(e1 in _){return Promise.resolve(_[e1]).then(function(f1){return f1;}).catch(function(){return undefined;});}return d1.getValueState()===l.Error?undefined:d1.getValue();})).then(function(d1){return d1.every(function(e1){return e1!==undefined&&e1!==null&&e1!=="";});}).catch(function(){return false;}).then(function(d1){a1.setEnabled(d1);});},c1={handleChange:function(d1){y.removeTransitionMessages();var e1=d1.getSource();var f1=d1.getParameter("id");var g1=d1.getParameter("promise");if(g1){_[f1]=g1.then(function(){return e1.getValue();});}b1();},handleLiveChange:function(d1){var e1=d1.getParameter("id");var f1=d1.getParameter("value");_[e1]=f1;b1();}};return F.load({definition:N,controller:c1}).then(function(d1){E=new D({title:e.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE",R),content:[d1],beginButton:{text:e.getTranslatedText("C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE_BUTTON",R),type:"Emphasized",press:function(e1){var a1=e1.getSource();a1.setEnabled(false);f.lock(E);return Promise.all(Object.keys(_).map(function(f1){return _[f1];})).then(function(){var f1=z.onAfterCreateCompletion(t,u,x,R);w.submitBatch("submitLater");return f1;}).then(function(f1){E.setBindingContext(null);E.close();H(f1);}).finally(function(){f.unlock(E);a1.setEnabled(true);return y.showMessages();});}},endButton:{text:e.getTranslatedText("C_COMMON_ACTION_PARAMETER_DIALOG_CANCEL",R),press:function(){E.close();}},afterClose:function(){E.getBindingContext("internal").setProperty("isCreateDialogOpen",false);E.destroy();if(!S){I({bDeleteTransientContext:true});}}});$=d1.getAggregation("form").getAggregation("formContainers")[0].getAggregation("formElements");if(G&&G.addDependent){G.addDependent(E);}a1=E.getBeginButton();E.setBindingContext(u);return e.setUserDefaults(U,Q,u,undefined,x.createAction,x.data).then(function(){b1();E.getBindingContext("internal").setProperty("isCreateDialogOpen",true);E.open();}).catch(function(e1){return y.showMessages().then(function(){return Promise.reject(e1);});});});});});},onAfterCreateCompletion:function(i,N,r,R){var t,u,v=new Promise(function(x,y){t=x;u=y;});var w=function(E){var x=E.getParameter("context"),S=E.getParameter("success");if(x===N){i.detachCreateCompleted(w,this);if(!S){var y={bDeleteTransientContext:false};if(!r.keepTransientContextOnFailed){y.bDeleteTransientContext=true;x.created().then(undefined,function(){L.trace("transient creation context deleted");}).catch(function(y){L.trace("transient creation context deletion error",y);});y.navigateBackFromTransientState=true;}u(y);}else{t();}}};i.attachCreateCompleted(w,this);return v;},_getNewAction:function(S,i,r,t){var N;if(S&&S.preferredMode&&i.indexOf("i-action=createWith")>-1){var u=S.preferredMode[0];N=u.indexOf("createWith:")>-1?u.substr(u.lastIndexOf(":")+1):undefined;}else{N=r&&r.getObject!==undefined?r.getObject(t+"@com.sap.vocabularies.Session.v1.StickySessionSupported/NewAction")||r.getObject(t+"@com.sap.vocabularies.Common.v1.DraftRoot/NewAction"):undefined;}return N;}});});