@sapui5/sap.fe.core 1.97.0 → 1.100.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 (306) hide show
  1. package/package.json +7 -4
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AnnotationHelper.js +309 -405
  4. package/src/sap/fe/core/AnnotationHelper.ts +315 -0
  5. package/src/sap/fe/core/AppComponent.js +389 -397
  6. package/src/sap/fe/core/AppComponent.ts +403 -0
  7. package/src/sap/fe/core/AppStateHandler.js +198 -181
  8. package/src/sap/fe/core/AppStateHandler.ts +171 -0
  9. package/src/sap/fe/core/BaseController.js +83 -58
  10. package/src/sap/fe/core/BaseController.ts +68 -0
  11. package/src/sap/fe/core/BusyLocker.js +105 -121
  12. package/src/sap/fe/core/BusyLocker.ts +98 -0
  13. package/src/sap/fe/core/CommonUtils.js +2164 -2379
  14. package/src/sap/fe/core/CommonUtils.ts +2177 -0
  15. package/src/sap/fe/core/ExtensionAPI.js +279 -266
  16. package/src/sap/fe/core/ExtensionAPI.ts +250 -0
  17. package/src/sap/fe/core/PageController.js +218 -125
  18. package/src/sap/fe/core/PageController.ts +129 -0
  19. package/src/sap/fe/core/RouterProxy.js +924 -807
  20. package/src/sap/fe/core/RouterProxy.ts +840 -0
  21. package/src/sap/fe/core/Synchronization.js +41 -35
  22. package/src/sap/fe/core/Synchronization.ts +29 -0
  23. package/src/sap/fe/core/TemplateComponent.js +173 -155
  24. package/src/sap/fe/core/TemplateComponent.ts +173 -0
  25. package/src/sap/fe/core/TemplateModel.js +79 -54
  26. package/src/sap/fe/core/TemplateModel.ts +63 -0
  27. package/src/sap/fe/core/TransactionHelper.js +1560 -1579
  28. package/src/sap/fe/core/TransactionHelper.ts +1717 -0
  29. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +392 -0
  30. package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
  31. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +136 -0
  32. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
  33. package/src/sap/fe/core/actions/collaboration/Manage.js +262 -0
  34. package/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
  35. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
  36. package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
  37. package/src/sap/fe/core/actions/draft.js +521 -581
  38. package/src/sap/fe/core/actions/draft.ts +566 -0
  39. package/src/sap/fe/core/actions/messageHandling.js +564 -511
  40. package/src/sap/fe/core/actions/messageHandling.ts +552 -0
  41. package/src/sap/fe/core/actions/nonDraft.js +17 -19
  42. package/src/sap/fe/core/actions/nonDraft.ts +12 -0
  43. package/src/sap/fe/core/actions/operations.js +1093 -1211
  44. package/src/sap/fe/core/actions/operations.ts +1192 -0
  45. package/src/sap/fe/core/actions/sticky.js +114 -104
  46. package/src/sap/fe/core/actions/sticky.ts +119 -0
  47. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +70 -66
  48. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
  49. package/src/sap/fe/core/controllerextensions/EditFlow.js +1594 -1701
  50. package/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
  51. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +80 -54
  52. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
  53. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +719 -505
  54. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
  55. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +797 -813
  56. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
  57. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1005 -973
  58. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
  59. package/src/sap/fe/core/controllerextensions/KPIManagement.js +530 -476
  60. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +137 -46
  61. package/src/sap/fe/core/controllerextensions/MassEdit.js +144 -0
  62. package/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
  63. package/src/sap/fe/core/controllerextensions/MessageHandler.js +234 -232
  64. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
  65. package/src/sap/fe/core/controllerextensions/PageReady.js +302 -337
  66. package/src/sap/fe/core/controllerextensions/PageReady.ts +23 -17
  67. package/src/sap/fe/core/controllerextensions/Paginator.js +189 -148
  68. package/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
  69. package/src/sap/fe/core/controllerextensions/Placeholder.js +158 -146
  70. package/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
  71. package/src/sap/fe/core/controllerextensions/Routing.js +145 -106
  72. package/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
  73. package/src/sap/fe/core/controllerextensions/RoutingListener.js +8 -6
  74. package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
  75. package/src/sap/fe/core/controllerextensions/Share.js +220 -244
  76. package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
  77. package/src/sap/fe/core/controllerextensions/SideEffects.js +593 -634
  78. package/src/sap/fe/core/controllerextensions/SideEffects.ts +29 -27
  79. package/src/sap/fe/core/controllerextensions/ViewState.js +789 -806
  80. package/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
  81. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -3
  82. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
  83. package/src/sap/fe/core/controls/CommandExecution.js +68 -66
  84. package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
  85. package/src/sap/fe/core/controls/ConditionalWrapper.js +91 -75
  86. package/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
  87. package/src/sap/fe/core/controls/CustomQuickViewPage.js +131 -125
  88. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
  89. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +105 -110
  90. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
  91. package/src/sap/fe/core/controls/FieldWrapper.js +122 -140
  92. package/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
  93. package/src/sap/fe/core/controls/FilterBar.js +163 -159
  94. package/src/sap/fe/core/controls/FilterBar.ts +143 -0
  95. package/src/sap/fe/core/controls/FormElementWrapper.js +46 -44
  96. package/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
  97. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +38 -42
  98. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
  99. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +2 -1
  100. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +127 -116
  101. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
  102. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -255
  103. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
  104. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +151 -141
  105. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
  106. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +336 -322
  107. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
  108. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +106 -0
  109. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +79 -0
  110. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
  111. package/src/sap/fe/core/converters/ConverterContext.js +348 -367
  112. package/src/sap/fe/core/converters/ConverterContext.ts +33 -19
  113. package/src/sap/fe/core/converters/ManifestSettings.js +12 -1
  114. package/src/sap/fe/core/converters/ManifestSettings.ts +16 -1
  115. package/src/sap/fe/core/converters/ManifestWrapper.js +354 -354
  116. package/src/sap/fe/core/converters/ManifestWrapper.ts +34 -6
  117. package/src/sap/fe/core/converters/MetaModelConverter.js +72 -9
  118. package/src/sap/fe/core/converters/MetaModelConverter.ts +75 -16
  119. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  120. package/src/sap/fe/core/converters/TemplateConverter.ts +4 -3
  121. package/src/sap/fe/core/converters/annotations/DataField.js +28 -14
  122. package/src/sap/fe/core/converters/annotations/DataField.ts +38 -14
  123. package/src/sap/fe/core/converters/common/AnnotationConverter.js +33 -21
  124. package/src/sap/fe/core/converters/controls/Common/Action.js +11 -2
  125. package/src/sap/fe/core/converters/controls/Common/Action.ts +8 -2
  126. package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -3
  127. package/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
  128. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
  129. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
  130. package/src/sap/fe/core/converters/controls/Common/Form.js +21 -11
  131. package/src/sap/fe/core/converters/controls/Common/Form.ts +28 -6
  132. package/src/sap/fe/core/converters/controls/Common/KPI.js +69 -4
  133. package/src/sap/fe/core/converters/controls/Common/KPI.ts +75 -2
  134. package/src/sap/fe/core/converters/controls/Common/Table.js +507 -408
  135. package/src/sap/fe/core/converters/controls/Common/Table.ts +618 -500
  136. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +592 -0
  137. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +718 -0
  138. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +465 -59
  139. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +462 -72
  140. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +2 -2
  141. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
  142. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +17 -9
  143. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +24 -9
  144. package/src/sap/fe/core/converters/helpers/Aggregation.js +118 -121
  145. package/src/sap/fe/core/converters/helpers/Aggregation.ts +28 -5
  146. package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
  147. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
  148. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
  149. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
  150. package/src/sap/fe/core/converters/helpers/IssueManager.js +7 -1
  151. package/src/sap/fe/core/converters/helpers/IssueManager.ts +6 -0
  152. package/src/sap/fe/core/converters/helpers/Key.js +42 -57
  153. package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  154. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +28 -7
  155. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +23 -6
  156. package/src/sap/fe/core/converters/templates/ListReportConverter.js +20 -7
  157. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +36 -14
  158. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +7 -5
  159. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
  160. package/src/sap/fe/core/designtime/AppComponent.designtime.js +93 -90
  161. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
  162. package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
  163. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
  164. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  165. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
  166. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  167. package/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
  168. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  169. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
  170. package/src/sap/fe/core/formatters/TableFormatter.js +91 -29
  171. package/src/sap/fe/core/formatters/TableFormatter.ts +94 -28
  172. package/src/sap/fe/core/formatters/ValueFormatter.js +30 -5
  173. package/src/sap/fe/core/formatters/ValueFormatter.ts +30 -7
  174. package/src/sap/fe/core/fpm/Component.js +51 -54
  175. package/src/sap/fe/core/fpm/Component.ts +48 -0
  176. package/src/sap/fe/core/helpers/AppStartupHelper.js +373 -0
  177. package/src/sap/fe/core/helpers/AppStartupHelper.ts +417 -0
  178. package/src/sap/fe/core/helpers/BindingExpression.js +489 -442
  179. package/src/sap/fe/core/helpers/BindingExpression.ts +486 -469
  180. package/src/sap/fe/core/helpers/ClassSupport.js +212 -76
  181. package/src/sap/fe/core/helpers/ClassSupport.ts +198 -71
  182. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +64 -59
  183. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +52 -0
  184. package/src/sap/fe/core/helpers/EditState.js +81 -84
  185. package/src/sap/fe/core/helpers/EditState.ts +81 -0
  186. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +62 -48
  187. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
  188. package/src/sap/fe/core/helpers/FPMHelper.js +52 -56
  189. package/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
  190. package/src/sap/fe/core/helpers/KeepAliveHelper.js +4 -5
  191. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +10 -10
  192. package/src/sap/fe/core/helpers/MassEditHelper.js +604 -0
  193. package/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
  194. package/src/sap/fe/core/helpers/ModelHelper.js +253 -225
  195. package/src/sap/fe/core/helpers/ModelHelper.ts +250 -0
  196. package/src/sap/fe/core/helpers/PasteHelper.js +210 -132
  197. package/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
  198. package/src/sap/fe/core/helpers/SemanticDateOperators.js +336 -313
  199. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +334 -0
  200. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -67
  201. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
  202. package/src/sap/fe/core/helpers/StableIdHelper.js +4 -7
  203. package/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
  204. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  205. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
  206. package/src/sap/fe/core/library.js +427 -425
  207. package/src/sap/fe/core/library.support.js +23 -27
  208. package/src/sap/fe/core/library.support.ts +23 -0
  209. package/src/sap/fe/core/library.ts +420 -0
  210. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +64 -0
  211. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +69 -0
  212. package/src/sap/fe/core/messagebundle.properties +78 -13
  213. package/src/sap/fe/core/messagebundle_ar.properties +58 -7
  214. package/src/sap/fe/core/messagebundle_bg.properties +58 -7
  215. package/src/sap/fe/core/messagebundle_ca.properties +58 -7
  216. package/src/sap/fe/core/messagebundle_cs.properties +59 -8
  217. package/src/sap/fe/core/messagebundle_cy.properties +58 -7
  218. package/src/sap/fe/core/messagebundle_da.properties +58 -7
  219. package/src/sap/fe/core/messagebundle_de.properties +58 -7
  220. package/src/sap/fe/core/messagebundle_el.properties +58 -7
  221. package/src/sap/fe/core/messagebundle_en.properties +57 -6
  222. package/src/sap/fe/core/messagebundle_en_GB.properties +57 -6
  223. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +61 -6
  224. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +58 -7
  225. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +58 -7
  226. package/src/sap/fe/core/messagebundle_es.properties +58 -7
  227. package/src/sap/fe/core/messagebundle_es_MX.properties +58 -7
  228. package/src/sap/fe/core/messagebundle_et.properties +58 -7
  229. package/src/sap/fe/core/messagebundle_fi.properties +60 -9
  230. package/src/sap/fe/core/messagebundle_fr.properties +64 -13
  231. package/src/sap/fe/core/messagebundle_fr_CA.properties +59 -8
  232. package/src/sap/fe/core/messagebundle_hi.properties +58 -7
  233. package/src/sap/fe/core/messagebundle_hr.properties +58 -7
  234. package/src/sap/fe/core/messagebundle_hu.properties +59 -8
  235. package/src/sap/fe/core/messagebundle_id.properties +61 -10
  236. package/src/sap/fe/core/messagebundle_it.properties +58 -7
  237. package/src/sap/fe/core/messagebundle_iw.properties +58 -7
  238. package/src/sap/fe/core/messagebundle_ja.properties +58 -7
  239. package/src/sap/fe/core/messagebundle_kk.properties +58 -7
  240. package/src/sap/fe/core/messagebundle_ko.properties +58 -7
  241. package/src/sap/fe/core/messagebundle_lt.properties +58 -7
  242. package/src/sap/fe/core/messagebundle_lv.properties +59 -8
  243. package/src/sap/fe/core/messagebundle_ms.properties +58 -7
  244. package/src/sap/fe/core/messagebundle_nl.properties +58 -7
  245. package/src/sap/fe/core/messagebundle_no.properties +58 -7
  246. package/src/sap/fe/core/messagebundle_pl.properties +58 -7
  247. package/src/sap/fe/core/messagebundle_pt.properties +59 -8
  248. package/src/sap/fe/core/messagebundle_pt_PT.properties +58 -7
  249. package/src/sap/fe/core/messagebundle_ro.properties +58 -7
  250. package/src/sap/fe/core/messagebundle_ru.properties +58 -7
  251. package/src/sap/fe/core/messagebundle_sh.properties +58 -7
  252. package/src/sap/fe/core/messagebundle_sk.properties +58 -7
  253. package/src/sap/fe/core/messagebundle_sl.properties +58 -7
  254. package/src/sap/fe/core/messagebundle_sv.properties +59 -8
  255. package/src/sap/fe/core/messagebundle_th.properties +58 -7
  256. package/src/sap/fe/core/messagebundle_tr.properties +60 -9
  257. package/src/sap/fe/core/messagebundle_uk.properties +58 -7
  258. package/src/sap/fe/core/messagebundle_vi.properties +58 -7
  259. package/src/sap/fe/core/messagebundle_zh_CN.properties +58 -7
  260. package/src/sap/fe/core/messagebundle_zh_TW.properties +58 -7
  261. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +45 -71
  262. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  263. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +231 -202
  264. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
  265. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +67 -92
  266. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +10 -6
  267. package/src/sap/fe/core/services/NavigationServiceFactory.js +351 -300
  268. package/src/sap/fe/core/services/NavigationServiceFactory.ts +313 -0
  269. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +114 -81
  270. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +83 -0
  271. package/src/sap/fe/core/services/RoutingServiceFactory.js +927 -1152
  272. package/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
  273. package/src/sap/fe/core/services/ShellServicesFactory.js +649 -707
  274. package/src/sap/fe/core/services/ShellServicesFactory.ts +52 -15
  275. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +569 -637
  276. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +78 -102
  277. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +429 -478
  278. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +460 -0
  279. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +10 -8
  280. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
  281. package/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
  282. package/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
  283. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
  284. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
  285. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  286. package/src/sap/fe/core/support/CommonHelper.ts +1 -1
  287. package/src/sap/fe/core/support/Diagnostics.js +36 -48
  288. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
  289. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
  290. package/src/sap/fe/core/templating/DataModelPathHelper.js +97 -127
  291. package/src/sap/fe/core/templating/DataModelPathHelper.ts +112 -135
  292. package/src/sap/fe/core/templating/DisplayModeFormatter.js +114 -0
  293. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
  294. package/src/sap/fe/core/templating/FieldControlHelper.js +8 -8
  295. package/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
  296. package/src/sap/fe/core/templating/FilterHelper.js +140 -78
  297. package/src/sap/fe/core/templating/FilterHelper.ts +149 -78
  298. package/src/sap/fe/core/templating/PropertyHelper.js +3 -3
  299. package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
  300. package/src/sap/fe/core/templating/UIFormatters.js +76 -135
  301. package/src/sap/fe/core/templating/UIFormatters.ts +76 -99
  302. package/src/sap/fe/core/type/Email.js +1 -1
  303. package/src/sap/fe/core/type/Email.ts +4 -6
  304. package/ui5.yaml +0 -3
  305. package/src/sap/fe/core/controls/filterbar.d.js +0 -8
  306. package/src/sap/fe/core/controls/filterbar.d.ts +0 -0
@@ -1,120 +1,130 @@
1
1
  /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
+ sap.ui.define([], function () {
6
+ "use strict";
5
7
 
6
- // Provides static functions for the sticky session programming model
7
- sap.ui.define(["sap/fe/core/actions/operations"], function(operations) {
8
- "use strict";
8
+ /**
9
+ * Opens a sticky session to edit a document.
10
+ *
11
+ * @function
12
+ * @name sap.fe.core.actions.sticky#editDocumentInStickySession
13
+ * @memberof sap.fe.core.actions.sticky
14
+ * @static
15
+ * @param {sap.ui.model.odata.v4.Context} oContext Context of the document to be edited
16
+ * @param {AppComponent} oAppComponent The AppComponent
17
+ * @returns {Promise}
18
+ * @private
19
+ * @ui5-restricted
20
+ */
21
+ function editDocumentInStickySession(oContext, oAppComponent) {
22
+ var oModel = oContext.getModel(),
23
+ oMetaModel = oModel.getMetaModel(),
24
+ sMetaPath = oMetaModel.getMetaPath(oContext.getPath()),
25
+ sEditAction = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction");
9
26
 
10
- /**
11
- * Opens a sticky session to edit a document.
12
- *
13
- * @function
14
- * @name sap.fe.core.actions.sticky#editDocumentInStickySession
15
- * @memberof sap.fe.core.actions.sticky
16
- * @static
17
- * @param {sap.ui.model.odata.v4.Context} oContext Context of the document to be edited
18
- * @returns {Promise}
19
- * @private
20
- * @ui5-restricted
21
- */
22
- function editDocumentInStickySession(oContext) {
23
- var oModel = oContext.getModel(),
24
- oMetaModel = oModel.getMetaModel(),
25
- sMetaPath = oMetaModel.getMetaPath(oContext.getPath()),
26
- sEditAction = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction"),
27
- oEditAction,
28
- oEditPromise;
27
+ if (!sEditAction) {
28
+ throw new Error("Edit Action for Sticky Session not found for " + sMetaPath);
29
+ }
29
30
 
30
- if (!sEditAction) {
31
- throw new Error("Edit Action for Sticky Session not found for " + sMetaPath);
32
- }
31
+ var oEditAction = oModel.bindContext(sEditAction + "(...)", oContext, {
32
+ $$inheritExpandSelect: true
33
+ });
34
+ var oEditPromise = oEditAction.execute("direct");
35
+ oModel.submitBatch("direct");
36
+ return oEditPromise.then(function (oNewContext) {
37
+ var _oSideEffects$trigger;
33
38
 
34
- oEditAction = oModel.bindContext(sEditAction + "(...)", oContext, { $$inheritExpandSelect: true });
39
+ var oSideEffects = oAppComponent.getSideEffectsService().getODataActionSideEffects(sEditAction, oNewContext);
35
40
 
36
- oEditPromise = oEditAction.execute("direct");
37
- oModel.submitBatch("direct");
38
- return oEditPromise;
39
- }
41
+ if (oSideEffects !== null && oSideEffects !== void 0 && (_oSideEffects$trigger = oSideEffects.triggerActions) !== null && _oSideEffects$trigger !== void 0 && _oSideEffects$trigger.length) {
42
+ return oAppComponent.getSideEffectsService().requestSideEffectsForODataAction(oSideEffects, oNewContext).then(function () {
43
+ return oNewContext;
44
+ });
45
+ } else {
46
+ return oNewContext;
47
+ }
48
+ });
49
+ }
50
+ /**
51
+ * Activates a document and closes the sticky session.
52
+ *
53
+ * @function
54
+ * @name sap.fe.core.actions.sticky#activateDocument
55
+ * @memberof sap.fe.core.actions.sticky
56
+ * @static
57
+ * @param {sap.ui.model.odata.v4.Context} oContext Context of the document to be activated
58
+ * @returns {Promise}
59
+ * @private
60
+ * @ui5-restricted
61
+ */
40
62
 
41
- /**
42
- * Activates a document and closes sticky session.
43
- *
44
- * @function
45
- * @name sap.fe.core.actions.sticky#activateDocument
46
- * @memberof sap.fe.core.actions.sticky
47
- * @static
48
- * @param {sap.ui.model.odata.v4.Context} oContext Context of the document to be activated
49
- * @returns {Promise}
50
- * @private
51
- * @ui5-restricted
52
- */
53
- function activateDocument(oContext) {
54
- var oModel = oContext.getModel(),
55
- oMetaModel = oModel.getMetaModel(),
56
- sMetaPath = oMetaModel.getMetaPath(oContext.getPath()),
57
- sSaveAction = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/SaveAction"),
58
- oSaveAction,
59
- oSavePromise;
60
63
 
61
- if (!sSaveAction) {
62
- throw new Error("Save Action for Sticky Session not found for " + sMetaPath);
63
- }
64
+ function activateDocument(oContext) {
65
+ var oModel = oContext.getModel(),
66
+ oMetaModel = oModel.getMetaModel(),
67
+ sMetaPath = oMetaModel.getMetaPath(oContext.getPath()),
68
+ sSaveAction = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/SaveAction");
64
69
 
65
- oSaveAction = oModel.bindContext(sSaveAction + "(...)", oContext, { $$inheritExpandSelect: true });
70
+ if (!sSaveAction) {
71
+ throw new Error("Save Action for Sticky Session not found for " + sMetaPath);
72
+ }
66
73
 
67
- oSavePromise = oSaveAction.execute("direct");
68
- oModel.submitBatch("direct");
69
- return oSavePromise;
70
- }
74
+ var oSaveAction = oModel.bindContext(sSaveAction + "(...)", oContext, {
75
+ $$inheritExpandSelect: true
76
+ });
77
+ var oSavePromise = oSaveAction.execute("direct");
78
+ oModel.submitBatch("direct");
79
+ return oSavePromise;
80
+ }
81
+ /**
82
+ * Discards a document and closes sticky session.
83
+ *
84
+ * @function
85
+ * @name sap.fe.core.actions.sticky#discardDocument
86
+ * @memberof sap.fe.core.actions.sticky
87
+ * @static
88
+ * @param {sap.ui.model.odata.v4.Context} oContext Context of the document to be discarded
89
+ * @returns {Promise}
90
+ * @private
91
+ * @ui5-restricted
92
+ */
71
93
 
72
- /**
73
- * Discards a document and closes sticky session.
74
- *
75
- * @function
76
- * @name sap.fe.core.actions.sticky#discardDocument
77
- * @memberof sap.fe.core.actions.sticky
78
- * @static
79
- * @param {sap.ui.model.odata.v4.Context} oContext Context of the document to be discarded
80
- * @returns {Promise}
81
- * @private
82
- * @ui5-restricted
83
- */
84
- function discardDocument(oContext) {
85
- var oModel = oContext.getModel(),
86
- oMetaModel = oModel.getMetaModel(),
87
- sMetaPath = oMetaModel.getMetaPath(oContext.getPath()),
88
- sDiscardAction = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/DiscardAction"),
89
- oDiscardAction,
90
- oDiscardPromise;
91
94
 
92
- if (!sDiscardAction) {
93
- throw new Error("Discard Action for Sticky Session not found for " + sMetaPath);
94
- }
95
+ function discardDocument(oContext) {
96
+ var oModel = oContext.getModel(),
97
+ oMetaModel = oModel.getMetaModel(),
98
+ sMetaPath = oMetaModel.getMetaPath(oContext.getPath()),
99
+ sDiscardAction = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/DiscardAction");
95
100
 
96
- oDiscardAction = oModel.bindContext("/" + sDiscardAction + "(...)");
97
- oDiscardPromise = oDiscardAction.execute("direct").then(function() {
98
- return oContext;
99
- });
100
- oModel.submitBatch("direct");
101
- return oDiscardPromise;
102
- }
101
+ if (!sDiscardAction) {
102
+ throw new Error("Discard Action for Sticky Session not found for " + sMetaPath);
103
+ }
103
104
 
104
- /**
105
- * Static functions for the sticky session programming model
106
- *
107
- * @namespace
108
- * @alias sap.fe.core.actions.sticky
109
- * @private
110
- * @experimental This module is only for experimental use! <br/><b>This is only a POC and maybe deleted</b>
111
- * @since 1.54.0
112
- */
113
- var sticky = {
114
- editDocumentInStickySession: editDocumentInStickySession,
115
- activateDocument: activateDocument,
116
- discardDocument: discardDocument
117
- };
105
+ var oDiscardAction = oModel.bindContext("/" + sDiscardAction + "(...)");
106
+ var oDiscardPromise = oDiscardAction.execute("direct").then(function () {
107
+ return oContext;
108
+ });
109
+ oModel.submitBatch("direct");
110
+ return oDiscardPromise;
111
+ }
112
+ /**
113
+ * Static functions for the sticky session programming model
114
+ *
115
+ * @namespace
116
+ * @alias sap.fe.core.actions.sticky
117
+ * @private
118
+ * @experimental This module is only for experimental use! <br/><b>This is only a POC and maybe deleted</b>
119
+ * @since 1.54.0
120
+ */
118
121
 
119
- return sticky;
120
- });
122
+
123
+ var sticky = {
124
+ editDocumentInStickySession: editDocumentInStickySession,
125
+ activateDocument: activateDocument,
126
+ discardDocument: discardDocument
127
+ };
128
+ return sticky;
129
+ }, false);
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0aWNreS50cyJdLCJuYW1lcyI6WyJlZGl0RG9jdW1lbnRJblN0aWNreVNlc3Npb24iLCJvQ29udGV4dCIsIm9BcHBDb21wb25lbnQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIm9NZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJzTWV0YVBhdGgiLCJnZXRNZXRhUGF0aCIsImdldFBhdGgiLCJzRWRpdEFjdGlvbiIsImdldE9iamVjdCIsIkVycm9yIiwib0VkaXRBY3Rpb24iLCJiaW5kQ29udGV4dCIsIiQkaW5oZXJpdEV4cGFuZFNlbGVjdCIsIm9FZGl0UHJvbWlzZSIsImV4ZWN1dGUiLCJzdWJtaXRCYXRjaCIsInRoZW4iLCJvTmV3Q29udGV4dCIsIm9TaWRlRWZmZWN0cyIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsImdldE9EYXRhQWN0aW9uU2lkZUVmZmVjdHMiLCJ0cmlnZ2VyQWN0aW9ucyIsImxlbmd0aCIsInJlcXVlc3RTaWRlRWZmZWN0c0Zvck9EYXRhQWN0aW9uIiwiYWN0aXZhdGVEb2N1bWVudCIsInNTYXZlQWN0aW9uIiwib1NhdmVBY3Rpb24iLCJvU2F2ZVByb21pc2UiLCJkaXNjYXJkRG9jdW1lbnQiLCJzRGlzY2FyZEFjdGlvbiIsIm9EaXNjYXJkQWN0aW9uIiwib0Rpc2NhcmRQcm9taXNlIiwic3RpY2t5Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFTQSwyQkFBVCxDQUFxQ0MsUUFBckMsRUFBd0RDLGFBQXhELEVBQXFGO0FBQ3BGLFFBQU1DLE1BQU0sR0FBR0YsUUFBUSxDQUFDRyxRQUFULEVBQWY7QUFBQSxRQUNDQyxVQUFVLEdBQUdGLE1BQU0sQ0FBQ0csWUFBUCxFQURkO0FBQUEsUUFFQ0MsU0FBUyxHQUFHRixVQUFVLENBQUNHLFdBQVgsQ0FBdUJQLFFBQVEsQ0FBQ1EsT0FBVCxFQUF2QixDQUZiO0FBQUEsUUFHQ0MsV0FBVyxHQUFHTCxVQUFVLENBQUNNLFNBQVgsQ0FBcUJKLFNBQVMsR0FBRyxvRUFBakMsQ0FIZjs7QUFLQSxRQUFJLENBQUNHLFdBQUwsRUFBa0I7QUFDakIsWUFBTSxJQUFJRSxLQUFKLENBQVUsa0RBQWtETCxTQUE1RCxDQUFOO0FBQ0E7O0FBRUQsUUFBTU0sV0FBVyxHQUFHVixNQUFNLENBQUNXLFdBQVAsQ0FBbUJKLFdBQVcsR0FBRyxPQUFqQyxFQUEwQ1QsUUFBMUMsRUFBb0Q7QUFBRWMsTUFBQUEscUJBQXFCLEVBQUU7QUFBekIsS0FBcEQsQ0FBcEI7QUFFQSxRQUFNQyxZQUFZLEdBQUdILFdBQVcsQ0FBQ0ksT0FBWixDQUFvQixRQUFwQixDQUFyQjtBQUNBZCxJQUFBQSxNQUFNLENBQUNlLFdBQVAsQ0FBbUIsUUFBbkI7QUFDQSxXQUFPRixZQUFZLENBQUNHLElBQWIsQ0FBa0IsVUFBQ0MsV0FBRCxFQUEwQjtBQUFBOztBQUNsRCxVQUFNQyxZQUFZLEdBQUduQixhQUFhLENBQUNvQixxQkFBZCxHQUFzQ0MseUJBQXRDLENBQWdFYixXQUFoRSxFQUE2RVUsV0FBN0UsQ0FBckI7O0FBQ0EsVUFBSUMsWUFBSixhQUFJQSxZQUFKLHdDQUFJQSxZQUFZLENBQUVHLGNBQWxCLGtEQUFJLHNCQUE4QkMsTUFBbEMsRUFBMEM7QUFDekMsZUFBT3ZCLGFBQWEsQ0FDbEJvQixxQkFESyxHQUVMSSxnQ0FGSyxDQUU0QkwsWUFGNUIsRUFFMENELFdBRjFDLEVBR0xELElBSEssQ0FHQSxZQUFNO0FBQ1gsaUJBQU9DLFdBQVA7QUFDQSxTQUxLLENBQVA7QUFNQSxPQVBELE1BT087QUFDTixlQUFPQSxXQUFQO0FBQ0E7QUFDRCxLQVpNLENBQVA7QUFhQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsV0FBU08sZ0JBQVQsQ0FBMEIxQixRQUExQixFQUF5QztBQUN4QyxRQUFNRSxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0csUUFBVCxFQUFmO0FBQUEsUUFDQ0MsVUFBVSxHQUFHRixNQUFNLENBQUNHLFlBQVAsRUFEZDtBQUFBLFFBRUNDLFNBQVMsR0FBR0YsVUFBVSxDQUFDRyxXQUFYLENBQXVCUCxRQUFRLENBQUNRLE9BQVQsRUFBdkIsQ0FGYjtBQUFBLFFBR0NtQixXQUFXLEdBQUd2QixVQUFVLENBQUNNLFNBQVgsQ0FBcUJKLFNBQVMsR0FBRyxvRUFBakMsQ0FIZjs7QUFLQSxRQUFJLENBQUNxQixXQUFMLEVBQWtCO0FBQ2pCLFlBQU0sSUFBSWhCLEtBQUosQ0FBVSxrREFBa0RMLFNBQTVELENBQU47QUFDQTs7QUFFRCxRQUFNc0IsV0FBVyxHQUFHMUIsTUFBTSxDQUFDVyxXQUFQLENBQW1CYyxXQUFXLEdBQUcsT0FBakMsRUFBMEMzQixRQUExQyxFQUFvRDtBQUFFYyxNQUFBQSxxQkFBcUIsRUFBRTtBQUF6QixLQUFwRCxDQUFwQjtBQUVBLFFBQU1lLFlBQVksR0FBR0QsV0FBVyxDQUFDWixPQUFaLENBQW9CLFFBQXBCLENBQXJCO0FBQ0FkLElBQUFBLE1BQU0sQ0FBQ2UsV0FBUCxDQUFtQixRQUFuQjtBQUNBLFdBQU9ZLFlBQVA7QUFDQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsV0FBU0MsZUFBVCxDQUF5QjlCLFFBQXpCLEVBQXdDO0FBQ3ZDLFFBQU1FLE1BQU0sR0FBR0YsUUFBUSxDQUFDRyxRQUFULEVBQWY7QUFBQSxRQUNDQyxVQUFVLEdBQUdGLE1BQU0sQ0FBQ0csWUFBUCxFQURkO0FBQUEsUUFFQ0MsU0FBUyxHQUFHRixVQUFVLENBQUNHLFdBQVgsQ0FBdUJQLFFBQVEsQ0FBQ1EsT0FBVCxFQUF2QixDQUZiO0FBQUEsUUFHQ3VCLGNBQWMsR0FBRzNCLFVBQVUsQ0FBQ00sU0FBWCxDQUFxQkosU0FBUyxHQUFHLHVFQUFqQyxDQUhsQjs7QUFLQSxRQUFJLENBQUN5QixjQUFMLEVBQXFCO0FBQ3BCLFlBQU0sSUFBSXBCLEtBQUosQ0FBVSxxREFBcURMLFNBQS9ELENBQU47QUFDQTs7QUFFRCxRQUFNMEIsY0FBYyxHQUFHOUIsTUFBTSxDQUFDVyxXQUFQLENBQW1CLE1BQU1rQixjQUFOLEdBQXVCLE9BQTFDLENBQXZCO0FBQ0EsUUFBTUUsZUFBZSxHQUFHRCxjQUFjLENBQUNoQixPQUFmLENBQXVCLFFBQXZCLEVBQWlDRSxJQUFqQyxDQUFzQyxZQUFXO0FBQ3hFLGFBQU9sQixRQUFQO0FBQ0EsS0FGdUIsQ0FBeEI7QUFHQUUsSUFBQUEsTUFBTSxDQUFDZSxXQUFQLENBQW1CLFFBQW5CO0FBQ0EsV0FBT2dCLGVBQVA7QUFDQTtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsTUFBTUMsTUFBTSxHQUFHO0FBQ2RuQyxJQUFBQSwyQkFBMkIsRUFBRUEsMkJBRGY7QUFFZDJCLElBQUFBLGdCQUFnQixFQUFFQSxnQkFGSjtBQUdkSSxJQUFBQSxlQUFlLEVBQUVBO0FBSEgsR0FBZjtTQU1lSSxNIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5cbi8qKlxuICogT3BlbnMgYSBzdGlja3kgc2Vzc2lvbiB0byBlZGl0IGEgZG9jdW1lbnQuXG4gKlxuICogQGZ1bmN0aW9uXG4gKiBAbmFtZSBzYXAuZmUuY29yZS5hY3Rpb25zLnN0aWNreSNlZGl0RG9jdW1lbnRJblN0aWNreVNlc3Npb25cbiAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5hY3Rpb25zLnN0aWNreVxuICogQHN0YXRpY1xuICogQHBhcmFtIHtzYXAudWkubW9kZWwub2RhdGEudjQuQ29udGV4dH0gb0NvbnRleHQgQ29udGV4dCBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgZWRpdGVkXG4gKiBAcGFyYW0ge0FwcENvbXBvbmVudH0gb0FwcENvbXBvbmVudCBUaGUgQXBwQ29tcG9uZW50XG4gKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAqIEBwcml2YXRlXG4gKiBAdWk1LXJlc3RyaWN0ZWRcbiAqL1xuZnVuY3Rpb24gZWRpdERvY3VtZW50SW5TdGlja3lTZXNzaW9uKG9Db250ZXh0OiBDb250ZXh0LCBvQXBwQ29tcG9uZW50OiBBcHBDb21wb25lbnQpIHtcblx0Y29uc3Qgb01vZGVsID0gb0NvbnRleHQuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsLFxuXHRcdG9NZXRhTW9kZWwgPSBvTW9kZWwuZ2V0TWV0YU1vZGVsKCksXG5cdFx0c01ldGFQYXRoID0gb01ldGFNb2RlbC5nZXRNZXRhUGF0aChvQ29udGV4dC5nZXRQYXRoKCkpLFxuXHRcdHNFZGl0QWN0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3Qoc01ldGFQYXRoICsgXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuU2Vzc2lvbi52MS5TdGlja3lTZXNzaW9uU3VwcG9ydGVkL0VkaXRBY3Rpb25cIik7XG5cblx0aWYgKCFzRWRpdEFjdGlvbikge1xuXHRcdHRocm93IG5ldyBFcnJvcihcIkVkaXQgQWN0aW9uIGZvciBTdGlja3kgU2Vzc2lvbiBub3QgZm91bmQgZm9yIFwiICsgc01ldGFQYXRoKTtcblx0fVxuXG5cdGNvbnN0IG9FZGl0QWN0aW9uID0gb01vZGVsLmJpbmRDb250ZXh0KHNFZGl0QWN0aW9uICsgXCIoLi4uKVwiLCBvQ29udGV4dCwgeyAkJGluaGVyaXRFeHBhbmRTZWxlY3Q6IHRydWUgfSk7XG5cblx0Y29uc3Qgb0VkaXRQcm9taXNlID0gb0VkaXRBY3Rpb24uZXhlY3V0ZShcImRpcmVjdFwiKTtcblx0b01vZGVsLnN1Ym1pdEJhdGNoKFwiZGlyZWN0XCIpO1xuXHRyZXR1cm4gb0VkaXRQcm9taXNlLnRoZW4oKG9OZXdDb250ZXh0OiBDb250ZXh0KSA9PiB7XG5cdFx0Y29uc3Qgb1NpZGVFZmZlY3RzID0gb0FwcENvbXBvbmVudC5nZXRTaWRlRWZmZWN0c1NlcnZpY2UoKS5nZXRPRGF0YUFjdGlvblNpZGVFZmZlY3RzKHNFZGl0QWN0aW9uLCBvTmV3Q29udGV4dCk7XG5cdFx0aWYgKG9TaWRlRWZmZWN0cz8udHJpZ2dlckFjdGlvbnM/Lmxlbmd0aCkge1xuXHRcdFx0cmV0dXJuIG9BcHBDb21wb25lbnRcblx0XHRcdFx0LmdldFNpZGVFZmZlY3RzU2VydmljZSgpXG5cdFx0XHRcdC5yZXF1ZXN0U2lkZUVmZmVjdHNGb3JPRGF0YUFjdGlvbihvU2lkZUVmZmVjdHMsIG9OZXdDb250ZXh0KVxuXHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIG9OZXdDb250ZXh0O1xuXHRcdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIG9OZXdDb250ZXh0O1xuXHRcdH1cblx0fSk7XG59XG4vKipcbiAqIEFjdGl2YXRlcyBhIGRvY3VtZW50IGFuZCBjbG9zZXMgdGhlIHN0aWNreSBzZXNzaW9uLlxuICpcbiAqIEBmdW5jdGlvblxuICogQG5hbWUgc2FwLmZlLmNvcmUuYWN0aW9ucy5zdGlja3kjYWN0aXZhdGVEb2N1bWVudFxuICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLmFjdGlvbnMuc3RpY2t5XG4gKiBAc3RhdGljXG4gKiBAcGFyYW0ge3NhcC51aS5tb2RlbC5vZGF0YS52NC5Db250ZXh0fSBvQ29udGV4dCBDb250ZXh0IG9mIHRoZSBkb2N1bWVudCB0byBiZSBhY3RpdmF0ZWRcbiAqIEByZXR1cm5zIHtQcm9taXNlfVxuICogQHByaXZhdGVcbiAqIEB1aTUtcmVzdHJpY3RlZFxuICovXG5mdW5jdGlvbiBhY3RpdmF0ZURvY3VtZW50KG9Db250ZXh0OiBhbnkpIHtcblx0Y29uc3Qgb01vZGVsID0gb0NvbnRleHQuZ2V0TW9kZWwoKSxcblx0XHRvTWV0YU1vZGVsID0gb01vZGVsLmdldE1ldGFNb2RlbCgpLFxuXHRcdHNNZXRhUGF0aCA9IG9NZXRhTW9kZWwuZ2V0TWV0YVBhdGgob0NvbnRleHQuZ2V0UGF0aCgpKSxcblx0XHRzU2F2ZUFjdGlvbiA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KHNNZXRhUGF0aCArIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlNlc3Npb24udjEuU3RpY2t5U2Vzc2lvblN1cHBvcnRlZC9TYXZlQWN0aW9uXCIpO1xuXG5cdGlmICghc1NhdmVBY3Rpb24pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJTYXZlIEFjdGlvbiBmb3IgU3RpY2t5IFNlc3Npb24gbm90IGZvdW5kIGZvciBcIiArIHNNZXRhUGF0aCk7XG5cdH1cblxuXHRjb25zdCBvU2F2ZUFjdGlvbiA9IG9Nb2RlbC5iaW5kQ29udGV4dChzU2F2ZUFjdGlvbiArIFwiKC4uLilcIiwgb0NvbnRleHQsIHsgJCRpbmhlcml0RXhwYW5kU2VsZWN0OiB0cnVlIH0pO1xuXG5cdGNvbnN0IG9TYXZlUHJvbWlzZSA9IG9TYXZlQWN0aW9uLmV4ZWN1dGUoXCJkaXJlY3RcIik7XG5cdG9Nb2RlbC5zdWJtaXRCYXRjaChcImRpcmVjdFwiKTtcblx0cmV0dXJuIG9TYXZlUHJvbWlzZTtcbn1cbi8qKlxuICogRGlzY2FyZHMgYSBkb2N1bWVudCBhbmQgY2xvc2VzIHN0aWNreSBzZXNzaW9uLlxuICpcbiAqIEBmdW5jdGlvblxuICogQG5hbWUgc2FwLmZlLmNvcmUuYWN0aW9ucy5zdGlja3kjZGlzY2FyZERvY3VtZW50XG4gKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuYWN0aW9ucy5zdGlja3lcbiAqIEBzdGF0aWNcbiAqIEBwYXJhbSB7c2FwLnVpLm1vZGVsLm9kYXRhLnY0LkNvbnRleHR9IG9Db250ZXh0IENvbnRleHQgb2YgdGhlIGRvY3VtZW50IHRvIGJlIGRpc2NhcmRlZFxuICogQHJldHVybnMge1Byb21pc2V9XG4gKiBAcHJpdmF0ZVxuICogQHVpNS1yZXN0cmljdGVkXG4gKi9cbmZ1bmN0aW9uIGRpc2NhcmREb2N1bWVudChvQ29udGV4dDogYW55KSB7XG5cdGNvbnN0IG9Nb2RlbCA9IG9Db250ZXh0LmdldE1vZGVsKCksXG5cdFx0b01ldGFNb2RlbCA9IG9Nb2RlbC5nZXRNZXRhTW9kZWwoKSxcblx0XHRzTWV0YVBhdGggPSBvTWV0YU1vZGVsLmdldE1ldGFQYXRoKG9Db250ZXh0LmdldFBhdGgoKSksXG5cdFx0c0Rpc2NhcmRBY3Rpb24gPSBvTWV0YU1vZGVsLmdldE9iamVjdChzTWV0YVBhdGggKyBcIkBjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxLlN0aWNreVNlc3Npb25TdXBwb3J0ZWQvRGlzY2FyZEFjdGlvblwiKTtcblxuXHRpZiAoIXNEaXNjYXJkQWN0aW9uKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiRGlzY2FyZCBBY3Rpb24gZm9yIFN0aWNreSBTZXNzaW9uIG5vdCBmb3VuZCBmb3IgXCIgKyBzTWV0YVBhdGgpO1xuXHR9XG5cblx0Y29uc3Qgb0Rpc2NhcmRBY3Rpb24gPSBvTW9kZWwuYmluZENvbnRleHQoXCIvXCIgKyBzRGlzY2FyZEFjdGlvbiArIFwiKC4uLilcIik7XG5cdGNvbnN0IG9EaXNjYXJkUHJvbWlzZSA9IG9EaXNjYXJkQWN0aW9uLmV4ZWN1dGUoXCJkaXJlY3RcIikudGhlbihmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gb0NvbnRleHQ7XG5cdH0pO1xuXHRvTW9kZWwuc3VibWl0QmF0Y2goXCJkaXJlY3RcIik7XG5cdHJldHVybiBvRGlzY2FyZFByb21pc2U7XG59XG5cbi8qKlxuICogU3RhdGljIGZ1bmN0aW9ucyBmb3IgdGhlIHN0aWNreSBzZXNzaW9uIHByb2dyYW1taW5nIG1vZGVsXG4gKlxuICogQG5hbWVzcGFjZVxuICogQGFsaWFzIHNhcC5mZS5jb3JlLmFjdGlvbnMuc3RpY2t5XG4gKiBAcHJpdmF0ZVxuICogQGV4cGVyaW1lbnRhbCBUaGlzIG1vZHVsZSBpcyBvbmx5IGZvciBleHBlcmltZW50YWwgdXNlISA8YnIvPjxiPlRoaXMgaXMgb25seSBhIFBPQyBhbmQgbWF5YmUgZGVsZXRlZDwvYj5cbiAqIEBzaW5jZSAxLjU0LjBcbiAqL1xuY29uc3Qgc3RpY2t5ID0ge1xuXHRlZGl0RG9jdW1lbnRJblN0aWNreVNlc3Npb246IGVkaXREb2N1bWVudEluU3RpY2t5U2Vzc2lvbixcblx0YWN0aXZhdGVEb2N1bWVudDogYWN0aXZhdGVEb2N1bWVudCxcblx0ZGlzY2FyZERvY3VtZW50OiBkaXNjYXJkRG9jdW1lbnRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHN0aWNreTtcbiJdfQ==
@@ -0,0 +1,119 @@
1
+ import Context from "sap/ui/model/odata/v4/Context";
2
+ import ODataModel from "sap/ui/model/odata/v4/ODataModel";
3
+ import AppComponent from "sap/fe/core/AppComponent";
4
+
5
+ /**
6
+ * Opens a sticky session to edit a document.
7
+ *
8
+ * @function
9
+ * @name sap.fe.core.actions.sticky#editDocumentInStickySession
10
+ * @memberof sap.fe.core.actions.sticky
11
+ * @static
12
+ * @param {sap.ui.model.odata.v4.Context} oContext Context of the document to be edited
13
+ * @param {AppComponent} oAppComponent The AppComponent
14
+ * @returns {Promise}
15
+ * @private
16
+ * @ui5-restricted
17
+ */
18
+ function editDocumentInStickySession(oContext: Context, oAppComponent: AppComponent) {
19
+ const oModel = oContext.getModel() as ODataModel,
20
+ oMetaModel = oModel.getMetaModel(),
21
+ sMetaPath = oMetaModel.getMetaPath(oContext.getPath()),
22
+ sEditAction = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/EditAction");
23
+
24
+ if (!sEditAction) {
25
+ throw new Error("Edit Action for Sticky Session not found for " + sMetaPath);
26
+ }
27
+
28
+ const oEditAction = oModel.bindContext(sEditAction + "(...)", oContext, { $$inheritExpandSelect: true });
29
+
30
+ const oEditPromise = oEditAction.execute("direct");
31
+ oModel.submitBatch("direct");
32
+ return oEditPromise.then((oNewContext: Context) => {
33
+ const oSideEffects = oAppComponent.getSideEffectsService().getODataActionSideEffects(sEditAction, oNewContext);
34
+ if (oSideEffects?.triggerActions?.length) {
35
+ return oAppComponent
36
+ .getSideEffectsService()
37
+ .requestSideEffectsForODataAction(oSideEffects, oNewContext)
38
+ .then(() => {
39
+ return oNewContext;
40
+ });
41
+ } else {
42
+ return oNewContext;
43
+ }
44
+ });
45
+ }
46
+ /**
47
+ * Activates a document and closes the sticky session.
48
+ *
49
+ * @function
50
+ * @name sap.fe.core.actions.sticky#activateDocument
51
+ * @memberof sap.fe.core.actions.sticky
52
+ * @static
53
+ * @param {sap.ui.model.odata.v4.Context} oContext Context of the document to be activated
54
+ * @returns {Promise}
55
+ * @private
56
+ * @ui5-restricted
57
+ */
58
+ function activateDocument(oContext: any) {
59
+ const oModel = oContext.getModel(),
60
+ oMetaModel = oModel.getMetaModel(),
61
+ sMetaPath = oMetaModel.getMetaPath(oContext.getPath()),
62
+ sSaveAction = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/SaveAction");
63
+
64
+ if (!sSaveAction) {
65
+ throw new Error("Save Action for Sticky Session not found for " + sMetaPath);
66
+ }
67
+
68
+ const oSaveAction = oModel.bindContext(sSaveAction + "(...)", oContext, { $$inheritExpandSelect: true });
69
+
70
+ const oSavePromise = oSaveAction.execute("direct");
71
+ oModel.submitBatch("direct");
72
+ return oSavePromise;
73
+ }
74
+ /**
75
+ * Discards a document and closes sticky session.
76
+ *
77
+ * @function
78
+ * @name sap.fe.core.actions.sticky#discardDocument
79
+ * @memberof sap.fe.core.actions.sticky
80
+ * @static
81
+ * @param {sap.ui.model.odata.v4.Context} oContext Context of the document to be discarded
82
+ * @returns {Promise}
83
+ * @private
84
+ * @ui5-restricted
85
+ */
86
+ function discardDocument(oContext: any) {
87
+ const oModel = oContext.getModel(),
88
+ oMetaModel = oModel.getMetaModel(),
89
+ sMetaPath = oMetaModel.getMetaPath(oContext.getPath()),
90
+ sDiscardAction = oMetaModel.getObject(sMetaPath + "@com.sap.vocabularies.Session.v1.StickySessionSupported/DiscardAction");
91
+
92
+ if (!sDiscardAction) {
93
+ throw new Error("Discard Action for Sticky Session not found for " + sMetaPath);
94
+ }
95
+
96
+ const oDiscardAction = oModel.bindContext("/" + sDiscardAction + "(...)");
97
+ const oDiscardPromise = oDiscardAction.execute("direct").then(function() {
98
+ return oContext;
99
+ });
100
+ oModel.submitBatch("direct");
101
+ return oDiscardPromise;
102
+ }
103
+
104
+ /**
105
+ * Static functions for the sticky session programming model
106
+ *
107
+ * @namespace
108
+ * @alias sap.fe.core.actions.sticky
109
+ * @private
110
+ * @experimental This module is only for experimental use! <br/><b>This is only a POC and maybe deleted</b>
111
+ * @since 1.54.0
112
+ */
113
+ const sticky = {
114
+ editDocumentInStickySession: editDocumentInStickySession,
115
+ activateDocument: activateDocument,
116
+ discardDocument: discardDocument
117
+ };
118
+
119
+ export default sticky;
@@ -1,74 +1,78 @@
1
1
  /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
+ sap.ui.define(["sap/ui/base/Metadata", "sap/base/util/merge", "sap/ui/core/mvc/ControllerMetadata"], function (Metadata, merge, ControllerMetadata) {
6
+ "use strict";
5
7
 
6
- // Provides ControllerMetadata
7
- sap.ui.define(["sap/ui/base/Metadata", "sap/base/util/merge", "sap/ui/core/mvc/ControllerMetadata"], function(
8
- Metadata,
9
- merge,
10
- ControllerMetadata
11
- ) {
12
- "use strict";
8
+ /**
9
+ * Dedicated metadata for the FE controller extensions.
10
+ *
11
+ * @alias sap.fe.core.controllerextensions.ControllerExtensionMetadata
12
+ * @extends sap.ui.core.mvc.ControllerMetadata
13
+ * @param this
14
+ * @param {string} sClassName The target class name
15
+ * @param {object} oClassInfo The content of the class definition
16
+ * @param {any[]} rest
17
+ * @private
18
+ */
19
+ var ControllerExtensionMetadata = function (sClassName, oClassInfo) {
20
+ for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
21
+ rest[_key - 2] = arguments[_key];
22
+ }
13
23
 
14
- /**
15
- * Dedicated metadata for the FE controller extensions.
16
- *
17
- * @alias sap.fe.core.controllerextensions.ControllerExtensionMetadata
18
- * @extends sap.ui.core.mvc.ControllerMetadata
19
- * @param {string} sClassName The target class name
20
- * @param {object} oClassInfo The content of the class definition
21
- * @private
22
- */
23
- var ControllerExtensionMetadata = function(sClassName, oClassInfo) {
24
- // call super constructor
25
- ControllerMetadata.apply(this, arguments);
24
+ // call super constructor
25
+ ControllerMetadata.apply(this, [sClassName, oClassInfo].concat(rest)); // propagate static functions to subclasses of ControllerExtension
26
26
 
27
- // propagate static functions to subclasses of ControllerExtension
28
- if (this.isA("sap.ui.core.mvc.ControllerExtension") && this.getParent().getClass().override) {
29
- this.getClass().override = this.getParent().getClass().override;
30
- }
31
- };
27
+ if (this.isA("sap.ui.core.mvc.ControllerExtension") && this.getParent().getClass().override) {
28
+ this.getClass().override = this.getParent().getClass().override;
29
+ }
30
+ }; // chain the prototypes
32
31
 
33
- // chain the prototypes
34
- ControllerExtensionMetadata.prototype = Object.create(ControllerMetadata.prototype);
35
- ControllerExtensionMetadata.prototype.constructor = ControllerExtensionMetadata;
36
- /**
37
- * Called after new settings have been applied.
38
- *
39
- * Typically, this method is used to do some cleanup (e.g. uniqueness)
40
- * or to calculate an optimized version of some data.
41
- *
42
- * @private
43
- */
44
- ControllerExtensionMetadata.prototype.afterApplySettings = function() {
45
- Metadata.prototype.afterApplySettings.call(this);
46
- if (this._oParent) {
47
- var mParentMethods = this._oParent._mMethods ? this._oParent._mMethods : {};
48
- //allow change of visibility but not the other attributes
49
- for (var sMethod in mParentMethods) {
50
- if (this._mMethods[sMethod]) {
51
- var bPublic = this._mMethods[sMethod].public;
52
- //copy parent method definition as final/overrideExecution should not be overridden
53
- this._mMethods[sMethod] = merge({}, mParentMethods[sMethod]);
54
- if (bPublic !== undefined) {
55
- this._mMethods[sMethod].public = bPublic;
56
- }
57
- if (!this.isMethodPublic(sMethod) && this._mMethods[sMethod].public !== mParentMethods[sMethod].public) {
58
- //if visibility changed to private delete from public methods
59
- this._aAllPublicMethods.splice(this._aAllPublicMethods.indexOf(sMethod), 1);
60
- }
61
- } else {
62
- this._mMethods[sMethod] = mParentMethods[sMethod];
63
- }
64
- }
65
- }
66
32
 
67
- //flag each extension as final (but not the class ControllerExtension itself)
68
- if (this._oParent && this._oParent.isA("sap.ui.core.mvc.ControllerExtension")) {
69
- this._bFinal = true;
70
- }
71
- };
33
+ ControllerExtensionMetadata.prototype = Object.create(ControllerMetadata.prototype);
34
+ ControllerExtensionMetadata.prototype.constructor = ControllerExtensionMetadata;
35
+ /**
36
+ * Called after new settings have been applied.
37
+ *
38
+ * Typically, this method is used to do some cleanup (e.g. uniqueness)
39
+ * or to calculate an optimized version of some data.
40
+ *
41
+ * @private
42
+ */
72
43
 
73
- return ControllerExtensionMetadata;
74
- });
44
+ ControllerExtensionMetadata.prototype.afterApplySettings = function () {
45
+ Metadata.prototype.afterApplySettings.call(this);
46
+
47
+ if (this._oParent) {
48
+ var mParentMethods = this._oParent._mMethods ? this._oParent._mMethods : {}; //allow change of visibility but not the other attributes
49
+
50
+ for (var sMethod in mParentMethods) {
51
+ if (this._mMethods[sMethod]) {
52
+ var bPublic = this._mMethods[sMethod].public; //copy parent method definition as final/overrideExecution should not be overridden
53
+
54
+ this._mMethods[sMethod] = merge({}, mParentMethods[sMethod]);
55
+
56
+ if (bPublic !== undefined) {
57
+ this._mMethods[sMethod].public = bPublic;
58
+ }
59
+
60
+ if (!this.isMethodPublic(sMethod) && this._mMethods[sMethod].public !== mParentMethods[sMethod].public) {
61
+ //if visibility changed to private delete from public methods
62
+ this._aAllPublicMethods.splice(this._aAllPublicMethods.indexOf(sMethod), 1);
63
+ }
64
+ } else {
65
+ this._mMethods[sMethod] = mParentMethods[sMethod];
66
+ }
67
+ }
68
+ } //flag each extension as final (but not the class ControllerExtension itself)
69
+
70
+
71
+ if (this._oParent && this._oParent.isA("sap.ui.core.mvc.ControllerExtension")) {
72
+ this._bFinal = true;
73
+ }
74
+ };
75
+
76
+ return ControllerExtensionMetadata;
77
+ }, false);
78
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbnRyb2xsZXJFeHRlbnNpb25NZXRhZGF0YS50cyJdLCJuYW1lcyI6WyJDb250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGEiLCJzQ2xhc3NOYW1lIiwib0NsYXNzSW5mbyIsInJlc3QiLCJDb250cm9sbGVyTWV0YWRhdGEiLCJhcHBseSIsImlzQSIsImdldFBhcmVudCIsImdldENsYXNzIiwib3ZlcnJpZGUiLCJwcm90b3R5cGUiLCJPYmplY3QiLCJjcmVhdGUiLCJjb25zdHJ1Y3RvciIsImFmdGVyQXBwbHlTZXR0aW5ncyIsIk1ldGFkYXRhIiwiY2FsbCIsIl9vUGFyZW50IiwibVBhcmVudE1ldGhvZHMiLCJfbU1ldGhvZHMiLCJzTWV0aG9kIiwiYlB1YmxpYyIsInB1YmxpYyIsIm1lcmdlIiwidW5kZWZpbmVkIiwiaXNNZXRob2RQdWJsaWMiLCJfYUFsbFB1YmxpY01ldGhvZHMiLCJzcGxpY2UiLCJpbmRleE9mIiwiX2JGaW5hbCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSwyQkFBMkIsR0FBRyxVQUFvQkMsVUFBcEIsRUFBd0NDLFVBQXhDLEVBQTRFO0FBQUEsc0NBQWJDLElBQWE7QUFBYkEsTUFBQUEsSUFBYTtBQUFBOztBQUMvRztBQUNBQyxJQUFBQSxrQkFBa0IsQ0FBQ0MsS0FBbkIsQ0FBeUIsSUFBekIsR0FBZ0NKLFVBQWhDLEVBQTRDQyxVQUE1QyxTQUEyREMsSUFBM0QsR0FGK0csQ0FJL0c7O0FBQ0EsUUFBSSxLQUFLRyxHQUFMLENBQVMscUNBQVQsS0FBbUQsS0FBS0MsU0FBTCxHQUFpQkMsUUFBakIsR0FBNEJDLFFBQW5GLEVBQTZGO0FBQzVGLFdBQUtELFFBQUwsR0FBZ0JDLFFBQWhCLEdBQTJCLEtBQUtGLFNBQUwsR0FBaUJDLFFBQWpCLEdBQTRCQyxRQUF2RDtBQUNBO0FBQ0QsR0FSRCxDLENBU0E7OztBQUNBVCxFQUFBQSwyQkFBMkIsQ0FBQ1UsU0FBNUIsR0FBd0NDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjUixrQkFBa0IsQ0FBQ00sU0FBakMsQ0FBeEM7QUFDQVYsRUFBQUEsMkJBQTJCLENBQUNVLFNBQTVCLENBQXNDRyxXQUF0QyxHQUFvRGIsMkJBQXBEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQUEsRUFBQUEsMkJBQTJCLENBQUNVLFNBQTVCLENBQXNDSSxrQkFBdEMsR0FBMkQsWUFBVztBQUNwRUMsSUFBQUEsUUFBUSxDQUFDTCxTQUFWLENBQTRCSSxrQkFBNUIsQ0FBK0NFLElBQS9DLENBQW9ELElBQXBEOztBQUNBLFFBQUksS0FBS0MsUUFBVCxFQUFtQjtBQUNsQixVQUFNQyxjQUFjLEdBQUcsS0FBS0QsUUFBTCxDQUFjRSxTQUFkLEdBQTBCLEtBQUtGLFFBQUwsQ0FBY0UsU0FBeEMsR0FBb0QsRUFBM0UsQ0FEa0IsQ0FFbEI7O0FBQ0EsV0FBSyxJQUFNQyxPQUFYLElBQXNCRixjQUF0QixFQUFzQztBQUNyQyxZQUFJLEtBQUtDLFNBQUwsQ0FBZUMsT0FBZixDQUFKLEVBQTZCO0FBQzVCLGNBQU1DLE9BQU8sR0FBRyxLQUFLRixTQUFMLENBQWVDLE9BQWYsRUFBd0JFLE1BQXhDLENBRDRCLENBRTVCOztBQUNBLGVBQUtILFNBQUwsQ0FBZUMsT0FBZixJQUEwQkcsS0FBSyxDQUFDLEVBQUQsRUFBS0wsY0FBYyxDQUFDRSxPQUFELENBQW5CLENBQS9COztBQUNBLGNBQUlDLE9BQU8sS0FBS0csU0FBaEIsRUFBMkI7QUFDMUIsaUJBQUtMLFNBQUwsQ0FBZUMsT0FBZixFQUF3QkUsTUFBeEIsR0FBaUNELE9BQWpDO0FBQ0E7O0FBQ0QsY0FBSSxDQUFDLEtBQUtJLGNBQUwsQ0FBb0JMLE9BQXBCLENBQUQsSUFBaUMsS0FBS0QsU0FBTCxDQUFlQyxPQUFmLEVBQXdCRSxNQUF4QixLQUFtQ0osY0FBYyxDQUFDRSxPQUFELENBQWQsQ0FBd0JFLE1BQWhHLEVBQXdHO0FBQ3ZHO0FBQ0EsaUJBQUtJLGtCQUFMLENBQXdCQyxNQUF4QixDQUErQixLQUFLRCxrQkFBTCxDQUF3QkUsT0FBeEIsQ0FBZ0NSLE9BQWhDLENBQS9CLEVBQXlFLENBQXpFO0FBQ0E7QUFDRCxTQVhELE1BV087QUFDTixlQUFLRCxTQUFMLENBQWVDLE9BQWYsSUFBMEJGLGNBQWMsQ0FBQ0UsT0FBRCxDQUF4QztBQUNBO0FBQ0Q7QUFDRCxLQXJCb0UsQ0F1QnJFOzs7QUFDQSxRQUFJLEtBQUtILFFBQUwsSUFBaUIsS0FBS0EsUUFBTCxDQUFjWCxHQUFkLENBQWtCLHFDQUFsQixDQUFyQixFQUErRTtBQUM5RSxXQUFLdUIsT0FBTCxHQUFlLElBQWY7QUFDQTtBQUNELEdBM0JEOztTQTZCZTdCLDJCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWV0YWRhdGEgZnJvbSBcInNhcC91aS9iYXNlL01ldGFkYXRhXCI7XG5pbXBvcnQgbWVyZ2UgZnJvbSBcInNhcC9iYXNlL3V0aWwvbWVyZ2VcIjtcbmltcG9ydCBDb250cm9sbGVyTWV0YWRhdGEgZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyTWV0YWRhdGFcIjtcblxuLyoqXG4gKiBEZWRpY2F0ZWQgbWV0YWRhdGEgZm9yIHRoZSBGRSBjb250cm9sbGVyIGV4dGVuc2lvbnMuXG4gKlxuICogQGFsaWFzIHNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLkNvbnRyb2xsZXJFeHRlbnNpb25NZXRhZGF0YVxuICogQGV4dGVuZHMgc2FwLnVpLmNvcmUubXZjLkNvbnRyb2xsZXJNZXRhZGF0YVxuICogQHBhcmFtIHRoaXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBzQ2xhc3NOYW1lIFRoZSB0YXJnZXQgY2xhc3MgbmFtZVxuICogQHBhcmFtIHtvYmplY3R9IG9DbGFzc0luZm8gVGhlIGNvbnRlbnQgb2YgdGhlIGNsYXNzIGRlZmluaXRpb25cbiAqIEBwYXJhbSB7YW55W119IHJlc3RcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IENvbnRyb2xsZXJFeHRlbnNpb25NZXRhZGF0YSA9IGZ1bmN0aW9uKHRoaXM6IGFueSwgc0NsYXNzTmFtZTogc3RyaW5nLCBvQ2xhc3NJbmZvOiBvYmplY3QsIC4uLnJlc3Q6IGFueVtdKSB7XG5cdC8vIGNhbGwgc3VwZXIgY29uc3RydWN0b3Jcblx0Q29udHJvbGxlck1ldGFkYXRhLmFwcGx5KHRoaXMsIFtzQ2xhc3NOYW1lLCBvQ2xhc3NJbmZvLCAuLi5yZXN0XSk7XG5cblx0Ly8gcHJvcGFnYXRlIHN0YXRpYyBmdW5jdGlvbnMgdG8gc3ViY2xhc3NlcyBvZiBDb250cm9sbGVyRXh0ZW5zaW9uXG5cdGlmICh0aGlzLmlzQShcInNhcC51aS5jb3JlLm12Yy5Db250cm9sbGVyRXh0ZW5zaW9uXCIpICYmIHRoaXMuZ2V0UGFyZW50KCkuZ2V0Q2xhc3MoKS5vdmVycmlkZSkge1xuXHRcdHRoaXMuZ2V0Q2xhc3MoKS5vdmVycmlkZSA9IHRoaXMuZ2V0UGFyZW50KCkuZ2V0Q2xhc3MoKS5vdmVycmlkZTtcblx0fVxufTtcbi8vIGNoYWluIHRoZSBwcm90b3R5cGVzXG5Db250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGEucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShDb250cm9sbGVyTWV0YWRhdGEucHJvdG90eXBlKTtcbkNvbnRyb2xsZXJFeHRlbnNpb25NZXRhZGF0YS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBDb250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGE7XG4vKipcbiAqIENhbGxlZCBhZnRlciBuZXcgc2V0dGluZ3MgaGF2ZSBiZWVuIGFwcGxpZWQuXG4gKlxuICogVHlwaWNhbGx5LCB0aGlzIG1ldGhvZCBpcyB1c2VkIHRvIGRvIHNvbWUgY2xlYW51cCAoZS5nLiB1bmlxdWVuZXNzKVxuICogb3IgdG8gY2FsY3VsYXRlIGFuIG9wdGltaXplZCB2ZXJzaW9uIG9mIHNvbWUgZGF0YS5cbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5Db250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGEucHJvdG90eXBlLmFmdGVyQXBwbHlTZXR0aW5ncyA9IGZ1bmN0aW9uKCkge1xuXHQoTWV0YWRhdGEucHJvdG90eXBlIGFzIGFueSkuYWZ0ZXJBcHBseVNldHRpbmdzLmNhbGwodGhpcyk7XG5cdGlmICh0aGlzLl9vUGFyZW50KSB7XG5cdFx0Y29uc3QgbVBhcmVudE1ldGhvZHMgPSB0aGlzLl9vUGFyZW50Ll9tTWV0aG9kcyA/IHRoaXMuX29QYXJlbnQuX21NZXRob2RzIDoge307XG5cdFx0Ly9hbGxvdyBjaGFuZ2Ugb2YgdmlzaWJpbGl0eSBidXQgbm90IHRoZSBvdGhlciBhdHRyaWJ1dGVzXG5cdFx0Zm9yIChjb25zdCBzTWV0aG9kIGluIG1QYXJlbnRNZXRob2RzKSB7XG5cdFx0XHRpZiAodGhpcy5fbU1ldGhvZHNbc01ldGhvZF0pIHtcblx0XHRcdFx0Y29uc3QgYlB1YmxpYyA9IHRoaXMuX21NZXRob2RzW3NNZXRob2RdLnB1YmxpYztcblx0XHRcdFx0Ly9jb3B5IHBhcmVudCBtZXRob2QgZGVmaW5pdGlvbiBhcyBmaW5hbC9vdmVycmlkZUV4ZWN1dGlvbiBzaG91bGQgbm90IGJlIG92ZXJyaWRkZW5cblx0XHRcdFx0dGhpcy5fbU1ldGhvZHNbc01ldGhvZF0gPSBtZXJnZSh7fSwgbVBhcmVudE1ldGhvZHNbc01ldGhvZF0pO1xuXHRcdFx0XHRpZiAoYlB1YmxpYyAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0dGhpcy5fbU1ldGhvZHNbc01ldGhvZF0ucHVibGljID0gYlB1YmxpYztcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIXRoaXMuaXNNZXRob2RQdWJsaWMoc01ldGhvZCkgJiYgdGhpcy5fbU1ldGhvZHNbc01ldGhvZF0ucHVibGljICE9PSBtUGFyZW50TWV0aG9kc1tzTWV0aG9kXS5wdWJsaWMpIHtcblx0XHRcdFx0XHQvL2lmIHZpc2liaWxpdHkgY2hhbmdlZCB0byBwcml2YXRlIGRlbGV0ZSBmcm9tIHB1YmxpYyBtZXRob2RzXG5cdFx0XHRcdFx0dGhpcy5fYUFsbFB1YmxpY01ldGhvZHMuc3BsaWNlKHRoaXMuX2FBbGxQdWJsaWNNZXRob2RzLmluZGV4T2Yoc01ldGhvZCksIDEpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl9tTWV0aG9kc1tzTWV0aG9kXSA9IG1QYXJlbnRNZXRob2RzW3NNZXRob2RdO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vZmxhZyBlYWNoIGV4dGVuc2lvbiBhcyBmaW5hbCAoYnV0IG5vdCB0aGUgY2xhc3MgQ29udHJvbGxlckV4dGVuc2lvbiBpdHNlbGYpXG5cdGlmICh0aGlzLl9vUGFyZW50ICYmIHRoaXMuX29QYXJlbnQuaXNBKFwic2FwLnVpLmNvcmUubXZjLkNvbnRyb2xsZXJFeHRlbnNpb25cIikpIHtcblx0XHR0aGlzLl9iRmluYWwgPSB0cnVlO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb250cm9sbGVyRXh0ZW5zaW9uTWV0YWRhdGE7XG4iXX0=
@@ -0,0 +1,65 @@
1
+ import Metadata from "sap/ui/base/Metadata";
2
+ import merge from "sap/base/util/merge";
3
+ import ControllerMetadata from "sap/ui/core/mvc/ControllerMetadata";
4
+
5
+ /**
6
+ * Dedicated metadata for the FE controller extensions.
7
+ *
8
+ * @alias sap.fe.core.controllerextensions.ControllerExtensionMetadata
9
+ * @extends sap.ui.core.mvc.ControllerMetadata
10
+ * @param this
11
+ * @param {string} sClassName The target class name
12
+ * @param {object} oClassInfo The content of the class definition
13
+ * @param {any[]} rest
14
+ * @private
15
+ */
16
+ const ControllerExtensionMetadata = function(this: any, sClassName: string, oClassInfo: object, ...rest: any[]) {
17
+ // call super constructor
18
+ ControllerMetadata.apply(this, [sClassName, oClassInfo, ...rest]);
19
+
20
+ // propagate static functions to subclasses of ControllerExtension
21
+ if (this.isA("sap.ui.core.mvc.ControllerExtension") && this.getParent().getClass().override) {
22
+ this.getClass().override = this.getParent().getClass().override;
23
+ }
24
+ };
25
+ // chain the prototypes
26
+ ControllerExtensionMetadata.prototype = Object.create(ControllerMetadata.prototype);
27
+ ControllerExtensionMetadata.prototype.constructor = ControllerExtensionMetadata;
28
+ /**
29
+ * Called after new settings have been applied.
30
+ *
31
+ * Typically, this method is used to do some cleanup (e.g. uniqueness)
32
+ * or to calculate an optimized version of some data.
33
+ *
34
+ * @private
35
+ */
36
+ ControllerExtensionMetadata.prototype.afterApplySettings = function() {
37
+ (Metadata.prototype as any).afterApplySettings.call(this);
38
+ if (this._oParent) {
39
+ const mParentMethods = this._oParent._mMethods ? this._oParent._mMethods : {};
40
+ //allow change of visibility but not the other attributes
41
+ for (const sMethod in mParentMethods) {
42
+ if (this._mMethods[sMethod]) {
43
+ const bPublic = this._mMethods[sMethod].public;
44
+ //copy parent method definition as final/overrideExecution should not be overridden
45
+ this._mMethods[sMethod] = merge({}, mParentMethods[sMethod]);
46
+ if (bPublic !== undefined) {
47
+ this._mMethods[sMethod].public = bPublic;
48
+ }
49
+ if (!this.isMethodPublic(sMethod) && this._mMethods[sMethod].public !== mParentMethods[sMethod].public) {
50
+ //if visibility changed to private delete from public methods
51
+ this._aAllPublicMethods.splice(this._aAllPublicMethods.indexOf(sMethod), 1);
52
+ }
53
+ } else {
54
+ this._mMethods[sMethod] = mParentMethods[sMethod];
55
+ }
56
+ }
57
+ }
58
+
59
+ //flag each extension as final (but not the class ControllerExtension itself)
60
+ if (this._oParent && this._oParent.isA("sap.ui.core.mvc.ControllerExtension")) {
61
+ this._bFinal = true;
62
+ }
63
+ };
64
+
65
+ export default ControllerExtensionMetadata;