@sapui5/sap.fe.core 1.101.0 → 1.103.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 (339) hide show
  1. package/package.json +5 -5
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AppComponent.js +66 -30
  4. package/src/sap/fe/core/AppComponent.ts +68 -51
  5. package/src/sap/fe/core/AppStateHandler.js +13 -13
  6. package/src/sap/fe/core/AppStateHandler.ts +18 -18
  7. package/src/sap/fe/core/BaseController.js +11 -9
  8. package/src/sap/fe/core/BaseController.ts +15 -13
  9. package/src/sap/fe/core/CommonUtils.js +279 -188
  10. package/src/sap/fe/core/CommonUtils.ts +306 -215
  11. package/src/sap/fe/core/ExtensionAPI.js +25 -30
  12. package/src/sap/fe/core/ExtensionAPI.ts +37 -41
  13. package/src/sap/fe/core/PageController.js +12 -7
  14. package/src/sap/fe/core/PageController.ts +10 -5
  15. package/src/sap/fe/core/TemplateComponent.js +6 -6
  16. package/src/sap/fe/core/TemplateComponent.ts +11 -11
  17. package/src/sap/fe/core/TemplateModel.js +2 -2
  18. package/src/sap/fe/core/TemplateModel.ts +3 -3
  19. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
  20. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +1 -1
  21. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +306 -78
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +280 -70
  23. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +27 -27
  24. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +28 -26
  25. package/src/sap/fe/core/{BusyLocker.js → controllerextensions/BusyLocker.js} +1 -1
  26. package/src/sap/fe/core/{BusyLocker.ts → controllerextensions/BusyLocker.ts} +7 -7
  27. package/src/sap/fe/core/controllerextensions/EditFlow.js +351 -229
  28. package/src/sap/fe/core/controllerextensions/EditFlow.ts +321 -246
  29. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
  30. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
  31. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +59 -34
  32. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +71 -45
  33. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +72 -72
  34. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +82 -80
  35. package/src/sap/fe/core/controllerextensions/InternalRouting.js +152 -131
  36. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +171 -152
  37. package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
  38. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
  39. package/src/sap/fe/core/controllerextensions/MassEdit.js +11 -10
  40. package/src/sap/fe/core/controllerextensions/MassEdit.ts +31 -37
  41. package/src/sap/fe/core/controllerextensions/MessageHandler.js +21 -13
  42. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +30 -15
  43. package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
  44. package/src/sap/fe/core/controllerextensions/PageReady.ts +94 -34
  45. package/src/sap/fe/core/controllerextensions/Paginator.js +19 -11
  46. package/src/sap/fe/core/controllerextensions/Paginator.ts +22 -14
  47. package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
  48. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  49. package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
  50. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  51. package/src/sap/fe/core/controllerextensions/Share.js +39 -21
  52. package/src/sap/fe/core/controllerextensions/Share.ts +45 -26
  53. package/src/sap/fe/core/controllerextensions/SideEffects.js +47 -51
  54. package/src/sap/fe/core/controllerextensions/SideEffects.ts +58 -62
  55. package/src/sap/fe/core/controllerextensions/ViewState.js +75 -62
  56. package/src/sap/fe/core/controllerextensions/ViewState.ts +78 -63
  57. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +105 -0
  58. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +99 -0
  59. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +360 -0
  60. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ActivitySync.ts +58 -112
  61. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.js +2 -2
  62. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.ts +7 -7
  63. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +262 -0
  64. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.ts +20 -21
  65. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ManageDialog.fragment.xml +0 -0
  66. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/UserDetails.fragment.xml +5 -7
  67. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1631 -0
  68. package/src/sap/fe/core/{TransactionHelper.ts → controllerextensions/editFlow/TransactionHelper.ts} +270 -211
  69. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +772 -0
  70. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/draft.ts +240 -100
  71. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1199 -0
  72. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/operations.ts +364 -229
  73. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +188 -0
  74. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +185 -0
  75. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +626 -0
  76. package/src/sap/fe/core/{actions → controllerextensions/messageHandler}/messageHandling.ts +112 -69
  77. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +937 -0
  78. package/src/sap/fe/core/{RouterProxy.ts → controllerextensions/routing/RouterProxy.ts} +72 -73
  79. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +21 -18
  80. package/src/sap/fe/core/controls/Any.js +9 -5
  81. package/src/sap/fe/core/controls/Any.ts +10 -4
  82. package/src/sap/fe/core/controls/CommandExecution.js +21 -24
  83. package/src/sap/fe/core/controls/CommandExecution.ts +19 -24
  84. package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
  85. package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
  86. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +48 -43
  87. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +51 -46
  88. package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -2
  89. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +3 -2
  90. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +11 -3
  91. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +19 -9
  92. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +14 -8
  93. package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
  94. package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
  95. package/src/sap/fe/core/controls/FileWrapper.js +50 -3
  96. package/src/sap/fe/core/controls/FileWrapper.ts +45 -12
  97. package/src/sap/fe/core/controls/FilterBar.js +6 -2
  98. package/src/sap/fe/core/controls/FilterBar.ts +13 -9
  99. package/src/sap/fe/core/controls/FormElementWrapper.js +12 -2
  100. package/src/sap/fe/core/controls/FormElementWrapper.ts +14 -3
  101. package/src/sap/fe/core/controls/MassEditSelect.js +33 -0
  102. package/src/sap/fe/core/controls/MassEditSelect.ts +41 -0
  103. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
  104. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
  105. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
  106. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
  107. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
  108. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +48 -48
  109. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +71 -76
  110. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +36 -65
  111. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +107 -0
  112. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +551 -36
  113. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +605 -36
  114. package/src/sap/fe/core/converters/ConverterContext.js +26 -33
  115. package/src/sap/fe/core/converters/ConverterContext.ts +51 -60
  116. package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
  117. package/src/sap/fe/core/converters/ManifestSettings.ts +17 -14
  118. package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
  119. package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
  120. package/src/sap/fe/core/converters/MetaModelConverter.js +56 -67
  121. package/src/sap/fe/core/converters/MetaModelConverter.ts +183 -193
  122. package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
  123. package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
  124. package/src/sap/fe/core/converters/annotations/DataField.js +73 -37
  125. package/src/sap/fe/core/converters/annotations/DataField.ts +121 -77
  126. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
  127. package/src/sap/fe/core/converters/controls/Common/Action.js +51 -49
  128. package/src/sap/fe/core/converters/controls/Common/Action.ts +58 -54
  129. package/src/sap/fe/core/converters/controls/Common/Chart.js +22 -15
  130. package/src/sap/fe/core/converters/controls/Common/Chart.ts +29 -27
  131. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
  132. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
  133. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +28 -28
  134. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +40 -36
  135. package/src/sap/fe/core/converters/controls/Common/Form.js +30 -34
  136. package/src/sap/fe/core/converters/controls/Common/Form.ts +48 -58
  137. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
  138. package/src/sap/fe/core/converters/controls/Common/KPI.ts +35 -39
  139. package/src/sap/fe/core/converters/controls/Common/Table.js +318 -244
  140. package/src/sap/fe/core/converters/controls/Common/Table.ts +368 -297
  141. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +135 -125
  142. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +162 -148
  143. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +51 -45
  144. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +79 -67
  145. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
  146. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
  147. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
  148. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
  149. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
  150. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
  151. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +92 -89
  152. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +124 -120
  153. package/src/sap/fe/core/converters/helpers/Aggregation.js +11 -5
  154. package/src/sap/fe/core/converters/helpers/Aggregation.ts +25 -23
  155. package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -30
  156. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +31 -29
  157. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
  158. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
  159. package/src/sap/fe/core/converters/helpers/ID.js +46 -46
  160. package/src/sap/fe/core/converters/helpers/ID.ts +25 -25
  161. package/src/sap/fe/core/converters/helpers/Key.js +7 -7
  162. package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
  163. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  164. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -4
  165. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
  166. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
  167. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
  168. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
  169. package/src/sap/fe/core/converters/templates/ListReportConverter.js +30 -29
  170. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +40 -40
  171. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +56 -55
  172. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +65 -77
  173. package/src/sap/fe/core/designtime/AppComponent.designtime.js +6 -6
  174. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +10 -8
  175. package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
  176. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
  177. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
  178. package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
  179. package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
  180. package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
  181. package/src/sap/fe/core/formatters/StandardFormatter.js +89 -0
  182. package/src/sap/fe/core/formatters/StandardFormatter.ts +64 -0
  183. package/src/sap/fe/core/formatters/TableFormatter.js +83 -22
  184. package/src/sap/fe/core/formatters/TableFormatter.ts +80 -25
  185. package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
  186. package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
  187. package/src/sap/fe/core/fpm/Component.js +2 -2
  188. package/src/sap/fe/core/fpm/Component.ts +1 -1
  189. package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
  190. package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
  191. package/src/sap/fe/core/helpers/BindingToolkit.js +1809 -0
  192. package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +388 -285
  193. package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
  194. package/src/sap/fe/core/helpers/ClassSupport.ts +15 -10
  195. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
  196. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
  197. package/src/sap/fe/core/helpers/EditState.js +1 -6
  198. package/src/sap/fe/core/helpers/EditState.ts +5 -10
  199. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
  200. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
  201. package/src/sap/fe/core/helpers/FPMHelper.js +3 -2
  202. package/src/sap/fe/core/helpers/FPMHelper.ts +10 -9
  203. package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
  204. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
  205. package/src/sap/fe/core/helpers/MassEditHelper.js +532 -264
  206. package/src/sap/fe/core/helpers/MassEditHelper.ts +560 -289
  207. package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
  208. package/src/sap/fe/core/helpers/ModelHelper.ts +50 -58
  209. package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
  210. package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
  211. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  212. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
  213. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
  214. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
  215. package/src/sap/fe/core/helpers/StableIdHelper.js +16 -12
  216. package/src/sap/fe/core/helpers/StableIdHelper.ts +20 -16
  217. package/src/sap/fe/core/{Synchronization.js → helpers/Synchronization.js} +1 -1
  218. package/src/sap/fe/core/{Synchronization.ts → helpers/Synchronization.ts} +1 -1
  219. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  220. package/src/sap/fe/core/jsx-runtime/jsx.ts +8 -8
  221. package/src/sap/fe/core/library.js +51 -3
  222. package/src/sap/fe/core/library.ts +47 -0
  223. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
  224. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
  225. package/src/sap/fe/core/messagebundle.properties +151 -197
  226. package/src/sap/fe/core/messagebundle_ar.properties +36 -63
  227. package/src/sap/fe/core/messagebundle_bg.properties +36 -63
  228. package/src/sap/fe/core/messagebundle_ca.properties +36 -63
  229. package/src/sap/fe/core/messagebundle_cs.properties +36 -63
  230. package/src/sap/fe/core/messagebundle_cy.properties +36 -63
  231. package/src/sap/fe/core/messagebundle_da.properties +37 -64
  232. package/src/sap/fe/core/messagebundle_de.properties +36 -63
  233. package/src/sap/fe/core/messagebundle_el.properties +38 -65
  234. package/src/sap/fe/core/messagebundle_en.properties +37 -64
  235. package/src/sap/fe/core/messagebundle_en_GB.properties +37 -64
  236. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +44 -73
  237. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +37 -64
  238. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +52 -81
  239. package/src/sap/fe/core/messagebundle_es.properties +36 -63
  240. package/src/sap/fe/core/messagebundle_es_MX.properties +36 -63
  241. package/src/sap/fe/core/messagebundle_et.properties +36 -63
  242. package/src/sap/fe/core/messagebundle_fi.properties +36 -63
  243. package/src/sap/fe/core/messagebundle_fr.properties +39 -66
  244. package/src/sap/fe/core/messagebundle_fr_CA.properties +36 -63
  245. package/src/sap/fe/core/messagebundle_hi.properties +36 -63
  246. package/src/sap/fe/core/messagebundle_hr.properties +36 -63
  247. package/src/sap/fe/core/messagebundle_hu.properties +35 -62
  248. package/src/sap/fe/core/messagebundle_id.properties +37 -64
  249. package/src/sap/fe/core/messagebundle_it.properties +54 -81
  250. package/src/sap/fe/core/messagebundle_iw.properties +36 -63
  251. package/src/sap/fe/core/messagebundle_ja.properties +36 -63
  252. package/src/sap/fe/core/messagebundle_kk.properties +36 -63
  253. package/src/sap/fe/core/messagebundle_ko.properties +36 -63
  254. package/src/sap/fe/core/messagebundle_lt.properties +36 -63
  255. package/src/sap/fe/core/messagebundle_lv.properties +36 -63
  256. package/src/sap/fe/core/messagebundle_ms.properties +37 -64
  257. package/src/sap/fe/core/messagebundle_nl.properties +37 -64
  258. package/src/sap/fe/core/messagebundle_no.properties +36 -63
  259. package/src/sap/fe/core/messagebundle_pl.properties +37 -64
  260. package/src/sap/fe/core/messagebundle_pt.properties +37 -64
  261. package/src/sap/fe/core/messagebundle_pt_PT.properties +36 -63
  262. package/src/sap/fe/core/messagebundle_ro.properties +36 -63
  263. package/src/sap/fe/core/messagebundle_ru.properties +36 -63
  264. package/src/sap/fe/core/messagebundle_sh.properties +36 -63
  265. package/src/sap/fe/core/messagebundle_sk.properties +36 -63
  266. package/src/sap/fe/core/messagebundle_sl.properties +38 -65
  267. package/src/sap/fe/core/messagebundle_sv.properties +36 -63
  268. package/src/sap/fe/core/messagebundle_th.properties +36 -63
  269. package/src/sap/fe/core/messagebundle_tr.properties +36 -63
  270. package/src/sap/fe/core/messagebundle_uk.properties +37 -64
  271. package/src/sap/fe/core/messagebundle_vi.properties +37 -64
  272. package/src/sap/fe/core/messagebundle_zh_CN.properties +36 -63
  273. package/src/sap/fe/core/messagebundle_zh_TW.properties +37 -64
  274. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
  275. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
  276. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -2
  277. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +14 -14
  278. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +6 -3
  279. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +12 -10
  280. package/src/sap/fe/core/services/NavigationServiceFactory.js +54 -45
  281. package/src/sap/fe/core/services/NavigationServiceFactory.ts +61 -49
  282. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
  283. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
  284. package/src/sap/fe/core/services/RoutingServiceFactory.js +63 -60
  285. package/src/sap/fe/core/services/RoutingServiceFactory.ts +76 -73
  286. package/src/sap/fe/core/services/ShellServicesFactory.js +102 -71
  287. package/src/sap/fe/core/services/ShellServicesFactory.ts +109 -78
  288. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
  289. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
  290. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +24 -18
  291. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +53 -50
  292. package/src/sap/fe/core/support/CommonHelper.js +3 -2
  293. package/src/sap/fe/core/support/CommonHelper.ts +9 -13
  294. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  295. package/src/sap/fe/core/support/Diagnostics.ts +5 -5
  296. package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
  297. package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
  298. package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
  299. package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
  300. package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
  301. package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
  302. package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
  303. package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
  304. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  305. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +3 -4
  306. package/src/sap/fe/core/templating/EntitySetHelper.js +7 -15
  307. package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -18
  308. package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
  309. package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
  310. package/src/sap/fe/core/templating/FilterHelper.js +12 -11
  311. package/src/sap/fe/core/templating/FilterHelper.ts +17 -16
  312. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  313. package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
  314. package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
  315. package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
  316. package/src/sap/fe/core/templating/PropertyHelper.js +79 -56
  317. package/src/sap/fe/core/templating/PropertyHelper.ts +41 -27
  318. package/src/sap/fe/core/templating/UIFormatters.js +163 -97
  319. package/src/sap/fe/core/templating/UIFormatters.ts +210 -129
  320. package/src/sap/fe/core/type/DateTimeWithTimezone.js +47 -0
  321. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +23 -0
  322. package/src/sap/fe/core/type/Email.js +2 -2
  323. package/src/sap/fe/core/type/Email.ts +2 -2
  324. package/src/sap/fe/core/AnnotationHelper.js +0 -331
  325. package/src/sap/fe/core/AnnotationHelper.ts +0 -321
  326. package/src/sap/fe/core/RouterProxy.js +0 -938
  327. package/src/sap/fe/core/TransactionHelper.js +0 -1577
  328. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +0 -406
  329. package/src/sap/fe/core/actions/collaboration/Manage.js +0 -264
  330. package/src/sap/fe/core/actions/draft.js +0 -665
  331. package/src/sap/fe/core/actions/messageHandling.js +0 -579
  332. package/src/sap/fe/core/actions/nonDraft.js +0 -20
  333. package/src/sap/fe/core/actions/nonDraft.ts +0 -12
  334. package/src/sap/fe/core/actions/operations.js +0 -1096
  335. package/src/sap/fe/core/actions/sticky.js +0 -130
  336. package/src/sap/fe/core/actions/sticky.ts +0 -119
  337. package/src/sap/fe/core/formatters/CriticalityFormatter.js +0 -77
  338. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +0 -58
  339. package/src/sap/fe/core/helpers/BindingExpression.js +0 -1729
@@ -4,10 +4,11 @@
4
4
  import { aggregation, defineUI5Class, event, implementInterface, property } from "sap/fe/core/helpers/ClassSupport";
5
5
  import SemanticDateOperators from "sap/fe/core/helpers/SemanticDateOperators";
6
6
  import ManagedObjectObserver from "sap/ui/base/ManagedObjectObserver";
7
- import Control from "sap/ui/core/Control";
8
- import { IFormContent } from "sap/ui/core/library";
9
- import RenderManager from "sap/ui/core/RenderManager";
10
- import Condition, { ConditionObject } from "sap/ui/mdc/condition/Condition";
7
+ import Control from "sap/ui/core/Control"; //import Control from "sap/ui/mdc/field/FieldBase";
8
+ import type { IFormContent } from "sap/ui/core/library";
9
+ import type RenderManager from "sap/ui/core/RenderManager";
10
+ import type { ConditionObject } from "sap/ui/mdc/condition/Condition";
11
+ import Condition from "sap/ui/mdc/condition/Condition";
11
12
  import ConditionValidated from "sap/ui/mdc/enum/ConditionValidated";
12
13
  import ConditionsType from "sap/ui/mdc/field/ConditionsType";
13
14
  import JSONModel from "sap/ui/model/json/JSONModel";
@@ -50,8 +51,8 @@ export default class CustomFilterFieldContentWrapper extends Control implements
50
51
  @event()
51
52
  conditionsChange!: Function;
52
53
 
53
- // TODO: Consider using FieldBase as base control (instead of Control)
54
- // TODO: If FieldBase is used, add 'change' event & corresponding handler to bubble it
54
+ // Note: FieldBase might be used as base control (instead of Control) in a later version;
55
+ // in that case, you should add a 'change' event and bubble it to the corresponding handlers
55
56
 
56
57
  private _filterModel: any;
57
58
  private _conditionsObserver: any;
@@ -69,10 +70,10 @@ export default class CustomFilterFieldContentWrapper extends Control implements
69
70
  /**
70
71
  * Maps an array of filter values to an array of conditions.
71
72
  *
72
- * @param {Array | string} filterValues Array of filter value bindings or a filter value string
73
- * @param {string} [operator] The operator to be used (optional) - if not set, the default operator (EQ) will be used
73
+ * @param filterValues Array of filter value bindings or a filter value string
74
+ * @param [operator] The operator to be used (optional) - if not set, the default operator (EQ) will be used
74
75
  * @private
75
- * @returns {Array} Array of filter conditions
76
+ * @returns Array of filter conditions
76
77
  */
77
78
  static _filterValuesToConditions(filterValues: any | any[], operator?: string): ConditionObject[] {
78
79
  let formatOptions: FormatOptionsType = { operators: [] },
@@ -87,7 +88,7 @@ export default class CustomFilterFieldContentWrapper extends Control implements
87
88
  formatOptions = { operators: [filterValues.operator] };
88
89
  filterValues = filterValues.values;
89
90
  } else if (filterValues !== undefined && typeof filterValues !== "object" && typeof filterValues !== "string") {
90
- throw new Error("FilterUtils.js#_filterValuesToConditions: Unexpected type of input parameter vValues: " + typeof filterValues);
91
+ throw new Error(`FilterUtils.js#_filterValuesToConditions: Unexpected type of input parameter vValues: ${typeof filterValues}`);
91
92
  }
92
93
 
93
94
  const conditionsType: any = new ConditionsType(formatOptions);
@@ -115,10 +116,10 @@ export default class CustomFilterFieldContentWrapper extends Control implements
115
116
  /**
116
117
  * Maps an array of conditions to a comma separated list of filter values.
117
118
  *
118
- * @param {object[]} conditions Array of filter conditions
119
- * @param {object} formatOptions Format options that specifies a condition type
119
+ * @param conditions Array of filter conditions
120
+ * @param formatOptions Format options that specifies a condition type
120
121
  * @private
121
- * @returns {string} Concatenated string of filter values
122
+ * @returns Concatenated string of filter values
122
123
  */
123
124
  static _conditionsToFilterModelString(conditions: object[], formatOptions: FormatOptionsType): string {
124
125
  const conditionsType = new ConditionsType(formatOptions);
@@ -136,7 +137,7 @@ export default class CustomFilterFieldContentWrapper extends Control implements
136
137
  /**
137
138
  * Listens to filter model changes and updates wrapper property "conditions".
138
139
  *
139
- * @param {object} changeEvent Event triggered by a filter model change
140
+ * @param changeEvent Event triggered by a filter model change
140
141
  * @private
141
142
  */
142
143
  _handleFilterModelChange(changeEvent: any): void {
@@ -148,7 +149,7 @@ export default class CustomFilterFieldContentWrapper extends Control implements
148
149
  /**
149
150
  * Listens to "conditions" changes and updates the filter model.
150
151
  *
151
- * @param {object} conditions Event triggered by a "conditions" change
152
+ * @param conditions Event triggered by a "conditions" change
152
153
  * @private
153
154
  */
154
155
  _handleConditionsChange(conditions: any): void {
@@ -164,48 +165,57 @@ export default class CustomFilterFieldContentWrapper extends Control implements
164
165
  this._conditionsObserver.observe(this, {
165
166
  properties: ["conditions"]
166
167
  });
168
+ this._filterModel = new JSONModel();
169
+ this._filterModel.attachPropertyChange(this._handleFilterModelChange, this);
170
+ this.setModel(this._filterModel, CustomFilterFieldContentWrapper.FILTER_MODEL_ALIAS);
167
171
  }
168
172
 
169
173
  /**
170
- * Listens to property changes.
174
+ * Overrides {@link sap.ui.core.Control#clone Control.clone} to clone additional
175
+ * internal states.
171
176
  *
172
- * @param {any} changes Property changes
173
- * @private
177
+ * @param [sIdSuffix] A suffix to be appended to the cloned control id
178
+ * @param [aLocalIds] An array of local IDs within the cloned hierarchy (internally used)
179
+ * @returns Reference to the newly created clone
180
+ * @protected
174
181
  */
175
- _observeChanges(changes: any): void {
176
- if (changes.name === "conditions") {
177
- this._handleConditionsChange(changes.current);
178
- }
182
+ clone(sIdSuffix: string | undefined, aLocalIds: string[] | undefined): this {
183
+ const clone = super.clone(sIdSuffix, aLocalIds);
184
+ // During cloning, the old model will be copied and overwrites any new model (same alias) that
185
+ // you introduce during init(); hence you need to overwrite it again by the new one that you've
186
+ // created during init() (i.e. clone._filterModel); that standard behaviour of super.clone()
187
+ // can't even be suppressed in an own constructor; for a detailed investigation of the cloning,
188
+ // please overwrite the setModel() method and check the list of callers and steps induced by them.
189
+ clone.setModel(clone._filterModel, CustomFilterFieldContentWrapper.FILTER_MODEL_ALIAS);
190
+ return clone;
179
191
  }
180
192
 
181
193
  /**
182
- * Registers the internal filter model (alias 'filterValues').
194
+ * Listens to property changes.
183
195
  *
196
+ * @param changes Property changes
184
197
  * @private
185
198
  */
186
- _registerFilterModel(): void {
187
- if (!this._filterModel) {
188
- this._filterModel = new JSONModel();
189
- this._filterModel.attachPropertyChange(this._handleFilterModelChange, this);
190
- this.setModel(this._filterModel, CustomFilterFieldContentWrapper.FILTER_MODEL_ALIAS);
199
+ _observeChanges(changes: any): void {
200
+ if (changes.name === "conditions") {
201
+ this._handleConditionsChange(changes.current);
191
202
  }
192
203
  }
193
204
 
194
205
  /**
195
206
  * Gets the content of this wrapper control.
196
207
  *
197
- * @returns {sap.ui.core.Control} The wrapper content
208
+ * @returns The wrapper content
198
209
  * @private
199
210
  */
200
211
  getContent(): Control {
201
- this._registerFilterModel();
202
212
  return this.getAggregation("content") as Control;
203
213
  }
204
214
 
205
215
  /**
206
216
  * Gets the value for control property 'conditions'.
207
217
  *
208
- * @returns {object[]} Array of filter conditions
218
+ * @returns Array of filter conditions
209
219
  * @private
210
220
  */
211
221
  getConditions(): object[] {
@@ -215,17 +225,19 @@ export default class CustomFilterFieldContentWrapper extends Control implements
215
225
  /**
216
226
  * Sets the value for control property 'conditions'.
217
227
  *
218
- * @param {Array} conditions Array of filter conditions
228
+ * @param [conditions] Array of filter conditions
229
+ * @returns Reference to this wrapper
219
230
  * @private
220
231
  */
221
- setConditions(conditions: object[]): void {
222
- this.setProperty("conditions", conditions);
232
+ setConditions(conditions: object[]): this {
233
+ this.setProperty("conditions", conditions || []);
234
+ return this;
223
235
  }
224
236
 
225
237
  /**
226
238
  * Gets the filter model alias 'filterValues'.
227
239
  *
228
- * @returns {string} The filter model
240
+ * @returns The filter model
229
241
  * @private
230
242
  */
231
243
  getFilterModelAlias(): string {
@@ -236,11 +248,11 @@ export default class CustomFilterFieldContentWrapper extends Control implements
236
248
  * Updates the property "conditions" with filter values
237
249
  * sent by ExtensionAPI#setFilterValues().
238
250
  *
239
- * @param {any} values The filter values
240
- * @param {string} operator The operator name
251
+ * @param values The filter values
252
+ * @param [operator] The operator name
241
253
  * @private
242
254
  */
243
- updateConditionsByFilterValues(values: any, operator: string): void {
255
+ updateConditionsByFilterValues(values: any, operator?: string): void {
244
256
  const conditions = CustomFilterFieldContentWrapper._filterValuesToConditions(values, operator);
245
257
  this.setConditions(conditions);
246
258
  }
@@ -249,15 +261,10 @@ export default class CustomFilterFieldContentWrapper extends Control implements
249
261
  * Updates filter model with conditions
250
262
  * sent by the {@link sap.ui.mdc.FilterField FilterField}.
251
263
  *
252
- * @param {Array} conditions Array of filter conditions
264
+ * @param conditions Array of filter conditions
253
265
  * @private
254
266
  */
255
267
  updateFilterModelByConditions(conditions: any[]): void {
256
- // When the filter field is created via "Adapt Filter"
257
- // this handler is fired before the filter model is created
258
- // -> in general, create it, if needed!
259
- // TODO: Consider using method Control#clone() to register filter model
260
- this._registerFilterModel();
261
268
  const operator = conditions[0]?.operator || "";
262
269
  const formatOptions: FormatOptionsType = operator !== "" ? { operators: [operator] } : { operators: [] };
263
270
  if (this.getBindingContext(CustomFilterFieldContentWrapper.FILTER_MODEL_ALIAS)) {
@@ -269,8 +276,6 @@ export default class CustomFilterFieldContentWrapper extends Control implements
269
276
  }
270
277
  }
271
278
 
272
- // TODO: Check, if implementation of _setAriaLabelledBy() is needed ?
273
-
274
279
  getAccessibilityInfo(): any {
275
280
  const content = this.getContent();
276
281
  return content?.getAccessibilityInfo?.() || {};
@@ -68,7 +68,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "s
68
68
  },
69
69
  params: oShellHash.params
70
70
  };
71
- var sQuickViewPageTitleLinkIntent = oNavArgs.target.semanticObject + "-" + oNavArgs.target.action;
71
+ var sQuickViewPageTitleLinkIntent = "".concat(oNavArgs.target.semanticObject, "-").concat(oNavArgs.target.action);
72
72
 
73
73
  if (sQuickViewPageTitleLinkIntent && _this2.oCrossAppNavigator && _this2.oCrossAppNavigator.isNavigationSupported([sQuickViewPageTitleLinkIntent])) {
74
74
  if (sQuickViewPageTitleLinkIntent && sQuickViewPageTitleLinkIntent !== "") {
@@ -96,6 +96,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "s
96
96
  oShellHash = oShellServiceHelper.parseShellHash(sTargetHref);
97
97
  } else {
98
98
  oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
99
+ oShellHash.params = oNavArgs.params;
99
100
  }
100
101
  }
101
102
  } else {
@@ -167,4 +168,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "s
167
168
  })), _class2)) || _class);
168
169
  return CustomQuickViewPage;
169
170
  }, false);
170
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkN1c3RvbVF1aWNrVmlld1BhZ2UudHMiXSwibmFtZXMiOlsiQ3VzdG9tUXVpY2tWaWV3UGFnZSIsImRlZmluZVVJNUNsYXNzIiwiYWdncmVnYXRpb24iLCJ0eXBlIiwibXVsdGlwbGUiLCJzaW5ndWxhck5hbWUiLCJpc0RlZmF1bHQiLCJvbkJlZm9yZVJlbmRlcmluZyIsIm9FdmVudCIsImdldFBhcmVudCIsImlzQSIsImdldFByb3BlcnR5Iiwic2V0Q3Jvc3NBcHBOYXZDYWxsYmFjayIsInNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSHJlZiIsIkRlbGVnYXRlVXRpbCIsImdldEN1c3RvbURhdGEiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsIm9BcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJvU2hlbGxTZXJ2aWNlSGVscGVyIiwiZ2V0U2hlbGxTZXJ2aWNlcyIsIm9TaGVsbEhhc2giLCJwYXJzZVNoZWxsSGFzaCIsIm9OYXZBcmdzIiwidGFyZ2V0Iiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJwYXJhbXMiLCJzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCIsIm9Dcm9zc0FwcE5hdmlnYXRvciIsImlzTmF2aWdhdGlvblN1cHBvcnRlZCIsInNUYXJnZXRIcmVmIiwib0xpbmtDb250cm9sIiwiX2FMaW5rcyIsImdldE1vZGVsIiwibGVuZ3RoIiwiaSIsImtleSIsImhyZWYiLCJLZWVwQWxpdmVIZWxwZXIiLCJzdG9yZUNvbnRyb2xSZWZyZXNoU3RyYXRlZ3lGb3JIYXNoIiwib0N1cnJlbnRTaGVsbEhhc2giLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhhc2giLCJhcHBTcGVjaWZpY1JvdXRlIiwib1BhZ2VDb250ZW50IiwiZ2V0UGFnZUNvbnRlbnQiLCJvRm9ybSIsImZvcm0iLCJfYUNvbnRlbnQiLCJjdXN0b21Db250ZW50IiwiZm9yRWFjaCIsIl9vQ29udGVudCIsIl9vQ29udGVudENsb25lIiwiY2xvbmUiLCJzZXRNb2RlbCIsInNldEJpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJhZGRDb250ZW50Iiwic2V0VGltZW91dCIsInJlcmVuZGVyIiwiUXVpY2tWaWV3UGFnZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BTU1BLG1CLFdBRExDLGNBQWMsQ0FBQywwQ0FBRCxDLFVBRWJDLFdBQVcsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUUscUJBQVI7QUFBK0JDLElBQUFBLFFBQVEsRUFBRTtBQUF6QyxHQUFELEMsVUFFWEYsV0FBVyxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRSxzQkFBUjtBQUFnQ0MsSUFBQUEsUUFBUSxFQUFFLElBQTFDO0FBQWdEQyxJQUFBQSxZQUFZLEVBQUUsT0FBOUQ7QUFBdUVDLElBQUFBLFNBQVMsRUFBRTtBQUFsRixHQUFELEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQUdaQyxpQixHQUFBLDJCQUFrQkMsTUFBbEIsRUFBK0I7QUFBQTs7QUFDOUIsVUFDQyxLQUFLQyxTQUFMLE1BQ0EsS0FBS0EsU0FBTCxHQUFpQkMsR0FBakIsQ0FBcUIseUNBQXJCLENBREEsSUFFQSxLQUFLRCxTQUFMLEdBQWlCRSxXQUFqQixDQUE2QixXQUE3QixNQUE4QyxJQUgvQyxFQUlFO0FBQ0QsYUFBS0Msc0JBQUwsQ0FBNEIsWUFBTTtBQUNqQyxjQUFNQywyQkFBMkIsR0FBSUMsWUFBWSxDQUFDQyxhQUFkLENBQW9DLE1BQXBDLEVBQTBDLFdBQTFDLENBQXBDO0FBQ0EsY0FBTUMsS0FBSyxHQUFHQyxXQUFXLENBQUNDLGFBQVosQ0FBMEIsTUFBMUIsQ0FBZDtBQUNBLGNBQU1DLGFBQWEsR0FBR0YsV0FBVyxDQUFDRyxlQUFaLENBQTRCSixLQUE1QixDQUF0QjtBQUNBLGNBQU1LLG1CQUFtQixHQUFHRixhQUFhLENBQUNHLGdCQUFkLEVBQTVCO0FBQ0EsY0FBSUMsVUFBVSxHQUFHRixtQkFBbUIsQ0FBQ0csY0FBcEIsQ0FBbUNYLDJCQUFu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LGlCQUFpQixDQUFDaEIsY0FEM0I7QUFFUEMsZ0JBQUFBLE1BQU0sRUFBRWUsaUJBQWlCLENBQUNmLE1BRm5CO0FBR1BtQixnQkFBQUEsZ0JBQWdCLEVBQUVKLGlCQUFpQixDQUFDSTtBQUg3QixlQURGO0FBTU5sQixjQUFBQSxNQUFNLEVBQUVjLGlCQUFpQixDQUFDZDtBQU5wQixhQUFQO0FBUUE7QUFDRCxTQXBFRDtBQXFFQTs7QUFDRCwrQkFBTXRCLGlCQUFOLFlBQXdCQyxNQUF4Qjs7QUFDQSxVQUFNd0MsWUFBWSxHQUFHLEtBQUtDLGNBQUwsRUFBckI7QUFDQSxVQUFNQyxLQUFLLEdBQUdGLFlBQVksQ0FBQ0csSUFBM0I7O0FBQ0EsVUFBSUQsS0FBSixFQUFXO0FBQ1YsWUFBTUUsU0FBUyxHQUFHLEtBQUtDLGFBQXZCOztBQUNBLFlBQUlELFNBQVMsSUFBSUEsU0FBUyxDQUFDZixNQUFWLEdBQW1CLENBQXBDLEVBQXVDO0FBQ3RDZSxVQUFBQSxTQUFTLENBQUNFLE9BQVYsQ0FBa0IsVUFBQ0MsU0FBRCxFQUFvQjtBQUNyQyxnQkFBTUMsY0FBYyxHQUFHRCxTQUFTLENBQUNFLEtBQVYsRUFBdkI7O0FBQ0FELFlBQUFBLGNBQWMsQ0FBQ0UsUUFBZixDQUF3QixNQUFJLENBQUN0QixRQUFMLEVBQXhCOztBQUNBb0IsWUFBQUEsY0FBYyxDQUFDRyxpQkFBZixDQUFpQyxNQUFJLENBQUNDLGlCQUFMLEVBQWpDOztBQUNBVixZQUFBQSxLQUFLLENBQUNXLFVBQU4sQ0FBaUJMLGNBQWpCO0FBQ0EsV0FMRDs7QUFNQU0sVUFBQUEsVUFBVSxDQUFDLFlBQVk7QUFDdEJaLFlBQUFBLEtBQUssQ0FBQ2EsUUFBTjtBQUNBLFdBRlMsRUFFUCxDQUZPLENBQVY7QUFHQTtBQUNEO0FBQ0QsSzs7O0lBbkdnQ0MsYTs7Ozs7Ozs7Ozs7U0EyR25CaEUsbUIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEtlZXBBbGl2ZUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9LZWVwQWxpdmVIZWxwZXJcIjtcbmltcG9ydCBEZWxlZ2F0ZVV0aWwgZnJvbSBcInNhcC9mZS9tYWNyb3MvRGVsZWdhdGVVdGlsXCI7XG5pbXBvcnQgUXVpY2tWaWV3UGFnZSBmcm9tIFwic2FwL20vUXVpY2tWaWV3UGFnZVwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbHMuQ3VzdG9tUXVpY2tWaWV3UGFnZVwiKVxuY2xhc3MgQ3VzdG9tUXVpY2tWaWV3UGFnZSBleHRlbmRzIFF1aWNrVmlld1BhZ2Uge1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUgfSlcblx0Y3VzdG9tQ29udGVudCE6IENvbnRyb2xbXTtcblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAubS5RdWlja1ZpZXdHcm91cFwiLCBtdWx0aXBsZTogdHJ1ZSwgc2luZ3VsYXJOYW1lOiBcImdyb3VwXCIsIGlzRGVmYXVsdDogdHJ1ZSB9KVxuXHRncm91cHMhOiBDb250cm9sW107XG5cblx0b25CZWZvcmVSZW5kZXJpbmcob0V2ZW50OiBhbnkpIHtcblx0XHRpZiAoXG5cdFx0XHR0aGlzLmdldFBhcmVudCgpICYmXG5cdFx0XHR0aGlzLmdldFBhcmVudCgpLmlzQShcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkNvbmRpdGlvbmFsV3JhcHBlclwiKSAmJlxuXHRcdFx0dGhpcy5nZXRQYXJlbnQoKS5nZXRQcm9wZXJ0eShcImNvbmRpdGlvblwiKSA9PT0gdHJ1ZVxuXHRcdCkge1xuXHRcdFx0dGhpcy5zZXRDcm9zc0FwcE5hdkNhbGxiYWNrKCgpID0+IHtcblx0XHRcdFx0Y29uc3Qgc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtIcmVmID0gKERlbGVnYXRlVXRpbC5nZXRDdXN0b21EYXRhIGFzIGFueSkodGhpcywgXCJ0aXRsZUxpbmtcIik7XG5cdFx0XHRcdGNvbnN0IG9WaWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0Vmlldyh0aGlzKTtcblx0XHRcdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudChvVmlldyk7XG5cdFx0XHRcdGNvbnN0IG9TaGVsbFNlcnZpY2VIZWxwZXIgPSBvQXBwQ29tcG9uZW50LmdldFNoZWxsU2VydmljZXMoKTtcblx0XHRcdFx0bGV0IG9TaGVsbEhhc2ggPSBvU2hlbGxTZXJ2aWNlSGVscGVyLnBhcnNlU2hlbGxIYXNoKHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSHJlZik7XG5cdFx0XHRcdGNvbnN0IG9OYXZBcmdzID0ge1xuXHRcdFx0XHRcdHRhcmdldDoge1xuXHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IG9TaGVsbEhhc2guc2VtYW50aWNPYmplY3QsXG5cdFx0XHRcdFx0XHRhY3Rpb246IG9TaGVsbEhhc2guYWN0aW9uXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRwYXJhbXM6IG9TaGVsbEhhc2gucGFyYW1zXG5cdFx0XHRcdH07XG5cdFx0XHRcdGNvbnN0IHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50ID0gb05hdkFyZ3MudGFyZ2V0LnNlbWFudGljT2JqZWN0ICsgXCItXCIgKyBvTmF2QXJncy50YXJnZXQuYWN0aW9uO1xuXG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHRzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAmJlxuXHRcdFx0XHRcdHRoaXMub0Nyb3NzQXBwTmF2aWdhdG9yICYmXG5cdFx0XHRcdFx0dGhpcy5vQ3Jvc3NBcHBOYXZpZ2F0b3IuaXNOYXZpZ2F0aW9uU3VwcG9ydGVkKFtzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudF0pXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdGlmIChzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAmJiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAhPT0gXCJcIikge1xuXHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCA9PT0gXCJzdHJpbmdcIiAmJiBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCAhPT0gXCJcIikge1xuXHRcdFx0XHRcdFx0XHRsZXQgc1RhcmdldEhyZWY7XG5cdFx0XHRcdFx0XHRcdGxldCBvTGlua0NvbnRyb2wgPSB0aGlzLmdldFBhcmVudCgpO1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAob0xpbmtDb250cm9sICYmICFvTGlua0NvbnRyb2wuaXNBKFwic2FwLnVpLm1kYy5MaW5rXCIpKSB7XG5cdFx0XHRcdFx0XHRcdFx0b0xpbmtDb250cm9sID0gb0xpbmtDb250cm9sLmdldFBhcmVudCgpO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGNvbnN0IF9hTGlua3MgPSBvTGlua0NvbnRyb2wuZ2V0TW9kZWwoXCIkc2FwdWltZGNMaW5rXCIpLmdldFByb3BlcnR5KFwiL2xpbmtJdGVtc1wiKTtcblx0XHRcdFx0XHRcdFx0aWYgKF9hTGlua3MpIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoX2FMaW5rcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IF9hTGlua3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKF9hTGlua3NbaV0ua2V5ID09PSBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNUYXJnZXRIcmVmID0gX2FMaW5rc1tpXS5ocmVmO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoc1RhcmdldEhyZWYpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0b1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1RhcmdldEhyZWYpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0b1NoZWxsSGFzaCA9IG9TaGVsbFNlcnZpY2VIZWxwZXIucGFyc2VTaGVsbEhhc2goc1F1aWNrVmlld1BhZ2VUaXRsZUxpbmtJbnRlbnQpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRvU2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaChzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0S2VlcEFsaXZlSGVscGVyLnN0b3JlQ29udHJvbFJlZnJlc2hTdHJhdGVneUZvckhhc2gob1ZpZXcsIG9TaGVsbEhhc2gpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdHRhcmdldDoge1xuXHRcdFx0XHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IG9TaGVsbEhhc2guc2VtYW50aWNPYmplY3QsXG5cdFx0XHRcdFx0XHRcdFx0XHRhY3Rpb246IG9TaGVsbEhhc2guYWN0aW9uXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IG9TaGVsbEhhc2gucGFyYW1zXG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnN0IG9DdXJyZW50U2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaCh3aW5kb3cubG9jYXRpb24uaGFzaCk7XG5cdFx0XHRcdFx0S2VlcEFsaXZlSGVscGVyLnN0b3JlQ29udHJvbFJlZnJlc2hTdHJhdGVneUZvckhhc2gob1ZpZXcsIG9DdXJyZW50U2hlbGxIYXNoKTtcblxuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHR0YXJnZXQ6IHtcblx0XHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IG9DdXJyZW50U2hlbGxIYXNoLnNlbWFudGljT2JqZWN0LFxuXHRcdFx0XHRcdFx0XHRhY3Rpb246IG9DdXJyZW50U2hlbGxIYXNoLmFjdGlvbixcblx0XHRcdFx0XHRcdFx0YXBwU3BlY2lmaWNSb3V0ZTogb0N1cnJlbnRTaGVsbEhhc2guYXBwU3BlY2lmaWNSb3V0ZVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHBhcmFtczogb0N1cnJlbnRTaGVsbEhhc2gucGFyYW1zXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHN1cGVyLm9uQmVmb3JlUmVuZGVyaW5nKG9FdmVudCk7XG5cdFx0Y29uc3Qgb1BhZ2VDb250ZW50ID0gdGhpcy5nZXRQYWdlQ29udGVudCgpO1xuXHRcdGNvbnN0IG9Gb3JtID0gb1BhZ2VDb250ZW50LmZvcm07XG5cdFx0aWYgKG9Gb3JtKSB7XG5cdFx0XHRjb25zdCBfYUNvbnRlbnQgPSB0aGlzLmN1c3RvbUNvbnRlbnQ7XG5cdFx0XHRpZiAoX2FDb250ZW50ICYmIF9hQ29udGVudC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdF9hQ29udGVudC5mb3JFYWNoKChfb0NvbnRlbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IF9vQ29udGVudENsb25lID0gX29Db250ZW50LmNsb25lKCk7XG5cdFx0XHRcdFx0X29Db250ZW50Q2xvbmUuc2V0TW9kZWwodGhpcy5nZXRNb2RlbCgpKTtcblx0XHRcdFx0XHRfb0NvbnRlbnRDbG9uZS5zZXRCaW5kaW5nQ29udGV4dCh0aGlzLmdldEJpbmRpbmdDb250ZXh0KCkpO1xuXHRcdFx0XHRcdG9Gb3JtLmFkZENvbnRlbnQoX29Db250ZW50Q2xvbmUpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0b0Zvcm0ucmVyZW5kZXIoKTtcblx0XHRcdFx0fSwgMCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5pbnRlcmZhY2UgQ3VzdG9tUXVpY2tWaWV3UGFnZSB7XG5cdC8vIFByaXZhdGUgaW4gVUk1XG5cdG9Dcm9zc0FwcE5hdmlnYXRvcjogYW55O1xuXHQvLyBQcml2YXRlIGluIFVJNVxuXHRnZXRQYWdlQ29udGVudCgpOiBhbnk7XG59XG5leHBvcnQgZGVmYXVsdCBDdXN0b21RdWlja1ZpZXdQYWdlO1xuIl19
171
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkN1c3RvbVF1aWNrVmlld1BhZ2UudHMiXSwibmFtZXMiOlsiQ3VzdG9tUXVpY2tWaWV3UGFnZSIsImRlZmluZVVJNUNsYXNzIiwiYWdncmVnYXRpb24iLCJ0eXBlIiwibXVsdGlwbGUiLCJzaW5ndWxhck5hbWUiLCJpc0RlZmF1bHQiLCJvbkJlZm9yZVJlbmRlcmluZyIsIm9FdmVudCIsImdldFBhcmVudCIsImlzQSIsImdldFByb3BlcnR5Iiwic2V0Q3Jvc3NBcHBOYXZDYWxsYmFjayIsInNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSHJlZiIsIkRlbGVnYXRlVXRpbCIsImdldEN1c3RvbURhdGEiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsIm9BcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJvU2hlbGxTZXJ2aWNlSGVscGVyIiwiZ2V0U2hlbGxTZXJ2aWNlcyIsIm9TaGVsbEhhc2giLCJwYXJzZVNoZWxsSGFzaCIsIm9OYXZBcmdzIiwidGFyZ2V0Iiwic2VtYW50aWNPYmplY3QiLCJhY3Rpb24iLCJwYXJhbXMiLCJzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCIsIm9Dcm9zc0FwcE5hdmlnYXRvciIsImlzTmF2aWdhdGlvblN1cHBvcnRlZCIsInNUYXJnZXRIcmVmIiwib0xpbmtDb250cm9sIiwiX2FMaW5rcyIsImdldE1vZGVsIiwibGVuZ3RoIiwiaSIsImtleSIsImhyZWYiLCJLZWVwQWxpdmVIZWxwZXIiLCJzdG9yZUNvbnRyb2xSZWZyZXNoU3RyYXRlZ3lGb3JIYXNoIiwib0N1cnJlbnRTaGVsbEhhc2giLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhhc2giLCJhcHBTcGVjaWZpY1JvdXRlIiwib1BhZ2VDb250ZW50IiwiZ2V0UGFnZUNvbnRlbnQiLCJvRm9ybSIsImZvcm0iLCJfYUNvbnRlbnQiLCJjdXN0b21Db250ZW50IiwiZm9yRWFjaCIsIl9vQ29udGVudCIsIl9vQ29udGVudENsb25lIiwiY2xvbmUiLCJzZXRNb2RlbCIsInNldEJpbmRpbmdDb250ZXh0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJhZGRDb250ZW50Iiwic2V0VGltZW91dCIsInJlcmVuZGVyIiwiUXVpY2tWaWV3UGFnZSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BTU1BLG1CLFdBRExDLGNBQWMsQ0FBQywwQ0FBRCxDLFVBRWJDLFdBQVcsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUUscUJBQVI7QUFBK0JDLElBQUFBLFFBQVEsRUFBRTtBQUF6QyxHQUFELEMsVUFFWEYsV0FBVyxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRSxzQkFBUjtBQUFnQ0MsSUFBQUEsUUFBUSxFQUFFLElBQTFDO0FBQWdEQyxJQUFBQSxZQUFZLEVBQUUsT0FBOUQ7QUFBdUVDLElBQUFBLFNBQVMsRUFBRTtBQUFsRixHQUFELEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQUdaQyxpQixHQUFBLDJCQUFrQkMsTUFBbEIsRUFBK0I7QUFBQTs7QUFDOUIsVUFDQyxLQUFLQyxTQUFMLE1BQ0EsS0FBS0EsU0FBTCxHQUFpQkMsR0FBakIsQ0FBcUIseUNBQXJCLENBREEsSUFFQSxLQUFLRCxTQUFMLEdBQWlCRSxXQUFqQixDQUE2QixXQUE3QixNQUE4QyxJQUgvQyxFQUlFO0FBQ0QsYUFBS0Msc0JBQUwsQ0FBNEIsWUFBTTtBQUNqQyxjQUFNQywyQkFBMkIsR0FBSUMsWUFBWSxDQUFDQyxhQUFkLENBQW9DLE1BQXBDLEVBQTBDLFdBQTFDLENBQXBDO0FBQ0EsY0FBTUMsS0FBSyxHQUFHQyxXQUFXLENBQUNDLGFBQVosQ0FBMEIsTUFBMUIsQ0FBZDtBQUNBLGNBQU1DLGFBQWEsR0FBR0YsV0FBVyxDQUFDRyxlQUFaLENBQTRCSixLQUE1QixDQUF0QjtBQUNBLGNBQU1LLG1CQUFtQixHQUFHRixhQUFhLENBQUNHLGdCQUFkLEVBQTVCO0FBQ0EsY0FBSUMsVUFBVSxHQUFHRixtQkFBbUIsQ0FBQ0csY0FBcEIsQ0FBbUNYLDJCQUFu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IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgS2VlcEFsaXZlSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0tlZXBBbGl2ZUhlbHBlclwiO1xuaW1wb3J0IERlbGVnYXRlVXRpbCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9EZWxlZ2F0ZVV0aWxcIjtcbmltcG9ydCBRdWlja1ZpZXdQYWdlIGZyb20gXCJzYXAvbS9RdWlja1ZpZXdQYWdlXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkN1c3RvbVF1aWNrVmlld1BhZ2VcIilcbmNsYXNzIEN1c3RvbVF1aWNrVmlld1BhZ2UgZXh0ZW5kcyBRdWlja1ZpZXdQYWdlIHtcblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlIH0pXG5cdGN1c3RvbUNvbnRlbnQhOiBDb250cm9sW107XG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLm0uUXVpY2tWaWV3R3JvdXBcIiwgbXVsdGlwbGU6IHRydWUsIHNpbmd1bGFyTmFtZTogXCJncm91cFwiLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Z3JvdXBzITogQ29udHJvbFtdO1xuXG5cdG9uQmVmb3JlUmVuZGVyaW5nKG9FdmVudDogYW55KSB7XG5cdFx0aWYgKFxuXHRcdFx0dGhpcy5nZXRQYXJlbnQoKSAmJlxuXHRcdFx0dGhpcy5nZXRQYXJlbnQoKS5pc0EoXCJzYXAuZmUuY29yZS5jb250cm9scy5Db25kaXRpb25hbFdyYXBwZXJcIikgJiZcblx0XHRcdHRoaXMuZ2V0UGFyZW50KCkuZ2V0UHJvcGVydHkoXCJjb25kaXRpb25cIikgPT09IHRydWVcblx0XHQpIHtcblx0XHRcdHRoaXMuc2V0Q3Jvc3NBcHBOYXZDYWxsYmFjaygoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSHJlZiA9IChEZWxlZ2F0ZVV0aWwuZ2V0Q3VzdG9tRGF0YSBhcyBhbnkpKHRoaXMsIFwidGl0bGVMaW5rXCIpO1xuXHRcdFx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0XHRcdGNvbnN0IG9BcHBDb21wb25lbnQgPSBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQob1ZpZXcpO1xuXHRcdFx0XHRjb25zdCBvU2hlbGxTZXJ2aWNlSGVscGVyID0gb0FwcENvbXBvbmVudC5nZXRTaGVsbFNlcnZpY2VzKCk7XG5cdFx0XHRcdGxldCBvU2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaChzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0hyZWYpO1xuXHRcdFx0XHRjb25zdCBvTmF2QXJncyA9IHtcblx0XHRcdFx0XHR0YXJnZXQ6IHtcblx0XHRcdFx0XHRcdHNlbWFudGljT2JqZWN0OiBvU2hlbGxIYXNoLnNlbWFudGljT2JqZWN0LFxuXHRcdFx0XHRcdFx0YWN0aW9uOiBvU2hlbGxIYXNoLmFjdGlvblxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0cGFyYW1zOiBvU2hlbGxIYXNoLnBhcmFtc1xuXHRcdFx0XHR9O1xuXHRcdFx0XHRjb25zdCBzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCA9IGAke29OYXZBcmdzLnRhcmdldC5zZW1hbnRpY09iamVjdH0tJHtvTmF2QXJncy50YXJnZXQuYWN0aW9ufWA7XG5cblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50ICYmXG5cdFx0XHRcdFx0dGhpcy5vQ3Jvc3NBcHBOYXZpZ2F0b3IgJiZcblx0XHRcdFx0XHR0aGlzLm9Dcm9zc0FwcE5hdmlnYXRvci5pc05hdmlnYXRpb25TdXBwb3J0ZWQoW3NRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50XSlcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0aWYgKHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50ICYmIHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50ICE9PSBcIlwiKSB7XG5cdFx0XHRcdFx0XHRpZiAodHlwZW9mIHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50ID09PSBcInN0cmluZ1wiICYmIHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50ICE9PSBcIlwiKSB7XG5cdFx0XHRcdFx0XHRcdGxldCBzVGFyZ2V0SHJlZjtcblx0XHRcdFx0XHRcdFx0bGV0IG9MaW5rQ29udHJvbCA9IHRoaXMuZ2V0UGFyZW50KCk7XG5cdFx0XHRcdFx0XHRcdHdoaWxlIChvTGlua0NvbnRyb2wgJiYgIW9MaW5rQ29udHJvbC5pc0EoXCJzYXAudWkubWRjLkxpbmtcIikpIHtcblx0XHRcdFx0XHRcdFx0XHRvTGlua0NvbnRyb2wgPSBvTGlua0NvbnRyb2wuZ2V0UGFyZW50KCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0Y29uc3QgX2FMaW5rcyA9IG9MaW5rQ29udHJvbC5nZXRNb2RlbChcIiRzYXB1aW1kY0xpbmtcIikuZ2V0UHJvcGVydHkoXCIvbGlua0l0ZW1zXCIpO1xuXHRcdFx0XHRcdFx0XHRpZiAoX2FMaW5rcykge1xuXHRcdFx0XHRcdFx0XHRcdGlmIChfYUxpbmtzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgX2FMaW5rcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoX2FMaW5rc1tpXS5rZXkgPT09IHNRdWlja1ZpZXdQYWdlVGl0bGVMaW5rSW50ZW50KSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0c1RhcmdldEhyZWYgPSBfYUxpbmtzW2ldLmhyZWY7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdGlmIChzVGFyZ2V0SHJlZikge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRvU2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaChzVGFyZ2V0SHJlZik7XG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRvU2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaChzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG9TaGVsbEhhc2gucGFyYW1zID0gb05hdkFyZ3MucGFyYW1zO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRvU2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaChzUXVpY2tWaWV3UGFnZVRpdGxlTGlua0ludGVudCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0S2VlcEFsaXZlSGVscGVyLnN0b3JlQ29udHJvbFJlZnJlc2hTdHJhdGVneUZvckhhc2gob1ZpZXcsIG9TaGVsbEhhc2gpO1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRcdHRhcmdldDoge1xuXHRcdFx0XHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IG9TaGVsbEhhc2guc2VtYW50aWNPYmplY3QsXG5cdFx0XHRcdFx0XHRcdFx0XHRhY3Rpb246IG9TaGVsbEhhc2guYWN0aW9uXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IG9TaGVsbEhhc2gucGFyYW1zXG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnN0IG9DdXJyZW50U2hlbGxIYXNoID0gb1NoZWxsU2VydmljZUhlbHBlci5wYXJzZVNoZWxsSGFzaCh3aW5kb3cubG9jYXRpb24uaGFzaCk7XG5cdFx0XHRcdFx0S2VlcEFsaXZlSGVscGVyLnN0b3JlQ29udHJvbFJlZnJlc2hTdHJhdGVneUZvckhhc2gob1ZpZXcsIG9DdXJyZW50U2hlbGxIYXNoKTtcblxuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHR0YXJnZXQ6IHtcblx0XHRcdFx0XHRcdFx0c2VtYW50aWNPYmplY3Q6IG9DdXJyZW50U2hlbGxIYXNoLnNlbWFudGljT2JqZWN0LFxuXHRcdFx0XHRcdFx0XHRhY3Rpb246IG9DdXJyZW50U2hlbGxIYXNoLmFjdGlvbixcblx0XHRcdFx0XHRcdFx0YXBwU3BlY2lmaWNSb3V0ZTogb0N1cnJlbnRTaGVsbEhhc2guYXBwU3BlY2lmaWNSb3V0ZVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHBhcmFtczogb0N1cnJlbnRTaGVsbEhhc2gucGFyYW1zXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHN1cGVyLm9uQmVmb3JlUmVuZGVyaW5nKG9FdmVudCk7XG5cdFx0Y29uc3Qgb1BhZ2VDb250ZW50ID0gdGhpcy5nZXRQYWdlQ29udGVudCgpO1xuXHRcdGNvbnN0IG9Gb3JtID0gb1BhZ2VDb250ZW50LmZvcm07XG5cdFx0aWYgKG9Gb3JtKSB7XG5cdFx0XHRjb25zdCBfYUNvbnRlbnQgPSB0aGlzLmN1c3RvbUNvbnRlbnQ7XG5cdFx0XHRpZiAoX2FDb250ZW50ICYmIF9hQ29udGVudC5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdF9hQ29udGVudC5mb3JFYWNoKChfb0NvbnRlbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IF9vQ29udGVudENsb25lID0gX29Db250ZW50LmNsb25lKCk7XG5cdFx0XHRcdFx0X29Db250ZW50Q2xvbmUuc2V0TW9kZWwodGhpcy5nZXRNb2RlbCgpKTtcblx0XHRcdFx0XHRfb0NvbnRlbnRDbG9uZS5zZXRCaW5kaW5nQ29udGV4dCh0aGlzLmdldEJpbmRpbmdDb250ZXh0KCkpO1xuXHRcdFx0XHRcdG9Gb3JtLmFkZENvbnRlbnQoX29Db250ZW50Q2xvbmUpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0b0Zvcm0ucmVyZW5kZXIoKTtcblx0XHRcdFx0fSwgMCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5pbnRlcmZhY2UgQ3VzdG9tUXVpY2tWaWV3UGFnZSB7XG5cdC8vIFByaXZhdGUgaW4gVUk1XG5cdG9Dcm9zc0FwcE5hdmlnYXRvcjogYW55O1xuXHQvLyBQcml2YXRlIGluIFVJNVxuXHRnZXRQYWdlQ29udGVudCgpOiBhbnk7XG59XG5leHBvcnQgZGVmYXVsdCBDdXN0b21RdWlja1ZpZXdQYWdlO1xuIl19
@@ -3,7 +3,7 @@ import { aggregation, defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
3
3
  import KeepAliveHelper from "sap/fe/core/helpers/KeepAliveHelper";
4
4
  import DelegateUtil from "sap/fe/macros/DelegateUtil";
5
5
  import QuickViewPage from "sap/m/QuickViewPage";
6
- import Control from "sap/ui/core/Control";
6
+ import type Control from "sap/ui/core/Control";
7
7
 
8
8
  @defineUI5Class("sap.fe.core.controls.CustomQuickViewPage")
9
9
  class CustomQuickViewPage extends QuickViewPage {
@@ -31,7 +31,7 @@ class CustomQuickViewPage extends QuickViewPage {
31
31
  },
32
32
  params: oShellHash.params
33
33
  };
34
- const sQuickViewPageTitleLinkIntent = oNavArgs.target.semanticObject + "-" + oNavArgs.target.action;
34
+ const sQuickViewPageTitleLinkIntent = `${oNavArgs.target.semanticObject}-${oNavArgs.target.action}`;
35
35
 
36
36
  if (
37
37
  sQuickViewPageTitleLinkIntent &&
@@ -58,6 +58,7 @@ class CustomQuickViewPage extends QuickViewPage {
58
58
  oShellHash = oShellServiceHelper.parseShellHash(sTargetHref);
59
59
  } else {
60
60
  oShellHash = oShellServiceHelper.parseShellHash(sQuickViewPageTitleLinkIntent);
61
+ oShellHash.params = oNavArgs.params;
61
62
  }
62
63
  }
63
64
  } else {
@@ -1,7 +1,10 @@
1
1
  <core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core">
2
2
  <Dialog title="{i18n>WARNING}" state="Warning" type="Message" contentWidth="22rem">
3
3
  <content>
4
- <Text text="{i18n>ST_DRAFT_DATALOSS_POPUP_MESSAGE}" wrapping="true" />
4
+ <Text
5
+ text="{= !%{HasActiveEntity} ? ${sap.fe.i18n>ST_DRAFT_DATALOSS_POPUP_MESSAGE_CREATE} : ${sap.fe.i18n>ST_DRAFT_DATALOSS_POPUP_MESSAGE_SAVE} }"
6
+ wrapping="true"
7
+ />
5
8
  <List
6
9
  mode="SingleSelectLeft"
7
10
  showSeparators="None"
@@ -18,8 +21,13 @@
18
21
  <core:CustomData key="itemKey" value="draftDataLossOptionSave" />
19
22
  </customData>
20
23
  <VBox class="sapUiTinyMargin">
21
- <Label text="{i18n>ST_DRAFT_DATALOSS_SAVE_DRAFT_RBL}" design="Bold" />
22
- <Text text="{i18n>ST_DRAFT_DATALOSS_SAVE_DRAFT_TOL}" />
24
+ <Label
25
+ text="{= !%{HasActiveEntity} ? ${sap.fe.i18n>ST_DRAFT_DATALOSS_CREATE_ENTITY_RBL} : ${sap.fe.i18n>ST_DRAFT_DATALOSS_SAVE_DRAFT_RBL} }"
26
+ design="Bold"
27
+ />
28
+ <Text
29
+ text="{= !%{HasActiveEntity} ? ${sap.fe.i18n>ST_DRAFT_DATALOSS_CREATE_ENTITY_TOL} : ${sap.fe.i18n>ST_DRAFT_DATALOSS_SAVE_DRAFT_TOL} }"
30
+ />
23
31
  </VBox>
24
32
  </CustomListItem>
25
33
  <CustomListItem>
@@ -50,8 +50,8 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/Fragment", "sap/ui/core/util/XMLPrep
50
50
  fnOnDataLossCancel();
51
51
  dataLossPopup.close();
52
52
  },
53
- setDataLossPopup: function (dataLossPopup) {
54
- controller.dataLossPopup = dataLossPopup;
53
+ setDataLossPopup: function (inDataLossPopup) {
54
+ controller.dataLossPopup = inDataLossPopup;
55
55
  }
56
56
  };
57
57
  var i18nModel = view.getModel("sap.fe.i18n");
@@ -81,9 +81,11 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/Fragment", "sap/ui/core/util/XMLPrep
81
81
  });
82
82
  }).then(function (popup) {
83
83
  dataLossPopup = popup;
84
+ popup.attachAfterOpen(function () {
85
+ selectAndFocusFirstEntry(dataLossPopup);
86
+ });
84
87
  view.addDependent(dataLossPopup);
85
88
  dataLossPopup.open();
86
- selectAndFocusFirstEntry(dataLossPopup);
87
89
  fragmentController.setDataLossPopup(dataLossPopup);
88
90
  }).catch(function (error) {
89
91
  Log.error("Error while opening the Discard Dialog fragment", error);
@@ -131,7 +133,7 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/Fragment", "sap/ui/core/util/XMLPrep
131
133
  if (controller.isA("sap.fe.templates.ObjectPage.ObjectPageController")) {
132
134
  return controller._saveDocument(context);
133
135
  } else {
134
- controller.editFlow.saveDocument(context);
136
+ return controller.editFlow.saveDocument(context);
135
137
  }
136
138
  }
137
139
 
@@ -154,13 +156,21 @@ sap.ui.define(["sap/base/Log", "sap/ui/core/Fragment", "sap/ui/core/util/XMLPrep
154
156
  // use it here for finding the correct list in the dialog.
155
157
  var dataLossOptionsList = dataLossPopup.getContent().find(function (element) {
156
158
  return element.data("listIdentifier") === "draftDataLossOptionsList";
157
- });
159
+ }); // Preselect the first entry in the list
160
+
158
161
  var firstListItemOption = dataLossOptionsList.getItems()[0];
159
- dataLossOptionsList.setSelectedItem(firstListItemOption);
160
- firstListItemOption.focus();
162
+ dataLossOptionsList.setSelectedItem(firstListItemOption); // By default set the focus on the first button of the dialog
163
+
164
+ dataLossPopup.getButtons()[0].focus();
161
165
  }
162
166
 
163
167
  _exports.selectAndFocusFirstEntry = selectAndFocusFirstEntry;
164
- return _exports;
168
+ return {
169
+ performAfterDiscardorKeepDraft: performAfterDiscardorKeepDraft,
170
+ discardDraft: discardDraft,
171
+ saveDocument: saveDocument,
172
+ getSelectedKey: getSelectedKey,
173
+ selectAndFocusFirstEntry: selectAndFocusFirstEntry
174
+ };
165
175
  }, false);
166
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLnRzIl0sIm5hbWVzIjpbIkRyYWZ0RGF0YUxvc3NPcHRpb25zIiwiZm5PbkRhdGFMb3NzQ29uZmlybWVkIiwiZm5PbkRhdGFMb3NzQ2FuY2VsIiwiZm5EYXRhTG9zc0NvbmZpcm1hdGlvbiIsIm9uRGF0YUxvc3NPayIsIm9uRGF0YUxvc3NDYW5jZWwiLCJjb250cm9sbGVyIiwic2tpcEJpbmRpbmdUb1ZpZXciLCJkYXRhTG9zc1BvcHVwIiwiZnJhZ21lbnROYW1lIiwidmlldyIsImdldFZpZXciLCJmcmFnbWVudENvbnRyb2xsZXIiLCJzZWxlY3RlZEtleSIsImdldFNlbGVjdGVkS2V5IiwiU2F2ZSIsInNhdmVEb2N1bWVudCIsInRoZW4iLCJjYXRjaCIsImVycm9yIiwiTG9nIiwiY2xvc2UiLCJLZWVwIiwiRGlzY2FyZCIsImRpc2NhcmREcmFmdCIsInNldERhdGFMb3NzUG9wdXAiLCJpMThuTW9kZWwiLCJnZXRNb2RlbCIsImxvY2FsVGhpc01vZGVsIiwiSlNPTk1vZGVsIiwicHJlcHJvY2Vzc29yU2V0dGluZ3MiLCJiaW5kaW5nQ29udGV4dHMiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsIm1vZGVscyIsIm9wZW4iLCJzZWxlY3RBbmRGb2N1c0ZpcnN0RW50cnkiLCJkaWFsb2dGcmFnbWVudCIsIlhNTFRlbXBsYXRlUHJvY2Vzc29yIiwibG9hZFRlbXBsYXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJYTUxQcmVwcm9jZXNzb3IiLCJwcm9jZXNzIiwibmFtZSIsImZyYWdtZW50IiwiRnJhZ21lbnQiLCJsb2FkIiwiZGVmaW5pdGlvbiIsInBvcHVwIiwiYWRkRGVwZW5kZW50IiwicGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0IiwicHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc09rIiwicHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc0NhbmNlbCIsInJlamVjdCIsImRhdGFMb3NzUG9wdXBPayIsImNvbnRleHQiLCJyZXR1cm5WYWx1ZSIsImRhdGFMb3NzUG9wdXBDYW5jZWwiLCJnZXRCaW5kaW5nQ29udGV4dCIsInBhcmFtcyIsInNraXBCYWNrTmF2aWdhdGlvbiIsInNraXBEaXNjYXJkUG9wb3ZlciIsInVuZGVmaW5lZCIsImVkaXRGbG93IiwiY2FuY2VsRG9jdW1lbnQiLCJpc0EiLCJfc2F2ZURvY3VtZW50IiwiZGF0YUxvc3NPcHRpb25zTGlzdCIsImdldENvbnRlbnQiLCJmaW5kIiwiZWxlbWVudCIsImRhdGEiLCJnZXRTZWxlY3RlZEl0ZW0iLCJmaXJzdExpc3RJdGVtT3B0aW9uIiwiZ2V0SXRlbXMiLCJzZXRTZWxlY3RlZEl0ZW0iLCJmb2N1cyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O01BT0tBLG9COzthQUFBQSxvQjtBQUFBQSxJQUFBQSxvQjtBQUFBQSxJQUFBQSxvQjtBQUFBQSxJQUFBQSxvQjtLQUFBQSxvQixLQUFBQSxvQjs7QUFNTCxNQUFJQyxxQkFBSjtBQUNBLE1BQUlDLGtCQUFKOztBQUNBLFdBQVNDLHNCQUFULENBQWdDQyxZQUFoQyxFQUFtREMsZ0JBQW5ELEVBQTBFQyxVQUExRSxFQUEyRkMsaUJBQTNGLEVBQW1IO0FBQ2xIO0FBQ0E7QUFDQTtBQUNBLFFBQUlDLGFBQUo7QUFDQVAsSUFBQUEscUJBQXFCLEdBQUdHLFlBQXhCO0FBQ0FGLElBQUFBLGtCQUFrQixHQUFHRyxnQkFBckI7QUFDQSxRQUFNSSxZQUFZLEdBQUcsMkRBQXJCO0FBQ0EsUUFBTUMsSUFBSSxHQUFHSixVQUFVLENBQUNLLE9BQVgsRUFBYjtBQUNBLFFBQU1DLGtCQUF1QixHQUFHO0FBQy9CUixNQUFBQSxZQUFZLEVBQUUsWUFBWTtBQUN6QixZQUFNUyxXQUFXLEdBQUdDLGNBQWMsQ0FBQ04sYUFBRCxDQUFsQzs7QUFDQSxZQUFJSyxXQUFXLEtBQUtiLG9CQUFvQixDQUFDZSxJQUF6QyxFQUErQztBQUM5Q0MsVUFBQUEsWUFBWSxDQUFDVixVQUFELENBQVosQ0FDRVcsSUFERixDQUNP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bXBvcnQgQ3VzdG9tTGlzdEl0ZW0gZnJvbSBcInNhcC9tL0N1c3RvbUxpc3RJdGVtXCI7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBMaXN0IGZyb20gXCJzYXAvbS9MaXN0XCI7XG5pbXBvcnQgRnJhZ21lbnQgZnJvbSBcInNhcC91aS9jb3JlL0ZyYWdtZW50XCI7XG5pbXBvcnQgWE1MUHJlcHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IFhNTFRlbXBsYXRlUHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS9YTUxUZW1wbGF0ZVByb2Nlc3NvclwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5cbmVudW0gRHJhZnREYXRhTG9zc09wdGlvbnMge1xuXHRTYXZlID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uU2F2ZVwiLFxuXHRLZWVwID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uS2VlcFwiLFxuXHREaXNjYXJkID0gXCJkcmFmdERhdGFMb3NzT3B0aW9uRGlzY2FyZFwiXG59XG5cbmxldCBmbk9uRGF0YUxvc3NDb25maXJtZWQ6IEZ1bmN0aW9uO1xubGV0IGZuT25EYXRhTG9zc0NhbmNlbDogRnVuY3Rpb247XG5mdW5jdGlvbiBmbkRhdGFMb3NzQ29uZmlybWF0aW9uKG9uRGF0YUxvc3NPazogYW55LCBvbkRhdGFMb3NzQ2FuY2VsOiBhbnksIGNvbnRyb2xsZXI6IGFueSwgc2tpcEJpbmRpbmdUb1ZpZXc6IGFueSkge1xuXHQvLyBPcGVuIHRoZSBkYXRhIGxvc3MgcG9wdXAgYW5kIGFmdGVyIHByb2Nlc3NpbmcgdGhlIHNlbGVjdGVkIGZ1bmN0aW9uIGZpbmFsbHkgY2FsbFxuXHQvLyBvbkRhdGFMb3NzQ29uZmlybWVkIHdoaWNoIHJlc29sdmVzIHRoZSBwcm9taXNlIGFuZCBsZWFkcyB0byBwcm9jZXNzaW5nIG9mIHRoZSBvcmlnaW5hbGx5XG5cdC8vIHRyaWdnZXJlZCBhY3Rpb24gbGlrZSBlLmcuIGEgYmFjayBuYXZpZ2F0aW9uXG5cdGxldCBkYXRhTG9zc1BvcHVwOiBEaWFsb2c7XG5cdGZuT25EYXRhTG9zc0NvbmZpcm1lZCA9IG9uRGF0YUxvc3NPaztcblx0Zm5PbkRhdGFMb3NzQ2FuY2VsID0gb25EYXRhTG9zc0NhbmNlbDtcblx0Y29uc3QgZnJhZ21lbnROYW1lID0gXCJzYXAuZmUuY29yZS5jb250cm9scy5EYXRhTG9zc09yRHJhZnREaXNjYXJkLkRhdGFMb3NzRHJhZnRcIjtcblx0Y29uc3QgdmlldyA9IGNvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHRjb25zdCBmcmFnbWVudENvbnRyb2xsZXI6IGFueSA9IHtcblx0XHRvbkRhdGFMb3NzT2s6IGZ1bmN0aW9uICgpIHtcblx0XHRcdGNvbnN0IHNlbGVjdGVkS2V5ID0gZ2V0U2VsZWN0ZWRLZXkoZGF0YUxvc3NQb3B1cCk7XG5cdFx0XHRpZiAoc2VsZWN0ZWRLZXkgPT09IERyYWZ0RGF0YUxvc3NPcHRpb25zLlNhdmUpIHtcblx0XHRcdFx0c2F2ZURvY3VtZW50KGNvbnRyb2xsZXIpXG5cdFx0XHRcdFx0LnRoZW4oZm5PbkRhdGFMb3NzQ29uZmlybWVkKVxuXHRcdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgc2F2aW5nIGRvY3VtZW50XCIsIGVycm9yKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0ZGF0YUxvc3NQb3B1cC5jbG9zZSgpO1xuXHRcdFx0fSBlbHNlIGlmIChzZWxlY3RlZEtleSA9PT0gRHJhZnREYXRhTG9zc09wdGlvbnMuS2VlcCkge1xuXHRcdFx0XHRmbk9uRGF0YUxvc3NDb25maXJtZWQoKTtcblx0XHRcdFx0ZGF0YUxvc3NQb3B1cC5jbG9zZSgpO1xuXHRcdFx0fSBlbHNlIGlmIChzZWxlY3RlZEtleSA9PT0gRHJhZnREYXRhTG9zc09wdGlvbnMuRGlzY2FyZCkge1xuXHRcdFx0XHRkaXNjYXJkRHJhZnQoY29udHJvbGxlciwgc2tpcEJpbmRpbmdUb1ZpZXcpXG5cdFx0XHRcdFx0LnRoZW4oZm5PbkRhdGFMb3NzQ29uZmlybWVkKVxuXHRcdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZGlzY2FyZGluZyBkcmFmdFwiLCBlcnJvcik7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdGRhdGFMb3NzUG9wdXAuY2xvc2UoKTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdG9uRGF0YUxvc3NDYW5jZWw6IGZ1bmN0aW9uICgpIHtcblx0XHRcdGZuT25EYXRhTG9zc0NhbmNlbCgpO1xuXHRcdFx0ZGF0YUxvc3NQb3B1cC5jbG9zZSgpO1xuXHRcdH0sXG5cdFx0c2V0RGF0YUxvc3NQb3B1cDogZnVuY3Rpb24gKGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHRcdFx0Y29udHJvbGxlci5kYXRhTG9zc1BvcHVwID0gZGF0YUxvc3NQb3B1cDtcblx0XHR9XG5cdH07XG5cblx0Y29uc3QgaTE4bk1vZGVsID0gdmlldy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpO1xuXHRjb25zdCBsb2NhbFRoaXNNb2RlbCA9IG5ldyBKU09OTW9kZWwoe30pLFxuXHRcdHByZXByb2Nlc3NvclNldHRpbmdzID0ge1xuXHRcdFx0YmluZGluZ0NvbnRleHRzOiB7XG5cdFx0XHRcdFwidGhpc1wiOiBsb2NhbFRoaXNNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIilcblx0XHRcdH0sXG5cdFx0XHRtb2RlbHM6IHtcblx0XHRcdFx0XCJ0aGlzXCI6IGxvY2FsVGhpc01vZGVsLFxuXHRcdFx0XHRcImkxOG5cIjogaTE4bk1vZGVsXG5cdFx0XHR9XG5cdFx0fTtcblxuXHRpZiAoY29udHJvbGxlci5kYXRhTG9zc1BvcHVwKSB7XG5cdFx0ZGF0YUxvc3NQb3B1cCA9IGNvbnRyb2xsZXIuZGF0YUxvc3NQb3B1cDtcblx0XHRkYXRhTG9zc1BvcHVwLm9wZW4oKTtcblx0XHRzZWxlY3RBbmRGb2N1c0ZpcnN0RW50cnkoZGF0YUxvc3NQb3B1cCk7XG5cdH0gZWxzZSB7XG5cdFx0Y29uc3QgZGlhbG9nRnJhZ21lbnQgPSBYTUxUZW1wbGF0ZVByb2Nlc3Nvci5sb2FkVGVtcGxhdGUoZnJhZ21lbnROYW1lLCBcImZyYWdtZW50XCIpO1xuXHRcdFByb21pc2UucmVzb2x2ZShYTUxQcmVwcm9jZXNzb3IucHJvY2VzcyhkaWFsb2dGcmFnbWVudCwgeyBuYW1lOiBmcmFnbWVudE5hbWUgfSwgcHJlcHJvY2Vzc29yU2V0dGluZ3MpKVxuXHRcdFx0LnRoZW4oKGZyYWdtZW50KSA9PiB7XG5cdFx0XHRcdHJldHVybiBGcmFnbWVudC5sb2FkKHsgZGVmaW5pdGlvbjogZnJhZ21lbnQsIGNvbnRyb2xsZXI6IGZyYWdtZW50Q29udHJvbGxlciB9KTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigocG9wdXA6IGFueSkgPT4ge1xuXHRcdFx0XHRkYXRhTG9zc1BvcHVwID0gcG9wdXA7XG5cdFx0XHRcdHZpZXcuYWRkRGVwZW5kZW50KGRhdGFMb3NzUG9wdXApO1xuXHRcdFx0XHRkYXRhTG9zc1BvcHVwLm9wZW4oKTtcblx0XHRcdFx0c2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5KGRhdGFMb3NzUG9wdXApO1xuXHRcdFx0XHRmcmFnbWVudENvbnRyb2xsZXIuc2V0RGF0YUxvc3NQb3B1cChkYXRhTG9zc1BvcHVwKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgb3BlbmluZyB0aGUgRGlzY2FyZCBEaWFsb2cgZnJhZ21lbnRcIiwgZXJyb3IpO1xuXHRcdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdChcblx0cHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc09rOiBhbnksXG5cdHByb2Nlc3NGdW5jdGlvbk9uRGF0YWxvc3NDYW5jZWw6IGFueSxcblx0Y29udHJvbGxlcjogYW55LFxuXHRza2lwQmluZGluZ1RvVmlldzogYW55XG4pIHtcblx0Ly8gRGVwZW5kaW5nIG9uIGlmIHRoZSB1c2VyIGNsb3NlZCB0aGUgZGF0YSBsb3NzIHBvcHVwIHdpdGggT2sgb3IgQ2FuY2VsLFxuXHQvLyBleGVjdXRlIHRoZSBwcm92aWRlZCBmb2xsb3ctdXAgZnVuY3Rpb24gYW5kIHJlc29sdmUgb3IgcmVqZWN0IHRoZSBwcm9taXNlXG5cdHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQsIHJlamVjdDogKHJlYXNvbj86IGFueSkgPT4gdm9pZCkge1xuXHRcdGNvbnN0IGRhdGFMb3NzUG9wdXBPayA9IGZ1bmN0aW9uIChjb250ZXh0OiBhbnkpIHtcblx0XHRcdGNvbnN0IHJldHVyblZhbHVlID0gcHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc09rKGNvbnRleHQpO1xuXHRcdFx0cmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG5cdFx0fTtcblx0XHRjb25zdCBkYXRhTG9zc1BvcHVwQ2FuY2VsID0gZnVuY3Rpb24gKCkge1xuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc0NhbmNlbCgpO1xuXHRcdFx0cmVqZWN0KCk7XG5cdFx0fTtcblx0XHRmbkRhdGFMb3NzQ29uZmlybWF0aW9uKGRhdGFMb3NzUG9wdXBPaywgZGF0YUxvc3NQb3B1cENhbmNlbCwgY29udHJvbGxlciwgc2tpcEJpbmRpbmdUb1ZpZXcpO1xuXHR9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc2NhcmREcmFmdChjb250cm9sbGVyOiBhbnksIHNraXBCaW5kaW5nVG9WaWV3OiBhbnkpIHtcblx0Y29uc3QgY29udGV4dCA9IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdGNvbnN0IHBhcmFtcyA9IHtcblx0XHRza2lwQmFja05hdmlnYXRpb246IHRydWUsXG5cdFx0c2tpcERpc2NhcmRQb3BvdmVyOiB0cnVlLFxuXHRcdHNraXBCaW5kaW5nVG9WaWV3OiBza2lwQmluZGluZ1RvVmlldyAhPT0gdW5kZWZpbmVkID8gc2tpcEJpbmRpbmdUb1ZpZXcgOiB0cnVlXG5cdH07XG5cdHJldHVybiBjb250cm9sbGVyLmVkaXRGbG93LmNhbmNlbERvY3VtZW50KGNvbnRleHQsIHBhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlRG9jdW1lbnQoY29udHJvbGxlcjogYW55KSB7XG5cdGNvbnN0IGNvbnRleHQgPSBjb250cm9sbGVyLmdldFZpZXcoKS5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHQvLyBXZSBjaGVjayBpZiB3ZSBhcmUgb24gdGhlIE9QIGFuZCB0aGVuIGNhbGwgdGhlIGludGVybmFsIF9zYXZlRG9jdW1lbnQgZnJvbSB0aGUgT1AgY29udHJvbGxlclxuXHQvLyBzaW5jZSBoZXJlIHNvbWUgc3BlY2lhbCBoYW5kbGluZyBpcyBkb25lIGZvciBjcmVhdGlvblJvdyBiZWZvcmUgZWRpdEZsb3cuc2F2ZURvY3VtZW50IGlzIGNhbGxlZC5cblx0Ly8gSW4gY2FzZSBvZiBhIGN1c3RvbSBjb250cm9sbGVyIHdlIGRpcmVjdGx5IGNhbGwgc2F2ZURvY3VtZW50IGZyb20gdGhlIGVkaXRGbG93XG5cdGlmIChjb250cm9sbGVyLmlzQShcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5PYmplY3RQYWdlQ29udHJvbGxlclwiKSkge1xuXHRcdHJldHVybiBjb250cm9sbGVyLl9zYXZlRG9jdW1lbnQoY29udGV4dCk7XG5cdH0gZWxzZSB7XG5cdFx0Y29udHJvbGxlci5lZGl0Rmxvdy5zYXZlRG9jdW1lbnQoY29udGV4dCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGVkS2V5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZyBhbmQgZm9yXG5cdC8vIGRldGVybWluaW5nIHRoZSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgbGlzdFxuXHRjb25zdCBkYXRhTG9zc09wdGlvbnNMaXN0OiBMaXN0ID0gZGF0YUxvc3NQb3B1cFxuXHRcdC5nZXRDb250ZW50KClcblx0XHQuZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5kYXRhKFwibGlzdElkZW50aWZpZXJcIikgPT09IFwiZHJhZnREYXRhTG9zc09wdGlvbnNMaXN0XCIpIGFzIExpc3Q7XG5cdHJldHVybiBkYXRhTG9zc09wdGlvbnNMaXN0LmdldFNlbGVjdGVkSXRlbSgpLmRhdGEoXCJpdGVtS2V5XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZy5cblx0Y29uc3QgZGF0YUxvc3NPcHRpb25zTGlzdDogTGlzdCA9IGRhdGFMb3NzUG9wdXBcblx0XHQuZ2V0Q29udGVudCgpXG5cdFx0LmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuZGF0YShcImxpc3RJZGVudGlmaWVyXCIpID09PSBcImRyYWZ0RGF0YUxvc3NPcHRpb25zTGlzdFwiKSBhcyBMaXN0O1xuXHRjb25zdCBmaXJzdExpc3RJdGVtT3B0aW9uOiBDdXN0b21MaXN0SXRlbSA9IGRhdGFMb3NzT3B0aW9uc0xpc3QuZ2V0SXRlbXMoKVswXSBhcyBDdXN0b21MaXN0SXRlbTtcblx0ZGF0YUxvc3NPcHRpb25zTGlzdC5zZXRTZWxlY3RlZEl0ZW0oZmlyc3RMaXN0SXRlbU9wdGlvbik7XG5cdGZpcnN0TGlzdEl0ZW1PcHRpb24uZm9jdXMoKTtcbn1cbiJdfQ==
176
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLnRzIl0sIm5hbWVzIjpbIkRyYWZ0RGF0YUxvc3NPcHRpb25zIiwiZm5PbkRhdGFMb3NzQ29uZmlybWVkIiwiZm5PbkRhdGFMb3NzQ2FuY2VsIiwiZm5EYXRhTG9zc0NvbmZpcm1hdGlvbiIsIm9uRGF0YUxvc3NPayIsIm9uRGF0YUxvc3NDYW5jZWwiLCJjb250cm9sbGVyIiwic2tpcEJpbmRpbmdUb1ZpZXciLCJkYXRhTG9zc1BvcHVwIiwiZnJhZ21lbnROYW1lIiwidmlldyIsImdldFZpZXciLCJmcmFnbWVudENvbnRyb2xsZXIiLCJzZWxlY3RlZEtleSIsImdldFNlbGVjdGVkS2V5IiwiU2F2ZSIsInNhdmVEb2N1bWVudCIsInRoZW4iLCJjYXRjaCIsImVycm9yIiwiTG9nIiwiY2xvc2UiLCJLZWVwIiwiRGlzY2FyZCIsImRpc2NhcmREcmFmdCIsInNldERhdGFMb3NzUG9wdXAiLCJpbkRhdGFMb3NzUG9wdXAiLCJpMThuTW9kZWwiLCJnZXRNb2RlbCIsImxvY2FsVGhpc01vZGVsIiwiSlNPTk1vZGVsIiwicHJlcHJvY2Vzc29yU2V0dGluZ3MiLCJiaW5kaW5nQ29udGV4dHMiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsIm1vZGVscyIsIm9wZW4iLCJzZWxlY3RBbmRGb2N1c0ZpcnN0RW50cnkiLCJkaWFsb2dGcmFnbWVudCIsIlhNTFRlbXBsYXRlUHJvY2Vzc29yIiwibG9hZFRlbXBsYXRlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJYTUxQcmVwcm9jZXNzb3IiLCJwcm9jZXNzIiwibmFtZSIsImZyYWdtZW50IiwiRnJhZ21lbnQiLCJsb2FkIiwiZGVmaW5pdGlvbiIsInBvcHVwIiwiYXR0YWNoQWZ0ZXJPcGVuIiwiYWRkRGVwZW5kZW50IiwicGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0IiwicHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc09rIiwicHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc0NhbmNlbCIsInJlamVjdCIsImRhdGFMb3NzUG9wdXBPayIsImNvbnRleHQiLCJyZXR1cm5WYWx1ZSIsImRhdGFMb3NzUG9wdXBDYW5jZWwiLCJnZXRCaW5kaW5nQ29udGV4dCIsInBhcmFtcyIsInNraXBCYWNrTmF2aWdhdGlvbiIsInNraXBEaXNjYXJkUG9wb3ZlciIsInVuZGVmaW5lZCIsImVkaXRGbG93IiwiY2FuY2VsRG9jdW1lbnQiLCJpc0EiLCJfc2F2ZURvY3VtZW50IiwiZGF0YUxvc3NPcHRpb25zTGlzdCIsImdldENvbnRlbnQiLCJmaW5kIiwiZWxlbWVudCIsImRhdGEiLCJnZXRTZWxlY3RlZEl0ZW0iLCJmaXJzdExpc3RJdGVtT3B0aW9uIiwiZ2V0SXRlbXMiLCJzZXRTZWxlY3RlZEl0ZW0iLCJnZXRCdXR0b25zIiwiZm9jdXMiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztNQU9LQSxvQjs7YUFBQUEsb0I7QUFBQUEsSUFBQUEsb0I7QUFBQUEsSUFBQUEsb0I7QUFBQUEsSUFBQUEsb0I7S0FBQUEsb0IsS0FBQUEsb0I7O0FBTUwsTUFBSUMscUJBQUo7QUFDQSxNQUFJQyxrQkFBSjs7QUFDQSxXQUFTQyxzQkFBVCxDQUFnQ0MsWUFBaEMsRUFBbURDLGdCQUFuRCxFQUEwRUMsVUFBMUUsRUFBMkZDLGlCQUEzRixFQUFtSDtBQUNsSDtBQUNBO0FBQ0E7QUFDQSxRQUFJQyxhQUFKO0FBQ0FQLElBQUFBLHFCQUFxQixHQUFHRyxZQUF4QjtBQUNBRixJQUFBQSxrQkFBa0IsR0FBR0csZ0JBQXJCO0FBQ0EsUUFBTUksWUFBWSxHQUFHLDJEQUFyQjtBQUNBLFFBQU1DLElBQUksR0FBR0osVUFBVSxDQUFDSyxPQUFYLEVBQWI7QUFDQSxRQUFNQyxrQkFBdUIsR0FBRztBQUMvQlIsTUFBQUEsWUFBWSxFQUFFLFlBQVk7QUFDekIsWUFBTVMsV0FBVyxHQUFHQyxjQUFjLENBQUNOLGFBQUQsQ0FBbEM7O0FBQ0EsWUFBSUssV0FBVyxLQUFLYixvQkFBb0IsQ0FBQ2UsSUFBekMsRUFBK0M7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RixtQkFBcEMsRUFSK0QsQ0FTL0Q7O0FBQ0FuRSxJQUFBQSxhQUFhLENBQUNzRSxVQUFkLEdBQTJCLENBQTNCLEVBQThCQyxLQUE5QjtBQUNBOzs7U0FFYztBQUFFM0IsSUFBQUEsOEJBQThCLEVBQTlCQSw4QkFBRjtBQUFrQzVCLElBQUFBLFlBQVksRUFBWkEsWUFBbEM7QUFBZ0RSLElBQUFBLFlBQVksRUFBWkEsWUFBaEQ7QUFBOERGLElBQUFBLGNBQWMsRUFBZEEsY0FBOUQ7QUFBOEVzQixJQUFBQSx3QkFBd0IsRUFBeEJBO0FBQTlFLEciLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgQ3VzdG9tTGlzdEl0ZW0gZnJvbSBcInNhcC9tL0N1c3RvbUxpc3RJdGVtXCI7XG5pbXBvcnQgdHlwZSBEaWFsb2cgZnJvbSBcInNhcC9tL0RpYWxvZ1wiO1xuaW1wb3J0IHR5cGUgTGlzdCBmcm9tIFwic2FwL20vTGlzdFwiO1xuaW1wb3J0IEZyYWdtZW50IGZyb20gXCJzYXAvdWkvY29yZS9GcmFnbWVudFwiO1xuaW1wb3J0IFhNTFByZXByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvdXRpbC9YTUxQcmVwcm9jZXNzb3JcIjtcbmltcG9ydCBYTUxUZW1wbGF0ZVByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvWE1MVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG5lbnVtIERyYWZ0RGF0YUxvc3NPcHRpb25zIHtcblx0U2F2ZSA9IFwiZHJhZnREYXRhTG9zc09wdGlvblNhdmVcIixcblx0S2VlcCA9IFwiZHJhZnREYXRhTG9zc09wdGlvbktlZXBcIixcblx0RGlzY2FyZCA9IFwiZHJhZnREYXRhTG9zc09wdGlvbkRpc2NhcmRcIlxufVxuXG5sZXQgZm5PbkRhdGFMb3NzQ29uZmlybWVkOiBGdW5jdGlvbjtcbmxldCBmbk9uRGF0YUxvc3NDYW5jZWw6IEZ1bmN0aW9uO1xuZnVuY3Rpb24gZm5EYXRhTG9zc0NvbmZpcm1hdGlvbihvbkRhdGFMb3NzT2s6IGFueSwgb25EYXRhTG9zc0NhbmNlbDogYW55LCBjb250cm9sbGVyOiBhbnksIHNraXBCaW5kaW5nVG9WaWV3OiBhbnkpIHtcblx0Ly8gT3BlbiB0aGUgZGF0YSBsb3NzIHBvcHVwIGFuZCBhZnRlciBwcm9jZXNzaW5nIHRoZSBzZWxlY3RlZCBmdW5jdGlvbiBmaW5hbGx5IGNhbGxcblx0Ly8gb25EYXRhTG9zc0NvbmZpcm1lZCB3aGljaCByZXNvbHZlcyB0aGUgcHJvbWlzZSBhbmQgbGVhZHMgdG8gcHJvY2Vzc2luZyBvZiB0aGUgb3JpZ2luYWxseVxuXHQvLyB0cmlnZ2VyZWQgYWN0aW9uIGxpa2UgZS5nLiBhIGJhY2sgbmF2aWdhdGlvblxuXHRsZXQgZGF0YUxvc3NQb3B1cDogRGlhbG9nO1xuXHRmbk9uRGF0YUxvc3NDb25maXJtZWQgPSBvbkRhdGFMb3NzT2s7XG5cdGZuT25EYXRhTG9zc0NhbmNlbCA9IG9uRGF0YUxvc3NDYW5jZWw7XG5cdGNvbnN0IGZyYWdtZW50TmFtZSA9IFwic2FwLmZlLmNvcmUuY29udHJvbHMuRGF0YUxvc3NPckRyYWZ0RGlzY2FyZC5EYXRhTG9zc0RyYWZ0XCI7XG5cdGNvbnN0IHZpZXcgPSBjb250cm9sbGVyLmdldFZpZXcoKTtcblx0Y29uc3QgZnJhZ21lbnRDb250cm9sbGVyOiBhbnkgPSB7XG5cdFx0b25EYXRhTG9zc09rOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRjb25zdCBzZWxlY3RlZEtleSA9IGdldFNlbGVjdGVkS2V5KGRhdGFMb3NzUG9wdXApO1xuXHRcdFx0aWYgKHNlbGVjdGVkS2V5ID09PSBEcmFmdERhdGFMb3NzT3B0aW9ucy5TYXZlKSB7XG5cdFx0XHRcdHNhdmVEb2N1bWVudChjb250cm9sbGVyKVxuXHRcdFx0XHRcdC50aGVuKGZuT25EYXRhTG9zc0NvbmZpcm1lZClcblx0XHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIHNhdmluZyBkb2N1bWVudFwiLCBlcnJvcik7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdGRhdGFMb3NzUG9wdXAuY2xvc2UoKTtcblx0XHRcdH0gZWxzZSBpZiAoc2VsZWN0ZWRLZXkgPT09IERyYWZ0RGF0YUxvc3NPcHRpb25zLktlZXApIHtcblx0XHRcdFx0Zm5PbkRhdGFMb3NzQ29uZmlybWVkKCk7XG5cdFx0XHRcdGRhdGFMb3NzUG9wdXAuY2xvc2UoKTtcblx0XHRcdH0gZWxzZSBpZiAoc2VsZWN0ZWRLZXkgPT09IERyYWZ0RGF0YUxvc3NPcHRpb25zLkRpc2NhcmQpIHtcblx0XHRcdFx0ZGlzY2FyZERyYWZ0KGNvbnRyb2xsZXIsIHNraXBCaW5kaW5nVG9WaWV3KVxuXHRcdFx0XHRcdC50aGVuKGZuT25EYXRhTG9zc0NvbmZpcm1lZClcblx0XHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGRpc2NhcmRpbmcgZHJhZnRcIiwgZXJyb3IpO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRkYXRhTG9zc1BvcHVwLmNsb3NlKCk7XG5cdFx0XHR9XG5cdFx0fSxcblx0XHRvbkRhdGFMb3NzQ2FuY2VsOiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRmbk9uRGF0YUxvc3NDYW5jZWwoKTtcblx0XHRcdGRhdGFMb3NzUG9wdXAuY2xvc2UoKTtcblx0XHR9LFxuXHRcdHNldERhdGFMb3NzUG9wdXA6IGZ1bmN0aW9uIChpbkRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHRcdFx0Y29udHJvbGxlci5kYXRhTG9zc1BvcHVwID0gaW5EYXRhTG9zc1BvcHVwO1xuXHRcdH1cblx0fTtcblxuXHRjb25zdCBpMThuTW9kZWwgPSB2aWV3LmdldE1vZGVsKFwic2FwLmZlLmkxOG5cIik7XG5cdGNvbnN0IGxvY2FsVGhpc01vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSksXG5cdFx0cHJlcHJvY2Vzc29yU2V0dGluZ3MgPSB7XG5cdFx0XHRiaW5kaW5nQ29udGV4dHM6IHtcblx0XHRcdFx0XCJ0aGlzXCI6IGxvY2FsVGhpc01vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKVxuXHRcdFx0fSxcblx0XHRcdG1vZGVsczoge1xuXHRcdFx0XHRcInRoaXNcIjogbG9jYWxUaGlzTW9kZWwsXG5cdFx0XHRcdFwiaTE4blwiOiBpMThuTW9kZWxcblx0XHRcdH1cblx0XHR9O1xuXG5cdGlmIChjb250cm9sbGVyLmRhdGFMb3NzUG9wdXApIHtcblx0XHRkYXRhTG9zc1BvcHVwID0gY29udHJvbGxlci5kYXRhTG9zc1BvcHVwO1xuXHRcdGRhdGFMb3NzUG9wdXAub3BlbigpO1xuXHRcdHNlbGVjdEFuZEZvY3VzRmlyc3RFbnRyeShkYXRhTG9zc1BvcHVwKTtcblx0fSBlbHNlIHtcblx0XHRjb25zdCBkaWFsb2dGcmFnbWVudCA9IFhNTFRlbXBsYXRlUHJvY2Vzc29yLmxvYWRUZW1wbGF0ZShmcmFnbWVudE5hbWUsIFwiZnJhZ21lbnRcIik7XG5cdFx0UHJvbWlzZS5yZXNvbHZlKFhNTFByZXByb2Nlc3Nvci5wcm9jZXNzKGRpYWxvZ0ZyYWdtZW50LCB7IG5hbWU6IGZyYWdtZW50TmFtZSB9LCBwcmVwcm9jZXNzb3JTZXR0aW5ncykpXG5cdFx0XHQudGhlbigoZnJhZ21lbnQpID0+IHtcblx0XHRcdFx0cmV0dXJuIEZyYWdtZW50LmxvYWQoeyBkZWZpbml0aW9uOiBmcmFnbWVudCwgY29udHJvbGxlcjogZnJhZ21lbnRDb250cm9sbGVyIH0pO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChwb3B1cDogYW55KSA9PiB7XG5cdFx0XHRcdGRhdGFMb3NzUG9wdXAgPSBwb3B1cDtcblx0XHRcdFx0cG9wdXAuYXR0YWNoQWZ0ZXJPcGVuKCgpID0+IHtcblx0XHRcdFx0XHRzZWxlY3RBbmRGb2N1c0ZpcnN0RW50cnkoZGF0YUxvc3NQb3B1cCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHR2aWV3LmFkZERlcGVuZGVudChkYXRhTG9zc1BvcHVwKTtcblx0XHRcdFx0ZGF0YUxvc3NQb3B1cC5vcGVuKCk7XG5cdFx0XHRcdGZyYWdtZW50Q29udHJvbGxlci5zZXREYXRhTG9zc1BvcHVwKGRhdGFMb3NzUG9wdXApO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBvcGVuaW5nIHRoZSBEaXNjYXJkIERpYWxvZyBmcmFnbWVudFwiLCBlcnJvcik7XG5cdFx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KFxuXHRwcm9jZXNzRnVuY3Rpb25PbkRhdGFsb3NzT2s6IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uT25EYXRhbG9zc0NhbmNlbDogYW55LFxuXHRjb250cm9sbGVyOiBhbnksXG5cdHNraXBCaW5kaW5nVG9WaWV3OiBhbnlcbikge1xuXHQvLyBEZXBlbmRpbmcgb24gaWYgdGhlIHVzZXIgY2xvc2VkIHRoZSBkYXRhIGxvc3MgcG9wdXAgd2l0aCBPayBvciBDYW5jZWwsXG5cdC8vIGV4ZWN1dGUgdGhlIHByb3ZpZGVkIGZvbGxvdy11cCBmdW5jdGlvbiBhbmQgcmVzb2x2ZSBvciByZWplY3QgdGhlIHByb21pc2Vcblx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlOiAodmFsdWU6IGFueSkgPT4gdm9pZCwgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkKSB7XG5cdFx0Y29uc3QgZGF0YUxvc3NQb3B1cE9rID0gZnVuY3Rpb24gKGNvbnRleHQ6IGFueSkge1xuXHRcdFx0Y29uc3QgcmV0dXJuVmFsdWUgPSBwcm9jZXNzRnVuY3Rpb25PbkRhdGFsb3NzT2soY29udGV4dCk7XG5cdFx0XHRyZXNvbHZlKHJldHVyblZhbHVlKTtcblx0XHR9O1xuXHRcdGNvbnN0IGRhdGFMb3NzUG9wdXBDYW5jZWwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25PbkRhdGFsb3NzQ2FuY2VsKCk7XG5cdFx0XHRyZWplY3QoKTtcblx0XHR9O1xuXHRcdGZuRGF0YUxvc3NDb25maXJtYXRpb24oZGF0YUxvc3NQb3B1cE9rLCBkYXRhTG9zc1BvcHVwQ2FuY2VsLCBjb250cm9sbGVyLCBza2lwQmluZGluZ1RvVmlldyk7XG5cdH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzY2FyZERyYWZ0KGNvbnRyb2xsZXI6IGFueSwgc2tpcEJpbmRpbmdUb1ZpZXc6IGFueSkge1xuXHRjb25zdCBjb250ZXh0ID0gY29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0Y29uc3QgcGFyYW1zID0ge1xuXHRcdHNraXBCYWNrTmF2aWdhdGlvbjogdHJ1ZSxcblx0XHRza2lwRGlzY2FyZFBvcG92ZXI6IHRydWUsXG5cdFx0c2tpcEJpbmRpbmdUb1ZpZXc6IHNraXBCaW5kaW5nVG9WaWV3ICE9PSB1bmRlZmluZWQgPyBza2lwQmluZGluZ1RvVmlldyA6IHRydWVcblx0fTtcblx0cmV0dXJuIGNvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQoY29udGV4dCwgcGFyYW1zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVEb2N1bWVudChjb250cm9sbGVyOiBhbnkpIHtcblx0Y29uc3QgY29udGV4dCA9IGNvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KCk7XG5cdC8vIFdlIGNoZWNrIGlmIHdlIGFyZSBvbiB0aGUgT1AgYW5kIHRoZW4gY2FsbCB0aGUgaW50ZXJuYWwgX3NhdmVEb2N1bWVudCBmcm9tIHRoZSBPUCBjb250cm9sbGVyXG5cdC8vIHNpbmNlIGhlcmUgc29tZSBzcGVjaWFsIGhhbmRsaW5nIGlzIGRvbmUgZm9yIGNyZWF0aW9uUm93IGJlZm9yZSBlZGl0Rmxvdy5zYXZlRG9jdW1lbnQgaXMgY2FsbGVkLlxuXHQvLyBJbiBjYXNlIG9mIGEgY3VzdG9tIGNvbnRyb2xsZXIgd2UgZGlyZWN0bHkgY2FsbCBzYXZlRG9jdW1lbnQgZnJvbSB0aGUgZWRpdEZsb3dcblx0aWYgKGNvbnRyb2xsZXIuaXNBKFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLk9iamVjdFBhZ2VDb250cm9sbGVyXCIpKSB7XG5cdFx0cmV0dXJuIGNvbnRyb2xsZXIuX3NhdmVEb2N1bWVudChjb250ZXh0KTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gY29udHJvbGxlci5lZGl0Rmxvdy5zYXZlRG9jdW1lbnQoY29udGV4dCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGVkS2V5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZyBhbmQgZm9yXG5cdC8vIGRldGVybWluaW5nIHRoZSBzZWxlY3RlZCBvcHRpb24gZnJvbSB0aGUgbGlzdFxuXHRjb25zdCBkYXRhTG9zc09wdGlvbnNMaXN0OiBMaXN0ID0gZGF0YUxvc3NQb3B1cFxuXHRcdC5nZXRDb250ZW50KClcblx0XHQuZmluZCgoZWxlbWVudCkgPT4gZWxlbWVudC5kYXRhKFwibGlzdElkZW50aWZpZXJcIikgPT09IFwiZHJhZnREYXRhTG9zc09wdGlvbnNMaXN0XCIpIGFzIExpc3Q7XG5cdHJldHVybiBkYXRhTG9zc09wdGlvbnNMaXN0LmdldFNlbGVjdGVkSXRlbSgpLmRhdGEoXCJpdGVtS2V5XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VsZWN0QW5kRm9jdXNGaXJzdEVudHJ5KGRhdGFMb3NzUG9wdXA6IERpYWxvZykge1xuXHQvLyBGb3Igbm90IHVzaW5nIGNvbnRyb2wgSURzIHdlIGludHJvZHVjZWQgY3VzdG9tRGF0YSBpbiB0aGUgZnJhZ21lbnQgYW5kXG5cdC8vIHVzZSBpdCBoZXJlIGZvciBmaW5kaW5nIHRoZSBjb3JyZWN0IGxpc3QgaW4gdGhlIGRpYWxvZy5cblx0Y29uc3QgZGF0YUxvc3NPcHRpb25zTGlzdDogTGlzdCA9IGRhdGFMb3NzUG9wdXBcblx0XHQuZ2V0Q29udGVudCgpXG5cdFx0LmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQuZGF0YShcImxpc3RJZGVudGlmaWVyXCIpID09PSBcImRyYWZ0RGF0YUxvc3NPcHRpb25zTGlzdFwiKSBhcyBMaXN0O1xuXHQvLyBQcmVzZWxlY3QgdGhlIGZpcnN0IGVudHJ5IGluIHRoZSBsaXN0XG5cdGNvbnN0IGZpcnN0TGlzdEl0ZW1PcHRpb246IEN1c3RvbUxpc3RJdGVtID0gZGF0YUxvc3NPcHRpb25zTGlzdC5nZXRJdGVtcygpWzBdIGFzIEN1c3RvbUxpc3RJdGVtO1xuXHRkYXRhTG9zc09wdGlvbnNMaXN0LnNldFNlbGVjdGVkSXRlbShmaXJzdExpc3RJdGVtT3B0aW9uKTtcblx0Ly8gQnkgZGVmYXVsdCBzZXQgdGhlIGZvY3VzIG9uIHRoZSBmaXJzdCBidXR0b24gb2YgdGhlIGRpYWxvZ1xuXHRkYXRhTG9zc1BvcHVwLmdldEJ1dHRvbnMoKVswXS5mb2N1cygpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7IHBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdCwgZGlzY2FyZERyYWZ0LCBzYXZlRG9jdW1lbnQsIGdldFNlbGVjdGVkS2V5LCBzZWxlY3RBbmRGb2N1c0ZpcnN0RW50cnkgfTtcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import Log from "sap/base/Log";
2
- import CustomListItem from "sap/m/CustomListItem";
3
- import Dialog from "sap/m/Dialog";
4
- import List from "sap/m/List";
2
+ import type CustomListItem from "sap/m/CustomListItem";
3
+ import type Dialog from "sap/m/Dialog";
4
+ import type List from "sap/m/List";
5
5
  import Fragment from "sap/ui/core/Fragment";
6
6
  import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
7
7
  import XMLTemplateProcessor from "sap/ui/core/XMLTemplateProcessor";
@@ -50,8 +50,8 @@ function fnDataLossConfirmation(onDataLossOk: any, onDataLossCancel: any, contro
50
50
  fnOnDataLossCancel();
51
51
  dataLossPopup.close();
52
52
  },
53
- setDataLossPopup: function (dataLossPopup: Dialog) {
54
- controller.dataLossPopup = dataLossPopup;
53
+ setDataLossPopup: function (inDataLossPopup: Dialog) {
54
+ controller.dataLossPopup = inDataLossPopup;
55
55
  }
56
56
  };
57
57
 
@@ -79,9 +79,11 @@ function fnDataLossConfirmation(onDataLossOk: any, onDataLossCancel: any, contro
79
79
  })
80
80
  .then((popup: any) => {
81
81
  dataLossPopup = popup;
82
+ popup.attachAfterOpen(() => {
83
+ selectAndFocusFirstEntry(dataLossPopup);
84
+ });
82
85
  view.addDependent(dataLossPopup);
83
86
  dataLossPopup.open();
84
- selectAndFocusFirstEntry(dataLossPopup);
85
87
  fragmentController.setDataLossPopup(dataLossPopup);
86
88
  })
87
89
  .catch(function (error: any) {
@@ -129,7 +131,7 @@ export function saveDocument(controller: any) {
129
131
  if (controller.isA("sap.fe.templates.ObjectPage.ObjectPageController")) {
130
132
  return controller._saveDocument(context);
131
133
  } else {
132
- controller.editFlow.saveDocument(context);
134
+ return controller.editFlow.saveDocument(context);
133
135
  }
134
136
  }
135
137
 
@@ -149,7 +151,11 @@ export function selectAndFocusFirstEntry(dataLossPopup: Dialog) {
149
151
  const dataLossOptionsList: List = dataLossPopup
150
152
  .getContent()
151
153
  .find((element) => element.data("listIdentifier") === "draftDataLossOptionsList") as List;
154
+ // Preselect the first entry in the list
152
155
  const firstListItemOption: CustomListItem = dataLossOptionsList.getItems()[0] as CustomListItem;
153
156
  dataLossOptionsList.setSelectedItem(firstListItemOption);
154
- firstListItemOption.focus();
157
+ // By default set the focus on the first button of the dialog
158
+ dataLossPopup.getButtons()[0].focus();
155
159
  }
160
+
161
+ export default { performAfterDiscardorKeepDraft, discardDraft, saveDocument, getSelectedKey, selectAndFocusFirstEntry };
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/ui/core/Control", "sap/fe/core/helpers/ClassSupport"], function (Control, ClassSupport) {
5
+ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/ui/core/Control"], function (ClassSupport, Control) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;
@@ -212,4 +212,4 @@ sap.ui.define(["sap/ui/core/Control", "sap/fe/core/helpers/ClassSupport"], funct
212
212
  })), _class2)) || _class);
213
213
  return FieldWrapper;
214
214
  }, false);
215
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkV3JhcHBlci50cyJdLCJuYW1lcyI6WyJGaWVsZFdyYXBwZXIiLCJkZWZpbmVVSTVDbGFzcyIsImltcGxlbWVudEludGVyZmFjZSIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImFzc29jaWF0aW9uIiwibXVsdGlwbGUiLCJzaW5ndWxhck5hbWUiLCJhZ2dyZWdhdGlvbiIsImlzRGVmYXVsdCIsImVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUiLCJvRWxlbWVudCIsIm1BcmlhUHJvcHMiLCJvUGFyZW50IiwiZ2V0UGFyZW50IiwiZ2V0QWNjZXNzaWJpbGl0eUluZm8iLCJvQ29udGVudCIsImVkaXRNb2RlIiwiY29udGVudERpc3BsYXkiLCJjb250ZW50RWRpdCIsImxlbmd0aCIsIl9zZXRBcmlhTGFiZWxsZWRCeSIsImFkZEFyaWFMYWJlbGxlZEJ5IiwiYUFyaWFMYWJlbGxlZEJ5IiwiYXJpYUxhYmVsbGVkQnkiLCJpIiwic0lkIiwiYUFyaWFMYWJlbGxlZEJ5cyIsImdldEFyaWFMYWJlbGxlZEJ5IiwiaW5kZXhPZiIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiYUNvbnRlbnRFZGl0IiwicmVuZGVyIiwib1JtIiwib0NvbnRyb2wiLCJvcGVuU3RhcnQiLCJzdHlsZSIsInRleHRBbGlnbiIsIndpZHRoIiwib3BlbkVuZCIsInJlbmRlckNvbnRyb2wiLCJjbG9zZSIsIkNvbnRyb2wiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUlNQSxZLFdBRExDLGNBQWMsQ0FBQyxtQ0FBRCxDLFVBRWJDLGtCQUFrQixDQUFDLDBCQUFELEMsVUFHbEJDLFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUU7QUFBUixHQUFELEMsVUFHUkQsUUFBUSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRSxxQkFBUjtBQUErQkMsSUFBQUEsWUFBWSxFQUFFO0FBQTdDLEdBQUQsQyxVQUdSRixRQUFRLENBQUM7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bCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgQ1NTU2l6ZSwgSUZvcm1Db250ZW50LCBUZXh0QWxpZ24gfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmllbGRXcmFwcGVyXCIpXG5jbGFzcyBGaWVsZFdyYXBwZXIgZXh0ZW5kcyBDb250cm9sIGltcGxlbWVudHMgSUZvcm1Db250ZW50IHtcblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC51aS5jb3JlLklGb3JtQ29udGVudFwiKVxuXHRfX2ltcGxlbWVudHNfX3NhcF91aV9jb3JlX0lGb3JtQ29udGVudDogYm9vbGVhbiA9IHRydWU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5UZXh0QWxpZ25cIiB9KVxuXHR0ZXh0QWxpZ24hOiBUZXh0QWxpZ247XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5DU1NTaXplXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHR3aWR0aCE6IENTU1NpemU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0Zm9ybURvTm90QWRqdXN0V2lkdGghOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogXCJEaXNwbGF5XCIgfSlcblx0ZWRpdE1vZGUhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0cmVxdWlyZWQhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBBc3NvY2lhdGlvbiB0byBjb250cm9scyAvIElEcyB0aGF0IGxhYmVsIHRoaXMgY29udHJvbCAoc2VlIFdBSS1BUklBIGF0dHJpYnV0ZSBhcmlhLWxhYmVsbGVkYnkpLlxuXHQgKi9cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlLCBzaW5ndWxhck5hbWU6IFwiYXJpYUxhYmVsbGVkQnlcIiB9KVxuXHRhcmlhTGFiZWxsZWRCeSE6IENvbnRyb2xbXTtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudERpc3BsYXkhOiBDb250cm9sO1xuXG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSB9KVxuXHRjb250ZW50RWRpdCE6IENvbnRyb2xbXTtcblxuXHRlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKG9FbGVtZW50OiBhbnksIG1BcmlhUHJvcHM6IGFueSkge1xuXHRcdGNvbnN0IG9QYXJlbnQgPSB0aGlzLmdldFBhcmVudCgpIGFzIGFueTtcblxuXHRcdGlmIChvUGFyZW50ICYmIG9QYXJlbnQuZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSkge1xuXHRcdFx0Ly8gdXNlIEZpZWxkV3JhcHBlciBhcyBjb250cm9sLCBidXQgYXJpYSBwcm9wZXJ0aWVzIG9mIHJlbmRlcmVkIGlubmVyIGNvbnRyb2wuXG5cdFx0XHRvUGFyZW50LmVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUodGhpcywgbUFyaWFQcm9wcyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1BcmlhUHJvcHM7XG5cdH1cblx0Z2V0QWNjZXNzaWJpbGl0eUluZm8oKSB7XG5cdFx0bGV0IG9Db250ZW50O1xuXHRcdGlmICh0aGlzLmVkaXRNb2RlID09PSBcIkRpc3BsYXlcIikge1xuXHRcdFx0b0NvbnRlbnQgPSB0aGlzLmNvbnRlbnREaXNwbGF5O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvQ29udGVudCA9IHRoaXMuY29udGVudEVkaXQubGVuZ3RoID8gdGhpcy5jb250ZW50RWRpdFswXSA6IG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiBvQ29udGVudCAmJiBvQ29udGVudC5nZXRBY2Nlc3NpYmlsaXR5SW5mbyA/IG9Db250ZW50LmdldEFjY2Vzc2liaWxpdHlJbmZvKCkgOiB7fTtcblx0fVxuXG5cdF9zZXRBcmlhTGFiZWxsZWRCeShvQ29udGVudDogYW55KSB7XG5cdFx0aWYgKG9Db250ZW50ICYmIG9Db250ZW50LmFkZEFyaWFMYWJlbGxlZEJ5KSB7XG5cdFx0XHRjb25zdCBhQXJpYUxhYmVsbGVkQnkgPSB0aGlzLmFyaWFMYWJlbGxlZEJ5O1xuXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFBcmlhTGFiZWxsZWRCeS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBzSWQgPSBhQXJpYUxhYmVsbGVkQnlbaV07XG5cdFx0XHRcdGNvbnN0IGFBcmlhTGFiZWxsZWRCeXMgPSBvQ29udGVudC5nZXRBcmlhTGFiZWxsZWRCeSgpIHx8IFtdO1xuXHRcdFx0XHRpZiAoYUFyaWFMYWJlbGxlZEJ5cy5pbmRleE9mKHNJZCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0b0NvbnRlbnQuYWRkQXJpYUxhYmVsbGVkQnkoc0lkKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRvbkJlZm9yZVJlbmRlcmluZygpIHtcblx0XHQvLyBiZWZvcmUgY2FsbGluZyB0aGUgcmVuZGVyZXIgb2YgdGhlIEZpZWxkV3JhcHBlciBwYXJlbnQgY29udHJvbCBtYXkgaGF2ZSBzZXQgYXJpYUxhYmVsbGVkQnlcblx0XHQvLyB3ZSBlbnN1cmUgaXQgaXMgcGFzc2VkIHRvIGl0cyBpbm5lciBjb250cm9sc1xuXHRcdHRoaXMuX3NldEFyaWFMYWJlbGxlZEJ5KHRoaXMuY29udGVudERpc3BsYXkpO1xuXHRcdGNvbnN0IGFDb250ZW50RWRpdCA9IHRoaXMuY29udGVudEVkaXQ7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhQ29udGVudEVkaXQubGVuZ3RoOyBpKyspIHtcblx0XHRcdHRoaXMuX3NldEFyaWFMYWJlbGxlZEJ5KGFDb250ZW50RWRpdFtpXSk7XG5cdFx0fVxuXHR9XG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogRmllbGRXcmFwcGVyKSB7XG5cdFx0b1JtLm9wZW5TdGFydChcImRpdlwiLCBvQ29udHJvbCk7XG5cdFx0b1JtLnN0eWxlKFwidGV4dC1hbGlnblwiLCBvQ29udHJvbC50ZXh0QWxpZ24pO1xuXHRcdGlmIChvQ29udHJvbC5lZGl0TW9kZSA9PT0gXCJEaXNwbGF5XCIpIHtcblx0XHRcdG9SbS5zdHlsZShcIndpZHRoXCIsIG9Db250cm9sLndpZHRoKTtcblx0XHRcdG9SbS5vcGVuRW5kKCk7XG5cdFx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50RGlzcGxheSk7IC8vIHJlbmRlciB0aGUgY2hpbGQgQ29udHJvbCBmb3IgZGlzcGxheVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBhQ29udGVudEVkaXQgPSBvQ29udHJvbC5jb250ZW50RWRpdDtcblxuXHRcdFx0Ly8gaWYgKGFDb250ZW50RWRpdC5sZW5ndGggPiAxKSB7XG5cdFx0XHQvLyBcdG9SbS5jbGFzcyhcInNhcFVpTWRjRmllbGRCYXNlTW9yZUZpZWxkc1wiKTtcblx0XHRcdC8vIH1cblx0XHRcdG9SbS5zdHlsZShcIndpZHRoXCIsIG9Db250cm9sLndpZHRoKTtcblx0XHRcdG9SbS5vcGVuRW5kKCk7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFDb250ZW50RWRpdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBvQ29udGVudCA9IGFDb250ZW50RWRpdFtpXTsgLy8gcmVuZGVyIHRoZSBjaGlsZCBDb250cm9sICBmb3IgZWRpdFxuXHRcdFx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udGVudCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdG9SbS5jbG9zZShcImRpdlwiKTsgLy8gZW5kIG9mIHRoZSBjb21wbGV0ZSBDb250cm9sXG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRmllbGRXcmFwcGVyO1xuIl19
215
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkV3JhcHBlci50cyJdLCJuYW1lcyI6WyJGaWVsZFdyYXBwZXIiLCJkZWZpbmVVSTVDbGFzcyIsImltcGxlbWVudEludGVyZmFjZSIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImFzc29jaWF0aW9uIiwibXVsdGlwbGUiLCJzaW5ndWxhck5hbWUiLCJhZ2dyZWdhdGlvbiIsImlzRGVmYXVsdCIsImVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUiLCJvRWxlbWVudCIsIm1BcmlhUHJvcHMiLCJvUGFyZW50IiwiZ2V0UGFyZW50IiwiZ2V0QWNjZXNzaWJpbGl0eUluZm8iLCJvQ29udGVudCIsImVkaXRNb2RlIiwiY29udGVudERpc3BsYXkiLCJjb250ZW50RWRpdCIsImxlbmd0aCIsIl9zZXRBcmlhTGFiZWxsZWRCeSIsImFkZEFyaWFMYWJlbGxlZEJ5IiwiYUFyaWFMYWJlbGxlZEJ5IiwiYXJpYUxhYmVsbGVkQnkiLCJpIiwic0lkIiwiYUFyaWFMYWJlbGxlZEJ5cyIsImdldEFyaWFMYWJlbGxlZEJ5IiwiaW5kZXhPZiIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiYUNvbnRlbnRFZGl0IiwicmVuZGVyIiwib1JtIiwib0NvbnRyb2wiLCJvcGVuU3RhcnQiLCJzdHlsZSIsInRleHRBbGlnbiIsIndpZHRoIiwib3BlbkVuZCIsInJlbmRlckNvbnRyb2wiLCJjbG9zZSIsIkNvbnRyb2wiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUlNQSxZLFdBRExDLGNBQWMsQ0FBQyxtQ0FBRCxDLFVBRWJDLGtCQUFrQixDQUFDLDBCQUFELEMsVUFHbEJDLFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUU7QUFBUixHQUFELEMsVUFHUkQsUUFBUSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRSxxQkFBUjtBQUErQkMsSUFBQUEsWUFBWSxFQUFFO0FBQTdDLEdBQUQsQyxVQUdSRixRQUFRLENBQUM7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ZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBpbXBsZW1lbnRJbnRlcmZhY2UsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyBDU1NTaXplLCBJRm9ybUNvbnRlbnQsIFRleHRBbGlnbiB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkZpZWxkV3JhcHBlclwiKVxuY2xhc3MgRmllbGRXcmFwcGVyIGV4dGVuZHMgQ29udHJvbCBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JRm9ybUNvbnRlbnQ6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic2FwLnVpLmNvcmUuVGV4dEFsaWduXCIgfSlcblx0dGV4dEFsaWduITogVGV4dEFsaWduO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ1NTU2l6ZVwiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0d2lkdGghOiBDU1NTaXplO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGZvcm1Eb05vdEFkanVzdFdpZHRoITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCBkZWZhdWx0VmFsdWU6IFwiRGlzcGxheVwiIH0pXG5cdGVkaXRNb2RlITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdHJlcXVpcmVkITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQXNzb2NpYXRpb24gdG8gY29udHJvbHMgLyBJRHMgdGhhdCBsYWJlbCB0aGlzIGNvbnRyb2wgKHNlZSBXQUktQVJJQSBhdHRyaWJ1dGUgYXJpYS1sYWJlbGxlZGJ5KS5cblx0ICovXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSwgc2luZ3VsYXJOYW1lOiBcImFyaWFMYWJlbGxlZEJ5XCIgfSlcblx0YXJpYUxhYmVsbGVkQnkhOiBDb250cm9sW107XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiBmYWxzZSwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGNvbnRlbnREaXNwbGF5ITogQ29udHJvbDtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUgfSlcblx0Y29udGVudEVkaXQhOiBDb250cm9sW107XG5cblx0ZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZShvRWxlbWVudDogYW55LCBtQXJpYVByb3BzOiBhbnkpIHtcblx0XHRjb25zdCBvUGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoKSBhcyBhbnk7XG5cblx0XHRpZiAob1BhcmVudCAmJiBvUGFyZW50LmVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUpIHtcblx0XHRcdC8vIHVzZSBGaWVsZFdyYXBwZXIgYXMgY29udHJvbCwgYnV0IGFyaWEgcHJvcGVydGllcyBvZiByZW5kZXJlZCBpbm5lciBjb250cm9sLlxuXHRcdFx0b1BhcmVudC5lbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKHRoaXMsIG1BcmlhUHJvcHMpO1xuXHRcdH1cblxuXHRcdHJldHVybiBtQXJpYVByb3BzO1xuXHR9XG5cdGdldEFjY2Vzc2liaWxpdHlJbmZvKCkge1xuXHRcdGxldCBvQ29udGVudDtcblx0XHRpZiAodGhpcy5lZGl0TW9kZSA9PT0gXCJEaXNwbGF5XCIpIHtcblx0XHRcdG9Db250ZW50ID0gdGhpcy5jb250ZW50RGlzcGxheTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0NvbnRlbnQgPSB0aGlzLmNvbnRlbnRFZGl0Lmxlbmd0aCA/IHRoaXMuY29udGVudEVkaXRbMF0gOiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gb0NvbnRlbnQgJiYgb0NvbnRlbnQuZ2V0QWNjZXNzaWJpbGl0eUluZm8gPyBvQ29udGVudC5nZXRBY2Nlc3NpYmlsaXR5SW5mbygpIDoge307XG5cdH1cblxuXHRfc2V0QXJpYUxhYmVsbGVkQnkob0NvbnRlbnQ6IGFueSkge1xuXHRcdGlmIChvQ29udGVudCAmJiBvQ29udGVudC5hZGRBcmlhTGFiZWxsZWRCeSkge1xuXHRcdFx0Y29uc3QgYUFyaWFMYWJlbGxlZEJ5ID0gdGhpcy5hcmlhTGFiZWxsZWRCeTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhQXJpYUxhYmVsbGVkQnkubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qgc0lkID0gYUFyaWFMYWJlbGxlZEJ5W2ldO1xuXHRcdFx0XHRjb25zdCBhQXJpYUxhYmVsbGVkQnlzID0gb0NvbnRlbnQuZ2V0QXJpYUxhYmVsbGVkQnkoKSB8fCBbXTtcblx0XHRcdFx0aWYgKGFBcmlhTGFiZWxsZWRCeXMuaW5kZXhPZihzSWQpID09PSAtMSkge1xuXHRcdFx0XHRcdG9Db250ZW50LmFkZEFyaWFMYWJlbGxlZEJ5KHNJZCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0b25CZWZvcmVSZW5kZXJpbmcoKSB7XG5cdFx0Ly8gYmVmb3JlIGNhbGxpbmcgdGhlIHJlbmRlcmVyIG9mIHRoZSBGaWVsZFdyYXBwZXIgcGFyZW50IGNvbnRyb2wgbWF5IGhhdmUgc2V0IGFyaWFMYWJlbGxlZEJ5XG5cdFx0Ly8gd2UgZW5zdXJlIGl0IGlzIHBhc3NlZCB0byBpdHMgaW5uZXIgY29udHJvbHNcblx0XHR0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSh0aGlzLmNvbnRlbnREaXNwbGF5KTtcblx0XHRjb25zdCBhQ29udGVudEVkaXQgPSB0aGlzLmNvbnRlbnRFZGl0O1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUNvbnRlbnRFZGl0Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeShhQ29udGVudEVkaXRbaV0pO1xuXHRcdH1cblx0fVxuXHRzdGF0aWMgcmVuZGVyKG9SbTogUmVuZGVyTWFuYWdlciwgb0NvbnRyb2w6IEZpZWxkV3JhcHBlcikge1xuXHRcdG9SbS5vcGVuU3RhcnQoXCJkaXZcIiwgb0NvbnRyb2wpO1xuXHRcdG9SbS5zdHlsZShcInRleHQtYWxpZ25cIiwgb0NvbnRyb2wudGV4dEFsaWduKTtcblx0XHRpZiAob0NvbnRyb2wuZWRpdE1vZGUgPT09IFwiRGlzcGxheVwiKSB7XG5cdFx0XHRvUm0uc3R5bGUoXCJ3aWR0aFwiLCBvQ29udHJvbC53aWR0aCk7XG5cdFx0XHRvUm0ub3BlbkVuZCgpO1xuXHRcdFx0b1JtLnJlbmRlckNvbnRyb2wob0NvbnRyb2wuY29udGVudERpc3BsYXkpOyAvLyByZW5kZXIgdGhlIGNoaWxkIENvbnRyb2wgZm9yIGRpc3BsYXlcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgYUNvbnRlbnRFZGl0ID0gb0NvbnRyb2wuY29udGVudEVkaXQ7XG5cblx0XHRcdC8vIGlmIChhQ29udGVudEVkaXQubGVuZ3RoID4gMSkge1xuXHRcdFx0Ly8gXHRvUm0uY2xhc3MoXCJzYXBVaU1kY0ZpZWxkQmFzZU1vcmVGaWVsZHNcIik7XG5cdFx0XHQvLyB9XG5cdFx0XHRvUm0uc3R5bGUoXCJ3aWR0aFwiLCBvQ29udHJvbC53aWR0aCk7XG5cdFx0XHRvUm0ub3BlbkVuZCgpO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhQ29udGVudEVkaXQubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRlbnQgPSBhQ29udGVudEVkaXRbaV07IC8vIHJlbmRlciB0aGUgY2hpbGQgQ29udHJvbCAgZm9yIGVkaXRcblx0XHRcdFx0b1JtLnJlbmRlckNvbnRyb2wob0NvbnRlbnQpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRvUm0uY2xvc2UoXCJkaXZcIik7IC8vIGVuZCBvZiB0aGUgY29tcGxldGUgQ29udHJvbFxuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZpZWxkV3JhcHBlcjtcbiJdfQ==
@@ -1,7 +1,7 @@
1
- import Control from "sap/ui/core/Control";
2
1
  import { aggregation, association, defineUI5Class, implementInterface, property } from "sap/fe/core/helpers/ClassSupport";
3
- import { CSSSize, IFormContent, TextAlign } from "sap/ui/core/library";
4
- import RenderManager from "sap/ui/core/RenderManager";
2
+ import Control from "sap/ui/core/Control";
3
+ import type { CSSSize, IFormContent, TextAlign } from "sap/ui/core/library";
4
+ import type RenderManager from "sap/ui/core/RenderManager";
5
5
 
6
6
  @defineUI5Class("sap.fe.core.controls.FieldWrapper")
7
7
  class FieldWrapper extends Control implements IFormContent {