@sapui5/sap.fe.core 1.100.0 → 1.102.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 (295) hide show
  1. package/package.json +4 -4
  2. package/src/sap/fe/core/.library +2 -3
  3. package/src/sap/fe/core/AppComponent.js +23 -30
  4. package/src/sap/fe/core/AppComponent.ts +35 -40
  5. package/src/sap/fe/core/AppStateHandler.js +8 -8
  6. package/src/sap/fe/core/AppStateHandler.ts +11 -11
  7. package/src/sap/fe/core/BaseController.js +9 -9
  8. package/src/sap/fe/core/BaseController.ts +3 -4
  9. package/src/sap/fe/core/CommonUtils.js +122 -101
  10. package/src/sap/fe/core/CommonUtils.ts +239 -193
  11. package/src/sap/fe/core/ExtensionAPI.js +12 -13
  12. package/src/sap/fe/core/ExtensionAPI.ts +21 -31
  13. package/src/sap/fe/core/PageController.js +19 -13
  14. package/src/sap/fe/core/PageController.ts +40 -34
  15. package/src/sap/fe/core/TemplateComponent.js +198 -123
  16. package/src/sap/fe/core/TemplateComponent.ts +109 -121
  17. package/src/sap/fe/core/TemplateModel.js +7 -9
  18. package/src/sap/fe/core/TemplateModel.ts +3 -3
  19. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +60 -0
  20. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +37 -0
  21. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +165 -0
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +178 -0
  23. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +935 -0
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +837 -0
  25. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +436 -0
  26. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +431 -0
  27. package/src/sap/fe/core/{BusyLocker.js → controllerextensions/BusyLocker.js} +1 -1
  28. package/src/sap/fe/core/{BusyLocker.ts → controllerextensions/BusyLocker.ts} +7 -7
  29. package/src/sap/fe/core/controllerextensions/EditFlow.js +660 -288
  30. package/src/sap/fe/core/controllerextensions/EditFlow.ts +513 -331
  31. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +11 -11
  32. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -7
  33. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +43 -25
  34. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +132 -103
  35. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +16 -16
  36. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +64 -55
  37. package/src/sap/fe/core/controllerextensions/InternalRouting.js +166 -99
  38. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +187 -149
  39. package/src/sap/fe/core/controllerextensions/KPIManagement.js +14 -14
  40. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -11
  41. package/src/sap/fe/core/controllerextensions/MassEdit.js +13 -12
  42. package/src/sap/fe/core/controllerextensions/MassEdit.ts +22 -22
  43. package/src/sap/fe/core/controllerextensions/MessageHandler.js +14 -26
  44. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +20 -30
  45. package/src/sap/fe/core/controllerextensions/PageReady.js +25 -23
  46. package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -47
  47. package/src/sap/fe/core/controllerextensions/Paginator.js +24 -15
  48. package/src/sap/fe/core/controllerextensions/Paginator.ts +35 -20
  49. package/src/sap/fe/core/controllerextensions/Placeholder.js +10 -10
  50. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  51. package/src/sap/fe/core/controllerextensions/Routing.js +11 -11
  52. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  53. package/src/sap/fe/core/controllerextensions/Share.js +34 -16
  54. package/src/sap/fe/core/controllerextensions/Share.ts +50 -32
  55. package/src/sap/fe/core/controllerextensions/SideEffects.js +15 -15
  56. package/src/sap/fe/core/controllerextensions/SideEffects.ts +64 -65
  57. package/src/sap/fe/core/controllerextensions/ViewState.js +27 -31
  58. package/src/sap/fe/core/controllerextensions/ViewState.ts +103 -102
  59. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +105 -0
  60. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +98 -0
  61. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +360 -0
  62. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ActivitySync.ts +90 -132
  63. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +146 -0
  64. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.ts +18 -8
  65. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +264 -0
  66. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.ts +35 -33
  67. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +100 -0
  68. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/UserDetails.fragment.xml +5 -7
  69. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1584 -0
  70. package/src/sap/fe/core/{TransactionHelper.ts → controllerextensions/editFlow/TransactionHelper.ts} +190 -159
  71. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +780 -0
  72. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/draft.ts +329 -76
  73. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1149 -0
  74. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/operations.ts +169 -97
  75. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +190 -0
  76. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/sticky.ts +76 -12
  77. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +592 -0
  78. package/src/sap/fe/core/{actions → controllerextensions/messageHandler}/messageHandling.ts +83 -60
  79. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +940 -0
  80. package/src/sap/fe/core/{RouterProxy.ts → controllerextensions/routing/RouterProxy.ts} +52 -36
  81. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +21 -18
  82. package/src/sap/fe/core/controls/Any.js +28 -0
  83. package/src/sap/fe/core/controls/Any.ts +30 -0
  84. package/src/sap/fe/core/controls/CommandExecution.js +50 -16
  85. package/src/sap/fe/core/controls/CommandExecution.ts +31 -22
  86. package/src/sap/fe/core/controls/ConditionalWrapper.js +136 -65
  87. package/src/sap/fe/core/controls/ConditionalWrapper.ts +49 -58
  88. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +371 -0
  89. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +282 -0
  90. package/src/sap/fe/core/controls/CustomQuickViewPage.js +74 -36
  91. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +23 -32
  92. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +52 -5
  93. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +127 -67
  94. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +127 -67
  95. package/src/sap/fe/core/controls/FieldWrapper.js +171 -87
  96. package/src/sap/fe/core/controls/FieldWrapper.ts +69 -80
  97. package/src/sap/fe/core/controls/FileWrapper.js +360 -0
  98. package/src/sap/fe/core/controls/FileWrapper.ts +202 -0
  99. package/src/sap/fe/core/controls/FilterBar.js +154 -119
  100. package/src/sap/fe/core/controls/FilterBar.ts +128 -123
  101. package/src/sap/fe/core/controls/FormElementWrapper.js +102 -37
  102. package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -35
  103. package/src/sap/fe/core/controls/MassEditSelect.js +33 -0
  104. package/src/sap/fe/core/controls/MassEditSelect.ts +45 -0
  105. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +111 -89
  106. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +86 -82
  107. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -193
  108. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +211 -204
  109. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +152 -116
  110. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +105 -105
  111. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -2
  112. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +23 -28
  113. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +41 -81
  114. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +107 -0
  115. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +550 -35
  116. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +604 -35
  117. package/src/sap/fe/core/converters/ManifestSettings.js +3 -1
  118. package/src/sap/fe/core/converters/ManifestSettings.ts +9 -2
  119. package/src/sap/fe/core/converters/MetaModelConverter.js +11 -40
  120. package/src/sap/fe/core/converters/MetaModelConverter.ts +56 -84
  121. package/src/sap/fe/core/converters/annotations/DataField.js +20 -5
  122. package/src/sap/fe/core/converters/annotations/DataField.ts +27 -6
  123. package/src/sap/fe/core/converters/controls/Common/Action.js +14 -21
  124. package/src/sap/fe/core/converters/controls/Common/Action.ts +23 -28
  125. package/src/sap/fe/core/converters/controls/Common/Chart.js +17 -10
  126. package/src/sap/fe/core/converters/controls/Common/Chart.ts +20 -14
  127. package/src/sap/fe/core/converters/controls/Common/Form.js +16 -18
  128. package/src/sap/fe/core/converters/controls/Common/Form.ts +20 -20
  129. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  130. package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -3
  131. package/src/sap/fe/core/converters/controls/Common/Table.js +389 -173
  132. package/src/sap/fe/core/converters/controls/Common/Table.ts +440 -244
  133. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +26 -16
  134. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +27 -19
  135. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +78 -47
  136. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +146 -107
  137. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +6 -6
  138. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +20 -18
  139. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +30 -25
  140. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +39 -34
  141. package/src/sap/fe/core/converters/helpers/Aggregation.js +10 -2
  142. package/src/sap/fe/core/converters/helpers/Aggregation.ts +18 -13
  143. package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
  144. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +6 -5
  145. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  146. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -4
  147. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +27 -24
  148. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +49 -40
  149. package/src/sap/fe/core/converters/templates/ListReportConverter.js +33 -22
  150. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +77 -62
  151. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +28 -28
  152. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +38 -45
  153. package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -3
  154. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +8 -6
  155. package/src/sap/fe/core/formatters/KPIFormatter.js +3 -12
  156. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -2
  157. package/src/sap/fe/core/formatters/TableFormatter.js +74 -13
  158. package/src/sap/fe/core/formatters/TableFormatter.ts +71 -16
  159. package/src/sap/fe/core/formatters/ValueFormatter.js +4 -4
  160. package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -7
  161. package/src/sap/fe/core/fpm/Component.js +46 -17
  162. package/src/sap/fe/core/fpm/Component.ts +11 -16
  163. package/src/sap/fe/core/helpers/AppStartupHelper.js +4 -4
  164. package/src/sap/fe/core/helpers/AppStartupHelper.ts +3 -3
  165. package/src/sap/fe/core/helpers/BindingExpression.js +10 -7
  166. package/src/sap/fe/core/helpers/BindingExpression.ts +37 -35
  167. package/src/sap/fe/core/helpers/ClassSupport.js +273 -256
  168. package/src/sap/fe/core/helpers/ClassSupport.ts +315 -237
  169. package/src/sap/fe/core/helpers/FPMHelper.js +3 -2
  170. package/src/sap/fe/core/helpers/FPMHelper.ts +9 -8
  171. package/src/sap/fe/core/helpers/MassEditHelper.js +522 -147
  172. package/src/sap/fe/core/helpers/MassEditHelper.ts +563 -236
  173. package/src/sap/fe/core/helpers/ModelHelper.js +29 -1
  174. package/src/sap/fe/core/helpers/ModelHelper.ts +39 -26
  175. package/src/sap/fe/core/helpers/PasteHelper.js +4 -4
  176. package/src/sap/fe/core/helpers/PasteHelper.ts +4 -3
  177. package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -3
  178. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +3 -1
  179. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  180. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  181. package/src/sap/fe/core/helpers/StableIdHelper.js +5 -7
  182. package/src/sap/fe/core/helpers/StableIdHelper.ts +8 -8
  183. package/src/sap/fe/core/{Synchronization.js → helpers/Synchronization.js} +1 -1
  184. package/src/sap/fe/core/{Synchronization.ts → helpers/Synchronization.ts} +1 -1
  185. package/src/sap/fe/core/jsx-runtime/jsx.js +35 -5
  186. package/src/sap/fe/core/jsx-runtime/jsx.ts +22 -8
  187. package/src/sap/fe/core/library.js +13 -5
  188. package/src/sap/fe/core/library.ts +26 -17
  189. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  190. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -3
  191. package/src/sap/fe/core/messagebundle.properties +135 -180
  192. package/src/sap/fe/core/messagebundle_ar.properties +31 -64
  193. package/src/sap/fe/core/messagebundle_bg.properties +31 -64
  194. package/src/sap/fe/core/messagebundle_ca.properties +31 -64
  195. package/src/sap/fe/core/messagebundle_cs.properties +31 -64
  196. package/src/sap/fe/core/messagebundle_cy.properties +32 -65
  197. package/src/sap/fe/core/messagebundle_da.properties +31 -64
  198. package/src/sap/fe/core/messagebundle_de.properties +29 -62
  199. package/src/sap/fe/core/messagebundle_el.properties +32 -65
  200. package/src/sap/fe/core/messagebundle_en.properties +32 -65
  201. package/src/sap/fe/core/messagebundle_en_GB.properties +29 -62
  202. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -74
  203. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +32 -65
  204. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +20 -6
  205. package/src/sap/fe/core/messagebundle_es.properties +31 -64
  206. package/src/sap/fe/core/messagebundle_es_MX.properties +31 -64
  207. package/src/sap/fe/core/messagebundle_et.properties +31 -64
  208. package/src/sap/fe/core/messagebundle_fi.properties +29 -62
  209. package/src/sap/fe/core/messagebundle_fr.properties +36 -69
  210. package/src/sap/fe/core/messagebundle_fr_CA.properties +33 -66
  211. package/src/sap/fe/core/messagebundle_hi.properties +29 -62
  212. package/src/sap/fe/core/messagebundle_hr.properties +32 -65
  213. package/src/sap/fe/core/messagebundle_hu.properties +30 -63
  214. package/src/sap/fe/core/messagebundle_id.properties +32 -65
  215. package/src/sap/fe/core/messagebundle_it.properties +31 -64
  216. package/src/sap/fe/core/messagebundle_iw.properties +31 -64
  217. package/src/sap/fe/core/messagebundle_ja.properties +29 -62
  218. package/src/sap/fe/core/messagebundle_kk.properties +31 -64
  219. package/src/sap/fe/core/messagebundle_ko.properties +31 -64
  220. package/src/sap/fe/core/messagebundle_lt.properties +31 -64
  221. package/src/sap/fe/core/messagebundle_lv.properties +32 -65
  222. package/src/sap/fe/core/messagebundle_ms.properties +31 -64
  223. package/src/sap/fe/core/messagebundle_nl.properties +31 -64
  224. package/src/sap/fe/core/messagebundle_no.properties +31 -64
  225. package/src/sap/fe/core/messagebundle_pl.properties +34 -67
  226. package/src/sap/fe/core/messagebundle_pt.properties +32 -65
  227. package/src/sap/fe/core/messagebundle_pt_PT.properties +31 -64
  228. package/src/sap/fe/core/messagebundle_ro.properties +33 -66
  229. package/src/sap/fe/core/messagebundle_ru.properties +33 -66
  230. package/src/sap/fe/core/messagebundle_sh.properties +31 -64
  231. package/src/sap/fe/core/messagebundle_sk.properties +31 -64
  232. package/src/sap/fe/core/messagebundle_sl.properties +29 -62
  233. package/src/sap/fe/core/messagebundle_sv.properties +30 -63
  234. package/src/sap/fe/core/messagebundle_th.properties +31 -64
  235. package/src/sap/fe/core/messagebundle_tr.properties +31 -64
  236. package/src/sap/fe/core/messagebundle_uk.properties +32 -65
  237. package/src/sap/fe/core/messagebundle_vi.properties +31 -64
  238. package/src/sap/fe/core/messagebundle_zh_CN.properties +32 -65
  239. package/src/sap/fe/core/messagebundle_zh_TW.properties +34 -67
  240. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +4 -4
  241. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
  242. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +5 -5
  243. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +1 -2
  244. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +11 -8
  245. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +15 -13
  246. package/src/sap/fe/core/services/NavigationServiceFactory.js +5 -5
  247. package/src/sap/fe/core/services/NavigationServiceFactory.ts +9 -5
  248. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -4
  249. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +1 -1
  250. package/src/sap/fe/core/services/RoutingServiceFactory.js +105 -66
  251. package/src/sap/fe/core/services/RoutingServiceFactory.ts +59 -49
  252. package/src/sap/fe/core/services/ShellServicesFactory.js +104 -29
  253. package/src/sap/fe/core/services/ShellServicesFactory.ts +64 -30
  254. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
  255. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +1 -1
  256. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +11 -10
  257. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +38 -51
  258. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
  259. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +6 -3
  260. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  261. package/src/sap/fe/core/support/CommonHelper.ts +0 -3
  262. package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -9
  263. package/src/sap/fe/core/templating/DataModelPathHelper.ts +32 -38
  264. package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
  265. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +27 -6
  266. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -9
  267. package/src/sap/fe/core/templating/EntitySetHelper.ts +11 -13
  268. package/src/sap/fe/core/templating/FilterHelper.js +4 -4
  269. package/src/sap/fe/core/templating/FilterHelper.ts +6 -5
  270. package/src/sap/fe/core/templating/PropertyHelper.js +70 -33
  271. package/src/sap/fe/core/templating/PropertyHelper.ts +49 -27
  272. package/src/sap/fe/core/templating/UIFormatters.js +133 -22
  273. package/src/sap/fe/core/templating/UIFormatters.ts +144 -50
  274. package/src/sap/fe/core/type/DateTimeWithTimezone.js +47 -0
  275. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +23 -0
  276. package/src/sap/fe/core/type/Email.js +26 -8
  277. package/src/sap/fe/core/type/Email.ts +8 -7
  278. package/src/sap/fe/core/AnnotationHelper.js +0 -312
  279. package/src/sap/fe/core/AnnotationHelper.ts +0 -315
  280. package/src/sap/fe/core/RouterProxy.js +0 -926
  281. package/src/sap/fe/core/TransactionHelper.js +0 -1562
  282. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +0 -392
  283. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +0 -136
  284. package/src/sap/fe/core/actions/collaboration/Manage.js +0 -262
  285. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +0 -103
  286. package/src/sap/fe/core/actions/draft.js +0 -523
  287. package/src/sap/fe/core/actions/messageHandling.js +0 -567
  288. package/src/sap/fe/core/actions/nonDraft.js +0 -20
  289. package/src/sap/fe/core/actions/nonDraft.ts +0 -12
  290. package/src/sap/fe/core/actions/operations.js +0 -1096
  291. package/src/sap/fe/core/actions/sticky.js +0 -130
  292. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +0 -78
  293. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +0 -65
  294. package/src/sap/fe/core/formatters/CriticalityFormatter.js +0 -77
  295. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +0 -58
@@ -1,35 +1,42 @@
1
- import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
2
- import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
3
- import TransactionHelper from "sap/fe/core/TransactionHelper";
4
1
  import Log from "sap/base/Log";
2
+ import AppComponent from "sap/fe/core/AppComponent";
5
3
  import CommonUtils from "sap/fe/core/CommonUtils";
6
- import BusyLocker from "sap/fe/core/BusyLocker";
7
- import FELibrary from "sap/fe/core/library";
4
+ import BusyLocker from "sap/fe/core/controllerextensions/BusyLocker";
5
+ import { send } from "sap/fe/core/controllerextensions/collaboration/ActivitySync";
6
+ import { Activity } from "sap/fe/core/controllerextensions/collaboration/CollaborationCommon";
7
+ import sticky from "sap/fe/core/controllerextensions/editFlow/sticky";
8
+ import TransactionHelper from "sap/fe/core/controllerextensions/editFlow/TransactionHelper";
9
+ import {
10
+ defineUI5Class,
11
+ extensible,
12
+ finalExtension,
13
+ methodOverride,
14
+ privateExtension,
15
+ publicExtension
16
+ } from "sap/fe/core/helpers/ClassSupport";
8
17
  import EditState from "sap/fe/core/helpers/EditState";
9
- import { Extensible, Final, Override, Private, Public, UI5Class } from "sap/fe/core/helpers/ClassSupport";
10
- import ControllerExtensionMetadata from "sap/fe/core/controllerextensions/ControllerExtensionMetadata";
11
- import AppComponent from "sap/fe/core/AppComponent";
18
+ import FELibrary from "sap/fe/core/library";
12
19
  import PageController from "sap/fe/core/PageController";
13
- import JSONModel from "sap/ui/model/json/JSONModel";
14
- import Table from "sap/ui/mdc/Table";
15
- import Dialog from "sap/m/Dialog";
16
20
  import Button from "sap/m/Button";
21
+ import Dialog from "sap/m/Dialog";
17
22
  import Text from "sap/m/Text";
18
- import Model from "sap/ui/model/Model";
19
- import sticky from "sap/fe/core/actions/sticky";
23
+ import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
24
+ import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
20
25
  import View from "sap/ui/core/mvc/View";
21
- import { send } from "sap/fe/core/actions/collaboration/ActivitySync";
22
- import { Activity } from "sap/fe/core/actions/collaboration/CollaborationCommon";
26
+ import Table from "sap/ui/mdc/Table";
27
+ import JSONModel from "sap/ui/model/json/JSONModel";
28
+ import Model from "sap/ui/model/Model";
23
29
  import Context from "sap/ui/model/odata/v4/Context";
30
+ import ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
24
31
 
25
32
  const ProgrammingModel = FELibrary.ProgrammingModel,
26
33
  DraftStatus = FELibrary.DraftStatus,
27
34
  EditMode = FELibrary.EditMode,
28
35
  CreationMode = FELibrary.CreationMode;
29
36
 
30
- @UI5Class("sap.fe.core.controllerextensions.InternalEditFlow", ControllerExtensionMetadata)
37
+ @defineUI5Class("sap.fe.core.controllerextensions.InternalEditFlow")
31
38
  class InternalEditFlow extends ControllerExtension {
32
- private base!: PageController;
39
+ protected base!: PageController;
33
40
  private _oAppComponent!: AppComponent;
34
41
  private _pTasks: any;
35
42
  private oActionPromise?: Promise<any>;
@@ -37,7 +44,7 @@ class InternalEditFlow extends ControllerExtension {
37
44
  private fnDirtyStateProvider?: Function;
38
45
  private fnHandleSessionTimeout?: Function;
39
46
  private fnStickyDiscardAfterNavigation?: Function;
40
- @Override()
47
+ @methodOverride()
41
48
  onInit() {
42
49
  this._oAppComponent = this.base.getAppComponent();
43
50
  }
@@ -50,22 +57,29 @@ class InternalEditFlow extends ControllerExtension {
50
57
  * @alias sap.fe.core.controllerextensions.InternalEditFlow#setCreationMode
51
58
  * @since 1.90.0
52
59
  */
53
- @Private
54
- @Extensible(OverrideExecution.After)
60
+ @privateExtension()
61
+ @extensible(OverrideExecution.After)
55
62
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
56
63
  setCreationMode(bCreationMode: boolean) {
57
64
  // to be overridden
58
65
  }
59
- @Public
60
- @Final
61
- createMultipleDocuments(oListBinding: any, aData: any, bCreateAtEnd: any, bFromCopyPaste: any, beforeCreateCallBack: any) {
66
+ @publicExtension()
67
+ @finalExtension()
68
+ createMultipleDocuments(
69
+ oListBinding: any,
70
+ aData: any,
71
+ bCreateAtEnd: any,
72
+ bFromCopyPaste: boolean,
73
+ beforeCreateCallBack: any,
74
+ bInactive?: boolean
75
+ ) {
62
76
  const transactionHelper = this.getTransactionHelper(),
63
77
  oLockObject = this.getGlobalUIModel(),
64
78
  oResourceBundle = (this.getView().getController() as any).oResourceBundle;
65
79
 
66
80
  BusyLocker.lock(oLockObject);
67
81
  return this.syncTask()
68
- .then(function() {
82
+ .then(function () {
69
83
  const onBeforeCreatePromise = beforeCreateCallBack
70
84
  ? beforeCreateCallBack({ contextPath: oListBinding && oListBinding.getPath() })
71
85
  : Promise.resolve();
@@ -93,6 +107,7 @@ class InternalEditFlow extends ControllerExtension {
93
107
  mParameters.creationMode = CreationMode.CreationRow;
94
108
  mParameters.parentControl = this.getView();
95
109
  mParameters.createAtEnd = bCreateAtEnd;
110
+ mParameters.inactive = bInactive;
96
111
 
97
112
  // Remove navigation properties as we don't support deep create
98
113
  for (const sPropertyPath in mPropertyValues) {
@@ -114,11 +129,13 @@ class InternalEditFlow extends ControllerExtension {
114
129
 
115
130
  return Promise.all(aCreationPromises);
116
131
  })
117
- .then(function(aContexts: any) {
132
+ .then(function (aContexts: any) {
118
133
  // transient contexts are reliably removed once oNewContext.created() is resolved
119
134
  return Promise.all(
120
- aContexts.map(function(oNewContext: any) {
121
- return oNewContext.created();
135
+ aContexts.map(function (oNewContext: any) {
136
+ if (!oNewContext.bInactive) {
137
+ return oNewContext.created();
138
+ }
122
139
  })
123
140
  );
124
141
  })
@@ -134,16 +151,16 @@ class InternalEditFlow extends ControllerExtension {
134
151
  .requestSideEffectsForNavigationProperty(oListBinding.getPath(), oBindingContext as Context);
135
152
  }
136
153
  })
137
- .catch(function(err: any) {
154
+ .catch(function (err: any) {
138
155
  Log.error("Error while creating multiple documents.");
139
156
  return Promise.reject(err);
140
157
  })
141
- .finally(function() {
158
+ .finally(function () {
142
159
  BusyLocker.unlock(oLockObject);
143
160
  });
144
161
  }
145
- @Public
146
- @Final
162
+ @publicExtension()
163
+ @finalExtension()
147
164
  deleteMultipleDocuments(aContexts: any, mParameters: any) {
148
165
  const oRoutingListener = this.getRoutingListener(),
149
166
  oLockObject = this.getGlobalUIModel();
@@ -166,8 +183,8 @@ class InternalEditFlow extends ControllerExtension {
166
183
  const oBindingContext = this.getView().getBindingContext();
167
184
  if (oListBinding.isRoot()) {
168
185
  // keep promise chain pending until refresh of listbinding is completed
169
- oResult = new Promise<void>(resolve => {
170
- oListBinding.attachEventOnce("dataReceived", function() {
186
+ oResult = new Promise<void>((resolve) => {
187
+ oListBinding.attachEventOnce("dataReceived", function () {
171
188
  resolve();
172
189
  });
173
190
  });
@@ -186,7 +203,11 @@ class InternalEditFlow extends ControllerExtension {
186
203
  // deleting at least one object should also set the UI to dirty
187
204
  EditState.setEditStateDirty();
188
205
 
189
- send(this.getView(), Activity.Delete, aContexts);
206
+ send(
207
+ this.getView(),
208
+ Activity.Delete,
209
+ aContexts.map((context: Context) => context.getPath())
210
+ );
190
211
 
191
212
  // Finally, check if the current state can be impacted by the deletion, i.e. if there's
192
213
  // an OP displaying a deleted object. If yes navigate back to dismiss the OP
@@ -199,10 +220,10 @@ class InternalEditFlow extends ControllerExtension {
199
220
 
200
221
  return oResult;
201
222
  })
202
- .catch(function(oError: any) {
223
+ .catch(function (oError: any) {
203
224
  Log.error("Error while deleting the document(s)", oError);
204
225
  })
205
- .finally(function() {
226
+ .finally(function () {
206
227
  BusyLocker.unlock(oLockObject);
207
228
  });
208
229
  }
@@ -217,8 +238,8 @@ class InternalEditFlow extends ControllerExtension {
217
238
  * @returns {Promise} Promise resolves once the edit mode is computed
218
239
  */
219
240
 
220
- @Public
221
- @Final
241
+ @publicExtension()
242
+ @finalExtension()
222
243
  computeEditMode(oContext: any) {
223
244
  const sCustomAction = this.getInternalModel().getProperty("/sCustomAction");
224
245
  return Promise.resolve(
@@ -242,7 +263,7 @@ class InternalEditFlow extends ControllerExtension {
242
263
  this.setEditMode(EditMode.Display, false);
243
264
  }
244
265
  })
245
- .catch(function(oError: any) {
266
+ .catch(function (oError: any) {
246
267
  Log.error("Error while determining the editMode for draft", oError);
247
268
  throw oError;
248
269
  });
@@ -266,15 +287,14 @@ class InternalEditFlow extends ControllerExtension {
266
287
  * @param {string} sEditMode
267
288
  * @param {boolean} bCreationMode CreateMode flag to identify the creation mode
268
289
  */
269
- @Public
270
- @Final
271
- setEditMode(sEditMode?: string, bCreationMode: boolean = false) {
290
+ @publicExtension()
291
+ @finalExtension()
292
+ setEditMode(sEditMode?: string, bCreationMode?: boolean) {
272
293
  // at this point of time it's not meant to release the edit flow for freestyle usage therefore we can
273
294
  // rely on the global UI model to exist
274
295
  const oGlobalModel = this.getGlobalUIModel();
275
296
 
276
297
  if (sEditMode) {
277
- oGlobalModel.setProperty("/editMode", sEditMode, undefined, true);
278
298
  oGlobalModel.setProperty("/isEditable", sEditMode === "Editable", undefined, true);
279
299
  }
280
300
 
@@ -285,16 +305,16 @@ class InternalEditFlow extends ControllerExtension {
285
305
  }
286
306
  }
287
307
 
288
- @Public
289
- @Final
308
+ @publicExtension()
309
+ @finalExtension()
290
310
  setDraftStatus(sDraftState: any) {
291
311
  // at this point of time it's not meant to release the edit flow for freestyle usage therefore we can
292
312
  // rely on the global UI model to exist
293
313
  (this.base.getView().getModel("ui") as JSONModel).setProperty("/draftStatus", sDraftState, undefined, true);
294
314
  }
295
315
 
296
- @Public
297
- @Final
316
+ @publicExtension()
317
+ @finalExtension()
298
318
  getRoutingListener() {
299
319
  // at this point of time it's not meant to release the edit flow for FPM custom pages and the routing
300
320
  // listener is not yet public therefore keep the logic here for now
@@ -306,8 +326,8 @@ class InternalEditFlow extends ControllerExtension {
306
326
  }
307
327
  }
308
328
 
309
- @Public
310
- @Final
329
+ @publicExtension()
330
+ @finalExtension()
311
331
  getGlobalUIModel(): JSONModel {
312
332
  // at this point of time it's not meant to release the edit flow for freestyle usage therefore we can
313
333
  // rely on the global UI model to exist
@@ -328,12 +348,12 @@ class InternalEditFlow extends ControllerExtension {
328
348
  * @ui5-restricted
329
349
  * @final
330
350
  */
331
- @Public
332
- @Final
351
+ @publicExtension()
352
+ @finalExtension()
333
353
  syncTask(vTask?: Function | Promise<any>) {
334
354
  let fnNewTask;
335
355
  if (vTask instanceof Promise) {
336
- fnNewTask = function() {
356
+ fnNewTask = function () {
337
357
  return vTask;
338
358
  };
339
359
  } else if (typeof vTask === "function") {
@@ -342,7 +362,7 @@ class InternalEditFlow extends ControllerExtension {
342
362
 
343
363
  this._pTasks = this._pTasks || Promise.resolve();
344
364
  if (!!fnNewTask) {
345
- this._pTasks = this._pTasks.then(fnNewTask).catch(function() {
365
+ this._pTasks = this._pTasks.then(fnNewTask).catch(function () {
346
366
  return Promise.resolve();
347
367
  });
348
368
  }
@@ -350,14 +370,14 @@ class InternalEditFlow extends ControllerExtension {
350
370
  return this._pTasks;
351
371
  }
352
372
 
353
- @Public
354
- @Final
355
- getProgrammingModel(oContext: any): typeof ProgrammingModel {
373
+ @publicExtension()
374
+ @finalExtension()
375
+ getProgrammingModel(oContext?: any): typeof ProgrammingModel {
356
376
  return this.getTransactionHelper().getProgrammingModel(oContext);
357
377
  }
358
378
 
359
- @Public
360
- @Final
379
+ @publicExtension()
380
+ @finalExtension()
361
381
  deleteDocumentTransaction(oContext: any, mParameters: any) {
362
382
  const oResourceBundle = (this.getView().getController() as any).oResourceBundle,
363
383
  transactionHelper = this.getTransactionHelper();
@@ -367,10 +387,7 @@ class InternalEditFlow extends ControllerExtension {
367
387
  // TODO: this setting and removing of contexts shouldn't be in the transaction helper at all
368
388
  // for the time being I kept it and provide the internal model context to not break something
369
389
  mParameters.internalModelContext = mParameters.controlId
370
- ? sap.ui
371
- .getCore()
372
- .byId(mParameters.controlId)
373
- ?.getBindingContext("internal")
390
+ ? sap.ui.getCore().byId(mParameters.controlId)?.getBindingContext("internal")
374
391
  : null;
375
392
 
376
393
  return this.syncTask()
@@ -378,9 +395,11 @@ class InternalEditFlow extends ControllerExtension {
378
395
  transactionHelper.deleteDocument.bind(transactionHelper, oContext, mParameters, oResourceBundle, this.getMessageHandler())
379
396
  )
380
397
  .then(() => {
381
- this.getInternalModel().setProperty("/sessionOn", false);
398
+ const internalModel = this.getInternalModel();
399
+ internalModel.setProperty("/sessionOn", false);
400
+ internalModel.setProperty("/stickySessionToken", undefined);
382
401
  })
383
- .catch(function(oError: any) {
402
+ .catch(function (oError: any) {
384
403
  return Promise.reject(oError);
385
404
  });
386
405
  }
@@ -391,8 +410,8 @@ class InternalEditFlow extends ControllerExtension {
391
410
  * @memberof sap.fe.core.controllerextensions.EditFlow
392
411
  * @param {object} oBinding OData list binding object
393
412
  */
394
- @Public
395
- @Final
413
+ @publicExtension()
414
+ @finalExtension()
396
415
  handleCreateEvents(oBinding: any) {
397
416
  const transactionHelper = this.getTransactionHelper();
398
417
 
@@ -416,8 +435,8 @@ class InternalEditFlow extends ControllerExtension {
416
435
  });
417
436
  }
418
437
 
419
- @Public
420
- @Final
438
+ @publicExtension()
439
+ @finalExtension()
421
440
  getTransactionHelper() {
422
441
  if (!this._oTransactionHelper) {
423
442
  // currently also the transaction helper is locking therefore passing lock object
@@ -427,8 +446,8 @@ class InternalEditFlow extends ControllerExtension {
427
446
  return this._oTransactionHelper;
428
447
  }
429
448
 
430
- @Public
431
- @Final
449
+ @publicExtension()
450
+ @finalExtension()
432
451
  getInternalModel(): JSONModel {
433
452
  return this.base.getView().getModel("internal") as JSONModel;
434
453
  }
@@ -442,8 +461,8 @@ class InternalEditFlow extends ControllerExtension {
442
461
  * @returns {Function} The resolver function which can be used to externally resolve the promise
443
462
  */
444
463
 
445
- @Public
446
- @Final
464
+ @publicExtension()
465
+ @finalExtension()
447
466
  createActionPromise(sActionName: any, sControlId: any) {
448
467
  let fResolver, fRejector;
449
468
  this.oActionPromise = new Promise((resolve, reject) => {
@@ -464,14 +483,14 @@ class InternalEditFlow extends ControllerExtension {
464
483
  *
465
484
  * @returns {Promise} Returns the promise
466
485
  */
467
- @Public
468
- @Final
486
+ @publicExtension()
487
+ @finalExtension()
469
488
  getCurrentActionPromise() {
470
489
  return this.oActionPromise;
471
490
  }
472
491
 
473
- @Public
474
- @Final
492
+ @publicExtension()
493
+ @finalExtension()
475
494
  deleteCurrentActionPromise() {
476
495
  this.oActionPromise = undefined;
477
496
  }
@@ -484,8 +503,8 @@ class InternalEditFlow extends ControllerExtension {
484
503
  * @param {object} oResponse The bound action's response data or response context
485
504
  * @returns {object} Object with data and names of the key fields of the response
486
505
  */
487
- @Public
488
- @Final
506
+ @publicExtension()
507
+ @finalExtension()
489
508
  getActionResponseDataAndKeys(sActionName: string, oResponse: any) {
490
509
  if (Array.isArray(oResponse)) {
491
510
  if (oResponse.length === 1) {
@@ -511,8 +530,8 @@ class InternalEditFlow extends ControllerExtension {
511
530
  };
512
531
  }
513
532
 
514
- @Public
515
- @Final
533
+ @publicExtension()
534
+ @finalExtension()
516
535
  getMessageHandler() {
517
536
  // at this point of time it's not meant to release the edit flow for FPM custom pages therefore keep
518
537
  // the logic here for now
@@ -524,9 +543,9 @@ class InternalEditFlow extends ControllerExtension {
524
543
  }
525
544
  }
526
545
 
527
- @Public
528
- @Final
529
- handleStickyOn(oContext: any) {
546
+ @publicExtension()
547
+ @finalExtension()
548
+ handleStickyOn(oContext: Context) {
530
549
  const oAppComponent = CommonUtils.getAppComponent(this.getView());
531
550
 
532
551
  try {
@@ -541,8 +560,8 @@ class InternalEditFlow extends ControllerExtension {
541
560
  // Set a guard in the RouterProxy
542
561
  // A timeout is necessary, as with deferred creation the hashChanger is not updated yet with
543
562
  // the new hash, and the guard cannot be found in the managed history of the router proxy
544
- setTimeout(function() {
545
- oAppComponent.getRouterProxy().setNavigationGuard();
563
+ setTimeout(function () {
564
+ oAppComponent.getRouterProxy().setNavigationGuard(oContext.getPath().substring(1));
546
565
  }, 0);
547
566
 
548
567
  // Setting back navigation on shell service, to get the dicard message box in case of sticky
@@ -553,21 +572,21 @@ class InternalEditFlow extends ControllerExtension {
553
572
 
554
573
  // handle session timeout
555
574
  const i18nModel = this.getView().getModel("sap.fe.i18n");
556
- this.fnHandleSessionTimeout = this._attachSessionTimeout(this, i18nModel);
575
+ this.fnHandleSessionTimeout = this._attachSessionTimeout(oContext, i18nModel);
557
576
  (this.getView().getModel() as any).attachSessionTimeout(this.fnHandleSessionTimeout);
558
577
 
559
578
  this.fnStickyDiscardAfterNavigation = this._attachRouteMatched(this, oContext, oAppComponent);
560
579
  oAppComponent.getRoutingService().attachRouteMatched(this.fnStickyDiscardAfterNavigation);
561
580
  }
562
581
  } catch (error) {
563
- Log.info(error);
582
+ Log.info(error as any);
564
583
  return undefined;
565
584
  }
566
585
  return true;
567
586
  }
568
587
 
569
- @Public
570
- @Final
588
+ @publicExtension()
589
+ @finalExtension()
571
590
  handleStickyOff() {
572
591
  const oAppComponent = CommonUtils.getAppComponent(this.getView());
573
592
  try {
@@ -602,7 +621,7 @@ class InternalEditFlow extends ControllerExtension {
602
621
  oAppComponent.getShellServices().setBackNavigation();
603
622
  }
604
623
  } catch (error) {
605
- Log.info(error);
624
+ Log.info(error as any);
606
625
  return undefined;
607
626
  }
608
627
  return true;
@@ -615,8 +634,8 @@ class InternalEditFlow extends ControllerExtension {
615
634
  * @name onBackNavigationInSession
616
635
  * @memberof sap.fe.core.controllerextensions.InternalEditFlow
617
636
  */
618
- @Public
619
- @Final
637
+ @publicExtension()
638
+ @finalExtension()
620
639
  onBackNavigationInSession() {
621
640
  const oView = this.getView(),
622
641
  oAppComponent = CommonUtils.getAppComponent(oView),
@@ -625,7 +644,7 @@ class InternalEditFlow extends ControllerExtension {
625
644
  if (oRouterProxy.checkIfBackIsOutOfGuard()) {
626
645
  const oBindingContext = oView && oView.getBindingContext();
627
646
 
628
- CommonUtils.processDataLossConfirmation(
647
+ sticky.processDataLossConfirmation(
629
648
  () => {
630
649
  this.discardStickySession(oBindingContext);
631
650
  history.back();
@@ -639,8 +658,8 @@ class InternalEditFlow extends ControllerExtension {
639
658
  history.back();
640
659
  }
641
660
 
642
- @Public
643
- @Final
661
+ @publicExtension()
662
+ @finalExtension()
644
663
  discardStickySession(oContext: any) {
645
664
  sticky.discardDocument(oContext);
646
665
  this.handleStickyOff();
@@ -660,7 +679,7 @@ class InternalEditFlow extends ControllerExtension {
660
679
  return true;
661
680
  } else if (oStickySession && oStickySession.AdditionalNewActions) {
662
681
  return sCustomAction ===
663
- oStickySession.AdditionalNewActions.find(function(sAdditionalAction: string) {
682
+ oStickySession.AdditionalNewActions.find(function (sAdditionalAction: string) {
664
683
  return sAdditionalAction === sCustomAction;
665
684
  })
666
685
  ? true
@@ -669,7 +688,7 @@ class InternalEditFlow extends ControllerExtension {
669
688
  return false;
670
689
  }
671
690
  } catch (error) {
672
- Log.info(error);
691
+ Log.info(error as any);
673
692
  return undefined;
674
693
  }
675
694
  }
@@ -714,7 +733,7 @@ class InternalEditFlow extends ControllerExtension {
714
733
  if (bDirty) {
715
734
  // the FLP doesn't call the dirty state provider anymore once it's dirty, as they can't
716
735
  // change this due to compatibility reasons we set it back to not-dirty
717
- setTimeout(function() {
736
+ setTimeout(function () {
718
737
  oAppComponent.getShellServices().setDirtyFlag(false);
719
738
  }, 0);
720
739
  } else {
@@ -723,14 +742,14 @@ class InternalEditFlow extends ControllerExtension {
723
742
 
724
743
  return bDirty;
725
744
  } catch (error) {
726
- Log.info(error);
745
+ Log.info(error as any);
727
746
  return undefined;
728
747
  }
729
748
  };
730
749
  }
731
750
 
732
751
  _attachSessionTimeout(oContext: any, i18nModel: Model) {
733
- const that = oContext;
752
+ const that = this;
734
753
 
735
754
  return function fnHandleSessionTimeout() {
736
755
  try {
@@ -747,13 +766,13 @@ class InternalEditFlow extends ControllerExtension {
747
766
  beginButton: new Button({
748
767
  text: "{sap.fe.i18n>C_COMMON_DIALOG_OK}",
749
768
  type: "Emphasized",
750
- press: function() {
769
+ press: function () {
751
770
  // remove sticky handling after navigation since session has already been terminated
752
771
  that.handleStickyOff();
753
772
  that.getRoutingListener().navigateBackFromContext(oContext);
754
773
  }
755
774
  }),
756
- afterClose: function() {
775
+ afterClose: function () {
757
776
  oDialog.destroy();
758
777
  }
759
778
  });
@@ -762,7 +781,7 @@ class InternalEditFlow extends ControllerExtension {
762
781
  that.getView().addDependent(oDialog);
763
782
  oDialog.open();
764
783
  } catch (error) {
765
- Log.info(error);
784
+ Log.info(error as any);
766
785
  return undefined;
767
786
  }
768
787
  return true;
@@ -778,6 +797,16 @@ class InternalEditFlow extends ControllerExtension {
778
797
  }
779
798
  };
780
799
  }
800
+ scrollAndFocusOnInactiveRow(oTable: Table) {
801
+ const oRowBinding = oTable.getRowBinding() as ODataListBinding;
802
+ const iActiveRowIndex = oRowBinding.getCount() || 0;
803
+ if (iActiveRowIndex > 0) {
804
+ oTable.scrollToIndex(iActiveRowIndex - 1);
805
+ oTable.focusRow(iActiveRowIndex, true);
806
+ } else {
807
+ oTable.focusRow(iActiveRowIndex, true);
808
+ }
809
+ }
781
810
  }
782
811
 
783
812
  export default InternalEditFlow;