@sapui5/sap.fe.core 1.113.0 → 1.115.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 (375) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime-dbg.js +68 -5
  4. package/src/sap/fe/core/ActionRuntime.js +1 -1
  5. package/src/sap/fe/core/ActionRuntime.js.map +1 -1
  6. package/src/sap/fe/core/ActionRuntime.ts +120 -4
  7. package/src/sap/fe/core/AppComponent-dbg.js +8 -2
  8. package/src/sap/fe/core/AppComponent.js +1 -1
  9. package/src/sap/fe/core/AppComponent.js.map +1 -1
  10. package/src/sap/fe/core/AppComponent.ts +19 -3
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +14 -10
  12. package/src/sap/fe/core/AppStateHandler.js +1 -1
  13. package/src/sap/fe/core/AppStateHandler.js.map +1 -1
  14. package/src/sap/fe/core/AppStateHandler.ts +17 -11
  15. package/src/sap/fe/core/BaseController-dbg.js +1 -1
  16. package/src/sap/fe/core/BaseController.ts +13 -2
  17. package/src/sap/fe/core/CommonUtils-dbg.js +74 -317
  18. package/src/sap/fe/core/CommonUtils.js +1 -1
  19. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  20. package/src/sap/fe/core/CommonUtils.ts +96 -473
  21. package/src/sap/fe/core/ExtensionAPI-dbg.js +1 -1
  22. package/src/sap/fe/core/ExtensionAPI.ts +2 -2
  23. package/src/sap/fe/core/StateFilterToSelectionVariant-dbg.js +263 -0
  24. package/src/sap/fe/core/StateFilterToSelectionVariant.js +6 -0
  25. package/src/sap/fe/core/StateFilterToSelectionVariant.js.map +1 -0
  26. package/src/sap/fe/core/StateFilterToSelectionVariant.ts +316 -0
  27. package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
  28. package/src/sap/fe/core/TemplateComponent.ts +6 -0
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +10 -3
  30. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +1 -1
  31. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -1
  32. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +8 -1
  33. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +1 -1
  34. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +1 -0
  35. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +8 -8
  36. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -1
  37. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.ts +7 -7
  38. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +1 -1
  39. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +1 -1
  40. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +68 -36
  41. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  42. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  43. package/src/sap/fe/core/controllerextensions/EditFlow.ts +83 -43
  44. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +12 -11
  45. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  46. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  47. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +17 -21
  48. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +233 -133
  49. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  50. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  51. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +260 -145
  52. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +1 -1
  53. package/src/sap/fe/core/controllerextensions/MassEdit.ts +3 -3
  54. package/src/sap/fe/core/controllerextensions/Routing-dbg.js +5 -3
  55. package/src/sap/fe/core/controllerextensions/Routing.js.map +1 -1
  56. package/src/sap/fe/core/controllerextensions/Routing.ts +5 -4
  57. package/src/sap/fe/core/controllerextensions/Share-dbg.js +3 -2
  58. package/src/sap/fe/core/controllerextensions/Share.js +1 -1
  59. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  60. package/src/sap/fe/core/controllerextensions/Share.ts +2 -1
  61. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +19 -14
  62. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  63. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  64. package/src/sap/fe/core/controllerextensions/SideEffects.ts +25 -18
  65. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +40 -26
  66. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  67. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  68. package/src/sap/fe/core/controllerextensions/ViewState.ts +59 -33
  69. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +8 -8
  70. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  71. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  72. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +23 -25
  73. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +7 -45
  74. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  75. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  76. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +5 -48
  77. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +2 -2
  78. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
  79. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -1
  80. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +7 -3
  81. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +73 -90
  82. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  83. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  84. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +88 -101
  85. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +26 -4
  86. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  87. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  88. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +29 -3
  89. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +13 -10
  90. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +1 -1
  91. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  92. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +7 -20
  93. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +64 -4
  94. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +1 -1
  95. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -1
  96. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +91 -8
  97. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +2 -4
  98. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  99. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  100. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +3 -5
  101. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +9 -9
  102. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  103. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  104. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +8 -8
  105. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -0
  106. package/src/sap/fe/core/controls/CommandExecution-dbg.js +4 -9
  107. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  108. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  109. package/src/sap/fe/core/controls/CommandExecution.ts +0 -8
  110. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block-dbg.js +335 -0
  111. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +6 -0
  112. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js.map +1 -0
  113. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +336 -0
  114. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
  115. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +3 -28
  116. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
  117. package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -1
  118. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +8 -29
  119. package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters-dbg.js +435 -0
  120. package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters.js +6 -0
  121. package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters.js.map +1 -0
  122. package/src/sap/fe/core/controls/filterbar/adapter/SelectionVariantToStateFilters.ts +532 -0
  123. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +30 -1
  124. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  125. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  126. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +38 -0
  127. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  128. package/src/sap/fe/core/converters/ManifestSettings.ts +7 -5
  129. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +36 -4
  130. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  131. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  132. package/src/sap/fe/core/converters/MetaModelConverter.ts +45 -4
  133. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -3
  134. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  135. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  136. package/src/sap/fe/core/converters/TemplateConverter.ts +1 -6
  137. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +18 -3
  138. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  139. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  140. package/src/sap/fe/core/converters/annotations/DataField.ts +18 -2
  141. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +679 -676
  142. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  143. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  144. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +32 -20
  145. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  146. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  147. package/src/sap/fe/core/converters/controls/Common/Chart.ts +30 -18
  148. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +4 -5
  149. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  150. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  151. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +6 -37
  152. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +100 -72
  153. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  154. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  155. package/src/sap/fe/core/converters/controls/Common/Table.ts +146 -99
  156. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +37 -10
  157. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  158. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  159. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +49 -16
  160. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +47 -18
  161. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  162. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  163. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +74 -20
  164. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +26 -9
  165. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  166. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  167. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +24 -8
  168. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +28 -2
  169. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  170. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  171. package/src/sap/fe/core/converters/helpers/Aggregation.ts +28 -9
  172. package/src/sap/fe/core/converters/helpers/InsightsHelpers-dbg.js +39 -0
  173. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +6 -0
  174. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +1 -0
  175. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +45 -0
  176. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +13 -15
  177. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  178. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  179. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +18 -54
  180. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +12 -12
  181. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  182. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  183. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +16 -11
  184. package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +17 -33
  185. package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
  186. package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -1
  187. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +27 -22
  188. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -11
  189. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  190. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  191. package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -25
  192. package/src/sap/fe/core/fpm/Component-dbg.js +3 -1
  193. package/src/sap/fe/core/fpm/Component.js +1 -1
  194. package/src/sap/fe/core/fpm/Component.js.map +1 -1
  195. package/src/sap/fe/core/fpm/Component.ts +3 -1
  196. package/src/sap/fe/core/fpm/manifest.json +1 -1
  197. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +74 -26
  198. package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
  199. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  200. package/src/sap/fe/core/helpers/BindingToolkit.ts +116 -33
  201. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +82 -37
  202. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  203. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  204. package/src/sap/fe/core/helpers/DeleteHelper.ts +109 -56
  205. package/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +1 -1
  206. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +7 -5
  207. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +13 -3
  208. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  209. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  210. package/src/sap/fe/core/helpers/MassEditHelper.ts +28 -18
  211. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +1 -1
  212. package/src/sap/fe/core/helpers/MessageStrip.ts +2 -1
  213. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +1 -1
  214. package/src/sap/fe/core/helpers/ModelHelper.ts +3 -3
  215. package/src/sap/fe/core/helpers/RecommendationHelper-dbg.js +71 -0
  216. package/src/sap/fe/core/helpers/RecommendationHelper.js +6 -0
  217. package/src/sap/fe/core/helpers/RecommendationHelper.js.map +1 -0
  218. package/src/sap/fe/core/helpers/RecommendationHelper.ts +94 -0
  219. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +5 -2
  220. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
  221. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -1
  222. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +5 -0
  223. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +24 -2
  224. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  225. package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
  226. package/src/sap/fe/core/helpers/StableIdHelper.ts +23 -1
  227. package/src/sap/fe/core/helpers/TitleHelper-dbg.js +239 -0
  228. package/src/sap/fe/core/helpers/TitleHelper.js +6 -0
  229. package/src/sap/fe/core/helpers/TitleHelper.js.map +1 -0
  230. package/src/sap/fe/core/helpers/TitleHelper.ts +295 -0
  231. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +4 -1
  232. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +1 -1
  233. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
  234. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +3 -0
  235. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +41 -17
  236. package/src/sap/fe/core/jsx-runtime/jsx-control.js +1 -1
  237. package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -1
  238. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +45 -21
  239. package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
  240. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -0
  241. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +8 -4
  242. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
  243. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
  244. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +7 -2
  245. package/src/sap/fe/core/library-dbg.js +4 -3
  246. package/src/sap/fe/core/library-preload.js +91 -74
  247. package/src/sap/fe/core/library-preload.js.map +1 -1
  248. package/src/sap/fe/core/library.js +1 -1
  249. package/src/sap/fe/core/library.js.map +1 -1
  250. package/src/sap/fe/core/library.ts +1 -1
  251. package/src/sap/fe/core/manifest.json +1 -1
  252. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +4 -3
  253. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  254. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
  255. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +3 -2
  256. package/src/sap/fe/core/messagebundle.properties +12 -8
  257. package/src/sap/fe/core/messagebundle_ar.properties +7 -5
  258. package/src/sap/fe/core/messagebundle_bg.properties +7 -5
  259. package/src/sap/fe/core/messagebundle_ca.properties +7 -5
  260. package/src/sap/fe/core/messagebundle_cs.properties +7 -5
  261. package/src/sap/fe/core/messagebundle_cy.properties +7 -5
  262. package/src/sap/fe/core/messagebundle_da.properties +7 -5
  263. package/src/sap/fe/core/messagebundle_de.properties +7 -5
  264. package/src/sap/fe/core/messagebundle_el.properties +7 -5
  265. package/src/sap/fe/core/messagebundle_en.properties +7 -5
  266. package/src/sap/fe/core/messagebundle_en_GB.properties +6 -4
  267. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -4
  268. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +6 -4
  269. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +7 -4
  270. package/src/sap/fe/core/messagebundle_es.properties +7 -5
  271. package/src/sap/fe/core/messagebundle_es_MX.properties +7 -5
  272. package/src/sap/fe/core/messagebundle_et.properties +7 -5
  273. package/src/sap/fe/core/messagebundle_fi.properties +7 -5
  274. package/src/sap/fe/core/messagebundle_fr.properties +7 -5
  275. package/src/sap/fe/core/messagebundle_fr_CA.properties +8 -6
  276. package/src/sap/fe/core/messagebundle_hi.properties +7 -5
  277. package/src/sap/fe/core/messagebundle_hr.properties +7 -5
  278. package/src/sap/fe/core/messagebundle_hu.properties +7 -5
  279. package/src/sap/fe/core/messagebundle_id.properties +7 -5
  280. package/src/sap/fe/core/messagebundle_it.properties +8 -6
  281. package/src/sap/fe/core/messagebundle_iw.properties +7 -5
  282. package/src/sap/fe/core/messagebundle_ja.properties +7 -5
  283. package/src/sap/fe/core/messagebundle_kk.properties +7 -5
  284. package/src/sap/fe/core/messagebundle_ko.properties +7 -5
  285. package/src/sap/fe/core/messagebundle_lt.properties +7 -5
  286. package/src/sap/fe/core/messagebundle_lv.properties +7 -5
  287. package/src/sap/fe/core/messagebundle_ms.properties +7 -5
  288. package/src/sap/fe/core/messagebundle_nl.properties +7 -5
  289. package/src/sap/fe/core/messagebundle_no.properties +7 -5
  290. package/src/sap/fe/core/messagebundle_pl.properties +7 -5
  291. package/src/sap/fe/core/messagebundle_pt.properties +7 -5
  292. package/src/sap/fe/core/messagebundle_pt_PT.properties +7 -5
  293. package/src/sap/fe/core/messagebundle_ro.properties +7 -5
  294. package/src/sap/fe/core/messagebundle_ru.properties +7 -5
  295. package/src/sap/fe/core/messagebundle_sh.properties +7 -5
  296. package/src/sap/fe/core/messagebundle_sk.properties +7 -5
  297. package/src/sap/fe/core/messagebundle_sl.properties +7 -5
  298. package/src/sap/fe/core/messagebundle_sv.properties +7 -5
  299. package/src/sap/fe/core/messagebundle_th.properties +7 -5
  300. package/src/sap/fe/core/messagebundle_tr.properties +7 -5
  301. package/src/sap/fe/core/messagebundle_uk.properties +7 -5
  302. package/src/sap/fe/core/messagebundle_vi.properties +7 -5
  303. package/src/sap/fe/core/messagebundle_zh_CN.properties +7 -5
  304. package/src/sap/fe/core/messagebundle_zh_TW.properties +7 -5
  305. package/src/sap/fe/core/operationsHelper-dbg.js +1 -1
  306. package/src/sap/fe/core/operationsHelper.ts +1 -1
  307. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +8 -2
  308. package/src/sap/fe/core/rootView/Fcl.controller.js +1 -1
  309. package/src/sap/fe/core/rootView/Fcl.controller.js.map +1 -1
  310. package/src/sap/fe/core/rootView/Fcl.controller.ts +8 -1
  311. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +8 -2
  312. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  313. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
  314. package/src/sap/fe/core/rootView/NavContainer.controller.ts +10 -3
  315. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +16 -6
  316. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  317. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  318. package/src/sap/fe/core/rootView/RootViewBaseController.ts +10 -4
  319. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +54 -5
  320. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  321. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  322. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +52 -6
  323. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +31 -14
  324. package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  325. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  326. package/src/sap/fe/core/services/NavigationServiceFactory.ts +15 -1
  327. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +10 -4
  328. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  329. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  330. package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -7
  331. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +5 -2
  332. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  333. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  334. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +9 -5
  335. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -2
  336. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  337. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +2 -18
  338. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +8 -8
  339. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
  340. package/src/sap/fe/core/templating/CommonFormatters.ts +9 -9
  341. package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +1 -1
  342. package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
  343. package/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +38 -2
  344. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
  345. package/src/sap/fe/core/templating/DataFieldFormatters.js.map +1 -1
  346. package/src/sap/fe/core/templating/DataFieldFormatters.ts +40 -0
  347. package/src/sap/fe/core/templating/FieldControlHelper-dbg.js +5 -6
  348. package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
  349. package/src/sap/fe/core/templating/FieldControlHelper.js.map +1 -1
  350. package/src/sap/fe/core/templating/FieldControlHelper.ts +13 -11
  351. package/src/sap/fe/core/templating/FilterHelper-dbg.js +13 -1
  352. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  353. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  354. package/src/sap/fe/core/templating/FilterHelper.ts +13 -1
  355. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
  356. package/src/sap/fe/core/templating/PropertyHelper.ts +7 -7
  357. package/src/sap/fe/core/templating/UIFormatters-dbg.js +5 -6
  358. package/src/sap/fe/core/templating/UIFormatters.js +1 -1
  359. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
  360. package/src/sap/fe/core/templating/UIFormatters.ts +6 -7
  361. package/src/sap/fe/core/type/TypeUtil-dbg.js +2 -2
  362. package/src/sap/fe/core/type/TypeUtil.js +1 -1
  363. package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
  364. package/src/sap/fe/core/type/TypeUtil.ts +2 -2
  365. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +0 -243
  366. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +0 -6
  367. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +0 -1
  368. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +0 -283
  369. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +0 -121
  370. package/src/sap/fe/core/controllerextensions/collaboration/UserDetails.fragment.xml +0 -11
  371. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +0 -59
  372. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +0 -171
  373. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +0 -6
  374. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +0 -1
  375. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +0 -184
@@ -1,171 +0,0 @@
1
- /*!
2
- * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
- */
5
- sap.ui.define(["sap/base/Log", "sap/ui/core/Fragment", "sap/ui/core/util/XMLPreprocessor", "sap/ui/core/XMLTemplateProcessor", "sap/ui/model/json/JSONModel"], function (Log, Fragment, XMLPreprocessor, XMLTemplateProcessor, JSONModel) {
6
- "use strict";
7
-
8
- var _exports = {};
9
- var DraftDataLossOptions;
10
- (function (DraftDataLossOptions) {
11
- DraftDataLossOptions["Save"] = "draftDataLossOptionSave";
12
- DraftDataLossOptions["Keep"] = "draftDataLossOptionKeep";
13
- DraftDataLossOptions["Discard"] = "draftDataLossOptionDiscard";
14
- })(DraftDataLossOptions || (DraftDataLossOptions = {}));
15
- let onDataLossConfirmedFollowUpFunction;
16
- let onDataLossCancelFollowUpFunction;
17
- function fnDataLossConfirmation(fnOnDataLossOk, fnOnDataLossCancel, controller, skipBindingToView) {
18
- // Open the data loss popup and after processing the selected function finally call
19
- // onDataLossConfirmed which resolves the promise and leads to processing of the originally
20
- // triggered action like e.g. a back navigation
21
- let dataLossPopup;
22
- onDataLossConfirmedFollowUpFunction = fnOnDataLossOk;
23
- onDataLossCancelFollowUpFunction = fnOnDataLossCancel;
24
- const fragmentName = "sap.fe.core.controls.DataLossOrDraftDiscard.DataLossDraft";
25
- const view = controller.getView();
26
- const fragmentController = {
27
- onDataLossOk: function () {
28
- handleDataLossOk(dataLossPopup, controller, onDataLossConfirmedFollowUpFunction, skipBindingToView);
29
- },
30
- onDataLossCancel: function () {
31
- onDataLossCancelFollowUpFunction();
32
- dataLossPopup.close();
33
- },
34
- setDataLossPopup: function (inDataLossPopup) {
35
- controller.dataLossPopup = inDataLossPopup;
36
- }
37
- };
38
- const localThisModel = new JSONModel({}),
39
- preprocessorSettings = {
40
- bindingContexts: {
41
- this: localThisModel.createBindingContext("/")
42
- },
43
- models: {
44
- this: localThisModel
45
- }
46
- };
47
- if (controller.dataLossPopup) {
48
- dataLossPopup = controller.dataLossPopup;
49
- dataLossPopup.open();
50
- selectAndFocusFirstEntry(dataLossPopup);
51
- } else {
52
- const dialogFragment = XMLTemplateProcessor.loadTemplate(fragmentName, "fragment");
53
- Promise.resolve(XMLPreprocessor.process(dialogFragment, {
54
- name: fragmentName
55
- }, preprocessorSettings)).then(fragment => {
56
- return Fragment.load({
57
- definition: fragment,
58
- controller: fragmentController
59
- });
60
- }).then(popup => {
61
- dataLossPopup = popup;
62
- selectAndFocusFirstEntry(dataLossPopup);
63
- const dataLossOptionsList = dataLossPopup.getContent().find(element => element.data("listIdentifier") === "draftDataLossOptionsList");
64
- dataLossOptionsList.addEventDelegate({
65
- onsapenter: function () {
66
- handleDataLossOk(dataLossPopup, controller, onDataLossConfirmedFollowUpFunction, skipBindingToView);
67
- }
68
- });
69
- view.addDependent(dataLossPopup);
70
- dataLossPopup.open();
71
- fragmentController.setDataLossPopup(dataLossPopup);
72
- }).catch(function (error) {
73
- Log.error("Error while opening the Discard Dialog fragment", error);
74
- });
75
- }
76
- }
77
- function performAfterDiscardorKeepDraft(processFunctionOnDatalossOk, processFunctionOnDatalossCancel, controller, skipBindingToView) {
78
- // Depending on if the user closed the data loss popup with Ok or Cancel,
79
- // execute the provided follow-up function and resolve or reject the promise
80
- return new Promise(function (resolve, reject) {
81
- const dataLossPopupOk = function (context) {
82
- const returnValue = processFunctionOnDatalossOk(context);
83
- resolve(returnValue);
84
- };
85
- const dataLossPopupCancel = function () {
86
- processFunctionOnDatalossCancel();
87
- reject();
88
- };
89
- fnDataLossConfirmation(dataLossPopupOk, dataLossPopupCancel, controller, skipBindingToView);
90
- });
91
- }
92
- _exports.performAfterDiscardorKeepDraft = performAfterDiscardorKeepDraft;
93
- function discardDraft(controller, skipBindingToView) {
94
- const context = controller.getView().getBindingContext();
95
- const params = {
96
- skipBackNavigation: true,
97
- skipDiscardPopover: true,
98
- skipBindingToView: skipBindingToView !== undefined ? skipBindingToView : true
99
- };
100
- return controller.editFlow.cancelDocument(context, params);
101
- }
102
- _exports.discardDraft = discardDraft;
103
- function saveDocument(controller) {
104
- const context = controller.getView().getBindingContext();
105
- // We check if we are on the OP and then call the internal _saveDocument from the OP controller
106
- // since here some special handling is done for creationRow before editFlow.saveDocument is called.
107
- // In case of a custom controller we directly call saveDocument from the editFlow
108
- if (controller.isA("sap.fe.templates.ObjectPage.ObjectPageController")) {
109
- return controller._saveDocument(context);
110
- } else {
111
- return controller.editFlow.saveDocument(context);
112
- }
113
- }
114
- _exports.saveDocument = saveDocument;
115
- function getSelectedKey(dataLossPopup) {
116
- // For not using control IDs we introduced customData in the fragment and
117
- // use it here for finding the correct list in the dialog and for
118
- // determining the selected option from the list
119
- const dataLossOptionsList = dataLossPopup.getContent().find(element => element.data("listIdentifier") === "draftDataLossOptionsList");
120
- return dataLossOptionsList.getSelectedItem().data("itemKey");
121
- }
122
- _exports.getSelectedKey = getSelectedKey;
123
- function selectAndFocusFirstEntry(dataLossPopup) {
124
- // For not using control IDs we introduced customData in the fragment and
125
- // use it here for finding the correct list in the dialog.
126
- const dataLossOptionsList = dataLossPopup.getContent().find(element => element.data("listIdentifier") === "draftDataLossOptionsList");
127
- // Preselect the first entry in the list
128
- const firstListItemOption = dataLossOptionsList.getItems()[0];
129
- dataLossOptionsList.setSelectedItem(firstListItemOption);
130
- // By default set the focus on the first list item of the dialog
131
- // We do not set the focus on the button, but catch the ENTER key in the dialog
132
- // and process it as Ok, since focusing the button was reported as an ACC issue
133
- firstListItemOption === null || firstListItemOption === void 0 ? void 0 : firstListItemOption.focus();
134
- }
135
-
136
- /**
137
- * Executes the logic when the data loss dialog is confirmed.
138
- *
139
- * @param dataLossPopup Reference to the data loss dialog
140
- * @param controller Reference to the controller
141
- * @param dataLossConfirmationFollowUpFunction The action to be performed after the selected option has been executed
142
- * @param skipBindingToView Forwarded to discardDraft
143
- */
144
- _exports.selectAndFocusFirstEntry = selectAndFocusFirstEntry;
145
- function handleDataLossOk(dataLossPopup, controller, dataLossConfirmationFollowUpFunction, skipBindingToView) {
146
- const selectedKey = getSelectedKey(dataLossPopup);
147
- if (selectedKey === DraftDataLossOptions.Save) {
148
- saveDocument(controller).then(dataLossConfirmationFollowUpFunction).catch(function (error) {
149
- Log.error("Error while saving document", error);
150
- });
151
- dataLossPopup.close();
152
- } else if (selectedKey === DraftDataLossOptions.Keep) {
153
- dataLossConfirmationFollowUpFunction();
154
- dataLossPopup.close();
155
- } else if (selectedKey === DraftDataLossOptions.Discard) {
156
- discardDraft(controller, skipBindingToView).then(dataLossConfirmationFollowUpFunction).catch(function (error) {
157
- Log.error("Error while discarding draft", error);
158
- });
159
- dataLossPopup.close();
160
- }
161
- }
162
- _exports.handleDataLossOk = handleDataLossOk;
163
- return {
164
- performAfterDiscardorKeepDraft,
165
- discardDraft,
166
- saveDocument,
167
- getSelectedKey,
168
- selectAndFocusFirstEntry
169
- };
170
- }, false);
171
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEcmFmdERhdGFMb3NzT3B0aW9ucyIsIm9uRGF0YUxvc3NDb25maXJtZWRGb2xsb3dVcEZ1bmN0aW9uIiwib25EYXRhTG9zc0NhbmNlbEZvbGxvd1VwRnVuY3Rpb24iLCJmbkRhdGFMb3NzQ29uZmlybWF0aW9uIiwiZm5PbkRhdGFMb3NzT2siLCJmbk9uRGF0YUxvc3NDYW5jZWwiLCJjb250cm9sbGVyIiwic2tpcEJpbmRpbmdUb1ZpZXciLCJkYXRhTG9zc1BvcHVwIiwiZnJhZ21lbnROYW1lIiwidmlldyIsImdldFZpZXciLCJmcmFnbWVudENvbnRyb2xsZXIiLCJvbkRhdGFMb3NzT2siLCJoYW5kbGVEYXRhTG9zc09rIiwib25EYXRhTG9zc0NhbmNlbCIsImNsb3NlIiwic2V0RGF0YUxvc3NQb3B1cCIsImluRGF0YUxvc3NQb3B1cCIsImxvY2FsVGhpc01vZGVsIiwiSlNPTk1vZGVsIiwicHJlcHJvY2Vzc29yU2V0dGluZ3MiLCJiaW5kaW5nQ29udGV4dHMiLCJ0aGlzIiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJtb2RlbHMiLCJvcGVuIiwic2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5IiwiZGlhbG9nRnJhZ21lbnQiLCJYTUxUZW1wbGF0ZVByb2Nlc3NvciIsImxvYWRUZW1wbGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsIm5hbWUiLCJ0aGVuIiwiZnJhZ21lbnQiLCJGcmFnbWVudCIsImxvYWQiLCJkZWZpbml0aW9uIiwicG9wdXAiLCJkYXRhTG9zc09wdGlvbnNMaXN0IiwiZ2V0Q29udGVudCIsImZpbmQiLCJlbGVtZW50IiwiZGF0YSIsImFkZEV2ZW50RGVsZWdhdGUiLCJvbnNhcGVudGVyIiwiYWRkRGVwZW5kZW50IiwiY2F0Y2giLCJlcnJvciIsIkxvZyIsInBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdCIsInByb2Nlc3NGdW5jdGlvbk9uRGF0YWxvc3NPayIsInByb2Nlc3NGdW5jdGlvbk9uRGF0YWxvc3NDYW5jZWwiLCJyZWplY3QiLCJkYXRhTG9zc1BvcHVwT2siLCJjb250ZXh0IiwicmV0dXJuVmFsdWUiLCJkYXRhTG9zc1BvcHVwQ2FuY2VsIiwiZGlzY2FyZERyYWZ0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJwYXJhbXMiLCJza2lwQmFja05hdmlnYXRpb24iLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJ1bmRlZmluZWQiLCJlZGl0RmxvdyIsImNhbmNlbERvY3VtZW50Iiwic2F2ZURvY3VtZW50IiwiaXNBIiwiX3NhdmVEb2N1bWVudCIsImdldFNlbGVjdGVkS2V5IiwiZ2V0U2VsZWN0ZWRJdGVtIiwiZmlyc3RMaXN0SXRlbU9wdGlvbiIsImdldEl0ZW1zIiwic2V0U2VsZWN0ZWRJdGVtIiwiZm9jdXMiLCJkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb24iLCJzZWxlY3RlZEtleSIsIlNhdmUiLCJLZWVwIiwiRGlzY2FyZCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSBDdXN0b21MaXN0SXRlbSBmcm9tIFwic2FwL20vQ3VzdG9tTGlzdEl0ZW1cIjtcbmltcG9ydCB0eXBlIERpYWxvZyBmcm9tIFwic2FwL20vRGlhbG9nXCI7XG5pbXBvcnQgdHlwZSBMaXN0IGZyb20gXCJzYXAvbS9MaXN0XCI7XG5pbXBvcnQgRnJhZ21lbnQgZnJvbSBcInNhcC91aS9jb3JlL0ZyYWdtZW50XCI7XG5pbXBvcnQgWE1MUHJlcHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IFhNTFRlbXBsYXRlUHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS9YTUxUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5cbmVudW0gRHJhZnREYXRhTG9zc09wdGlvbnMge1xuXHRTYXZlID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uU2F2ZVwiLFxuXHRLZWVwID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uS2VlcFwiLFxuXHREaXNjYXJkID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uRGlzY2FyZFwiXG59XG5cbmxldCBvbkRhdGFMb3NzQ29uZmlybWVkRm9sbG93VXBGdW5jdGlvbjogRnVuY3Rpb247XG5sZXQgb25EYXRhTG9zc0NhbmNlbEZvbGxvd1VwRnVuY3Rpb246IEZ1bmN0aW9uO1xuZnVuY3Rpb24gZm5EYXRhTG9zc0NvbmZpcm1hdGlvbihmbk9uRGF0YUxvc3NPazogYW55LCBmbk9uRGF0YUxvc3NDYW5jZWw6IGFueSwgY29udHJvbGxlcjogYW55LCBza2lwQmluZGluZ1RvVmlldzogYW55KSB7XG5cdC8vIE9wZW4gdGhlIGRhdGEgbG9zcyBwb3B1cCBhbmQgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgc2VsZWN0ZWQgZnVuY3Rpb24gZmluYWxseSBjYWxsXG5cdC8vIG9uRGF0YUxvc3NDb25maXJtZWQgd2hpY2ggcmVzb2x2ZXMgdGhlIHByb21pc2UgYW5kIGxlYWRzIHRvIHByb2Nlc3Npbmcgb2YgdGhlIG9yaWdpbmFsbHlcblx0Ly8gdHJpZ2dlcmVkIGFjdGlvbiBsaWtlIGUuZy4gYSBiYWNrIG5hdmlnYXRpb25cblx0bGV0IGRhdGFMb3NzUG9wdXA6IERpYWxvZztcblx0b25EYXRhTG9zc0NvbmZpcm1lZEZvbGxvd1VwRnVuY3Rpb24gPSBmbk9uRGF0YUxvc3NPaztcblx0b25EYXRhTG9zc0NhbmNlbEZvbGxvd1VwRnVuY3Rpb24gPSBmbk9uRGF0YUxvc3NDYW5jZWw7XG5cdGNvbnN0IGZyYWdtZW50TmFtZSA9IFwic2FwLmZlLmNvcmUuY29udHJvbHMuRGF0YUxvc3NPckRyYWZ0RGlzY2FyZC5EYXRhTG9zc0RyYWZ0XCI7XG5cdGNvbnN0IHZpZXcgPSBjb250cm9sbGVyLmdldFZpZXcoKTtcblx0Y29uc3QgZnJhZ21lbnRDb250cm9sbGVyOiBhbnkgPSB7XG5cdFx0b25EYXRhTG9zc09rOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRoYW5kbGVEYXRhTG9zc09rKGRhdGFMb3NzUG9wdXAsIGNvbnRyb2xsZXIsIG9uRGF0YUxvc3NDb25maXJtZWRGb2xsb3dVcEZ1bmN0aW9uLCBza2lwQmluZGluZ1RvVmlldyk7XG5cdFx0fSxcblx0XHRvbkRhdGFMb3NzQ2FuY2VsOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRvbkRhdGFMb3NzQ2FuY2VsRm9sbG93VXBGdW5jdGlvbigpO1xuXHRcdFx0ZGF0YUxvc3NQb3B1cC5jbG9zZSgpO1xuXHRcdH0sXG5cdFx0c2V0RGF0YUxvc3NQb3B1cDogZnVuY3Rpb24gKGluRGF0YUxvc3NQb3B1cDogRGlhbG9nKSB7XG5cdFx0XHRjb250cm9sbGVyLmRhdGFMb3NzUG9wdXAgPSBpbkRhdGFMb3NzUG9wdXA7XG5cdFx0fVxuXHR9O1xuXG5cdGNvbnN0IGxvY2FsVGhpc01vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSksXG5cdFx0cHJlcHJvY2Vzc29yU2V0dGluZ3MgPSB7XG5cdFx0XHRiaW5kaW5nQ29udGV4dHM6IHtcblx0XHRcdFx0dGhpczogbG9jYWxUaGlzTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpXG5cdFx0XHR9LFxuXHRcdFx0bW9kZWxzOiB7XG5cdFx0XHRcdHRoaXM6IGxvY2FsVGhpc01vZGVsXG5cdFx0XHR9XG5cdFx0fTtcblxuXHRpZiAoY29udHJvbGxlci5kYXRhTG9zc1BvcHVwKSB7XG5cdFx0ZGF0YUxvc3NQb3B1cCA9IGNvbnRyb2xsZXIuZGF0YUxvc3NQb3B1cDtcblx0XHRkYXRhTG9zc1BvcHVwLm9wZW4oKTtcblx0XHRzZWxlY3RBbmRGb2N1c0ZpcnN0RW50cnkoZGF0YUxvc3NQb3B1cCk7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgZGlhbG9nRnJhZ21lbnQgPSBYTUxUZW1wbGF0ZVByb2Nlc3Nvci5sb2FkVGVtcGxhdGUoZnJhZ21lbnROYW1lLCBcImZyYWdtZW50XCIpO1xuXHRcdFByb21pc2UucmVzb2x2ZShYTUxQcmVwcm9jZXNzb3IucHJvY2VzcyhkaWFsb2dGcmFnbWVudCwgeyBuYW1lOiBmcmFnbWVudE5hbWUgfSwgcHJlcHJvY2Vzc29yU2V0dGluZ3MpKVxuXHRcdFx0LnRoZW4oKGZyYWdtZW50KSA9PiB7XG5cdFx0XHRcdHJldHVybiBGcmFnbWVudC5sb2FkKHsgZGVmaW5pdGlvbjogZnJhZ21lbnQsIGNvbnRyb2xsZXI6IGZyYWdtZW50Q29udHJvbGxlciB9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigocG9wdXA6IGFueSkgPT4ge1xuXHRcdFx0XHRkYXRhTG9zc1BvcHVwID0gcG9wdXA7XG5cdFx0XHRcdHNlbGVjdEFuZEZvY3VzRmlyc3RFbnRyeShkYXRhTG9zc1BvcHVwKTtcblx0XHRcdFx0Y29uc3QgZGF0YUxvc3NPcHRpb25zTGlzdDogTGlzdCA9IGRhdGFMb3NzUG9wdXBcblx0XHRcdFx0XHQuZ2V0Q29udGVudCgpXG5cdFx0XHRcdFx0LmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuZGF0YShcImxpc3RJZGVudGlmaWVyXCIpID09PSBcImRyYWZ0RGF0YUxvc3NPcHRpb25zTGlzdFwiKSBhcyBMaXN0O1xuXHRcdFx0XHRkYXRhTG9zc09wdGlvbnNMaXN0LmFkZEV2ZW50RGVsZWdhdGUoe1xuXHRcdFx0XHRcdG9uc2FwZW50ZXI6IGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdGhhbmRsZURhdGFMb3NzT2soZGF0YUxvc3NQb3B1cCwgY29udHJvbGxlciwgb25EYXRhTG9zc0NvbmZpcm1lZEZvbGxvd1VwRnVuY3Rpb24sIHNraXBCaW5kaW5nVG9WaWV3KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHR2aWV3LmFkZERlcGVuZGVudChkYXRhTG9zc1BvcHVwKTtcblx0XHRcdFx0ZGF0YUxvc3NQb3B1cC5vcGVuKCk7XG5cdFx0XHRcdGZyYWdtZW50Q29udHJvbGxlci5zZXREYXRhTG9zc1BvcHVwKGRhdGFMb3NzUG9wdXApO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBvcGVuaW5nIHRoZSBEaXNjYXJkIERpYWxvZyBmcmFnbWVudFwiLCBlcnJvcik7XG5cdFx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KFxuXHRwcm9jZXNzRnVuY3Rpb25PbkRhdGFsb3NzT2s6IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc0NhbmNlbDogYW55LFxuXHRjb250cm9sbGVyOiBhbnksXG5cdHNraXBCaW5kaW5nVG9WaWV3OiBhbnlcbikge1xuXHQvLyBEZXBlbmRpbmcgb24gaWYgdGhlIHVzZXIgY2xvc2VkIHRoZSBkYXRhIGxvc3MgcG9wdXAgd2l0aCBPayBvciBDYW5jZWwsXG5cdC8vIGV4ZWN1dGUgdGhlIHByb3ZpZGVkIGZvbGxvdy11cCBmdW5jdGlvbiBhbmQgcmVzb2x2ZSBvciByZWplY3QgdGhlIHByb21pc2Vcblx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCwgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkKSB7XG5cdFx0Y29uc3QgZGF0YUxvc3NQb3B1cE9rID0gZnVuY3Rpb24gKGNvbnRleHQ6IGFueSkge1xuXHRcdFx0Y29uc3QgcmV0dXJuVmFsdWUgPSBwcm9jZXNzRnVuY3Rpb25PbkRhdGFsb3NzT2soY29udGV4dCk7XG5cdFx0XHRyZXNvbHZlKHJldHVyblZhbHVlKTtcblx0XHR9O1xuXHRcdGNvbnN0IGRhdGFMb3NzUG9wdXBDYW5jZWwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25PbkRhdGFsb3NzQ2FuY2VsKCk7XG5cdFx0XHRyZWplY3QoKTtcblx0XHR9O1xuXHRcdGZuRGF0YUxvc3NDb25maXJtYXRpb24oZGF0YUxvc3NQb3B1cE9rLCBkYXRhTG9zc1BvcHVwQ2FuY2VsLCBjb250cm9sbGVyLCBza2lwQmluZGluZ1RvVmlldyk7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzY2FyZERyYWZ0KGNvbnRyb2xsZXI6IGFueSwgc2tpcEJpbmRpbmdUb1ZpZXc6IGFueSkge1xuXHRjb25zdCBjb250ZXh0ID0gY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0Y29uc3QgcGFyYW1zID0ge1xuXHRcdHNraXBCYWNrTmF2aWdhdGlvbjogdHJ1ZSxcblx0XHRza2lwRGlzY2FyZFBvcG92ZXI6IHRydWUsXG5cdFx0c2tpcEJpbmRpbmdUb1ZpZXc6IHNraXBCaW5kaW5nVG9WaWV3ICE9PSB1bmRlZmluZWQgPyBza2lwQmluZGluZ1RvVmlldyA6IHRydWVcblx0fTtcblx0cmV0dXJuIGNvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQoY29udGV4dCwgcGFyYW1zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVEb2N1bWVudChjb250cm9sbGVyOiBhbnkpIHtcblx0Y29uc3QgY29udGV4dCA9IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdC8vIFdlIGNoZWNrIGlmIHdlIGFyZSBvbiB0aGUgT1AgYW5kIHRoZW4gY2FsbCB0aGUgaW50ZXJuYWwgX3NhdmVEb2N1bWVudCBmcm9tIHRoZSBPUCBjb250cm9sbGVyXG5cdC8vIHNpbmNlIGhlcmUgc29tZSBzcGVjaWFsIGhhbmRsaW5nIGlzIGRvbmUgZm9yIGNyZWF0aW9uUm93IGJlZm9yZSBlZGl0Rmxvdy5zYXZlRG9jdW1lbnQgaXMgY2FsbGVkLlxuXHQvLyBJbiBjYXNlIG9mIGEgY3VzdG9tIGNvbnRyb2xsZXIgd2UgZGlyZWN0bHkgY2FsbCBzYXZlRG9jdW1lbnQgZnJvbSB0aGUgZWRpdEZsb3dcblx0aWYgKGNvbnRyb2xsZXIuaXNBKFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLk9iamVjdFBhZ2VDb250cm9sbGVyXCIpKSB7XG5cdFx0cmV0dXJuIGNvbnRyb2xsZXIuX3NhdmVEb2N1bWVudChjb250ZXh0KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gY29udHJvbGxlci5lZGl0Rmxvdy5zYXZlRG9jdW1lbnQoY29udGV4dCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGVkS2V5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZyBhbmQgZm9yXG5cdC8vIGRldGVybWluaW5nIHRoZSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgbGlzdFxuXHRjb25zdCBkYXRhTG9zc09wdGlvbnNMaXN0OiBMaXN0ID0gZGF0YUxvc3NQb3B1cFxuXHRcdC5nZXRDb250ZW50KClcblx0XHQuZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5kYXRhKFwibGlzdElkZW50aWZpZXJcIikgPT09IFwiZHJhZnREYXRhTG9zc09wdGlvbnNMaXN0XCIpIGFzIExpc3Q7XG5cdHJldHVybiBkYXRhTG9zc09wdGlvbnNMaXN0LmdldFNlbGVjdGVkSXRlbSgpLmRhdGEoXCJpdGVtS2V5XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZy5cblx0Y29uc3QgZGF0YUxvc3NPcHRpb25zTGlzdDogTGlzdCA9IGRhdGFMb3NzUG9wdXBcblx0XHQuZ2V0Q29udGVudCgpXG5cdFx0LmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuZGF0YShcImxpc3RJZGVudGlmaWVyXCIpID09PSBcImRyYWZ0RGF0YUxvc3NPcHRpb25zTGlzdFwiKSBhcyBMaXN0O1xuXHQvLyBQcmVzZWxlY3QgdGhlIGZpcnN0IGVudHJ5IGluIHRoZSBsaXN0XG5cdGNvbnN0IGZpcnN0TGlzdEl0ZW1PcHRpb246IEN1c3RvbUxpc3RJdGVtID0gZGF0YUxvc3NPcHRpb25zTGlzdC5nZXRJdGVtcygpWzBdIGFzIEN1c3RvbUxpc3RJdGVtO1xuXHRkYXRhTG9zc09wdGlvbnNMaXN0LnNldFNlbGVjdGVkSXRlbShmaXJzdExpc3RJdGVtT3B0aW9uKTtcblx0Ly8gQnkgZGVmYXVsdCBzZXQgdGhlIGZvY3VzIG9uIHRoZSBmaXJzdCBsaXN0IGl0ZW0gb2YgdGhlIGRpYWxvZ1xuXHQvLyBXZSBkbyBub3Qgc2V0IHRoZSBmb2N1cyBvbiB0aGUgYnV0dG9uLCBidXQgY2F0Y2ggdGhlIEVOVEVSIGtleSBpbiB0aGUgZGlhbG9nXG5cdC8vIGFuZCBwcm9jZXNzIGl0IGFzIE9rLCBzaW5jZSBmb2N1c2luZyB0aGUgYnV0dG9uIHdhcyByZXBvcnRlZCBhcyBhbiBBQ0MgaXNzdWVcblx0Zmlyc3RMaXN0SXRlbU9wdGlvbj8uZm9jdXMoKTtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyB0aGUgbG9naWMgd2hlbiB0aGUgZGF0YSBsb3NzIGRpYWxvZyBpcyBjb25maXJtZWQuXG4gKlxuICogQHBhcmFtIGRhdGFMb3NzUG9wdXAgUmVmZXJlbmNlIHRvIHRoZSBkYXRhIGxvc3MgZGlhbG9nXG4gKiBAcGFyYW0gY29udHJvbGxlciBSZWZlcmVuY2UgdG8gdGhlIGNvbnRyb2xsZXJcbiAqIEBwYXJhbSBkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb24gVGhlIGFjdGlvbiB0byBiZSBwZXJmb3JtZWQgYWZ0ZXIgdGhlIHNlbGVjdGVkIG9wdGlvbiBoYXMgYmVlbiBleGVjdXRlZFxuICogQHBhcmFtIHNraXBCaW5kaW5nVG9WaWV3IEZvcndhcmRlZCB0byBkaXNjYXJkRHJhZnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZURhdGFMb3NzT2soXG5cdGRhdGFMb3NzUG9wdXA6IERpYWxvZyxcblx0Y29udHJvbGxlcjogYW55LFxuXHRkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb246IEZ1bmN0aW9uLFxuXHRza2lwQmluZGluZ1RvVmlldzogYm9vbGVhblxuKSB7XG5cdGNvbnN0IHNlbGVjdGVkS2V5ID0gZ2V0U2VsZWN0ZWRLZXkoZGF0YUxvc3NQb3B1cCk7XG5cdGlmIChzZWxlY3RlZEtleSA9PT0gRHJhZnREYXRhTG9zc09wdGlvbnMuU2F2ZSkge1xuXHRcdHNhdmVEb2N1bWVudChjb250cm9sbGVyKVxuXHRcdFx0LnRoZW4oZGF0YUxvc3NDb25maXJtYXRpb25Gb2xsb3dVcEZ1bmN0aW9uKVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIHNhdmluZyBkb2N1bWVudFwiLCBlcnJvcik7XG5cdFx0XHR9KTtcblx0XHRkYXRhTG9zc1BvcHVwLmNsb3NlKCk7XG5cdH0gZWxzZSBpZiAoc2VsZWN0ZWRLZXkgPT09IERyYWZ0RGF0YUxvc3NPcHRpb25zLktlZXApIHtcblx0XHRkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb24oKTtcblx0XHRkYXRhTG9zc1BvcHVwLmNsb3NlKCk7XG5cdH0gZWxzZSBpZiAoc2VsZWN0ZWRLZXkgPT09IERyYWZ0RGF0YUxvc3NPcHRpb25zLkRpc2NhcmQpIHtcblx0XHRkaXNjYXJkRHJhZnQoY29udHJvbGxlciwgc2tpcEJpbmRpbmdUb1ZpZXcpXG5cdFx0XHQudGhlbihkYXRhTG9zc0NvbmZpcm1hdGlvbkZvbGxvd1VwRnVuY3Rpb24pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZGlzY2FyZGluZyBkcmFmdFwiLCBlcnJvcik7XG5cdFx0XHR9KTtcblx0XHRkYXRhTG9zc1BvcHVwLmNsb3NlKCk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgeyBwZXJmb3JtQWZ0ZXJEaXNjYXJkb3JLZWVwRHJhZnQsIGRpc2NhcmREcmFmdCwgc2F2ZURvY3VtZW50LCBnZXRTZWxlY3RlZEtleSwgc2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5IH07XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O01BU0tBLG9CQUFvQjtFQUFBLFdBQXBCQSxvQkFBb0I7SUFBcEJBLG9CQUFvQjtJQUFwQkEsb0JBQW9CO0lBQXBCQSxvQkFBb0I7RUFBQSxHQUFwQkEsb0JBQW9CLEtBQXBCQSxvQkFBb0I7RUFNekIsSUFBSUMsbUNBQTZDO0VBQ2pELElBQUlDLGdDQUEwQztFQUM5QyxTQUFTQyxzQkFBc0IsQ0FBQ0MsY0FBbUIsRUFBRUMsa0JBQXVCLEVBQUVDLFVBQWUsRUFBRUMsaUJBQXNCLEVBQUU7SUFDdEg7SUFDQTtJQUNBO0lBQ0EsSUFBSUMsYUFBcUI7SUFDekJQLG1DQUFtQyxHQUFHRyxjQUFjO0lBQ3BERixnQ0FBZ0MsR0FBR0csa0JBQWtCO0lBQ3JELE1BQU1JLFlBQVksR0FBRywyREFBMkQ7SUFDaEYsTUFBTUMsSUFBSSxHQUFHSixVQUFVLENBQUNLLE9BQU8sRUFBRTtJQUNqQyxNQUFNQyxrQkFBdUIsR0FBRztNQUMvQkMsWUFBWSxFQUFFLFlBQVk7UUFDekJDLGdCQUFnQixDQUFDTixhQUFhLEVBQUVGLFVBQVUsRUFBRUwsbUNBQW1DLEVBQUVNLGlCQUFpQixDQUFDO01BQ3BHLENBQUM7TUFDRFEsZ0JBQWdCLEVBQUUsWUFBWTtRQUM3QmIsZ0NBQWdDLEVBQUU7UUFDbENNLGFBQWEsQ0FBQ1EsS0FBSyxFQUFFO01BQ3RCLENBQUM7TUFDREMsZ0JBQWdCLEVBQUUsVUFBVUMsZUFBdUIsRUFBRTtRQUNwRFosVUFBVSxDQUFDRSxh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
@@ -1,6 +0,0 @@
1
- /*!
2
- * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
- */
5
- sap.ui.define(["sap/base/Log","sap/ui/core/Fragment","sap/ui/core/util/XMLPreprocessor","sap/ui/core/XMLTemplateProcessor","sap/ui/model/json/JSONModel"],function(e,t,n,o,s){"use strict";var a={};var i;(function(e){e["Save"]="draftDataLossOptionSave";e["Keep"]="draftDataLossOptionKeep";e["Discard"]="draftDataLossOptionDiscard"})(i||(i={}));let r;let c;function d(a,i,d,f){let u;r=a;c=i;const l="sap.fe.core.controls.DataLossOrDraftDiscard.DataLossDraft";const p=d.getView();const m={onDataLossOk:function(){g(u,d,r,f)},onDataLossCancel:function(){c();u.close()},setDataLossPopup:function(e){d.dataLossPopup=e}};const L=new s({}),v={bindingContexts:{this:L.createBindingContext("/")},models:{this:L}};if(d.dataLossPopup){u=d.dataLossPopup;u.open();D(u)}else{const s=o.loadTemplate(l,"fragment");Promise.resolve(n.process(s,{name:l},v)).then(e=>t.load({definition:e,controller:m})).then(e=>{u=e;D(u);const t=u.getContent().find(e=>e.data("listIdentifier")==="draftDataLossOptionsList");t.addEventDelegate({onsapenter:function(){g(u,d,r,f)}});p.addDependent(u);u.open();m.setDataLossPopup(u)}).catch(function(t){e.error("Error while opening the Discard Dialog fragment",t)})}}function f(e,t,n,o){return new Promise(function(s,a){const i=function(t){const n=e(t);s(n)};const r=function(){t();a()};d(i,r,n,o)})}a.performAfterDiscardorKeepDraft=f;function u(e,t){const n=e.getView().getBindingContext();const o={skipBackNavigation:true,skipDiscardPopover:true,skipBindingToView:t!==undefined?t:true};return e.editFlow.cancelDocument(n,o)}a.discardDraft=u;function l(e){const t=e.getView().getBindingContext();if(e.isA("sap.fe.templates.ObjectPage.ObjectPageController")){return e._saveDocument(t)}else{return e.editFlow.saveDocument(t)}}a.saveDocument=l;function p(e){const t=e.getContent().find(e=>e.data("listIdentifier")==="draftDataLossOptionsList");return t.getSelectedItem().data("itemKey")}a.getSelectedKey=p;function D(e){const t=e.getContent().find(e=>e.data("listIdentifier")==="draftDataLossOptionsList");const n=t.getItems()[0];t.setSelectedItem(n);n===null||n===void 0?void 0:n.focus()}a.selectAndFocusFirstEntry=D;function g(t,n,o,s){const a=p(t);if(a===i.Save){l(n).then(o).catch(function(t){e.error("Error while saving document",t)});t.close()}else if(a===i.Keep){o();t.close()}else if(a===i.Discard){u(n,s).then(o).catch(function(t){e.error("Error while discarding draft",t)});t.close()}}a.handleDataLossOk=g;return{performAfterDiscardorKeepDraft:f,discardDraft:u,saveDocument:l,getSelectedKey:p,selectAndFocusFirstEntry:D}},false);
6
- //# sourceMappingURL=DataLossOrDraftDiscardHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataLossOrDraftDiscardHandler.js","names":["sap","ui","define","Log","Fragment","XMLPreprocessor","XMLTemplateProcessor","JSONModel","_exports","DraftDataLossOptions","onDataLossConfirmedFollowUpFunction","onDataLossCancelFollowUpFunction","fnDataLossConfirmation","fnOnDataLossOk","fnOnDataLossCancel","controller","skipBindingToView","dataLossPopup","fragmentName","view","getView","fragmentController","onDataLossOk","handleDataLossOk","onDataLossCancel","close","setDataLossPopup","inDataLossPopup","localThisModel","preprocessorSettings","bindingContexts","this","createBindingContext","models","open","selectAndFocusFirstEntry","dialogFragment","loadTemplate","Promise","resolve","process","name","then","fragment","load","definition","popup","dataLossOptionsList","getContent","find","element","data","addEventDelegate","onsapenter","addDependent","catch","error","performAfterDiscardorKeepDraft","processFunctionOnDatalossOk","processFunctionOnDatalossCancel","reject","dataLossPopupOk","context","returnValue","dataLossPopupCancel","discardDraft","getBindingContext","params","skipBackNavigation","skipDiscardPopover","undefined","editFlow","cancelDocument","saveDocument","isA","_saveDocument","getSelectedKey","getSelectedItem","firstListItemOption","getItems","setSelectedItem","focus","dataLossConfirmationFollowUpFunction","selectedKey","Save","Keep","Discard"],"sources":["DataLossOrDraftDiscardHandler-dbg.js"],"mappings":"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"}
@@ -1,184 +0,0 @@
1
- import Log from "sap/base/Log";
2
- import type CustomListItem from "sap/m/CustomListItem";
3
- import type Dialog from "sap/m/Dialog";
4
- import type List from "sap/m/List";
5
- import Fragment from "sap/ui/core/Fragment";
6
- import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
7
- import XMLTemplateProcessor from "sap/ui/core/XMLTemplateProcessor";
8
- import JSONModel from "sap/ui/model/json/JSONModel";
9
-
10
- enum DraftDataLossOptions {
11
- Save = "draftDataLossOptionSave",
12
- Keep = "draftDataLossOptionKeep",
13
- Discard = "draftDataLossOptionDiscard"
14
- }
15
-
16
- let onDataLossConfirmedFollowUpFunction: Function;
17
- let onDataLossCancelFollowUpFunction: Function;
18
- function fnDataLossConfirmation(fnOnDataLossOk: any, fnOnDataLossCancel: any, controller: any, skipBindingToView: any) {
19
- // Open the data loss popup and after processing the selected function finally call
20
- // onDataLossConfirmed which resolves the promise and leads to processing of the originally
21
- // triggered action like e.g. a back navigation
22
- let dataLossPopup: Dialog;
23
- onDataLossConfirmedFollowUpFunction = fnOnDataLossOk;
24
- onDataLossCancelFollowUpFunction = fnOnDataLossCancel;
25
- const fragmentName = "sap.fe.core.controls.DataLossOrDraftDiscard.DataLossDraft";
26
- const view = controller.getView();
27
- const fragmentController: any = {
28
- onDataLossOk: function () {
29
- handleDataLossOk(dataLossPopup, controller, onDataLossConfirmedFollowUpFunction, skipBindingToView);
30
- },
31
- onDataLossCancel: function () {
32
- onDataLossCancelFollowUpFunction();
33
- dataLossPopup.close();
34
- },
35
- setDataLossPopup: function (inDataLossPopup: Dialog) {
36
- controller.dataLossPopup = inDataLossPopup;
37
- }
38
- };
39
-
40
- const localThisModel = new JSONModel({}),
41
- preprocessorSettings = {
42
- bindingContexts: {
43
- this: localThisModel.createBindingContext("/")
44
- },
45
- models: {
46
- this: localThisModel
47
- }
48
- };
49
-
50
- if (controller.dataLossPopup) {
51
- dataLossPopup = controller.dataLossPopup;
52
- dataLossPopup.open();
53
- selectAndFocusFirstEntry(dataLossPopup);
54
- } else {
55
- const dialogFragment = XMLTemplateProcessor.loadTemplate(fragmentName, "fragment");
56
- Promise.resolve(XMLPreprocessor.process(dialogFragment, { name: fragmentName }, preprocessorSettings))
57
- .then((fragment) => {
58
- return Fragment.load({ definition: fragment, controller: fragmentController });
59
- })
60
- .then((popup: any) => {
61
- dataLossPopup = popup;
62
- selectAndFocusFirstEntry(dataLossPopup);
63
- const dataLossOptionsList: List = dataLossPopup
64
- .getContent()
65
- .find((element) => element.data("listIdentifier") === "draftDataLossOptionsList") as List;
66
- dataLossOptionsList.addEventDelegate({
67
- onsapenter: function () {
68
- handleDataLossOk(dataLossPopup, controller, onDataLossConfirmedFollowUpFunction, skipBindingToView);
69
- }
70
- });
71
- view.addDependent(dataLossPopup);
72
- dataLossPopup.open();
73
- fragmentController.setDataLossPopup(dataLossPopup);
74
- })
75
- .catch(function (error: any) {
76
- Log.error("Error while opening the Discard Dialog fragment", error);
77
- });
78
- }
79
- }
80
-
81
- export function performAfterDiscardorKeepDraft(
82
- processFunctionOnDatalossOk: any,
83
- processFunctionOnDatalossCancel: any,
84
- controller: any,
85
- skipBindingToView: any
86
- ) {
87
- // Depending on if the user closed the data loss popup with Ok or Cancel,
88
- // execute the provided follow-up function and resolve or reject the promise
89
- return new Promise(function (resolve: (value: any) => void, reject: (reason?: any) => void) {
90
- const dataLossPopupOk = function (context: any) {
91
- const returnValue = processFunctionOnDatalossOk(context);
92
- resolve(returnValue);
93
- };
94
- const dataLossPopupCancel = function () {
95
- processFunctionOnDatalossCancel();
96
- reject();
97
- };
98
- fnDataLossConfirmation(dataLossPopupOk, dataLossPopupCancel, controller, skipBindingToView);
99
- });
100
- }
101
-
102
- export function discardDraft(controller: any, skipBindingToView: any) {
103
- const context = controller.getView().getBindingContext();
104
- const params = {
105
- skipBackNavigation: true,
106
- skipDiscardPopover: true,
107
- skipBindingToView: skipBindingToView !== undefined ? skipBindingToView : true
108
- };
109
- return controller.editFlow.cancelDocument(context, params);
110
- }
111
-
112
- export function saveDocument(controller: any) {
113
- const context = controller.getView().getBindingContext();
114
- // We check if we are on the OP and then call the internal _saveDocument from the OP controller
115
- // since here some special handling is done for creationRow before editFlow.saveDocument is called.
116
- // In case of a custom controller we directly call saveDocument from the editFlow
117
- if (controller.isA("sap.fe.templates.ObjectPage.ObjectPageController")) {
118
- return controller._saveDocument(context);
119
- } else {
120
- return controller.editFlow.saveDocument(context);
121
- }
122
- }
123
-
124
- export function getSelectedKey(dataLossPopup: Dialog) {
125
- // For not using control IDs we introduced customData in the fragment and
126
- // use it here for finding the correct list in the dialog and for
127
- // determining the selected option from the list
128
- const dataLossOptionsList: List = dataLossPopup
129
- .getContent()
130
- .find((element) => element.data("listIdentifier") === "draftDataLossOptionsList") as List;
131
- return dataLossOptionsList.getSelectedItem().data("itemKey");
132
- }
133
-
134
- export function selectAndFocusFirstEntry(dataLossPopup: Dialog) {
135
- // For not using control IDs we introduced customData in the fragment and
136
- // use it here for finding the correct list in the dialog.
137
- const dataLossOptionsList: List = dataLossPopup
138
- .getContent()
139
- .find((element) => element.data("listIdentifier") === "draftDataLossOptionsList") as List;
140
- // Preselect the first entry in the list
141
- const firstListItemOption: CustomListItem = dataLossOptionsList.getItems()[0] as CustomListItem;
142
- dataLossOptionsList.setSelectedItem(firstListItemOption);
143
- // By default set the focus on the first list item of the dialog
144
- // We do not set the focus on the button, but catch the ENTER key in the dialog
145
- // and process it as Ok, since focusing the button was reported as an ACC issue
146
- firstListItemOption?.focus();
147
- }
148
-
149
- /**
150
- * Executes the logic when the data loss dialog is confirmed.
151
- *
152
- * @param dataLossPopup Reference to the data loss dialog
153
- * @param controller Reference to the controller
154
- * @param dataLossConfirmationFollowUpFunction The action to be performed after the selected option has been executed
155
- * @param skipBindingToView Forwarded to discardDraft
156
- */
157
- export function handleDataLossOk(
158
- dataLossPopup: Dialog,
159
- controller: any,
160
- dataLossConfirmationFollowUpFunction: Function,
161
- skipBindingToView: boolean
162
- ) {
163
- const selectedKey = getSelectedKey(dataLossPopup);
164
- if (selectedKey === DraftDataLossOptions.Save) {
165
- saveDocument(controller)
166
- .then(dataLossConfirmationFollowUpFunction)
167
- .catch(function (error: any) {
168
- Log.error("Error while saving document", error);
169
- });
170
- dataLossPopup.close();
171
- } else if (selectedKey === DraftDataLossOptions.Keep) {
172
- dataLossConfirmationFollowUpFunction();
173
- dataLossPopup.close();
174
- } else if (selectedKey === DraftDataLossOptions.Discard) {
175
- discardDraft(controller, skipBindingToView)
176
- .then(dataLossConfirmationFollowUpFunction)
177
- .catch(function (error: any) {
178
- Log.error("Error while discarding draft", error);
179
- });
180
- dataLossPopup.close();
181
- }
182
- }
183
-
184
- export default { performAfterDiscardorKeepDraft, discardDraft, saveDocument, getSelectedKey, selectAndFocusFirstEntry };