@sapui5/sap.fe.core 1.134.0 → 1.136.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 (395) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +6 -62
  4. package/src/sap/fe/core/ActionRuntime.ts +14 -65
  5. package/src/sap/fe/core/AppComponent.js +10 -2
  6. package/src/sap/fe/core/AppComponent.ts +6 -0
  7. package/src/sap/fe/core/AppStateHandler.js +9 -7
  8. package/src/sap/fe/core/AppStateHandler.ts +7 -5
  9. package/src/sap/fe/core/BaseController.js +1 -1
  10. package/src/sap/fe/core/CommonUtils.js +8 -4
  11. package/src/sap/fe/core/CommonUtils.ts +19 -4
  12. package/src/sap/fe/core/ExtensionAPI.js +7 -5
  13. package/src/sap/fe/core/ExtensionAPI.ts +5 -3
  14. package/src/sap/fe/core/IRowBindingInterface.js +1 -1
  15. package/src/sap/fe/core/InsightsFormattersExtension.js +1 -1
  16. package/src/sap/fe/core/PageController.js +36 -6
  17. package/src/sap/fe/core/PageController.ts +30 -0
  18. package/src/sap/fe/core/ResourceModel.js +1 -1
  19. package/src/sap/fe/core/ReuseComponent.js +1 -1
  20. package/src/sap/fe/core/TemplateComponent.js +1 -1
  21. package/src/sap/fe/core/TemplateModel.js +1 -1
  22. package/src/sap/fe/core/UIProvider.js +2 -2
  23. package/src/sap/fe/core/UIProvider.ts +3 -32
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +34 -16
  25. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +39 -18
  26. package/src/sap/fe/core/buildingBlocks/IBuildingBlockOwnerComponent.js +1 -1
  27. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
  28. package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +1 -1
  29. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockFormatter.js +1 -1
  30. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +2 -2
  31. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +1 -0
  32. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +7 -7
  33. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +9 -9
  34. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +1 -1
  35. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +5 -3
  36. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +3 -1
  37. package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
  38. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +15 -15
  39. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +19 -19
  40. package/src/sap/fe/core/controllerextensions/ContextSharing.js +1 -1
  41. package/src/sap/fe/core/controllerextensions/EditFlow.js +74 -93
  42. package/src/sap/fe/core/controllerextensions/EditFlow.ts +89 -108
  43. package/src/sap/fe/core/controllerextensions/Feedback.js +1 -1
  44. package/src/sap/fe/core/controllerextensions/InlineEditFlow.js +355 -0
  45. package/src/sap/fe/core/controllerextensions/InlineEditFlow.ts +387 -0
  46. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +1 -1
  47. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  48. package/src/sap/fe/core/controllerextensions/InternalRouting.js +36 -11
  49. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +36 -10
  50. package/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
  51. package/src/sap/fe/core/controllerextensions/MessageHandler.js +36 -6
  52. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +41 -1
  53. package/src/sap/fe/core/controllerextensions/PageReady.js +5 -2
  54. package/src/sap/fe/core/controllerextensions/PageReady.ts +3 -0
  55. package/src/sap/fe/core/controllerextensions/Paginator.js +1 -1
  56. package/src/sap/fe/core/controllerextensions/Placeholder.js +1 -1
  57. package/src/sap/fe/core/controllerextensions/Recommendations.js +1 -1
  58. package/src/sap/fe/core/controllerextensions/Routing.js +9 -9
  59. package/src/sap/fe/core/controllerextensions/Routing.ts +4 -4
  60. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  61. package/src/sap/fe/core/controllerextensions/Share.js +1 -1
  62. package/src/sap/fe/core/controllerextensions/SideEffects.js +13 -6
  63. package/src/sap/fe/core/controllerextensions/SideEffects.ts +13 -6
  64. package/src/sap/fe/core/controllerextensions/Telemetry.js +1 -1
  65. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  66. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +14 -11
  67. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +20 -14
  68. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +4 -12
  69. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +2 -10
  70. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +12 -2
  71. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +12 -0
  72. package/src/sap/fe/core/controllerextensions/dialog/ODataStrictDialog.js +1 -1
  73. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
  74. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +111 -89
  75. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +140 -105
  76. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +137 -79
  77. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +133 -120
  78. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +3 -3
  79. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +4 -1
  80. package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +1 -1
  81. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +26 -17
  82. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +32 -23
  83. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.js +3 -3
  84. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.ts +1 -1
  85. package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.js +103 -23
  86. package/src/sap/fe/core/controllerextensions/editFlow/operations/Operation.ts +144 -53
  87. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.js +29 -11
  88. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationMessage.ts +39 -15
  89. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.js +24 -22
  90. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.ts +28 -26
  91. package/src/sap/fe/core/controllerextensions/editFlow/operations/actionHelper.js +1 -1
  92. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -572
  93. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +25 -873
  94. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  95. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +98 -56
  96. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +102 -80
  97. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +5 -3
  98. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +7 -4
  99. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +1 -1
  100. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +1 -1
  101. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +1 -1
  102. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +1 -1
  103. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  104. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
  105. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributorMixin.js +1 -1
  106. package/src/sap/fe/core/controls/Any.js +1 -1
  107. package/src/sap/fe/core/controls/AnyElement.js +1 -1
  108. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  109. package/src/sap/fe/core/controls/ComponentLoader.js +1 -1
  110. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.js +3 -3
  111. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.tsx +8 -1
  112. package/src/sap/fe/core/controls/DataWatcher.js +4 -3
  113. package/src/sap/fe/core/controls/DataWatcher.tsx +4 -1
  114. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  115. package/src/sap/fe/core/controls/HideFormGroupAutomatically.js +10 -4
  116. package/src/sap/fe/core/controls/HideFormGroupAutomatically.ts +13 -2
  117. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
  118. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.js +1 -1
  119. package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.js +68 -0
  120. package/src/sap/fe/core/controls/inlineEditFlow/BeforeActionDialog.tsx +52 -0
  121. package/src/sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog.js +144 -0
  122. package/src/sap/fe/core/controls/inlineEditFlow/BeforeNavigationDialog.tsx +128 -0
  123. package/src/sap/fe/core/controls/inlineEditFlow/DraftExistsDialog.js +53 -0
  124. package/src/sap/fe/core/controls/inlineEditFlow/DraftExistsDialog.tsx +39 -0
  125. package/src/sap/fe/core/converters/ConverterContext.js +1 -1
  126. package/src/sap/fe/core/converters/ManifestSettings.js +3 -2
  127. package/src/sap/fe/core/converters/ManifestSettings.ts +42 -20
  128. package/src/sap/fe/core/converters/ManifestWrapper.js +8 -2
  129. package/src/sap/fe/core/converters/ManifestWrapper.ts +8 -0
  130. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  131. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  132. package/src/sap/fe/core/converters/annotations/DataField.js +2 -2
  133. package/src/sap/fe/core/converters/annotations/DataField.ts +2 -1
  134. package/src/sap/fe/core/converters/controls/Common/Action.js +55 -6
  135. package/src/sap/fe/core/converters/controls/Common/Action.ts +59 -3
  136. package/src/sap/fe/core/converters/controls/Common/Chart.js +45 -6
  137. package/src/sap/fe/core/converters/controls/Common/Chart.ts +60 -9
  138. package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
  139. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  140. package/src/sap/fe/core/converters/controls/Common/Form.js +21 -5
  141. package/src/sap/fe/core/converters/controls/Common/Form.ts +25 -5
  142. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  143. package/src/sap/fe/core/converters/controls/Common/Table.js +89 -1686
  144. package/src/sap/fe/core/converters/controls/Common/Table.ts +254 -2513
  145. package/src/sap/fe/core/converters/controls/Common/table/Columns.js +1701 -0
  146. package/src/sap/fe/core/converters/controls/Common/table/Columns.ts +2377 -0
  147. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +64 -15
  148. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +76 -14
  149. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +7 -36
  150. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +8 -46
  151. package/src/sap/fe/core/converters/controls/ListReport/FilterField.js +106 -0
  152. package/src/sap/fe/core/converters/controls/ListReport/FilterField.ts +129 -0
  153. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +10 -5
  154. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +8 -3
  155. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
  156. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +5 -3
  157. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +11 -4
  158. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +7 -2
  159. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  160. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  161. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -1
  162. package/src/sap/fe/core/converters/helpers/ID.js +1 -1
  163. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +1 -1
  164. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  165. package/src/sap/fe/core/converters/helpers/Key.js +1 -1
  166. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  167. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  168. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +30 -8
  169. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +40 -16
  170. package/src/sap/fe/core/converters/templates/ListReportConverter.js +5 -3
  171. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +5 -1
  172. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  173. package/src/sap/fe/core/designtime/AnnotationBasedChanges.js +184 -0
  174. package/src/sap/fe/core/designtime/AnnotationBasedChanges.ts +240 -0
  175. package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  176. package/src/sap/fe/core/designtime/messagebundle.properties +11 -0
  177. package/src/sap/fe/core/designtime/messagebundle_ar.properties +7 -0
  178. package/src/sap/fe/core/designtime/messagebundle_bg.properties +7 -0
  179. package/src/sap/fe/core/designtime/messagebundle_ca.properties +7 -0
  180. package/src/sap/fe/core/designtime/messagebundle_cnr.properties +7 -0
  181. package/src/sap/fe/core/designtime/messagebundle_cs.properties +7 -0
  182. package/src/sap/fe/core/designtime/messagebundle_cy.properties +7 -0
  183. package/src/sap/fe/core/designtime/messagebundle_da.properties +7 -0
  184. package/src/sap/fe/core/designtime/messagebundle_de.properties +7 -0
  185. package/src/sap/fe/core/designtime/messagebundle_el.properties +7 -0
  186. package/src/sap/fe/core/designtime/messagebundle_en.properties +7 -0
  187. package/src/sap/fe/core/designtime/messagebundle_en_GB.properties +7 -0
  188. package/src/sap/fe/core/designtime/messagebundle_es.properties +7 -0
  189. package/src/sap/fe/core/designtime/messagebundle_es_MX.properties +7 -0
  190. package/src/sap/fe/core/designtime/messagebundle_et.properties +7 -0
  191. package/src/sap/fe/core/designtime/messagebundle_fi.properties +7 -0
  192. package/src/sap/fe/core/designtime/messagebundle_fr.properties +7 -0
  193. package/src/sap/fe/core/designtime/messagebundle_fr_CA.properties +7 -0
  194. package/src/sap/fe/core/designtime/messagebundle_hi.properties +7 -0
  195. package/src/sap/fe/core/designtime/messagebundle_hr.properties +7 -0
  196. package/src/sap/fe/core/designtime/messagebundle_hu.properties +7 -0
  197. package/src/sap/fe/core/designtime/messagebundle_id.properties +7 -0
  198. package/src/sap/fe/core/designtime/messagebundle_it.properties +7 -0
  199. package/src/sap/fe/core/designtime/messagebundle_iw.properties +7 -0
  200. package/src/sap/fe/core/designtime/messagebundle_ja.properties +7 -0
  201. package/src/sap/fe/core/designtime/messagebundle_kk.properties +7 -0
  202. package/src/sap/fe/core/designtime/messagebundle_ko.properties +7 -0
  203. package/src/sap/fe/core/designtime/messagebundle_lt.properties +7 -0
  204. package/src/sap/fe/core/designtime/messagebundle_lv.properties +7 -0
  205. package/src/sap/fe/core/designtime/messagebundle_mk.properties +7 -0
  206. package/src/sap/fe/core/designtime/messagebundle_ms.properties +7 -0
  207. package/src/sap/fe/core/designtime/messagebundle_nl.properties +7 -0
  208. package/src/sap/fe/core/designtime/messagebundle_no.properties +7 -0
  209. package/src/sap/fe/core/designtime/messagebundle_pl.properties +7 -0
  210. package/src/sap/fe/core/designtime/messagebundle_pt.properties +7 -0
  211. package/src/sap/fe/core/designtime/messagebundle_pt_PT.properties +7 -0
  212. package/src/sap/fe/core/designtime/messagebundle_ro.properties +7 -0
  213. package/src/sap/fe/core/designtime/messagebundle_ru.properties +7 -0
  214. package/src/sap/fe/core/designtime/messagebundle_sh.properties +7 -0
  215. package/src/sap/fe/core/designtime/messagebundle_sk.properties +7 -0
  216. package/src/sap/fe/core/designtime/messagebundle_sl.properties +7 -0
  217. package/src/sap/fe/core/designtime/messagebundle_sr.properties +7 -0
  218. package/src/sap/fe/core/designtime/messagebundle_sv.properties +7 -0
  219. package/src/sap/fe/core/designtime/messagebundle_th.properties +7 -0
  220. package/src/sap/fe/core/designtime/messagebundle_tr.properties +7 -0
  221. package/src/sap/fe/core/designtime/messagebundle_uk.properties +7 -0
  222. package/src/sap/fe/core/designtime/messagebundle_vi.properties +7 -0
  223. package/src/sap/fe/core/designtime/messagebundle_zh_CN.properties +7 -0
  224. package/src/sap/fe/core/designtime/messagebundle_zh_TW.properties +7 -0
  225. package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
  226. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  227. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  228. package/src/sap/fe/core/formatters/FiscalFormat.js +1 -1
  229. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  230. package/src/sap/fe/core/formatters/StandardFormatter.js +1 -1
  231. package/src/sap/fe/core/formatters/ValueFormatter.js +27 -12
  232. package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -11
  233. package/src/sap/fe/core/fpm/Component.js +1 -1
  234. package/src/sap/fe/core/fpm/manifest.json +1 -1
  235. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +1 -1
  236. package/src/sap/fe/core/helpers/AppStartupHelper.js +25 -4
  237. package/src/sap/fe/core/helpers/AppStartupHelper.ts +28 -2
  238. package/src/sap/fe/core/helpers/BindingHelper.js +4 -3
  239. package/src/sap/fe/core/helpers/BindingHelper.ts +2 -1
  240. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +1 -1
  241. package/src/sap/fe/core/helpers/DeleteHelper.js +6 -12
  242. package/src/sap/fe/core/helpers/DeleteHelper.ts +4 -9
  243. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
  244. package/src/sap/fe/core/helpers/EditState.js +1 -1
  245. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -1
  246. package/src/sap/fe/core/helpers/FPMHelper.js +9 -3
  247. package/src/sap/fe/core/helpers/FPMHelper.ts +13 -1
  248. package/src/sap/fe/core/helpers/HTTP503Handler.js +1 -1
  249. package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
  250. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
  251. package/src/sap/fe/core/helpers/LoaderUtils.js +1 -1
  252. package/src/sap/fe/core/helpers/ManifestHelper.js +1 -1
  253. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  254. package/src/sap/fe/core/helpers/MetaModelFunction.js +1 -1
  255. package/src/sap/fe/core/helpers/MetaPath.js +1 -1
  256. package/src/sap/fe/core/helpers/ModelHelper.js +15 -5
  257. package/src/sap/fe/core/helpers/ModelHelper.ts +15 -4
  258. package/src/sap/fe/core/helpers/PasteHelper.js +39 -40
  259. package/src/sap/fe/core/helpers/PasteHelper.ts +49 -51
  260. package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -1
  261. package/src/sap/fe/core/helpers/RecommendationHelper.js +1 -1
  262. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
  263. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  264. package/src/sap/fe/core/helpers/SizeHelper.js +1 -1
  265. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  266. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +1 -1
  267. package/src/sap/fe/core/helpers/Synchronization.js +1 -1
  268. package/src/sap/fe/core/helpers/TitleHelper.js +1 -1
  269. package/src/sap/fe/core/helpers/ToES6Promise.js +1 -1
  270. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  271. package/src/sap/fe/core/helpers/WebSocket.js +11 -2
  272. package/src/sap/fe/core/helpers/WebSocket.ts +8 -0
  273. package/src/sap/fe/core/library.js +16 -4
  274. package/src/sap/fe/core/library.support.js +1 -1
  275. package/src/sap/fe/core/library.ts +1 -0
  276. package/src/sap/fe/core/manifestMerger/AddNewPage.js +1 -1
  277. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  278. package/src/sap/fe/core/messagebundle.properties +41 -2
  279. package/src/sap/fe/core/messagebundle_ar.properties +25 -4
  280. package/src/sap/fe/core/messagebundle_bg.properties +25 -4
  281. package/src/sap/fe/core/messagebundle_ca.properties +24 -3
  282. package/src/sap/fe/core/messagebundle_cnr.properties +25 -4
  283. package/src/sap/fe/core/messagebundle_cs.properties +23 -2
  284. package/src/sap/fe/core/messagebundle_cy.properties +24 -3
  285. package/src/sap/fe/core/messagebundle_da.properties +25 -4
  286. package/src/sap/fe/core/messagebundle_de.properties +28 -7
  287. package/src/sap/fe/core/messagebundle_el.properties +23 -2
  288. package/src/sap/fe/core/messagebundle_en.properties +25 -4
  289. package/src/sap/fe/core/messagebundle_en_GB.properties +25 -4
  290. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +26 -5
  291. package/src/sap/fe/core/messagebundle_es.properties +23 -2
  292. package/src/sap/fe/core/messagebundle_es_MX.properties +23 -2
  293. package/src/sap/fe/core/messagebundle_et.properties +23 -2
  294. package/src/sap/fe/core/messagebundle_fi.properties +23 -2
  295. package/src/sap/fe/core/messagebundle_fr.properties +26 -5
  296. package/src/sap/fe/core/messagebundle_fr_CA.properties +23 -2
  297. package/src/sap/fe/core/messagebundle_hi.properties +24 -3
  298. package/src/sap/fe/core/messagebundle_hr.properties +27 -6
  299. package/src/sap/fe/core/messagebundle_hu.properties +23 -2
  300. package/src/sap/fe/core/messagebundle_id.properties +23 -2
  301. package/src/sap/fe/core/messagebundle_it.properties +25 -4
  302. package/src/sap/fe/core/messagebundle_iw.properties +24 -3
  303. package/src/sap/fe/core/messagebundle_ja.properties +24 -3
  304. package/src/sap/fe/core/messagebundle_kk.properties +23 -2
  305. package/src/sap/fe/core/messagebundle_ko.properties +25 -4
  306. package/src/sap/fe/core/messagebundle_lt.properties +23 -2
  307. package/src/sap/fe/core/messagebundle_lv.properties +25 -4
  308. package/src/sap/fe/core/messagebundle_mk.properties +23 -2
  309. package/src/sap/fe/core/messagebundle_ms.properties +24 -3
  310. package/src/sap/fe/core/messagebundle_nl.properties +23 -2
  311. package/src/sap/fe/core/messagebundle_no.properties +23 -2
  312. package/src/sap/fe/core/messagebundle_pl.properties +25 -4
  313. package/src/sap/fe/core/messagebundle_pt.properties +25 -4
  314. package/src/sap/fe/core/messagebundle_pt_PT.properties +24 -3
  315. package/src/sap/fe/core/messagebundle_ro.properties +25 -4
  316. package/src/sap/fe/core/messagebundle_ru.properties +24 -3
  317. package/src/sap/fe/core/messagebundle_sh.properties +25 -4
  318. package/src/sap/fe/core/messagebundle_sk.properties +24 -3
  319. package/src/sap/fe/core/messagebundle_sl.properties +28 -7
  320. package/src/sap/fe/core/messagebundle_sr.properties +25 -4
  321. package/src/sap/fe/core/messagebundle_sv.properties +23 -2
  322. package/src/sap/fe/core/messagebundle_th.properties +25 -4
  323. package/src/sap/fe/core/messagebundle_tr.properties +23 -2
  324. package/src/sap/fe/core/messagebundle_uk.properties +25 -4
  325. package/src/sap/fe/core/messagebundle_vi.properties +25 -4
  326. package/src/sap/fe/core/messagebundle_zh_CN.properties +26 -5
  327. package/src/sap/fe/core/messagebundle_zh_TW.properties +24 -3
  328. package/src/sap/fe/core/rootView/Fcl.controller.js +11 -7
  329. package/src/sap/fe/core/rootView/Fcl.controller.ts +16 -7
  330. package/src/sap/fe/core/rootView/NavContainer.controller.js +3 -3
  331. package/src/sap/fe/core/rootView/NavContainer.controller.ts +1 -1
  332. package/src/sap/fe/core/rootView/RootViewBaseController.js +87 -35
  333. package/src/sap/fe/core/rootView/RootViewBaseController.ts +113 -57
  334. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  335. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
  336. package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +29 -13
  337. package/src/sap/fe/core/services/CollaborationManagerServiceFactory.ts +27 -13
  338. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +1 -1
  339. package/src/sap/fe/core/services/ContextSharingServiceFactory.js +1 -1
  340. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +8 -2
  341. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +6 -0
  342. package/src/sap/fe/core/services/InlineEditServiceFactory.js +11 -5
  343. package/src/sap/fe/core/services/InlineEditServiceFactory.ts +9 -3
  344. package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  345. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  346. package/src/sap/fe/core/services/RoutingServiceFactory.js +14 -7
  347. package/src/sap/fe/core/services/RoutingServiceFactory.ts +11 -5
  348. package/src/sap/fe/core/services/ShellServicesFactory.js +5 -4
  349. package/src/sap/fe/core/services/ShellServicesFactory.ts +5 -3
  350. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +28 -4
  351. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +32 -3
  352. package/src/sap/fe/core/services/TelemetryServiceFactory.js +1 -1
  353. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  354. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +1 -1
  355. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +1 -1
  356. package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +1 -1
  357. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +1 -1
  358. package/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +1 -1
  359. package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
  360. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
  361. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
  362. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  363. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  364. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
  365. package/src/sap/fe/core/templating/ActionHelper.js +1 -1
  366. package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
  367. package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -1
  368. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
  369. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  370. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  371. package/src/sap/fe/core/templating/EntitySetHelper.js +199 -59
  372. package/src/sap/fe/core/templating/EntitySetHelper.ts +221 -61
  373. package/src/sap/fe/core/templating/EntityTypeHelper.js +1 -1
  374. package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
  375. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  376. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  377. package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  378. package/src/sap/fe/core/templating/SemanticObjectHelper.js +8 -10
  379. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +11 -10
  380. package/src/sap/fe/core/templating/UIFormatters.js +5 -2
  381. package/src/sap/fe/core/templating/UIFormatters.ts +3 -0
  382. package/src/sap/fe/core/type/Date.js +1 -1
  383. package/src/sap/fe/core/type/DateTimeWithTimezone.js +1 -1
  384. package/src/sap/fe/core/type/EDM.js +1 -1
  385. package/src/sap/fe/core/type/Email.js +1 -1
  386. package/src/sap/fe/core/type/FiscalDate.js +1 -1
  387. package/src/sap/fe/core/type/InputMask.js +1 -1
  388. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.js +0 -288
  389. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.tsx +0 -208
  390. package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.js +0 -404
  391. package/src/sap/fe/core/controllerextensions/editFlow/ODataOperation.ts +0 -502
  392. package/src/sap/fe/core/designtime/TextArrangementChangeAction.js +0 -100
  393. package/src/sap/fe/core/designtime/TextArrangementChangeAction.ts +0 -134
  394. package/src/sap/fe/core/operationsHelper.js +0 -192
  395. package/src/sap/fe/core/operationsHelper.ts +0 -277
@@ -55,6 +55,7 @@ export type TemplateProcessorSettings = {
55
55
  models: Record<string, Model> & {
56
56
  converterContext: JSONModel;
57
57
  viewData: JSONModel;
58
+ internal: JSONModel;
58
59
  metaModel: ODataMetaModel;
59
60
  "sap.fe.i18n"?: ResourceModel;
60
61
  };
@@ -515,7 +516,7 @@ export type BuildingBlockAggregation = {
515
516
  async function parseAggregation(
516
517
  oVisitor: IVisitorCallback,
517
518
  oAggregation?: Element,
518
- processAggregations?: Function
519
+ definition?: BuildingBlockAggregationDefinition
519
520
  ): Promise<Record<string, BuildingBlockAggregation>> {
520
521
  const oOutObjects: Record<string, BuildingBlockAggregation> = {};
521
522
  if (oAggregation && oAggregation.children.length > 0) {
@@ -530,7 +531,10 @@ async function parseAggregation(
530
531
  const children = oAggregation.children;
531
532
  for (let childIdx = 0; childIdx < children.length; childIdx++) {
532
533
  const childDefinition = children[childIdx];
533
- let childKey = childDefinition.getAttribute("key") || childDefinition.getAttribute("id");
534
+ let childKey =
535
+ childDefinition.getAttribute("key") ||
536
+ childDefinition.getAttribute("id") ||
537
+ (definition?.skipKey && definition.multiple === false && uid());
534
538
  if (childKey) {
535
539
  childKey = `InlineXML_${childKey}`;
536
540
  childDefinition.setAttribute("key", childKey);
@@ -542,8 +546,8 @@ async function parseAggregation(
542
546
  },
543
547
  type: "Slot"
544
548
  };
545
- if (processAggregations) {
546
- aggregationObject = processAggregations(childDefinition, aggregationObject);
549
+ if (definition?.processAggregations) {
550
+ aggregationObject = definition.processAggregations(childDefinition, aggregationObject);
547
551
  }
548
552
  oOutObjects[aggregationObject.key] = aggregationObject;
549
553
  } else if (childDefinition.tagName !== "slot") {
@@ -624,11 +628,7 @@ async function processChildren(
624
628
  }
625
629
  const aggregationDefinition = oMetadata.aggregations[sAggregationName];
626
630
  if (aggregationDefinition !== undefined && !aggregationDefinition.slot) {
627
- const parsedAggregation = await parseAggregation(
628
- oVisitor,
629
- oFirstElementChild,
630
- aggregationDefinition.processAggregations
631
- );
631
+ const parsedAggregation = await parseAggregation(oVisitor, oFirstElementChild, aggregationDefinition);
632
632
  propertyValues[sAggregationName] = parsedAggregation;
633
633
  for (const parsedAggregationKey in parsedAggregation) {
634
634
  oMetadata.aggregations[parsedAggregationKey] = parsedAggregation[parsedAggregationKey];
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/base/util/deepClone", "sap/base/util/merge", "sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor", "sap/fe/core/converters/ConverterContext", "sap/fe/core/converters/ManifestWrapper", "sap/fe/core/helpers/StableIdHelper", "sap/fe/core/templating/DataModelPathHelper"], function (deepClone, merge, BuildingBlockTemplateProcessor, ConverterContext, ManifestWrapper, StableIdHelper, DataModelPathHelper) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"], function (ClassSupport, ControllerExtension) {
6
6
  "use strict";
@@ -52,12 +52,14 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"
52
52
  if (method.overrideExecution === "BeforeAsync") {
53
53
  methodArrays.reverse();
54
54
  }
55
+ let result;
55
56
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
56
57
  args[_key] = arguments[_key];
57
58
  }
58
59
  for (const arg of methodArrays) {
59
- await arg.apply(_this2, args);
60
+ result = await arg.apply(_this2, args);
60
61
  }
62
+ return result;
61
63
  };
62
64
  }
63
65
  });
@@ -70,4 +72,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension"
70
72
  _exports = BaseControllerExtension;
71
73
  return _exports;
72
74
  }, false);
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbiIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9Db250cm9sbGVyRXh0ZW5zaW9uIiwiX3RoaXMiLCJjYWxsIiwiaW5pdCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRJbnRlcmZhY2UiLCJfdGhpczIiLCJpbnRlcmZhY2VPYmoiLCJtZXRhZGF0YSIsImdldE1ldGFkYXRhIiwiYWxsTWV0aG9kcyIsImdldEFsbE1ldGhvZHMiLCJtZXRob2RIb2xkZXIiLCJtZXRob2ROYW1lIiwibWV0aG9kIiwib3ZlcnJpZGVFeGVjdXRpb24iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsInNldCIsInYiLCJwdXNoIiwiZ2V0IiwibWV0aG9kQXJyYXlzIiwicmV2ZXJzZSIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiYXJnIiwiYXBwbHkiLCJDb250cm9sbGVyRXh0ZW5zaW9uIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyTWV0YWRhdGEgZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyTWV0YWRhdGFcIjtcbi8qKlxuICogQSBiYXNlIGltcGxlbWVudGF0aW9uIGZvciBjb250cm9sbGVyIGV4dGVuc2lvbiB1c2VkIGludGVybmFsbHkgaW4gc2FwLmZlIGZvciBjZW50cmFsIGZ1bmN0aW9uYWxpdGllcy5cbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjExOC4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLkJhc2VDb250cm9sbGVyRXh0ZW5zaW9uXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYXNlQ29udHJvbGxlckV4dGVuc2lvbiBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdCh0aGlzIGFzIHVua25vd24gYXMgeyBpbml0OiBGdW5jdGlvbiB9KS5pbml0KCk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIGlzIGluc3RhbnRpYXRlZC5cblx0ICogV2UgbmVlZCB0byBvdmVycmlkZSBpdCBmb3IgdGhlIHNwZWNpZmljIGhhbmRsaW5nIGZvciBCZWZvcmVBc3luYyBhbmQgQWZ0ZXJBc3luYyBtZXRob2RzLCBvdGhlcndpc2UgdGhlIGxhc3QgbGV2ZWwgb2YgZXh0ZW5zaW9uIGp1c3QgcmVwbGFjZSBvdXIgaW1wbGVtZW50YXRpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBpbnRlcmZhY2UgZm9yIHRoaXMgY29udHJvbGxlciBleHRlbnNpb25cblx0ICovXG5cdGdldEludGVyZmFjZSgpOiBCYXNlT2JqZWN0IHtcblx0XHRjb25zdCBpbnRlcmZhY2VPYmogPSBzdXBlci5nZXRJbnRlcmZhY2UoKTtcblx0XHRjb25zdCBtZXRhZGF0YSA9IHRoaXMuZ2V0TWV0YWRhdGEoKSBhcyBDb250cm9sbGVyTWV0YWRhdGE7XG5cdFx0Y29uc3QgYWxsTWV0aG9kcyA9IG1ldGFkYXRhLmdldEFsbE1ldGhvZHMoKTtcblx0XHRjb25zdCBtZXRob2RIb2xkZXI6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uW10+ID0ge307XG5cblx0XHRmb3IgKGNvbnN0IG1ldGhvZE5hbWUgaW4gYWxsTWV0aG9kcykge1xuXHRcdFx0Y29uc3QgbWV0aG9kID0gYWxsTWV0aG9kc1ttZXRob2ROYW1lXTtcblx0XHRcdGlmIChtZXRob2Qub3ZlcnJpZGVFeGVjdXRpb24gJiYgKG1ldGhvZC5vdmVycmlkZUV4ZWN1dGlvbiA9PT0gXCJBZnRlckFzeW5jXCIgfHwgbWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpKSB7XG5cdFx0XHRcdG1ldGhvZEhvbGRlclttZXRob2ROYW1lXSA9IFsoaW50ZXJmYWNlT2JqIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+KVttZXRob2ROYW1lXV07XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnRlcmZhY2VPYmosIG1ldGhvZE5hbWUsIHtcblx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0c2V0OiAodjogRnVuY3Rpb24pID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBtZXRob2RIb2xkZXJbbWV0aG9kTmFtZV0ucHVzaCh2KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGFzeW5jICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbWV0aG9kQXJyYXlzID0gbWV0aG9kSG9sZGVyW21ldGhvZE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRpZiAobWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRtZXRob2RBcnJheXMucmV2ZXJzZSgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgYXJnIG9mIG1ldGhvZEFycmF5cykge1xuXHRcdFx0XHRcdFx0XHRcdGF3YWl0IGFyZy5hcHBseSh0aGlzLCBhcmdzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBpbnRlcmZhY2VPYmo7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0VBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBLElBTXFCQSx1QkFBdUIsSUFBQUMsSUFBQSxHQUQzQ0MsY0FBYyxDQUFDLDBEQUEwRCxDQUFDLEVBQUFELElBQUEsQ0FBQUUsTUFBQSwwQkFBQUMsb0JBQUE7SUFFMUUsU0FBQUosd0JBQUEsRUFBYztNQUFBLElBQUFLLEtBQUE7TUFDYkEsS0FBQSxHQUFBRCxvQkFBQSxDQUFBRSxJQUFBLEtBQU0sQ0FBQztNQUNQRCxLQUFBLENBQXdDRSxJQUFJLENBQUMsQ0FBQztNQUFDLE9BQUFGLEtBQUE7SUFDaEQ7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtJQUpDRyxRQUFBLEdBQUFSLHVCQUFBO0lBQUFTLGNBQUEsQ0FBQVQsdUJBQUEsRUFBQUksb0JBQUE7SUFBQSxJQUFBTSxNQUFBLEdBQUFWLHVCQUFBLENBQUFXLFNBQUE7SUFBQUQsTUFBQSxDQUtBRSxZQUFZLEdBQVosU0FBQUEsWUFBWUEsQ0FBQSxFQUFlO01BQUEsSUFBQUMsTUFBQTtNQUMxQixNQUFNQyxZQUFZLEdBQUFWLG9CQUFBLENBQUFPLFNBQUEsQ0FBU0MsWUFBWSxDQUFBTixJQUFBLE1BQUU7TUFDekMsTUFBTVMsUUFBUSxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQXVCO01BQ3pELE1BQU1DLFVBQVUsR0FBR0YsUUFBUSxDQUFDRyxhQUFhLENBQUMsQ0FBQztNQUMzQyxNQUFNQyxZQUF3QyxHQUFHLENBQUMsQ0FBQztNQUVuRCxLQUFLLE1BQU1DLFVBQVUsSUFBSUgsVUFBVSxFQUFFO1FBQ3BDLE1BQU1JLE1BQU0sR0FBR0osVUFBVSxDQUFDRyxVQUFVLENBQUM7UUFDckMsSUFBSUMsTUFBTSxDQUFDQyxpQkFBaUIsS0FBS0QsTUFBTSxDQUFDQyxpQkFBaUIsS0FBSyxZQUFZLElBQUlELE1BQU0sQ0FBQ0MsaUJBQWlCLEtBQUssYUFBYSxDQUFDLEVBQUU7VUFDMUhILFlBQVksQ0FBQ0MsVUFBVSxDQUFDLEdBQUcsQ0FBRU4sWUFBWSxDQUF5Q00sVUFBVSxDQUFDLENBQUM7VUFDOUZHLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDVixZQUFZLEVBQUVNLFVBQVUsRUFBRTtZQUMvQ0ssWUFBWSxFQUFFLElBQUk7WUFDbEJDLEdBQUcsRUFBR0MsQ0FBVyxJQUFLO2NBQ3JCLE9BQU9SLFlBQVksQ0FBQ0MsVUFBVSxDQUFDLENBQUNRLElBQUksQ0FBQ0QsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFDREUsR0FBRyxFQUFFQSxDQUFBLEtBQU07Y0FDVixPQUFPLGtCQUE4QjtnQkFDcEMsTUFBTUMsWUFBWSxHQUFHWCxZQUFZLENBQUNDLFVBQVUsQ0FBQztnQkFDN0MsSUFBSUMsTUFBTSxDQUFDQyxpQkFBaUIsS0FBSyxhQUFhLEVBQUU7a0JBQy9DUSxZQUFZLENBQUNDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QjtnQkFBQyxTQUFBQyxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUplQyxJQUFJLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxHQUFBSyxJQUFBLE1BQUFBLElBQUEsR0FBQUwsSUFBQSxFQUFBSyxJQUFBO2tCQUFKRixJQUFJLENBQUFFLElBQUEsSUFBQUosU0FBQSxDQUFBSSxJQUFBO2dCQUFBO2dCQUtwQixLQUFLLE1BQU1DLEdBQUcsSUFBSVIsWUFBWSxFQUFFO2tCQUMvQixNQUFNUSxHQUFHLENBQUNDLEtBQUssQ0FBQzFCLE1BQUksRUFBRXNCLElBQUksQ0FBQztnQkFDNUI7Y0FDRCxDQUFDO1lBQ0Y7VUFDRCxDQUFDLENBQUM7UUFDSDtNQUNEO01BRUEsT0FBT3JCLFlBQVk7SUFDcEIsQ0FBQztJQUFBLE9BQUFkLHVCQUFBO0VBQUEsRUExQ21Ed0MsbUJBQW1CLE1BQUFyQyxNQUFBO0VBQUFLLFFBQUEsR0FBQVIsdUJBQUE7RUFBQSxPQUFBUSxRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbiIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9jbGFzcyIsIl9Db250cm9sbGVyRXh0ZW5zaW9uIiwiX3RoaXMiLCJjYWxsIiwiaW5pdCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRJbnRlcmZhY2UiLCJfdGhpczIiLCJpbnRlcmZhY2VPYmoiLCJtZXRhZGF0YSIsImdldE1ldGFkYXRhIiwiYWxsTWV0aG9kcyIsImdldEFsbE1ldGhvZHMiLCJtZXRob2RIb2xkZXIiLCJtZXRob2ROYW1lIiwibWV0aG9kIiwib3ZlcnJpZGVFeGVjdXRpb24iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsInNldCIsInYiLCJwdXNoIiwiZ2V0IiwibWV0aG9kQXJyYXlzIiwicmV2ZXJzZSIsInJlc3VsdCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiYXJnIiwiYXBwbHkiLCJDb250cm9sbGVyRXh0ZW5zaW9uIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJCYXNlQ29udHJvbGxlckV4dGVuc2lvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyTWV0YWRhdGEgZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyTWV0YWRhdGFcIjtcbi8qKlxuICogQSBiYXNlIGltcGxlbWVudGF0aW9uIGZvciBjb250cm9sbGVyIGV4dGVuc2lvbiB1c2VkIGludGVybmFsbHkgaW4gc2FwLmZlIGZvciBjZW50cmFsIGZ1bmN0aW9uYWxpdGllcy5cbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjExOC4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLkJhc2VDb250cm9sbGVyRXh0ZW5zaW9uXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYXNlQ29udHJvbGxlckV4dGVuc2lvbiBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHRcdCh0aGlzIGFzIHVua25vd24gYXMgeyBpbml0OiBGdW5jdGlvbiB9KS5pbml0KCk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIGlzIGluc3RhbnRpYXRlZC5cblx0ICogV2UgbmVlZCB0byBvdmVycmlkZSBpdCBmb3IgdGhlIHNwZWNpZmljIGhhbmRsaW5nIGZvciBCZWZvcmVBc3luYyBhbmQgQWZ0ZXJBc3luYyBtZXRob2RzLCBvdGhlcndpc2UgdGhlIGxhc3QgbGV2ZWwgb2YgZXh0ZW5zaW9uIGp1c3QgcmVwbGFjZSBvdXIgaW1wbGVtZW50YXRpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBpbnRlcmZhY2UgZm9yIHRoaXMgY29udHJvbGxlciBleHRlbnNpb25cblx0ICovXG5cdGdldEludGVyZmFjZSgpOiBCYXNlT2JqZWN0IHtcblx0XHRjb25zdCBpbnRlcmZhY2VPYmogPSBzdXBlci5nZXRJbnRlcmZhY2UoKTtcblx0XHRjb25zdCBtZXRhZGF0YSA9IHRoaXMuZ2V0TWV0YWRhdGEoKSBhcyBDb250cm9sbGVyTWV0YWRhdGE7XG5cdFx0Y29uc3QgYWxsTWV0aG9kcyA9IG1ldGFkYXRhLmdldEFsbE1ldGhvZHMoKTtcblx0XHRjb25zdCBtZXRob2RIb2xkZXI6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uW10+ID0ge307XG5cblx0XHRmb3IgKGNvbnN0IG1ldGhvZE5hbWUgaW4gYWxsTWV0aG9kcykge1xuXHRcdFx0Y29uc3QgbWV0aG9kID0gYWxsTWV0aG9kc1ttZXRob2ROYW1lXTtcblx0XHRcdGlmIChtZXRob2Qub3ZlcnJpZGVFeGVjdXRpb24gJiYgKG1ldGhvZC5vdmVycmlkZUV4ZWN1dGlvbiA9PT0gXCJBZnRlckFzeW5jXCIgfHwgbWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpKSB7XG5cdFx0XHRcdG1ldGhvZEhvbGRlclttZXRob2ROYW1lXSA9IFsoaW50ZXJmYWNlT2JqIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+KVttZXRob2ROYW1lXV07XG5cdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpbnRlcmZhY2VPYmosIG1ldGhvZE5hbWUsIHtcblx0XHRcdFx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0XHRcdFx0c2V0OiAodjogRnVuY3Rpb24pID0+IHtcblx0XHRcdFx0XHRcdHJldHVybiBtZXRob2RIb2xkZXJbbWV0aG9kTmFtZV0ucHVzaCh2KTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGFzeW5jICguLi5hcmdzOiB1bmtub3duW10pID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgbWV0aG9kQXJyYXlzID0gbWV0aG9kSG9sZGVyW21ldGhvZE5hbWVdO1xuXHRcdFx0XHRcdFx0XHRpZiAobWV0aG9kLm92ZXJyaWRlRXhlY3V0aW9uID09PSBcIkJlZm9yZUFzeW5jXCIpIHtcblx0XHRcdFx0XHRcdFx0XHRtZXRob2RBcnJheXMucmV2ZXJzZSgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGxldCByZXN1bHQ7XG5cdFx0XHRcdFx0XHRcdGZvciAoY29uc3QgYXJnIG9mIG1ldGhvZEFycmF5cykge1xuXHRcdFx0XHRcdFx0XHRcdHJlc3VsdCA9IGF3YWl0IGFyZy5hcHBseSh0aGlzLCBhcmdzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBpbnRlcmZhY2VPYmo7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0VBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBLElBTXFCQSx1QkFBdUIsSUFBQUMsSUFBQSxHQUQzQ0MsY0FBYyxDQUFDLDBEQUEwRCxDQUFDLEVBQUFELElBQUEsQ0FBQUUsTUFBQSwwQkFBQUMsb0JBQUE7SUFFMUUsU0FBQUosd0JBQUEsRUFBYztNQUFBLElBQUFLLEtBQUE7TUFDYkEsS0FBQSxHQUFBRCxvQkFBQSxDQUFBRSxJQUFBLEtBQU0sQ0FBQztNQUNQRCxLQUFBLENBQXdDRSxJQUFJLENBQUMsQ0FBQztNQUFDLE9BQUFGLEtBQUE7SUFDaEQ7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtJQUpDRyxRQUFBLEdBQUFSLHVCQUFBO0lBQUFTLGNBQUEsQ0FBQVQsdUJBQUEsRUFBQUksb0JBQUE7SUFBQSxJQUFBTSxNQUFBLEdBQUFWLHVCQUFBLENBQUFXLFNBQUE7SUFBQUQsTUFBQSxDQUtBRSxZQUFZLEdBQVosU0FBQUEsWUFBWUEsQ0FBQSxFQUFlO01BQUEsSUFBQUMsTUFBQTtNQUMxQixNQUFNQyxZQUFZLEdBQUFWLG9CQUFBLENBQUFPLFNBQUEsQ0FBU0MsWUFBWSxDQUFBTixJQUFBLE1BQUU7TUFDekMsTUFBTVMsUUFBUSxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLENBQXVCO01BQ3pELE1BQU1DLFVBQVUsR0FBR0YsUUFBUSxDQUFDRyxhQUFhLENBQUMsQ0FBQztNQUMzQyxNQUFNQyxZQUF3QyxHQUFHLENBQUMsQ0FBQztNQUVuRCxLQUFLLE1BQU1DLFVBQVUsSUFBSUgsVUFBVSxFQUFFO1FBQ3BDLE1BQU1JLE1BQU0sR0FBR0osVUFBVSxDQUFDRyxVQUFVLENBQUM7UUFDckMsSUFBSUMsTUFBTSxDQUFDQyxpQkFBaUIsS0FBS0QsTUFBTSxDQUFDQyxpQkFBaUIsS0FBSyxZQUFZLElBQUlELE1BQU0sQ0FBQ0MsaUJBQWlCLEtBQUssYUFBYSxDQUFDLEVBQUU7VUFDMUhILFlBQVksQ0FBQ0MsVUFBVSxDQUFDLEdBQUcsQ0FBRU4sWUFBWSxDQUF5Q00sVUFBVSxDQUFDLENBQUM7VUFDOUZHLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDVixZQUFZLEVBQUVNLFVBQVUsRUFBRTtZQUMvQ0ssWUFBWSxFQUFFLElBQUk7WUFDbEJDLEdBQUcsRUFBR0MsQ0FBVyxJQUFLO2NBQ3JCLE9BQU9SLFlBQVksQ0FBQ0MsVUFBVSxDQUFDLENBQUNRLElBQUksQ0FBQ0QsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFDREUsR0FBRyxFQUFFQSxDQUFBLEtBQU07Y0FDVixPQUFPLGtCQUE4QjtnQkFDcEMsTUFBTUMsWUFBWSxHQUFHWCxZQUFZLENBQUNDLFVBQVUsQ0FBQztnQkFDN0MsSUFBSUMsTUFBTSxDQUFDQyxpQkFBaUIsS0FBSyxhQUFhLEVBQUU7a0JBQy9DUSxZQUFZLENBQUNDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2QjtnQkFDQSxJQUFJQyxNQUFNO2dCQUFDLFNBQUFDLElBQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLEVBTEtDLElBQUksT0FBQUMsS0FBQSxDQUFBSixJQUFBLEdBQUFLLElBQUEsTUFBQUEsSUFBQSxHQUFBTCxJQUFBLEVBQUFLLElBQUE7a0JBQUpGLElBQUksQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7Z0JBQUE7Z0JBTXBCLEtBQUssTUFBTUMsR0FBRyxJQUFJVCxZQUFZLEVBQUU7a0JBQy9CRSxNQUFNLEdBQUcsTUFBTU8sR0FBRyxDQUFDQyxLQUFLLENBQUMzQixNQUFJLEVBQUV1QixJQUFJLENBQUM7Z0JBQ3JDO2dCQUNBLE9BQU9KLE1BQU07Y0FDZCxDQUFDO1lBQ0Y7VUFDRCxDQUFDLENBQUM7UUFDSDtNQUNEO01BRUEsT0FBT2xCLFlBQVk7SUFDcEIsQ0FBQztJQUFBLE9BQUFkLHVCQUFBO0VBQUEsRUE1Q21EeUMsbUJBQW1CLE1BQUF0QyxNQUFBO0VBQUFLLFFBQUEsR0FBQVIsdUJBQUE7RUFBQSxPQUFBUSxRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -40,9 +40,11 @@ export default class BaseControllerExtension extends ControllerExtension {
40
40
  if (method.overrideExecution === "BeforeAsync") {
41
41
  methodArrays.reverse();
42
42
  }
43
+ let result;
43
44
  for (const arg of methodArrays) {
44
- await arg.apply(this, args);
45
+ result = await arg.apply(this, args);
45
46
  }
47
+ return result;
46
48
  };
47
49
  }
48
50
  });
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/base/Log"], function (Log) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating/UIFormatters", "./BaseControllerExtension", "./collaboration/CollaborationCommon"], function (ClassSupport, Element, UIFormatters, BaseControllerExtension, CollaborationCommon) {
6
6
  "use strict";
@@ -26,12 +26,12 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
26
26
  }
27
27
 
28
28
  /**
29
- * Callback when the focus is set in the FieldAPI or one of its children.
29
+ * Callback when the focus is set in the Field or one of its children.
30
30
  * @param source
31
31
  * @param focusEvent
32
32
  */;
33
33
  _proto.handleContentFocusIn = function handleContentFocusIn(source, focusEvent) {
34
- // We send the event only if the focus was previously out of the FieldAPI
34
+ // We send the event only if the focus was previously out of the Field
35
35
  if (source.isA("sap.m.Tokenizer")) {
36
36
  source = source.getParent()?.getParent();
37
37
  }
@@ -40,7 +40,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
40
40
  targetOutsideOfControlDomRef = !source.getDomRef()?.contains(focusEvent.relatedTarget);
41
41
  }
42
42
  if (source.isA("sap.ui.mdc.MultiValueField") || targetOutsideOfControlDomRef) {
43
- // We need to handle the case where the newly focused FieldAPI is different from the previous one, but they share the same fieldGroupIDs
43
+ // We need to handle the case where the newly focused Field is different from the previous one, but they share the same fieldGroupIDs
44
44
  // (e.g. fields in different rows in the same column of a table)
45
45
  // In such case, the focusOut handler was not called (because we stay in the same fieldGroupID), so we need to send a focusOut event manually
46
46
  const lastFocusId = this.getLastFocusId();
@@ -54,7 +54,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
54
54
  }
55
55
 
56
56
  /**
57
- * Callback when the focus is removed from the FieldAPI or one of its children.
57
+ * Callback when the focus is removed from the Field or one of its children.
58
58
  * @param fieldGroupEvent
59
59
  */;
60
60
  _proto.handleContentFocusOut = function handleContentFocusOut(fieldGroupEvent) {
@@ -63,7 +63,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
63
63
  control = control.getParent()?.getParent();
64
64
  }
65
65
  if (!control.isA("sap.ui.mdc.MultiValueField")) {
66
- while (control && !control?.isA("sap.fe.macros.field.FieldAPI")) {
66
+ while (control && !control?.isA("sap.fe.macros.Field")) {
67
67
  control = control?.getParent();
68
68
  }
69
69
  if (!control) return;
@@ -93,7 +93,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
93
93
  }
94
94
 
95
95
  /**
96
- * Gets the id of the last focused FieldAPI (if any).
96
+ * Gets the id of the last focused Field (if any).
97
97
  * @returns ID
98
98
  */;
99
99
  _proto.getLastFocusId = function getLastFocusId() {
@@ -101,7 +101,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
101
101
  }
102
102
 
103
103
  /**
104
- * Gets the fieldgroups of the last focused FieldAPI (if any).
104
+ * Gets the fieldgroups of the last focused Field (if any).
105
105
  * @returns A string containing the fieldgroups separated by ','
106
106
  */;
107
107
  _proto.getLastFocusFieldGroups = function getLastFocusFieldGroups() {
@@ -109,12 +109,12 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
109
109
  }
110
110
 
111
111
  /**
112
- * Stores information about the last focused FieldAPI (id and fieldgroups).
113
- * @param focusedFieldAPI
112
+ * Stores information about the last focused Field (id and fieldgroups).
113
+ * @param focusedField
114
114
  */;
115
- _proto.setLastFocusInformation = function setLastFocusInformation(focusedFieldAPI) {
116
- this.lastFocusId = focusedFieldAPI?.getId();
117
- this.lastFocusFieldGroups = focusedFieldAPI?.getFieldGroupIds().join(",");
115
+ _proto.setLastFocusInformation = function setLastFocusInformation(focusedField) {
116
+ this.lastFocusId = focusedField?.getId();
117
+ this.lastFocusFieldGroups = focusedField?.getFieldGroupIds().join(",");
118
118
  }
119
119
 
120
120
  /**
@@ -160,7 +160,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
160
160
  if (!bindingContext) {
161
161
  return;
162
162
  }
163
- if (field.isA("sap.fe.macros.field.FieldAPI")) {
163
+ if (field.isA("sap.fe.macros.Field")) {
164
164
  if (!field.getMainPropertyRelativePath()) {
165
165
  return undefined;
166
166
  }
@@ -204,4 +204,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/Element", "../templating
204
204
  _exports = CollaborationDraft;
205
205
  return _exports;
206
206
  }, false);
207
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aW9uRHJhZnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfQmFzZUNvbnRyb2xsZXJFeHRlbnMiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlIiwiY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSIsImJhc2UiLCJnZXRBcHBDb21wb25lbnQiLCJoYW5kbGVDb250ZW50Rm9jdXNJbiIsInNvdXJjZSIsImZvY3VzRXZlbnQiLCJpc0EiLCJnZXRQYXJlbnQiLCJ0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmIiwiZ2V0RG9tUmVmIiwiY29udGFpbnMiLCJyZWxhdGVkVGFyZ2V0IiwibGFzdEZvY3VzSWQiLCJnZXRMYXN0Rm9jdXNJZCIsImdldElkIiwiZ2V0TGFzdEZvY3VzRmllbGRHcm91cHMiLCJnZXRGaWVsZEdyb3VwSWRzIiwiam9pbiIsImxhc3RGb2N1c2VkIiwiRWxlbWVudCIsImdldEVsZW1lbnRCeUlkIiwic2VuZEZvY3VzT3V0TWVzc2FnZSIsInNldExhc3RGb2N1c0luZm9ybWF0aW9uIiwic2VuZEZvY3VzSW5NZXNzYWdlIiwiaGFuZGxlQ29udGVudEZvY3VzT3V0IiwiZmllbGRHcm91cEV2ZW50IiwiY29udHJvbCIsImdldFNvdXJjZSIsImZpZWxkR3JvdXBJZHMiLCJnZXRQYXJhbWV0ZXIiLCJzb21lIiwiZ3JvdXBJZCIsInN0YXJ0c1dpdGgiLCJDb2xsYWJvcmF0aW9uRmllbGRHcm91cFByZWZpeCIsInNvdXJjZUNvbnRyb2wiLCJjdXJyZW50Rm9jdXNlZENvbnRyb2wiLCJnZXRBY3RpdmVFbGVtZW50IiwidW5kZWZpbmVkIiwibGFzdEZvY3VzRmllbGRHcm91cHMiLCJmb2N1c2VkRmllbGRBUEkiLCJmaWVsZHBBUEkiLCJjb2xsYWJvcmF0aW9uUGF0aCIsImdldENvbGxhYm9yYXRpb25QYXRoIiwic2VuZCIsImFjdGlvbiIsIkFjdGl2aXR5IiwiTG9jayIsImNvbnRlbnQiLCJVbmxvY2siLCJmaWVsZCIsImJpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRNYWluUHJvcGVydHlSZWxhdGl2ZVBhdGgiLCJmaWVsZFdyYXBwZXIiLCJGaWVsZEVkaXRNb2RlIiwiRWRpdGFibGUiLCJFZGl0YWJsZURpc3BsYXkiLCJFZGl0YWJsZVJlYWRPbmx5IiwiaW5jbHVkZXMiLCJnZXRQcm9wZXJ0eSIsImdldFBhdGgiLCJrZXlwYXRoIiwiZ2V0QmluZGluZ0luZm8iLCJ0ZW1wbGF0ZSIsImdldEJpbmRpbmdQYXRoIiwicGF0aCIsIm1lc3NhZ2UiLCJnZXRWaWV3IiwiaXNDb25uZWN0ZWQiLCJjb25uZWN0IiwiZGlzY29ubmVjdCIsImlzQ29sbGFib3JhdGlvbkVuYWJsZWQiLCJyZXRhaW5Bc3luY01lc3NhZ2VzIiwiYWN0aXZpdHlQYXRocyIsInJlbGVhc2VBc3luY01lc3NhZ2VzIiwidXBkYXRlTG9ja3NGb3JDb250ZXh0UGF0aCIsIm9sZENvbnRleHRQYXRoIiwibmV3Q29udGV4dFBhdGgiLCJCYXNlQ29udHJvbGxlckV4dGVuc2lvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGFib3JhdGl2ZURyYWZ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgRmllbGRXcmFwcGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL0ZpZWxkV3JhcHBlclwiO1xuaW1wb3J0IHR5cGUgRmllbGRBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRBUElcIjtcbmltcG9ydCB0eXBlIFRva2VuaXplciBmcm9tIFwic2FwL20vVG9rZW5pemVyXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2wkVmFsaWRhdGVGaWVsZEdyb3VwRXZlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIE11bHRpVmFsdWVGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9NdWx0aVZhbHVlRmllbGRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCIuLi9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSB7IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IEZpZWxkRWRpdE1vZGUgfSBmcm9tIFwiLi4vdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcbmltcG9ydCBCYXNlQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwiLi9CYXNlQ29udHJvbGxlckV4dGVuc2lvblwiO1xuaW1wb3J0IHsgQWN0aXZpdHksIENvbGxhYm9yYXRpb25GaWVsZEdyb3VwUHJlZml4IH0gZnJvbSBcIi4vY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLkNvbGxhYm9yYXRpb25EcmFmdFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGFib3JhdGlvbkRyYWZ0IGV4dGVuZHMgQmFzZUNvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcml2YXRlIGJhc2UhOiBQYWdlQ29udHJvbGxlcjtcblxuXHRwcml2YXRlIGxhc3RGb2N1c0lkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBsYXN0Rm9jdXNGaWVsZEdyb3Vwczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSE6IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2U7XG5cblx0cHJpdmF0ZSBnZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCk6IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2Uge1xuXHRcdHRoaXMuY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSA9IHRoaXMuY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSA/PyB0aGlzLmJhc2UuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpO1xuXHRcdHJldHVybiB0aGlzLmNvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2U7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgZm9jdXMgaXMgc2V0IGluIHRoZSBGaWVsZEFQSSBvciBvbmUgb2YgaXRzIGNoaWxkcmVuLlxuXHQgKiBAcGFyYW0gc291cmNlXG5cdCAqIEBwYXJhbSBmb2N1c0V2ZW50XG5cdCAqL1xuXHRwdWJsaWMgaGFuZGxlQ29udGVudEZvY3VzSW4oc291cmNlOiBGaWVsZEFQSSB8IE11bHRpVmFsdWVGaWVsZCwgZm9jdXNFdmVudD86IEZvY3VzRXZlbnQpOiB2b2lkIHtcblx0XHQvLyBXZSBzZW5kIHRoZSBldmVudCBvbmx5IGlmIHRoZSBmb2N1cyB3YXMgcHJldmlvdXNseSBvdXQgb2YgdGhlIEZpZWxkQVBJXG5cdFx0aWYgKHNvdXJjZS5pc0E8VG9rZW5pemVyPihcInNhcC5tLlRva2VuaXplclwiKSkge1xuXHRcdFx0c291cmNlID0gc291cmNlLmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKSBhcyBNdWx0aVZhbHVlRmllbGQ7XG5cdFx0fVxuXHRcdGxldCB0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmID0gZmFsc2U7XG5cdFx0aWYgKGZvY3VzRXZlbnQpIHtcblx0XHRcdHRhcmdldE91dHNpZGVPZkNvbnRyb2xEb21SZWYgPSAhc291cmNlLmdldERvbVJlZigpPy5jb250YWlucyhmb2N1c0V2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSk7XG5cdFx0fVxuXHRcdGlmIChzb3VyY2UuaXNBPE11bHRpVmFsdWVGaWVsZD4oXCJzYXAudWkubWRjLk11bHRpVmFsdWVGaWVsZFwiKSB8fCB0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmKSB7XG5cdFx0XHQvLyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgbmV3bHkgZm9jdXNlZCBGaWVsZEFQSSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcHJldmlvdXMgb25lLCBidXQgdGhleSBzaGFyZSB0aGUgc2FtZSBmaWVsZEdyb3VwSURzXG5cdFx0XHQvLyAoZS5nLiBmaWVsZHMgaW4gZGlmZmVyZW50IHJvd3MgaW4gdGhlIHNhbWUgY29sdW1uIG9mIGEgdGFibGUpXG5cdFx0XHQvLyBJbiBzdWNoIGNhc2UsIHRoZSBmb2N1c091dCBoYW5kbGVyIHdhcyBub3QgY2FsbGVkIChiZWNhdXNlIHdlIHN0YXkgaW4gdGhlIHNhbWUgZmllbGRHcm91cElEKSwgc28gd2UgbmVlZCB0byBzZW5kIGEgZm9jdXNPdXQgZXZlbnQgbWFudWFsbHlcblx0XHRcdGNvbnN0IGxhc3RGb2N1c0lkID0gdGhpcy5nZXRMYXN0Rm9jdXNJZCgpO1xuXHRcdFx0aWYgKGxhc3RGb2N1c0lkICYmIGxhc3RGb2N1c0lkICE9PSBzb3VyY2UuZ2V0SWQoKSAmJiB0aGlzLmdldExhc3RGb2N1c0ZpZWxkR3JvdXBzKCkgPT09IHNvdXJjZS5nZXRGaWVsZEdyb3VwSWRzKCkuam9pbihcIixcIikpIHtcblx0XHRcdFx0Y29uc3QgbGFzdEZvY3VzZWQgPSBFbGVtZW50LmdldEVsZW1lbnRCeUlkKGxhc3RGb2N1c0lkKSBhcyBGaWVsZEFQSTtcblx0XHRcdFx0dGhpcz8uc2VuZEZvY3VzT3V0TWVzc2FnZShsYXN0Rm9jdXNlZCk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuc2V0TGFzdEZvY3VzSW5mb3JtYXRpb24oc291cmNlKTtcblxuXHRcdFx0dGhpcy5zZW5kRm9jdXNJbk1lc3NhZ2Uoc291cmNlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgZm9jdXMgaXMgcmVtb3ZlZCBmcm9tIHRoZSBGaWVsZEFQSSBvciBvbmUgb2YgaXRzIGNoaWxkcmVuLlxuXHQgKiBAcGFyYW0gZmllbGRHcm91cEV2ZW50XG5cdCAqL1xuXHRwdWJsaWMgaGFuZGxlQ29udGVudEZvY3VzT3V0KGZpZWxkR3JvdXBFdmVudDogQ29udHJvbCRWYWxpZGF0ZUZpZWxkR3JvdXBFdmVudCk6IHZvaWQge1xuXHRcdGxldCBjb250cm9sOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCA9IGZpZWxkR3JvdXBFdmVudC5nZXRTb3VyY2UoKTtcblx0XHRpZiAoY29udHJvbC5pc0E8VG9rZW5pemVyPihcInNhcC5tLlRva2VuaXplclwiKSkge1xuXHRcdFx0Y29udHJvbCA9IGNvbnRyb2wuZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIE11bHRpVmFsdWVGaWVsZDtcblx0XHR9XG5cdFx0aWYgKCFjb250cm9sLmlzQTxNdWx0aVZhbHVlRmllbGQ+KFwic2FwLnVpLm1kYy5NdWx0aVZhbHVlRmllbGRcIikpIHtcblx0XHRcdHdoaWxlIChjb250cm9sICYmICFjb250cm9sPy5pc0E8RmllbGRBUEk+KFwic2FwLmZlLm1hY3Jvcy5maWVsZC5GaWVsZEFQSVwiKSkge1xuXHRcdFx0XHRjb250cm9sID0gY29udHJvbD8uZ2V0UGFyZW50KCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIWNvbnRyb2wpIHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBmaWVsZEdyb3VwSWRzID0gZmllbGRHcm91cEV2ZW50LmdldFBhcmFtZXRlcihcImZpZWxkR3JvdXBJZHNcIikgYXMgc3RyaW5nW107XG5cblx0XHQvLyBXZSBzZW5kIHRoZSBldmVudCBvbmx5IGlmIHRoZSB2YWxpZGF0ZWQgZmllbGRDcm91cCBjb3JyZXNwb25kcyB0byBhIGNvbGxhYm9yYXRpb24gZ3JvdXBcblx0XHRpZiAoXG5cdFx0XHRmaWVsZEdyb3VwSWRzLnNvbWUoKGdyb3VwSWQpID0+IHtcblx0XHRcdFx0cmV0dXJuIGdyb3VwSWQuc3RhcnRzV2l0aChDb2xsYWJvcmF0aW9uRmllbGRHcm91cFByZWZpeCk7XG5cdFx0XHR9KVxuXHRcdCkge1xuXHRcdFx0Y29uc3Qgc291cmNlQ29udHJvbDogQ29udHJvbCA9IGZpZWxkR3JvdXBFdmVudC5nZXRTb3VyY2UoKTtcblxuXHRcdFx0Ly8gRGV0ZXJtaW5lIGlmIHRoZSBjb250cm9sIHRoYXQgc2VudCB0aGUgZXZlbnQgc3RpbGwgaGFzIHRoZSBmb2N1cyAob3Igb25lIG9mIGl0cyBjaGlsZHJlbikuXG5cdFx0XHQvLyBUaGlzIGNvdWxkIGhhcHBlbiBlLmcuIGlmIHRoZSB1c2VyIHByZXNzZWQgPEVudGVyPiB0byB2YWxpZGF0ZSB0aGUgaW5wdXQuXG5cdFx0XHRsZXQgY3VycmVudEZvY3VzZWRDb250cm9sOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCB8IHVuZGVmaW5lZCA9IEVsZW1lbnQuZ2V0QWN0aXZlRWxlbWVudCgpO1xuXHRcdFx0d2hpbGUgKGN1cnJlbnRGb2N1c2VkQ29udHJvbCAmJiBjdXJyZW50Rm9jdXNlZENvbnRyb2wgIT09IHNvdXJjZUNvbnRyb2wpIHtcblx0XHRcdFx0Y3VycmVudEZvY3VzZWRDb250cm9sID0gY3VycmVudEZvY3VzZWRDb250cm9sLmdldFBhcmVudCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGN1cnJlbnRGb2N1c2VkQ29udHJvbCAhPT0gc291cmNlQ29udHJvbCkge1xuXHRcdFx0XHQvLyBUaGUgY29udHJvbCB0aGF0IHNlbnQgdGhlIGV2ZW50IGlzbid0IGZvY3VzZWQgYW55bW9yZVxuXHRcdFx0XHR0aGlzLnNlbmRGb2N1c091dE1lc3NhZ2UoY29udHJvbCk7XG5cdFx0XHRcdGlmICh0aGlzLmdldExhc3RGb2N1c0lkKCkgPT09IGNvbnRyb2wuZ2V0SWQoKSkge1xuXHRcdFx0XHRcdHRoaXMuc2V0TGFzdEZvY3VzSW5mb3JtYXRpb24odW5kZWZpbmVkKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBpZCBvZiB0aGUgbGFzdCBmb2N1c2VkIEZpZWxkQVBJIChpZiBhbnkpLlxuXHQgKiBAcmV0dXJucyBJRFxuXHQgKi9cblx0cHJpdmF0ZSBnZXRMYXN0Rm9jdXNJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmxhc3RGb2N1c0lkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGZpZWxkZ3JvdXBzIG9mIHRoZSBsYXN0IGZvY3VzZWQgRmllbGRBUEkgKGlmIGFueSkuXG5cdCAqIEByZXR1cm5zIEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGZpZWxkZ3JvdXBzIHNlcGFyYXRlZCBieSAnLCdcblx0ICovXG5cdHByaXZhdGUgZ2V0TGFzdEZvY3VzRmllbGRHcm91cHMoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5sYXN0Rm9jdXNGaWVsZEdyb3Vwcztcblx0fVxuXG5cdC8qKlxuXHQgKiBTdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxhc3QgZm9jdXNlZCBGaWVsZEFQSSAoaWQgYW5kIGZpZWxkZ3JvdXBzKS5cblx0ICogQHBhcmFtIGZvY3VzZWRGaWVsZEFQSVxuXHQgKi9cblx0cHJpdmF0ZSBzZXRMYXN0Rm9jdXNJbmZvcm1hdGlvbihmb2N1c2VkRmllbGRBUEk6IEZpZWxkQVBJIHwgTXVsdGlWYWx1ZUZpZWxkIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0dGhpcy5sYXN0Rm9jdXNJZCA9IGZvY3VzZWRGaWVsZEFQST8uZ2V0SWQoKTtcblx0XHR0aGlzLmxhc3RGb2N1c0ZpZWxkR3JvdXBzID0gZm9jdXNlZEZpZWxkQVBJPy5nZXRGaWVsZEdyb3VwSWRzKCkuam9pbihcIixcIik7XG5cdH1cblxuXHQvKipcblx0ICogSWYgY29sbGFib3JhdGlvbiBpcyBlbmFibGVkLCBzZW5kIGEgTG9jayBjb2xsYWJvcmF0aW9uIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSBmaWVsZHBBUElcblx0ICovXG5cdHByaXZhdGUgc2VuZEZvY3VzSW5NZXNzYWdlKGZpZWxkcEFQSTogRmllbGRBUEkgfCBNdWx0aVZhbHVlRmllbGQpOiB2b2lkIHtcblx0XHRjb25zdCBjb2xsYWJvcmF0aW9uUGF0aCA9IHRoaXMuZ2V0Q29sbGFib3JhdGlvblBhdGgoZmllbGRwQVBJKTtcblxuXHRcdGlmIChjb2xsYWJvcmF0aW9uUGF0aCkge1xuXHRcdFx0dGhpcy5zZW5kKHsgYWN0aW9uOiBBY3Rpdml0eS5Mb2NrLCBjb250ZW50OiBjb2xsYWJvcmF0aW9uUGF0aCB9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSWYgY29sbGFib3JhdGlvbiBpcyBlbmFibGVkLCBzZW5kIGFuIFVubG9jayBjb2xsYWJvcmF0aW9uIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSBmaWVsZHBBUElcblx0ICovXG5cdHByaXZhdGUgc2VuZEZvY3VzT3V0TWVzc2FnZShmaWVsZHBBUEk6IEZpZWxkQVBJIHwgTXVsdGlWYWx1ZUZpZWxkIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0aWYgKCFmaWVsZHBBUEkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgY29sbGFib3JhdGlvblBhdGggPSB0aGlzLmdldENvbGxhYm9yYXRpb25QYXRoKGZpZWxkcEFQSSk7XG5cdFx0aWYgKGNvbGxhYm9yYXRpb25QYXRoKSB7XG5cdFx0XHR0aGlzLnNlbmQoeyBhY3Rpb246IEFjdGl2aXR5LlVubG9jaywgY29udGVudDogY29sbGFib3JhdGlvblBhdGggfSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIHBhdGggdXNlZCB0byBzZW5kIGNvbGxhYm9yYXRpb24gbWVzc2FnZXMuXG5cdCAqIEBwYXJhbSBmaWVsZFxuXHQgKiBAcmV0dXJucyBUaGUgcGF0aCAob3IgdW5kZWZpbmVkIGlzIG5vIHZhbGlkIHBhdGggY291bGQgYmUgZm91bmQpXG5cdCAqL1xuXHRwcml2YXRlIGdldENvbGxhYm9yYXRpb25QYXRoKGZpZWxkOiBGaWVsZEFQSSB8IE11bHRpVmFsdWVGaWVsZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gTm90ZTogd2Ugc2VuZCBtZXNzYWdlcyBldmVuIGlmIHRoZSBjb250ZXh0IGlzIGluYWN0aXZlIChlbXB0eSBjcmVhdGlvbiByb3dzKSxcblx0XHQvLyBvdGhlcndpc2Ugd2UgY2FuJ3QgdXBkYXRlIHRoZSBjb3JyZXNwb25kaW5nIGxvY2tzIHdoZW4gdGhlIGNvbnRleHQgaXMgYWN0aXZhdGVkLlxuXHRcdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gZmllbGQ/LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dCB8IHVuZGVmaW5lZDtcblx0XHRpZiAoIWJpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChmaWVsZC5pc0E8RmllbGRBUEk+KFwic2FwLmZlLm1hY3Jvcy5maWVsZC5GaWVsZEFQSVwiKSkge1xuXHRcdFx0aWYgKCFmaWVsZC5nZXRNYWluUHJvcGVydHlSZWxhdGl2ZVBhdGgoKSkge1xuXHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBmaWVsZFdyYXBwZXIgPSBmaWVsZC5jb250ZW50IGFzIEZpZWxkV3JhcHBlciB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChcblx0XHRcdFx0IVtGaWVsZEVkaXRNb2RlLkVkaXRhYmxlLCBGaWVsZEVkaXRNb2RlLkVkaXRhYmxlRGlzcGxheSwgRmllbGRFZGl0TW9kZS5FZGl0YWJsZVJlYWRPbmx5XS5pbmNsdWRlcyhcblx0XHRcdFx0XHRmaWVsZFdyYXBwZXI/LmdldFByb3BlcnR5KFwiZWRpdE1vZGVcIilcblx0XHRcdFx0KVxuXHRcdFx0KSB7XG5cdFx0XHRcdC8vIFRoZSBmaWVsZCBpcyBub3QgaW4gZWRpdCBtb2RlIC0tPiBubyBjb2xsYWJvcmF0aW9uIG1lc3NhZ2VzXG5cdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBgJHtiaW5kaW5nQ29udGV4dC5nZXRQYXRoKCl9LyR7ZmllbGQuZ2V0TWFpblByb3BlcnR5UmVsYXRpdmVQYXRoKCl9YDtcblx0XHR9IGVsc2UgaWYgKGZpZWxkLmlzQTxNdWx0aVZhbHVlRmllbGQ+KFwic2FwLnVpLm1kYy5NdWx0aVZhbHVlRmllbGRcIikpIHtcblx0XHRcdGNvbnN0IGtleXBhdGggPSBmaWVsZC5nZXRCaW5kaW5nSW5mbyhcIml0ZW1zXCIpLnRlbXBsYXRlLmdldEJpbmRpbmdQYXRoKFwia2V5XCIpO1xuXHRcdFx0cmV0dXJuIGAke2JpbmRpbmdDb250ZXh0LmdldFBhdGgoKX0vJHtmaWVsZC5nZXRCaW5kaW5nSW5mbyhcIml0ZW1zXCIpLnBhdGh9LyR7a2V5cGF0aH1gO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzZW5kKG1lc3NhZ2U6IHtcblx0XHRhY3Rpb246IEFjdGl2aXR5O1xuXHRcdGNvbnRlbnQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXHRcdHRyaWdnZXJlZEFjdGlvbk5hbWU/OiBzdHJpbmc7XG5cdFx0cmVmcmVzaExpc3RCaW5kaW5nPzogYm9vbGVhbjtcblx0XHRhY3Rpb25SZXF1ZXN0ZWRQcm9wZXJ0aWVzPzogc3RyaW5nW107XG5cdH0pOiB2b2lkIHtcblx0XHR0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5zZW5kKHRoaXMuZ2V0VmlldygpLCBtZXNzYWdlKTtcblx0fVxuXG5cdHB1YmxpYyBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCkuaXNDb25uZWN0ZWQodGhpcy5nZXRWaWV3KCkpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpLmNvbm5lY3QodGhpcy5nZXRWaWV3KCkgYXMgRkVWaWV3KTtcblx0fVxuXG5cdHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5kaXNjb25uZWN0KHRoaXMuZ2V0VmlldygpIGFzIEZFVmlldyk7XG5cdH1cblxuXHRwdWJsaWMgaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCkuaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCh0aGlzLmdldFZpZXcoKSk7XG5cdH1cblxuXHRwdWJsaWMgcmV0YWluQXN5bmNNZXNzYWdlcyhhY3Rpdml0eVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5yZXRhaW5Bc3luY01lc3NhZ2VzKHRoaXMuZ2V0VmlldygpLCBhY3Rpdml0eVBhdGhzKTtcblx0fVxuXG5cdHB1YmxpYyByZWxlYXNlQXN5bmNNZXNzYWdlcyhhY3Rpdml0eVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5yZWxlYXNlQXN5bmNNZXNzYWdlcyh0aGlzLmdldFZpZXcoKSwgYWN0aXZpdHlQYXRocyk7XG5cdH1cblxuXHRwdWJsaWMgdXBkYXRlTG9ja3NGb3JDb250ZXh0UGF0aChvbGRDb250ZXh0UGF0aDogc3RyaW5nLCBuZXdDb250ZXh0UGF0aDogc3RyaW5nKTogdm9pZCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpLnVwZGF0ZUxvY2tzRm9yQ29udGV4dFBhdGgodGhpcy5nZXRWaWV3KCksIG9sZENvbnRleHRQYXRoLCBuZXdDb250ZXh0UGF0aCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O01Ba0JxQkEsa0JBQWtCLElBQUFDLElBQUEsR0FEdENDLGNBQWMsQ0FBQyxxREFBcUQsQ0FBQyxFQUFBRCxJQUFBLENBQUFFLE1BQUEsMEJBQUFDLHFCQUFBO0lBQUEsU0FBQUosbUJBQUE7TUFBQSxPQUFBSSxxQkFBQSxDQUFBQyxLQUFBLE9BQUFDLFNBQUE7SUFBQTtJQUFBQyxRQUFBLEdBQUFQLGtCQUFBO0lBQUFRLGNBQUEsQ0FBQVIsa0JBQUEsRUFBQUkscUJBQUE7SUFBQSxJQUFBSyxNQUFBLEdBQUFULGtCQUFBLENBQUFVLFNBQUE7SUFBQUQsTUFBQSxDQVU3REUsNEJBQTRCLEdBQXBDLFNBQVFBLDRCQUE0QkEsQ0FBQSxFQUE4QjtNQUNqRSxJQUFJLENBQUNDLHlCQUF5QixHQUFHLElBQUksQ0FBQ0EseUJBQXlCLElBQUksSUFBSSxDQUFDQyxJQUFJLENBQUNDLGVBQWUsQ0FBQyxDQUFDLENBQUNILDRCQUE0QixDQUFDLENBQUM7TUFDN0gsT0FBTyxJQUFJLENBQUNDLHlCQUF5QjtJQUN0Qzs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQUgsTUFBQSxDQUtPTSxvQkFBb0IsR0FBM0IsU0FBT0Esb0JBQW9CQSxDQUFDQyxNQUFrQyxFQUFFQyxVQUF1QixFQUFRO01BQzlGO01BQ0EsSUFBSUQsTUFBTSxDQUFDRSxHQUFHLENBQVksaUJBQWlCLENBQUMsRUFBRTtRQUM3Q0YsTUFBTSxHQUFHQSxNQUFNLENBQUNHLFNBQVMsQ0FBQyxDQUFDLEVBQUVBLFNBQVMsQ0FBQyxDQUFvQjtNQUM1RDtNQUNBLElBQUlDLDRCQUE0QixHQUFHLEtBQUs7TUFDeEMsSUFBSUgsVUFBVSxFQUFFO1FBQ2ZHLDRCQUE0QixHQUFHLENBQUNKLE1BQU0sQ0FBQ0ssU0FBUyxDQUFDLENBQUMsRUFBRUMsUUFBUSxDQUFDTCxVQUFVLENBQUNNLGFBQXFCLENBQUM7TUFDL0Y7TUFDQSxJQUFJUCxNQUFNLENBQUNFLEdBQUcsQ0FBa0IsNEJBQTRCLENBQUMsSUFBSUUsNEJBQTRCLEVBQUU7UUFDOUY7UUFDQTtRQUNBO1FBQ0EsTUFBTUksV0FBVyxHQUFHLElBQUksQ0FBQ0MsY0FBYyxDQUFDLENBQUM7UUFDekMsSUFBSUQsV0FBVyxJQUFJQSxXQUFXLEtBQUtSLE1BQU0sQ0FBQ1UsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUNDLHVCQUF1QixDQUFDLENBQUMsS0FBS1gsTUFBTSxDQUFDWSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtVQUM1SCxNQUFNQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsY0FBYyxDQUFDUixXQUFXLENBQWE7VUFDbkUsSUFBSSxFQUFFUyxtQkFBbUIsQ0FBQ0gsV0FBVyxDQUFDO1FBQ3ZDO1FBRUEsSUFBSSxDQUFDSSx1QkFBdUIsQ0FBQ2xCLE1BQU0sQ0FBQztRQUVwQyxJQUFJLENBQUNtQixrQkFBa0IsQ0FBQ25CLE1BQU0sQ0FBQztNQUNoQztJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQVAsTUFBQSxDQUlPMkIscUJBQXFCLEdBQTVCLFNBQU9BLHFCQUFxQkEsQ0FBQ0MsZUFBZ0QsRUFBUTtNQUNwRixJQUFJQyxPQUE2QixHQUFHRCxlQUFlLENBQUNFLFNBQVMsQ0FBQyxDQUFDO01BQy9ELElBQUlELE9BQU8sQ0FBQ3BCLEdBQUcsQ0FBWSxpQkFBaUIsQ0FBQyxFQUFFO1FBQzlDb0IsT0FBTyxHQUFHQSxPQUFPLENBQUNuQixTQUFTLENBQUMsQ0FBQyxFQUFFQSxTQUFTLENBQUMsQ0FBb0I7TUFDOUQ7TUFDQSxJQUFJLENBQUNtQixPQUFPLENBQUNwQixHQUFHLENBQWtCLDRCQUE0QixDQUFDLEVBQUU7UUFDaEUsT0FBT29CLE9BQU8sSUFBSSxDQUFDQSxPQUFPLEVBQUVwQixHQUFHLENBQVcsOEJBQThCLENBQUMsRUFBRTtVQUMxRW9CLE9BQU8sR0FBR0EsT0FBTyxFQUFFbkIsU0FBUyxDQUFDLENBQUM7UUFDL0I7UUFDQSxJQUFJLENBQUNtQixPQUFPLEVBQUU7TUFDZjtNQUVBLE1BQU1FLGFBQWEsR0FBR0gsZUFBZSxDQUFDSSxZQUFZLENBQUMsZUFBZSxDQUFhOztNQUUvRTtNQUNBLElBQ0NELGFBQWEsQ0FBQ0UsSUFBSSxDQUFFQyxPQUFPLElBQUs7UUFDL0IsT0FBT0EsT0FBTyxDQUFDQyxVQUFVLENBQUNDLDZCQUE2QixDQUFDO01BQ3pELENBQUMsQ0FBQyxFQUNEO1FBQ0QsTUFBTUMsYUFBc0IsR0FBR1QsZUFBZSxDQUFDRSxTQUFTLENBQUMsQ0FBQzs7UUFFMUQ7UUFDQTtRQUNBLElBQUlRLHFCQUF1RCxHQUFHaEIsT0FBTyxDQUFDaUIsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RixPQUFPRCxxQkFBcUIsSUFBSUEscUJBQXFCLEtBQUtELGFBQWEsRUFBRTtVQUN4RUMscUJBQXFCLEdBQUdBLHFCQUFxQixDQUFDNUIsU0FBUyxDQUFDLENBQUM7UUFDMUQ7UUFDQSxJQUFJNEIscUJBQXFCLEtBQUtELGFBQWEsRUFBRTtVQUM1QztVQUNBLElBQUksQ0FBQ2IsbUJBQW1CLENBQUNLLE9BQU8sQ0FBQztVQUNqQyxJQUFJLElBQUksQ0FBQ2IsY0FBYyxDQUFDLENBQUMsS0FBS2EsT0FBTyxDQUFDWixLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQ1EsdUJBQXVCLENBQUNlLFNBQVMsQ0FBQztVQUN4QztRQUNEO01BQ0Q7SUFDRDs7SUFFQTtBQUNEO0FBQ0E7QUFDQSxPQUhDO0lBQUF4QyxNQUFBLENBSVFnQixjQUFjLEdBQXRCLFNBQVFBLGNBQWNBLENBQUEsRUFBdUI7TUFDNUMsT0FBTyxJQUFJLENBQUNELFdBQVc7SUFDeEI7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBZixNQUFBLENBSVFrQix1QkFBdUIsR0FBL0IsU0FBUUEsdUJBQXVCQSxDQUFBLEVBQXVCO01BQ3JELE9BQU8sSUFBSSxDQUFDdUIsb0JBQW9CO0lBQ2pDOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQXpDLE1BQUEsQ0FJUXlCLHVCQUF1QixHQUEvQixTQUFRQSx1QkFBdUJBLENBQUNpQixlQUF1RCxFQUFRO01BQzlGLElBQUksQ0FBQzNCLFdBQVcsR0FBRzJCLGVBQWUsRUFBRXpCLEtBQUssQ0FBQyxDQUFDO01BQzNDLElBQUksQ0FBQ3dCLG9CQUFvQixHQUFHQyxlQUFlLEVBQUV2QixnQkFBZ0IsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDMUU7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBcEIsTUFBQSxDQUlRMEIsa0JBQWtCLEdBQTFCLFNBQVFBLGtCQUFrQkEsQ0FBQ2lCLFNBQXFDLEVBQVE7TUFDdkUsTUFBTUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0YsU0FBUyxDQUFDO01BRTlELElBQUlDLGlCQUFpQixFQUFFO1FBQ3RCLElBQUksQ0FBQ0UsSUFBSSxDQUFDO1VBQUVDLE1BQU0sRUFBRUMsUUFBUSxDQUFDQyxJQUFJO1VBQUVDLE9BQU8sRUFBRU47UUFBa0IsQ0FBQyxDQUFDO01BQ2pFO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBNUMsTUFBQSxDQUlRd0IsbUJBQW1CLEdBQTNCLFNBQVFBLG1CQUFtQkEsQ0FBQ21CLFNBQWlELEVBQVE7TUFDcEYsSUFBSSxDQUFDQSxTQUFTLEVBQUU7UUFDZjtNQUNEO01BQ0EsTUFBTUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0YsU0FBUyxDQUFDO01BQzlELElBQUlDLGlCQUFpQixFQUFFO1FBQ3RCLElBQUksQ0FBQ0UsSUFBSSxDQUFDO1VBQUVDLE1BQU0sRUFBRUMsUUFBUSxDQUFDRyxNQUFNO1VBQUVELE9BQU8sRUFBRU47UUFBa0IsQ0FBQyxDQUFDO01BQ25FO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUE1QyxNQUFBLENBS1E2QyxvQkFBb0IsR0FBNUIsU0FBUUEsb0JBQW9CQSxDQUFDTyxLQUFpQyxFQUFzQjtNQUNuRjtNQUNBO01BQ0EsTUFBTUMsY0FBYyxHQUFHRCxLQUFLLEVBQUVFLGlCQUFpQixDQUFDLENBQXdCO01BQ3hFLElBQUksQ0FBQ0QsY0FBYyxFQUFFO1FBQ3BCO01BQ0Q7TUFDQSxJQUFJRCxLQUFLLENBQUMzQyxHQUFHLENBQVcsOEJBQThCLENBQUMsRUFBRTtRQUN4RCxJQUFJLENBQUMyQyxLQUFLLENBQUNHLDJCQUEyQixDQUFDLENBQUMsRUFBRTtVQUN6QyxPQUFPZixTQUFTO1FBQ2pCO1FBRUEsTUFBTWdCLFlBQVksR0FBR0osS0FBSyxDQUFDRixPQUFtQztRQUM5RCxJQUNDLENBQUMsQ0FBQ08sYUFBYSxDQUFDQyxRQUFRLEVBQUVELGFBQWEsQ0FBQ0UsZUFBZSxFQUFFRixhQUFhLENBQUNHLGdCQUFnQixDQUFDLENBQUNDLFFBQVEsQ0FDaEdMLFlBQVksRUFBRU0sV0FBVyxDQUFDLFVBQVUsQ0FDckMsQ0FBQyxFQUNBO1VBQ0Q7VUFDQSxPQUFPdEIsU0FBUztRQUNqQjtRQUVBLE9BQU8sR0FBR2EsY0FBYyxDQUFDVSxPQUFPLENBQUMsQ0FBQyxJQUFJWCxLQUFLLENBQUNHLDJCQUEyQixDQUFDLENBQUMsRUFBRTtNQUM1RSxDQUFDLE1BQU0sSUFBSUgsS0FBSyxDQUFDM0MsR0FBRyxDQUFrQiw0QkFBNEIsQ0FBQyxFQUFFO1FBQ3BFLE1BQU11RCxPQUFPLEdBQUdaLEtBQUssQ0FBQ2EsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDQyxRQUFRLENBQUNDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUUsT0FBTyxHQUFHZCxjQUFjLENBQUNVLE9BQU8sQ0FBQyxDQUFDLElBQUlYLEtBQUssQ0FBQ2EsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDRyxJQUFJLElBQUlKLE9BQU8sRUFBRTtNQUN0RjtJQUNELENBQUM7SUFBQWhFLE1BQUEsQ0FFTThDLElBQUksR0FBWCxTQUFPQSxJQUFJQSxDQUFDdUIsT0FNWCxFQUFRO01BQ1IsSUFBSSxDQUFDbkUsNEJBQTRCLENBQUMsQ0FBQyxDQUFDNEMsSUFBSSxDQUFDLElBQUksQ0FBQ3dCLE9BQU8sQ0FBQyxDQUFDLEVBQUVELE9BQU8sQ0FBQztJQUNsRSxDQUFDO0lBQUFyRSxNQUFBLENBRU11RSxXQUFXLEdBQWxCLFNBQU9BLFdBQVdBLENBQUEsRUFBWTtNQUM3QixPQUFPLElBQUksQ0FBQ3JFLDRCQUE0QixDQUFDLENBQUMsQ0FBQ3FFLFdBQVcsQ0FBQyxJQUFJLENBQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUFBdEUsTUFBQSxDQUVZd0UsT0FBTyxHQUFwQixlQUFhQSxPQUFPQSxDQUFBLEVBQWtCO01BQ3JDLE9BQU8sSUFBSSxDQUFDdEUsNEJBQTRCLENBQUMsQ0FBQyxDQUFDc0UsT0FBTyxDQUFDLElBQUksQ0FBQ0YsT0FBTyxDQUFDLENBQVcsQ0FBQztJQUM3RSxDQUFDO0lBQUF0RSxNQUFBLENBRU15RSxVQUFVLEdBQWpCLFNBQU9BLFVBQVVBLENBQUEsRUFBUztNQUN6QixPQUFPLElBQUksQ0FBQ3ZFLDRCQUE0QixDQUFDLENBQUMsQ0FBQ3VFLFVBQVUsQ0FBQyxJQUFJLENBQUNILE9BQU8sQ0FBQyxDQUFXLENBQUM7SUFDaEYsQ0FBQztJQUFBdEUsTUFBQSxDQUVNMEUsc0JBQXNCLEdBQTdCLFNBQU9BLHNCQUFzQkEsQ0FBQSxFQUFZO01BQ3hDLE9BQU8sSUFBSSxDQUFDeEUsNEJBQTRCLENBQUMsQ0FBQyxDQUFDd0Usc0JBQXNCLENBQUMsSUFBSSxDQUFDSixPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFBQXRFLE1BQUEsQ0FFTTJFLG1CQUFtQixHQUExQixTQUFPQSxtQkFBbUJBLENBQUNDLGFBQWdDLEVBQVE7TUFDbEUsT0FBTyxJQUFJLENBQUMxRSw0QkFBNEIsQ0FBQyxDQUFDLENBQUN5RSxtQkFBbUIsQ0FBQyxJQUFJLENBQUNMLE9BQU8sQ0FBQyxDQUFDLEVBQUVNLGFBQWEsQ0FBQztJQUM5RixDQUFDO0lBQUE1RSxNQUFBLENBRU02RSxvQkFBb0IsR0FBM0IsU0FBT0Esb0JBQW9CQSxDQUFDRCxhQUFnQyxFQUFRO01BQ25FLE9BQU8sSUFBSSxDQUFDMUUsNEJBQTRCLENBQUMsQ0FBQyxDQUFDMkUsb0JBQW9CLENBQUMsSUFBSSxDQUFDUCxPQUFPLENBQUMsQ0FBQyxFQUFFTSxhQUFhLENBQUM7SUFDL0YsQ0FBQztJQUFBNUUsTUFBQSxDQUVNOEUseUJBQXlCLEdBQWhDLFNBQU9BLHlCQUF5QkEsQ0FBQ0MsY0FBc0IsRUFBRUMsY0FBc0IsRUFBUTtNQUN0RixPQUFPLElBQUksQ0FBQzlFLDRCQUE0QixDQUFDLENBQUMsQ0FBQzRFLHlCQUF5QixDQUFDLElBQUksQ0FBQ1IsT0FBTyxDQUFDLENBQUMsRUFBRVMsY0FBYyxFQUFFQyxjQUFjLENBQUM7SUFDckgsQ0FBQztJQUFBLE9BQUF6RixrQkFBQTtFQUFBLEVBL004QzBGLHVCQUF1QixNQUFBdkYsTUFBQTtFQUFBSSxRQUFBLEdBQUFQLGtCQUFBO0VBQUEsT0FBQU8sUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
207
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aW9uRHJhZnQiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfQmFzZUNvbnRyb2xsZXJFeHRlbnMiLCJhcHBseSIsImFyZ3VtZW50cyIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlIiwiY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSIsImJhc2UiLCJnZXRBcHBDb21wb25lbnQiLCJoYW5kbGVDb250ZW50Rm9jdXNJbiIsInNvdXJjZSIsImZvY3VzRXZlbnQiLCJpc0EiLCJnZXRQYXJlbnQiLCJ0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmIiwiZ2V0RG9tUmVmIiwiY29udGFpbnMiLCJyZWxhdGVkVGFyZ2V0IiwibGFzdEZvY3VzSWQiLCJnZXRMYXN0Rm9jdXNJZCIsImdldElkIiwiZ2V0TGFzdEZvY3VzRmllbGRHcm91cHMiLCJnZXRGaWVsZEdyb3VwSWRzIiwiam9pbiIsImxhc3RGb2N1c2VkIiwiRWxlbWVudCIsImdldEVsZW1lbnRCeUlkIiwic2VuZEZvY3VzT3V0TWVzc2FnZSIsInNldExhc3RGb2N1c0luZm9ybWF0aW9uIiwic2VuZEZvY3VzSW5NZXNzYWdlIiwiaGFuZGxlQ29udGVudEZvY3VzT3V0IiwiZmllbGRHcm91cEV2ZW50IiwiY29udHJvbCIsImdldFNvdXJjZSIsImZpZWxkR3JvdXBJZHMiLCJnZXRQYXJhbWV0ZXIiLCJzb21lIiwiZ3JvdXBJZCIsInN0YXJ0c1dpdGgiLCJDb2xsYWJvcmF0aW9uRmllbGRHcm91cFByZWZpeCIsInNvdXJjZUNvbnRyb2wiLCJjdXJyZW50Rm9jdXNlZENvbnRyb2wiLCJnZXRBY3RpdmVFbGVtZW50IiwidW5kZWZpbmVkIiwibGFzdEZvY3VzRmllbGRHcm91cHMiLCJmb2N1c2VkRmllbGQiLCJmaWVsZHBBUEkiLCJjb2xsYWJvcmF0aW9uUGF0aCIsImdldENvbGxhYm9yYXRpb25QYXRoIiwic2VuZCIsImFjdGlvbiIsIkFjdGl2aXR5IiwiTG9jayIsImNvbnRlbnQiLCJVbmxvY2siLCJmaWVsZCIsImJpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRNYWluUHJvcGVydHlSZWxhdGl2ZVBhdGgiLCJmaWVsZFdyYXBwZXIiLCJGaWVsZEVkaXRNb2RlIiwiRWRpdGFibGUiLCJFZGl0YWJsZURpc3BsYXkiLCJFZGl0YWJsZVJlYWRPbmx5IiwiaW5jbHVkZXMiLCJnZXRQcm9wZXJ0eSIsImdldFBhdGgiLCJrZXlwYXRoIiwiZ2V0QmluZGluZ0luZm8iLCJ0ZW1wbGF0ZSIsImdldEJpbmRpbmdQYXRoIiwicGF0aCIsIm1lc3NhZ2UiLCJnZXRWaWV3IiwiaXNDb25uZWN0ZWQiLCJjb25uZWN0IiwiZGlzY29ubmVjdCIsImlzQ29sbGFib3JhdGlvbkVuYWJsZWQiLCJyZXRhaW5Bc3luY01lc3NhZ2VzIiwiYWN0aXZpdHlQYXRocyIsInJlbGVhc2VBc3luY01lc3NhZ2VzIiwidXBkYXRlTG9ja3NGb3JDb250ZXh0UGF0aCIsIm9sZENvbnRleHRQYXRoIiwibmV3Q29udGV4dFBhdGgiLCJCYXNlQ29udHJvbGxlckV4dGVuc2lvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGFib3JhdGl2ZURyYWZ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgRmllbGQgZnJvbSBcInNhcC9mZS9tYWNyb3MvRmllbGRcIjtcbmltcG9ydCB0eXBlIEZpZWxkV3JhcHBlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9GaWVsZFdyYXBwZXJcIjtcbmltcG9ydCB0eXBlIFRva2VuaXplciBmcm9tIFwic2FwL20vVG9rZW5pemVyXCI7XG5pbXBvcnQgdHlwZSBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2wkVmFsaWRhdGVGaWVsZEdyb3VwRXZlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIE11bHRpVmFsdWVGaWVsZCBmcm9tIFwic2FwL3VpL21kYy9NdWx0aVZhbHVlRmllbGRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCIuLi9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSB7IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IEZpZWxkRWRpdE1vZGUgfSBmcm9tIFwiLi4vdGVtcGxhdGluZy9VSUZvcm1hdHRlcnNcIjtcbmltcG9ydCBCYXNlQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwiLi9CYXNlQ29udHJvbGxlckV4dGVuc2lvblwiO1xuaW1wb3J0IHsgQWN0aXZpdHksIENvbGxhYm9yYXRpb25GaWVsZEdyb3VwUHJlZml4IH0gZnJvbSBcIi4vY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLkNvbGxhYm9yYXRpb25EcmFmdFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGFib3JhdGlvbkRyYWZ0IGV4dGVuZHMgQmFzZUNvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcml2YXRlIGJhc2UhOiBQYWdlQ29udHJvbGxlcjtcblxuXHRwcml2YXRlIGxhc3RGb2N1c0lkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSBsYXN0Rm9jdXNGaWVsZEdyb3Vwczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdHByaXZhdGUgY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSE6IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2U7XG5cblx0cHJpdmF0ZSBnZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCk6IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2Uge1xuXHRcdHRoaXMuY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSA9IHRoaXMuY29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSA/PyB0aGlzLmJhc2UuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpO1xuXHRcdHJldHVybiB0aGlzLmNvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2U7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgZm9jdXMgaXMgc2V0IGluIHRoZSBGaWVsZCBvciBvbmUgb2YgaXRzIGNoaWxkcmVuLlxuXHQgKiBAcGFyYW0gc291cmNlXG5cdCAqIEBwYXJhbSBmb2N1c0V2ZW50XG5cdCAqL1xuXHRwdWJsaWMgaGFuZGxlQ29udGVudEZvY3VzSW4oc291cmNlOiBGaWVsZCB8IE11bHRpVmFsdWVGaWVsZCwgZm9jdXNFdmVudD86IEZvY3VzRXZlbnQpOiB2b2lkIHtcblx0XHQvLyBXZSBzZW5kIHRoZSBldmVudCBvbmx5IGlmIHRoZSBmb2N1cyB3YXMgcHJldmlvdXNseSBvdXQgb2YgdGhlIEZpZWxkXG5cdFx0aWYgKHNvdXJjZS5pc0E8VG9rZW5pemVyPihcInNhcC5tLlRva2VuaXplclwiKSkge1xuXHRcdFx0c291cmNlID0gc291cmNlLmdldFBhcmVudCgpPy5nZXRQYXJlbnQoKSBhcyBNdWx0aVZhbHVlRmllbGQ7XG5cdFx0fVxuXHRcdGxldCB0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmID0gZmFsc2U7XG5cdFx0aWYgKGZvY3VzRXZlbnQpIHtcblx0XHRcdHRhcmdldE91dHNpZGVPZkNvbnRyb2xEb21SZWYgPSAhc291cmNlLmdldERvbVJlZigpPy5jb250YWlucyhmb2N1c0V2ZW50LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSk7XG5cdFx0fVxuXHRcdGlmIChzb3VyY2UuaXNBPE11bHRpVmFsdWVGaWVsZD4oXCJzYXAudWkubWRjLk11bHRpVmFsdWVGaWVsZFwiKSB8fCB0YXJnZXRPdXRzaWRlT2ZDb250cm9sRG9tUmVmKSB7XG5cdFx0XHQvLyBXZSBuZWVkIHRvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgbmV3bHkgZm9jdXNlZCBGaWVsZCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcHJldmlvdXMgb25lLCBidXQgdGhleSBzaGFyZSB0aGUgc2FtZSBmaWVsZEdyb3VwSURzXG5cdFx0XHQvLyAoZS5nLiBmaWVsZHMgaW4gZGlmZmVyZW50IHJvd3MgaW4gdGhlIHNhbWUgY29sdW1uIG9mIGEgdGFibGUpXG5cdFx0XHQvLyBJbiBzdWNoIGNhc2UsIHRoZSBmb2N1c091dCBoYW5kbGVyIHdhcyBub3QgY2FsbGVkIChiZWNhdXNlIHdlIHN0YXkgaW4gdGhlIHNhbWUgZmllbGRHcm91cElEKSwgc28gd2UgbmVlZCB0byBzZW5kIGEgZm9jdXNPdXQgZXZlbnQgbWFudWFsbHlcblx0XHRcdGNvbnN0IGxhc3RGb2N1c0lkID0gdGhpcy5nZXRMYXN0Rm9jdXNJZCgpO1xuXHRcdFx0aWYgKGxhc3RGb2N1c0lkICYmIGxhc3RGb2N1c0lkICE9PSBzb3VyY2UuZ2V0SWQoKSAmJiB0aGlzLmdldExhc3RGb2N1c0ZpZWxkR3JvdXBzKCkgPT09IHNvdXJjZS5nZXRGaWVsZEdyb3VwSWRzKCkuam9pbihcIixcIikpIHtcblx0XHRcdFx0Y29uc3QgbGFzdEZvY3VzZWQgPSBFbGVtZW50LmdldEVsZW1lbnRCeUlkKGxhc3RGb2N1c0lkKSBhcyBGaWVsZDtcblx0XHRcdFx0dGhpcz8uc2VuZEZvY3VzT3V0TWVzc2FnZShsYXN0Rm9jdXNlZCk7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuc2V0TGFzdEZvY3VzSW5mb3JtYXRpb24oc291cmNlKTtcblxuXHRcdFx0dGhpcy5zZW5kRm9jdXNJbk1lc3NhZ2Uoc291cmNlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbGJhY2sgd2hlbiB0aGUgZm9jdXMgaXMgcmVtb3ZlZCBmcm9tIHRoZSBGaWVsZCBvciBvbmUgb2YgaXRzIGNoaWxkcmVuLlxuXHQgKiBAcGFyYW0gZmllbGRHcm91cEV2ZW50XG5cdCAqL1xuXHRwdWJsaWMgaGFuZGxlQ29udGVudEZvY3VzT3V0KGZpZWxkR3JvdXBFdmVudDogQ29udHJvbCRWYWxpZGF0ZUZpZWxkR3JvdXBFdmVudCk6IHZvaWQge1xuXHRcdGxldCBjb250cm9sOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCA9IGZpZWxkR3JvdXBFdmVudC5nZXRTb3VyY2UoKTtcblx0XHRpZiAoY29udHJvbC5pc0E8VG9rZW5pemVyPihcInNhcC5tLlRva2VuaXplclwiKSkge1xuXHRcdFx0Y29udHJvbCA9IGNvbnRyb2wuZ2V0UGFyZW50KCk/LmdldFBhcmVudCgpIGFzIE11bHRpVmFsdWVGaWVsZDtcblx0XHR9XG5cdFx0aWYgKCFjb250cm9sLmlzQTxNdWx0aVZhbHVlRmllbGQ+KFwic2FwLnVpLm1kYy5NdWx0aVZhbHVlRmllbGRcIikpIHtcblx0XHRcdHdoaWxlIChjb250cm9sICYmICFjb250cm9sPy5pc0E8RmllbGQ+KFwic2FwLmZlLm1hY3Jvcy5GaWVsZFwiKSkge1xuXHRcdFx0XHRjb250cm9sID0gY29udHJvbD8uZ2V0UGFyZW50KCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIWNvbnRyb2wpIHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBmaWVsZEdyb3VwSWRzID0gZmllbGRHcm91cEV2ZW50LmdldFBhcmFtZXRlcihcImZpZWxkR3JvdXBJZHNcIikgYXMgc3RyaW5nW107XG5cblx0XHQvLyBXZSBzZW5kIHRoZSBldmVudCBvbmx5IGlmIHRoZSB2YWxpZGF0ZWQgZmllbGRDcm91cCBjb3JyZXNwb25kcyB0byBhIGNvbGxhYm9yYXRpb24gZ3JvdXBcblx0XHRpZiAoXG5cdFx0XHRmaWVsZEdyb3VwSWRzLnNvbWUoKGdyb3VwSWQpID0+IHtcblx0XHRcdFx0cmV0dXJuIGdyb3VwSWQuc3RhcnRzV2l0aChDb2xsYWJvcmF0aW9uRmllbGRHcm91cFByZWZpeCk7XG5cdFx0XHR9KVxuXHRcdCkge1xuXHRcdFx0Y29uc3Qgc291cmNlQ29udHJvbDogQ29udHJvbCA9IGZpZWxkR3JvdXBFdmVudC5nZXRTb3VyY2UoKTtcblxuXHRcdFx0Ly8gRGV0ZXJtaW5lIGlmIHRoZSBjb250cm9sIHRoYXQgc2VudCB0aGUgZXZlbnQgc3RpbGwgaGFzIHRoZSBmb2N1cyAob3Igb25lIG9mIGl0cyBjaGlsZHJlbikuXG5cdFx0XHQvLyBUaGlzIGNvdWxkIGhhcHBlbiBlLmcuIGlmIHRoZSB1c2VyIHByZXNzZWQgPEVudGVyPiB0byB2YWxpZGF0ZSB0aGUgaW5wdXQuXG5cdFx0XHRsZXQgY3VycmVudEZvY3VzZWRDb250cm9sOiBNYW5hZ2VkT2JqZWN0IHwgbnVsbCB8IHVuZGVmaW5lZCA9IEVsZW1lbnQuZ2V0QWN0aXZlRWxlbWVudCgpO1xuXHRcdFx0d2hpbGUgKGN1cnJlbnRGb2N1c2VkQ29udHJvbCAmJiBjdXJyZW50Rm9jdXNlZENvbnRyb2wgIT09IHNvdXJjZUNvbnRyb2wpIHtcblx0XHRcdFx0Y3VycmVudEZvY3VzZWRDb250cm9sID0gY3VycmVudEZvY3VzZWRDb250cm9sLmdldFBhcmVudCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGN1cnJlbnRGb2N1c2VkQ29udHJvbCAhPT0gc291cmNlQ29udHJvbCkge1xuXHRcdFx0XHQvLyBUaGUgY29udHJvbCB0aGF0IHNlbnQgdGhlIGV2ZW50IGlzbid0IGZvY3VzZWQgYW55bW9yZVxuXHRcdFx0XHR0aGlzLnNlbmRGb2N1c091dE1lc3NhZ2UoY29udHJvbCk7XG5cdFx0XHRcdGlmICh0aGlzLmdldExhc3RGb2N1c0lkKCkgPT09IGNvbnRyb2wuZ2V0SWQoKSkge1xuXHRcdFx0XHRcdHRoaXMuc2V0TGFzdEZvY3VzSW5mb3JtYXRpb24odW5kZWZpbmVkKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBpZCBvZiB0aGUgbGFzdCBmb2N1c2VkIEZpZWxkIChpZiBhbnkpLlxuXHQgKiBAcmV0dXJucyBJRFxuXHQgKi9cblx0cHJpdmF0ZSBnZXRMYXN0Rm9jdXNJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmxhc3RGb2N1c0lkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGZpZWxkZ3JvdXBzIG9mIHRoZSBsYXN0IGZvY3VzZWQgRmllbGQgKGlmIGFueSkuXG5cdCAqIEByZXR1cm5zIEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGZpZWxkZ3JvdXBzIHNlcGFyYXRlZCBieSAnLCdcblx0ICovXG5cdHByaXZhdGUgZ2V0TGFzdEZvY3VzRmllbGRHcm91cHMoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5sYXN0Rm9jdXNGaWVsZEdyb3Vwcztcblx0fVxuXG5cdC8qKlxuXHQgKiBTdG9yZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxhc3QgZm9jdXNlZCBGaWVsZCAoaWQgYW5kIGZpZWxkZ3JvdXBzKS5cblx0ICogQHBhcmFtIGZvY3VzZWRGaWVsZFxuXHQgKi9cblx0cHJpdmF0ZSBzZXRMYXN0Rm9jdXNJbmZvcm1hdGlvbihmb2N1c2VkRmllbGQ6IEZpZWxkIHwgTXVsdGlWYWx1ZUZpZWxkIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0dGhpcy5sYXN0Rm9jdXNJZCA9IGZvY3VzZWRGaWVsZD8uZ2V0SWQoKTtcblx0XHR0aGlzLmxhc3RGb2N1c0ZpZWxkR3JvdXBzID0gZm9jdXNlZEZpZWxkPy5nZXRGaWVsZEdyb3VwSWRzKCkuam9pbihcIixcIik7XG5cdH1cblxuXHQvKipcblx0ICogSWYgY29sbGFib3JhdGlvbiBpcyBlbmFibGVkLCBzZW5kIGEgTG9jayBjb2xsYWJvcmF0aW9uIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSBmaWVsZHBBUElcblx0ICovXG5cdHByaXZhdGUgc2VuZEZvY3VzSW5NZXNzYWdlKGZpZWxkcEFQSTogRmllbGQgfCBNdWx0aVZhbHVlRmllbGQpOiB2b2lkIHtcblx0XHRjb25zdCBjb2xsYWJvcmF0aW9uUGF0aCA9IHRoaXMuZ2V0Q29sbGFib3JhdGlvblBhdGgoZmllbGRwQVBJKTtcblxuXHRcdGlmIChjb2xsYWJvcmF0aW9uUGF0aCkge1xuXHRcdFx0dGhpcy5zZW5kKHsgYWN0aW9uOiBBY3Rpdml0eS5Mb2NrLCBjb250ZW50OiBjb2xsYWJvcmF0aW9uUGF0aCB9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSWYgY29sbGFib3JhdGlvbiBpcyBlbmFibGVkLCBzZW5kIGFuIFVubG9jayBjb2xsYWJvcmF0aW9uIG1lc3NhZ2UuXG5cdCAqIEBwYXJhbSBmaWVsZHBBUElcblx0ICovXG5cdHByaXZhdGUgc2VuZEZvY3VzT3V0TWVzc2FnZShmaWVsZHBBUEk6IEZpZWxkIHwgTXVsdGlWYWx1ZUZpZWxkIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0aWYgKCFmaWVsZHBBUEkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3QgY29sbGFib3JhdGlvblBhdGggPSB0aGlzLmdldENvbGxhYm9yYXRpb25QYXRoKGZpZWxkcEFQSSk7XG5cdFx0aWYgKGNvbGxhYm9yYXRpb25QYXRoKSB7XG5cdFx0XHR0aGlzLnNlbmQoeyBhY3Rpb246IEFjdGl2aXR5LlVubG9jaywgY29udGVudDogY29sbGFib3JhdGlvblBhdGggfSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIHBhdGggdXNlZCB0byBzZW5kIGNvbGxhYm9yYXRpb24gbWVzc2FnZXMuXG5cdCAqIEBwYXJhbSBmaWVsZFxuXHQgKiBAcmV0dXJucyBUaGUgcGF0aCAob3IgdW5kZWZpbmVkIGlzIG5vIHZhbGlkIHBhdGggY291bGQgYmUgZm91bmQpXG5cdCAqL1xuXHRwcml2YXRlIGdldENvbGxhYm9yYXRpb25QYXRoKGZpZWxkOiBGaWVsZCB8IE11bHRpVmFsdWVGaWVsZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0Ly8gTm90ZTogd2Ugc2VuZCBtZXNzYWdlcyBldmVuIGlmIHRoZSBjb250ZXh0IGlzIGluYWN0aXZlIChlbXB0eSBjcmVhdGlvbiByb3dzKSxcblx0XHQvLyBvdGhlcndpc2Ugd2UgY2FuJ3QgdXBkYXRlIHRoZSBjb3JyZXNwb25kaW5nIGxvY2tzIHdoZW4gdGhlIGNvbnRleHQgaXMgYWN0aXZhdGVkLlxuXHRcdGNvbnN0IGJpbmRpbmdDb250ZXh0ID0gZmllbGQ/LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dCB8IHVuZGVmaW5lZDtcblx0XHRpZiAoIWJpbmRpbmdDb250ZXh0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChmaWVsZC5pc0E8RmllbGQ+KFwic2FwLmZlLm1hY3Jvcy5GaWVsZFwiKSkge1xuXHRcdFx0aWYgKCFmaWVsZC5nZXRNYWluUHJvcGVydHlSZWxhdGl2ZVBhdGgoKSkge1xuXHRcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBmaWVsZFdyYXBwZXIgPSBmaWVsZC5jb250ZW50IGFzIEZpZWxkV3JhcHBlciB8IHVuZGVmaW5lZDtcblx0XHRcdGlmIChcblx0XHRcdFx0IVtGaWVsZEVkaXRNb2RlLkVkaXRhYmxlLCBGaWVsZEVkaXRNb2RlLkVkaXRhYmxlRGlzcGxheSwgRmllbGRFZGl0TW9kZS5FZGl0YWJsZVJlYWRPbmx5XS5pbmNsdWRlcyhcblx0XHRcdFx0XHRmaWVsZFdyYXBwZXI/LmdldFByb3BlcnR5KFwiZWRpdE1vZGVcIilcblx0XHRcdFx0KVxuXHRcdFx0KSB7XG5cdFx0XHRcdC8vIFRoZSBmaWVsZCBpcyBub3QgaW4gZWRpdCBtb2RlIC0tPiBubyBjb2xsYWJvcmF0aW9uIG1lc3NhZ2VzXG5cdFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBgJHtiaW5kaW5nQ29udGV4dC5nZXRQYXRoKCl9LyR7ZmllbGQuZ2V0TWFpblByb3BlcnR5UmVsYXRpdmVQYXRoKCl9YDtcblx0XHR9IGVsc2UgaWYgKGZpZWxkLmlzQTxNdWx0aVZhbHVlRmllbGQ+KFwic2FwLnVpLm1kYy5NdWx0aVZhbHVlRmllbGRcIikpIHtcblx0XHRcdGNvbnN0IGtleXBhdGggPSBmaWVsZC5nZXRCaW5kaW5nSW5mbyhcIml0ZW1zXCIpLnRlbXBsYXRlLmdldEJpbmRpbmdQYXRoKFwia2V5XCIpO1xuXHRcdFx0cmV0dXJuIGAke2JpbmRpbmdDb250ZXh0LmdldFBhdGgoKX0vJHtmaWVsZC5nZXRCaW5kaW5nSW5mbyhcIml0ZW1zXCIpLnBhdGh9LyR7a2V5cGF0aH1gO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzZW5kKG1lc3NhZ2U6IHtcblx0XHRhY3Rpb246IEFjdGl2aXR5O1xuXHRcdGNvbnRlbnQ6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXHRcdHRyaWdnZXJlZEFjdGlvbk5hbWU/OiBzdHJpbmc7XG5cdFx0cmVmcmVzaExpc3RCaW5kaW5nPzogYm9vbGVhbjtcblx0XHRhY3Rpb25SZXF1ZXN0ZWRQcm9wZXJ0aWVzPzogc3RyaW5nW107XG5cdH0pOiB2b2lkIHtcblx0XHR0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5zZW5kKHRoaXMuZ2V0VmlldygpLCBtZXNzYWdlKTtcblx0fVxuXG5cdHB1YmxpYyBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCkuaXNDb25uZWN0ZWQodGhpcy5nZXRWaWV3KCkpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpLmNvbm5lY3QodGhpcy5nZXRWaWV3KCkgYXMgRkVWaWV3KTtcblx0fVxuXG5cdHB1YmxpYyBkaXNjb25uZWN0KCk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5kaXNjb25uZWN0KHRoaXMuZ2V0VmlldygpIGFzIEZFVmlldyk7XG5cdH1cblxuXHRwdWJsaWMgaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlKCkuaXNDb2xsYWJvcmF0aW9uRW5hYmxlZCh0aGlzLmdldFZpZXcoKSk7XG5cdH1cblxuXHRwdWJsaWMgcmV0YWluQXN5bmNNZXNzYWdlcyhhY3Rpdml0eVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5yZXRhaW5Bc3luY01lc3NhZ2VzKHRoaXMuZ2V0VmlldygpLCBhY3Rpdml0eVBhdGhzKTtcblx0fVxuXG5cdHB1YmxpYyByZWxlYXNlQXN5bmNNZXNzYWdlcyhhY3Rpdml0eVBhdGhzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHJldHVybiB0aGlzLmdldENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2UoKS5yZWxlYXNlQXN5bmNNZXNzYWdlcyh0aGlzLmdldFZpZXcoKSwgYWN0aXZpdHlQYXRocyk7XG5cdH1cblxuXHRwdWJsaWMgdXBkYXRlTG9ja3NGb3JDb250ZXh0UGF0aChvbGRDb250ZXh0UGF0aDogc3RyaW5nLCBuZXdDb250ZXh0UGF0aDogc3RyaW5nKTogdm9pZCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Q29sbGFib3JhdGl2ZURyYWZ0U2VydmljZSgpLnVwZGF0ZUxvY2tzRm9yQ29udGV4dFBhdGgodGhpcy5nZXRW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
@@ -1,6 +1,6 @@
1
1
  import { defineUI5Class } from "sap/fe/base/ClassSupport";
2
+ import type Field from "sap/fe/macros/Field";
2
3
  import type FieldWrapper from "sap/fe/macros/controls/FieldWrapper";
3
- import type FieldAPI from "sap/fe/macros/field/FieldAPI";
4
4
  import type Tokenizer from "sap/m/Tokenizer";
5
5
  import type ManagedObject from "sap/ui/base/ManagedObject";
6
6
  import type Control from "sap/ui/core/Control";
@@ -31,12 +31,12 @@ export default class CollaborationDraft extends BaseControllerExtension {
31
31
  }
32
32
 
33
33
  /**
34
- * Callback when the focus is set in the FieldAPI or one of its children.
34
+ * Callback when the focus is set in the Field or one of its children.
35
35
  * @param source
36
36
  * @param focusEvent
37
37
  */
38
- public handleContentFocusIn(source: FieldAPI | MultiValueField, focusEvent?: FocusEvent): void {
39
- // We send the event only if the focus was previously out of the FieldAPI
38
+ public handleContentFocusIn(source: Field | MultiValueField, focusEvent?: FocusEvent): void {
39
+ // We send the event only if the focus was previously out of the Field
40
40
  if (source.isA<Tokenizer>("sap.m.Tokenizer")) {
41
41
  source = source.getParent()?.getParent() as MultiValueField;
42
42
  }
@@ -45,12 +45,12 @@ export default class CollaborationDraft extends BaseControllerExtension {
45
45
  targetOutsideOfControlDomRef = !source.getDomRef()?.contains(focusEvent.relatedTarget as Node);
46
46
  }
47
47
  if (source.isA<MultiValueField>("sap.ui.mdc.MultiValueField") || targetOutsideOfControlDomRef) {
48
- // We need to handle the case where the newly focused FieldAPI is different from the previous one, but they share the same fieldGroupIDs
48
+ // We need to handle the case where the newly focused Field is different from the previous one, but they share the same fieldGroupIDs
49
49
  // (e.g. fields in different rows in the same column of a table)
50
50
  // In such case, the focusOut handler was not called (because we stay in the same fieldGroupID), so we need to send a focusOut event manually
51
51
  const lastFocusId = this.getLastFocusId();
52
52
  if (lastFocusId && lastFocusId !== source.getId() && this.getLastFocusFieldGroups() === source.getFieldGroupIds().join(",")) {
53
- const lastFocused = Element.getElementById(lastFocusId) as FieldAPI;
53
+ const lastFocused = Element.getElementById(lastFocusId) as Field;
54
54
  this?.sendFocusOutMessage(lastFocused);
55
55
  }
56
56
 
@@ -61,7 +61,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
61
61
  }
62
62
 
63
63
  /**
64
- * Callback when the focus is removed from the FieldAPI or one of its children.
64
+ * Callback when the focus is removed from the Field or one of its children.
65
65
  * @param fieldGroupEvent
66
66
  */
67
67
  public handleContentFocusOut(fieldGroupEvent: Control$ValidateFieldGroupEvent): void {
@@ -70,7 +70,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
70
70
  control = control.getParent()?.getParent() as MultiValueField;
71
71
  }
72
72
  if (!control.isA<MultiValueField>("sap.ui.mdc.MultiValueField")) {
73
- while (control && !control?.isA<FieldAPI>("sap.fe.macros.field.FieldAPI")) {
73
+ while (control && !control?.isA<Field>("sap.fe.macros.Field")) {
74
74
  control = control?.getParent();
75
75
  }
76
76
  if (!control) return;
@@ -103,7 +103,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
103
103
  }
104
104
 
105
105
  /**
106
- * Gets the id of the last focused FieldAPI (if any).
106
+ * Gets the id of the last focused Field (if any).
107
107
  * @returns ID
108
108
  */
109
109
  private getLastFocusId(): string | undefined {
@@ -111,7 +111,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
111
111
  }
112
112
 
113
113
  /**
114
- * Gets the fieldgroups of the last focused FieldAPI (if any).
114
+ * Gets the fieldgroups of the last focused Field (if any).
115
115
  * @returns A string containing the fieldgroups separated by ','
116
116
  */
117
117
  private getLastFocusFieldGroups(): string | undefined {
@@ -119,19 +119,19 @@ export default class CollaborationDraft extends BaseControllerExtension {
119
119
  }
120
120
 
121
121
  /**
122
- * Stores information about the last focused FieldAPI (id and fieldgroups).
123
- * @param focusedFieldAPI
122
+ * Stores information about the last focused Field (id and fieldgroups).
123
+ * @param focusedField
124
124
  */
125
- private setLastFocusInformation(focusedFieldAPI: FieldAPI | MultiValueField | undefined): void {
126
- this.lastFocusId = focusedFieldAPI?.getId();
127
- this.lastFocusFieldGroups = focusedFieldAPI?.getFieldGroupIds().join(",");
125
+ private setLastFocusInformation(focusedField: Field | MultiValueField | undefined): void {
126
+ this.lastFocusId = focusedField?.getId();
127
+ this.lastFocusFieldGroups = focusedField?.getFieldGroupIds().join(",");
128
128
  }
129
129
 
130
130
  /**
131
131
  * If collaboration is enabled, send a Lock collaboration message.
132
132
  * @param fieldpAPI
133
133
  */
134
- private sendFocusInMessage(fieldpAPI: FieldAPI | MultiValueField): void {
134
+ private sendFocusInMessage(fieldpAPI: Field | MultiValueField): void {
135
135
  const collaborationPath = this.getCollaborationPath(fieldpAPI);
136
136
 
137
137
  if (collaborationPath) {
@@ -143,7 +143,7 @@ export default class CollaborationDraft extends BaseControllerExtension {
143
143
  * If collaboration is enabled, send an Unlock collaboration message.
144
144
  * @param fieldpAPI
145
145
  */
146
- private sendFocusOutMessage(fieldpAPI: FieldAPI | MultiValueField | undefined): void {
146
+ private sendFocusOutMessage(fieldpAPI: Field | MultiValueField | undefined): void {
147
147
  if (!fieldpAPI) {
148
148
  return;
149
149
  }
@@ -158,14 +158,14 @@ export default class CollaborationDraft extends BaseControllerExtension {
158
158
  * @param field
159
159
  * @returns The path (or undefined is no valid path could be found)
160
160
  */
161
- private getCollaborationPath(field: FieldAPI | MultiValueField): string | undefined {
161
+ private getCollaborationPath(field: Field | MultiValueField): string | undefined {
162
162
  // Note: we send messages even if the context is inactive (empty creation rows),
163
163
  // otherwise we can't update the corresponding locks when the context is activated.
164
164
  const bindingContext = field?.getBindingContext() as Context | undefined;
165
165
  if (!bindingContext) {
166
166
  return;
167
167
  }
168
- if (field.isA<FieldAPI>("sap.fe.macros.field.FieldAPI")) {
168
+ if (field.isA<Field>("sap.fe.macros.Field")) {
169
169
  if (!field.getMainPropertyRelativePath()) {
170
170
  return undefined;
171
171
  }
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2024 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/core/mvc/ControllerExtension", "sap/ui/core/mvc/OverrideExecution"], function (ClassSupport, ControllerExtension, OverrideExecution) {
6
6
  "use strict";