@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
@@ -43,14 +43,15 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/converters/
43
43
  * @returns The binding expression for the object page title
44
44
  */
45
45
  var getExpressionForTitle = function (oHeaderInfo, oViewData, fullContextPath, oDraftRoot) {
46
- var _oHeaderInfo$Title, _oHeaderInfo$Title2, _oHeaderInfo$Title2$V, _oHeaderInfo$Title2$V2, _oHeaderInfo$Title2$V3, _oHeaderInfo$Title2$V4, _oHeaderInfo$Title2$V5, _oHeaderInfo$Title2$V6, _oHeaderInfo$Title2$V7;
46
+ var _oHeaderInfo$Title, _oHeaderInfo$Title2, _oHeaderInfo$Title3, _oHeaderInfo$Title3$V, _oHeaderInfo$Title3$V2, _oHeaderInfo$Title3$V3, _oHeaderInfo$Title3$V4, _oHeaderInfo$Title3$V5, _oHeaderInfo$Title3$V6, _oHeaderInfo$Title3$V7;
47
47
 
48
48
  var titleNoHeaderInfo = CommonUtils.getTranslatedText("T_NEW_OBJECT", oViewData.resourceBundle, undefined, oViewData.entitySet);
49
49
  var titleWithHeaderInfo = CommonUtils.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE", oViewData.resourceBundle, undefined, oViewData.entitySet);
50
- var titleForActiveHeaderNoHeaderInfo = CommonUtils.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO", oViewData.resourceBundle);
51
- var titleValueExpression = annotationExpression(oHeaderInfo === null || oHeaderInfo === void 0 ? void 0 : (_oHeaderInfo$Title = oHeaderInfo.Title) === null || _oHeaderInfo$Title === void 0 ? void 0 : _oHeaderInfo$Title.Value);
50
+ var oEmptyHeaderInfoTitle = (oHeaderInfo === null || oHeaderInfo === void 0 ? void 0 : oHeaderInfo.Title) === undefined || (oHeaderInfo === null || oHeaderInfo === void 0 ? void 0 : oHeaderInfo.Title) === "" || (oHeaderInfo === null || oHeaderInfo === void 0 ? void 0 : (_oHeaderInfo$Title = oHeaderInfo.Title) === null || _oHeaderInfo$Title === void 0 ? void 0 : _oHeaderInfo$Title.Value) === "";
51
+ var titleForActiveHeaderNoHeaderInfo = !oEmptyHeaderInfoTitle ? CommonUtils.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO", oViewData.resourceBundle) : "";
52
+ var titleValueExpression = annotationExpression(oHeaderInfo === null || oHeaderInfo === void 0 ? void 0 : (_oHeaderInfo$Title2 = oHeaderInfo.Title) === null || _oHeaderInfo$Title2 === void 0 ? void 0 : _oHeaderInfo$Title2.Value);
52
53
 
53
- if (oHeaderInfo !== null && oHeaderInfo !== void 0 && (_oHeaderInfo$Title2 = oHeaderInfo.Title) !== null && _oHeaderInfo$Title2 !== void 0 && (_oHeaderInfo$Title2$V = _oHeaderInfo$Title2.Value) !== null && _oHeaderInfo$Title2$V !== void 0 && (_oHeaderInfo$Title2$V2 = _oHeaderInfo$Title2$V.$target) !== null && _oHeaderInfo$Title2$V2 !== void 0 && (_oHeaderInfo$Title2$V3 = _oHeaderInfo$Title2$V2.annotations) !== null && _oHeaderInfo$Title2$V3 !== void 0 && (_oHeaderInfo$Title2$V4 = _oHeaderInfo$Title2$V3.Common) !== null && _oHeaderInfo$Title2$V4 !== void 0 && (_oHeaderInfo$Title2$V5 = _oHeaderInfo$Title2$V4.Text) !== null && _oHeaderInfo$Title2$V5 !== void 0 && (_oHeaderInfo$Title2$V6 = _oHeaderInfo$Title2$V5.annotations) !== null && _oHeaderInfo$Title2$V6 !== void 0 && (_oHeaderInfo$Title2$V7 = _oHeaderInfo$Title2$V6.UI) !== null && _oHeaderInfo$Title2$V7 !== void 0 && _oHeaderInfo$Title2$V7.TextArrangement) {
54
+ if (oHeaderInfo !== null && oHeaderInfo !== void 0 && (_oHeaderInfo$Title3 = oHeaderInfo.Title) !== null && _oHeaderInfo$Title3 !== void 0 && (_oHeaderInfo$Title3$V = _oHeaderInfo$Title3.Value) !== null && _oHeaderInfo$Title3$V !== void 0 && (_oHeaderInfo$Title3$V2 = _oHeaderInfo$Title3$V.$target) !== null && _oHeaderInfo$Title3$V2 !== void 0 && (_oHeaderInfo$Title3$V3 = _oHeaderInfo$Title3$V2.annotations) !== null && _oHeaderInfo$Title3$V3 !== void 0 && (_oHeaderInfo$Title3$V4 = _oHeaderInfo$Title3$V3.Common) !== null && _oHeaderInfo$Title3$V4 !== void 0 && (_oHeaderInfo$Title3$V5 = _oHeaderInfo$Title3$V4.Text) !== null && _oHeaderInfo$Title3$V5 !== void 0 && (_oHeaderInfo$Title3$V6 = _oHeaderInfo$Title3$V5.annotations) !== null && _oHeaderInfo$Title3$V6 !== void 0 && (_oHeaderInfo$Title3$V7 = _oHeaderInfo$Title3$V6.UI) !== null && _oHeaderInfo$Title3$V7 !== void 0 && _oHeaderInfo$Title3$V7.TextArrangement) {
54
55
  // In case an explicit text arrangement was set we make use of it in the description as well
55
56
  titleValueExpression = addTextArrangementToBindingExpression(titleValueExpression, fullContextPath);
56
57
  }
@@ -116,4 +117,4 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression", "sap/fe/core/converters/
116
117
  _exports.getExpressionForSaveButton = getExpressionForSaveButton;
117
118
  return _exports;
118
119
  }, false);
119
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9iamVjdFBhZ2VUZW1wbGF0aW5nLnRzIl0sIm5hbWVzIjpbImdldEV4cHJlc3Npb25Gb3JUaXRsZSIsIm9IZWFkZXJJbmZvIiwib1ZpZXdEYXRhIiwiZnVsbENvbnRleHRQYXRoIiwib0RyYWZ0Um9vdCIsInRpdGxlTm9IZWFkZXJJbmZvIiwiQ29tbW9uVXRpbHMiLCJnZXRUcmFuc2xhdGVkVGV4dCIsInJlc291cmNlQnVuZGxlIiwidW5kZWZpbmVkIiwiZW50aXR5U2V0IiwidGl0bGVXaXRoSGVhZGVySW5mbyIsInRpdGxlRm9yQWN0aXZlSGVhZGVyTm9IZWFkZXJJbmZvIiwidGl0bGVWYWx1ZUV4cHJlc3Npb24iLCJhbm5vdGF0aW9uRXhwcmVzc2lvbiIsIlRpdGxlIiwiVmFsdWUiLCIkdGFyZ2V0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJUZXh0IiwiVUkiLCJUZXh0QXJyYW5nZW1lbnQiLCJhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uIiwiZm9ybWF0VmFsdWVSZWN1cnNpdmVseSIsImNyZWF0ZU1vZGVUaXRsZSIsIlR5cGVOYW1lIiwiY29uY2F0IiwidG9TdHJpbmciLCJhY3RpdmVFeHByZXNzaW9uIiwiRW50aXR5IiwiSXNBY3RpdmUiLCJjb21waWxlQmluZGluZyIsImlmRWxzZSIsImFuZCIsIklzQ3JlYXRlTW9kZSIsImlzRW1wdHkiLCJnZXRFeHByZXNzaW9uRm9yRGVzY3JpcHRpb24iLCJiaW5kaW5nRXhwcmVzc2lvbiIsIkRlc2NyaXB0aW9uIiwiZ2V0RXhwcmVzc2lvbkZvclNhdmVCdXR0b24iLCJzYXZlQnV0dG9uVGV4dCIsImNyZWF0ZUJ1dHRvblRleHQiLCJzYXZlRXhwcmVzc2lvbiIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsInN0YXJ0aW5nRW50aXR5U2V0IiwiSXNDcmVhdGVNb2RlU3RpY2t5IiwiRHJhZnQiLCJJc05ld09iamVjdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7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QUFDQSxHQVpNIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGb3JtYXR0ZXJzIGZvciB0aGUgT2JqZWN0IFBhZ2VcbmltcG9ydCB7XG5cdGFuZCxcblx0aWZFbHNlLFxuXHRpc0VtcHR5LFxuXHRjb25jYXQsXG5cdGFubm90YXRpb25FeHByZXNzaW9uLFxuXHRjb21waWxlQmluZGluZyxcblx0QmluZGluZ0V4cHJlc3Npb25cbn0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IFVJLCBEcmFmdCwgRW50aXR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9CaW5kaW5nSGVscGVyXCI7XG5pbXBvcnQgeyBDb21tb25VdGlscyB9IGZyb20gXCJzYXAvZmUvY29yZVwiO1xuaW1wb3J0IHsgSGVhZGVySW5mb1R5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IERhdGFNb2RlbE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uLCBmb3JtYXRWYWx1ZVJlY3Vyc2l2ZWx5IH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRUZW1wbGF0aW5nXCI7XG5pbXBvcnQgeyBEYXRhRmllbGRUeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy9kaXN0L2dlbmVyYXRlZC9VSVwiO1xuaW1wb3J0IHsgaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRW50aXR5U2V0SGVscGVyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUJ1bmRsZSB9IGZyb20gXCJzYXAvYmFzZS9pMThuXCI7XG5cbnR5cGUgVmlld0RhdGEgPSB7XG5cdHJlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZTtcblx0ZW50aXR5U2V0OiBzdHJpbmc7XG59O1xuXG4vL2BgYG1lcm1haWRcbi8vIGdyYXBoIFREXG4vLyBBW09iamVjdCBQYWdlIFRpdGxlXSAtLT58R2V0IERhdGFGaWVsZCBWYWx1ZXwgQ3tFdmFsdWF0ZSBDcmVhdGUgTW9kZX1cbi8vIEMgLS0+fEluIENyZWF0ZSBNb2RlfCBEe0lzIERhdGFGaWVsZCBWYWx1ZSBlbXB0eX1cbi8vIEQgLS0+fFllc3wgRntJcyB0aGVyZSBhIFR5cGVOYW1lfVxuLy8gRiAtLT58WWVzfCBHW0lzIHRoZXJlIGFuIGN1c3RvbSB0aXRsZV1cbi8vIEcgLS0+fFllc3wgRzFbU2hvdyB0aGUgY3VzdG9tIHRpdGxlICsgJ1R5cGVOYW1lJ11cbi8vIEcgLS0+fE5vfCBHMltEaXNwbGF5IHRoZSBkZWZhdWx0IHRpdGxlICdOZXcgKyBUeXBlTmFtZSddXG4vLyBGIC0tPnxOb3wgSFtJcyB0aGVyZSBhIGN1c3RvbSB0aXRsZV1cbi8vIEggLS0+fFllc3wgSVtTaG93IHRoZSBjdXN0b20gdGl0bGVdXG4vLyBIIC0tPnxOb3wgSltTaG93IHRoZSBkZWZhdWx0ICdVbmFtbmVkIE9iamVjdCddXG4vLyBEIC0tPnxOb3wgRVxuLy8gQyAtLT58Tm90IGluIGNyZWF0ZSBtb2RlfCBFW1Nob3cgRGF0YUZpZWxkIFZhbHVlXVxuLy8gYGBgXG4vKipcbiAqIENvbXB1dGUgdGhlIHRpdGxlIGZvciB0aGUgb2JqZWN0IHBhZ2UuXG4gKiBAcGFyYW0gb0hlYWRlckluZm8gVGhlIEBVSS5IZWFkZXJJbmZvIGFubm90YXRpb24gY29udGVudFxuICogQHBhcmFtIG9WaWV3RGF0YSBUaGUgdmlldyBkYXRhIG9iamVjdCB3ZSdyZSBjdXJyZW50bHkgb25cbiAqIEBwYXJhbSBmdWxsQ29udGV4dFBhdGggVGhlIGZ1bGwgY29udGV4dCBwYXRoIHVzZWQgdG8gcmVhY2ggdGhhdCBvYmplY3QgcGFnZVxuICogQHBhcmFtIG9EcmFmdFJvb3RcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIHRoZSBvYmplY3QgcGFnZSB0aXRsZVxuICovXG5leHBvcnQgY29uc3QgZ2V0RXhwcmVzc2lvbkZvclRpdGxlID0gZnVuY3Rpb24oXG5cdG9IZWFkZXJJbmZvOiBIZWFkZXJJbmZvVHlwZSB8IHVuZGVmaW5lZCxcblx0b1ZpZXdEYXRhOiBWaWV3RGF0YSxcblx0ZnVsbENvbnRleHRQYXRoOiBEYXRhTW9kZWxPYmplY3RQYXRoLFxuXHRvRHJhZnRSb290OiBPYmplY3QgfCB1bmRlZmluZWRcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCB0aXRsZU5vSGVhZGVySW5mbyA9IENvbW1vblV0aWxzLmdldFRyYW5zbGF0ZWRUZXh0KFwiVF9ORVdfT0JKRUNUXCIsIG9WaWV3RGF0YS5yZXNvdXJjZUJ1bmRsZSwgdW5kZWZpbmVkLCBvVmlld0RhdGEuZW50aXR5U2V0KTtcblxuXHRjb25zdCB0aXRsZVdpdGhIZWFkZXJJbmZvID0gQ29tbW9uVXRpbHMuZ2V0VHJhbnNsYXRlZFRleHQoXG5cdFx0XCJUX0FOTk9UQVRJT05fSEVMUEVSX0RFRkFVTFRfT0JKRUNUX1BBR0VfSEVBREVSX1RJVExFXCIsXG5cdFx0b1ZpZXdEYXRhLnJlc291cmNlQnVuZGxlLFxuXHRcdHVuZGVmaW5lZCxcblx0XHRvVmlld0RhdGEuZW50aXR5U2V0XG5cdCk7XG5cblx0Y29uc3QgdGl0bGVGb3JBY3RpdmVIZWFkZXJOb0hlYWRlckluZm8gPSBDb21tb25VdGlscy5nZXRUcmFuc2xhdGVkVGV4dChcblx0XHRcIlRfQU5OT1RBVElPTl9IRUxQRVJfREVGQVVMVF9PQkpFQ1RfUEFHRV9IRUFERVJfVElUTEVfTk9fSEVBREVSX0lORk9cIixcblx0XHRvVmlld0RhdGEucmVzb3VyY2VCdW5kbGVcblx0KTtcblxuXHRsZXQgdGl0bGVWYWx1ZUV4cHJlc3Npb24gPSBhbm5vdGF0aW9uRXhwcmVzc2lvbigob0hlYWRlckluZm8/LlRpdGxlIGFzIERhdGFGaWVsZFR5cGVzKT8uVmFsdWUpO1xuXHRpZiAoKG9IZWFkZXJJbmZvPy5UaXRsZSBhcyBEYXRhRmllbGRUeXBlcyk/LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0Py5hbm5vdGF0aW9ucz8uVUk/LlRleHRBcnJhbmdlbWVudCkge1xuXHRcdC8vIEluIGNhc2UgYW4gZXhwbGljaXQgdGV4dCBhcnJhbmdlbWVudCB3YXMgc2V0IHdlIG1ha2UgdXNlIG9mIGl0IGluIHRoZSBkZXNjcmlwdGlvbiBhcyB3ZWxsXG5cdFx0dGl0bGVWYWx1ZUV4cHJlc3Npb24gPSBhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uKHRpdGxlVmFsdWVFeHByZXNzaW9uLCBmdWxsQ29udGV4dFBhdGgpO1xuXHR9XG5cblx0dGl0bGVWYWx1ZUV4cHJlc3Npb24gPSBmb3JtYXRWYWx1ZVJlY3Vyc2l2ZWx5KHRpdGxlVmFsdWVFeHByZXNzaW9uLCBmdWxsQ29udGV4dFBhdGgpO1xuXG5cdC8vIElmIHRoZXJlIGlzIGEgVHlwZU5hbWUgZGVmaW5lZCwgc2hvdyB0aGUgZGVmYXVsdCB0aXRsZSAnTmV3ICsgVHlwZU5hbWUnLCBvdGhlcndpc2Ugc2hvdyB0aGUgY3VzdG9tIHRpdGxlIG9yIHRoZSBkZWZhdWx0ICdOZXcgb2JqZWN0J1xuXHRjb25zdCBjcmVhdGVNb2RlVGl0bGUgPSBvSGVhZGVySW5mbz8uVHlwZU5hbWVcblx0XHQ/IGNvbmNhdCh0aXRsZVdpdGhIZWFkZXJJbmZvLCBcIjogXCIsIGFubm90YXRpb25FeHByZXNzaW9uKG9IZWFkZXJJbmZvLlR5cGVOYW1lLnRvU3RyaW5nKCkpKVxuXHRcdDogdGl0bGVOb0hlYWRlckluZm87XG5cdGNvbnN0IGFjdGl2ZUV4cHJlc3Npb24gPSBvRHJhZnRSb290ID8gRW50aXR5LklzQWN0aXZlIDogdHJ1ZTtcblxuXHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoXG5cdFx0aWZFbHNlKFxuXHRcdFx0Ly8gSWYgQ3JlYXRlIE1vZGUgJiYgRW1wdHkgZXhwcmVzc2lvblxuXHRcdFx0YW5kKFVJLklzQ3JlYXRlTW9kZSwgdGl0bGVWYWx1ZUV4cHJlc3Npb24gJiYgaXNFbXB0eSh0aXRsZVZhbHVlRXhwcmVzc2lvbikpLFxuXG5cdFx0XHRjcmVhdGVNb2RlVGl0bGUsXG5cdFx0XHQvLyBPdGhlcndpc2Ugc2hvdyB0aGUgZGVmYXVsdCBleHByZXNzaW9uXG5cdFx0XHRpZkVsc2UoXG5cdFx0XHRcdGFuZChhY3RpdmVFeHByZXNzaW9uLCB0aXRsZVZhbHVlRXhwcmVzc2lvbiAmJiBpc0VtcHR5KHRpdGxlVmFsdWVFeHByZXNzaW9uKSksXG5cdFx0XHRcdHRpdGxlRm9yQWN0aXZlSGVhZGVyTm9IZWFkZXJJbmZvLFxuXHRcdFx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvblxuXHRcdFx0KVxuXHRcdClcblx0KTtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBleHByZXNzaW9uIGZvciB0aGUgZGVzY3JpcHRpb24gb2YgYW4gb2JqZWN0IHBhZ2UuXG4gKlxuICogQHBhcmFtIG9IZWFkZXJJbmZvIFRoZSBAVUkuSGVhZGVySW5mbyBhbm5vdGF0aW9uIGNvbnRlbnRcbiAqIEBwYXJhbSBmdWxsQ29udGV4dFBhdGggVGhlIGZ1bGwgY29udGV4dCBwYXRoIHVzZWQgdG8gcmVhY2ggdGhhdCBvYmplY3QgcGFnZVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIG9iamVjdCBwYWdlIGRlc2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHByZXNzaW9uRm9yRGVzY3JpcHRpb24gPSBmdW5jdGlvbihcblx0b0hlYWRlckluZm86IEhlYWRlckluZm9UeXBlIHwgdW5kZWZpbmVkLFxuXHRmdWxsQ29udGV4dFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGhcbik6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRsZXQgYmluZGluZ0V4cHJlc3Npb24gPSBhbm5vdGF0aW9uRXhwcmVzc2lvbigob0hlYWRlckluZm8/LkRlc2NyaXB0aW9uIGFzIERhdGFGaWVsZFR5cGVzKT8uVmFsdWUpO1xuXHRpZiAoKG9IZWFkZXJJbmZvPy5EZXNjcmlwdGlvbiBhcyBEYXRhRmllbGRUeXBlcyk/LlZhbHVlPy4kdGFyZ2V0Py5hbm5vdGF0aW9ucz8uQ29tbW9uPy5UZXh0Py5hbm5vdGF0aW9ucz8uVUk/LlRleHRBcnJhbmdlbWVudCkge1xuXHRcdC8vIEluIGNhc2UgYW4gZXhwbGljaXQgdGV4dCBhcnJhbmdlbWVudCB3YXMgc2V0IHdlIG1ha2UgdXNlIG9mIGl0IGluIHRoZSBkZXNjcmlwdGlvbiBhcyB3ZWxsXG5cdFx0YmluZGluZ0V4cHJlc3Npb24gPSBhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uKGJpbmRpbmdFeHByZXNzaW9uLCBmdWxsQ29udGV4dFBhdGgpO1xuXHR9XG5cblx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKGZvcm1hdFZhbHVlUmVjdXJzaXZlbHkoYmluZGluZ0V4cHJlc3Npb24sIGZ1bGxDb250ZXh0UGF0aCkpO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gdGhlIGV4cHJlc3Npb24gZm9yIHRoZSBzYXZlIGJ1dHRvbi5cbiAqXG4gKiBAcGFyYW0gb1ZpZXdEYXRhIFRoZSBjdXJyZW50IHZpZXcgZGF0YVxuICogQHBhcmFtIGZ1bGxDb250ZXh0UGF0aCBUaGUgcGF0aCB1c2VkIHVwIHVudGlsIGhlcmVcbiAqIEByZXR1cm5zIFRoZSBiaW5kaW5nIGV4cHJlc3Npb24gdGhhdCBzaG93cyB0aGUgcmlnaHQgc2F2ZSBidXR0b24gdGV4dFxuICovXG5leHBvcnQgY29uc3QgZ2V0RXhwcmVzc2lvbkZvclNhdmVCdXR0b24gPSBmdW5jdGlvbihvVmlld0RhdGE6IFZpZXdEYXRhLCBmdWxsQ29udGV4dFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGgpOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0Y29uc3Qgc2F2ZUJ1dHRvblRleHQgPSBDb21tb25VdGlscy5nZXRUcmFuc2xhdGVkVGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfU0FWRVwiLCBvVmlld0RhdGEucmVzb3VyY2VCdW5kbGUpO1xuXHRjb25zdCBjcmVhdGVCdXR0b25UZXh0ID0gQ29tbW9uVXRpbHMuZ2V0VHJhbnNsYXRlZFRleHQoXCJUX09QX09CSkVDVF9QQUdFX0NSRUFURVwiLCBvVmlld0RhdGEucmVzb3VyY2VCdW5kbGUpO1xuXHRsZXQgc2F2ZUV4cHJlc3Npb247XG5cdGlmIChpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQoZnVsbENvbnRleHRQYXRoLnN0YXJ0aW5nRW50aXR5U2V0KSkge1xuXHRcdC8vIElmIHdlJ3JlIGluIHN0aWNreSBtb2RlIEFORCB0aGUgdWkgaXMgaW4gY3JlYXRlIG1vZGUsIHNob3cgQ3JlYXRlLCBlbHNlIHNob3cgU2F2ZVxuXHRcdHNhdmVFeHByZXNzaW9uID0gaWZFbHNlKFVJLklzQ3JlYXRlTW9kZVN0aWNreSwgY3JlYXRlQnV0dG9uVGV4dCwgc2F2ZUJ1dHRvblRleHQpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIElmIHdlJ3JlIGluIGRyYWZ0IEFORCB0aGUgZHJhZnQgaXMgYSBuZXcgb2JqZWN0ICghSXNBY3RpdmVFbnRpdHkgJiYgIUhhc0FjdGl2ZUVudGl0eSksIHNob3cgY3JlYXRlLCBlbHNlIHNob3cgc2F2ZVxuXHRcdHNhdmVFeHByZXNzaW9uID0gaWZFbHNlKERyYWZ0LklzTmV3T2JqZWN0LCBjcmVhdGVCdXR0b25UZXh0LCBzYXZlQnV0dG9uVGV4dCk7XG5cdH1cblx0cmV0dXJuIGNvbXBpbGVCaW5kaW5nKHNhdmVFeHByZXNzaW9uKTtcbn07XG4iXX0=
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9iamVjdFBhZ2VUZW1wbGF0aW5nLnRzIl0sIm5hbWVzIjpbImdldEV4cHJlc3Npb25Gb3JUaXRsZSIsIm9IZWFkZXJJbmZvIiwib1ZpZXdEYXRhIiwiZnVsbENvbnRleHRQYXRoIiwib0RyYWZ0Um9vdCIsInRpdGxlTm9IZWFkZXJJbmZvIiwiQ29tbW9uVXRpbHMiLCJnZXRUcmFuc2xhdGVkVGV4dCIsInJlc291cmNlQnVuZGxlIiwidW5kZWZpbmVkIiwiZW50aXR5U2V0IiwidGl0bGVXaXRoSGVhZGVySW5mbyIsIm9FbXB0eUhlYWRlckluZm9UaXRsZSIsIlRpdGxlIiwiVmFsdWUiLCJ0aXRsZUZvckFjdGl2ZUhlYWRlck5vSGVhZGVySW5mbyIsInRpdGxlVmFsdWVFeHByZXNzaW9uIiwiYW5ub3RhdGlvbkV4cHJlc3Npb24iLCIkdGFyZ2V0IiwiYW5ub3RhdGlvbnMiLCJDb21tb24iLCJUZXh0IiwiVUkiLCJUZXh0QXJyYW5nZW1lbnQiLCJhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uIiwiZm9ybWF0VmFsdWVSZWN1cnNpdmVseSIsImNyZWF0ZU1vZGVUaXRsZSIsIlR5cGVOYW1lIiwiY29uY2F0IiwidG9TdHJpbmciLCJhY3RpdmVFeHByZXNzaW9uIiwiRW50aXR5IiwiSXNBY3RpdmUiLCJjb21waWxlQmluZGluZyIsImlmRWxzZSIsImFuZCIsIklzQ3JlYXRlTW9kZSIsImlzRW1wdHkiLCJnZXRFeHByZXNzaW9uRm9yRGVzY3JpcHRpb24iLCJiaW5kaW5nRXhwcmVzc2lvbiIsIkRlc2NyaXB0aW9uIiwiZ2V0RXhwcmVzc2lvbkZvclNhdmVCdXR0b24iLCJzYXZlQnV0dG9uVGV4dCIsImNyZWF0ZUJ1dHRvblRleHQiLCJzYXZlRXhwcmVzc2lvbiIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsInN0YXJ0aW5nRW50aXR5U2V0IiwiSXNDcmVhdGVNb2RlU3RpY2t5IiwiRHJhZnQiLCJJc05ld09iamVjdCJdLCJtYXBwaW5ncyI6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Y0FBSjs7QUFDQSxRQUFJQyx3QkFBd0IsQ0FBQzFDLGVBQWUsQ0FBQzJDLGlCQUFqQixDQUE1QixFQUFpRTtBQUNoRTtBQUNBRixNQUFBQSxjQUFjLEdBQUdWLE1BQU0sQ0FBQ1osRUFBRSxDQUFDeUIsa0JBQUosRUFBd0JKLGdCQUF4QixFQUEwQ0QsY0FBMUMsQ0FBdkI7QUFDQSxLQUhELE1BR087QUFDTjtBQUNBRSxNQUFBQSxjQUFjLEdBQUdWLE1BQU0sQ0FBQ2MsS0FBSyxDQUFDQyxXQUFQLEVBQW9CTixnQkFBcEIsRUFBc0NELGNBQXRDLENBQXZCO0FBQ0E7O0FBQ0QsV0FBT1QsY0FBYyxDQUFDVyxjQUFELENBQXJCO0FBQ0EsR0FaTSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9ybWF0dGVycyBmb3IgdGhlIE9iamVjdCBQYWdlXG5pbXBvcnQge1xuXHRhbmQsXG5cdGlmRWxzZSxcblx0aXNFbXB0eSxcblx0Y29uY2F0LFxuXHRhbm5vdGF0aW9uRXhwcmVzc2lvbixcblx0Y29tcGlsZUJpbmRpbmcsXG5cdEJpbmRpbmdFeHByZXNzaW9uXG59IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBVSSwgRHJhZnQsIEVudGl0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvQmluZGluZ0hlbHBlclwiO1xuaW1wb3J0IHsgQ29tbW9uVXRpbHMgfSBmcm9tIFwic2FwL2ZlL2NvcmVcIjtcbmltcG9ydCB7IEhlYWRlckluZm9UeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbiwgZm9ybWF0VmFsdWVSZWN1cnNpdmVseSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkVGVtcGxhdGluZ1wiO1xuaW1wb3J0IHsgRGF0YUZpZWxkVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9nZW5lcmF0ZWQvVUlcIjtcbmltcG9ydCB7IGlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0VudGl0eVNldEhlbHBlclwiO1xuaW1wb3J0IHsgUmVzb3VyY2VCdW5kbGUgfSBmcm9tIFwic2FwL2Jhc2UvaTE4blwiO1xuXG50eXBlIFZpZXdEYXRhID0ge1xuXHRyZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGU7XG5cdGVudGl0eVNldDogc3RyaW5nO1xufTtcblxuLy9gYGBtZXJtYWlkXG4vLyBncmFwaCBURFxuLy8gQVtPYmplY3QgUGFnZSBUaXRsZV0gLS0+fEdldCBEYXRhRmllbGQgVmFsdWV8IEN7RXZhbHVhdGUgQ3JlYXRlIE1vZGV9XG4vLyBDIC0tPnxJbiBDcmVhdGUgTW9kZXwgRHtJcyBEYXRhRmllbGQgVmFsdWUgZW1wdHl9XG4vLyBEIC0tPnxZZXN8IEZ7SXMgdGhlcmUgYSBUeXBlTmFtZX1cbi8vIEYgLS0+fFllc3wgR1tJcyB0aGVyZSBhbiBjdXN0b20gdGl0bGVdXG4vLyBHIC0tPnxZZXN8IEcxW1Nob3cgdGhlIGN1c3RvbSB0aXRsZSArICdUeXBlTmFtZSddXG4vLyBHIC0tPnxOb3wgRzJbRGlzcGxheSB0aGUgZGVmYXVsdCB0aXRsZSAnTmV3ICsgVHlwZU5hbWUnXVxuLy8gRiAtLT58Tm98IEhbSXMgdGhlcmUgYSBjdXN0b20gdGl0bGVdXG4vLyBIIC0tPnxZZXN8IElbU2hvdyB0aGUgY3VzdG9tIHRpdGxlXVxuLy8gSCAtLT58Tm98IEpbU2hvdyB0aGUgZGVmYXVsdCAnVW5hbW5lZCBPYmplY3QnXVxuLy8gRCAtLT58Tm98IEVcbi8vIEMgLS0+fE5vdCBpbiBjcmVhdGUgbW9kZXwgRVtTaG93IERhdGFGaWVsZCBWYWx1ZV1cbi8vIGBgYFxuLyoqXG4gKiBDb21wdXRlIHRoZSB0aXRsZSBmb3IgdGhlIG9iamVjdCBwYWdlLlxuICogQHBhcmFtIG9IZWFkZXJJbmZvIFRoZSBAVUkuSGVhZGVySW5mbyBhbm5vdGF0aW9uIGNvbnRlbnRcbiAqIEBwYXJhbSBvVmlld0RhdGEgVGhlIHZpZXcgZGF0YSBvYmplY3Qgd2UncmUgY3VycmVudGx5IG9uXG4gKiBAcGFyYW0gZnVsbENvbnRleHRQYXRoIFRoZSBmdWxsIGNvbnRleHQgcGF0aCB1c2VkIHRvIHJlYWNoIHRoYXQgb2JqZWN0IHBhZ2VcbiAqIEBwYXJhbSBvRHJhZnRSb290XG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgb2JqZWN0IHBhZ2UgdGl0bGVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEV4cHJlc3Npb25Gb3JUaXRsZSA9IGZ1bmN0aW9uKFxuXHRvSGVhZGVySW5mbzogSGVhZGVySW5mb1R5cGUgfCB1bmRlZmluZWQsXG5cdG9WaWV3RGF0YTogVmlld0RhdGEsXG5cdGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCxcblx0b0RyYWZ0Um9vdDogT2JqZWN0IHwgdW5kZWZpbmVkXG4pOiBCaW5kaW5nRXhwcmVzc2lvbjxzdHJpbmc+IHtcblx0Y29uc3QgdGl0bGVOb0hlYWRlckluZm8gPSBDb21tb25VdGlscy5nZXRUcmFuc2xhdGVkVGV4dChcIlRfTkVXX09CSkVDVFwiLCBvVmlld0RhdGEucmVzb3VyY2VCdW5kbGUsIHVuZGVmaW5lZCwgb1ZpZXdEYXRhLmVudGl0eVNldCk7XG5cblx0Y29uc3QgdGl0bGVXaXRoSGVhZGVySW5mbyA9IENvbW1vblV0aWxzLmdldFRyYW5zbGF0ZWRUZXh0KFxuXHRcdFwiVF9BTk5PVEFUSU9OX0hFTFBFUl9ERUZBVUxUX09CSkVDVF9QQUdFX0hFQURFUl9USVRMRVwiLFxuXHRcdG9WaWV3RGF0YS5yZXNvdXJjZUJ1bmRsZSxcblx0XHR1bmRlZmluZWQsXG5cdFx0b1ZpZXdEYXRhLmVudGl0eVNldFxuXHQpO1xuXG5cdGNvbnN0IG9FbXB0eUhlYWRlckluZm9UaXRsZSA9XG5cdFx0b0hlYWRlckluZm8/LlRpdGxlID09PSB1bmRlZmluZWQgfHwgb0hlYWRlckluZm8/LlRpdGxlID09PSBcIlwiIHx8IChvSGVhZGVySW5mbz8uVGl0bGUgYXMgRGF0YUZpZWxkVHlwZXMpPy5WYWx1ZSA9PT0gXCJcIjtcblxuXHRjb25zdCB0aXRsZUZvckFjdGl2ZUhlYWRlck5vSGVhZGVySW5mbyA9ICFvRW1wdHlIZWFkZXJJbmZvVGl0bGVcblx0XHQ/IENvbW1vblV0aWxzLmdldFRyYW5zbGF0ZWRUZXh0KFwiVF9BTk5PVEFUSU9OX0hFTFBFUl9ERUZBVUxUX09CSkVDVF9QQUdFX0hFQURFUl9USVRMRV9OT19IRUFERVJfSU5GT1wiLCBvVmlld0RhdGEucmVzb3VyY2VCdW5kbGUpXG5cdFx0OiBcIlwiO1xuXG5cdGxldCB0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGFubm90YXRpb25FeHByZXNzaW9uKChvSGVhZGVySW5mbz8uVGl0bGUgYXMgRGF0YUZpZWxkVHlwZXMpPy5WYWx1ZSk7XG5cdGlmICgob0hlYWRlckluZm8/LlRpdGxlIGFzIERhdGFGaWVsZFR5cGVzKT8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LlRleHQ/LmFubm90YXRpb25zPy5VST8uVGV4dEFycmFuZ2VtZW50KSB7XG5cdFx0Ly8gSW4gY2FzZSBhbiBleHBsaWNpdCB0ZXh0IGFycmFuZ2VtZW50IHdhcyBzZXQgd2UgbWFrZSB1c2Ugb2YgaXQgaW4gdGhlIGRlc2NyaXB0aW9uIGFzIHdlbGxcblx0XHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24odGl0bGVWYWx1ZUV4cHJlc3Npb24sIGZ1bGxDb250ZXh0UGF0aCk7XG5cdH1cblxuXHR0aXRsZVZhbHVlRXhwcmVzc2lvbiA9IGZvcm1hdFZhbHVlUmVjdXJzaXZlbHkodGl0bGVWYWx1ZUV4cHJlc3Npb24sIGZ1bGxDb250ZXh0UGF0aCk7XG5cblx0Ly8gSWYgdGhlcmUgaXMgYSBUeXBlTmFtZSBkZWZpbmVkLCBzaG93IHRoZSBkZWZhdWx0IHRpdGxlICdOZXcgKyBUeXBlTmFtZScsIG90aGVyd2lzZSBzaG93IHRoZSBjdXN0b20gdGl0bGUgb3IgdGhlIGRlZmF1bHQgJ05ldyBvYmplY3QnXG5cdGNvbnN0IGNyZWF0ZU1vZGVUaXRsZSA9IG9IZWFkZXJJbmZvPy5UeXBlTmFtZVxuXHRcdD8gY29uY2F0KHRpdGxlV2l0aEhlYWRlckluZm8sIFwiOiBcIiwgYW5ub3RhdGlvbkV4cHJlc3Npb24ob0hlYWRlckluZm8uVHlwZU5hbWUudG9TdHJpbmcoKSkpXG5cdFx0OiB0aXRsZU5vSGVhZGVySW5mbztcblx0Y29uc3QgYWN0aXZlRXhwcmVzc2lvbiA9IG9EcmFmdFJvb3QgPyBFbnRpdHkuSXNBY3RpdmUgOiB0cnVlO1xuXG5cdHJldHVybiBjb21waWxlQmluZGluZyhcblx0XHRpZkVsc2UoXG5cdFx0XHQvLyBJZiBDcmVhdGUgTW9kZSAmJiBFbXB0eSBleHByZXNzaW9uXG5cdFx0XHRhbmQoVUkuSXNDcmVhdGVNb2RlLCB0aXRsZVZhbHVlRXhwcmVzc2lvbiAmJiBpc0VtcHR5KHRpdGxlVmFsdWVFeHByZXNzaW9uKSksXG5cblx0XHRcdGNyZWF0ZU1vZGVUaXRsZSxcblx0XHRcdC8vIE90aGVyd2lzZSBzaG93IHRoZSBkZWZhdWx0IGV4cHJlc3Npb25cblx0XHRcdGlmRWxzZShcblx0XHRcdFx0YW5kKGFjdGl2ZUV4cHJlc3Npb24sIHRpdGxlVmFsdWVFeHByZXNzaW9uICYmIGlzRW1wdHkodGl0bGVWYWx1ZUV4cHJlc3Npb24pKSxcblx0XHRcdFx0dGl0bGVGb3JBY3RpdmVIZWFkZXJOb0hlYWRlckluZm8sXG5cdFx0XHRcdHRpdGxlVmFsdWVFeHByZXNzaW9uXG5cdFx0XHQpXG5cdFx0KVxuXHQpO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGV4cHJlc3Npb24gZm9yIHRoZSBkZXNjcmlwdGlvbiBvZiBhbiBvYmplY3QgcGFnZS5cbiAqXG4gKiBAcGFyYW0gb0hlYWRlckluZm8gVGhlIEBVSS5IZWFkZXJJbmZvIGFubm90YXRpb24gY29udGVudFxuICogQHBhcmFtIGZ1bGxDb250ZXh0UGF0aCBUaGUgZnVsbCBjb250ZXh0IHBhdGggdXNlZCB0byByZWFjaCB0aGF0IG9iamVjdCBwYWdlXG4gKiBAcmV0dXJucyBUaGUgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgb2JqZWN0IHBhZ2UgZGVzY3JpcHRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEV4cHJlc3Npb25Gb3JEZXNjcmlwdGlvbiA9IGZ1bmN0aW9uKFxuXHRvSGVhZGVySW5mbzogSGVhZGVySW5mb1R5cGUgfCB1bmRlZmluZWQsXG5cdGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aFxuKTogQmluZGluZ0V4cHJlc3Npb248c3RyaW5nPiB7XG5cdGxldCBiaW5kaW5nRXhwcmVzc2lvbiA9IGFubm90YXRpb25FeHByZXNzaW9uKChvSGVhZGVySW5mbz8uRGVzY3JpcHRpb24gYXMgRGF0YUZpZWxkVHlwZXMpPy5WYWx1ZSk7XG5cdGlmICgob0hlYWRlckluZm8/LkRlc2NyaXB0aW9uIGFzIERhdGFGaWVsZFR5cGVzKT8uVmFsdWU/LiR0YXJnZXQ/LmFubm90YXRpb25zPy5Db21tb24/LlRleHQ/LmFubm90YXRpb25zPy5VST8uVGV4dEFycmFuZ2VtZW50KSB7XG5cdFx0Ly8gSW4gY2FzZSBhbiBleHBsaWNpdCB0ZXh0IGFycmFuZ2VtZW50IHdhcyBzZXQgd2UgbWFrZSB1c2Ugb2YgaXQgaW4gdGhlIGRlc2NyaXB0aW9uIGFzIHdlbGxcblx0XHRiaW5kaW5nRXhwcmVzc2lvbiA9IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24oYmluZGluZ0V4cHJlc3Npb24sIGZ1bGxDb250ZXh0UGF0aCk7XG5cdH1cblxuXHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoZm9ybWF0VmFsdWVSZWN1cnNpdmVseShiaW5kaW5nRXhwcmVzc2lvbiwgZnVsbENvbnRleHRQYXRoKSk7XG59O1xuXG4vKipcbiAqIFJldHVybiB0aGUgZXhwcmVzc2lvbiBmb3IgdGhlIHNhdmUgYnV0dG9uLlxuICpcbiAqIEBwYXJhbSBvVmlld0RhdGEgVGhlIGN1cnJlbnQgdmlldyBkYXRhXG4gKiBAcGFyYW0gZnVsbENvbnRleHRQYXRoIFRoZSBwYXRoIHVzZWQgdXAgdW50aWwgaGVyZVxuICogQHJldHVybnMgVGhlIGJpbmRpbmcgZXhwcmVzc2lvbiB0aGF0IHNob3dzIHRoZSByaWdodCBzYXZlIGJ1dHRvbiB0ZXh0XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRFeHByZXNzaW9uRm9yU2F2ZUJ1dHRvbiA9IGZ1bmN0aW9uKG9WaWV3RGF0YTogVmlld0RhdGEsIGZ1bGxDb250ZXh0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCk6IEJpbmRpbmdFeHByZXNzaW9uPHN0cmluZz4ge1xuXHRjb25zdCBzYXZlQnV0dG9uVGV4dCA9IENvbW1vblV0aWxzLmdldFRyYW5zbGF0ZWRUZXh0KFwiVF9PUF9PQkpFQ1RfUEFHRV9TQVZFXCIsIG9WaWV3RGF0YS5yZXNvdXJjZUJ1bmRsZSk7XG5cdGNvbnN0IGNyZWF0ZUJ1dHRvblRleHQgPSBDb21tb25VdGlscy5nZXRUcmFuc2xhdGVkVGV4dChcIlRfT1BfT0JKRUNUX1BBR0VfQ1JFQVRFXCIsIG9WaWV3RGF0YS5yZXNvdXJjZUJ1bmRsZSk7XG5cdGxldCBzYXZlRXhwcmVzc2lvbjtcblx0aWYgKGlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZChmdWxsQ29udGV4dFBhdGguc3RhcnRpbmdFbnRpdHlTZXQpKSB7XG5cdFx0Ly8gSWYgd2UncmUgaW4gc3RpY2t5IG1vZGUgQU5EIHRoZSB1aSBpcyBpbiBjcmVhdGUgbW9kZSwgc2hvdyBDcmVhdGUsIGVsc2Ugc2hvdyBTYXZlXG5cdFx0c2F2ZUV4cHJlc3Npb24gPSBpZkVsc2UoVUkuSXNDcmVhdGVNb2RlU3RpY2t5LCBjcmVhdGVCdXR0b25UZXh0LCBzYXZlQnV0dG9uVGV4dCk7XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSWYgd2UncmUgaW4gZHJhZnQgQU5EIHRoZSBkcmFmdCBpcyBhIG5ldyBvYmplY3QgKCFJc0FjdGl2ZUVudGl0eSAmJiAhSGFzQWN0aXZlRW50aXR5KSwgc2hvdyBjcmVhdGUsIGVsc2Ugc2hvdyBzYXZlXG5cdFx0c2F2ZUV4cHJlc3Npb24gPSBpZkVsc2UoRHJhZnQuSXNOZXdPYmplY3QsIGNyZWF0ZUJ1dHRvblRleHQsIHNhdmVCdXR0b25UZXh0KTtcblx0fVxuXHRyZXR1cm4gY29tcGlsZUJpbmRpbmcoc2F2ZUV4cHJlc3Npb24pO1xufTtcbiJdfQ==
@@ -2,4 +2,4 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/helpers/BindingExpression","sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/CommonUtils","sap/fe/macros/field/FieldTemplating","sap/fe/core/templating/EntitySetHelper"],function(B,a,C,F,E){"use strict";var _={};var i=E.isStickySessionSupported;var f=F.formatValueRecursively;var b=F.addTextArrangementToBindingExpression;var c=a.Entity;var D=a.Draft;var U=a.UI;var d=B.compileBinding;var e=B.annotationExpression;var g=B.concat;var h=B.isEmpty;var j=B.ifElse;var k=B.and;var l=function(H,v,o,p){var q,r,s,t,u,w,x,y,z;var A=C.getTranslatedText("T_NEW_OBJECT",v.resourceBundle,undefined,v.entitySet);var G=C.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE",v.resourceBundle,undefined,v.entitySet);var I=C.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO",v.resourceBundle);var J=e(H===null||H===void 0?void 0:(q=H.Title)===null||q===void 0?void 0:q.Value);if(H!==null&&H!==void 0&&(r=H.Title)!==null&&r!==void 0&&(s=r.Value)!==null&&s!==void 0&&(t=s.$target)!==null&&t!==void 0&&(u=t.annotations)!==null&&u!==void 0&&(w=u.Common)!==null&&w!==void 0&&(x=w.Text)!==null&&x!==void 0&&(y=x.annotations)!==null&&y!==void 0&&(z=y.UI)!==null&&z!==void 0&&z.TextArrangement){J=b(J,o);}J=f(J,o);var K=H!==null&&H!==void 0&&H.TypeName?g(G,": ",e(H.TypeName.toString())):A;var L=p?c.IsActive:true;return d(j(k(U.IsCreateMode,J&&h(J)),K,j(k(L,J&&h(J)),I,J)));};_.getExpressionForTitle=l;var m=function(H,o){var p,q,r,s,t,u,v,w,x;var y=e(H===null||H===void 0?void 0:(p=H.Description)===null||p===void 0?void 0:p.Value);if(H!==null&&H!==void 0&&(q=H.Description)!==null&&q!==void 0&&(r=q.Value)!==null&&r!==void 0&&(s=r.$target)!==null&&s!==void 0&&(t=s.annotations)!==null&&t!==void 0&&(u=t.Common)!==null&&u!==void 0&&(v=u.Text)!==null&&v!==void 0&&(w=v.annotations)!==null&&w!==void 0&&(x=w.UI)!==null&&x!==void 0&&x.TextArrangement){y=b(y,o);}return d(f(y,o));};_.getExpressionForDescription=m;var n=function(v,o){var s=C.getTranslatedText("T_OP_OBJECT_PAGE_SAVE",v.resourceBundle);var p=C.getTranslatedText("T_OP_OBJECT_PAGE_CREATE",v.resourceBundle);var q;if(i(o.startingEntitySet)){q=j(U.IsCreateModeSticky,p,s);}else{q=j(D.IsNewObject,p,s);}return d(q);};_.getExpressionForSaveButton=n;return _;},false);
5
+ sap.ui.define(["sap/fe/core/helpers/BindingExpression","sap/fe/core/converters/helpers/BindingHelper","sap/fe/core/CommonUtils","sap/fe/macros/field/FieldTemplating","sap/fe/core/templating/EntitySetHelper"],function(B,a,C,F,E){"use strict";var _={};var i=E.isStickySessionSupported;var f=F.formatValueRecursively;var b=F.addTextArrangementToBindingExpression;var c=a.Entity;var D=a.Draft;var U=a.UI;var d=B.compileBinding;var e=B.annotationExpression;var g=B.concat;var h=B.isEmpty;var j=B.ifElse;var k=B.and;var l=function(H,v,o,p){var q,r,s,t,u,w,x,y,z,A;var G=C.getTranslatedText("T_NEW_OBJECT",v.resourceBundle,undefined,v.entitySet);var I=C.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE",v.resourceBundle,undefined,v.entitySet);var J=(H===null||H===void 0?void 0:H.Title)===undefined||(H===null||H===void 0?void 0:H.Title)===""||(H===null||H===void 0?void 0:(q=H.Title)===null||q===void 0?void 0:q.Value)==="";var K=!J?C.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO",v.resourceBundle):"";var L=e(H===null||H===void 0?void 0:(r=H.Title)===null||r===void 0?void 0:r.Value);if(H!==null&&H!==void 0&&(s=H.Title)!==null&&s!==void 0&&(t=s.Value)!==null&&t!==void 0&&(u=t.$target)!==null&&u!==void 0&&(w=u.annotations)!==null&&w!==void 0&&(x=w.Common)!==null&&x!==void 0&&(y=x.Text)!==null&&y!==void 0&&(z=y.annotations)!==null&&z!==void 0&&(A=z.UI)!==null&&A!==void 0&&A.TextArrangement){L=b(L,o);}L=f(L,o);var M=H!==null&&H!==void 0&&H.TypeName?g(I,": ",e(H.TypeName.toString())):G;var N=p?c.IsActive:true;return d(j(k(U.IsCreateMode,L&&h(L)),M,j(k(N,L&&h(L)),K,L)));};_.getExpressionForTitle=l;var m=function(H,o){var p,q,r,s,t,u,v,w,x;var y=e(H===null||H===void 0?void 0:(p=H.Description)===null||p===void 0?void 0:p.Value);if(H!==null&&H!==void 0&&(q=H.Description)!==null&&q!==void 0&&(r=q.Value)!==null&&r!==void 0&&(s=r.$target)!==null&&s!==void 0&&(t=s.annotations)!==null&&t!==void 0&&(u=t.Common)!==null&&u!==void 0&&(v=u.Text)!==null&&v!==void 0&&(w=v.annotations)!==null&&w!==void 0&&(x=w.UI)!==null&&x!==void 0&&x.TextArrangement){y=b(y,o);}return d(f(y,o));};_.getExpressionForDescription=m;var n=function(v,o){var s=C.getTranslatedText("T_OP_OBJECT_PAGE_SAVE",v.resourceBundle);var p=C.getTranslatedText("T_OP_OBJECT_PAGE_CREATE",v.resourceBundle);var q;if(i(o.startingEntitySet)){q=j(U.IsCreateModeSticky,p,s);}else{q=j(D.IsNewObject,p,s);}return d(q);};_.getExpressionForSaveButton=n;return _;},false);
@@ -59,10 +59,12 @@ export const getExpressionForTitle = function(
59
59
  oViewData.entitySet
60
60
  );
61
61
 
62
- const titleForActiveHeaderNoHeaderInfo = CommonUtils.getTranslatedText(
63
- "T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO",
64
- oViewData.resourceBundle
65
- );
62
+ const oEmptyHeaderInfoTitle =
63
+ oHeaderInfo?.Title === undefined || oHeaderInfo?.Title === "" || (oHeaderInfo?.Title as DataFieldTypes)?.Value === "";
64
+
65
+ const titleForActiveHeaderNoHeaderInfo = !oEmptyHeaderInfoTitle
66
+ ? CommonUtils.getTranslatedText("T_ANNOTATION_HELPER_DEFAULT_OBJECT_PAGE_HEADER_TITLE_NO_HEADER_INFO", oViewData.resourceBundle)
67
+ : "";
66
68
 
67
69
  let titleValueExpression = annotationExpression((oHeaderInfo?.Title as DataFieldTypes)?.Value);
68
70
  if ((oHeaderInfo?.Title as DataFieldTypes)?.Value?.$target?.annotations?.Common?.Text?.annotations?.UI?.TextArrangement) {
@@ -19,15 +19,22 @@
19
19
  text="{sap.fe.i18n>T_HEADER_DATAPOINT_TITLE_LINK_EXTERNAL_ARIA}"
20
20
  id="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
21
21
  />
22
- <Link
23
- unittest:id="headerDataPointLinkTest"
24
- id="{= ID.generate(['fe', 'HeaderDPLink', ${converterHeaderFacet>targetAnnotationValue}]) }"
25
- text="{dataPoint>Title@@MODEL.value}"
22
+ <Title
23
+ unittest:id="headerDataPointLinkTitleTest"
24
+ level="H3"
26
25
  visible="{= COMMON.getHeaderDataPointLinkVisibility(ID.generate(['fe', 'HeaderDPLink', ${converterHeaderFacet>targetAnnotationValue}]), true, ${dataPoint>@@FIELD.isNotAlwaysHidden}) }"
27
- press="{= OP.getPressExpressionForLink(${viewData>controlConfiguration}[${converterHeaderFacet>targetAnnotationValue}]['navigation'], ${manifest>/sap.app/crossNavigation/outbounds})}"
28
- ariaDescribedBy="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
29
- class="sapUiTinyMarginBottom"
30
- />
26
+ >
27
+ <content>
28
+ <Link
29
+ unittest:id="headerDataPointLinkInsideTitleTest"
30
+ id="{= ID.generate(['fe', 'HeaderDPLink', ${converterHeaderFacet>targetAnnotationValue}]) }"
31
+ text="{dataPoint>Title@@MODEL.value}"
32
+ press="{= OP.getPressExpressionForLink(${viewData>controlConfiguration}[${converterHeaderFacet>targetAnnotationValue}]['navigation'], ${manifest>/sap.app/crossNavigation/outbounds})}"
33
+ ariaDescribedBy="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
34
+ class="sapUiTinyMarginBottom"
35
+ />
36
+ </content>
37
+ </Title>
31
38
 
32
39
  <Title
33
40
  unittest:id="headerDataPointTitleTest"
@@ -47,14 +54,17 @@
47
54
  text="{sap.fe.i18n>T_COMMON_HEADERDP_TITLE_LINK_INPAGE_ARIA}"
48
55
  id="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
49
56
  />
50
- <Link
51
- unittest:id="HeaderDataPointInternalLinkTest"
52
- id="{= ID.generate(['fe', 'HeaderDPLink', ${headerFacet>Target/$AnnotationPath}]) }"
53
- text="{dataPoint>Title@@MODEL.value}"
54
- visible="{= !!${dataPoint>Title}}"
55
- press="{= OP.getPressExpressionForLink(${viewData>controlConfiguration}[${converterHeaderFacet>targetAnnotationValue}]['navigation']) }"
56
- ariaDescribedBy="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
57
- />
57
+ <Title level="H3" visible="{= !!${dataPoint>Title}}">
58
+ <content>
59
+ <Link
60
+ unittest:id="HeaderDataPointInternalLinkTest"
61
+ id="{= ID.generate(['fe', 'HeaderDPLink', ${headerFacet>Target/$AnnotationPath}]) }"
62
+ text="{dataPoint>Title@@MODEL.value}"
63
+ press="{= OP.getPressExpressionForLink(${viewData>controlConfiguration}[${converterHeaderFacet>targetAnnotationValue}]['navigation']) }"
64
+ ariaDescribedBy="{= ID.generate(['fe', ${converterHeaderFacet>targetAnnotationValue}, 'AriaText']) }"
65
+ />
66
+ </content>
67
+ </Title>
58
68
  </template:elseif>
59
69
  <template:else>
60
70
  <Title
@@ -3,12 +3,12 @@
3
3
  xmlns="sap.m"
4
4
  xmlns:internalMacro="sap.fe.macros.internal"
5
5
  xmlns:core="sap.ui.core"
6
- xmlns:l="sap.ui.layout"
7
6
  xmlns:unittest="http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1"
8
7
  template:require="{
9
8
  MODEL: 'sap/ui/model/odata/v4/AnnotationHelper',
10
9
  ID: 'sap/fe/core/helpers/StableIdHelper',
11
- OP: 'sap/fe/templates/ObjectPage/AnnotationHelper'
10
+ OP: 'sap/fe/templates/ObjectPage/AnnotationHelper',
11
+ FIELD: 'sap/fe/macros/field/FieldHelper'
12
12
  }"
13
13
  >
14
14
  <VBox id="{= ${converterHeaderFacet>headerFormData/id} }" displayInline="true">
@@ -38,10 +38,10 @@
38
38
  <Label
39
39
  unittest:id="ObjectPageHeaderLabelTest"
40
40
  id="{= ID.generate([ ${formElement>idPrefix}, 'Label'])}"
41
- text="{formElement>label}:"
42
- visible="{= ${formElement>label} ? 'true':'false'}"
41
+ text="{= ${dataField>@@FIELD.computeLabelText} + ':' }"
42
+ visible="{= !!${dataField>@@FIELD.computeLabelText} }"
43
43
  class="sapUiTinyMarginEnd"
44
- vAlign="{= ${formElement>isValueMultilineText} === true ? 'Middle' : 'Bottom' }"
44
+ vAlign="{= ${formElement>isValueMultilineText} === true ? 'Middle' : 'Inherit' }"
45
45
  />
46
46
  <internalMacro:Field
47
47
  idPrefix="{formElement>idPrefix}"
@@ -10,7 +10,7 @@ sap.ui.define(
10
10
  "./RootContainerBaseController",
11
11
  "sap/f/FlexibleColumnLayoutSemanticHelper",
12
12
  "sap/ui/core/Component",
13
- "sap/fe/core/CommonUtils",
13
+ "sap/fe/core/helpers/KeepAliveHelper",
14
14
  "sap/fe/core/controllerextensions/ViewState",
15
15
  "sap/m/Link",
16
16
  "sap/m/MessagePage",
@@ -22,7 +22,7 @@ sap.ui.define(
22
22
  BaseController,
23
23
  FlexibleColumnLayoutSemanticHelper,
24
24
  Component,
25
- CommonUtils,
25
+ KeepAliveHelper,
26
26
  ViewState,
27
27
  Link,
28
28
  MessagePage,
@@ -537,9 +537,11 @@ sap.ui.define(
537
537
  if (FCLLevel >= this._oFCLConfig.maxColumnsCount) {
538
538
  // The view is on a level > max number of columns. It's always fullscreen without close/exit buttons
539
539
  viewColumn = oFclColName[this._oFCLConfig.maxColumnsCount - 1];
540
+ oUIState.actionButtonsInfo.midColumn.fullScreen = null;
540
541
  oUIState.actionButtonsInfo.midColumn.exitFullScreen = null;
541
542
  oUIState.actionButtonsInfo.midColumn.closeColumn = null;
542
543
  oUIState.actionButtonsInfo.endColumn.exitFullScreen = null;
544
+ oUIState.actionButtonsInfo.endColumn.fullScreen = null;
543
545
  oUIState.actionButtonsInfo.endColumn.closeColumn = null;
544
546
  } else {
545
547
  viewColumn = oFclColName[FCLLevel];
@@ -559,7 +561,13 @@ sap.ui.define(
559
561
  // so we have to add this info manually
560
562
  oUIState.actionButtonsInfo.beginColumn = { fullScreen: null, exitFullScreen: null, closeColumn: null };
561
563
 
562
- oView.getModel("fclhelper").setProperty("/actionButtonsInfo", Object.assign({}, oUIState.actionButtonsInfo[viewColumn]));
564
+ var oActionButtonInfos = Object.assign({}, oUIState.actionButtonsInfo[viewColumn]);
565
+ oActionButtonInfos.switchVisible = oActionButtonInfos.fullScreen !== null || oActionButtonInfos.exitFullScreen !== null;
566
+ oActionButtonInfos.switchIcon =
567
+ oActionButtonInfos.fullScreen !== null ? "sap-icon://full-screen" : "sap-icon://exit-full-screen";
568
+ oActionButtonInfos.isFullScreen = oActionButtonInfos.fullScreen === null;
569
+
570
+ oView.getModel("fclhelper").setProperty("/actionButtonsInfo", oActionButtonInfos);
563
571
 
564
572
  oView.getModel("fclhelper").setProperty("/showShareIcon", this._updateShareButtonVisibility(viewColumn, sLayout));
565
573
  },
@@ -590,11 +598,7 @@ sap.ui.define(
590
598
 
591
599
  // Update the layout of the FlexibleColumnLayout
592
600
  if (sLayout) {
593
- if (!this.getFclControl().getModel("fcl")) {
594
- this.getFclControl().setModel(new JSONModel(), "fcl");
595
- this.getFclControl().bindProperty("layout", "fcl>/layout");
596
- }
597
- this.getFclControl().setProperty("layout", sLayout);
601
+ this.getFclControl().setLayout(sLayout);
598
602
  }
599
603
  }
600
604
  },
@@ -750,13 +754,63 @@ sap.ui.define(
750
754
  },
751
755
 
752
756
  onContainerReady: function() {
757
+ // Restore views if neccessary.
753
758
  var aViews = this._getAllVisibleViews();
754
759
  var aRestorePromises = [];
755
760
  aViews.reduce(function(aPromises, oTargetView) {
756
- aPromises.push(CommonUtils.restoreView(oTargetView));
761
+ aPromises.push(KeepAliveHelper.restoreView(oTargetView));
757
762
  return aPromises;
758
763
  }, aRestorePromises);
759
764
  return Promise.all(aRestorePromises);
765
+ },
766
+
767
+ getRightmostContext: function() {
768
+ var oContext;
769
+ switch (this.getFclControl().getLayout()) {
770
+ case sap.f.LayoutType.OneColumn:
771
+ if (this.getFclControl().getCurrentBeginColumnPage()) {
772
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentBeginColumnPage()).getBindingContext();
773
+ }
774
+ break;
775
+
776
+ case sap.f.LayoutType.TwoColumnsBeginExpanded:
777
+ case sap.f.LayoutType.TwoColumnsMidExpanded:
778
+ if (this.getFclControl().getCurrentMidColumnPage()) {
779
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentMidColumnPage()).getBindingContext();
780
+ }
781
+ break;
782
+
783
+ case sap.f.LayoutType.ThreeColumnsEndExpanded:
784
+ case sap.f.LayoutType.ThreeColumnsMidExpanded:
785
+ case sap.f.LayoutType.ThreeColumnsMidExpandedEndHidden:
786
+ case sap.f.LayoutType.ThreeColumnsBeginExpandedEndHidden:
787
+ case sap.f.LayoutType.EndColumnFullScreen:
788
+ if (this.getFclControl().getCurrentEndColumnPage()) {
789
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentEndColumnPage()).getBindingContext();
790
+ }
791
+ break;
792
+
793
+ case sap.f.LayoutType.MidColumnFullScreen:
794
+ // In this case we need to determine if this mid column fullscreen comes from a 2 or a 3 column layout
795
+ var sLayoutWhenExitFullScreen = this.getHelper().getCurrentUIState().actionButtonsInfo.midColumn.exitFullScreen;
796
+ if (sLayoutWhenExitFullScreen.indexOf("ThreeColumn") >= 0) {
797
+ // We come from a 3 column layout
798
+ if (this.getFclControl().getCurrentEndColumnPage()) {
799
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentEndColumnPage()).getBindingContext();
800
+ }
801
+ } else {
802
+ // We come from a 2 column layout
803
+ if (this.getFclControl().getCurrentMidColumnPage()) {
804
+ oContext = _getViewFromContainer(this.getFclControl().getCurrentMidColumnPage()).getBindingContext();
805
+ }
806
+ }
807
+ break;
808
+
809
+ default:
810
+ Log.error("Unhandled switch case for " + this.getFclControl().getLayout());
811
+ }
812
+
813
+ return oContext;
760
814
  }
761
815
  });
762
816
  },
@@ -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/model/json/JSONModel","./RootContainerBaseController","sap/f/FlexibleColumnLayoutSemanticHelper","sap/ui/core/Component","sap/fe/core/CommonUtils","sap/fe/core/controllerextensions/ViewState","sap/m/Link","sap/m/MessagePage","sap/m/MessageBox"],function(L,J,B,F,C,a,V,b,M,c){"use strict";var d={page:{names:["BeginColumn","MidColumn","EndColumn"],currentGetter:{prefix:"getCurrent",suffix:"Page"},getter:{prefix:"get",suffix:"Pages"}}};var _=function(o){if(o.isA("sap.ui.core.ComponentContainer")){return o.getComponentInstance().getRootControl();}else{return o;}};return B.extend("sap.fe.templates.RootContainer.controller.Fcl",{viewState:V.override({applyInitialStateOnly:function(){return false;},adaptBindingRefreshControls:function(e){this.getView().getController()._getAllVisibleViews().forEach(function(o){var p=new Promise(function(r){r(o);});e.push(p);});},adaptStateControls:function(s){this.getView().getController()._getAllVisibleViews().forEach(function(o){var p=new Promise(function(r){r(o);});s.push(p);});},onRestore:function(){var v=this.getView(),n=v.byId("appContent");var i=n.getModel("internal");var p=i.getProperty("/pages");for(var s in p){i.setProperty("/pages/"+s+"/restoreStatus","pending");}},onSuspend:function(){var f=this.getView().getController();var o=f.getFclControl();var e=o.getBeginColumnPages()||[];var m=o.getMidColumnPages()||[];var E=o.getEndColumnPages()||[];var p=[].concat(e,m,E);p.forEach(function(P){var t=_(P);var g=t&&t.getController();if(g&&g.viewState&&g.viewState.onSuspend){return g.viewState.onSuspend();}});}}),onInit:function(e){B.prototype.onInit.bind(this)();this._internalInit();},attachRouteMatchers:function(){this.getRouter().attachBeforeRouteMatched(this._getViewForNavigatedRowsComputation,this);B.prototype.attachRouteMatchers.apply(this,arguments);this._internalInit();this.getRouter().attachBeforeRouteMatched(this.onBeforeRouteMatched,this);this.getRouter().attachRouteMatched(this.onRouteMatched,this);this.getFclControl().attachStateChange(this._saveLayout,this);},_internalInit:function(){if(this._oRouterProxy){return;}this.sCurrentRouteName="";this.sCurrentArguments={};this.SQUERYKEYNAME="?query";var A=this.getAppComponent();this._oRouterProxy=A.getRouterProxy();this._oFCLConfig={maxColumnsCount:3};var r=A.getManifest()["sap.ui5"].routing;if(r&&r.config){if(r.config.flexibleColumnLayout){var f=r.config.flexibleColumnLayout;if(f.defaultTwoColumnLayoutType){this._oFCLConfig.defaultTwoColumnLayoutType=f.defaultTwoColumnLayoutType;}if(f.defaultThreeColumnLayoutType){this._oFCLConfig.defaultThreeColumnLayoutType=f.defaultThreeColumnLayoutType;}if(f.limitFCLToTwoColumns===true){this._oFCLConfig.maxColumnsCount=2;}}if(r.config.controlAggregation){this._oFCLConfig.defaultControlAggregation=r.config.controlAggregation;}}this._initializeTargetAggregation(A);this._initializeRoutesInformation(A);},getFclControl:function(){return this.getView().getContent()[0];},_saveLayout:function(e){this.sPreviousLayout=e.getParameters().layout;},_getViewForNavigatedRowsComputation:function(){var A=this._getAllVisibleViews(this.sPreviousLayout);var r=A[A.length-1];var R;var t=this;t.getRouter().attachEventOnce("routeMatched",function(e){R=_(e.getParameter("views")[e.getParameter("views").length-1]);if(r){if(R.getViewData()&&R.getViewData().viewLevel===t._oFCLConfig.maxColumnsCount){t.oAdditionalViewForNavRowsComputation=R;}if(R.getViewData()&&r.getViewData()&&r.getViewData().viewLevel<t._oFCLConfig.maxColumnsCount&&r.getViewData()&&r.getViewData().viewLevel>R.getViewData().viewLevel&&R!==r){t.oAdditionalViewForNavRowsComputation=r;}}});},getViewForNavigatedRowsComputation:function(){return this.oAdditionalViewForNavRowsComputation;},onExit:function(){this.getRouter().detachRouteMatched(this.onRouteMatched,this);this.getRouter().detachBeforeRouteMatched(this.onBeforeRouteMatched,this);this.getFclControl().detachStateChange(this.onStateChanged,this);this.getFclControl().detachAfterEndColumnNavigate(this.onStateChanged,this);this._oTargetsAggregation=null;this._oTargetsFromRoutePattern=null;B.prototype.onExit.bind(this)();},isFclEnabled:function(){return true;},displayMessagePage:function(e,p){var f=this.getFclControl();if(this._oFCLConfig&&p.FCLLevel>=this._oFCLConfig.maxColumnsCount){p.FCLLevel=this._oFCLConfig.maxColumnsCount-1;}if(!this.aMessagePages){this.aMessagePages=[null,null,null];}var m=this.aMessagePages[p.FCLLevel];if(!m){m=new M({showHeader:false,icon:"sap-icon://message-error"});this.aMessagePages[p.FCLLevel]=m;switch(p.FCLLevel){case 0:f.addBeginColumnPage(m);break;case 1:f.addMidColumnPage(m);break;default:f.addEndColumnPage(m);}}m.setText(e);if(p.technicalMessage){m.setCustomDescription(new b({text:p.description||p.technicalMessage,press:function(){c.show(p.technicalMessage,{icon:c.Icon.ERROR,title:p.title,actions:[c.Action.OK],defaultAction:c.Action.OK,details:p.technicalDetails||"",contentWidth:"60%"});}}));}else{m.setDescription(p.description||"");}f.to(m.getId());},_initializeTargetAggregation:function(A){var m=A.getManifest(),t=m["sap.ui5"].routing?m["sap.ui5"].routing.targets:null,e=this;this._oTargetsAggregation={};if(t){Object.keys(t).forEach(function(T){var o=t[T];if(o.controlAggregation){e._oTargetsAggregation[T]={aggregation:o.controlAggregation,pattern:o.contextPattern};}else{e._oTargetsAggregation[T]={aggregation:"page",pattern:null};}});}},_initializeRoutesInformation:function(A){var m=A.getManifest(),r=m["sap.ui5"].routing?m["sap.ui5"].routing.routes:null,t=this;this._oTargetsFromRoutePattern={};if(r){r.forEach(function(e){t._oTargetsFromRoutePattern[e.pattern]=e.target;});}},getCurrentArgument:function(){return this.sCurrentArguments;},getCurrentRouteName:function(){return this.sCurrentRouteName;},getConstants:function(){return d;},getTargetAggregation:function(){return this._oTargetsAggregation;},onRouteMatched:function(e){var r=e.getParameter("name");this.sCurrentRouteName=r;this.sCurrentArguments=e.getParameter("arguments");},_scrollTablesToLastNavigatedItems:function(){var v=this._getAllVisibleViews();if(v.length>1||v[0].getViewData().viewLevel<this._oFCLConfig.maxColumnsCount){var s,A=this.getViewForNavigatedRowsComputation();if(A&&v.indexOf(A)===-1){v.push(A);}for(var i=v.length-1;i>0;i--){var o=v[i],p=v[i-1];if(o.getBindingContext()){s=o.getBindingContext().getPath();p.getController()._scrollTablesToRow(s);}}}},onStateChanged:function(e){var i=e.getParameter("isNavigationArrow");if(this.sCurrentArguments!==undefined){if(!this.sCurrentArguments[this.SQUERYKEYNAME]){this.sCurrentArguments[this.SQUERYKEYNAME]={};}this.sCurrentArguments[this.SQUERYKEYNAME].layout=e.getParameter("layout");}this._forceModelContextChangeOnBreadCrumbs(e);if(i){this._oRouterProxy.navTo(this.sCurrentRouteName,this.sCurrentArguments);}},_forceModelContextChangeOnBreadCrumbs:function(e){var f=e.getSource(),p=[];p=p.concat(f.getBeginColumnPages()).concat(f.getMidColumnPages()).concat(f.getEndColumnPages());p.forEach(function(P){var v=_(P);var o=v.byId&&v.byId("breadcrumbs");if(o){o.fireModelContextChange();}});},_updateShareButtonVisibility:function(v,l){var s;switch(l){case"OneColumn":s=v==="beginColumn";break;case"MidColumnFullScreen":case"ThreeColumnsBeginExpandedEndHidden":case"ThreeColumnsMidExpandedEndHidden":case"TwoColumnsBeginExpanded":case"TwoColumnsMidExpanded":s=v==="midColumn";break;case"EndColumnFullScreen":case"ThreeColumnsEndExpanded":case"ThreeColumnsMidExpanded":s=v==="endColumn";break;default:s=false;}return s;},updateUIStateForView:function(v,e){var u=this.getHelper().getCurrentUIState(),f=["beginColumn","midColumn","endColumn"],l=this.getFclControl().getLayout(),g;if(!v.getModel("fclhelper")){v.setModel(this._createHelperModel(),"fclhelper");}if(e>=this._oFCLConfig.maxColumnsCount){g=f[this._oFCLConfig.maxColumnsCount-1];u.actionButtonsInfo.midColumn.exitFullScreen=null;u.actionButtonsInfo.midColumn.closeColumn=null;u.actionButtonsInfo.endColumn.exitFullScreen=null;u.actionButtonsInfo.endColumn.closeColumn=null;}else{g=f[e];}if(e>=this._oFCLConfig.maxColumnsCount||l==="EndColumnFullScreen"||l==="MidColumnFullScreen"||l==="OneColumn"){v.getModel("fclhelper").setProperty("/breadCrumbIsVisible",true);}else{v.getModel("fclhelper").setProperty("/breadCrumbIsVisible",false);}u.actionButtonsInfo.beginColumn={fullScreen:null,exitFullScreen:null,closeColumn:null};v.getModel("fclhelper").setProperty("/actionButtonsInfo",Object.assign({},u.actionButtonsInfo[g]));v.getModel("fclhelper").setProperty("/showShareIcon",this._updateShareButtonVisibility(g,l));},onBeforeRouteMatched:function(e){if(e){var q=e.getParameters().arguments[this.SQUERYKEYNAME];var l=q?q.layout:null;if(!l){var n=this.getHelper().getNextUIState(0);l=n.layout;}var t=e.getParameter("config").target;l=this._correctLayoutForTargets(l,t);if(l){if(!this.getFclControl().getModel("fcl")){this.getFclControl().setModel(new J(),"fcl");this.getFclControl().bindProperty("layout","fcl>/layout");}this.getFclControl().setProperty("layout",l);}}},getHelper:function(){return F.getInstanceFor(this.getFclControl(),this._oFCLConfig);},calculateLayout:function(n,h,p){if(!p){p=this.getHelper().getNextUIState(n).layout;}var r=this.getRouter().getRouteByHash(h+"?layout="+p);var t=this._oTargetsFromRoutePattern[r.getPattern()];return this._correctLayoutForTargets(p,t);},_correctLayoutForTargets:function(p,t){var e={"2":["TwoColumnsMidExpanded","TwoColumnsBeginExpanded","MidColumnFullScreen"],"3":["ThreeColumnsMidExpanded","ThreeColumnsEndExpanded","ThreeColumnsMidExpandedEndHidden","ThreeColumnsBeginExpandedEndHidden","MidColumnFullScreen","EndColumnFullScreen"]};if(t&&!Array.isArray(t)){t=[t];}if(!t){return p;}else if(t.length>1){var l=e[t.length];if(l.indexOf(p)<0){p=l[0];}}else{var T=this.getTargetAggregation()[t[0]].aggregation||this._oFCLConfig.defaultControlAggregation;switch(T){case"beginColumnPages":p="OneColumn";break;case"midColumnPages":p="MidColumnFullScreen";break;case"endColumnPages":p="EndColumnFullScreen";break;}}return p;},_getAllVisibleViews:function(l){var v=[];l=!!l?l:this.getFclControl().getLayout();switch(l){case sap.f.LayoutType.EndColumnFullScreen:if(this.getFclControl().getCurrentEndColumnPage()){v.push(_(this.getFclControl().getCurrentEndColumnPage()));}break;case sap.f.LayoutType.MidColumnFullScreen:if(this.getFclControl().getCurrentMidColumnPage()){v.push(_(this.getFclControl().getCurrentMidColumnPage()));}break;case sap.f.LayoutType.OneColumn:if(this.getFclControl().getCurrentBeginColumnPage()){v.push(_(this.getFclControl().getCurrentBeginColumnPage()));}break;case sap.f.LayoutType.ThreeColumnsEndExpanded:case sap.f.LayoutType.ThreeColumnsMidExpanded:if(this.getFclControl().getCurrentBeginColumnPage()){v.push(_(this.getFclControl().getCurrentBeginColumnPage()));}if(this.getFclControl().getCurrentMidColumnPage()){v.push(_(this.getFclControl().getCurrentMidColumnPage()));}if(this.getFclControl().getCurrentEndColumnPage()){v.push(_(this.getFclControl().getCurrentEndColumnPage()));}break;case sap.f.LayoutType.TwoColumnsBeginExpanded:case sap.f.LayoutType.TwoColumnsMidExpanded:case sap.f.LayoutType.ThreeColumnsMidExpandedEndHidden:case sap.f.LayoutType.ThreeColumnsBeginExpandedEndHidden:if(this.getFclControl().getCurrentBeginColumnPage()){v.push(_(this.getFclControl().getCurrentBeginColumnPage()));}if(this.getFclControl().getCurrentMidColumnPage()){v.push(_(this.getFclControl().getCurrentMidColumnPage()));}break;default:L.error("Unhandled switch case for "+this.getFclControl().getLayout());}return v;},onContainerReady:function(){var v=this._getAllVisibleViews();var r=[];v.reduce(function(p,t){p.push(a.restoreView(t));return p;},r);return Promise.all(r);}});},true);
6
+ sap.ui.define(["sap/base/Log","sap/ui/model/json/JSONModel","./RootContainerBaseController","sap/f/FlexibleColumnLayoutSemanticHelper","sap/ui/core/Component","sap/fe/core/helpers/KeepAliveHelper","sap/fe/core/controllerextensions/ViewState","sap/m/Link","sap/m/MessagePage","sap/m/MessageBox"],function(L,J,B,F,C,K,V,a,M,b){"use strict";var c={page:{names:["BeginColumn","MidColumn","EndColumn"],currentGetter:{prefix:"getCurrent",suffix:"Page"},getter:{prefix:"get",suffix:"Pages"}}};var _=function(o){if(o.isA("sap.ui.core.ComponentContainer")){return o.getComponentInstance().getRootControl();}else{return o;}};return B.extend("sap.fe.templates.RootContainer.controller.Fcl",{viewState:V.override({applyInitialStateOnly:function(){return false;},adaptBindingRefreshControls:function(d){this.getView().getController()._getAllVisibleViews().forEach(function(o){var p=new Promise(function(r){r(o);});d.push(p);});},adaptStateControls:function(s){this.getView().getController()._getAllVisibleViews().forEach(function(o){var p=new Promise(function(r){r(o);});s.push(p);});},onRestore:function(){var v=this.getView(),n=v.byId("appContent");var i=n.getModel("internal");var p=i.getProperty("/pages");for(var s in p){i.setProperty("/pages/"+s+"/restoreStatus","pending");}},onSuspend:function(){var f=this.getView().getController();var o=f.getFclControl();var d=o.getBeginColumnPages()||[];var m=o.getMidColumnPages()||[];var e=o.getEndColumnPages()||[];var p=[].concat(d,m,e);p.forEach(function(P){var t=_(P);var g=t&&t.getController();if(g&&g.viewState&&g.viewState.onSuspend){return g.viewState.onSuspend();}});}}),onInit:function(e){B.prototype.onInit.bind(this)();this._internalInit();},attachRouteMatchers:function(){this.getRouter().attachBeforeRouteMatched(this._getViewForNavigatedRowsComputation,this);B.prototype.attachRouteMatchers.apply(this,arguments);this._internalInit();this.getRouter().attachBeforeRouteMatched(this.onBeforeRouteMatched,this);this.getRouter().attachRouteMatched(this.onRouteMatched,this);this.getFclControl().attachStateChange(this._saveLayout,this);},_internalInit:function(){if(this._oRouterProxy){return;}this.sCurrentRouteName="";this.sCurrentArguments={};this.SQUERYKEYNAME="?query";var A=this.getAppComponent();this._oRouterProxy=A.getRouterProxy();this._oFCLConfig={maxColumnsCount:3};var r=A.getManifest()["sap.ui5"].routing;if(r&&r.config){if(r.config.flexibleColumnLayout){var f=r.config.flexibleColumnLayout;if(f.defaultTwoColumnLayoutType){this._oFCLConfig.defaultTwoColumnLayoutType=f.defaultTwoColumnLayoutType;}if(f.defaultThreeColumnLayoutType){this._oFCLConfig.defaultThreeColumnLayoutType=f.defaultThreeColumnLayoutType;}if(f.limitFCLToTwoColumns===true){this._oFCLConfig.maxColumnsCount=2;}}if(r.config.controlAggregation){this._oFCLConfig.defaultControlAggregation=r.config.controlAggregation;}}this._initializeTargetAggregation(A);this._initializeRoutesInformation(A);},getFclControl:function(){return this.getView().getContent()[0];},_saveLayout:function(e){this.sPreviousLayout=e.getParameters().layout;},_getViewForNavigatedRowsComputation:function(){var A=this._getAllVisibleViews(this.sPreviousLayout);var r=A[A.length-1];var R;var t=this;t.getRouter().attachEventOnce("routeMatched",function(e){R=_(e.getParameter("views")[e.getParameter("views").length-1]);if(r){if(R.getViewData()&&R.getViewData().viewLevel===t._oFCLConfig.maxColumnsCount){t.oAdditionalViewForNavRowsComputation=R;}if(R.getViewData()&&r.getViewData()&&r.getViewData().viewLevel<t._oFCLConfig.maxColumnsCount&&r.getViewData()&&r.getViewData().viewLevel>R.getViewData().viewLevel&&R!==r){t.oAdditionalViewForNavRowsComputation=r;}}});},getViewForNavigatedRowsComputation:function(){return this.oAdditionalViewForNavRowsComputation;},onExit:function(){this.getRouter().detachRouteMatched(this.onRouteMatched,this);this.getRouter().detachBeforeRouteMatched(this.onBeforeRouteMatched,this);this.getFclControl().detachStateChange(this.onStateChanged,this);this.getFclControl().detachAfterEndColumnNavigate(this.onStateChanged,this);this._oTargetsAggregation=null;this._oTargetsFromRoutePattern=null;B.prototype.onExit.bind(this)();},isFclEnabled:function(){return true;},displayMessagePage:function(e,p){var f=this.getFclControl();if(this._oFCLConfig&&p.FCLLevel>=this._oFCLConfig.maxColumnsCount){p.FCLLevel=this._oFCLConfig.maxColumnsCount-1;}if(!this.aMessagePages){this.aMessagePages=[null,null,null];}var m=this.aMessagePages[p.FCLLevel];if(!m){m=new M({showHeader:false,icon:"sap-icon://message-error"});this.aMessagePages[p.FCLLevel]=m;switch(p.FCLLevel){case 0:f.addBeginColumnPage(m);break;case 1:f.addMidColumnPage(m);break;default:f.addEndColumnPage(m);}}m.setText(e);if(p.technicalMessage){m.setCustomDescription(new a({text:p.description||p.technicalMessage,press:function(){b.show(p.technicalMessage,{icon:b.Icon.ERROR,title:p.title,actions:[b.Action.OK],defaultAction:b.Action.OK,details:p.technicalDetails||"",contentWidth:"60%"});}}));}else{m.setDescription(p.description||"");}f.to(m.getId());},_initializeTargetAggregation:function(A){var m=A.getManifest(),t=m["sap.ui5"].routing?m["sap.ui5"].routing.targets:null,d=this;this._oTargetsAggregation={};if(t){Object.keys(t).forEach(function(T){var o=t[T];if(o.controlAggregation){d._oTargetsAggregation[T]={aggregation:o.controlAggregation,pattern:o.contextPattern};}else{d._oTargetsAggregation[T]={aggregation:"page",pattern:null};}});}},_initializeRoutesInformation:function(A){var m=A.getManifest(),r=m["sap.ui5"].routing?m["sap.ui5"].routing.routes:null,t=this;this._oTargetsFromRoutePattern={};if(r){r.forEach(function(d){t._oTargetsFromRoutePattern[d.pattern]=d.target;});}},getCurrentArgument:function(){return this.sCurrentArguments;},getCurrentRouteName:function(){return this.sCurrentRouteName;},getConstants:function(){return c;},getTargetAggregation:function(){return this._oTargetsAggregation;},onRouteMatched:function(e){var r=e.getParameter("name");this.sCurrentRouteName=r;this.sCurrentArguments=e.getParameter("arguments");},_scrollTablesToLastNavigatedItems:function(){var v=this._getAllVisibleViews();if(v.length>1||v[0].getViewData().viewLevel<this._oFCLConfig.maxColumnsCount){var s,A=this.getViewForNavigatedRowsComputation();if(A&&v.indexOf(A)===-1){v.push(A);}for(var i=v.length-1;i>0;i--){var o=v[i],p=v[i-1];if(o.getBindingContext()){s=o.getBindingContext().getPath();p.getController()._scrollTablesToRow(s);}}}},onStateChanged:function(e){var i=e.getParameter("isNavigationArrow");if(this.sCurrentArguments!==undefined){if(!this.sCurrentArguments[this.SQUERYKEYNAME]){this.sCurrentArguments[this.SQUERYKEYNAME]={};}this.sCurrentArguments[this.SQUERYKEYNAME].layout=e.getParameter("layout");}this._forceModelContextChangeOnBreadCrumbs(e);if(i){this._oRouterProxy.navTo(this.sCurrentRouteName,this.sCurrentArguments);}},_forceModelContextChangeOnBreadCrumbs:function(e){var f=e.getSource(),p=[];p=p.concat(f.getBeginColumnPages()).concat(f.getMidColumnPages()).concat(f.getEndColumnPages());p.forEach(function(P){var v=_(P);var o=v.byId&&v.byId("breadcrumbs");if(o){o.fireModelContextChange();}});},_updateShareButtonVisibility:function(v,l){var s;switch(l){case"OneColumn":s=v==="beginColumn";break;case"MidColumnFullScreen":case"ThreeColumnsBeginExpandedEndHidden":case"ThreeColumnsMidExpandedEndHidden":case"TwoColumnsBeginExpanded":case"TwoColumnsMidExpanded":s=v==="midColumn";break;case"EndColumnFullScreen":case"ThreeColumnsEndExpanded":case"ThreeColumnsMidExpanded":s=v==="endColumn";break;default:s=false;}return s;},updateUIStateForView:function(v,d){var u=this.getHelper().getCurrentUIState(),f=["beginColumn","midColumn","endColumn"],l=this.getFclControl().getLayout(),e;if(!v.getModel("fclhelper")){v.setModel(this._createHelperModel(),"fclhelper");}if(d>=this._oFCLConfig.maxColumnsCount){e=f[this._oFCLConfig.maxColumnsCount-1];u.actionButtonsInfo.midColumn.fullScreen=null;u.actionButtonsInfo.midColumn.exitFullScreen=null;u.actionButtonsInfo.midColumn.closeColumn=null;u.actionButtonsInfo.endColumn.exitFullScreen=null;u.actionButtonsInfo.endColumn.fullScreen=null;u.actionButtonsInfo.endColumn.closeColumn=null;}else{e=f[d];}if(d>=this._oFCLConfig.maxColumnsCount||l==="EndColumnFullScreen"||l==="MidColumnFullScreen"||l==="OneColumn"){v.getModel("fclhelper").setProperty("/breadCrumbIsVisible",true);}else{v.getModel("fclhelper").setProperty("/breadCrumbIsVisible",false);}u.actionButtonsInfo.beginColumn={fullScreen:null,exitFullScreen:null,closeColumn:null};var A=Object.assign({},u.actionButtonsInfo[e]);A.switchVisible=A.fullScreen!==null||A.exitFullScreen!==null;A.switchIcon=A.fullScreen!==null?"sap-icon://full-screen":"sap-icon://exit-full-screen";A.isFullScreen=A.fullScreen===null;v.getModel("fclhelper").setProperty("/actionButtonsInfo",A);v.getModel("fclhelper").setProperty("/showShareIcon",this._updateShareButtonVisibility(e,l));},onBeforeRouteMatched:function(e){if(e){var q=e.getParameters().arguments[this.SQUERYKEYNAME];var l=q?q.layout:null;if(!l){var n=this.getHelper().getNextUIState(0);l=n.layout;}var t=e.getParameter("config").target;l=this._correctLayoutForTargets(l,t);if(l){this.getFclControl().setLayout(l);}}},getHelper:function(){return F.getInstanceFor(this.getFclControl(),this._oFCLConfig);},calculateLayout:function(n,h,p){if(!p){p=this.getHelper().getNextUIState(n).layout;}var r=this.getRouter().getRouteByHash(h+"?layout="+p);var t=this._oTargetsFromRoutePattern[r.getPattern()];return this._correctLayoutForTargets(p,t);},_correctLayoutForTargets:function(p,t){var d={"2":["TwoColumnsMidExpanded","TwoColumnsBeginExpanded","MidColumnFullScreen"],"3":["ThreeColumnsMidExpanded","ThreeColumnsEndExpanded","ThreeColumnsMidExpandedEndHidden","ThreeColumnsBeginExpandedEndHidden","MidColumnFullScreen","EndColumnFullScreen"]};if(t&&!Array.isArray(t)){t=[t];}if(!t){return p;}else if(t.length>1){var l=d[t.length];if(l.indexOf(p)<0){p=l[0];}}else{var T=this.getTargetAggregation()[t[0]].aggregation||this._oFCLConfig.defaultControlAggregation;switch(T){case"beginColumnPages":p="OneColumn";break;case"midColumnPages":p="MidColumnFullScreen";break;case"endColumnPages":p="EndColumnFullScreen";break;}}return p;},_getAllVisibleViews:function(l){var v=[];l=!!l?l:this.getFclControl().getLayout();switch(l){case sap.f.LayoutType.EndColumnFullScreen:if(this.getFclControl().getCurrentEndColumnPage()){v.push(_(this.getFclControl().getCurrentEndColumnPage()));}break;case sap.f.LayoutType.MidColumnFullScreen:if(this.getFclControl().getCurrentMidColumnPage()){v.push(_(this.getFclControl().getCurrentMidColumnPage()));}break;case sap.f.LayoutType.OneColumn:if(this.getFclControl().getCurrentBeginColumnPage()){v.push(_(this.getFclControl().getCurrentBeginColumnPage()));}break;case sap.f.LayoutType.ThreeColumnsEndExpanded:case sap.f.LayoutType.ThreeColumnsMidExpanded:if(this.getFclControl().getCurrentBeginColumnPage()){v.push(_(this.getFclControl().getCurrentBeginColumnPage()));}if(this.getFclControl().getCurrentMidColumnPage()){v.push(_(this.getFclControl().getCurrentMidColumnPage()));}if(this.getFclControl().getCurrentEndColumnPage()){v.push(_(this.getFclControl().getCurrentEndColumnPage()));}break;case sap.f.LayoutType.TwoColumnsBeginExpanded:case sap.f.LayoutType.TwoColumnsMidExpanded:case sap.f.LayoutType.ThreeColumnsMidExpandedEndHidden:case sap.f.LayoutType.ThreeColumnsBeginExpandedEndHidden:if(this.getFclControl().getCurrentBeginColumnPage()){v.push(_(this.getFclControl().getCurrentBeginColumnPage()));}if(this.getFclControl().getCurrentMidColumnPage()){v.push(_(this.getFclControl().getCurrentMidColumnPage()));}break;default:L.error("Unhandled switch case for "+this.getFclControl().getLayout());}return v;},onContainerReady:function(){var v=this._getAllVisibleViews();var r=[];v.reduce(function(p,t){p.push(K.restoreView(t));return p;},r);return Promise.all(r);},getRightmostContext:function(){var o;switch(this.getFclControl().getLayout()){case sap.f.LayoutType.OneColumn:if(this.getFclControl().getCurrentBeginColumnPage()){o=_(this.getFclControl().getCurrentBeginColumnPage()).getBindingContext();}break;case sap.f.LayoutType.TwoColumnsBeginExpanded:case sap.f.LayoutType.TwoColumnsMidExpanded:if(this.getFclControl().getCurrentMidColumnPage()){o=_(this.getFclControl().getCurrentMidColumnPage()).getBindingContext();}break;case sap.f.LayoutType.ThreeColumnsEndExpanded:case sap.f.LayoutType.ThreeColumnsMidExpanded:case sap.f.LayoutType.ThreeColumnsMidExpandedEndHidden:case sap.f.LayoutType.ThreeColumnsBeginExpandedEndHidden:case sap.f.LayoutType.EndColumnFullScreen:if(this.getFclControl().getCurrentEndColumnPage()){o=_(this.getFclControl().getCurrentEndColumnPage()).getBindingContext();}break;case sap.f.LayoutType.MidColumnFullScreen:var l=this.getHelper().getCurrentUIState().actionButtonsInfo.midColumn.exitFullScreen;if(l.indexOf("ThreeColumn")>=0){if(this.getFclControl().getCurrentEndColumnPage()){o=_(this.getFclControl().getCurrentEndColumnPage()).getBindingContext();}}else{if(this.getFclControl().getCurrentMidColumnPage()){o=_(this.getFclControl().getCurrentMidColumnPage()).getBindingContext();}}break;default:L.error("Unhandled switch case for "+this.getFclControl().getLayout());}return o;}});},true);
@@ -8,12 +8,14 @@ sap.ui.define(
8
8
  "sap/ui/model/json/JSONModel",
9
9
  "./RootContainerBaseController",
10
10
  "sap/fe/core/CommonUtils",
11
+ "sap/fe/core/helpers/KeepAliveHelper",
11
12
  "sap/fe/core/controllerextensions/ViewState",
12
13
  "sap/m/Link",
13
14
  "sap/m/MessagePage",
14
- "sap/m/MessageBox"
15
+ "sap/m/MessageBox",
16
+ "sap/base/Log"
15
17
  ],
16
- function(JSONModel, BaseController, CommonUtils, ViewState, Link, MessagePage, MessageBox) {
18
+ function(JSONModel, BaseController, CommonUtils, KeepAliveHelper, ViewState, Link, MessagePage, MessageBox, Log) {
17
19
  "use strict";
18
20
 
19
21
  /**
@@ -73,7 +75,7 @@ sap.ui.define(
73
75
 
74
76
  return oPagePromise.then(function(oCurrentPage) {
75
77
  var oTargetView = CommonUtils.getTargetView(oCurrentPage);
76
- return CommonUtils.restoreView(oTargetView);
78
+ return KeepAliveHelper.restoreView(oTargetView);
77
79
  });
78
80
  },
79
81
 
@@ -127,40 +129,60 @@ sap.ui.define(
127
129
  _scrollTablesToLastNavigatedItems: function() {},
128
130
 
129
131
  displayMessagePage: function(sErrorMessage, mParameters) {
130
- var oNavContainer = this._getNavContainer();
132
+ return new Promise(
133
+ function(resolve, reject) {
134
+ try {
135
+ var oNavContainer = this._getNavContainer();
136
+
137
+ if (!this.oMessagePage) {
138
+ this.oMessagePage = new MessagePage({
139
+ showHeader: false,
140
+ icon: "sap-icon://message-error"
141
+ });
131
142
 
132
- if (!this.oMessagePage) {
133
- this.oMessagePage = new MessagePage({
134
- showHeader: false,
135
- icon: "sap-icon://message-error"
136
- });
143
+ oNavContainer.addPage(this.oMessagePage);
144
+ }
137
145
 
138
- oNavContainer.addPage(this.oMessagePage);
139
- }
146
+ this.oMessagePage.setText(sErrorMessage);
147
+
148
+ if (mParameters.technicalMessage) {
149
+ this.oMessagePage.setCustomDescription(
150
+ new Link({
151
+ text: mParameters.description || mParameters.technicalMessage,
152
+ press: function() {
153
+ MessageBox.show(mParameters.technicalMessage, {
154
+ icon: MessageBox.Icon.ERROR,
155
+ title: mParameters.title,
156
+ actions: [MessageBox.Action.OK],
157
+ defaultAction: MessageBox.Action.OK,
158
+ details: mParameters.technicalDetails || "",
159
+ contentWidth: "60%"
160
+ });
161
+ }
162
+ })
163
+ );
164
+ } else {
165
+ this.oMessagePage.setDescription(mParameters.description || "");
166
+ }
140
167
 
141
- this.oMessagePage.setText(sErrorMessage);
142
-
143
- if (mParameters.technicalMessage) {
144
- this.oMessagePage.setCustomDescription(
145
- new Link({
146
- text: mParameters.description || mParameters.technicalMessage,
147
- press: function() {
148
- MessageBox.show(mParameters.technicalMessage, {
149
- icon: MessageBox.Icon.ERROR,
150
- title: mParameters.title,
151
- actions: [MessageBox.Action.OK],
152
- defaultAction: MessageBox.Action.OK,
153
- details: mParameters.technicalDetails || "",
154
- contentWidth: "60%"
168
+ if (mParameters.handleShellBack) {
169
+ var oErrorOriginPage = oNavContainer.getCurrentPage(),
170
+ oAppComponent = CommonUtils.getAppComponent(oNavContainer.getCurrentPage());
171
+ oAppComponent.getShellServices().setBackNavigation(function() {
172
+ oNavContainer.to(oErrorOriginPage.getId());
173
+ oAppComponent.getShellServices().setBackNavigation();
155
174
  });
156
175
  }
157
- })
158
- );
159
- } else {
160
- this.oMessagePage.setDescription(mParameters.description || "");
161
- }
162
-
163
- oNavContainer.to(this.oMessagePage.getId());
176
+ oNavContainer.attachAfterNavigate(function() {
177
+ resolve(true);
178
+ });
179
+ oNavContainer.to(this.oMessagePage.getId());
180
+ } catch (e) {
181
+ reject(false);
182
+ Log.info(e);
183
+ }
184
+ }.bind(this)
185
+ );
164
186
  }
165
187
  });
166
188
  },
@@ -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/model/json/JSONModel","./RootContainerBaseController","sap/fe/core/CommonUtils","sap/fe/core/controllerextensions/ViewState","sap/m/Link","sap/m/MessagePage","sap/m/MessageBox"],function(J,B,C,V,L,M,a){"use strict";return B.extend("sap.fe.templates.RootContainer.controller.NavContainer",{viewState:V.override({applyInitialStateOnly:function(){return false;},adaptBindingRefreshControls:function(c){var v=this.getView(),o=v.getController();c.push(o._getCurrentPage(v));},adaptStateControls:function(s){var v=this.getView(),c=v.getController();s.push(c._getCurrentPage(v));},onRestore:function(){var v=this.getView(),n=v.byId("appContent");var i=n.getModel("internal");var p=i.getProperty("/pages");for(var c in p){i.setProperty("/pages/"+c+"/restoreStatus","pending");}},onSuspend:function(){var v=this.getView(),n=v.byId("appContent");var p=n.getPages();p.forEach(function(P){var t=C.getTargetView(P);var c=t&&t.getController();if(c&&c.viewState&&c.viewState.onSuspend){return c.viewState.onSuspend();}});}}),onContainerReady:function(){var v=this.getView(),p=this._getCurrentPage(v);return p.then(function(c){var t=C.getTargetView(c);return C.restoreView(t);});},_getCurrentPage:function(v){return new Promise(function(r){var n=v.byId("appContent");var c=n.getCurrentPage();if(c&&c.getController&&c.getController().isPlaceholder&&c.getController().isPlaceholder()){c.getController().attachEventOnce("targetPageInsertedInContainer",function(e){var T=e.getParameter("targetpage");var t=C.getTargetView(T);r(t!==v&&t);});}else{var t=C.getTargetView(c);r(t!==v&&t);}});},_getNavContainer:function(){return this.getView().getContent()[0];},isFclEnabled:function(){return false;},_scrollTablesToLastNavigatedItems:function(){},displayMessagePage:function(e,p){var n=this._getNavContainer();if(!this.oMessagePage){this.oMessagePage=new M({showHeader:false,icon:"sap-icon://message-error"});n.addPage(this.oMessagePage);}this.oMessagePage.setText(e);if(p.technicalMessage){this.oMessagePage.setCustomDescription(new L({text:p.description||p.technicalMessage,press:function(){a.show(p.technicalMessage,{icon:a.Icon.ERROR,title:p.title,actions:[a.Action.OK],defaultAction:a.Action.OK,details:p.technicalDetails||"",contentWidth:"60%"});}}));}else{this.oMessagePage.setDescription(p.description||"");}n.to(this.oMessagePage.getId());}});},true);
6
+ sap.ui.define(["sap/ui/model/json/JSONModel","./RootContainerBaseController","sap/fe/core/CommonUtils","sap/fe/core/helpers/KeepAliveHelper","sap/fe/core/controllerextensions/ViewState","sap/m/Link","sap/m/MessagePage","sap/m/MessageBox","sap/base/Log"],function(J,B,C,K,V,L,M,a,b){"use strict";return B.extend("sap.fe.templates.RootContainer.controller.NavContainer",{viewState:V.override({applyInitialStateOnly:function(){return false;},adaptBindingRefreshControls:function(c){var v=this.getView(),o=v.getController();c.push(o._getCurrentPage(v));},adaptStateControls:function(s){var v=this.getView(),c=v.getController();s.push(c._getCurrentPage(v));},onRestore:function(){var v=this.getView(),n=v.byId("appContent");var i=n.getModel("internal");var p=i.getProperty("/pages");for(var c in p){i.setProperty("/pages/"+c+"/restoreStatus","pending");}},onSuspend:function(){var v=this.getView(),n=v.byId("appContent");var p=n.getPages();p.forEach(function(P){var t=C.getTargetView(P);var c=t&&t.getController();if(c&&c.viewState&&c.viewState.onSuspend){return c.viewState.onSuspend();}});}}),onContainerReady:function(){var v=this.getView(),p=this._getCurrentPage(v);return p.then(function(c){var t=C.getTargetView(c);return K.restoreView(t);});},_getCurrentPage:function(v){return new Promise(function(r){var n=v.byId("appContent");var c=n.getCurrentPage();if(c&&c.getController&&c.getController().isPlaceholder&&c.getController().isPlaceholder()){c.getController().attachEventOnce("targetPageInsertedInContainer",function(e){var T=e.getParameter("targetpage");var t=C.getTargetView(T);r(t!==v&&t);});}else{var t=C.getTargetView(c);r(t!==v&&t);}});},_getNavContainer:function(){return this.getView().getContent()[0];},isFclEnabled:function(){return false;},_scrollTablesToLastNavigatedItems:function(){},displayMessagePage:function(E,p){return new Promise(function(r,c){try{var n=this._getNavContainer();if(!this.oMessagePage){this.oMessagePage=new M({showHeader:false,icon:"sap-icon://message-error"});n.addPage(this.oMessagePage);}this.oMessagePage.setText(E);if(p.technicalMessage){this.oMessagePage.setCustomDescription(new L({text:p.description||p.technicalMessage,press:function(){a.show(p.technicalMessage,{icon:a.Icon.ERROR,title:p.title,actions:[a.Action.OK],defaultAction:a.Action.OK,details:p.technicalDetails||"",contentWidth:"60%"});}}));}else{this.oMessagePage.setDescription(p.description||"");}if(p.handleShellBack){var o=n.getCurrentPage(),A=C.getAppComponent(n.getCurrentPage());A.getShellServices().setBackNavigation(function(){n.to(o.getId());A.getShellServices().setBackNavigation();});}n.attachAfterNavigate(function(){r(true);});n.to(this.oMessagePage.getId());}catch(e){c(false);b.info(e);}}.bind(this));}});},true);
@@ -54,12 +54,12 @@ sap.ui.define(
54
54
  this.oPlaceholder.attachRouteMatchers();
55
55
  this.getAppComponent()
56
56
  .getRoutingService()
57
- .attachAfterRouteMatched(this.shellTitleHandler, this);
57
+ .attachAfterRouteMatched(this._onAfterRouteMatched, this);
58
58
  },
59
59
  onExit: function() {
60
60
  this.getAppComponent()
61
61
  .getRoutingService()
62
- .detachAfterRouteMatched(this.shellTitleHandler, this);
62
+ .detachAfterRouteMatched(this._onAfterRouteMatched, this);
63
63
  this.oRouter = null;
64
64
 
65
65
  SizeHelper.exit();
@@ -133,46 +133,49 @@ sap.ui.define(
133
133
  },
134
134
 
135
135
  /**
136
- * This function is updating the shell title after each navigation.
136
+ * Callback when the navigation is done.
137
+ * - update the shell title.
138
+ * - update table scroll.
139
+ * - call onPageReady on the rightMostView.
137
140
  *
138
141
  * @param oEvent
139
- * @name sap.fe.templates.RootContainer.controller.BaseController#shellTitleHandler
142
+ * @name sap.fe.templates.RootContainer.controller.BaseController#_onAfterRouteMatched
140
143
  * @memberof sap.fe.templates.RootContainer.controller.BaseController
141
144
  */
142
- shellTitleHandler: function(oEvent) {
145
+ _onAfterRouteMatched: function(oEvent) {
143
146
  var that = this;
144
- if (!that.oShellTitlePromise) {
145
- that.oShellTitlePromise = that
147
+ if (!that._oRouteMatchedPromise) {
148
+ that._oRouteMatchedPromise = that
146
149
  .waitForRightMostViewReady(oEvent)
147
150
  .then(function(oView) {
151
+ // The autoFocus is initially disabled on the navContainer or the FCL, so that the focus stays on the Shell menu
152
+ // even if the app takes a long time to launch
153
+ // The first time the view is displayed, we need to enable the autofocus so that it's managed properly during navigation
154
+ var oRootControl = that.getView().getContent()[0];
155
+ if (oRootControl && oRootControl.getAutoFocus && !oRootControl.getAutoFocus()) {
156
+ oRootControl.setProperty("autoFocus", true, true); // Do not mark the container as invalid, otherwise it's re-rendered
157
+ }
158
+
148
159
  var oAppComponent = that.getAppComponent();
149
160
  var oData = { oView: oView, oAppComponent: oAppComponent };
150
161
  that._scrollTablesToLastNavigatedItems();
151
162
  if (oAppComponent.getEnvironmentCapabilities().getCapabilities().UShell) {
152
163
  that.computeTitleHierarchy(oData);
153
164
  }
154
- var oLastFocusedControl = oAppComponent.getRouterProxy().getFocusControlForCurrentHash();
165
+ var bForceFocus = oAppComponent.getRouterProxy().isFocusForced();
166
+ oAppComponent.getRouterProxy().setFocusForced(false); // reset
155
167
  if (oView.getController() && oView.getController().onPageReady) {
156
- if (oLastFocusedControl) {
157
- oView.getParent().onPageReady({ lastFocusedControl: oLastFocusedControl });
158
- } else {
159
- var currentFocusedControlId = sap.ui.getCore().getCurrentFocusedControlId();
160
- var oCurrentFocusedControl = {
161
- controlId: currentFocusedControlId,
162
- focusInfo: { id: currentFocusedControlId }
163
- };
164
- oView.getParent().onPageReady({ lastFocusedControl: oCurrentFocusedControl });
165
- }
168
+ oView.getParent().onPageReady({ forceFocus: bForceFocus });
166
169
  }
167
170
  if (that.onContainerReady) {
168
171
  that.onContainerReady();
169
172
  }
170
-
171
- that.oShellTitlePromise = null;
172
173
  })
173
174
  .catch(function(oError) {
174
175
  Log.error("An error occurs while computing the title hierarchy and calling focus method", oError);
175
- that.oShellTitlePromise = null;
176
+ })
177
+ .finally(function() {
178
+ that._oRouteMatchedPromise = null;
176
179
  });
177
180
  }
178
181
  },