@sapui5/sap.fe.core 1.110.0 → 1.111.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 (654) hide show
  1. package/README.md +0 -4
  2. package/package.json +2 -23
  3. package/src/sap/fe/core/.library +1 -1
  4. package/src/sap/fe/core/ActionRuntime-dbg.js +182 -0
  5. package/src/sap/fe/core/ActionRuntime.js +3 -181
  6. package/src/sap/fe/core/ActionRuntime.js.map +1 -0
  7. package/src/sap/fe/core/ActionRuntime.ts +3 -5
  8. package/src/sap/fe/core/AppComponent-dbg.js +435 -0
  9. package/src/sap/fe/core/AppComponent.js +3 -439
  10. package/src/sap/fe/core/AppComponent.js.map +1 -0
  11. package/src/sap/fe/core/AppComponent.ts +0 -3
  12. package/src/sap/fe/core/AppStateHandler-dbg.js +200 -0
  13. package/src/sap/fe/core/AppStateHandler.js +3 -227
  14. package/src/sap/fe/core/AppStateHandler.js.map +1 -0
  15. package/src/sap/fe/core/BaseController-dbg.js +76 -0
  16. package/src/sap/fe/core/BaseController.js +3 -73
  17. package/src/sap/fe/core/BaseController.js.map +1 -0
  18. package/src/sap/fe/core/CommonUtils-dbg.js +2135 -0
  19. package/src/sap/fe/core/CommonUtils.js +3 -2296
  20. package/src/sap/fe/core/CommonUtils.js.map +1 -0
  21. package/src/sap/fe/core/CommonUtils.ts +34 -28
  22. package/src/sap/fe/core/ExtensionAPI-dbg.js +273 -0
  23. package/src/sap/fe/core/ExtensionAPI.js +3 -280
  24. package/src/sap/fe/core/ExtensionAPI.js.map +1 -0
  25. package/src/sap/fe/core/PageController-dbg.js +203 -0
  26. package/src/sap/fe/core/PageController.js +3 -200
  27. package/src/sap/fe/core/PageController.js.map +1 -0
  28. package/src/sap/fe/core/TemplateComponent-dbg.js +218 -0
  29. package/src/sap/fe/core/TemplateComponent.js +3 -216
  30. package/src/sap/fe/core/TemplateComponent.js.map +1 -0
  31. package/src/sap/fe/core/TemplateModel-dbg.js +75 -0
  32. package/src/sap/fe/core/TemplateModel.js +3 -72
  33. package/src/sap/fe/core/TemplateModel.js.map +1 -0
  34. package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +57 -0
  35. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +3 -54
  36. package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -0
  37. package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +410 -0
  38. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +11 -355
  39. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +1 -0
  40. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +118 -52
  41. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter-dbg.js +14 -0
  42. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +3 -11
  43. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js.map +1 -0
  44. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +44 -0
  45. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +3 -40
  46. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +1 -0
  47. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +3 -0
  48. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +932 -0
  49. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +16 -1292
  50. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +1 -0
  51. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +40 -42
  52. package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +434 -0
  53. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +3 -481
  54. package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -0
  55. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -5
  56. package/src/sap/fe/core/controllerextensions/BusyLocker-dbg.js +92 -0
  57. package/src/sap/fe/core/controllerextensions/BusyLocker.js +3 -89
  58. package/src/sap/fe/core/controllerextensions/BusyLocker.js.map +1 -0
  59. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1659 -0
  60. package/src/sap/fe/core/controllerextensions/EditFlow.js +3 -1868
  61. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -0
  62. package/src/sap/fe/core/controllerextensions/EditFlow.ts +180 -125
  63. package/src/sap/fe/core/controllerextensions/Feedback-dbg.js +70 -0
  64. package/src/sap/fe/core/controllerextensions/Feedback.js +3 -67
  65. package/src/sap/fe/core/controllerextensions/Feedback.js.map +1 -0
  66. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +83 -0
  67. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +3 -84
  68. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js.map +1 -0
  69. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -8
  70. package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +711 -0
  71. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +3 -707
  72. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +1 -0
  73. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +79 -48
  74. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +791 -0
  75. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +3 -696
  76. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -0
  77. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +107 -7
  78. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +984 -0
  79. package/src/sap/fe/core/controllerextensions/InternalRouting.js +3 -996
  80. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -0
  81. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +43 -23
  82. package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1013 -0
  83. package/src/sap/fe/core/controllerextensions/KPIManagement.js +3 -1011
  84. package/src/sap/fe/core/controllerextensions/KPIManagement.js.map +1 -0
  85. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -10
  86. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +135 -0
  87. package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -133
  88. package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -0
  89. package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
  90. package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +221 -0
  91. package/src/sap/fe/core/controllerextensions/MessageHandler.js +3 -224
  92. package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -0
  93. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +254 -0
  94. package/src/sap/fe/core/controllerextensions/PageReady.js +3 -279
  95. package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -0
  96. package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -2
  97. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +169 -0
  98. package/src/sap/fe/core/controllerextensions/Paginator.js +3 -174
  99. package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -0
  100. package/src/sap/fe/core/controllerextensions/Paginator.ts +4 -5
  101. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +132 -0
  102. package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -130
  103. package/src/sap/fe/core/controllerextensions/Placeholder.js.map +1 -0
  104. package/src/sap/fe/core/controllerextensions/Routing-dbg.js +138 -0
  105. package/src/sap/fe/core/controllerextensions/Routing.js +3 -135
  106. package/src/sap/fe/core/controllerextensions/Routing.js.map +1 -0
  107. package/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +10 -0
  108. package/src/sap/fe/core/controllerextensions/RoutingListener.js +3 -7
  109. package/src/sap/fe/core/controllerextensions/RoutingListener.js.map +1 -0
  110. package/src/sap/fe/core/controllerextensions/Share-dbg.js +317 -0
  111. package/src/sap/fe/core/controllerextensions/Share.js +3 -356
  112. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -0
  113. package/src/sap/fe/core/controllerextensions/Share.ts +6 -1
  114. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +553 -0
  115. package/src/sap/fe/core/controllerextensions/SideEffects.js +3 -651
  116. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -0
  117. package/src/sap/fe/core/controllerextensions/SideEffects.ts +411 -553
  118. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +903 -0
  119. package/src/sap/fe/core/controllerextensions/ViewState.js +3 -967
  120. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -0
  121. package/src/sap/fe/core/controllerextensions/ViewState.ts +90 -41
  122. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +99 -0
  123. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +3 -96
  124. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -0
  125. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +314 -0
  126. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +3 -336
  127. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -0
  128. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +152 -0
  129. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +3 -161
  130. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -0
  131. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +243 -0
  132. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +3 -302
  133. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -0
  134. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +252 -0
  135. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +6 -0
  136. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -0
  137. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +188 -0
  138. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +1196 -0
  139. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +3 -1479
  140. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -0
  141. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +239 -289
  142. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +689 -0
  143. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -785
  144. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -0
  145. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +134 -142
  146. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +236 -0
  147. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +3 -287
  148. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -0
  149. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +1422 -0
  150. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +3 -1598
  151. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -0
  152. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +40 -24
  153. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +185 -0
  154. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +3 -214
  155. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -0
  156. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +4 -5
  157. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +1219 -0
  158. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -1213
  159. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -0
  160. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +304 -0
  161. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +3 -339
  162. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -0
  163. package/src/sap/fe/core/controllerextensions/routing/NavigationReason-dbg.js +15 -0
  164. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +6 -0
  165. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js.map +1 -0
  166. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.ts +6 -0
  167. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +798 -0
  168. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +3 -799
  169. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -0
  170. package/src/sap/fe/core/controls/Any-dbg.js +32 -0
  171. package/src/sap/fe/core/controls/Any.js +3 -29
  172. package/src/sap/fe/core/controls/Any.js.map +1 -0
  173. package/src/sap/fe/core/controls/AnyElement-dbg.js +29 -0
  174. package/src/sap/fe/core/controls/AnyElement.js +3 -26
  175. package/src/sap/fe/core/controls/AnyElement.js.map +1 -0
  176. package/src/sap/fe/core/controls/CommandExecution-dbg.js +72 -0
  177. package/src/sap/fe/core/controls/CommandExecution.js +3 -69
  178. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -0
  179. package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +151 -0
  180. package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -148
  181. package/src/sap/fe/core/controls/ConditionalWrapper.js.map +1 -0
  182. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +330 -0
  183. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +3 -328
  184. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +1 -0
  185. package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +126 -0
  186. package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -124
  187. package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +1 -0
  188. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +170 -0
  189. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -171
  190. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -0
  191. package/src/sap/fe/core/controls/FieldWrapper-dbg.js +194 -0
  192. package/src/sap/fe/core/controls/FieldWrapper.js +3 -191
  193. package/src/sap/fe/core/controls/FieldWrapper.js.map +1 -0
  194. package/src/sap/fe/core/controls/FileWrapper-dbg.js +280 -0
  195. package/src/sap/fe/core/controls/FileWrapper.js +3 -277
  196. package/src/sap/fe/core/controls/FileWrapper.js.map +1 -0
  197. package/src/sap/fe/core/controls/FilterBar-dbg.js +167 -0
  198. package/src/sap/fe/core/controls/FilterBar.js +3 -166
  199. package/src/sap/fe/core/controls/FilterBar.js.map +1 -0
  200. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +92 -0
  201. package/src/sap/fe/core/controls/FormElementWrapper.js +3 -89
  202. package/src/sap/fe/core/controls/FormElementWrapper.js.map +1 -0
  203. package/src/sap/fe/core/controls/MassEditSelect-dbg.js +33 -0
  204. package/src/sap/fe/core/controls/MassEditSelect.js +3 -30
  205. package/src/sap/fe/core/controls/MassEditSelect.js.map +1 -0
  206. package/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +37 -0
  207. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -34
  208. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js.map +1 -0
  209. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +119 -0
  210. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +3 -121
  211. package/src/sap/fe/core/controls/filterbar/FilterContainer.js.map +1 -0
  212. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +267 -0
  213. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +3 -264
  214. package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -0
  215. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +150 -0
  216. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -150
  217. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js.map +1 -0
  218. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +310 -0
  219. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -307
  220. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -0
  221. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +1 -1
  222. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +491 -0
  223. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +3 -504
  224. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -0
  225. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +2 -2
  226. package/src/sap/fe/core/converters/ConverterContext-dbg.js +403 -0
  227. package/src/sap/fe/core/converters/ConverterContext.js +3 -406
  228. package/src/sap/fe/core/converters/ConverterContext.js.map +1 -0
  229. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +88 -0
  230. package/src/sap/fe/core/converters/ManifestSettings.js +3 -84
  231. package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -0
  232. package/src/sap/fe/core/converters/ManifestSettings.ts +3 -1
  233. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +402 -0
  234. package/src/sap/fe/core/converters/ManifestWrapper.js +3 -406
  235. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -0
  236. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +1161 -0
  237. package/src/sap/fe/core/converters/MetaModelConverter.js +3 -1225
  238. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -0
  239. package/src/sap/fe/core/converters/MetaModelConverter.ts +193 -199
  240. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +89 -0
  241. package/src/sap/fe/core/converters/TemplateConverter.js +3 -86
  242. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -0
  243. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +396 -0
  244. package/src/sap/fe/core/converters/annotations/DataField.js +3 -394
  245. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -0
  246. package/src/sap/fe/core/converters/annotations/DataField.ts +5 -5
  247. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1948 -0
  248. package/src/sap/fe/core/converters/common/AnnotationConverter.js +3 -1868
  249. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -0
  250. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +424 -0
  251. package/src/sap/fe/core/converters/controls/Common/Action.js +3 -446
  252. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -0
  253. package/src/sap/fe/core/converters/controls/Common/Action.ts +31 -14
  254. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +276 -0
  255. package/src/sap/fe/core/converters/controls/Common/Chart.js +3 -260
  256. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -0
  257. package/src/sap/fe/core/converters/controls/Common/Chart.ts +52 -7
  258. package/src/sap/fe/core/converters/controls/Common/Criticality-dbg.js +42 -0
  259. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -39
  260. package/src/sap/fe/core/converters/controls/Common/Criticality.js.map +1 -0
  261. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +247 -0
  262. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -242
  263. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -0
  264. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +1 -1
  265. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +229 -0
  266. package/src/sap/fe/core/converters/controls/Common/Form.js +3 -234
  267. package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -0
  268. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +374 -0
  269. package/src/sap/fe/core/converters/controls/Common/KPI.js +3 -371
  270. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -0
  271. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +2596 -0
  272. package/src/sap/fe/core/converters/controls/Common/Table.js +3 -2527
  273. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -0
  274. package/src/sap/fe/core/converters/controls/Common/Table.ts +214 -77
  275. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +522 -0
  276. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +3 -527
  277. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -0
  278. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +51 -50
  279. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +786 -0
  280. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +3 -845
  281. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -0
  282. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +0 -64
  283. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +291 -0
  284. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +3 -316
  285. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -0
  286. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +30 -12
  287. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +56 -0
  288. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +3 -53
  289. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js.map +1 -0
  290. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +438 -0
  291. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -431
  292. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -0
  293. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +597 -0
  294. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +3 -630
  295. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -0
  296. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +1 -1
  297. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +204 -0
  298. package/src/sap/fe/core/converters/helpers/Aggregation.js +3 -204
  299. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -0
  300. package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +100 -0
  301. package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -99
  302. package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -0
  303. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +199 -0
  304. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +3 -199
  305. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -0
  306. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +143 -0
  307. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +3 -140
  308. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js.map +1 -0
  309. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +2 -1
  310. package/src/sap/fe/core/converters/helpers/ID-dbg.js +92 -0
  311. package/src/sap/fe/core/converters/helpers/ID.js +3 -89
  312. package/src/sap/fe/core/converters/helpers/ID.js.map +1 -0
  313. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +62 -0
  314. package/src/sap/fe/core/converters/helpers/IssueManager.js +3 -59
  315. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -0
  316. package/src/sap/fe/core/converters/helpers/Key-dbg.js +62 -0
  317. package/src/sap/fe/core/converters/helpers/Key.js +3 -59
  318. package/src/sap/fe/core/converters/helpers/Key.js.map +1 -0
  319. package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  320. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper-dbg.js +80 -0
  321. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +3 -77
  322. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js.map +1 -0
  323. package/src/sap/fe/core/converters/objectPage/FormMenuActions-dbg.js +142 -0
  324. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +3 -139
  325. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js.map +1 -0
  326. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +406 -0
  327. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +3 -422
  328. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -0
  329. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +132 -111
  330. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +557 -0
  331. package/src/sap/fe/core/converters/templates/ListReportConverter.js +3 -589
  332. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -0
  333. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +474 -0
  334. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +3 -477
  335. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -0
  336. package/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +103 -0
  337. package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -100
  338. package/src/sap/fe/core/designtime/AppComponent.designtime.js.map +1 -0
  339. package/src/sap/fe/core/designtime/library-preload.designtime.js +7 -0
  340. package/src/sap/fe/core/designtime/library-preload.designtime.js.map +1 -0
  341. package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +95 -0
  342. package/src/sap/fe/core/formatters/CollaborationFormatter.js +3 -92
  343. package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -0
  344. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +46 -0
  345. package/src/sap/fe/core/formatters/FPMFormatter.js +3 -44
  346. package/src/sap/fe/core/formatters/FPMFormatter.js.map +1 -0
  347. package/src/sap/fe/core/formatters/FPMFormatter.ts +3 -2
  348. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +343 -0
  349. package/src/sap/fe/core/formatters/FiscalFormat.js +6 -0
  350. package/src/sap/fe/core/formatters/FiscalFormat.js.map +1 -0
  351. package/src/sap/fe/core/formatters/FiscalFormat.ts +319 -0
  352. package/src/sap/fe/core/formatters/KPIFormatter-dbg.js +86 -0
  353. package/src/sap/fe/core/formatters/KPIFormatter.js +3 -83
  354. package/src/sap/fe/core/formatters/KPIFormatter.js.map +1 -0
  355. package/src/sap/fe/core/formatters/StandardFormatter-dbg.js +80 -0
  356. package/src/sap/fe/core/formatters/StandardFormatter.js +3 -78
  357. package/src/sap/fe/core/formatters/StandardFormatter.js.map +1 -0
  358. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +276 -0
  359. package/src/sap/fe/core/formatters/TableFormatter.js +3 -275
  360. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -0
  361. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
  362. package/src/sap/fe/core/formatters/TableFormatterTypes-dbg.js +20 -0
  363. package/src/sap/fe/core/formatters/TableFormatterTypes.js +3 -17
  364. package/src/sap/fe/core/formatters/TableFormatterTypes.js.map +1 -0
  365. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +172 -0
  366. package/src/sap/fe/core/formatters/ValueFormatter.js +3 -161
  367. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -0
  368. package/src/sap/fe/core/formatters/ValueFormatter.ts +25 -8
  369. package/src/sap/fe/core/fpm/Component-dbg.js +94 -0
  370. package/src/sap/fe/core/fpm/Component.js +3 -91
  371. package/src/sap/fe/core/fpm/Component.js.map +1 -0
  372. package/src/sap/fe/core/fpm/manifest.json +1 -1
  373. package/src/sap/fe/core/helpers/AnnotationEnum-dbg.js +30 -0
  374. package/src/sap/fe/core/helpers/AnnotationEnum.js +3 -36
  375. package/src/sap/fe/core/helpers/AnnotationEnum.js.map +1 -0
  376. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +334 -0
  377. package/src/sap/fe/core/helpers/AppStartupHelper.js +3 -335
  378. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -0
  379. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +1739 -0
  380. package/src/sap/fe/core/helpers/BindingToolkit.js +3 -1611
  381. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -0
  382. package/src/sap/fe/core/helpers/BindingToolkit.ts +277 -97
  383. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +421 -0
  384. package/src/sap/fe/core/helpers/ClassSupport.js +3 -420
  385. package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -0
  386. package/src/sap/fe/core/helpers/ClassSupport.ts +13 -15
  387. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +526 -0
  388. package/src/sap/fe/core/helpers/DeleteHelper.js +3 -618
  389. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -0
  390. package/src/sap/fe/core/helpers/DeleteHelper.ts +116 -134
  391. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +55 -0
  392. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +3 -52
  393. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js.map +1 -0
  394. package/src/sap/fe/core/helpers/EditState-dbg.js +80 -0
  395. package/src/sap/fe/core/helpers/EditState.js +3 -77
  396. package/src/sap/fe/core/helpers/EditState.js.map +1 -0
  397. package/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +55 -0
  398. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +3 -52
  399. package/src/sap/fe/core/helpers/ExcelFormatHelper.js.map +1 -0
  400. package/src/sap/fe/core/helpers/FPMHelper-dbg.js +55 -0
  401. package/src/sap/fe/core/helpers/FPMHelper.js +3 -52
  402. package/src/sap/fe/core/helpers/FPMHelper.js.map +1 -0
  403. package/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +180 -0
  404. package/src/sap/fe/core/helpers/KeepAliveHelper.js +3 -177
  405. package/src/sap/fe/core/helpers/KeepAliveHelper.js.map +1 -0
  406. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +28 -0
  407. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +3 -25
  408. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js.map +1 -0
  409. package/src/sap/fe/core/helpers/LoaderUtils-dbg.js +29 -0
  410. package/src/sap/fe/core/helpers/LoaderUtils.js +3 -30
  411. package/src/sap/fe/core/helpers/LoaderUtils.js.map +1 -0
  412. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +1229 -0
  413. package/src/sap/fe/core/helpers/MassEditHelper.js +3 -1309
  414. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -0
  415. package/src/sap/fe/core/helpers/MassEditHelper.ts +6 -6
  416. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +65 -0
  417. package/src/sap/fe/core/helpers/MessageStrip.js +3 -62
  418. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -0
  419. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +489 -0
  420. package/src/sap/fe/core/helpers/ModelHelper.js +3 -503
  421. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -0
  422. package/src/sap/fe/core/helpers/ModelHelper.ts +13 -36
  423. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +174 -0
  424. package/src/sap/fe/core/helpers/PasteHelper.js +3 -185
  425. package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -0
  426. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +371 -0
  427. package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -368
  428. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -0
  429. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +70 -0
  430. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -67
  431. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -0
  432. package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +141 -0
  433. package/src/sap/fe/core/helpers/SideEffectsHelper.js +3 -137
  434. package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +1 -0
  435. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +3 -2
  436. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +204 -0
  437. package/src/sap/fe/core/helpers/StableIdHelper.js +3 -208
  438. package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -0
  439. package/src/sap/fe/core/helpers/Synchronization-dbg.js +35 -0
  440. package/src/sap/fe/core/helpers/Synchronization.js +3 -33
  441. package/src/sap/fe/core/helpers/Synchronization.js.map +1 -0
  442. package/src/sap/fe/core/helpers/ToES6Promise-dbg.js +29 -0
  443. package/src/sap/fe/core/helpers/ToES6Promise.js +3 -26
  444. package/src/sap/fe/core/helpers/ToES6Promise.js.map +1 -0
  445. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +20 -0
  446. package/src/sap/fe/core/helpers/TypeGuards.js +3 -19
  447. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -0
  448. package/src/sap/fe/core/helpers/TypeGuards.ts +5 -1
  449. package/src/sap/fe/core/jsx-runtime/Fragment-dbg.js +14 -0
  450. package/src/sap/fe/core/jsx-runtime/Fragment.js +3 -11
  451. package/src/sap/fe/core/jsx-runtime/Fragment.js.map +1 -0
  452. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +76 -0
  453. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -86
  454. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -0
  455. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +124 -0
  456. package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -98
  457. package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -0
  458. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +43 -17
  459. package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +41 -0
  460. package/src/sap/fe/core/jsx-runtime/jsx-xml-dbg.js +94 -0
  461. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +3 -90
  462. package/src/sap/fe/core/jsx-runtime/jsx-xml.js.map +1 -0
  463. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +1 -1
  464. package/src/sap/fe/core/jsx-runtime/jsx.js +3 -28
  465. package/src/sap/fe/core/jsx-runtime/jsx.js.map +1 -0
  466. package/src/sap/fe/core/jsx-runtime/jsx.ts +19 -1
  467. package/src/sap/fe/core/jsx-runtime/jsxs-dbg.js +10 -0
  468. package/src/sap/fe/core/jsx-runtime/jsxs.js +3 -7
  469. package/src/sap/fe/core/jsx-runtime/jsxs.js.map +1 -0
  470. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +154 -0
  471. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +3 -153
  472. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -0
  473. package/src/sap/fe/core/library-dbg.js +437 -0
  474. package/src/sap/fe/core/library-preload.js +900 -0
  475. package/src/sap/fe/core/library-preload.js.map +1 -0
  476. package/src/sap/fe/core/library-preload.support.js +177 -0
  477. package/src/sap/fe/core/library-preload.support.js.map +1 -0
  478. package/src/sap/fe/core/library.js +3 -461
  479. package/src/sap/fe/core/library.js.map +1 -0
  480. package/src/sap/fe/core/library.support.js +1 -1
  481. package/src/sap/fe/core/library.ts +12 -25
  482. package/src/sap/fe/core/manifest.json +100 -0
  483. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +99 -0
  484. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -96
  485. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -0
  486. package/src/sap/fe/core/messagebundle.properties +6 -0
  487. package/src/sap/fe/core/messagebundle_ar.properties +22 -0
  488. package/src/sap/fe/core/messagebundle_bg.properties +22 -0
  489. package/src/sap/fe/core/messagebundle_ca.properties +22 -0
  490. package/src/sap/fe/core/messagebundle_cs.properties +22 -0
  491. package/src/sap/fe/core/messagebundle_cy.properties +22 -0
  492. package/src/sap/fe/core/messagebundle_da.properties +22 -0
  493. package/src/sap/fe/core/messagebundle_de.properties +22 -0
  494. package/src/sap/fe/core/messagebundle_el.properties +22 -0
  495. package/src/sap/fe/core/messagebundle_en.properties +22 -0
  496. package/src/sap/fe/core/messagebundle_en_GB.properties +22 -0
  497. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +22 -0
  498. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +4 -0
  499. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +4 -0
  500. package/src/sap/fe/core/messagebundle_es.properties +22 -0
  501. package/src/sap/fe/core/messagebundle_es_MX.properties +22 -0
  502. package/src/sap/fe/core/messagebundle_et.properties +22 -0
  503. package/src/sap/fe/core/messagebundle_fi.properties +22 -0
  504. package/src/sap/fe/core/messagebundle_fr.properties +22 -0
  505. package/src/sap/fe/core/messagebundle_fr_CA.properties +22 -0
  506. package/src/sap/fe/core/messagebundle_hi.properties +22 -0
  507. package/src/sap/fe/core/messagebundle_hr.properties +23 -1
  508. package/src/sap/fe/core/messagebundle_hu.properties +22 -0
  509. package/src/sap/fe/core/messagebundle_id.properties +22 -0
  510. package/src/sap/fe/core/messagebundle_it.properties +22 -0
  511. package/src/sap/fe/core/messagebundle_iw.properties +22 -0
  512. package/src/sap/fe/core/messagebundle_ja.properties +22 -0
  513. package/src/sap/fe/core/messagebundle_kk.properties +22 -0
  514. package/src/sap/fe/core/messagebundle_ko.properties +22 -0
  515. package/src/sap/fe/core/messagebundle_lt.properties +22 -0
  516. package/src/sap/fe/core/messagebundle_lv.properties +22 -0
  517. package/src/sap/fe/core/messagebundle_ms.properties +22 -0
  518. package/src/sap/fe/core/messagebundle_nl.properties +22 -0
  519. package/src/sap/fe/core/messagebundle_no.properties +22 -0
  520. package/src/sap/fe/core/messagebundle_pl.properties +22 -0
  521. package/src/sap/fe/core/messagebundle_pt.properties +22 -0
  522. package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -0
  523. package/src/sap/fe/core/messagebundle_ro.properties +22 -0
  524. package/src/sap/fe/core/messagebundle_ru.properties +22 -0
  525. package/src/sap/fe/core/messagebundle_sh.properties +22 -0
  526. package/src/sap/fe/core/messagebundle_sk.properties +22 -0
  527. package/src/sap/fe/core/messagebundle_sl.properties +22 -0
  528. package/src/sap/fe/core/messagebundle_sv.properties +22 -0
  529. package/src/sap/fe/core/messagebundle_th.properties +22 -0
  530. package/src/sap/fe/core/messagebundle_tr.properties +22 -0
  531. package/src/sap/fe/core/messagebundle_uk.properties +22 -0
  532. package/src/sap/fe/core/messagebundle_vi.properties +22 -0
  533. package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -0
  534. package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -0
  535. package/src/sap/fe/core/operationsHelper-dbg.js +155 -0
  536. package/src/sap/fe/core/operationsHelper.js +3 -205
  537. package/src/sap/fe/core/operationsHelper.js.map +1 -0
  538. package/src/sap/fe/core/operationsHelper.ts +14 -68
  539. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +837 -0
  540. package/src/sap/fe/core/rootView/Fcl.controller.js +3 -855
  541. package/src/sap/fe/core/rootView/Fcl.controller.js.map +1 -0
  542. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +190 -0
  543. package/src/sap/fe/core/rootView/NavContainer.controller.js +3 -190
  544. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -0
  545. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +506 -0
  546. package/src/sap/fe/core/rootView/RootViewBaseController.js +3 -538
  547. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -0
  548. package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -4
  549. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +60 -0
  550. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -60
  551. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js.map +1 -0
  552. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +196 -0
  553. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -219
  554. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -0
  555. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +80 -0
  556. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -82
  557. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -0
  558. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +320 -0
  559. package/src/sap/fe/core/services/NavigationServiceFactory.js +3 -320
  560. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -0
  561. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +91 -0
  562. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -89
  563. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -0
  564. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +817 -0
  565. package/src/sap/fe/core/services/RoutingServiceFactory.js +3 -847
  566. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -0
  567. package/src/sap/fe/core/services/RoutingServiceFactory.ts +6 -3
  568. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +732 -0
  569. package/src/sap/fe/core/services/ShellServicesFactory.js +3 -752
  570. package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -0
  571. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +569 -0
  572. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +3 -599
  573. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -0
  574. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +3 -3
  575. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +355 -0
  576. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +3 -387
  577. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -0
  578. package/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +37 -0
  579. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +3 -34
  580. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js.map +1 -0
  581. package/src/sap/fe/core/support/AnnotationIssue.support.js +4 -4
  582. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +3 -3
  583. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +3 -3
  584. package/src/sap/fe/core/support/CommonHelper-dbg.js +63 -0
  585. package/src/sap/fe/core/support/CommonHelper.js +3 -60
  586. package/src/sap/fe/core/support/CommonHelper.js.map +1 -0
  587. package/src/sap/fe/core/support/Diagnostics-dbg.js +44 -0
  588. package/src/sap/fe/core/support/Diagnostics.js +3 -49
  589. package/src/sap/fe/core/support/Diagnostics.js.map +1 -0
  590. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +3 -3
  591. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +70 -0
  592. package/src/sap/fe/core/templating/CommonFormatters.js +3 -66
  593. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -0
  594. package/src/sap/fe/core/templating/CommonFormatters.ts +9 -3
  595. package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +136 -0
  596. package/src/sap/fe/core/templating/CriticalityFormatters.js +3 -133
  597. package/src/sap/fe/core/templating/CriticalityFormatters.js.map +1 -0
  598. package/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +58 -0
  599. package/src/sap/fe/core/templating/DataFieldFormatters.js +3 -55
  600. package/src/sap/fe/core/templating/DataFieldFormatters.js.map +1 -0
  601. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +363 -0
  602. package/src/sap/fe/core/templating/DataModelPathHelper.js +3 -372
  603. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -0
  604. package/src/sap/fe/core/templating/DataModelPathHelper.ts +17 -8
  605. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +56 -0
  606. package/src/sap/fe/core/templating/DisplayModeFormatter.js +3 -124
  607. package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -0
  608. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +0 -47
  609. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +68 -0
  610. package/src/sap/fe/core/templating/EntitySetHelper.js +3 -81
  611. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -0
  612. package/src/sap/fe/core/templating/FieldControlHelper-dbg.js +77 -0
  613. package/src/sap/fe/core/templating/FieldControlHelper.js +3 -74
  614. package/src/sap/fe/core/templating/FieldControlHelper.js.map +1 -0
  615. package/src/sap/fe/core/templating/FilterHelper-dbg.js +346 -0
  616. package/src/sap/fe/core/templating/FilterHelper.js +3 -339
  617. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -0
  618. package/src/sap/fe/core/templating/FilterHelper.ts +2 -21
  619. package/src/sap/fe/core/templating/FilterTemplating-dbg.js +62 -0
  620. package/src/sap/fe/core/templating/FilterTemplating.js +3 -59
  621. package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -0
  622. package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +93 -0
  623. package/src/sap/fe/core/templating/PropertyFormatters.js +3 -90
  624. package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -0
  625. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +340 -0
  626. package/src/sap/fe/core/templating/PropertyHelper.js +3 -337
  627. package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -0
  628. package/src/sap/fe/core/templating/SemanticObjectHelper-dbg.js +91 -0
  629. package/src/sap/fe/core/templating/SemanticObjectHelper.js +3 -43
  630. package/src/sap/fe/core/templating/SemanticObjectHelper.js.map +1 -0
  631. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +45 -1
  632. package/src/sap/fe/core/templating/UIFormatters-dbg.js +498 -0
  633. package/src/sap/fe/core/templating/UIFormatters.js +3 -544
  634. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -0
  635. package/src/sap/fe/core/templating/UIFormatters.ts +60 -110
  636. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +35 -0
  637. package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -33
  638. package/src/sap/fe/core/type/DateTimeWithTimezone.js.map +1 -0
  639. package/src/sap/fe/core/type/EDM-dbg.js +84 -0
  640. package/src/sap/fe/core/type/EDM.js +6 -0
  641. package/src/sap/fe/core/type/EDM.js.map +1 -0
  642. package/src/sap/fe/core/type/EDM.ts +70 -0
  643. package/src/sap/fe/core/type/Email-dbg.js +29 -0
  644. package/src/sap/fe/core/type/Email.js +3 -26
  645. package/src/sap/fe/core/type/Email.js.map +1 -0
  646. package/src/sap/fe/core/type/FiscalDate-dbg.js +174 -0
  647. package/src/sap/fe/core/type/FiscalDate.js +6 -0
  648. package/src/sap/fe/core/type/FiscalDate.js.map +1 -0
  649. package/src/sap/fe/core/type/FiscalDate.ts +179 -0
  650. package/src/sap/fe/core/type/TypeUtil-dbg.js +58 -0
  651. package/src/sap/fe/core/type/TypeUtil.js +3 -55
  652. package/src/sap/fe/core/type/TypeUtil.js.map +1 -0
  653. package/src/sap/fe/core/type/TypeUtil.ts +1 -0
  654. package/src/.eslintrc +0 -7
@@ -0,0 +1,236 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/ActivitySync", "sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler", "sap/fe/core/helpers/EditState"], function (Log, ActivitySync, DataLossOrDraftDiscardHandler, EditState) {
6
+ "use strict";
7
+
8
+ /* Enum for navigation types */
9
+ var NavigationType;
10
+ /**
11
+ * The method checks whether an optional parameter in the manifest is set to silently keep the draft in case a forward navigation is triggered.
12
+ *
13
+ * @param pageController The reference to the current PageController instance
14
+ * @returns Boolean value with true or false to silently keep the draft
15
+ */
16
+ (function (NavigationType) {
17
+ NavigationType["BackNavigation"] = "BackNavigation";
18
+ NavigationType["ForwardNavigation"] = "ForwardNavigation";
19
+ })(NavigationType || (NavigationType = {}));
20
+ function silentlyKeepDraftOnForwardNavigation(pageController) {
21
+ var _oManifest$sapFe, _oManifest$sapFe$app;
22
+ let rbSilentlyKeep = false;
23
+ const oManifest = pageController.getAppComponent().getManifest();
24
+ rbSilentlyKeep = (oManifest === null || oManifest === void 0 ? void 0 : (_oManifest$sapFe = oManifest["sap.fe"]) === null || _oManifest$sapFe === void 0 ? void 0 : (_oManifest$sapFe$app = _oManifest$sapFe.app) === null || _oManifest$sapFe$app === void 0 ? void 0 : _oManifest$sapFe$app.silentlyKeepDraftOnForwardNavigation) || false;
25
+ return rbSilentlyKeep;
26
+ }
27
+
28
+ /**
29
+ * Logic to process the fcl mode.
30
+ *
31
+ * @param draftAdminData Admin data
32
+ * @param fnCancelFunction The cancel function
33
+ * @param oController The current controller referenced
34
+ * @param processFunctionForDrafts The functon to process the handler
35
+ * @param bSkipBindingToView The optional parameter to skip the binding to the view
36
+ */
37
+ async function processFclMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, bSkipBindingToView) {
38
+ // The application is running in FCL mode so in this case we fall back to
39
+ // the old logic since the dirty state handling is not properly working
40
+ // for FCL.
41
+ if (draftAdminData.CreationDateTime !== draftAdminData.LastChangeDateTime) {
42
+ DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
43
+ } else {
44
+ processFunctionForDrafts();
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Logic to process the mode with no active entity.
50
+ *
51
+ * @param draftAdminData Admin data
52
+ * @param fnCancelFunction The cancel function
53
+ * @param oController The current controller referenced
54
+ * @param processFunctionForDrafts The functon to process the handler
55
+ * @param navigationType The navigation type for which the function should be called
56
+ * @param bSilentlyKeepDraftOnForwardNavigation The parameter to determine whether to skip the popup appearance in forward case
57
+ * @param bSkipBindingToView The optional parameter to skip the binding to the view
58
+ */
59
+ async function processNoActiveEntityMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView) {
60
+ // There is no active entity so we are editing either newly created data or
61
+ // a draft which has never been saved to active version
62
+ // Since we want to react differently in the two situations, we have to check the
63
+ // dirty state
64
+ if (EditState.isEditStateDirty()) {
65
+ if (draftAdminData.CreationDateTime === draftAdminData.LastChangeDateTime && navigationType === NavigationType.BackNavigation) {
66
+ // in case we have untouched changes for the draft and a "back"
67
+ // navigation we can silently discard the draft again
68
+ // eslint-disable-next-line promise/no-nesting
69
+ try {
70
+ await DataLossOrDraftDiscardHandler.discardDraft(oController, bSkipBindingToView);
71
+ processFunctionForDrafts();
72
+ } catch (error) {
73
+ Log.error("Error while canceling the document", error);
74
+ }
75
+ } else if (navigationType === NavigationType.ForwardNavigation && bSilentlyKeepDraftOnForwardNavigation) {
76
+ // In case we have a "forward navigation" and an additional parameter set in the manifest
77
+ // we "silently" keep the draft
78
+ processFunctionForDrafts();
79
+ } else {
80
+ // In this case data is being changed or a forward navigation is triggered
81
+ // and we always want to show the dataloss dialog on navigation
82
+ DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
83
+ }
84
+ } else {
85
+ // We are editing a draft which has been created earlier but never saved to active
86
+ // version and since the edit state is not dirty, there have been no user changes
87
+ // so in this case we want to silently navigate and do nothing
88
+ processFunctionForDrafts();
89
+ }
90
+ }
91
+ /**
92
+ * Logic to process the draft editing for existing entity.
93
+ *
94
+ * @param oController The current controller referenced.
95
+ * @param oContext The context of the current call
96
+ * @param processFunctionForDrafts The functon to process the handler
97
+ * @param navigationType The navigation type for which the function should be called
98
+ */
99
+ async function processEditingDraftForExistingEntity(oController, oContext, processFunctionForDrafts, navigationType) {
100
+ // We are editing a draft for an existing active entity
101
+ // The CreationDateTime and LastChangeDateTime are equal, so this draft was
102
+ // never saved before, hence we're currently editing a newly created draft for
103
+ // an existing active entity for the first time.
104
+ // Also there have so far been no changes made to the draft and in this
105
+ // case we want to silently navigate and delete the draftin case of a back
106
+ // navigation but in case of a forward navigation we want to silently keep it!
107
+ if (navigationType === NavigationType.BackNavigation) {
108
+ const mParameters = {
109
+ skipDiscardPopover: true
110
+ };
111
+ try {
112
+ await oController.editFlow.cancelDocument(oContext, mParameters);
113
+ processFunctionForDrafts();
114
+ } catch (error) {
115
+ Log.error("Error while canceling the document", error);
116
+ }
117
+ } else {
118
+ // In case of a forward navigation we silently keep the draft and only
119
+ // execute the followup function.
120
+ processFunctionForDrafts();
121
+ }
122
+ }
123
+
124
+ /**
125
+ * Logic to process the edit state dirty.
126
+ *
127
+ * @param oController The current controller referenced.
128
+ * @param fnCancelFunction The cancel function
129
+ * @param processFunctionForDrafts The functon to process the handler
130
+ * @param navigationType The navigation type for which the function should be called
131
+ * @param bSilentlyKeepDraftOnForwardNavigation The parameter to determine whether to skip the popup appearance in forward case
132
+ * @param bSkipBindingToView The optional parameter to skip the binding to the view.
133
+ */
134
+ async function processEditStateDirty(oController, fnCancelFunction, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView) {
135
+ if (navigationType === NavigationType.ForwardNavigation && bSilentlyKeepDraftOnForwardNavigation) {
136
+ // In case we have a "forward navigation" and an additional parameter set in the manifest
137
+ // we "silently" keep the draft
138
+ processFunctionForDrafts();
139
+ } else {
140
+ // The CreationDateTime and LastChangeDateTime are NOT equal, so we are currently editing
141
+ // an existing draft and need to distinguish depending on if any changes
142
+ // have been made in the current editing session or not
143
+ // Changes have been made in the current editing session so we want
144
+ // to show the dataloss dialog and let the user decide
145
+ DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
146
+ }
147
+ }
148
+
149
+ /**
150
+ * Logic to process the admin data.
151
+ *
152
+ * @param draftAdminData Admin data
153
+ * @param fnProcessFunction The functon to process the handler
154
+ * @param fnCancelFunction The cancel function
155
+ * @param oContext The context of the current call
156
+ * @param oController The current controller referenced
157
+ * @param bSkipBindingToView The optional parameter to skip the binding to the view
158
+ * @param navigationType The navigation type for which the function should be called
159
+ */
160
+ async function processDraftAdminData(draftAdminData, fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView) {
161
+ let navigationType = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : NavigationType.BackNavigation;
162
+ const collaborationConnected = ActivitySync.isConnected(oController.getView());
163
+ const processFunctionForDrafts = !collaborationConnected ? fnProcessFunction : function () {
164
+ ActivitySync.disconnect(oController.getView());
165
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
166
+ args[_key] = arguments[_key];
167
+ }
168
+ fnProcessFunction.apply(null, ...args);
169
+ };
170
+ const bSilentlyKeepDraftOnForwardNavigation = silentlyKeepDraftOnForwardNavigation(oController);
171
+ if (draftAdminData) {
172
+ if (oController.getAppComponent().getRootViewController().isFclEnabled()) {
173
+ await processFclMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, bSkipBindingToView);
174
+ } else if (!oContext.getObject().HasActiveEntity) {
175
+ processNoActiveEntityMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView);
176
+ } else if (draftAdminData.CreationDateTime === draftAdminData.LastChangeDateTime) {
177
+ processEditingDraftForExistingEntity(oController, oContext, processFunctionForDrafts, navigationType);
178
+ } else if (EditState.isEditStateDirty()) {
179
+ processEditStateDirty(oController, fnCancelFunction, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView);
180
+ } else {
181
+ // The user started editing the existing draft but did not make any changes
182
+ // in the current editing session, so in this case we do not want
183
+ // to show the dataloss dialog but just keep the draft
184
+ processFunctionForDrafts();
185
+ }
186
+ } else {
187
+ fnProcessFunction();
188
+ }
189
+ }
190
+
191
+ /**
192
+ * The general handler in which the individual steps are called.
193
+ *
194
+ * @param fnProcessFunction
195
+ * @param fnCancelFunction
196
+ * @param oContext
197
+ * @param oController
198
+ * @param bSkipBindingToView
199
+ * @param navigationType
200
+ */
201
+ async function processDataLossOrDraftDiscardConfirmation(fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView) {
202
+ let navigationType = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : NavigationType.BackNavigation;
203
+ const oView = oController.getView();
204
+ const oModel = oContext.getModel();
205
+ const oMetaModel = oModel.getMetaModel();
206
+ const sEntitySet = oView.getViewData().entitySet ?? "";
207
+ const oDraftRoot = sEntitySet && oMetaModel.getObject("/" + sEntitySet + "@com.sap.vocabularies.Common.v1.DraftRoot");
208
+ const oUIModel = oView.getModel("ui");
209
+ const bIsEditable = oUIModel.getProperty("/isEditable");
210
+ const draftDataContext = oModel.bindContext(`${oContext.getPath()}/DraftAdministrativeData`).getBoundContext();
211
+
212
+ // Shouldn't display data loss popover on shell back navigation from sub-object pages
213
+ // and when object page is in display mode
214
+ if (oContext && oContext.getObject() && (!oDraftRoot && navigationType === NavigationType.BackNavigation || !bIsEditable)) {
215
+ fnProcessFunction();
216
+ } else {
217
+ try {
218
+ const draftAdminData = await draftDataContext.requestObject();
219
+ await processDraftAdminData(draftAdminData, fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView, navigationType);
220
+ } catch (oError) {
221
+ Log.error("Cannot retrieve draftDataContext information", oError);
222
+ }
223
+ }
224
+ }
225
+ const draftDataLossPopup = {
226
+ processDataLossOrDraftDiscardConfirmation: processDataLossOrDraftDiscardConfirmation,
227
+ silentlyKeepDraftOnForwardNavigation: silentlyKeepDraftOnForwardNavigation,
228
+ NavigationType: NavigationType,
229
+ processFclMode: processFclMode,
230
+ processNoActiveEntityMode: processNoActiveEntityMode,
231
+ processEditingDraftForExistingEntity: processEditingDraftForExistingEntity,
232
+ processEditStateDirty: processEditStateDirty
233
+ };
234
+ return draftDataLossPopup;
235
+ }, false);
236
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZpZ2F0aW9uVHlwZSIsInNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiIsInBhZ2VDb250cm9sbGVyIiwicmJTaWxlbnRseUtlZXAiLCJvTWFuaWZlc3QiLCJnZXRBcHBDb21wb25lbnQiLCJnZXRNYW5pZmVzdCIsImFwcCIsInByb2Nlc3NGY2xNb2RlIiwiZHJhZnRBZG1pbkRhdGEiLCJmbkNhbmNlbEZ1bmN0aW9uIiwib0NvbnRyb2xsZXIiLCJwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMiLCJiU2tpcEJpbmRpbmdUb1ZpZXciLCJDcmVhdGlvbkRhdGVUaW1lIiwiTGFzdENoYW5nZURhdGVUaW1lIiwiRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIiLCJwZXJmb3JtQWZ0ZXJEaXNjYXJkb3JLZWVwRHJhZnQiLCJwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlIiwibmF2aWdhdGlvblR5cGUiLCJiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIiwiRWRpdFN0YXRlIiwiaXNFZGl0U3RhdGVEaXJ0eSIsIkJhY2tOYXZpZ2F0aW9uIiwiZGlzY2FyZERyYWZ0IiwiZXJyb3IiLCJMb2ciLCJGb3J3YXJkTmF2aWdhdGlvbiIsInByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eSIsIm9Db250ZXh0IiwibVBhcmFtZXRlcnMiLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJlZGl0RmxvdyIsImNhbmNlbERvY3VtZW50IiwicHJvY2Vzc0VkaXRTdGF0ZURpcnR5IiwicHJvY2Vzc0RyYWZ0QWRtaW5EYXRhIiwiZm5Qcm9jZXNzRnVuY3Rpb24iLCJjb2xsYWJvcmF0aW9uQ29ubmVjdGVkIiwiQWN0aXZpdHlTeW5jIiwiaXNDb25uZWN0ZWQiLCJnZXRWaWV3IiwiZGlzY29ubmVjdCIsImFyZ3MiLCJhcHBseSIsImdldFJvb3RWaWV3Q29udHJvbGxlciIsImlzRmNsRW5hYmxlZCIsImdldE9iamVjdCIsIkhhc0FjdGl2ZUVudGl0eSIsInByb2Nlc3NEYXRhTG9zc09yRHJhZnREaXNjYXJkQ29uZmlybWF0aW9uIiwib1ZpZXciLCJvTW9kZWwiLCJnZXRNb2RlbCIsIm9NZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJzRW50aXR5U2V0IiwiZ2V0Vmlld0RhdGEiLCJlbnRpdHlTZXQiLCJvRHJhZnRSb290Iiwib1VJTW9kZWwiLCJiSXNFZGl0YWJsZSIsImdldFByb3BlcnR5IiwiZHJhZnREYXRhQ29udGV4dCIsImJpbmRDb250ZXh0IiwiZ2V0UGF0aCIsImdldEJvdW5kQ29udGV4dCIsInJlcXVlc3RPYmplY3QiLCJvRXJyb3IiLCJkcmFmdERhdGFMb3NzUG9wdXAiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbImRyYWZ0RGF0YUxvc3NQb3B1cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBBY3Rpdml0eVN5bmMgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQWN0aXZpdHlTeW5jXCI7XG5pbXBvcnQgRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xzL0RhdGFMb3NzT3JEcmFmdERpc2NhcmQvRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXJcIjtcbmltcG9ydCBFZGl0U3RhdGUgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvRWRpdFN0YXRlXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwiLi4vLi4vUGFnZUNvbnRyb2xsZXJcIjtcblxuLyogRW51bSBmb3IgbmF2aWdhdGlvbiB0eXBlcyAqL1xuZW51bSBOYXZpZ2F0aW9uVHlwZSB7XG5cdEJhY2tOYXZpZ2F0aW9uID0gXCJCYWNrTmF2aWdhdGlvblwiLFxuXHRGb3J3YXJkTmF2aWdhdGlvbiA9IFwiRm9yd2FyZE5hdmlnYXRpb25cIlxufVxuXG4vKipcbiAqIFRoZSBtZXRob2QgY2hlY2tzIHdoZXRoZXIgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIGluIHRoZSBtYW5pZmVzdCBpcyBzZXQgdG8gc2lsZW50bHkga2VlcCB0aGUgZHJhZnQgaW4gY2FzZSBhIGZvcndhcmQgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWQuXG4gKlxuICogQHBhcmFtIHBhZ2VDb250cm9sbGVyIFRoZSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgUGFnZUNvbnRyb2xsZXIgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEJvb2xlYW4gdmFsdWUgd2l0aCB0cnVlIG9yIGZhbHNlIHRvIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0XG4gKi9cbmZ1bmN0aW9uIHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbihwYWdlQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIpIHtcblx0bGV0IHJiU2lsZW50bHlLZWVwID0gZmFsc2U7XG5cdGNvbnN0IG9NYW5pZmVzdCA9IHBhZ2VDb250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpLmdldE1hbmlmZXN0KCkgYXMgYW55O1xuXHRyYlNpbGVudGx5S2VlcCA9IG9NYW5pZmVzdD8uW1wic2FwLmZlXCJdPy5hcHA/LnNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbiB8fCBmYWxzZTtcblx0cmV0dXJuIHJiU2lsZW50bHlLZWVwO1xufVxuXG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIGZjbCBtb2RlLlxuICpcbiAqIEBwYXJhbSBkcmFmdEFkbWluRGF0YSBBZG1pbiBkYXRhXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXcgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NGY2xNb2RlKFxuXHRkcmFmdEFkbWluRGF0YTogYW55LFxuXHRmbkNhbmNlbEZ1bmN0aW9uOiBhbnksXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogYW55LFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuXG4pIHtcblx0Ly8gVGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgaW4gRkNMIG1vZGUgc28gaW4gdGhpcyBjYXNlIHdlIGZhbGwgYmFjayB0b1xuXHQvLyB0aGUgb2xkIGxvZ2ljIHNpbmNlIHRoZSBkaXJ0eSBzdGF0ZSBoYW5kbGluZyBpcyBub3QgcHJvcGVybHkgd29ya2luZ1xuXHQvLyBmb3IgRkNMLlxuXHRpZiAoZHJhZnRBZG1pbkRhdGEuQ3JlYXRpb25EYXRlVGltZSAhPT0gZHJhZnRBZG1pbkRhdGEuTGFzdENoYW5nZURhdGVUaW1lKSB7XG5cdFx0RGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIucGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KFxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0KTtcblx0fSBlbHNlIHtcblx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0fVxufVxuXG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIG1vZGUgd2l0aCBubyBhY3RpdmUgZW50aXR5LlxuICpcbiAqIEBwYXJhbSBkcmFmdEFkbWluRGF0YSBBZG1pbiBkYXRhXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICogQHBhcmFtIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gVGhlIHBhcmFtZXRlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBza2lwIHRoZSBwb3B1cCBhcHBlYXJhbmNlIGluIGZvcndhcmQgY2FzZVxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXdcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZShcblx0ZHJhZnRBZG1pbkRhdGE6IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IGFueSxcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlLFxuXHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uOiBib29sZWFuLFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuXG4pIHtcblx0Ly8gVGhlcmUgaXMgbm8gYWN0aXZlIGVudGl0eSBzbyB3ZSBhcmUgZWRpdGluZyBlaXRoZXIgbmV3bHkgY3JlYXRlZCBkYXRhIG9yXG5cdC8vIGEgZHJhZnQgd2hpY2ggaGFzIG5ldmVyIGJlZW4gc2F2ZWQgdG8gYWN0aXZlIHZlcnNpb25cblx0Ly8gU2luY2Ugd2Ugd2FudCB0byByZWFjdCBkaWZmZXJlbnRseSBpbiB0aGUgdHdvIHNpdHVhdGlvbnMsIHdlIGhhdmUgdG8gY2hlY2sgdGhlXG5cdC8vIGRpcnR5IHN0YXRlXG5cdGlmIChFZGl0U3RhdGUuaXNFZGl0U3RhdGVEaXJ0eSgpKSB7XG5cdFx0aWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgPT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSAmJiBuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHtcblx0XHRcdC8vIGluIGNhc2Ugd2UgaGF2ZSB1bnRvdWNoZWQgY2hhbmdlcyBmb3IgdGhlIGRyYWZ0IGFuZCBhIFwiYmFja1wiXG5cdFx0XHQvLyBuYXZpZ2F0aW9uIHdlIGNhbiBzaWxlbnRseSBkaXNjYXJkIHRoZSBkcmFmdCBhZ2FpblxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2Uvbm8tbmVzdGluZ1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0YXdhaXQgRGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIuZGlzY2FyZERyYWZ0KG9Db250cm9sbGVyLCBiU2tpcEJpbmRpbmdUb1ZpZXcpO1xuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgY2FuY2VsaW5nIHRoZSBkb2N1bWVudFwiLCBlcnJvcik7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuRm9yd2FyZE5hdmlnYXRpb24gJiYgYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbikge1xuXHRcdFx0Ly8gSW4gY2FzZSB3ZSBoYXZlIGEgXCJmb3J3YXJkIG5hdmlnYXRpb25cIiBhbmQgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgc2V0IGluIHRoZSBtYW5pZmVzdFxuXHRcdFx0Ly8gd2UgXCJzaWxlbnRseVwiIGtlZXAgdGhlIGRyYWZ0XG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gSW4gdGhpcyBjYXNlIGRhdGEgaXMgYmVpbmcgY2hhbmdlZCBvciBhIGZvcndhcmQgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWRcblx0XHRcdC8vIGFuZCB3ZSBhbHdheXMgd2FudCB0byBzaG93IHRoZSBkYXRhbG9zcyBkaWFsb2cgb24gbmF2aWdhdGlvblxuXHRcdFx0RGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIucGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KFxuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHRcdCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdC8vIFdlIGFyZSBlZGl0aW5nIGEgZHJhZnQgd2hpY2ggaGFzIGJlZW4gY3JlYXRlZCBlYXJsaWVyIGJ1dCBuZXZlciBzYXZlZCB0byBhY3RpdmVcblx0XHQvLyB2ZXJzaW9uIGFuZCBzaW5jZSB0aGUgZWRpdCBzdGF0ZSBpcyBub3QgZGlydHksIHRoZXJlIGhhdmUgYmVlbiBubyB1c2VyIGNoYW5nZXNcblx0XHQvLyBzbyBpbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBzaWxlbnRseSBuYXZpZ2F0ZSBhbmQgZG8gbm90aGluZ1xuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9XG59XG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIGRyYWZ0IGVkaXRpbmcgZm9yIGV4aXN0aW5nIGVudGl0eS5cbiAqXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkLlxuICogQHBhcmFtIG9Db250ZXh0IFRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IGNhbGxcbiAqIEBwYXJhbSBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMgVGhlIGZ1bmN0b24gdG8gcHJvY2VzcyB0aGUgaGFuZGxlclxuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eShcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0b0NvbnRleHQ6IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzOiBhbnksXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZVxuKSB7XG5cdC8vIFdlIGFyZSBlZGl0aW5nIGEgZHJhZnQgZm9yIGFuIGV4aXN0aW5nIGFjdGl2ZSBlbnRpdHlcblx0Ly8gVGhlIENyZWF0aW9uRGF0ZVRpbWUgYW5kIExhc3RDaGFuZ2VEYXRlVGltZSBhcmUgZXF1YWwsIHNvIHRoaXMgZHJhZnQgd2FzXG5cdC8vIG5ldmVyIHNhdmVkIGJlZm9yZSwgaGVuY2Ugd2UncmUgY3VycmVudGx5IGVkaXRpbmcgYSBuZXdseSBjcmVhdGVkIGRyYWZ0IGZvclxuXHQvLyBhbiBleGlzdGluZyBhY3RpdmUgZW50aXR5IGZvciB0aGUgZmlyc3QgdGltZS5cblx0Ly8gQWxzbyB0aGVyZSBoYXZlIHNvIGZhciBiZWVuIG5vIGNoYW5nZXMgbWFkZSB0byB0aGUgZHJhZnQgYW5kIGluIHRoaXNcblx0Ly8gY2FzZSB3ZSB3YW50IHRvIHNpbGVudGx5IG5hdmlnYXRlIGFuZCBkZWxldGUgdGhlIGRyYWZ0aW4gY2FzZSBvZiBhIGJhY2tcblx0Ly8gbmF2aWdhdGlvbiBidXQgaW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSB3YW50IHRvIHNpbGVudGx5IGtlZXAgaXQhXG5cdGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHtcblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IHtcblx0XHRcdHNraXBEaXNjYXJkUG9wb3ZlcjogdHJ1ZVxuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgb0NvbnRyb2xsZXIuZWRpdEZsb3cuY2FuY2VsRG9jdW1lbnQob0NvbnRleHQsIG1QYXJhbWV0ZXJzKTtcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcblx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGNhbmNlbGluZyB0aGUgZG9jdW1lbnRcIiwgZXJyb3IpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyBJbiBjYXNlIG9mIGEgZm9yd2FyZCBuYXZpZ2F0aW9uIHdlIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0IGFuZCBvbmx5XG5cdFx0Ly8gZXhlY3V0ZSB0aGUgZm9sbG93dXAgZnVuY3Rpb24uXG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBlZGl0IHN0YXRlIGRpcnR5LlxuICpcbiAqIEBwYXJhbSBvQ29udHJvbGxlciBUaGUgY3VycmVudCBjb250cm9sbGVyIHJlZmVyZW5jZWQuXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICogQHBhcmFtIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gVGhlIHBhcmFtZXRlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBza2lwIHRoZSBwb3B1cCBhcHBlYXJhbmNlIGluIGZvcndhcmQgY2FzZVxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXcuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NFZGl0U3RhdGVEaXJ0eShcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IGFueSxcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlLFxuXHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uOiBib29sZWFuLFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuXG4pIHtcblx0aWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5Gb3J3YXJkTmF2aWdhdGlvbiAmJiBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uKSB7XG5cdFx0Ly8gSW4gY2FzZSB3ZSBoYXZlIGEgXCJmb3J3YXJkIG5hdmlnYXRpb25cIiBhbmQgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgc2V0IGluIHRoZSBtYW5pZmVzdFxuXHRcdC8vIHdlIFwic2lsZW50bHlcIiBrZWVwIHRoZSBkcmFmdFxuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9IGVsc2Uge1xuXHRcdC8vIFRoZSBDcmVhdGlvbkRhdGVUaW1lIGFuZCBMYXN0Q2hhbmdlRGF0ZVRpbWUgYXJlIE5PVCBlcXVhbCwgc28gd2UgYXJlIGN1cnJlbnRseSBlZGl0aW5nXG5cdFx0Ly8gYW4gZXhpc3RpbmcgZHJhZnQgYW5kIG5lZWQgdG8gZGlzdGluZ3Vpc2ggZGVwZW5kaW5nIG9uIGlmIGFueSBjaGFuZ2VzXG5cdFx0Ly8gaGF2ZSBiZWVuIG1hZGUgaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uIG9yIG5vdFxuXHRcdC8vIENoYW5nZXMgaGF2ZSBiZWVuIG1hZGUgaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uIHNvIHdlIHdhbnRcblx0XHQvLyB0byBzaG93IHRoZSBkYXRhbG9zcyBkaWFsb2cgYW5kIGxldCB0aGUgdXNlciBkZWNpZGVcblx0XHREYXRhTG9zc09yRHJhZnREaXNjYXJkSGFuZGxlci5wZXJmb3JtQWZ0ZXJEaXNjYXJkb3JLZWVwRHJhZnQoXG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0b0NvbnRyb2xsZXIsXG5cdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHQpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgYWRtaW4gZGF0YS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuUHJvY2Vzc0Z1bmN0aW9uIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBmbkNhbmNlbEZ1bmN0aW9uIFRoZSBjYW5jZWwgZnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBjYWxsXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICogQHBhcmFtIG5hdmlnYXRpb25UeXBlIFRoZSBuYXZpZ2F0aW9uIHR5cGUgZm9yIHdoaWNoIHRoZSBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NEcmFmdEFkbWluRGF0YShcblx0ZHJhZnRBZG1pbkRhdGE6IGFueSxcblx0Zm5Qcm9jZXNzRnVuY3Rpb246IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udGV4dDogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUgPSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvblxuKSB7XG5cdGNvbnN0IGNvbGxhYm9yYXRpb25Db25uZWN0ZWQgPSBBY3Rpdml0eVN5bmMuaXNDb25uZWN0ZWQob0NvbnRyb2xsZXIuZ2V0VmlldygpKTtcblx0Y29uc3QgcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzID0gIWNvbGxhYm9yYXRpb25Db25uZWN0ZWRcblx0XHQ/IGZuUHJvY2Vzc0Z1bmN0aW9uXG5cdFx0OiBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcblx0XHRcdFx0QWN0aXZpdHlTeW5jLmRpc2Nvbm5lY3Qob0NvbnRyb2xsZXIuZ2V0VmlldygpKTtcblx0XHRcdFx0Zm5Qcm9jZXNzRnVuY3Rpb24uYXBwbHkobnVsbCwgLi4uYXJncyk7XG5cdFx0ICB9O1xuXG5cdGNvbnN0IGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gPSBzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24ob0NvbnRyb2xsZXIpO1xuXG5cdGlmIChkcmFmdEFkbWluRGF0YSkge1xuXHRcdGlmIChvQ29udHJvbGxlci5nZXRBcHBDb21wb25lbnQoKS5nZXRSb290Vmlld0NvbnRyb2xsZXIoKS5pc0ZjbEVuYWJsZWQoKSkge1xuXHRcdFx0YXdhaXQgcHJvY2Vzc0ZjbE1vZGUoZHJhZnRBZG1pbkRhdGEsIGZuQ2FuY2VsRnVuY3Rpb24sIG9Db250cm9sbGVyLCBwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsIGJTa2lwQmluZGluZ1RvVmlldyk7XG5cdFx0fSBlbHNlIGlmICghb0NvbnRleHQuZ2V0T2JqZWN0KCkuSGFzQWN0aXZlRW50aXR5KSB7XG5cdFx0XHRwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlKFxuXHRcdFx0XHRkcmFmdEFkbWluRGF0YSxcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0b0NvbnRyb2xsZXIsXG5cdFx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdFx0bmF2aWdhdGlvblR5cGUsXG5cdFx0XHRcdGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24sXG5cdFx0XHRcdGJTa2lwQmluZGluZ1RvVmlld1xuXHRcdFx0KTtcblx0XHR9IGVsc2UgaWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgPT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSkge1xuXHRcdFx0cHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5KG9Db250cm9sbGVyLCBvQ29udGV4dCwgcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLCBuYXZpZ2F0aW9uVHlwZSk7XG5cdFx0fSBlbHNlIGlmIChFZGl0U3RhdGUuaXNFZGl0U3RhdGVEaXJ0eSgpKSB7XG5cdFx0XHRwcm9jZXNzRWRpdFN0YXRlRGlydHkoXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlLFxuXHRcdFx0XHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFRoZSB1c2VyIHN0YXJ0ZWQgZWRpdGluZyB0aGUgZXhpc3RpbmcgZHJhZnQgYnV0IGRpZCBub3QgbWFrZSBhbnkgY2hhbmdlc1xuXHRcdFx0Ly8gaW4gdGhlIGN1cnJlbnQgZWRpdGluZyBzZXNzaW9uLCBzbyBpbiB0aGlzIGNhc2Ugd2UgZG8gbm90IHdhbnRcblx0XHRcdC8vIHRvIHNob3cgdGhlIGRhdGFsb3NzIGRpYWxvZyBidXQganVzdCBrZWVwIHRoZSBkcmFmdFxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGZuUHJvY2Vzc0Z1bmN0aW9uKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBUaGUgZ2VuZXJhbCBoYW5kbGVyIGluIHdoaWNoIHRoZSBpbmRpdmlkdWFsIHN0ZXBzIGFyZSBjYWxsZWQuXG4gKlxuICogQHBhcmFtIGZuUHJvY2Vzc0Z1bmN0aW9uXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvblxuICogQHBhcmFtIG9Db250ZXh0XG4gKiBAcGFyYW0gb0NvbnRyb2xsZXJcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXdcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZVxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRGF0YUxvc3NPckRyYWZ0RGlzY2FyZENvbmZpcm1hdGlvbihcblx0Zm5Qcm9jZXNzRnVuY3Rpb246IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udGV4dDogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRiU2tpcEJpbmRpbmdUb1ZpZXc/OiBib29sZWFuLFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUgPSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvblxuKSB7XG5cdGNvbnN0IG9WaWV3ID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHRjb25zdCBvTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpO1xuXHRjb25zdCBvTWV0YU1vZGVsID0gb01vZGVsLmdldE1ldGFNb2RlbCgpO1xuXHRjb25zdCBzRW50aXR5U2V0ID0gb1ZpZXcuZ2V0Vmlld0RhdGEoKS5lbnRpdHlTZXQgPz8gXCJcIjtcblx0Y29uc3Qgb0RyYWZ0Um9vdCA9IHNFbnRpdHlTZXQgJiYgb01ldGFNb2RlbC5nZXRPYmplY3QoXCIvXCIgKyBzRW50aXR5U2V0ICsgXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLkRyYWZ0Um9vdFwiKTtcblx0Y29uc3Qgb1VJTW9kZWwgPSBvVmlldy5nZXRNb2RlbChcInVpXCIpO1xuXHRjb25zdCBiSXNFZGl0YWJsZSA9IG9VSU1vZGVsLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIik7XG5cdGNvbnN0IGRyYWZ0RGF0YUNvbnRleHQgPSBvTW9kZWwuYmluZENvbnRleHQoYCR7b0NvbnRleHQuZ2V0UGF0aCgpfS9EcmFmdEFkbWluaXN0cmF0aXZlRGF0YWApLmdldEJvdW5kQ29udGV4dCgpO1xuXG5cdC8vIFNob3VsZG4ndCBkaXNwbGF5IGRhdGEgbG9zcyBwb3BvdmVyIG9uIHNoZWxsIGJhY2sgbmF2aWdhdGlvbiBmcm9tIHN1Yi1vYmplY3QgcGFnZXNcblx0Ly8gYW5kIHdoZW4gb2JqZWN0IHBhZ2UgaXMgaW4gZGlzcGxheSBtb2RlXG5cdGlmIChvQ29udGV4dCAmJiBvQ29udGV4dC5nZXRPYmplY3QoKSAmJiAoKCFvRHJhZnRSb290ICYmIG5hdmlnYXRpb25UeXBlID09PSBOYXZpZ2F0aW9uVHlwZS5CYWNrTmF2aWdhdGlvbikgfHwgIWJJc0VkaXRhYmxlKSkge1xuXHRcdGZuUHJvY2Vzc0Z1bmN0aW9uKCk7XG5cdH0gZWxzZSB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGRyYWZ0QWRtaW5EYXRhID0gYXdhaXQgZHJhZnREYXRhQ29udGV4dC5yZXF1ZXN0T2JqZWN0KCk7XG5cdFx0XHRhd2FpdCBwcm9jZXNzRHJhZnRBZG1pbkRhdGEoXG5cdFx0XHRcdGRyYWZ0QWRtaW5EYXRhLFxuXHRcdFx0XHRmblByb2Nlc3NGdW5jdGlvbixcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0b0NvbnRleHQsXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXcsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlXG5cdFx0XHQpO1xuXHRcdH0gY2F0Y2ggKG9FcnJvcjogYW55KSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgcmV0cmlldmUgZHJhZnREYXRhQ29udGV4dCBpbmZvcm1hdGlvblwiLCBvRXJyb3IpO1xuXHRcdH1cblx0fVxufVxuXG5jb25zdCBkcmFmdERhdGFMb3NzUG9wdXAgPSB7XG5cdHByb2Nlc3NEYXRhTG9zc09yRHJhZnREaXNjYXJkQ29uZmlybWF0aW9uOiBwcm9jZXNzRGF0YUxvc3NPckRyYWZ0RGlzY2FyZENvbmZpcm1hdGlvbixcblx0c2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uOiBzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24sXG5cdE5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0cHJvY2Vzc0ZjbE1vZGU6IHByb2Nlc3NGY2xNb2RlLFxuXHRwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlOiBwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlLFxuXHRwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHk6IHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eSxcblx0cHJvY2Vzc0VkaXRTdGF0ZURpcnR5OiBwcm9jZXNzRWRpdFN0YXRlRGlydHlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGRyYWZ0RGF0YUxvc3NQb3B1cDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQU1BO0VBQUEsSUFDS0EsY0FBYztFQUtuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQSxXQUxLQSxjQUFjO0lBQWRBLGNBQWM7SUFBZEEsY0FBYztFQUFBLEdBQWRBLGNBQWMsS0FBZEEsY0FBYztFQVduQixTQUFTQyxvQ0FBb0MsQ0FBQ0MsY0FBOEIsRUFBRTtJQUFBO0lBQzdFLElBQUlDLGNBQWMsR0FBRyxLQUFLO0lBQzFCLE1BQU1DLFNBQVMsR0FBR0YsY0FBYyxDQUFDRyxlQUFlLEVBQUUsQ0FBQ0MsV0FBVyxFQUFTO0lBQ3ZFSCxjQUFjLEdBQUcsQ0FBQUMsU0FBUyxhQUFUQSxTQUFTLDJDQUFUQSxTQUFTLENBQUcsUUFBUSxDQUFDLDZFQUFyQixpQkFBdUJHLEdBQUcseURBQTFCLHFCQUE0Qk4sb0NBQW9DLEtBQUksS0FBSztJQUMxRixPQUFPRSxjQUFjO0VBQ3RCOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FB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
@@ -1,290 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/ActivitySync", "sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler", "sap/fe/core/helpers/EditState"], function (Log, ActivitySync, DataLossOrDraftDiscardHandler, EditState) {
6
- "use strict";
7
-
8
- function _catch(body, recover) {
9
- try {
10
- var result = body();
11
- } catch (e) {
12
- return recover(e);
13
- }
14
- if (result && result.then) {
15
- return result.then(void 0, recover);
16
- }
17
- return result;
18
- }
19
- /**
20
- * The general handler in which the individual steps are called.
21
- *
22
- * @param fnProcessFunction
23
- * @param fnCancelFunction
24
- * @param oContext
25
- * @param oController
26
- * @param bSkipBindingToView
27
- * @param navigationType
28
- */
29
- var processDataLossOrDraftDiscardConfirmation = function (fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView, navigationType) {
30
- try {
31
- var _oView$getViewData$en;
32
- if (navigationType === undefined) navigationType = NavigationType.BackNavigation;
33
- var oView = oController.getView();
34
- var oModel = oContext.getModel();
35
- var oMetaModel = oModel.getMetaModel();
36
- var sEntitySet = (_oView$getViewData$en = oView.getViewData().entitySet) !== null && _oView$getViewData$en !== void 0 ? _oView$getViewData$en : "";
37
- var oDraftRoot = sEntitySet && oMetaModel.getObject("/" + sEntitySet + "@com.sap.vocabularies.Common.v1.DraftRoot");
38
- var oUIModel = oView.getModel("ui");
39
- var bIsEditable = oUIModel.getProperty("/isEditable");
40
- var draftDataContext = oModel.bindContext("".concat(oContext.getPath(), "/DraftAdministrativeData")).getBoundContext();
41
-
42
- // Shouldn't display data loss popover on shell back navigation from sub-object pages
43
- // and when object page is in display mode
44
- var _temp17 = function () {
45
- if (oContext && oContext.getObject() && (!oDraftRoot && navigationType === NavigationType.BackNavigation || !bIsEditable)) {
46
- fnProcessFunction();
47
- } else {
48
- var _temp18 = _catch(function () {
49
- return Promise.resolve(draftDataContext.requestObject()).then(function (draftAdminData) {
50
- return Promise.resolve(processDraftAdminData(draftAdminData, fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView, navigationType)).then(function () {});
51
- });
52
- }, function (oError) {
53
- Log.error("Cannot retrieve draftDataContext information", oError);
54
- });
55
- if (_temp18 && _temp18.then) return _temp18.then(function () {});
56
- }
57
- }();
58
- return Promise.resolve(_temp17 && _temp17.then ? _temp17.then(function () {}) : void 0);
59
- } catch (e) {
60
- return Promise.reject(e);
61
- }
62
- };
63
- /**
64
- * Logic to process the admin data.
65
- *
66
- * @param draftAdminData Admin data
67
- * @param fnProcessFunction The functon to process the handler
68
- * @param fnCancelFunction The cancel function
69
- * @param oContext The context of the current call
70
- * @param oController The current controller referenced
71
- * @param bSkipBindingToView The optional parameter to skip the binding to the view
72
- * @param navigationType The navigation type for which the function should be called
73
- */
74
- var processDraftAdminData = function (draftAdminData, fnProcessFunction, fnCancelFunction, oContext, oController, bSkipBindingToView, navigationType) {
75
- try {
76
- if (navigationType === undefined) navigationType = NavigationType.BackNavigation;
77
- var collaborationConnected = ActivitySync.isConnected(oController.getView());
78
- var processFunctionForDrafts = !collaborationConnected ? fnProcessFunction : function () {
79
- ActivitySync.disconnect(oController.getView());
80
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
81
- args[_key] = arguments[_key];
82
- }
83
- fnProcessFunction.apply.apply(fnProcessFunction, [null].concat(args));
84
- };
85
- var bSilentlyKeepDraftOnForwardNavigation = silentlyKeepDraftOnForwardNavigation(oController);
86
- var _temp13 = function () {
87
- if (draftAdminData) {
88
- var _temp14 = function () {
89
- if (oController.getAppComponent().getRootViewController().isFclEnabled()) {
90
- return Promise.resolve(processFclMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, bSkipBindingToView)).then(function () {});
91
- } else if (!oContext.getObject().HasActiveEntity) {
92
- processNoActiveEntityMode(draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView);
93
- } else if (draftAdminData.CreationDateTime === draftAdminData.LastChangeDateTime) {
94
- processEditingDraftForExistingEntity(oController, oContext, processFunctionForDrafts, navigationType);
95
- } else if (EditState.isEditStateDirty()) {
96
- processEditStateDirty(oController, fnCancelFunction, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView);
97
- } else {
98
- // The user started editing the existing draft but did not make any changes
99
- // in the current editing session, so in this case we do not want
100
- // to show the dataloss dialog but just keep the draft
101
- processFunctionForDrafts();
102
- }
103
- }();
104
- if (_temp14 && _temp14.then) return _temp14.then(function () {});
105
- } else {
106
- fnProcessFunction();
107
- }
108
- }();
109
- return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(function () {}) : void 0);
110
- } catch (e) {
111
- return Promise.reject(e);
112
- }
113
- };
114
- /**
115
- * Logic to process the edit state dirty.
116
- *
117
- * @param oController The current controller referenced.
118
- * @param fnCancelFunction The cancel function
119
- * @param processFunctionForDrafts The functon to process the handler
120
- * @param navigationType The navigation type for which the function should be called
121
- * @param bSilentlyKeepDraftOnForwardNavigation The parameter to determine whether to skip the popup appearance in forward case
122
- * @param bSkipBindingToView The optional parameter to skip the binding to the view.
123
- */
124
- var processEditStateDirty = function (oController, fnCancelFunction, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView) {
125
- try {
126
- if (navigationType === NavigationType.ForwardNavigation && bSilentlyKeepDraftOnForwardNavigation) {
127
- // In case we have a "forward navigation" and an additional parameter set in the manifest
128
- // we "silently" keep the draft
129
- processFunctionForDrafts();
130
- } else {
131
- // The CreationDateTime and LastChangeDateTime are NOT equal, so we are currently editing
132
- // an existing draft and need to distinguish depending on if any changes
133
- // have been made in the current editing session or not
134
- // Changes have been made in the current editing session so we want
135
- // to show the dataloss dialog and let the user decide
136
- DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
137
- }
138
- return Promise.resolve();
139
- } catch (e) {
140
- return Promise.reject(e);
141
- }
142
- };
143
- /**
144
- * Logic to process the draft editing for existing entity.
145
- *
146
- * @param oController The current controller referenced.
147
- * @param oContext The context of the current call
148
- * @param processFunctionForDrafts The functon to process the handler
149
- * @param navigationType The navigation type for which the function should be called
150
- */
151
- var processEditingDraftForExistingEntity = function (oController, oContext, processFunctionForDrafts, navigationType) {
152
- try {
153
- var _temp9 = function () {
154
- if (navigationType === NavigationType.BackNavigation) {
155
- var mParameters = {
156
- skipDiscardPopover: true
157
- };
158
- var _temp10 = _catch(function () {
159
- return Promise.resolve(oController.editFlow.cancelDocument(oContext, mParameters)).then(function () {
160
- processFunctionForDrafts();
161
- });
162
- }, function (error) {
163
- Log.error("Error while canceling the document", error);
164
- });
165
- if (_temp10 && _temp10.then) return _temp10.then(function () {});
166
- } else {
167
- // In case of a forward navigation we silently keep the draft and only
168
- // execute the followup function.
169
- processFunctionForDrafts();
170
- }
171
- }();
172
- // We are editing a draft for an existing active entity
173
- // The CreationDateTime and LastChangeDateTime are equal, so this draft was
174
- // never saved before, hence we're currently editing a newly created draft for
175
- // an existing active entity for the first time.
176
- // Also there have so far been no changes made to the draft and in this
177
- // case we want to silently navigate and delete the draftin case of a back
178
- // navigation but in case of a forward navigation we want to silently keep it!
179
- return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function () {}) : void 0);
180
- } catch (e) {
181
- return Promise.reject(e);
182
- }
183
- };
184
- /**
185
- * Logic to process the mode with no active entity.
186
- *
187
- * @param draftAdminData Admin data
188
- * @param fnCancelFunction The cancel function
189
- * @param oController The current controller referenced
190
- * @param processFunctionForDrafts The functon to process the handler
191
- * @param navigationType The navigation type for which the function should be called
192
- * @param bSilentlyKeepDraftOnForwardNavigation The parameter to determine whether to skip the popup appearance in forward case
193
- * @param bSkipBindingToView The optional parameter to skip the binding to the view
194
- */
195
- var processNoActiveEntityMode = function (draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, navigationType, bSilentlyKeepDraftOnForwardNavigation, bSkipBindingToView) {
196
- try {
197
- var _temp4 = function () {
198
- if (EditState.isEditStateDirty()) {
199
- var _temp5 = function () {
200
- if (draftAdminData.CreationDateTime === draftAdminData.LastChangeDateTime && navigationType === NavigationType.BackNavigation) {
201
- var _temp6 = _catch(function () {
202
- return Promise.resolve(DataLossOrDraftDiscardHandler.discardDraft(oController, bSkipBindingToView)).then(function () {
203
- processFunctionForDrafts();
204
- });
205
- }, function (error) {
206
- Log.error("Error while canceling the document", error);
207
- });
208
- if (_temp6 && _temp6.then) return _temp6.then(function () {});
209
- } else if (navigationType === NavigationType.ForwardNavigation && bSilentlyKeepDraftOnForwardNavigation) {
210
- // In case we have a "forward navigation" and an additional parameter set in the manifest
211
- // we "silently" keep the draft
212
- processFunctionForDrafts();
213
- } else {
214
- // In this case data is being changed or a forward navigation is triggered
215
- // and we always want to show the dataloss dialog on navigation
216
- DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
217
- }
218
- }();
219
- if (_temp5 && _temp5.then) return _temp5.then(function () {});
220
- } else {
221
- // We are editing a draft which has been created earlier but never saved to active
222
- // version and since the edit state is not dirty, there have been no user changes
223
- // so in this case we want to silently navigate and do nothing
224
- processFunctionForDrafts();
225
- }
226
- }();
227
- // There is no active entity so we are editing either newly created data or
228
- // a draft which has never been saved to active version
229
- // Since we want to react differently in the two situations, we have to check the
230
- // dirty state
231
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
232
- } catch (e) {
233
- return Promise.reject(e);
234
- }
235
- };
236
- /**
237
- * Logic to process the fcl mode.
238
- *
239
- * @param draftAdminData Admin data
240
- * @param fnCancelFunction The cancel function
241
- * @param oController The current controller referenced
242
- * @param processFunctionForDrafts The functon to process the handler
243
- * @param bSkipBindingToView The optional parameter to skip the binding to the view
244
- */
245
- var processFclMode = function (draftAdminData, fnCancelFunction, oController, processFunctionForDrafts, bSkipBindingToView) {
246
- try {
247
- // The application is running in FCL mode so in this case we fall back to
248
- // the old logic since the dirty state handling is not properly working
249
- // for FCL.
250
- if (draftAdminData.CreationDateTime !== draftAdminData.LastChangeDateTime) {
251
- DataLossOrDraftDiscardHandler.performAfterDiscardorKeepDraft(processFunctionForDrafts, fnCancelFunction, oController, bSkipBindingToView);
252
- } else {
253
- processFunctionForDrafts();
254
- }
255
- return Promise.resolve();
256
- } catch (e) {
257
- return Promise.reject(e);
258
- }
259
- };
260
- /* Enum for navigation types */
261
- var NavigationType;
262
- /**
263
- * The method checks whether an optional parameter in the manifest is set to silently keep the draft in case a forward navigation is triggered.
264
- *
265
- * @param pageController The reference to the current PageController instance
266
- * @returns Boolean value with true or false to silently keep the draft
267
- */
268
- (function (NavigationType) {
269
- NavigationType["BackNavigation"] = "BackNavigation";
270
- NavigationType["ForwardNavigation"] = "ForwardNavigation";
271
- })(NavigationType || (NavigationType = {}));
272
- function silentlyKeepDraftOnForwardNavigation(pageController) {
273
- var _oManifest$sapFe, _oManifest$sapFe$app;
274
- var rbSilentlyKeep = false;
275
- var oManifest = pageController.getAppComponent().getManifest();
276
- rbSilentlyKeep = (oManifest === null || oManifest === void 0 ? void 0 : (_oManifest$sapFe = oManifest["sap.fe"]) === null || _oManifest$sapFe === void 0 ? void 0 : (_oManifest$sapFe$app = _oManifest$sapFe.app) === null || _oManifest$sapFe$app === void 0 ? void 0 : _oManifest$sapFe$app.silentlyKeepDraftOnForwardNavigation) || false;
277
- return rbSilentlyKeep;
278
- }
279
- var draftDataLossPopup = {
280
- processDataLossOrDraftDiscardConfirmation: processDataLossOrDraftDiscardConfirmation,
281
- silentlyKeepDraftOnForwardNavigation: silentlyKeepDraftOnForwardNavigation,
282
- NavigationType: NavigationType,
283
- processFclMode: processFclMode,
284
- processNoActiveEntityMode: processNoActiveEntityMode,
285
- processEditingDraftForExistingEntity: processEditingDraftForExistingEntity,
286
- processEditStateDirty: processEditStateDirty
287
- };
288
- return draftDataLossPopup;
289
- }, false);
290
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwicHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24iLCJmblByb2Nlc3NGdW5jdGlvbiIsImZuQ2FuY2VsRnVuY3Rpb24iLCJvQ29udGV4dCIsIm9Db250cm9sbGVyIiwiYlNraXBCaW5kaW5nVG9WaWV3IiwibmF2aWdhdGlvblR5cGUiLCJOYXZpZ2F0aW9uVHlwZSIsIkJhY2tOYXZpZ2F0aW9uIiwib1ZpZXciLCJnZXRWaWV3Iiwib01vZGVsIiwiZ2V0TW9kZWwiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwic0VudGl0eVNldCIsImdldFZpZXdEYXRhIiwiZW50aXR5U2V0Iiwib0RyYWZ0Um9vdCIsImdldE9iamVjdCIsIm9VSU1vZGVsIiwiYklzRWRpdGFibGUiLCJnZXRQcm9wZXJ0eSIsImRyYWZ0RGF0YUNvbnRleHQiLCJiaW5kQ29udGV4dCIsImdldFBhdGgiLCJnZXRCb3VuZENvbnRleHQiLCJyZXF1ZXN0T2JqZWN0IiwiZHJhZnRBZG1pbkRhdGEiLCJwcm9jZXNzRHJhZnRBZG1pbkRhdGEiLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsImNvbGxhYm9yYXRpb25Db25uZWN0ZWQiLCJBY3Rpdml0eVN5bmMiLCJpc0Nvbm5lY3RlZCIsInByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyIsImRpc2Nvbm5lY3QiLCJhcmdzIiwiYXBwbHkiLCJiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIiwic2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0Um9vdFZpZXdDb250cm9sbGVyIiwiaXNGY2xFbmFibGVkIiwicHJvY2Vzc0ZjbE1vZGUiLCJIYXNBY3RpdmVFbnRpdHkiLCJwcm9jZXNzTm9BY3RpdmVFbnRpdHlNb2RlIiwiQ3JlYXRpb25EYXRlVGltZSIsIkxhc3RDaGFuZ2VEYXRlVGltZSIsInByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eSIsIkVkaXRTdGF0ZSIsImlzRWRpdFN0YXRlRGlydHkiLCJwcm9jZXNzRWRpdFN0YXRlRGlydHkiLCJGb3J3YXJkTmF2aWdhdGlvbiIsIkRhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyIiwicGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0IiwibVBhcmFtZXRlcnMiLCJza2lwRGlzY2FyZFBvcG92ZXIiLCJlZGl0RmxvdyIsImNhbmNlbERvY3VtZW50IiwiZGlzY2FyZERyYWZ0IiwicGFnZUNvbnRyb2xsZXIiLCJyYlNpbGVudGx5S2VlcCIsIm9NYW5pZmVzdCIsImdldE1hbmlmZXN0IiwiYXBwIiwiZHJhZnREYXRhTG9zc1BvcHVwIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJkcmFmdERhdGFMb3NzUG9wdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQWN0aXZpdHlTeW5jIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0FjdGl2aXR5U3luY1wiO1xuaW1wb3J0IERhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9scy9EYXRhTG9zc09yRHJhZnREaXNjYXJkL0RhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyXCI7XG5pbXBvcnQgRWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0VkaXRTdGF0ZVwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uLy4uL1BhZ2VDb250cm9sbGVyXCI7XG5cbi8qIEVudW0gZm9yIG5hdmlnYXRpb24gdHlwZXMgKi9cbmVudW0gTmF2aWdhdGlvblR5cGUge1xuXHRCYWNrTmF2aWdhdGlvbiA9IFwiQmFja05hdmlnYXRpb25cIixcblx0Rm9yd2FyZE5hdmlnYXRpb24gPSBcIkZvcndhcmROYXZpZ2F0aW9uXCJcbn1cblxuLyoqXG4gKiBUaGUgbWV0aG9kIGNoZWNrcyB3aGV0aGVyIGFuIG9wdGlvbmFsIHBhcmFtZXRlciBpbiB0aGUgbWFuaWZlc3QgaXMgc2V0IHRvIHNpbGVudGx5IGtlZXAgdGhlIGRyYWZ0IGluIGNhc2UgYSBmb3J3YXJkIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkLlxuICpcbiAqIEBwYXJhbSBwYWdlQ29udHJvbGxlciBUaGUgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IFBhZ2VDb250cm9sbGVyIGluc3RhbmNlXG4gKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlIHdpdGggdHJ1ZSBvciBmYWxzZSB0byBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdFxuICovXG5mdW5jdGlvbiBzaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24ocGFnZUNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKSB7XG5cdGxldCByYlNpbGVudGx5S2VlcCA9IGZhbHNlO1xuXHRjb25zdCBvTWFuaWZlc3QgPSBwYWdlQ29udHJvbGxlci5nZXRBcHBDb21wb25lbnQoKS5nZXRNYW5pZmVzdCgpIGFzIGFueTtcblx0cmJTaWxlbnRseUtlZXAgPSBvTWFuaWZlc3Q/LltcInNhcC5mZVwiXT8uYXBwPy5zaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24gfHwgZmFsc2U7XG5cdHJldHVybiByYlNpbGVudGx5S2VlcDtcbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBmY2wgbW9kZS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3RvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3IFRoZSBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gc2tpcCB0aGUgYmluZGluZyB0byB0aGUgdmlld1xuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRmNsTW9kZShcblx0ZHJhZnRBZG1pbkRhdGE6IGFueSxcblx0Zm5DYW5jZWxGdW5jdGlvbjogYW55LFxuXHRvQ29udHJvbGxlcjogYW55LFxuXHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHM6IGFueSxcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhblxuKSB7XG5cdC8vIFRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluIEZDTCBtb2RlIHNvIGluIHRoaXMgY2FzZSB3ZSBmYWxsIGJhY2sgdG9cblx0Ly8gdGhlIG9sZCBsb2dpYyBzaW5jZSB0aGUgZGlydHkgc3RhdGUgaGFuZGxpbmcgaXMgbm90IHByb3Blcmx5IHdvcmtpbmdcblx0Ly8gZm9yIEZDTC5cblx0aWYgKGRyYWZ0QWRtaW5EYXRhLkNyZWF0aW9uRGF0ZVRpbWUgIT09IGRyYWZ0QWRtaW5EYXRhLkxhc3RDaGFuZ2VEYXRlVGltZSkge1xuXHRcdERhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLnBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdChcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyxcblx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdGJTa2lwQmluZGluZ1RvVmlld1xuXHRcdCk7XG5cdH0gZWxzZSB7XG5cdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdH1cbn1cblxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBtb2RlIHdpdGggbm8gYWN0aXZlIGVudGl0eS5cbiAqXG4gKiBAcGFyYW0gZHJhZnRBZG1pbkRhdGEgQWRtaW4gZGF0YVxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3RvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGUgVGhlIG5hdmlnYXRpb24gdHlwZSBmb3Igd2hpY2ggdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWRcbiAqIEBwYXJhbSBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIFRoZSBwYXJhbWV0ZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gc2tpcCB0aGUgcG9wdXAgYXBwZWFyYW5jZSBpbiBmb3J3YXJkIGNhc2VcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXcgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NOb0FjdGl2ZUVudGl0eU1vZGUoXG5cdGRyYWZ0QWRtaW5EYXRhOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzOiBhbnksXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogYm9vbGVhbixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhblxuKSB7XG5cdC8vIFRoZXJlIGlzIG5vIGFjdGl2ZSBlbnRpdHkgc28gd2UgYXJlIGVkaXRpbmcgZWl0aGVyIG5ld2x5IGNyZWF0ZWQgZGF0YSBvclxuXHQvLyBhIGRyYWZ0IHdoaWNoIGhhcyBuZXZlciBiZWVuIHNhdmVkIHRvIGFjdGl2ZSB2ZXJzaW9uXG5cdC8vIFNpbmNlIHdlIHdhbnQgdG8gcmVhY3QgZGlmZmVyZW50bHkgaW4gdGhlIHR3byBzaXR1YXRpb25zLCB3ZSBoYXZlIHRvIGNoZWNrIHRoZVxuXHQvLyBkaXJ0eSBzdGF0ZVxuXHRpZiAoRWRpdFN0YXRlLmlzRWRpdFN0YXRlRGlydHkoKSkge1xuXHRcdGlmIChkcmFmdEFkbWluRGF0YS5DcmVhdGlvbkRhdGVUaW1lID09PSBkcmFmdEFkbWluRGF0YS5MYXN0Q2hhbmdlRGF0ZVRpbWUgJiYgbmF2aWdhdGlvblR5cGUgPT09IE5hdmlnYXRpb25UeXBlLkJhY2tOYXZpZ2F0aW9uKSB7XG5cdFx0XHQvLyBpbiBjYXNlIHdlIGhhdmUgdW50b3VjaGVkIGNoYW5nZXMgZm9yIHRoZSBkcmFmdCBhbmQgYSBcImJhY2tcIlxuXHRcdFx0Ly8gbmF2aWdhdGlvbiB3ZSBjYW4gc2lsZW50bHkgZGlzY2FyZCB0aGUgZHJhZnQgYWdhaW5cblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL25vLW5lc3Rpbmdcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGF3YWl0IERhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLmRpc2NhcmREcmFmdChvQ29udHJvbGxlciwgYlNraXBCaW5kaW5nVG9WaWV3KTtcblx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0XHR9IGNhdGNoIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGNhbmNlbGluZyB0aGUgZG9jdW1lbnRcIiwgZXJyb3IpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAobmF2aWdhdGlvblR5cGUgPT09IE5hdmlnYXRpb25UeXBlLkZvcndhcmROYXZpZ2F0aW9uICYmIGJTaWxlbnRseUtlZXBEcmFmdE9uRm9yd2FyZE5hdmlnYXRpb24pIHtcblx0XHRcdC8vIEluIGNhc2Ugd2UgaGF2ZSBhIFwiZm9yd2FyZCBuYXZpZ2F0aW9uXCIgYW5kIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHNldCBpbiB0aGUgbWFuaWZlc3Rcblx0XHRcdC8vIHdlIFwic2lsZW50bHlcIiBrZWVwIHRoZSBkcmFmdFxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIEluIHRoaXMgY2FzZSBkYXRhIGlzIGJlaW5nIGNoYW5nZWQgb3IgYSBmb3J3YXJkIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkXG5cdFx0XHQvLyBhbmQgd2UgYWx3YXlzIHdhbnQgdG8gc2hvdyB0aGUgZGF0YWxvc3MgZGlhbG9nIG9uIG5hdmlnYXRpb25cblx0XHRcdERhdGFMb3NzT3JEcmFmdERpc2NhcmRIYW5kbGVyLnBlcmZvcm1BZnRlckRpc2NhcmRvcktlZXBEcmFmdChcblx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0XHRmbkNhbmNlbEZ1bmN0aW9uLFxuXHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0XHQpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHQvLyBXZSBhcmUgZWRpdGluZyBhIGRyYWZ0IHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgZWFybGllciBidXQgbmV2ZXIgc2F2ZWQgdG8gYWN0aXZlXG5cdFx0Ly8gdmVyc2lvbiBhbmQgc2luY2UgdGhlIGVkaXQgc3RhdGUgaXMgbm90IGRpcnR5LCB0aGVyZSBoYXZlIGJlZW4gbm8gdXNlciBjaGFuZ2VzXG5cdFx0Ly8gc28gaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gc2lsZW50bHkgbmF2aWdhdGUgYW5kIGRvIG5vdGhpbmdcblx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0fVxufVxuLyoqXG4gKiBMb2dpYyB0byBwcm9jZXNzIHRoZSBkcmFmdCBlZGl0aW5nIGZvciBleGlzdGluZyBlbnRpdHkuXG4gKlxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZC5cbiAqIEBwYXJhbSBvQ29udGV4dCBUaGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBjYWxsXG4gKiBAcGFyYW0gcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzIFRoZSBmdW5jdG9uIHRvIHByb2Nlc3MgdGhlIGhhbmRsZXJcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHkoXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdG9Db250ZXh0OiBhbnksXG5cdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0czogYW55LFxuXHRuYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGVcbikge1xuXHQvLyBXZSBhcmUgZWRpdGluZyBhIGRyYWZ0IGZvciBhbiBleGlzdGluZyBhY3RpdmUgZW50aXR5XG5cdC8vIFRoZSBDcmVhdGlvbkRhdGVUaW1lIGFuZCBMYXN0Q2hhbmdlRGF0ZVRpbWUgYXJlIGVxdWFsLCBzbyB0aGlzIGRyYWZ0IHdhc1xuXHQvLyBuZXZlciBzYXZlZCBiZWZvcmUsIGhlbmNlIHdlJ3JlIGN1cnJlbnRseSBlZGl0aW5nIGEgbmV3bHkgY3JlYXRlZCBkcmFmdCBmb3Jcblx0Ly8gYW4gZXhpc3RpbmcgYWN0aXZlIGVudGl0eSBmb3IgdGhlIGZpcnN0IHRpbWUuXG5cdC8vIEFsc28gdGhlcmUgaGF2ZSBzbyBmYXIgYmVlbiBubyBjaGFuZ2VzIG1hZGUgdG8gdGhlIGRyYWZ0IGFuZCBpbiB0aGlzXG5cdC8vIGNhc2Ugd2Ugd2FudCB0byBzaWxlbnRseSBuYXZpZ2F0ZSBhbmQgZGVsZXRlIHRoZSBkcmFmdGluIGNhc2Ugb2YgYSBiYWNrXG5cdC8vIG5hdmlnYXRpb24gYnV0IGluIGNhc2Ugb2YgYSBmb3J3YXJkIG5hdmlnYXRpb24gd2Ugd2FudCB0byBzaWxlbnRseSBrZWVwIGl0IVxuXHRpZiAobmF2aWdhdGlvblR5cGUgPT09IE5hdmlnYXRpb25UeXBlLkJhY2tOYXZpZ2F0aW9uKSB7XG5cdFx0Y29uc3QgbVBhcmFtZXRlcnMgPSB7XG5cdFx0XHRza2lwRGlzY2FyZFBvcG92ZXI6IHRydWVcblx0XHR9O1xuXG5cdFx0dHJ5IHtcblx0XHRcdGF3YWl0IG9Db250cm9sbGVyLmVkaXRGbG93LmNhbmNlbERvY3VtZW50KG9Db250ZXh0LCBtUGFyYW1ldGVycyk7XG5cdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0XHR9IGNhdGNoIChlcnJvcjogYW55KSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBjYW5jZWxpbmcgdGhlIGRvY3VtZW50XCIsIGVycm9yKTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gSW4gY2FzZSBvZiBhIGZvcndhcmQgbmF2aWdhdGlvbiB3ZSBzaWxlbnRseSBrZWVwIHRoZSBkcmFmdCBhbmQgb25seVxuXHRcdC8vIGV4ZWN1dGUgdGhlIGZvbGxvd3VwIGZ1bmN0aW9uLlxuXHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHR9XG59XG5cbi8qKlxuICogTG9naWMgdG8gcHJvY2VzcyB0aGUgZWRpdCBzdGF0ZSBkaXJ0eS5cbiAqXG4gKiBAcGFyYW0gb0NvbnRyb2xsZXIgVGhlIGN1cnJlbnQgY29udHJvbGxlciByZWZlcmVuY2VkLlxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb24gVGhlIGNhbmNlbCBmdW5jdGlvblxuICogQHBhcmFtIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyBUaGUgZnVuY3RvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGUgVGhlIG5hdmlnYXRpb24gdHlwZSBmb3Igd2hpY2ggdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWRcbiAqIEBwYXJhbSBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uIFRoZSBwYXJhbWV0ZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gc2tpcCB0aGUgcG9wdXAgYXBwZWFyYW5jZSBpbiBmb3J3YXJkIGNhc2VcbiAqIEBwYXJhbSBiU2tpcEJpbmRpbmdUb1ZpZXcgVGhlIG9wdGlvbmFsIHBhcmFtZXRlciB0byBza2lwIHRoZSBiaW5kaW5nIHRvIHRoZSB2aWV3LlxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRWRpdFN0YXRlRGlydHkoXG5cdG9Db250cm9sbGVyOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzOiBhbnksXG5cdG5hdmlnYXRpb25UeXBlOiBOYXZpZ2F0aW9uVHlwZSxcblx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogYm9vbGVhbixcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhblxuKSB7XG5cdGlmIChuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuRm9yd2FyZE5hdmlnYXRpb24gJiYgYlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbikge1xuXHRcdC8vIEluIGNhc2Ugd2UgaGF2ZSBhIFwiZm9yd2FyZCBuYXZpZ2F0aW9uXCIgYW5kIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHNldCBpbiB0aGUgbWFuaWZlc3Rcblx0XHQvLyB3ZSBcInNpbGVudGx5XCIga2VlcCB0aGUgZHJhZnRcblx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMoKTtcblx0fSBlbHNlIHtcblx0XHQvLyBUaGUgQ3JlYXRpb25EYXRlVGltZSBhbmQgTGFzdENoYW5nZURhdGVUaW1lIGFyZSBOT1QgZXF1YWwsIHNvIHdlIGFyZSBjdXJyZW50bHkgZWRpdGluZ1xuXHRcdC8vIGFuIGV4aXN0aW5nIGRyYWZ0IGFuZCBuZWVkIHRvIGRpc3Rpbmd1aXNoIGRlcGVuZGluZyBvbiBpZiBhbnkgY2hhbmdlc1xuXHRcdC8vIGhhdmUgYmVlbiBtYWRlIGluIHRoZSBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbiBvciBub3Rcblx0XHQvLyBDaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIGluIHRoZSBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbiBzbyB3ZSB3YW50XG5cdFx0Ly8gdG8gc2hvdyB0aGUgZGF0YWxvc3MgZGlhbG9nIGFuZCBsZXQgdGhlIHVzZXIgZGVjaWRlXG5cdFx0RGF0YUxvc3NPckRyYWZ0RGlzY2FyZEhhbmRsZXIucGVyZm9ybUFmdGVyRGlzY2FyZG9yS2VlcERyYWZ0KFxuXHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0KTtcblx0fVxufVxuXG4vKipcbiAqIExvZ2ljIHRvIHByb2Nlc3MgdGhlIGFkbWluIGRhdGEuXG4gKlxuICogQHBhcmFtIGRyYWZ0QWRtaW5EYXRhIEFkbWluIGRhdGFcbiAqIEBwYXJhbSBmblByb2Nlc3NGdW5jdGlvbiBUaGUgZnVuY3RvbiB0byBwcm9jZXNzIHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0gZm5DYW5jZWxGdW5jdGlvbiBUaGUgY2FuY2VsIGZ1bmN0aW9uXG4gKiBAcGFyYW0gb0NvbnRleHQgVGhlIGNvbnRleHQgb2YgdGhlIGN1cnJlbnQgY2FsbFxuICogQHBhcmFtIG9Db250cm9sbGVyIFRoZSBjdXJyZW50IGNvbnRyb2xsZXIgcmVmZXJlbmNlZFxuICogQHBhcmFtIGJTa2lwQmluZGluZ1RvVmlldyBUaGUgb3B0aW9uYWwgcGFyYW1ldGVyIHRvIHNraXAgdGhlIGJpbmRpbmcgdG8gdGhlIHZpZXdcbiAqIEBwYXJhbSBuYXZpZ2F0aW9uVHlwZSBUaGUgbmF2aWdhdGlvbiB0eXBlIGZvciB3aGljaCB0aGUgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZFxuICovXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzRHJhZnRBZG1pbkRhdGEoXG5cdGRyYWZ0QWRtaW5EYXRhOiBhbnksXG5cdGZuUHJvY2Vzc0Z1bmN0aW9uOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0b0NvbnRleHQ6IGFueSxcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlID0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb25cbikge1xuXHRjb25zdCBjb2xsYWJvcmF0aW9uQ29ubmVjdGVkID0gQWN0aXZpdHlTeW5jLmlzQ29ubmVjdGVkKG9Db250cm9sbGVyLmdldFZpZXcoKSk7XG5cdGNvbnN0IHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cyA9ICFjb2xsYWJvcmF0aW9uQ29ubmVjdGVkXG5cdFx0PyBmblByb2Nlc3NGdW5jdGlvblxuXHRcdDogZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0XHRcdEFjdGl2aXR5U3luYy5kaXNjb25uZWN0KG9Db250cm9sbGVyLmdldFZpZXcoKSk7XG5cdFx0XHRcdGZuUHJvY2Vzc0Z1bmN0aW9uLmFwcGx5KG51bGwsIC4uLmFyZ3MpO1xuXHRcdCAgfTtcblxuXHRjb25zdCBiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uID0gc2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uKG9Db250cm9sbGVyKTtcblxuXHRpZiAoZHJhZnRBZG1pbkRhdGEpIHtcblx0XHRpZiAob0NvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkuaXNGY2xFbmFibGVkKCkpIHtcblx0XHRcdGF3YWl0IHByb2Nlc3NGY2xNb2RlKGRyYWZ0QWRtaW5EYXRhLCBmbkNhbmNlbEZ1bmN0aW9uLCBvQ29udHJvbGxlciwgcHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLCBiU2tpcEJpbmRpbmdUb1ZpZXcpO1xuXHRcdH0gZWxzZSBpZiAoIW9Db250ZXh0LmdldE9iamVjdCgpLkhhc0FjdGl2ZUVudGl0eSkge1xuXHRcdFx0cHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZShcblx0XHRcdFx0ZHJhZnRBZG1pbkRhdGEsXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdG9Db250cm9sbGVyLFxuXHRcdFx0XHRwcm9jZXNzRnVuY3Rpb25Gb3JEcmFmdHMsXG5cdFx0XHRcdG5hdmlnYXRpb25UeXBlLFxuXHRcdFx0XHRiU2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHRcdFx0XHRiU2tpcEJpbmRpbmdUb1ZpZXdcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmIChkcmFmdEFkbWluRGF0YS5DcmVhdGlvbkRhdGVUaW1lID09PSBkcmFmdEFkbWluRGF0YS5MYXN0Q2hhbmdlRGF0ZVRpbWUpIHtcblx0XHRcdHByb2Nlc3NFZGl0aW5nRHJhZnRGb3JFeGlzdGluZ0VudGl0eShvQ29udHJvbGxlciwgb0NvbnRleHQsIHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cywgbmF2aWdhdGlvblR5cGUpO1xuXHRcdH0gZWxzZSBpZiAoRWRpdFN0YXRlLmlzRWRpdFN0YXRlRGlydHkoKSkge1xuXHRcdFx0cHJvY2Vzc0VkaXRTdGF0ZURpcnR5KFxuXHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0Zm5DYW5jZWxGdW5jdGlvbixcblx0XHRcdFx0cHJvY2Vzc0Z1bmN0aW9uRm9yRHJhZnRzLFxuXHRcdFx0XHRuYXZpZ2F0aW9uVHlwZSxcblx0XHRcdFx0YlNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbixcblx0XHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3XG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUaGUgdXNlciBzdGFydGVkIGVkaXRpbmcgdGhlIGV4aXN0aW5nIGRyYWZ0IGJ1dCBkaWQgbm90IG1ha2UgYW55IGNoYW5nZXNcblx0XHRcdC8vIGluIHRoZSBjdXJyZW50IGVkaXRpbmcgc2Vzc2lvbiwgc28gaW4gdGhpcyBjYXNlIHdlIGRvIG5vdCB3YW50XG5cdFx0XHQvLyB0byBzaG93IHRoZSBkYXRhbG9zcyBkaWFsb2cgYnV0IGp1c3Qga2VlcCB0aGUgZHJhZnRcblx0XHRcdHByb2Nlc3NGdW5jdGlvbkZvckRyYWZ0cygpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHR9XG59XG5cbi8qKlxuICogVGhlIGdlbmVyYWwgaGFuZGxlciBpbiB3aGljaCB0aGUgaW5kaXZpZHVhbCBzdGVwcyBhcmUgY2FsbGVkLlxuICpcbiAqIEBwYXJhbSBmblByb2Nlc3NGdW5jdGlvblxuICogQHBhcmFtIGZuQ2FuY2VsRnVuY3Rpb25cbiAqIEBwYXJhbSBvQ29udGV4dFxuICogQHBhcmFtIG9Db250cm9sbGVyXG4gKiBAcGFyYW0gYlNraXBCaW5kaW5nVG9WaWV3XG4gKiBAcGFyYW0gbmF2aWdhdGlvblR5cGVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24oXG5cdGZuUHJvY2Vzc0Z1bmN0aW9uOiBhbnksXG5cdGZuQ2FuY2VsRnVuY3Rpb246IGFueSxcblx0b0NvbnRleHQ6IGFueSxcblx0b0NvbnRyb2xsZXI6IGFueSxcblx0YlNraXBCaW5kaW5nVG9WaWV3PzogYm9vbGVhbixcblx0bmF2aWdhdGlvblR5cGU6IE5hdmlnYXRpb25UeXBlID0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb25cbikge1xuXHRjb25zdCBvVmlldyA9IG9Db250cm9sbGVyLmdldFZpZXcoKTtcblx0Y29uc3Qgb01vZGVsID0gb0NvbnRleHQuZ2V0TW9kZWwoKTtcblx0Y29uc3Qgb01ldGFNb2RlbCA9IG9Nb2RlbC5nZXRNZXRhTW9kZWwoKTtcblx0Y29uc3Qgc0VudGl0eVNldCA9IG9WaWV3LmdldFZpZXdEYXRhKCkuZW50aXR5U2V0ID8/IFwiXCI7XG5cdGNvbnN0IG9EcmFmdFJvb3QgPSBzRW50aXR5U2V0ICYmIG9NZXRhTW9kZWwuZ2V0T2JqZWN0KFwiL1wiICsgc0VudGl0eVNldCArIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5EcmFmdFJvb3RcIik7XG5cdGNvbnN0IG9VSU1vZGVsID0gb1ZpZXcuZ2V0TW9kZWwoXCJ1aVwiKTtcblx0Y29uc3QgYklzRWRpdGFibGUgPSBvVUlNb2RlbC5nZXRQcm9wZXJ0eShcIi9pc0VkaXRhYmxlXCIpO1xuXHRjb25zdCBkcmFmdERhdGFDb250ZXh0ID0gb01vZGVsLmJpbmRDb250ZXh0KGAke29Db250ZXh0LmdldFBhdGgoKX0vRHJhZnRBZG1pbmlzdHJhdGl2ZURhdGFgKS5nZXRCb3VuZENvbnRleHQoKTtcblxuXHQvLyBTaG91bGRuJ3QgZGlzcGxheSBkYXRhIGxvc3MgcG9wb3ZlciBvbiBzaGVsbCBiYWNrIG5hdmlnYXRpb24gZnJvbSBzdWItb2JqZWN0IHBhZ2VzXG5cdC8vIGFuZCB3aGVuIG9iamVjdCBwYWdlIGlzIGluIGRpc3BsYXkgbW9kZVxuXHRpZiAob0NvbnRleHQgJiYgb0NvbnRleHQuZ2V0T2JqZWN0KCkgJiYgKCghb0RyYWZ0Um9vdCAmJiBuYXZpZ2F0aW9uVHlwZSA9PT0gTmF2aWdhdGlvblR5cGUuQmFja05hdmlnYXRpb24pIHx8ICFiSXNFZGl0YWJsZSkpIHtcblx0XHRmblByb2Nlc3NGdW5jdGlvbigpO1xuXHR9IGVsc2Uge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBkcmFmdEFkbWluRGF0YSA9IGF3YWl0IGRyYWZ0RGF0YUNvbnRleHQucmVxdWVzdE9iamVjdCgpO1xuXHRcdFx0YXdhaXQgcHJvY2Vzc0RyYWZ0QWRtaW5EYXRhKFxuXHRcdFx0XHRkcmFmdEFkbWluRGF0YSxcblx0XHRcdFx0Zm5Qcm9jZXNzRnVuY3Rpb24sXG5cdFx0XHRcdGZuQ2FuY2VsRnVuY3Rpb24sXG5cdFx0XHRcdG9Db250ZXh0LFxuXHRcdFx0XHRvQ29udHJvbGxlcixcblx0XHRcdFx0YlNraXBCaW5kaW5nVG9WaWV3LFxuXHRcdFx0XHRuYXZpZ2F0aW9uVHlwZVxuXHRcdFx0KTtcblx0XHR9IGNhdGNoIChvRXJyb3I6IGFueSkge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IHJldHJpZXZlIGRyYWZ0RGF0YUNvbnRleHQgaW5mb3JtYXRpb25cIiwgb0Vycm9yKTtcblx0XHR9XG5cdH1cbn1cblxuY29uc3QgZHJhZnREYXRhTG9zc1BvcHVwID0ge1xuXHRwcm9jZXNzRGF0YUxvc3NPckRyYWZ0RGlzY2FyZENvbmZpcm1hdGlvbjogcHJvY2Vzc0RhdGFMb3NzT3JEcmFmdERpc2NhcmRDb25maXJtYXRpb24sXG5cdHNpbGVudGx5S2VlcERyYWZ0T25Gb3J3YXJkTmF2aWdhdGlvbjogc2lsZW50bHlLZWVwRHJhZnRPbkZvcndhcmROYXZpZ2F0aW9uLFxuXHROYXZpZ2F0aW9uVHlwZTogTmF2aWdhdGlvblR5cGUsXG5cdHByb2Nlc3NGY2xNb2RlOiBwcm9jZXNzRmNsTW9kZSxcblx0cHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZTogcHJvY2Vzc05vQWN0aXZlRW50aXR5TW9kZSxcblx0cHJvY2Vzc0VkaXRpbmdEcmFmdEZvckV4aXN0aW5nRW50aXR5OiBwcm9jZXNzRWRpdGluZ0RyYWZ0Rm9yRXhpc3RpbmdFbnRpdHksXG5cdHByb2Nlc3NFZGl0U3RhdGVEaXJ0eTogcHJvY2Vzc0VkaXRTdGF0ZURpcnR5XG59O1xuXG5leHBvcnQgZGVmYXVsdCBkcmFmdERhdGFMb3NzUG9wdXA7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFrakJPLGdCQUFnQkEsSUFBSSxFQUFFQyxPQUFPLEVBQUU7SUFDckMsSUFBSTtNQUNILElBQUlDLE1BQU0sR0FBR0YsSUFBSSxFQUFFO0lBQ3BCLENBQUMsQ0FBQyxPQUFNRyxDQUFDLEVBQUU7TUFDVixPQUFPRixPQUFPLENBQUNFLENBQUMsQ0FBQztJQUNsQjtJQUNBLElBQUlELE1BQU0sSUFBSUEsTUFBTSxDQUFDRSxJQUFJLEVBQUU7TUFDMUIsT0FBT0YsTUFBTSxDQUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUVILE9BQU8sQ0FBQztJQUNwQztJQUNBLE9BQU9DLE1BQU07RUFDZDtFQS9UQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVRBLElBVWVHLHlDQUF5QyxhQUN2REMsaUJBQXNCLEVBQ3RCQyxnQkFB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
5
+ sap.ui.define(["sap/base/Log","sap/fe/core/controllerextensions/collaboration/ActivitySync","sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler","sap/fe/core/helpers/EditState"],function(t,e,a,i){"use strict";var n;(function(t){t["BackNavigation"]="BackNavigation";t["ForwardNavigation"]="ForwardNavigation"})(n||(n={}));function o(t){var e,a;let i=false;const n=t.getAppComponent().getManifest();i=(n===null||n===void 0?void 0:(e=n["sap.fe"])===null||e===void 0?void 0:(a=e.app)===null||a===void 0?void 0:a.silentlyKeepDraftOnForwardNavigation)||false;return i}async function r(t,e,i,n,o){if(t.CreationDateTime!==t.LastChangeDateTime){a.performAfterDiscardorKeepDraft(n,e,i,o)}else{n()}}async function s(e,o,r,s,c,l,f){if(i.isEditStateDirty()){if(e.CreationDateTime===e.LastChangeDateTime&&c===n.BackNavigation){try{await a.discardDraft(r,f);s()}catch(e){t.error("Error while canceling the document",e)}}else if(c===n.ForwardNavigation&&l){s()}else{a.performAfterDiscardorKeepDraft(s,o,r,f)}}else{s()}}async function c(e,a,i,o){if(o===n.BackNavigation){const n={skipDiscardPopover:true};try{await e.editFlow.cancelDocument(a,n);i()}catch(e){t.error("Error while canceling the document",e)}}else{i()}}async function l(t,e,i,o,r,s){if(o===n.ForwardNavigation&&r){i()}else{a.performAfterDiscardorKeepDraft(i,e,t,s)}}async function f(t,a,f,d,g,p){let D=arguments.length>6&&arguments[6]!==undefined?arguments[6]:n.BackNavigation;const v=e.isConnected(g.getView());const u=!v?a:function(){e.disconnect(g.getView());for(var t=arguments.length,i=new Array(t),n=0;n<t;n++){i[n]=arguments[n]}a.apply(null,...i)};const y=o(g);if(t){if(g.getAppComponent().getRootViewController().isFclEnabled()){await r(t,f,g,u,p)}else if(!d.getObject().HasActiveEntity){s(t,f,g,u,D,y,p)}else if(t.CreationDateTime===t.LastChangeDateTime){c(g,d,u,D)}else if(i.isEditStateDirty()){l(g,f,u,D,y,p)}else{u()}}else{a()}}async function d(e,a,i,o,r){let s=arguments.length>5&&arguments[5]!==undefined?arguments[5]:n.BackNavigation;const c=o.getView();const l=i.getModel();const d=l.getMetaModel();const g=c.getViewData().entitySet??"";const p=g&&d.getObject("/"+g+"@com.sap.vocabularies.Common.v1.DraftRoot");const D=c.getModel("ui");const v=D.getProperty("/isEditable");const u=l.bindContext(`${i.getPath()}/DraftAdministrativeData`).getBoundContext();if(i&&i.getObject()&&(!p&&s===n.BackNavigation||!v)){e()}else{try{const t=await u.requestObject();await f(t,e,a,i,o,r,s)}catch(e){t.error("Cannot retrieve draftDataContext information",e)}}}const g={processDataLossOrDraftDiscardConfirmation:d,silentlyKeepDraftOnForwardNavigation:o,NavigationType:n,processFclMode:r,processNoActiveEntityMode:s,processEditingDraftForExistingEntity:c,processEditStateDirty:l};return g},false);
6
+ //# sourceMappingURL=draftDataLossPopup.js.map