@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,91 +1,88 @@
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
- sap.ui.define(["sap/base/Log"], function(Log) {
7
- "use strict";
8
+ var enumEditState = {
9
+ CLEAN: 0,
10
+ PROCESSED: 1,
11
+ DIRTY: 2
12
+ };
13
+ var currentEditState = enumEditState.CLEAN;
14
+ return {
15
+ /**
16
+ * This sets the edit state as dirty, meaning bindings have to be refreshed.
17
+ *
18
+ * @function
19
+ * @name sap.fe.core.helpers.EditState#setEditStateDirty
20
+ * @memberof sap.fe.core.helpers.EditState
21
+ *
22
+ * @ui5-restricted
23
+ * @final
24
+ */
25
+ setEditStateDirty: function () {
26
+ currentEditState = enumEditState.DIRTY;
27
+ },
8
28
 
9
- var enumEditState = {
10
- CLEAN: 0,
11
- PROCESSED: 1,
12
- DIRTY: 2
13
- };
29
+ /**
30
+ * This sets the edit state as processed, meaning is can be reset to clean after all bindings are refreshed.
31
+ *
32
+ * @function
33
+ * @name sap.fe.core.helpers.EditState#setEditStateProcessed
34
+ * @memberof sap.fe.core.helpers.EditState
35
+ *
36
+ * @ui5-restricted
37
+ * @final
38
+ */
39
+ setEditStateProcessed: function () {
40
+ currentEditState = enumEditState.PROCESSED;
41
+ },
14
42
 
15
- var currentEditState = enumEditState.CLEAN;
43
+ /**
44
+ * Resets the edit state to the initial state.
45
+ *
46
+ * @function
47
+ * @name sap.fe.core.helpers.EditState#resetEditState
48
+ * @memberof sap.fe.core.helpers.EditState
49
+ *
50
+ * @ui5-restricted
51
+ * @final
52
+ */
53
+ resetEditState: function () {
54
+ currentEditState = enumEditState.CLEAN;
55
+ },
16
56
 
17
- return {
18
- /**
19
- * This sets the edit state as dirty, meaning bindings have to be refreshed.
20
- *
21
- * @function
22
- * @name sap.fe.core.helpers.EditState#setEditStateDirty
23
- * @memberof sap.fe.core.helpers.EditState
24
- *
25
- * @ui5-restricted
26
- * @final
27
- */
28
- setEditStateDirty: function() {
29
- currentEditState = enumEditState.DIRTY;
30
- },
57
+ /**
58
+ * Returns true if the edit state is not clean, meaning bindings have to be refreshed
59
+ *
60
+ * @function
61
+ * @name sap.fe.core.helpers.EditState#isEditStateDirty
62
+ * @memberof sap.fe.core.helpers.EditState
63
+ *
64
+ * @ui5-restricted
65
+ * @final
66
+ */
67
+ isEditStateDirty: function () {
68
+ return currentEditState !== enumEditState.CLEAN;
69
+ },
31
70
 
32
- /**
33
- * This sets the edit state as processed, meaning is can be reset to clean after all bindings are refreshed.
34
- *
35
- * @function
36
- * @name sap.fe.core.helpers.EditState#setEditStateProcessed
37
- * @memberof sap.fe.core.helpers.EditState
38
- *
39
- * @ui5-restricted
40
- * @final
41
- */
42
- setEditStateProcessed: function() {
43
- currentEditState = enumEditState.PROCESSED;
44
- },
45
-
46
- /**
47
- * Resets the edit state to the initial state.
48
- *
49
- * @function
50
- * @name sap.fe.core.helpers.EditState#resetEditState
51
- * @memberof sap.fe.core.helpers.EditState
52
- *
53
- * @ui5-restricted
54
- * @final
55
- */
56
- resetEditState: function() {
57
- currentEditState = enumEditState.CLEAN;
58
- },
59
-
60
- /**
61
- * Returns true if the edit state is not clean, meaning bindings have to be refreshed
62
- *
63
- * @function
64
- * @name sap.fe.core.helpers.EditState#isEditStateDirty
65
- * @memberof sap.fe.core.helpers.EditState
66
- *
67
- * @ui5-restricted
68
- * @final
69
- */
70
-
71
- isEditStateDirty: function() {
72
- return currentEditState !== enumEditState.CLEAN;
73
- },
74
-
75
- /**
76
- * Cleans the edit state if it has been processed, i.e. bindings have been properly refreshed.
77
- *
78
- * @function
79
- * @name sap.fe.core.helpers.EditState#cleanProcessedEditState
80
- * @memberof sap.fe.core.helpers.EditState
81
- *
82
- * @ui5-restricted
83
- * @final
84
- */
85
- cleanProcessedEditState: function() {
86
- if (currentEditState === enumEditState.PROCESSED) {
87
- currentEditState = enumEditState.CLEAN;
88
- }
89
- }
90
- };
91
- });
71
+ /**
72
+ * Cleans the edit state if it has been processed, i.e. bindings have been properly refreshed.
73
+ *
74
+ * @function
75
+ * @name sap.fe.core.helpers.EditState#cleanProcessedEditState
76
+ * @memberof sap.fe.core.helpers.EditState
77
+ *
78
+ * @ui5-restricted
79
+ * @final
80
+ */
81
+ cleanProcessedEditState: function () {
82
+ if (currentEditState === enumEditState.PROCESSED) {
83
+ currentEditState = enumEditState.CLEAN;
84
+ }
85
+ }
86
+ };
87
+ }, false);
88
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkVkaXRTdGF0ZS50cyJdLCJuYW1lcyI6WyJlbnVtRWRpdFN0YXRlIiwiQ0xFQU4iLCJQUk9DRVNTRUQiLCJESVJUWSIsImN1cnJlbnRFZGl0U3RhdGUiLCJzZXRFZGl0U3RhdGVEaXJ0eSIsInNldEVkaXRTdGF0ZVByb2Nlc3NlZCIsInJlc2V0RWRpdFN0YXRlIiwiaXNFZGl0U3RhdGVEaXJ0eSIsImNsZWFuUHJvY2Vzc2VkRWRpdFN0YXRlIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBRkEsTUFBTUEsYUFBYSxHQUFHO0FBQ3JCQyxJQUFBQSxLQUFLLEVBQUUsQ0FEYztBQUVyQkMsSUFBQUEsU0FBUyxFQUFFLENBRlU7QUFHckJDLElBQUFBLEtBQUssRUFBRTtBQUhjLEdBQXRCO0FBS0EsTUFBSUMsZ0JBQWdCLEdBQUdKLGFBQWEsQ0FBQ0MsS0FBckM7U0FFZTtBQUNkO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0NJLElBQUFBLGlCQUFpQixFQUFFLFlBQVc7QUFDN0JELE1BQUFBLGdCQUFnQixHQUFHSixhQUFhLENBQUNHLEtBQWpDO0FBQ0EsS0FiYTs7QUFlZDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDRyxJQUFBQSxxQkFBcUIsRUFBRSxZQUFXO0FBQ2pDRixNQUFBQSxnQkFBZ0IsR0FBR0osYUFBYSxDQUFDRSxTQUFqQztBQUNBLEtBM0JhOztBQTZCZDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDSyxJQUFBQSxjQUFjLEVBQUUsWUFBVztBQUMxQkgsTUFBQUEsZ0JBQWdCLEdBQUdKLGFBQWEsQ0FBQ0MsS0FBakM7QUFDQSxLQXpDYTs7QUEyQ2Q7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQ08sSUFBQUEsZ0JBQWdCLEVBQUUsWUFBVztBQUM1QixhQUFPSixnQkFBZ0IsS0FBS0osYUFBYSxDQUFDQyxLQUExQztBQUNBLEtBeERhOztBQTBEZDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDUSxJQUFBQSx1QkFBdUIsRUFBRSxZQUFXO0FBQ25DLFVBQUlMLGdCQUFnQixLQUFLSixhQUFhLENBQUNFLFNBQXZDLEVBQWtEO0FBQ2pERSxRQUFBQSxnQkFBZ0IsR0FBR0osYUFBYSxDQUFDQyxLQUFqQztBQUNBO0FBQ0Q7QUF4RWEsRyIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZW51bUVkaXRTdGF0ZSA9IHtcblx0Q0xFQU46IDAsXG5cdFBST0NFU1NFRDogMSxcblx0RElSVFk6IDJcbn07XG5sZXQgY3VycmVudEVkaXRTdGF0ZSA9IGVudW1FZGl0U3RhdGUuQ0xFQU47XG5cbmV4cG9ydCBkZWZhdWx0IHtcblx0LyoqXG5cdCAqIFRoaXMgc2V0cyB0aGUgZWRpdCBzdGF0ZSBhcyBkaXJ0eSwgbWVhbmluZyBiaW5kaW5ncyBoYXZlIHRvIGJlIHJlZnJlc2hlZC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLmhlbHBlcnMuRWRpdFN0YXRlI3NldEVkaXRTdGF0ZURpcnR5XG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5oZWxwZXJzLkVkaXRTdGF0ZVxuXHQgKlxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRzZXRFZGl0U3RhdGVEaXJ0eTogZnVuY3Rpb24oKSB7XG5cdFx0Y3VycmVudEVkaXRTdGF0ZSA9IGVudW1FZGl0U3RhdGUuRElSVFk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFRoaXMgc2V0cyB0aGUgZWRpdCBzdGF0ZSBhcyBwcm9jZXNzZWQsIG1lYW5pbmcgaXMgY2FuIGJlIHJlc2V0IHRvIGNsZWFuIGFmdGVyIGFsbCBiaW5kaW5ncyBhcmUgcmVmcmVzaGVkLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuaGVscGVycy5FZGl0U3RhdGUjc2V0RWRpdFN0YXRlUHJvY2Vzc2VkXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5oZWxwZXJzLkVkaXRTdGF0ZVxuXHQgKlxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRzZXRFZGl0U3RhdGVQcm9jZXNzZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdGN1cnJlbnRFZGl0U3RhdGUgPSBlbnVtRWRpdFN0YXRlLlBST0NFU1NFRDtcblx0fSxcblxuXHQvKipcblx0ICogUmVzZXRzIHRoZSBlZGl0IHN0YXRlIHRvIHRoZSBpbml0aWFsIHN0YXRlLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuaGVscGVycy5FZGl0U3RhdGUjcmVzZXRFZGl0U3RhdGVcblx0ICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLmhlbHBlcnMuRWRpdFN0YXRlXG5cdCAqXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAZmluYWxcblx0ICovXG5cdHJlc2V0RWRpdFN0YXRlOiBmdW5jdGlvbigpIHtcblx0XHRjdXJyZW50RWRpdFN0YXRlID0gZW51bUVkaXRTdGF0ZS5DTEVBTjtcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyB0cnVlIGlmIHRoZSBlZGl0IHN0YXRlIGlzIG5vdCBjbGVhbiwgbWVhbmluZyBiaW5kaW5ncyBoYXZlIHRvIGJlIHJlZnJlc2hlZFxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuaGVscGVycy5FZGl0U3RhdGUjaXNFZGl0U3RhdGVEaXJ0eVxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuaGVscGVycy5FZGl0U3RhdGVcblx0ICpcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBmaW5hbFxuXHQgKi9cblxuXHRpc0VkaXRTdGF0ZURpcnR5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gY3VycmVudEVkaXRTdGF0ZSAhPT0gZW51bUVkaXRTdGF0ZS5DTEVBTjtcblx0fSxcblxuXHQvKipcblx0ICogQ2xlYW5zIHRoZSBlZGl0IHN0YXRlIGlmIGl0IGhhcyBiZWVuIHByb2Nlc3NlZCwgaS5lLiBiaW5kaW5ncyBoYXZlIGJlZW4gcHJvcGVybHkgcmVmcmVzaGVkLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuaGVscGVycy5FZGl0U3RhdGUjY2xlYW5Qcm9jZXNzZWRFZGl0U3RhdGVcblx0ICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLmhlbHBlcnMuRWRpdFN0YXRlXG5cdCAqXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAZmluYWxcblx0ICovXG5cdGNsZWFuUHJvY2Vzc2VkRWRpdFN0YXRlOiBmdW5jdGlvbigpIHtcblx0XHRpZiAoY3VycmVudEVkaXRTdGF0ZSA9PT0gZW51bUVkaXRTdGF0ZS5QUk9DRVNTRUQpIHtcblx0XHRcdGN1cnJlbnRFZGl0U3RhdGUgPSBlbnVtRWRpdFN0YXRlLkNMRUFOO1xuXHRcdH1cblx0fVxufTtcbiJdfQ==
@@ -0,0 +1,81 @@
1
+ const enumEditState = {
2
+ CLEAN: 0,
3
+ PROCESSED: 1,
4
+ DIRTY: 2
5
+ };
6
+ let currentEditState = enumEditState.CLEAN;
7
+
8
+ export default {
9
+ /**
10
+ * This sets the edit state as dirty, meaning bindings have to be refreshed.
11
+ *
12
+ * @function
13
+ * @name sap.fe.core.helpers.EditState#setEditStateDirty
14
+ * @memberof sap.fe.core.helpers.EditState
15
+ *
16
+ * @ui5-restricted
17
+ * @final
18
+ */
19
+ setEditStateDirty: function() {
20
+ currentEditState = enumEditState.DIRTY;
21
+ },
22
+
23
+ /**
24
+ * This sets the edit state as processed, meaning is can be reset to clean after all bindings are refreshed.
25
+ *
26
+ * @function
27
+ * @name sap.fe.core.helpers.EditState#setEditStateProcessed
28
+ * @memberof sap.fe.core.helpers.EditState
29
+ *
30
+ * @ui5-restricted
31
+ * @final
32
+ */
33
+ setEditStateProcessed: function() {
34
+ currentEditState = enumEditState.PROCESSED;
35
+ },
36
+
37
+ /**
38
+ * Resets the edit state to the initial state.
39
+ *
40
+ * @function
41
+ * @name sap.fe.core.helpers.EditState#resetEditState
42
+ * @memberof sap.fe.core.helpers.EditState
43
+ *
44
+ * @ui5-restricted
45
+ * @final
46
+ */
47
+ resetEditState: function() {
48
+ currentEditState = enumEditState.CLEAN;
49
+ },
50
+
51
+ /**
52
+ * Returns true if the edit state is not clean, meaning bindings have to be refreshed
53
+ *
54
+ * @function
55
+ * @name sap.fe.core.helpers.EditState#isEditStateDirty
56
+ * @memberof sap.fe.core.helpers.EditState
57
+ *
58
+ * @ui5-restricted
59
+ * @final
60
+ */
61
+
62
+ isEditStateDirty: function() {
63
+ return currentEditState !== enumEditState.CLEAN;
64
+ },
65
+
66
+ /**
67
+ * Cleans the edit state if it has been processed, i.e. bindings have been properly refreshed.
68
+ *
69
+ * @function
70
+ * @name sap.fe.core.helpers.EditState#cleanProcessedEditState
71
+ * @memberof sap.fe.core.helpers.EditState
72
+ *
73
+ * @ui5-restricted
74
+ * @final
75
+ */
76
+ cleanProcessedEditState: function() {
77
+ if (currentEditState === enumEditState.PROCESSED) {
78
+ currentEditState = enumEditState.CLEAN;
79
+ }
80
+ }
81
+ };
@@ -1,50 +1,64 @@
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/core/format/DateFormat"], function(DateFormat) {
6
- "use strict";
7
- var ExcelFormatHelper = {
8
- /**
9
- * Method for converting JS Date format to Excel custom date format.
10
- *
11
- * @returns {string} Format for the Date column to be used on excel.
12
- */
13
- getExcelDatefromJSDate: function() {
14
- // Get date Format(pattern), which will be used for date format mapping between sapui5 and excel.
15
- var sJSDateFormat = DateFormat.getDateInstance().oFormatOptions.pattern.toLowerCase();
16
- if (sJSDateFormat) {
17
- // Checking for the existence of single 'y' in the pattern.
18
- var regex = /^[^y]*y[^y]*$/m;
19
- if (regex.exec(sJSDateFormat)) {
20
- sJSDateFormat = sJSDateFormat.replace("y", "yyyy");
21
- }
22
- }
23
- return sJSDateFormat;
24
- },
25
- getExcelDateTimefromJSDateTime: function() {
26
- // Get date Format(pattern), which will be used for date time format mapping between sapui5 and excel.
27
- var sJSDateTimeFormat = DateFormat.getDateTimeInstance().oFormatOptions.pattern.toLowerCase();
28
- if (sJSDateTimeFormat) {
29
- // Checking for the existence of single 'y' in the pattern.
30
- var regexYear = /^[^y]*y[^y]*$/m;
31
- if (regexYear.exec(sJSDateTimeFormat)) {
32
- sJSDateTimeFormat = sJSDateTimeFormat.replace("y", "yyyy");
33
- }
34
- if (sJSDateTimeFormat.includes("a")) {
35
- sJSDateTimeFormat = sJSDateTimeFormat.replace("a", "AM/PM");
36
- }
37
- }
38
- return sJSDateTimeFormat;
39
- },
40
- getExcelTimefromJSTime: function() {
41
- // Get date Format(pattern), which will be used for date time format mapping between sapui5 and excel.
42
- var sJSTimeFormat = DateFormat.getTimeInstance().oFormatOptions.pattern;
43
- if (sJSTimeFormat && sJSTimeFormat.includes("a")) {
44
- sJSTimeFormat = sJSTimeFormat.replace("a", "AM/PM");
45
- }
46
- return sJSTimeFormat;
47
- }
48
- };
49
- return ExcelFormatHelper;
50
- });
5
+ sap.ui.define(["sap/ui/core/format/DateFormat"], function (DateFormat) {
6
+ "use strict";
7
+
8
+ var ExcelFormatHelper = {
9
+ /**
10
+ * Method for converting JS Date format to Excel custom date format.
11
+ *
12
+ * @returns {string} Format for the Date column to be used on excel.
13
+ */
14
+ getExcelDatefromJSDate: function () {
15
+ // Get date Format(pattern), which will be used for date format mapping between sapui5 and excel.
16
+ // UI5_ANY
17
+ var sJSDateFormat = DateFormat.getDateInstance().oFormatOptions.pattern.toLowerCase();
18
+
19
+ if (sJSDateFormat) {
20
+ // Checking for the existence of single 'y' in the pattern.
21
+ var regex = /^[^y]*y[^y]*$/m;
22
+
23
+ if (regex.exec(sJSDateFormat)) {
24
+ sJSDateFormat = sJSDateFormat.replace("y", "yyyy");
25
+ }
26
+ }
27
+
28
+ return sJSDateFormat;
29
+ },
30
+ getExcelDateTimefromJSDateTime: function () {
31
+ // Get date Format(pattern), which will be used for date time format mapping between sapui5 and excel.
32
+ // UI5_ANY
33
+ var sJSDateTimeFormat = DateFormat.getDateTimeInstance().oFormatOptions.pattern.toLowerCase();
34
+
35
+ if (sJSDateTimeFormat) {
36
+ // Checking for the existence of single 'y' in the pattern.
37
+ var regexYear = /^[^y]*y[^y]*$/m;
38
+
39
+ if (regexYear.exec(sJSDateTimeFormat)) {
40
+ sJSDateTimeFormat = sJSDateTimeFormat.replace("y", "yyyy");
41
+ }
42
+
43
+ if (sJSDateTimeFormat.includes("a")) {
44
+ sJSDateTimeFormat = sJSDateTimeFormat.replace("a", "AM/PM");
45
+ }
46
+ }
47
+
48
+ return sJSDateTimeFormat;
49
+ },
50
+ getExcelTimefromJSTime: function () {
51
+ // Get date Format(pattern), which will be used for date time format mapping between sapui5 and excel.
52
+ // UI5_ANY
53
+ var sJSTimeFormat = DateFormat.getTimeInstance().oFormatOptions.pattern;
54
+
55
+ if (sJSTimeFormat && sJSTimeFormat.includes("a")) {
56
+ sJSTimeFormat = sJSTimeFormat.replace("a", "AM/PM");
57
+ }
58
+
59
+ return sJSTimeFormat;
60
+ }
61
+ };
62
+ return ExcelFormatHelper;
63
+ }, false);
64
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkV4Y2VsRm9ybWF0SGVscGVyLnRzIl0sIm5hbWVzIjpbIkV4Y2VsRm9ybWF0SGVscGVyIiwiZ2V0RXhjZWxEYXRlZnJvbUpTRGF0ZSIsInNKU0RhdGVGb3JtYXQiLCJEYXRlRm9ybWF0IiwiZ2V0RGF0ZUluc3RhbmNlIiwib0Zvcm1hdE9wdGlvbnMiLCJwYXR0ZXJuIiwidG9Mb3dlckNhc2UiLCJyZWdleCIsImV4ZWMiLCJyZXBsYWNlIiwiZ2V0RXhjZWxEYXRlVGltZWZyb21KU0RhdGVUaW1lIiwic0pTRGF0ZVRpbWVGb3JtYXQiLCJnZXREYXRlVGltZUluc3RhbmNlIiwicmVnZXhZZWFyIiwiaW5jbHVkZXMiLCJnZXRFeGNlbFRpbWVmcm9tSlNUaW1lIiwic0pTVGltZUZvcm1hdCIsImdldFRpbWVJbnN0YW5jZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUFBLE1BQU1BLGlCQUFpQixHQUFHO0FBQ3pCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQ0MsSUFBQUEsc0JBQXNCLEVBQUUsWUFBVztBQUNsQztBQUNBO0FBQ0EsVUFBSUMsYUFBYSxHQUFJQyxVQUFVLENBQUNDLGVBQVgsRUFBRCxDQUFzQ0MsY0FBdEMsQ0FBcURDLE9BQXJELENBQTZEQyxXQUE3RCxFQUFwQjs7QUFDQSxVQUFJTCxhQUFKLEVBQW1CO0FBQ2xCO0FBQ0EsWUFBTU0sS0FBSyxHQUFHLGdCQUFkOztBQUNBLFlBQUlBLEtBQUssQ0FBQ0MsSUFBTixDQUFXUCxhQUFYLENBQUosRUFBK0I7QUFDOUJBLFVBQUFBLGFBQWEsR0FBR0EsYUFBYSxDQUFDUSxPQUFkLENBQXNCLEdBQXRCLEVBQTJCLE1BQTNCLENBQWhCO0FBQ0E7QUFDRDs7QUFDRCxhQUFPUixhQUFQO0FBQ0EsS0FsQndCO0FBbUJ6QlMsSUFBQUEsOEJBQThCLEVBQUUsWUFBVztBQUMxQztBQUNBO0FBQ0EsVUFBSUMsaUJBQWlCLEdBQUlULFVBQVUsQ0FBQ1UsbUJBQVgsRUFBRCxDQUEwQ1IsY0FBMUMsQ0FBeURDLE9BQXpELENBQWlFQyxXQUFqRSxFQUF4Qjs7QUFDQSxVQUFJSyxpQkFBSixFQUF1QjtBQUN0QjtBQUNBLFlBQU1FLFNBQVMsR0FBRyxnQkFBbEI7O0FBQ0EsWUFBSUEsU0FBUyxDQUFDTCxJQUFWLENBQWVHLGlCQUFmLENBQUosRUFBdUM7QUFDdENBLFVBQUFBLGlCQUFpQixHQUFHQSxpQkFBaUIsQ0FBQ0YsT0FBbEIsQ0FBMEIsR0FBMUIsRUFBK0IsTUFBL0IsQ0FBcEI7QUFDQTs7QUFDRCxZQUFJRSxpQkFBaUIsQ0FBQ0csUUFBbEIsQ0FBMkIsR0FBM0IsQ0FBSixFQUFxQztBQUNwQ0gsVUFBQUEsaUJBQWlCLEdBQUdBLGlCQUFpQixDQUFDRixPQUFsQixDQUEwQixHQUExQixFQUErQixPQUEvQixDQUFwQjtBQUNBO0FBQ0Q7O0FBQ0QsYUFBT0UsaUJBQVA7QUFDQSxLQWxDd0I7QUFtQ3pCSSxJQUFBQSxzQkFBc0IsRUFBRSxZQUFXO0FBQ2xDO0FBQ0E7QUFDQSxVQUFJQyxhQUFhLEdBQUlkLFVBQVUsQ0FBQ2UsZUFBWCxFQUFELENBQXNDYixjQUF0QyxDQUFxREMsT0FBekU7O0FBQ0EsVUFBSVcsYUFBYSxJQUFJQSxhQUFhLENBQUNGLFFBQWQsQ0FBdUIsR0FBdkIsQ0FBckIsRUFBa0Q7QUFDakRFLFFBQUFBLGFBQWEsR0FBR0EsYUFBYSxDQUFDUCxPQUFkLENBQXNCLEdBQXRCLEVBQTJCLE9BQTNCLENBQWhCO0FBQ0E7O0FBQ0QsYUFBT08sYUFBUDtBQUNBO0FBM0N3QixHQUExQjtTQThDZWpCLGlCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGF0ZUZvcm1hdCBmcm9tIFwic2FwL3VpL2NvcmUvZm9ybWF0L0RhdGVGb3JtYXRcIjtcblxuY29uc3QgRXhjZWxGb3JtYXRIZWxwZXIgPSB7XG5cdC8qKlxuXHQgKiBNZXRob2QgZm9yIGNvbnZlcnRpbmcgSlMgRGF0ZSBmb3JtYXQgdG8gRXhjZWwgY3VzdG9tIGRhdGUgZm9ybWF0LlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBGb3JtYXQgZm9yIHRoZSBEYXRlIGNvbHVtbiB0byBiZSB1c2VkIG9uIGV4Y2VsLlxuXHQgKi9cblx0Z2V0RXhjZWxEYXRlZnJvbUpTRGF0ZTogZnVuY3Rpb24oKSB7XG5cdFx0Ly8gR2V0IGRhdGUgRm9ybWF0KHBhdHRlcm4pLCB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIGRhdGUgZm9ybWF0IG1hcHBpbmcgYmV0d2VlbiBzYXB1aTUgYW5kIGV4Y2VsLlxuXHRcdC8vIFVJNV9BTllcblx0XHRsZXQgc0pTRGF0ZUZvcm1hdCA9IChEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpIGFzIGFueSkub0Zvcm1hdE9wdGlvbnMucGF0dGVybi50b0xvd2VyQ2FzZSgpO1xuXHRcdGlmIChzSlNEYXRlRm9ybWF0KSB7XG5cdFx0XHQvLyBDaGVja2luZyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBzaW5nbGUgJ3knIGluIHRoZSBwYXR0ZXJuLlxuXHRcdFx0Y29uc3QgcmVnZXggPSAvXlteeV0qeVteeV0qJC9tO1xuXHRcdFx0aWYgKHJlZ2V4LmV4ZWMoc0pTRGF0ZUZvcm1hdCkpIHtcblx0XHRcdFx0c0pTRGF0ZUZvcm1hdCA9IHNKU0RhdGVGb3JtYXQucmVwbGFjZShcInlcIiwgXCJ5eXl5XCIpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gc0pTRGF0ZUZvcm1hdDtcblx0fSxcblx0Z2V0RXhjZWxEYXRlVGltZWZyb21KU0RhdGVUaW1lOiBmdW5jdGlvbigpIHtcblx0XHQvLyBHZXQgZGF0ZSBGb3JtYXQocGF0dGVybiksIHdoaWNoIHdpbGwgYmUgdXNlZCBmb3IgZGF0ZSB0aW1lIGZvcm1hdCBtYXBwaW5nIGJldHdlZW4gc2FwdWk1IGFuZCBleGNlbC5cblx0XHQvLyBVSTVfQU5ZXG5cdFx0bGV0IHNKU0RhdGVUaW1lRm9ybWF0ID0gKERhdGVGb3JtYXQuZ2V0RGF0ZVRpbWVJbnN0YW5jZSgpIGFzIGFueSkub0Zvcm1hdE9wdGlvbnMucGF0dGVybi50b0xvd2VyQ2FzZSgpO1xuXHRcdGlmIChzSlNEYXRlVGltZUZvcm1hdCkge1xuXHRcdFx0Ly8gQ2hlY2tpbmcgZm9yIHRoZSBleGlzdGVuY2Ugb2Ygc2luZ2xlICd5JyBpbiB0aGUgcGF0dGVybi5cblx0XHRcdGNvbnN0IHJlZ2V4WWVhciA9IC9eW155XSp5W155XSokL207XG5cdFx0XHRpZiAocmVnZXhZZWFyLmV4ZWMoc0pTRGF0ZVRpbWVGb3JtYXQpKSB7XG5cdFx0XHRcdHNKU0RhdGVUaW1lRm9ybWF0ID0gc0pTRGF0ZVRpbWVGb3JtYXQucmVwbGFjZShcInlcIiwgXCJ5eXl5XCIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHNKU0RhdGVUaW1lRm9ybWF0LmluY2x1ZGVzKFwiYVwiKSkge1xuXHRcdFx0XHRzSlNEYXRlVGltZUZvcm1hdCA9IHNKU0RhdGVUaW1lRm9ybWF0LnJlcGxhY2UoXCJhXCIsIFwiQU0vUE1cIik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBzSlNEYXRlVGltZUZvcm1hdDtcblx0fSxcblx0Z2V0RXhjZWxUaW1lZnJvbUpTVGltZTogZnVuY3Rpb24oKSB7XG5cdFx0Ly8gR2V0IGRhdGUgRm9ybWF0KHBhdHRlcm4pLCB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIGRhdGUgdGltZSBmb3JtYXQgbWFwcGluZyBiZXR3ZWVuIHNhcHVpNSBhbmQgZXhjZWwuXG5cdFx0Ly8gVUk1X0FOWVxuXHRcdGxldCBzSlNUaW1lRm9ybWF0ID0gKERhdGVGb3JtYXQuZ2V0VGltZUluc3RhbmNlKCkgYXMgYW55KS5vRm9ybWF0T3B0aW9ucy5wYXR0ZXJuO1xuXHRcdGlmIChzSlNUaW1lRm9ybWF0ICYmIHNKU1RpbWVGb3JtYXQuaW5jbHVkZXMoXCJhXCIpKSB7XG5cdFx0XHRzSlNUaW1lRm9ybWF0ID0gc0pTVGltZUZvcm1hdC5yZXBsYWNlKFwiYVwiLCBcIkFNL1BNXCIpO1xuXHRcdH1cblx0XHRyZXR1cm4gc0pTVGltZUZvcm1hdDtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRXhjZWxGb3JtYXRIZWxwZXI7XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import DateFormat from "sap/ui/core/format/DateFormat";
2
+
3
+ const ExcelFormatHelper = {
4
+ /**
5
+ * Method for converting JS Date format to Excel custom date format.
6
+ *
7
+ * @returns {string} Format for the Date column to be used on excel.
8
+ */
9
+ getExcelDatefromJSDate: function() {
10
+ // Get date Format(pattern), which will be used for date format mapping between sapui5 and excel.
11
+ // UI5_ANY
12
+ let sJSDateFormat = (DateFormat.getDateInstance() as any).oFormatOptions.pattern.toLowerCase();
13
+ if (sJSDateFormat) {
14
+ // Checking for the existence of single 'y' in the pattern.
15
+ const regex = /^[^y]*y[^y]*$/m;
16
+ if (regex.exec(sJSDateFormat)) {
17
+ sJSDateFormat = sJSDateFormat.replace("y", "yyyy");
18
+ }
19
+ }
20
+ return sJSDateFormat;
21
+ },
22
+ getExcelDateTimefromJSDateTime: function() {
23
+ // Get date Format(pattern), which will be used for date time format mapping between sapui5 and excel.
24
+ // UI5_ANY
25
+ let sJSDateTimeFormat = (DateFormat.getDateTimeInstance() as any).oFormatOptions.pattern.toLowerCase();
26
+ if (sJSDateTimeFormat) {
27
+ // Checking for the existence of single 'y' in the pattern.
28
+ const regexYear = /^[^y]*y[^y]*$/m;
29
+ if (regexYear.exec(sJSDateTimeFormat)) {
30
+ sJSDateTimeFormat = sJSDateTimeFormat.replace("y", "yyyy");
31
+ }
32
+ if (sJSDateTimeFormat.includes("a")) {
33
+ sJSDateTimeFormat = sJSDateTimeFormat.replace("a", "AM/PM");
34
+ }
35
+ }
36
+ return sJSDateTimeFormat;
37
+ },
38
+ getExcelTimefromJSTime: function() {
39
+ // Get date Format(pattern), which will be used for date time format mapping between sapui5 and excel.
40
+ // UI5_ANY
41
+ let sJSTimeFormat = (DateFormat.getTimeInstance() as any).oFormatOptions.pattern;
42
+ if (sJSTimeFormat && sJSTimeFormat.includes("a")) {
43
+ sJSTimeFormat = sJSTimeFormat.replace("a", "AM/PM");
44
+ }
45
+ return sJSTimeFormat;
46
+ }
47
+ };
48
+
49
+ export default ExcelFormatHelper;
@@ -1,63 +1,59 @@
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/fe/core/CommonUtils", "sap/base/util/ObjectPath"], function(CommonUtils, ObjectPath) {
6
- "use strict";
7
- var FPMHelper = {
8
- actionWrapper: function(oEvent, sModule, sMethod, oParameters) {
9
- return new Promise(function(resolve) {
10
- var oSource = oEvent.getSource ? oEvent.getSource() : oEvent.oSource,
11
- oView = CommonUtils.getTargetView(oSource),
12
- oBindingContext = oSource.getBindingContext(),
13
- oExtensionAPI,
14
- aSelectedContexts;
5
+ sap.ui.define(["sap/fe/core/CommonUtils", "sap/base/util/ObjectPath"], function (CommonUtils, ObjectPath) {
6
+ "use strict";
15
7
 
16
- if (oParameters !== undefined) {
17
- aSelectedContexts = oParameters.contexts || [];
18
- } else if (oBindingContext !== undefined) {
19
- aSelectedContexts = [oBindingContext];
20
- } else {
21
- aSelectedContexts = [];
22
- }
8
+ var FPMHelper = {
9
+ actionWrapper: function (oEvent, sModule, sMethod, oParameters) {
10
+ return new Promise(function (resolve) {
11
+ var oSource = oEvent.getSource ? oEvent.getSource() : oEvent.oSource,
12
+ oView = CommonUtils.getTargetView(oSource),
13
+ oBindingContext = oSource.getBindingContext();
14
+ var oExtensionAPI;
15
+ var aSelectedContexts;
23
16
 
24
- if (
25
- oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" ||
26
- oView.getControllerName() === "sap.fe.templates.ListReport.ListReportController"
27
- ) {
28
- oExtensionAPI = oView.getController().getExtensionAPI();
29
- }
17
+ if (oParameters !== undefined) {
18
+ aSelectedContexts = oParameters.contexts || [];
19
+ } else if (oBindingContext !== undefined) {
20
+ aSelectedContexts = [oBindingContext];
21
+ } else {
22
+ aSelectedContexts = [];
23
+ }
30
24
 
31
- if (sModule.startsWith("/extension/")) {
32
- var fnTarget = ObjectPath.get(sModule.replace(/\//g, ".").substr(1), oExtensionAPI);
33
- resolve(fnTarget[sMethod](oBindingContext, aSelectedContexts));
34
- } else {
35
- sap.ui.require([sModule], function(module) {
36
- // - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
37
- // - we provide the context as API, maybe if needed further properties
38
- resolve(module[sMethod].bind(oExtensionAPI)(oBindingContext, aSelectedContexts));
39
- });
40
- }
41
- });
42
- },
43
- validationWrapper: function(sModule, sMethod, oValidationContexts, oView, oBindingContext) {
44
- return new Promise(function(resolve) {
45
- var oExtensionAPI;
25
+ if (oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" || oView.getControllerName() === "sap.fe.templates.ListReport.ListReportController") {
26
+ oExtensionAPI = oView.getController().getExtensionAPI();
27
+ }
46
28
 
47
- if (
48
- oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" ||
49
- oView.getControllerName() === "sap.fe.templates.ListReport.ListReportController"
50
- ) {
51
- oExtensionAPI = oView.getController().getExtensionAPI();
52
- }
29
+ if (sModule.startsWith("/extension/")) {
30
+ var fnTarget = ObjectPath.get(sModule.replace(/\//g, ".").substr(1), oExtensionAPI);
31
+ resolve(fnTarget[sMethod](oBindingContext, aSelectedContexts));
32
+ } else {
33
+ sap.ui.require([sModule], function (module) {
34
+ // - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
35
+ // - we provide the context as API, maybe if needed further properties
36
+ resolve(module[sMethod].bind(oExtensionAPI)(oBindingContext, aSelectedContexts));
37
+ });
38
+ }
39
+ });
40
+ },
41
+ validationWrapper: function (sModule, sMethod, oValidationContexts, oView, oBindingContext) {
42
+ return new Promise(function (resolve) {
43
+ var oExtensionAPI;
53
44
 
54
- sap.ui.require([sModule], function(module) {
55
- // - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
56
- // - we provide the context as API, maybe if needed further properties
57
- resolve(module[sMethod].bind(oExtensionAPI)(oBindingContext, oValidationContexts));
58
- });
59
- });
60
- }
61
- };
62
- return FPMHelper;
63
- });
45
+ if (oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" || oView.getControllerName() === "sap.fe.templates.ListReport.ListReportController") {
46
+ oExtensionAPI = oView.getController().getExtensionAPI();
47
+ }
48
+
49
+ sap.ui.require([sModule], function (module) {
50
+ // - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
51
+ // - we provide the context as API, maybe if needed further properties
52
+ resolve(module[sMethod].bind(oExtensionAPI)(oBindingContext, oValidationContexts));
53
+ });
54
+ });
55
+ }
56
+ };
57
+ return FPMHelper;
58
+ }, false);
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZQTUhlbHBlci50cyJdLCJuYW1lcyI6WyJGUE1IZWxwZXIiLCJhY3Rpb25XcmFwcGVyIiwib0V2ZW50Iiwic01vZHVsZSIsInNNZXRob2QiLCJvUGFyYW1ldGVycyIsIlByb21pc2UiLCJyZXNvbHZlIiwib1NvdXJjZSIsImdldFNvdXJjZSIsIm9WaWV3IiwiQ29tbW9uVXRpbHMiLCJnZXRUYXJnZXRWaWV3Iiwib0JpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJvRXh0ZW5zaW9uQVBJIiwiYVNlbGVjdGVkQ29udGV4dHMiLCJ1bmRlZmluZWQiLCJjb250ZXh0cyIsImdldENvbnRyb2xsZXJOYW1lIiwiZ2V0Q29udHJvbGxlciIsImdldEV4dGVuc2lvbkFQSSIsInN0YXJ0c1dpdGgiLCJmblRhcmdldCIsIk9iamVjdFBhdGgiLCJnZXQiLCJyZXBsYWNlIiwic3Vic3RyIiwic2FwIiwidWkiLCJyZXF1aXJlIiwibW9kdWxlIiwiYmluZCIsInZhbGlkYXRpb25XcmFwcGVyIiwib1ZhbGlkYXRpb25Db250ZXh0cyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQUdBLE1BQU1BLFNBQVMsR0FBRztBQUNqQkMsSUFBQUEsYUFBYSxFQUFFLFVBQVNDLE1BQVQsRUFBc0JDLE9BQXRCLEVBQW9DQyxPQUFwQyxFQUFrREMsV0FBbEQsRUFBb0U7QUFDbEYsYUFBTyxJQUFJQyxPQUFKLENBQVksVUFBU0MsT0FBVCxFQUF3QztBQUMxRCxZQUFNQyxPQUFPLEdBQUdOLE1BQU0sQ0FBQ08sU0FBUCxHQUFtQlAsTUFBTSxDQUFDTyxTQUFQLEVBQW5CLEdBQXdDUCxNQUFNLENBQUNNLE9BQS9EO0FBQUEsWUFDQ0UsS0FBSyxHQUFHQyxXQUFXLENBQUNDLGFBQVosQ0FBMEJKLE9BQTFCLENBRFQ7QUFBQSxZQUVDSyxlQUFlLEdBQUdMLE9BQU8sQ0FBQ00saUJBQVIsRUFGbkI7QUFHQSxZQUFJQyxhQUFKO0FBQ0EsWUFBSUMsaUJBQUo7O0FBRUEsWUFBSVgsV0FBVyxLQUFLWSxTQUFwQixFQUErQjtBQUM5QkQsVUFBQUEsaUJBQWlCLEdBQUdYLFdBQVcsQ0FBQ2EsUUFBWixJQUF3QixFQUE1QztBQUNBLFNBRkQsTUFFTyxJQUFJTCxlQUFlLEtBQUtJLFNBQXhCLEVBQW1DO0FBQ3pDRCxVQUFBQSxpQkFBaUIsR0FBRyxDQUFDSCxlQUFELENBQXBCO0FBQ0EsU0FGTSxNQUVBO0FBQ05HLFVBQUFBLGlCQUFpQixHQUFHLEVBQXBCO0FBQ0E7O0FBRUQsWUFDQ04sS0FBSyxDQUFDUyxpQkFBTixPQUE4QixrREFBOUIsSUFDQVQsS0FBSyxDQUFDUyxpQkFBTixPQUE4QixrREFGL0IsRUFHRTtBQUNESixVQUFBQSxhQUFhLEdBQUdMLEtBQUssQ0FBQ1UsYUFBTixHQUFzQkMsZUFBdEIsRUFBaEI7QUFDQTs7QUFFRCxZQUFJbEIsT0FBTyxDQUFDbUIsVUFBUixDQUFtQixhQUFuQixDQUFKLEVBQXVDO0FBQ3RDLGNBQU1DLFFBQVEsR0FBR0MsVUFBVSxDQUFDQyxHQUFYLENBQWV0QixPQUFPLENBQUN1QixPQUFSLENBQWdCLEtBQWhCLEVBQXVCLEdBQXZCLEVBQTRCQyxNQUE1QixDQUFtQyxDQUFuQyxDQUFmLEVBQXNEWixhQUF0RCxDQUFqQjtBQUNBUixVQUFBQSxPQUFPLENBQUNnQixRQUFRLENBQUNuQixPQUFELENBQVIsQ0FBa0JTLGVBQWxCLEVBQW1DRyxpQkFBbkMsQ0FBRCxDQUFQO0FBQ0EsU0FIRCxNQUdPO0FBQ05ZLFVBQUFBLEdBQUcsQ0FBQ0MsRUFBSixDQUFPQyxPQUFQLENBQWUsQ0FBQzNCLE9BQUQsQ0FBZixFQUEwQixVQUFTNEIsTUFBVCxFQUFzQjtBQUMvQztBQUNBO0FBQ0F4QixZQUFBQSxPQUFPLENBQUN3QixNQUFNLENBQUMzQixPQUFELENBQU4sQ0FBZ0I0QixJQUFoQixDQUFxQmpCLGFBQXJCLEVBQW9DRixlQUFwQyxFQUFxREcsaUJBQXJELENBQUQsQ0FBUDtBQUNBLFdBSkQ7QUFLQTtBQUNELE9BaENNLENBQVA7QUFpQ0EsS0FuQ2dCO0FBb0NqQmlCLElBQUFBLGlCQUFpQixFQUFFLFVBQVM5QixPQUFULEVBQXVCQyxPQUF2QixFQUFxQzhCLG1CQUFyQyxFQUErRHhCLEtBQS9ELEVBQTJFRyxlQUEzRSxFQUFpRztBQUNuSCxhQUFPLElBQUlQLE9BQUosQ0FBWSxVQUFTQyxPQUFULEVBQXdDO0FBQzFELFlBQUlRLGFBQUo7O0FBRUEsWUFDQ0wsS0FBSyxDQUFDUyxpQkFBTixPQUE4QixrREFBOUIsSUFDQVQsS0FBSyxDQUFDUyxpQkFBTixPQUE4QixrREFGL0IsRUFHRTtBQUNESixVQUFBQSxhQUFhLEdBQUdMLEtBQUssQ0FBQ1UsYUFBTixHQUFzQkMsZUFBdEIsRUFBaEI7QUFDQTs7QUFFRE8sUUFBQUEsR0FBRyxDQUFDQyxFQUFKLENBQU9DLE9BQVAsQ0FBZSxDQUFDM0IsT0FBRCxDQUFmLEVBQTBCLFVBQVM0QixNQUFULEVBQXNCO0FBQy9DO0FBQ0E7QUFDQXhCLFVBQUFBLE9BQU8sQ0FBQ3dCLE1BQU0sQ0FBQzNCLE9BQUQsQ0FBTixDQUFnQjRCLElBQWhCLENBQXFCakIsYUFBckIsRUFBb0NGLGVBQXBDLEVBQXFEcUIsbUJBQXJELENBQUQsQ0FBUDtBQUNBLFNBSkQ7QUFLQSxPQWZNLENBQVA7QUFnQkE7QUFyRGdCLEdBQWxCO1NBd0RlbEMsUyIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV4dGVuc2lvbkFQSSBmcm9tIFwic2FwL2ZlL2NvcmUvRXh0ZW5zaW9uQVBJXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgT2JqZWN0UGF0aCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9PYmplY3RQYXRoXCI7XG5pbXBvcnQgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcblxuY29uc3QgRlBNSGVscGVyID0ge1xuXHRhY3Rpb25XcmFwcGVyOiBmdW5jdGlvbihvRXZlbnQ6IGFueSwgc01vZHVsZTogYW55LCBzTWV0aG9kOiBhbnksIG9QYXJhbWV0ZXJzOiBhbnkpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQpIHtcblx0XHRcdGNvbnN0IG9Tb3VyY2UgPSBvRXZlbnQuZ2V0U291cmNlID8gb0V2ZW50LmdldFNvdXJjZSgpIDogb0V2ZW50Lm9Tb3VyY2UsXG5cdFx0XHRcdG9WaWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0VmlldyhvU291cmNlKSxcblx0XHRcdFx0b0JpbmRpbmdDb250ZXh0ID0gb1NvdXJjZS5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdFx0bGV0IG9FeHRlbnNpb25BUEk6IEV4dGVuc2lvbkFQSSB8IHVuZGVmaW5lZDtcblx0XHRcdGxldCBhU2VsZWN0ZWRDb250ZXh0czogQ29udGV4dFtdO1xuXG5cdFx0XHRpZiAob1BhcmFtZXRlcnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRhU2VsZWN0ZWRDb250ZXh0cyA9IG9QYXJhbWV0ZXJzLmNvbnRleHRzIHx8IFtdO1xuXHRcdFx0fSBlbHNlIGlmIChvQmluZGluZ0NvbnRleHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRhU2VsZWN0ZWRDb250ZXh0cyA9IFtvQmluZGluZ0NvbnRleHRdO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YVNlbGVjdGVkQ29udGV4dHMgPSBbXTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRvVmlldy5nZXRDb250cm9sbGVyTmFtZSgpID09PSBcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiIHx8XG5cdFx0XHRcdG9WaWV3LmdldENvbnRyb2xsZXJOYW1lKCkgPT09IFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0Lkxpc3RSZXBvcnRDb250cm9sbGVyXCJcblx0XHRcdCkge1xuXHRcdFx0XHRvRXh0ZW5zaW9uQVBJID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLmdldEV4dGVuc2lvbkFQSSgpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoc01vZHVsZS5zdGFydHNXaXRoKFwiL2V4dGVuc2lvbi9cIikpIHtcblx0XHRcdFx0Y29uc3QgZm5UYXJnZXQgPSBPYmplY3RQYXRoLmdldChzTW9kdWxlLnJlcGxhY2UoL1xcLy9nLCBcIi5cIikuc3Vic3RyKDEpLCBvRXh0ZW5zaW9uQVBJKTtcblx0XHRcdFx0cmVzb2x2ZShmblRhcmdldFtzTWV0aG9kXShvQmluZGluZ0NvbnRleHQsIGFTZWxlY3RlZENvbnRleHRzKSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzYXAudWkucmVxdWlyZShbc01vZHVsZV0sIGZ1bmN0aW9uKG1vZHVsZTogYW55KSB7XG5cdFx0XHRcdFx0Ly8gLSB3ZSBiaW5kIHRoZSBhY3Rpb24gdG8gdGhlIGV4dGVuc2lvbkFQSSBvZiB0aGUgY29udHJvbGxlciBzbyBpdCBoYXMgdGhlIHNhbWUgc2NvcGUgYXMgYSBjdXN0b20gc2VjdGlvblxuXHRcdFx0XHRcdC8vIC0gd2UgcHJvdmlkZSB0aGUgY29udGV4dCBhcyBBUEksIG1heWJlIGlmIG5lZWRlZCBmdXJ0aGVyIHByb3BlcnRpZXNcblx0XHRcdFx0XHRyZXNvbHZlKG1vZHVsZVtzTWV0aG9kXS5iaW5kKG9FeHRlbnNpb25BUEkpKG9CaW5kaW5nQ29udGV4dCwgYVNlbGVjdGVkQ29udGV4dHMpKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cdHZhbGlkYXRpb25XcmFwcGVyOiBmdW5jdGlvbihzTW9kdWxlOiBhbnksIHNNZXRob2Q6IGFueSwgb1ZhbGlkYXRpb25Db250ZXh0czogYW55LCBvVmlldzogYW55LCBvQmluZGluZ0NvbnRleHQ6IGFueSkge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuXHRcdFx0bGV0IG9FeHRlbnNpb25BUEk6IEV4dGVuc2lvbkFQSTtcblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRvVmlldy5nZXRDb250cm9sbGVyTmFtZSgpID09PSBcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiIHx8XG5cdFx0XHRcdG9WaWV3LmdldENvbnRyb2xsZXJOYW1lKCkgPT09IFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0Lkxpc3RSZXBvcnRDb250cm9sbGVyXCJcblx0XHRcdCkge1xuXHRcdFx0XHRvRXh0ZW5zaW9uQVBJID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLmdldEV4dGVuc2lvbkFQSSgpO1xuXHRcdFx0fVxuXG5cdFx0XHRzYXAudWkucmVxdWlyZShbc01vZHVsZV0sIGZ1bmN0aW9uKG1vZHVsZTogYW55KSB7XG5cdFx0XHRcdC8vIC0gd2UgYmluZCB0aGUgYWN0aW9uIHRvIHRoZSBleHRlbnNpb25BUEkgb2YgdGhlIGNvbnRyb2xsZXIgc28gaXQgaGFzIHRoZSBzYW1lIHNjb3BlIGFzIGEgY3VzdG9tIHNlY3Rpb25cblx0XHRcdFx0Ly8gLSB3ZSBwcm92aWRlIHRoZSBjb250ZXh0IGFzIEFQSSwgbWF5YmUgaWYgbmVlZGVkIGZ1cnRoZXIgcHJvcGVydGllc1xuXHRcdFx0XHRyZXNvbHZlKG1vZHVsZVtzTWV0aG9kXS5iaW5kKG9FeHRlbnNpb25BUEkpKG9CaW5kaW5nQ29udGV4dCwgb1ZhbGlkYXRpb25Db250ZXh0cykpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZQTUhlbHBlcjtcbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import ExtensionAPI from "sap/fe/core/ExtensionAPI";
2
+ import CommonUtils from "sap/fe/core/CommonUtils";
3
+ import ObjectPath from "sap/base/util/ObjectPath";
4
+ import Context from "sap/ui/model/Context";
5
+
6
+ const FPMHelper = {
7
+ actionWrapper: function(oEvent: any, sModule: any, sMethod: any, oParameters: any) {
8
+ return new Promise(function(resolve: (value: any) => void) {
9
+ const oSource = oEvent.getSource ? oEvent.getSource() : oEvent.oSource,
10
+ oView = CommonUtils.getTargetView(oSource),
11
+ oBindingContext = oSource.getBindingContext();
12
+ let oExtensionAPI: ExtensionAPI | undefined;
13
+ let aSelectedContexts: Context[];
14
+
15
+ if (oParameters !== undefined) {
16
+ aSelectedContexts = oParameters.contexts || [];
17
+ } else if (oBindingContext !== undefined) {
18
+ aSelectedContexts = [oBindingContext];
19
+ } else {
20
+ aSelectedContexts = [];
21
+ }
22
+
23
+ if (
24
+ oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" ||
25
+ oView.getControllerName() === "sap.fe.templates.ListReport.ListReportController"
26
+ ) {
27
+ oExtensionAPI = oView.getController().getExtensionAPI();
28
+ }
29
+
30
+ if (sModule.startsWith("/extension/")) {
31
+ const fnTarget = ObjectPath.get(sModule.replace(/\//g, ".").substr(1), oExtensionAPI);
32
+ resolve(fnTarget[sMethod](oBindingContext, aSelectedContexts));
33
+ } else {
34
+ sap.ui.require([sModule], function(module: any) {
35
+ // - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
36
+ // - we provide the context as API, maybe if needed further properties
37
+ resolve(module[sMethod].bind(oExtensionAPI)(oBindingContext, aSelectedContexts));
38
+ });
39
+ }
40
+ });
41
+ },
42
+ validationWrapper: function(sModule: any, sMethod: any, oValidationContexts: any, oView: any, oBindingContext: any) {
43
+ return new Promise(function(resolve: (value: any) => void) {
44
+ let oExtensionAPI: ExtensionAPI;
45
+
46
+ if (
47
+ oView.getControllerName() === "sap.fe.templates.ObjectPage.ObjectPageController" ||
48
+ oView.getControllerName() === "sap.fe.templates.ListReport.ListReportController"
49
+ ) {
50
+ oExtensionAPI = oView.getController().getExtensionAPI();
51
+ }
52
+
53
+ sap.ui.require([sModule], function(module: any) {
54
+ // - we bind the action to the extensionAPI of the controller so it has the same scope as a custom section
55
+ // - we provide the context as API, maybe if needed further properties
56
+ resolve(module[sMethod].bind(oExtensionAPI)(oBindingContext, oValidationContexts));
57
+ });
58
+ });
59
+ }
60
+ };
61
+
62
+ export default FPMHelper;