@sapui5/sap.fe.core 1.100.0 → 1.102.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 (295) hide show
  1. package/package.json +4 -4
  2. package/src/sap/fe/core/.library +2 -3
  3. package/src/sap/fe/core/AppComponent.js +23 -30
  4. package/src/sap/fe/core/AppComponent.ts +35 -40
  5. package/src/sap/fe/core/AppStateHandler.js +8 -8
  6. package/src/sap/fe/core/AppStateHandler.ts +11 -11
  7. package/src/sap/fe/core/BaseController.js +9 -9
  8. package/src/sap/fe/core/BaseController.ts +3 -4
  9. package/src/sap/fe/core/CommonUtils.js +122 -101
  10. package/src/sap/fe/core/CommonUtils.ts +239 -193
  11. package/src/sap/fe/core/ExtensionAPI.js +12 -13
  12. package/src/sap/fe/core/ExtensionAPI.ts +21 -31
  13. package/src/sap/fe/core/PageController.js +19 -13
  14. package/src/sap/fe/core/PageController.ts +40 -34
  15. package/src/sap/fe/core/TemplateComponent.js +198 -123
  16. package/src/sap/fe/core/TemplateComponent.ts +109 -121
  17. package/src/sap/fe/core/TemplateModel.js +7 -9
  18. package/src/sap/fe/core/TemplateModel.ts +3 -3
  19. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +60 -0
  20. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +37 -0
  21. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +165 -0
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +178 -0
  23. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +935 -0
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +837 -0
  25. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +436 -0
  26. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +431 -0
  27. package/src/sap/fe/core/{BusyLocker.js → controllerextensions/BusyLocker.js} +1 -1
  28. package/src/sap/fe/core/{BusyLocker.ts → controllerextensions/BusyLocker.ts} +7 -7
  29. package/src/sap/fe/core/controllerextensions/EditFlow.js +660 -288
  30. package/src/sap/fe/core/controllerextensions/EditFlow.ts +513 -331
  31. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +11 -11
  32. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -7
  33. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +43 -25
  34. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +132 -103
  35. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +16 -16
  36. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +64 -55
  37. package/src/sap/fe/core/controllerextensions/InternalRouting.js +166 -99
  38. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +187 -149
  39. package/src/sap/fe/core/controllerextensions/KPIManagement.js +14 -14
  40. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -11
  41. package/src/sap/fe/core/controllerextensions/MassEdit.js +13 -12
  42. package/src/sap/fe/core/controllerextensions/MassEdit.ts +22 -22
  43. package/src/sap/fe/core/controllerextensions/MessageHandler.js +14 -26
  44. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +20 -30
  45. package/src/sap/fe/core/controllerextensions/PageReady.js +25 -23
  46. package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -47
  47. package/src/sap/fe/core/controllerextensions/Paginator.js +24 -15
  48. package/src/sap/fe/core/controllerextensions/Paginator.ts +35 -20
  49. package/src/sap/fe/core/controllerextensions/Placeholder.js +10 -10
  50. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  51. package/src/sap/fe/core/controllerextensions/Routing.js +11 -11
  52. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  53. package/src/sap/fe/core/controllerextensions/Share.js +34 -16
  54. package/src/sap/fe/core/controllerextensions/Share.ts +50 -32
  55. package/src/sap/fe/core/controllerextensions/SideEffects.js +15 -15
  56. package/src/sap/fe/core/controllerextensions/SideEffects.ts +64 -65
  57. package/src/sap/fe/core/controllerextensions/ViewState.js +27 -31
  58. package/src/sap/fe/core/controllerextensions/ViewState.ts +103 -102
  59. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +105 -0
  60. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +98 -0
  61. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +360 -0
  62. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ActivitySync.ts +90 -132
  63. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +146 -0
  64. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.ts +18 -8
  65. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +264 -0
  66. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.ts +35 -33
  67. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +100 -0
  68. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/UserDetails.fragment.xml +5 -7
  69. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1584 -0
  70. package/src/sap/fe/core/{TransactionHelper.ts → controllerextensions/editFlow/TransactionHelper.ts} +190 -159
  71. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +780 -0
  72. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/draft.ts +329 -76
  73. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1149 -0
  74. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/operations.ts +169 -97
  75. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +190 -0
  76. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/sticky.ts +76 -12
  77. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +592 -0
  78. package/src/sap/fe/core/{actions → controllerextensions/messageHandler}/messageHandling.ts +83 -60
  79. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +940 -0
  80. package/src/sap/fe/core/{RouterProxy.ts → controllerextensions/routing/RouterProxy.ts} +52 -36
  81. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +21 -18
  82. package/src/sap/fe/core/controls/Any.js +28 -0
  83. package/src/sap/fe/core/controls/Any.ts +30 -0
  84. package/src/sap/fe/core/controls/CommandExecution.js +50 -16
  85. package/src/sap/fe/core/controls/CommandExecution.ts +31 -22
  86. package/src/sap/fe/core/controls/ConditionalWrapper.js +136 -65
  87. package/src/sap/fe/core/controls/ConditionalWrapper.ts +49 -58
  88. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +371 -0
  89. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +282 -0
  90. package/src/sap/fe/core/controls/CustomQuickViewPage.js +74 -36
  91. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +23 -32
  92. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +52 -5
  93. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +127 -67
  94. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +127 -67
  95. package/src/sap/fe/core/controls/FieldWrapper.js +171 -87
  96. package/src/sap/fe/core/controls/FieldWrapper.ts +69 -80
  97. package/src/sap/fe/core/controls/FileWrapper.js +360 -0
  98. package/src/sap/fe/core/controls/FileWrapper.ts +202 -0
  99. package/src/sap/fe/core/controls/FilterBar.js +154 -119
  100. package/src/sap/fe/core/controls/FilterBar.ts +128 -123
  101. package/src/sap/fe/core/controls/FormElementWrapper.js +102 -37
  102. package/src/sap/fe/core/controls/FormElementWrapper.ts +43 -35
  103. package/src/sap/fe/core/controls/MassEditSelect.js +33 -0
  104. package/src/sap/fe/core/controls/MassEditSelect.ts +45 -0
  105. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +111 -89
  106. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +86 -82
  107. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -193
  108. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +211 -204
  109. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +152 -116
  110. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +105 -105
  111. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -2
  112. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +23 -28
  113. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +41 -81
  114. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +107 -0
  115. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +550 -35
  116. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +604 -35
  117. package/src/sap/fe/core/converters/ManifestSettings.js +3 -1
  118. package/src/sap/fe/core/converters/ManifestSettings.ts +9 -2
  119. package/src/sap/fe/core/converters/MetaModelConverter.js +11 -40
  120. package/src/sap/fe/core/converters/MetaModelConverter.ts +56 -84
  121. package/src/sap/fe/core/converters/annotations/DataField.js +20 -5
  122. package/src/sap/fe/core/converters/annotations/DataField.ts +27 -6
  123. package/src/sap/fe/core/converters/controls/Common/Action.js +14 -21
  124. package/src/sap/fe/core/converters/controls/Common/Action.ts +23 -28
  125. package/src/sap/fe/core/converters/controls/Common/Chart.js +17 -10
  126. package/src/sap/fe/core/converters/controls/Common/Chart.ts +20 -14
  127. package/src/sap/fe/core/converters/controls/Common/Form.js +16 -18
  128. package/src/sap/fe/core/converters/controls/Common/Form.ts +20 -20
  129. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  130. package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -3
  131. package/src/sap/fe/core/converters/controls/Common/Table.js +389 -173
  132. package/src/sap/fe/core/converters/controls/Common/Table.ts +440 -244
  133. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +26 -16
  134. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +27 -19
  135. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +78 -47
  136. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +146 -107
  137. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +6 -6
  138. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +20 -18
  139. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +30 -25
  140. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +39 -34
  141. package/src/sap/fe/core/converters/helpers/Aggregation.js +10 -2
  142. package/src/sap/fe/core/converters/helpers/Aggregation.ts +18 -13
  143. package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
  144. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +6 -5
  145. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  146. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -4
  147. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +27 -24
  148. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +49 -40
  149. package/src/sap/fe/core/converters/templates/ListReportConverter.js +33 -22
  150. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +77 -62
  151. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +28 -28
  152. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +38 -45
  153. package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -3
  154. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +8 -6
  155. package/src/sap/fe/core/formatters/KPIFormatter.js +3 -12
  156. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -2
  157. package/src/sap/fe/core/formatters/TableFormatter.js +74 -13
  158. package/src/sap/fe/core/formatters/TableFormatter.ts +71 -16
  159. package/src/sap/fe/core/formatters/ValueFormatter.js +4 -4
  160. package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -7
  161. package/src/sap/fe/core/fpm/Component.js +46 -17
  162. package/src/sap/fe/core/fpm/Component.ts +11 -16
  163. package/src/sap/fe/core/helpers/AppStartupHelper.js +4 -4
  164. package/src/sap/fe/core/helpers/AppStartupHelper.ts +3 -3
  165. package/src/sap/fe/core/helpers/BindingExpression.js +10 -7
  166. package/src/sap/fe/core/helpers/BindingExpression.ts +37 -35
  167. package/src/sap/fe/core/helpers/ClassSupport.js +273 -256
  168. package/src/sap/fe/core/helpers/ClassSupport.ts +315 -237
  169. package/src/sap/fe/core/helpers/FPMHelper.js +3 -2
  170. package/src/sap/fe/core/helpers/FPMHelper.ts +9 -8
  171. package/src/sap/fe/core/helpers/MassEditHelper.js +522 -147
  172. package/src/sap/fe/core/helpers/MassEditHelper.ts +563 -236
  173. package/src/sap/fe/core/helpers/ModelHelper.js +29 -1
  174. package/src/sap/fe/core/helpers/ModelHelper.ts +39 -26
  175. package/src/sap/fe/core/helpers/PasteHelper.js +4 -4
  176. package/src/sap/fe/core/helpers/PasteHelper.ts +4 -3
  177. package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -3
  178. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +3 -1
  179. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  180. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  181. package/src/sap/fe/core/helpers/StableIdHelper.js +5 -7
  182. package/src/sap/fe/core/helpers/StableIdHelper.ts +8 -8
  183. package/src/sap/fe/core/{Synchronization.js → helpers/Synchronization.js} +1 -1
  184. package/src/sap/fe/core/{Synchronization.ts → helpers/Synchronization.ts} +1 -1
  185. package/src/sap/fe/core/jsx-runtime/jsx.js +35 -5
  186. package/src/sap/fe/core/jsx-runtime/jsx.ts +22 -8
  187. package/src/sap/fe/core/library.js +13 -5
  188. package/src/sap/fe/core/library.ts +26 -17
  189. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  190. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -3
  191. package/src/sap/fe/core/messagebundle.properties +135 -180
  192. package/src/sap/fe/core/messagebundle_ar.properties +31 -64
  193. package/src/sap/fe/core/messagebundle_bg.properties +31 -64
  194. package/src/sap/fe/core/messagebundle_ca.properties +31 -64
  195. package/src/sap/fe/core/messagebundle_cs.properties +31 -64
  196. package/src/sap/fe/core/messagebundle_cy.properties +32 -65
  197. package/src/sap/fe/core/messagebundle_da.properties +31 -64
  198. package/src/sap/fe/core/messagebundle_de.properties +29 -62
  199. package/src/sap/fe/core/messagebundle_el.properties +32 -65
  200. package/src/sap/fe/core/messagebundle_en.properties +32 -65
  201. package/src/sap/fe/core/messagebundle_en_GB.properties +29 -62
  202. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -74
  203. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +32 -65
  204. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +20 -6
  205. package/src/sap/fe/core/messagebundle_es.properties +31 -64
  206. package/src/sap/fe/core/messagebundle_es_MX.properties +31 -64
  207. package/src/sap/fe/core/messagebundle_et.properties +31 -64
  208. package/src/sap/fe/core/messagebundle_fi.properties +29 -62
  209. package/src/sap/fe/core/messagebundle_fr.properties +36 -69
  210. package/src/sap/fe/core/messagebundle_fr_CA.properties +33 -66
  211. package/src/sap/fe/core/messagebundle_hi.properties +29 -62
  212. package/src/sap/fe/core/messagebundle_hr.properties +32 -65
  213. package/src/sap/fe/core/messagebundle_hu.properties +30 -63
  214. package/src/sap/fe/core/messagebundle_id.properties +32 -65
  215. package/src/sap/fe/core/messagebundle_it.properties +31 -64
  216. package/src/sap/fe/core/messagebundle_iw.properties +31 -64
  217. package/src/sap/fe/core/messagebundle_ja.properties +29 -62
  218. package/src/sap/fe/core/messagebundle_kk.properties +31 -64
  219. package/src/sap/fe/core/messagebundle_ko.properties +31 -64
  220. package/src/sap/fe/core/messagebundle_lt.properties +31 -64
  221. package/src/sap/fe/core/messagebundle_lv.properties +32 -65
  222. package/src/sap/fe/core/messagebundle_ms.properties +31 -64
  223. package/src/sap/fe/core/messagebundle_nl.properties +31 -64
  224. package/src/sap/fe/core/messagebundle_no.properties +31 -64
  225. package/src/sap/fe/core/messagebundle_pl.properties +34 -67
  226. package/src/sap/fe/core/messagebundle_pt.properties +32 -65
  227. package/src/sap/fe/core/messagebundle_pt_PT.properties +31 -64
  228. package/src/sap/fe/core/messagebundle_ro.properties +33 -66
  229. package/src/sap/fe/core/messagebundle_ru.properties +33 -66
  230. package/src/sap/fe/core/messagebundle_sh.properties +31 -64
  231. package/src/sap/fe/core/messagebundle_sk.properties +31 -64
  232. package/src/sap/fe/core/messagebundle_sl.properties +29 -62
  233. package/src/sap/fe/core/messagebundle_sv.properties +30 -63
  234. package/src/sap/fe/core/messagebundle_th.properties +31 -64
  235. package/src/sap/fe/core/messagebundle_tr.properties +31 -64
  236. package/src/sap/fe/core/messagebundle_uk.properties +32 -65
  237. package/src/sap/fe/core/messagebundle_vi.properties +31 -64
  238. package/src/sap/fe/core/messagebundle_zh_CN.properties +32 -65
  239. package/src/sap/fe/core/messagebundle_zh_TW.properties +34 -67
  240. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +4 -4
  241. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
  242. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +5 -5
  243. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +1 -2
  244. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +11 -8
  245. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +15 -13
  246. package/src/sap/fe/core/services/NavigationServiceFactory.js +5 -5
  247. package/src/sap/fe/core/services/NavigationServiceFactory.ts +9 -5
  248. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -4
  249. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +1 -1
  250. package/src/sap/fe/core/services/RoutingServiceFactory.js +105 -66
  251. package/src/sap/fe/core/services/RoutingServiceFactory.ts +59 -49
  252. package/src/sap/fe/core/services/ShellServicesFactory.js +104 -29
  253. package/src/sap/fe/core/services/ShellServicesFactory.ts +64 -30
  254. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
  255. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +1 -1
  256. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +11 -10
  257. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +38 -51
  258. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
  259. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +6 -3
  260. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  261. package/src/sap/fe/core/support/CommonHelper.ts +0 -3
  262. package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -9
  263. package/src/sap/fe/core/templating/DataModelPathHelper.ts +32 -38
  264. package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
  265. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +27 -6
  266. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -9
  267. package/src/sap/fe/core/templating/EntitySetHelper.ts +11 -13
  268. package/src/sap/fe/core/templating/FilterHelper.js +4 -4
  269. package/src/sap/fe/core/templating/FilterHelper.ts +6 -5
  270. package/src/sap/fe/core/templating/PropertyHelper.js +70 -33
  271. package/src/sap/fe/core/templating/PropertyHelper.ts +49 -27
  272. package/src/sap/fe/core/templating/UIFormatters.js +133 -22
  273. package/src/sap/fe/core/templating/UIFormatters.ts +144 -50
  274. package/src/sap/fe/core/type/DateTimeWithTimezone.js +47 -0
  275. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +23 -0
  276. package/src/sap/fe/core/type/Email.js +26 -8
  277. package/src/sap/fe/core/type/Email.ts +8 -7
  278. package/src/sap/fe/core/AnnotationHelper.js +0 -312
  279. package/src/sap/fe/core/AnnotationHelper.ts +0 -315
  280. package/src/sap/fe/core/RouterProxy.js +0 -926
  281. package/src/sap/fe/core/TransactionHelper.js +0 -1562
  282. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +0 -392
  283. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +0 -136
  284. package/src/sap/fe/core/actions/collaboration/Manage.js +0 -262
  285. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +0 -103
  286. package/src/sap/fe/core/actions/draft.js +0 -523
  287. package/src/sap/fe/core/actions/messageHandling.js +0 -567
  288. package/src/sap/fe/core/actions/nonDraft.js +0 -20
  289. package/src/sap/fe/core/actions/nonDraft.ts +0 -12
  290. package/src/sap/fe/core/actions/operations.js +0 -1096
  291. package/src/sap/fe/core/actions/sticky.js +0 -130
  292. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +0 -78
  293. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +0 -65
  294. package/src/sap/fe/core/formatters/CriticalityFormatter.js +0 -77
  295. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +0 -58
@@ -0,0 +1,431 @@
1
+ import ManagedObject from "sap/ui/base/ManagedObject";
2
+ import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
3
+ //Trace information
4
+ const aTraceInfo: any[] = [
5
+ /* Structure for a macro
6
+ {
7
+ macro: '', //name of macro
8
+ metaDataContexts: [ //Properties of type sap.ui.model.Context
9
+ {
10
+ name: '', //context property name / key
11
+ path: '', //from oContext.getPath()
12
+ }
13
+ ],
14
+ properties: { // Other properties which become part of {this>}
15
+ property1: value,
16
+ property2: value
17
+ }
18
+ viewInfo: {
19
+ viewInfo: {} // As specified in view or fragement creation
20
+ },
21
+ traceID: this.index, //ID for this trace information,
22
+ macroInfo: {
23
+ macroID: index, // traceID of this macro (redundant for macros)
24
+ parentMacroID, index // traceID of the parent macro (if it has a parent)
25
+ }
26
+ }
27
+ // Structure for a control
28
+ {
29
+ control: '', //control class
30
+ properties: { // Other properties which become part of {this>}
31
+ property1: {
32
+ originalValue: '', //Value before templating
33
+ resolvedValue: '' //Value after templating
34
+ }
35
+ }
36
+ contexts: { //Models and Contexts used during templating
37
+ // Model or context name used for this control
38
+ modelName1: { // For ODataMetaModel
39
+ path1: {
40
+ path: '', //absolut path within metamodel
41
+ data: '', //data of path unless type Object
42
+ }
43
+ modelName2: {
44
+ // for other model types
45
+ {
46
+ property1: value,
47
+ property2: value
48
+ }
49
+ // In case binding cannot be resolved -> mark as runtime binding
50
+ // This is not always true, e.g. in case the path is metamodelpath
51
+ {
52
+ "bindingFor": "Runtime"
53
+ }
54
+ }
55
+ },
56
+ viewInfo: {
57
+ viewInfo: {} // As specified in view or fragement creation
58
+ },
59
+ macroInfo: {
60
+ macroID: index, // traceID of the macro that created this control
61
+ parentMacroID, index // traceID of the macro's parent macro
62
+ },
63
+ traceID: this.index //ID for this trace information
64
+ }
65
+ */
66
+ ];
67
+ const traceNamespace = "http://schemas.sap.com/sapui5/extension/sap.fe.info/1",
68
+ xmlns = "http://www.w3.org/2000/xmlns/",
69
+ /**
70
+ * Switch is currently based on url parameter
71
+ */
72
+ traceIsOn = location.search.indexOf("sap-ui-xx-feTraceInfo=true") > -1,
73
+ /**
74
+ * Specify all namespaces that shall be traced during templating
75
+ */
76
+ aNamespaces = [
77
+ "sap.m",
78
+ "sap.uxap",
79
+ "sap.ui.unified",
80
+ "sap.f",
81
+ "sap.ui.table",
82
+ "sap.suite.ui.microchart",
83
+ "sap.ui.layout.form",
84
+ "sap.ui.mdc",
85
+ "sap.ui.mdc.link",
86
+ "sap.ui.mdc.field",
87
+ "sap.fe.fpm"
88
+ ],
89
+ oCallbacks: any = {};
90
+
91
+ function fnClone(oObject: any) {
92
+ return JSON.parse(JSON.stringify(oObject));
93
+ }
94
+ function collectContextInfo(sValue: any, oContexts: any, oVisitor: any, oNode: any) {
95
+ let aContexts;
96
+ const aPromises: any[] = [];
97
+ try {
98
+ aContexts = (ManagedObject as any).bindingParser(sValue, undefined, false, true) || [];
99
+ } catch (e) {
100
+ aContexts = [];
101
+ }
102
+ aContexts = Array.isArray(aContexts) ? aContexts : [aContexts];
103
+ aContexts
104
+ .filter(function (oContext: any) {
105
+ return oContext.path || oContext.parts;
106
+ })
107
+ .forEach(function (oContext: any) {
108
+ const aParts = oContext.parts || [oContext];
109
+ aParts
110
+ .filter(function (oContext: any) {
111
+ return oContext.path;
112
+ })
113
+ .forEach(function (oContext: any) {
114
+ const oModel = (oContexts[oContext.model] = oContexts[oContext.model] || {});
115
+ const sSimplePath =
116
+ oContext.path.indexOf(">") < 0 ? (oContext.model && oContext.model + ">") + oContext.path : oContext.path;
117
+ let oRealContext: any;
118
+ let aParts;
119
+
120
+ if (typeof oContext.model === "undefined" && sSimplePath.indexOf(">") > -1) {
121
+ aParts = sSimplePath.split(">");
122
+ oContext.model = aParts[0];
123
+ oContext.path = aParts[1];
124
+ }
125
+ try {
126
+ oRealContext = oVisitor.getContext(sSimplePath);
127
+ aPromises.push(
128
+ oVisitor
129
+ .getResult("{" + sSimplePath + "}", oNode)
130
+ .then(function (oResult: any) {
131
+ if (oRealContext.getModel().getMetadata().getName() === "sap.ui.model.json.JSONModel") {
132
+ if (!oResult.oModel) {
133
+ oModel[oContext.path] = oResult; //oRealContext.getObject(oContext.path);
134
+ } else {
135
+ oModel[oContext.path] = "Context from " + oResult.getPath();
136
+ }
137
+ } else {
138
+ oModel[oContext.path] = {
139
+ path: oRealContext.getPath(),
140
+ data: typeof oResult === "object" ? "[ctrl/cmd-click] on path to see data" : oResult
141
+ };
142
+ }
143
+ })
144
+ .catch(function () {
145
+ oModel[oContext.path] = {
146
+ bindingFor: "Runtime"
147
+ };
148
+ })
149
+ );
150
+ } catch (exc) {
151
+ oModel[oContext.path] = {
152
+ bindingFor: "Runtime"
153
+ };
154
+ }
155
+ });
156
+ });
157
+ return Promise.all(aPromises);
158
+ }
159
+ function fillAttributes(oResults: any, oAttributes: any, sName: any, sValue: any) {
160
+ return oResults
161
+ .then(function (result: any) {
162
+ oAttributes[sName] =
163
+ sValue !== result
164
+ ? {
165
+ originalValue: sValue,
166
+ resolvedValue: result
167
+ }
168
+ : sValue;
169
+ })
170
+ .catch(function (e: any) {
171
+ oAttributes[sName] = {
172
+ originalValue: sValue,
173
+ error: (e.stack && e.stack.toString()) || e
174
+ };
175
+ });
176
+ }
177
+ function collectInfo(oNode: any, oVisitor: any) {
178
+ const oAttributes = {};
179
+ const aPromises = [];
180
+ const oContexts = {};
181
+ let oResults;
182
+ for (let i = oNode.attributes.length >>> 0; i--; ) {
183
+ const oAttribute = oNode.attributes[i],
184
+ sName = oAttribute.nodeName,
185
+ sValue = oNode.getAttribute(sName);
186
+ if (!["core:require"].includes(sName)) {
187
+ aPromises.push(collectContextInfo(sValue, oContexts, oVisitor, oNode));
188
+ oResults = oVisitor.getResult(sValue, oNode);
189
+ if (oResults) {
190
+ aPromises.push(fillAttributes(oResults, oAttributes, sName, sValue));
191
+ } else {
192
+ //What
193
+ }
194
+ }
195
+ }
196
+ return Promise.all(aPromises).then(function () {
197
+ return { properties: oAttributes, contexts: oContexts };
198
+ });
199
+ }
200
+ function resolve(oNode: any, oVisitor: any) {
201
+ const sControlName = oNode.nodeName.split(":")[1] || oNode.nodeName,
202
+ bIsControl = /^[A-Z]/.test(sControlName),
203
+ oTraceMetadataContext: any = {
204
+ control: oNode.namespaceURI + "." + (oNode.nodeName.split(":")[1] || oNode.nodeName)
205
+ };
206
+
207
+ if (bIsControl) {
208
+ if (!oNode.ownerDocument.firstChild.getAttribute("xmlns:trace")) {
209
+ oNode.ownerDocument.firstChild.setAttributeNS(xmlns, "xmlns:trace", traceNamespace);
210
+ oNode.ownerDocument.firstChild.setAttributeNS(traceNamespace, "trace:is", "on");
211
+ }
212
+ return collectInfo(oNode, oVisitor)
213
+ .then(function (result: { properties: {}; contexts: {} }) {
214
+ const bRelevant = Object.keys(result.contexts).length > 0; //If no context was used it is not relevant so we ignore Object.keys(result.properties).length
215
+ if (bRelevant) {
216
+ Object.assign(oTraceMetadataContext, result);
217
+ oTraceMetadataContext.viewInfo = oVisitor.getViewInfo();
218
+ oTraceMetadataContext.macroInfo = oVisitor.getSettings()["_macroInfo"];
219
+ oTraceMetadataContext.traceID = aTraceInfo.length;
220
+ oNode.setAttributeNS(traceNamespace, "trace:traceID", oTraceMetadataContext.traceID);
221
+ aTraceInfo.push(oTraceMetadataContext);
222
+ }
223
+ return oVisitor.visitAttributes(oNode).then(function () {
224
+ return oVisitor.visitChildNodes(oNode);
225
+ });
226
+ })
227
+ .catch(function (exc: any) {
228
+ oTraceMetadataContext.error = {
229
+ exception: exc,
230
+ node: new XMLSerializer().serializeToString(oNode)
231
+ };
232
+ });
233
+ } else {
234
+ return oVisitor.visitAttributes(oNode).then(function () {
235
+ return oVisitor.visitChildNodes(oNode);
236
+ });
237
+ }
238
+ }
239
+ /**
240
+ * Register path-through XMLPreprocessor plugin for all namespaces
241
+ * given above in aNamespaces
242
+ */
243
+ if (traceIsOn) {
244
+ aNamespaces.forEach(function (namespace: string) {
245
+ oCallbacks[namespace] = XMLPreprocessor.plugIn(resolve.bind(namespace), namespace);
246
+ });
247
+ }
248
+ /**
249
+ * Adds information about the processing of one macro to the collection.
250
+ *
251
+ * @name sap.fe.macros.TraceInfo.traceMacroCalls
252
+ * @param {string} sName Macro class name
253
+ * @param {object} oMetadata Definition from (macro).metadata.js
254
+ * @param {object} mContexts Available named contexts
255
+ * @param {XMLNode} oNode
256
+ * @param {object} oVisitor
257
+ * @returns {object}
258
+ * @private
259
+ * @ui5-restricted
260
+ * @static
261
+ */
262
+ function traceMacroCalls(sName: string, oMetadata: any, mContexts: any, oNode: any, oVisitor: any) {
263
+ let aMetadataContextKeys = (oMetadata.metadataContexts && Object.keys(oMetadata.metadataContexts)) || [];
264
+ const aProperties = (oMetadata.properties && Object.keys(oMetadata.properties)) || [];
265
+ const macroInfo = fnClone(oVisitor.getSettings()["_macroInfo"] || {});
266
+ const oTraceMetadataContext: any = {
267
+ macro: sName,
268
+ metaDataContexts: [] as any[],
269
+ properties: {}
270
+ };
271
+
272
+ if (aMetadataContextKeys.length === 0) {
273
+ //In case the macro has not metadata.js we take all metadataContexts except this
274
+ aMetadataContextKeys = Object.keys(mContexts).filter(function (name: string) {
275
+ return name !== "this";
276
+ });
277
+ }
278
+
279
+ if (!oNode.getAttribute("xmlns:trace")) {
280
+ oNode.setAttributeNS(xmlns, "xmlns:trace", traceNamespace);
281
+ }
282
+
283
+ if (aMetadataContextKeys.length > 0) {
284
+ aMetadataContextKeys.forEach(function (sKey: any) {
285
+ const oContext = mContexts[sKey],
286
+ oMetaDataContext: any = oContext && {
287
+ name: sKey,
288
+ path: oContext.getPath()
289
+ //data: JSON.stringify(oContext.getObject(),null,2)
290
+ };
291
+
292
+ if (oMetaDataContext) {
293
+ oTraceMetadataContext.metaDataContexts.push(oMetaDataContext);
294
+ }
295
+ });
296
+
297
+ aProperties.forEach(function (sKey: any) {
298
+ const //oPropertySettings = oMetadata.properties[sKey],
299
+ oProperty = mContexts.this.getObject(sKey);
300
+ // (oNode.hasAttribute(sKey) && oNode.getAttribute(sKey)) ||
301
+ // (oPropertySettings.hasOwnProperty("defaultValue") && oPropertySettings.define) ||
302
+ // false;
303
+
304
+ if (oProperty) {
305
+ oTraceMetadataContext.properties[sKey] = oProperty;
306
+ }
307
+ });
308
+ oTraceMetadataContext.viewInfo = oVisitor.getViewInfo();
309
+ oTraceMetadataContext.traceID = aTraceInfo.length;
310
+ macroInfo.parentMacroID = macroInfo.macroID;
311
+ macroInfo.macroID = oTraceMetadataContext.traceID;
312
+ oTraceMetadataContext.macroInfo = macroInfo;
313
+ oNode.setAttributeNS(traceNamespace, "trace:macroID", oTraceMetadataContext.traceID);
314
+ aTraceInfo.push(oTraceMetadataContext);
315
+ return oTraceMetadataContext;
316
+ }
317
+ }
318
+ /**
319
+ * Returns the globally stored trace information for the macro or
320
+ * control marked with the given id.
321
+ *
322
+ * Returns all trace information if no id is specified
323
+ *
324
+ *
325
+ <pre>Structure for a macro
326
+ {
327
+ macro: '', //name of macro
328
+ metaDataContexts: [ //Properties of type sap.ui.model.Context
329
+ {
330
+ name: '', //context property name / key
331
+ path: '', //from oContext.getPath()
332
+ }
333
+ ],
334
+ properties: { // Other properties which become part of {this>}
335
+ property1: value,
336
+ property2: value
337
+ }
338
+ viewInfo: {
339
+ viewInfo: {} // As specified in view or fragement creation
340
+ },
341
+ traceID: this.index, //ID for this trace information,
342
+ macroInfo: {
343
+ macroID: index, // traceID of this macro (redundant for macros)
344
+ parentMacroID, index // traceID of the parent macro (if it has a parent)
345
+ }
346
+ }
347
+ Structure for a control
348
+ {
349
+ control: '', //control class
350
+ properties: { // Other properties which become part of {this>}
351
+ property1: {
352
+ originalValue: '', //Value before templating
353
+ resolvedValue: '' //Value after templating
354
+ }
355
+ }
356
+ contexts: { //Models and Contexts used during templating
357
+ // Model or context name used for this control
358
+ modelName1: { // For ODataMetaModel
359
+ path1: {
360
+ path: '', //absolut path within metamodel
361
+ data: '', //data of path unless type Object
362
+ }
363
+ modelName2: {
364
+ // for other model types
365
+ {
366
+ property1: value,
367
+ property2: value
368
+ }
369
+ // In case binding cannot be resolved -> mark as runtime binding
370
+ // This is not always true, e.g. in case the path is metamodelpath
371
+ {
372
+ "bindingFor": "Runtime"
373
+ }
374
+ }
375
+ },
376
+ viewInfo: {
377
+ viewInfo: {} // As specified in view or fragement creation
378
+ },
379
+ macroInfo: {
380
+ macroID: index, // traceID of the macro that created this control
381
+ parentMacroID, index // traceID of the macro's parent macro
382
+ },
383
+ traceID: this.index //ID for this trace information
384
+ }</pre>.
385
+ *
386
+ * @function
387
+ * @name sap.fe.macros.TraceInfo.getTraceInfo
388
+ * @param {number} id TraceInfo id
389
+ * @returns {object|Array} Object / Array for TraceInfo
390
+ * @private
391
+ * @static
392
+ */
393
+ function getTraceInfo(id: number) {
394
+ if (id) {
395
+ return aTraceInfo[id];
396
+ }
397
+ const aErrors = aTraceInfo.filter(function (traceInfo: any) {
398
+ return traceInfo.error;
399
+ });
400
+ return (aErrors.length > 0 && aErrors) || aTraceInfo;
401
+ }
402
+ /**
403
+ * Returns true if TraceInfo is active.
404
+ *
405
+ * @function
406
+ * @name sap.fe.macros.TraceInfo.isTraceInfoActive
407
+ * @returns {boolean} `true` when active
408
+ * @private
409
+ * @static
410
+ */
411
+ function isTraceInfoActive() {
412
+ return traceIsOn;
413
+ }
414
+ /**
415
+ * @typedef sap.fe.macros.TraceInfo
416
+ * TraceInfo for SAP Fiori elements
417
+ *
418
+ * Once traces is switched, information about macros and controls
419
+ * that are processed during xml preprocessing ( @see {@link sap.ui.core.util.XMLPreprocessor})
420
+ * will be collected within this singleton
421
+ * @namespace
422
+ * @private
423
+ * @global
424
+ * @experimental This module is only for experimental use! <br/><b>This is only a POC and maybe deleted</b>
425
+ * @since 1.74.0
426
+ */
427
+ export default {
428
+ isTraceInfoActive: isTraceInfoActive,
429
+ traceMacroCalls: traceMacroCalls,
430
+ getTraceInfo: getTraceInfo
431
+ };
@@ -104,4 +104,4 @@ sap.ui.define(["sap/base/Log"], function (Log) {
104
104
  };
105
105
  return BusyLocker;
106
106
  }, false);
107
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJ1c3lMb2NrZXIudHMiXSwibmFtZXMiOlsiX2lUaW1lb3V0SW5TZWNvbmRzIiwiX21Mb2NrQ291bnRlcnMiLCJfb1JlZmVyZW5jZUR1bW15IiwiZ2V0SWQiLCJzZXRCdXN5IiwiYkJ1c3kiLCJMb2ciLCJpbmZvIiwiZ2V0TG9ja0NvdW50SWQiLCJvUmVmZXJlbmNlIiwic1BhdGgiLCJpc0xvY2tlZCIsImdldExvY2tDb3VudEVudHJ5Iiwid2FybmluZyIsInNJZCIsImlkIiwicGF0aCIsInJlZmVyZW5jZSIsImNvdW50IiwiZGVsZXRlTG9ja0NvdW50RW50cnkiLCJtTG9ja0NvdW50RW50cnkiLCJhcHBseUxvY2tTdGF0ZSIsImJJc01vZGVsIiwiaXNBIiwic2V0UHJvcGVydHkiLCJ1bmRlZmluZWQiLCJjbGVhclRpbWVvdXQiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImVycm9yIiwiY2hhbmdlTG9ja0NvdW50IiwiaURlbHRhIiwiQnVzeUxvY2tlciIsImxvY2siLCJvTW9kZWxPckNvbnRyb2wiLCJfdXBkYXRlTG9jayIsInVubG9jayJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQURBLE1BQU1BLGtCQUFrQixHQUFHLEVBQTNCO0FBQUEsTUFDQ0MsY0FBbUIsR0FBRyxFQUR2QjtBQUFBLE1BRUNDLGdCQUFnQixHQUFHO0FBQ2xCQyxJQUFBQSxLQUFLLEVBQUUsWUFBVztBQUNqQixhQUFPLDJCQUFQO0FBQ0EsS0FIaUI7QUFJbEJDLElBQUFBLE9BQU8sRUFBRSxVQUFTQyxLQUFULEVBQXFCO0FBQzdCQyxNQUFBQSxHQUFHLENBQUNDLElBQUosbUJBQW9CRixLQUFwQjtBQUNBO0FBTmlCLEdBRnBCOztBQVVBLFdBQVNHLGNBQVQsQ0FBd0JDLFVBQXhCLEVBQXlDQyxLQUF6QyxFQUFxRDtBQUNwRCxXQUFPRCxVQUFVLENBQUNOLEtBQVgsTUFBc0JPLEtBQUssSUFBSSxPQUEvQixDQUFQO0FBQ0E7O0FBQ0QsV0FBU0MsUUFBVCxDQUFrQkYs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ZSxDQUFDRixLQUF2RTtBQUNBO0FBQ0Q7O0FBRUQsTUFBTWMsVUFBVSxHQUFHO0FBQ2xCQyxJQUFBQSxJQUFJLEVBQUUsVUFBU0MsZUFBVCxFQUErQnhCLEtBQS9CLEVBQStDO0FBQ3BELGFBQU8sS0FBS3lCLFdBQUwsQ0FBaUJELGVBQWpCLEVBQWtDeEIsS0FBbEMsRUFBeUMsQ0FBekMsQ0FBUDtBQUNBLEtBSGlCO0FBS2xCMEIsSUFBQUEsTUFBTSxFQUFFLFVBQVNGLGVBQVQsRUFBK0J4QixLQUEvQixFQUErQztBQUN0RCxhQUFPLEtBQUt5QixXQUFMLENBQWlCRCxlQUFqQixFQUFrQ3hCLEtBQWxDLEVBQXlDLENBQUMsQ0FBMUMsQ0FBUDtBQUNBLEtBUGlCO0FBU2xCQyxJQUFBQSxRQUFRLEVBQUUsVUFBU3VCLGVBQVQsRUFBK0J4QixLQUEvQixFQUErQztBQUN4RCxhQUFPQyxRQUFRLENBQUN1QixlQUFELEVBQWtCeEIsS0FBbEIsQ0FBZjtBQUNBLEtBWGlCO0FBYWxCeUIsSUFBQUEsV0FBVyxFQUFFLFVBQVMxQixVQUFULEVBQTBCQyxLQUExQixFQUFzQ3FCLE1BQXRDLEVBQW1EO0FBQy9ELFVBQU1YLGVBQWUsR0FBR1IsaUJBQWlCLENBQUNILFVBQUQsRUFBYUMsS0FBYixDQUF6QztBQUNBb0IsTUFBQUEsZUFBZSxDQUFDVixlQUFELEVBQWtCVyxNQUFsQixDQUFmO0FBQ0EsYUFBT1YsY0FBYyxDQUFDRCxlQUFELENBQXJCO0FBQ0E7QUFqQmlCLEdBQW5CO1NBb0JlWSxVIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmNvbnN0IF9pVGltZW91dEluU2Vjb25kcyA9IDMwLFxuXHRfbUxvY2tDb3VudGVyczogYW55ID0ge30sXG5cdF9vUmVmZXJlbmNlRHVtbXkgPSB7XG5cdFx0Z2V0SWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIFwiQnVzeUxvY2tlci5SZWZlcmVuY2VEdW1teVwiO1xuXHRcdH0sXG5cdFx0c2V0QnVzeTogZnVuY3Rpb24oYkJ1c3k6IGFueSkge1xuXHRcdFx0TG9nLmluZm8oYHNldEJ1c3koJHtiQnVzeX0pIHRyaWdnZXJlZCBvbiBkdW1teSByZWZlcmVuY2VgKTtcblx0XHR9XG5cdH07XG5mdW5jdGlvbiBnZXRMb2NrQ291bnRJZChvUmVmZXJlbmNlOiBhbnksIHNQYXRoOiBhbnkpIHtcblx0cmV0dXJuIG9SZWZlcmVuY2UuZ2V0SWQoKSArIChzUGF0aCB8fCBcIi9idXN5XCIpO1xufVxuZnVuY3Rpb24gaXNMb2NrZWQob1JlZmVyZW5jZTogYW55LCBzUGF0aDogYW55KSB7XG5cdHJldHVybiBnZXRMb2NrQ291bnRJZChvUmVmZXJlbmNlLCBzUGF0aCkgaW4gX21Mb2NrQ291bnRlcnM7XG59XG5mdW5jdGlvbiBnZXRMb2NrQ291bnRFbnRyeShvUmVmZXJlbmNlOiBhbnksIHNQYXRoOiBhbnkpIHtcblx0aWYgKCFvUmVmZXJlbmNlIHx8ICFvUmVmZXJlbmNlLmdldElkKSB7XG5cdFx0TG9nLndhcm5pbmcoXCJObyByZWZlcmVuY2UgZm9yIEJ1c3lMb2NrZXIsIHVzaW5nIGR1bW15IHJlZmVyZW5jZVwiKTtcblx0XHRvUmVmZXJlbmNlID0gX29SZWZlcmVuY2VEdW1teTtcblx0fVxuXG5cdHNQYXRoID0gc1BhdGggfHwgXCIvYnVzeVwiO1xuXHRjb25zdCBzSWQgPSBnZXRMb2NrQ291bnRJZChvUmVmZXJlbmNlLCBzUGF0aCk7XG5cblx0aWYgKCEoc0lkIGluIF9tTG9ja0NvdW50ZXJzKSkge1xuXHRcdF9tTG9ja0NvdW50ZXJzW3NJZF0gPSB7XG5cdFx0XHRpZDogc0lkLFxuXHRcdFx0cGF0aDogc1BhdGgsXG5cdFx0XHRyZWZlcmVuY2U6IG9SZWZlcmVuY2UsXG5cdFx0XHRjb3VudDogMFxuXHRcdH07XG5cdH1cblx0cmV0dXJuIF9tTG9ja0NvdW50ZXJzW3NJZF07XG59XG4vKipcbiAqIEBwYXJhbSBtTG9ja0NvdW50RW50cnlcbiAqL1xuZnVuY3Rpb24gZGVsZXRlTG9ja0NvdW50RW50cnkobUxvY2tDb3VudEVudHJ5OiBhbnkpIHtcblx0ZGVsZXRlIF9tTG9ja0NvdW50ZXJzW21Mb2NrQ291bnRFbnRyeS5pZF07XG59XG5cbmZ1bmN0aW9uIGFwcGx5TG9ja1N0YXRlKG1Mb2NrQ291bnRFbnRyeTogYW55KSB7XG5cdGNvbnN0IGJJc01vZGVsID0gbUxvY2tDb3VudEVudHJ5LnJlZmVyZW5jZS5pc0EgJiYgbUxvY2tDb3VudEVudHJ5LnJlZmVyZW5jZS5pc0EoXCJzYXAudWkubW9kZWwuTW9kZWxcIiksXG5cdFx0YkJ1c3kgPSBtTG9ja0NvdW50RW50cnkuY291bnQgIT09IDA7XG5cblx0aWYgKGJJc01vZGVsKSB7XG5cdFx0bUxvY2tDb3VudEVudHJ5LnJlZmVyZW5jZS5zZXRQcm9wZXJ0eShtTG9ja0NvdW50RW50cnkucGF0aCwgYkJ1c3ksIHVuZGVmaW5lZCwgdHJ1ZSk7XG5cdH0gZWxzZSBpZiAobUxvY2tDb3VudEVudHJ5LnJlZmVyZW5jZS5zZXRCdXN5KSB7XG5cdFx0bUxvY2tDb3VudEVudHJ5LnJlZmVyZW5jZS5zZXRCdXN5KGJCdXN5KTtcblx0fVxuXG5cdGNsZWFyVGltZW91dChtTG9ja0NvdW50RW50cnkudGltZW91dCk7XG5cdGlmIChiQnVzeSkge1xuXHRcdG1Mb2NrQ291bnRFbnRyeS50aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdExvZy5lcnJvcihcblx0XHRcdFx0YGJ1c3kgbG9jayBmb3IgJHttTG9ja0NvdW50RW50cnkuaWR9IHdpdGggdmFsdWUgJHttTG9ja0NvdW50RW50cnkuY291bnR9IHRpbWVkIG91dCBhZnRlciAke19pVGltZW91dEluU2Vjb25kc30gc2Vjb25kcyFgXG5cdFx0XHQpO1xuXHRcdH0sIF9pVGltZW91dEluU2Vjb25kcyAqIDEwMDApO1xuXHR9IGVsc2Uge1xuXHRcdGRlbGV0ZUxvY2tDb3VudEVudHJ5KG1Mb2NrQ291bnRFbnRyeSk7XG5cdH1cblxuXHRyZXR1cm4gYkJ1c3k7XG59XG5cbmZ1bmN0aW9uIGNoYW5nZUxvY2tDb3VudChtTG9ja0NvdW50RW50cnk6IGFueSwgaURlbHRhOiBhbnkpIHtcblx0aWYgKGlEZWx0YSA9PT0gMCkge1xuXHRcdG1Mb2NrQ291bnRFbnRyeS5jb3VudCA9IDA7XG5cdFx0TG9nLmluZm8oYGJ1c3kgbG9jayBjb3VudCAnJHttTG9ja0NvdW50RW50cnkuaWR9JyB3YXMgcmVzZXQgdG8gMGApO1xuXHR9IGVsc2Uge1xuXHRcdG1Mb2NrQ291bnRFbnRyeS5jb3VudCArPSBpRGVsdGE7XG5cdFx0TG9nLmluZm8oYGJ1c3kgbG9jayBjb3VudCAnJHttTG9ja0NvdW50RW50cnkuaWR9JyBpcyAke21Mb2NrQ291bnRFbnRyeS5jb3VudH1gKTtcblx0fVxufVxuXG5jb25zdCBCdXN5TG9ja2VyID0ge1xuXHRsb2NrOiBmdW5jdGlvbihvTW9kZWxPckNvbnRyb2w6IGFueSwgc1BhdGg/OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gdGhpcy5fdXBkYXRlTG9jayhvTW9kZWxPckNvbnRyb2wsIHNQYXRoLCAxKTtcblx0fSxcblxuXHR1bmxvY2s6IGZ1bmN0aW9uKG9Nb2RlbE9yQ29udHJvbDogYW55LCBzUGF0aD86IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLl91cGRhdGVMb2NrKG9Nb2RlbE9yQ29udHJvbCwgc1BhdGgsIC0xKTtcblx0fSxcblxuXHRpc0xvY2tlZDogZnVuY3Rpb24ob01vZGVsT3JDb250cm9sOiBhbnksIHNQYXRoPzogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIGlzTG9ja2VkKG9Nb2RlbE9yQ29udHJvbCwgc1BhdGgpO1xuXHR9LFxuXG5cdF91cGRhdGVMb2NrOiBmdW5jdGlvbihvUmVmZXJlbmNlOiBhbnksIHNQYXRoOiBhbnksIGlEZWx0YTogYW55KSB7XG5cdFx0Y29uc3QgbUxvY2tDb3VudEVudHJ5ID0gZ2V0TG9ja0NvdW50RW50cnkob1JlZmVyZW5jZSwgc1BhdGgpO1xuXHRcdGNoYW5nZUxvY2tDb3VudChtTG9ja0NvdW50RW50cnksIGlEZWx0YSk7XG5cdFx0cmV0dXJuIGFwcGx5TG9ja1N0YXRlKG1Mb2NrQ291bnRFbnRyeSk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJ1c3lMb2NrZXI7XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJ1c3lMb2NrZXIudHMiXSwibmFtZXMiOlsiX2lUaW1lb3V0SW5TZWNvbmRzIiwiX21Mb2NrQ291bnRlcnMiLCJfb1JlZmVyZW5jZUR1bW15IiwiZ2V0SWQiLCJzZXRCdXN5IiwiYkJ1c3kiLCJMb2ciLCJpbmZvIiwiZ2V0TG9ja0NvdW50SWQiLCJvUmVmZXJlbmNlIiwic1BhdGgiLCJpc0xvY2tlZCIsImdldExvY2tDb3VudEVudHJ5Iiwid2FybmluZyIsInNJZCIsImlkIiwicGF0aCIsInJlZmVyZW5jZSIsImNvdW50IiwiZGVsZXRlTG9ja0NvdW50RW50cnkiLCJtTG9ja0NvdW50RW50cnkiLCJhcHBseUxvY2tTdGF0ZSIsImJJc01vZGVsIiwiaXNBIiwic2V0UHJvcGVydHkiLCJ1bmRlZmluZWQiLCJjbGVhclRpbWVvdXQiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsImVycm9yIiwiY2hhbmdlTG9ja0NvdW50IiwiaURlbHRhIiwiQnVzeUxvY2tlciIsImxvY2siLCJvTW9kZWxPckNvbnRyb2wiLCJfdXBkYXRlTG9jayIsInVubG9jayJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7OztBQURBLE1BQU1BLGtCQUFrQixHQUFHLEVBQTNCO0FBQUEsTUFDQ0MsY0FBbUIsR0FBRyxFQUR2QjtBQUFBLE1BRUNDLGdCQUFnQixHQUFHO0FBQ2xCQyxJQUFBQSxLQUFLLEVBQUUsWUFBWTtBQUNsQixhQUFPLDJCQUFQO0FBQ0EsS0FIaUI7QUFJbEJDLElBQUFBLE9BQU8sRUFBRSxVQUFVQyxLQUFWLEVBQXNCO0FBQzlCQyxNQUFBQSxHQUFHLENBQUNDLElBQUosbUJBQW9CRixLQUFwQjtBQUNBO0FBTmlCLEdBRnBCOztBQVVBLFdBQVNHLGNBQVQsQ0FBd0JDLFVBQXhCLEVBQXlDQyxLQUF6QyxFQUFxRDtBQUNwRCxXQUFPRCxVQUFVLENBQUNOLEtBQVgsTUFBc0JPLEtBQUssSUFBSSxPQUEvQixDQUFQO0FBQ0E7O0FBQ0QsV0FBU0MsUUFBVCxDQUFrQkYsVUFBbEIsRUFBbUNDLEtBQW5DLEVBQStDO0FBQzlDLFdBQU9GLGNBQWMsQ0FBQ0MsVUFBRCxFQUFhQyxLQUFiLENBQWQsSUFBcUNULGNBQTVDO0FBQ0E7O0FBQ0QsV0FBU1csaUJBQVQsQ0FBMkJILFVBQTNCLEVBQTRDQyxLQUE1QyxFQUF3RDtBQUN2RCxRQUFJLENBQUNELFVBQUQsSUFBZSxDQUFDQSxVQUFVLENBQUNOLEtBQS9CLEVBQXNDO0FBQ3JDRyxNQUFBQSxHQUFHLENBQUNPLE9BQUosQ0FBWSxvREFBWjtBQUNBSixNQUFBQSxVQUFVLEdBQUdQLGdCQUFiO0FBQ0E7O0FBRURRLElBQUFBLEtBQUssR0FBR0EsS0FBSyxJQUFJLE9BQWpCO0FBQ0EsUUFBTUksR0FBRyxHQUFHTixjQUFjLENBQUNDLFVBQUQsRUFBYUMsS0FBYixDQUExQjs7QUFFQSxRQUFJLEVBQUVJLEdBQUcsSUFBSWIsY0FBVCxDQUFKLEVBQThCO0FBQzdCQSxNQUFBQSxjQUFjLENBQUNhLEdBQUQsQ0FBZCxHQUFzQjtBQUNyQkMsUUFBQUEsRUFBRSxFQUFFRCxHQURpQjtBQUVyQkUsUUFBQUEsSUFBSSxFQUFFTixLQUZlO0FBR3JCTyxRQUFBQSxTQUFTLEVBQUVSLFVBSFU7QUFJckJTLFFBQUFBLEtBQUssRUFBRTtBQUpjLE9BQXRCO0FBTUE7O0FBQ0QsV0FBT2pCLGNBQWMsQ0FBQ2EsR0FBRCxDQUFyQjtBQUNBO0FBQ0Q7QUFDQTtBQUNBOzs7QUFDQSxXQUFTSyxvQkFBVCxDQUE4QkMsZUFBOUIsRUFBb0Q7QUFDbkQsV0FBT25CLGNBQWMsQ0FBQ21CLGVBQWUsQ0FBQ0wsRUFBakIsQ0FBckI7QUFDQTs7QUFFRCxXQUFTTSxjQUFULENBQXdCRCxlQUF4QixFQUE4QztBQUM3QyxRQUFNRSxRQUFRLEdBQUdGLGVBQWUsQ0FBQ0gsU0FBaEIsQ0FBMEJNLEdBQTFCLElBQWlDSCxlQUFlLENBQUNILFNBQWhCLENBQTBCTSxHQUExQixDQUE4QixvQkFBOUIsQ0FBbEQ7QUFBQSxRQUNDbEIsS0FBSyxHQUFHZSxlQUFlLENBQUNGLEtBQWhCLEtBQTBCLENBRG5DOztBQUdBLFFBQUlJLFFBQUosRUFBYztBQUNiRixNQUFBQSxlQUFlLENBQUNILFNBQWhCLENBQTBCTyxXQUExQixDQUFzQ0osZUFBZSxDQUFDSixJQUF0RCxFQUE0RFgsS0FBNUQsRUFBbUVvQixTQUFuRSxFQUE4RSxJQUE5RTtBQUNBLEtBRkQsTUFFTyxJQUFJTCxlQUFlLENBQUNILFNBQWhCLENBQTBCYixPQUE5QixFQUF1QztBQUM3Q2dCLE1BQUFBLGVBQWUsQ0FBQ0gsU0FBaEIsQ0FBMEJiLE9BQTFCLENBQWtDQyxLQUFsQztBQUNBOztBQUVEcUIsSUFBQUEsWUFBWSxDQUFDTixlQUFlLENBQUNPLE9BQWpCLENBQVo7O0FBQ0EsUUFBSXRCLEtBQUosRUFBVztBQUNWZSxNQUFBQSxlQUFlLENBQUNPLE9BQWhCLEdBQTBCQyxVQUFVLENBQUMsWUFBWTtBQUNoRHRCLFFBQUFBLEdBQUcsQ0FBQ3VCLEtBQUoseUJBQ2tCVCxlQUFlLENBQUNMLEVBRGxDLHlCQUNtREssZUFBZSxDQUFDRixLQURuRSw4QkFDNEZsQixrQkFENUY7QUFHQSxPQUptQyxFQUlqQ0Esa0JBQWtCLEdBQUcsSUFKWSxDQUFwQztBQUtBLEtBTkQsTUFNTztBQUNObUIsTUFBQUEsb0JBQW9CLENBQUNDLGVBQUQsQ0FBcEI7QUFDQTs7QUFFRCxXQUFPZixLQUFQO0FBQ0E7O0FBRUQsV0FBU3lCLGVBQVQsQ0FBeUJWLGVBQXpCLEVBQStDVyxNQUEvQyxFQUE0RDtBQUMzRCxRQUFJQSxNQUFNLEtBQUssQ0FBZixFQUFrQjtBQUNqQlgsTUFBQUEsZUFBZSxDQUFDRixLQUFoQixHQUF3QixDQUF4QjtBQUNBWixNQUFBQSxHQUFHLENBQUNDLElBQUosNEJBQTZCYSxlQUFlLENBQUNMLEVBQTdDO0FBQ0EsS0FIRCxNQUdPO0FBQ05LLE1BQUFBLGVBQWUsQ0FBQ0YsS0FBaEIsSUFBeUJhLE1BQXpCO0FBQ0F6QixNQUFBQSxHQUFHLENBQUNDLElBQUosNEJBQTZCYSxlQUFlLENBQUNMLEVBQTdDLGtCQUF1REssZUFBZSxDQUFDRixLQUF2RTtBQUNBO0FBQ0Q7O0FBRUQsTUFBTWMsVUFBVSxHQUFHO0FBQ2xCQyxJQUFBQSxJQUFJLEVBQUUsVUFBVUMsZUFBVixFQUFnQ3hCLEtBQWhDLEVBQWdEO0FBQ3JELGFBQU8sS0FBS3lCLFdBQUwsQ0FBaUJELGVBQWpCLEVBQWtDeEIsS0FBbEMsRUFBeUMsQ0FBekMsQ0FBUDtBQUNBLEtBSGlCO0FBS2xCMEIsSUFBQUEsTUFBTSxFQUFFLFVBQVVGLGVBQVYsRUFBZ0N4QixLQUFoQyxFQUFnRDtBQUN2RCxhQUFPLEtBQUt5QixXQUFMLENBQWlCRCxlQUFqQixFQUFrQ3hCLEtBQWxDLEVBQXlDLENBQUMsQ0FBMUMsQ0FBUDtBQUNBLEtBUGlCO0FBU2xCQyxJQUFBQSxRQUFRLEVBQUUsVUFBVXVCLGVBQVYsRUFBZ0N4QixLQUFoQyxFQUFnRDtBQUN6RCxhQUFPQyxRQUFRLENBQUN1QixlQUFELEVBQWtCeEIsS0FBbEIsQ0FBZjtBQUNBLEtBWGlCO0FBYWxCeUIsSUFBQUEsV0FBVyxFQUFFLFVBQVUxQixVQUFWLEVBQTJCQyxLQUEzQixFQUF1Q3FCLE1BQXZDLEVBQW9EO0FBQ2hFLFVBQU1YLGVBQWUsR0FBR1IsaUJBQWlCLENBQUNILFVBQUQsRUFBYUMsS0FBYixDQUF6QztBQUNBb0IsTUFBQUEsZUFBZSxDQUFDVixlQUFELEVBQWtCVyxNQUFsQixDQUFmO0FBQ0EsYUFBT1YsY0FBYyxDQUFDRCxlQUFELENBQXJCO0FBQ0E7QUFqQmlCLEdBQW5CO1NBb0JlWSxVIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmNvbnN0IF9pVGltZW91dEluU2Vjb25kcyA9IDMwLFxuXHRfbUxvY2tDb3VudGVyczogYW55ID0ge30sXG5cdF9vUmVmZXJlbmNlRHVtbXkgPSB7XG5cdFx0Z2V0SWQ6IGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBcIkJ1c3lMb2NrZXIuUmVmZXJlbmNlRHVtbXlcIjtcblx0XHR9LFxuXHRcdHNldEJ1c3k6IGZ1bmN0aW9uIChiQnVzeTogYW55KSB7XG5cdFx0XHRMb2cuaW5mbyhgc2V0QnVzeSgke2JCdXN5fSkgdHJpZ2dlcmVkIG9uIGR1bW15IHJlZmVyZW5jZWApO1xuXHRcdH1cblx0fTtcbmZ1bmN0aW9uIGdldExvY2tDb3VudElkKG9SZWZlcmVuY2U6IGFueSwgc1BhdGg6IGFueSkge1xuXHRyZXR1cm4gb1JlZmVyZW5jZS5nZXRJZCgpICsgKHNQYXRoIHx8IFwiL2J1c3lcIik7XG59XG5mdW5jdGlvbiBpc0xvY2tlZChvUmVmZXJlbmNlOiBhbnksIHNQYXRoOiBhbnkpIHtcblx0cmV0dXJuIGdldExvY2tDb3VudElkKG9SZWZlcmVuY2UsIHNQYXRoKSBpbiBfbUxvY2tDb3VudGVycztcbn1cbmZ1bmN0aW9uIGdldExvY2tDb3VudEVudHJ5KG9SZWZlcmVuY2U6IGFueSwgc1BhdGg6IGFueSkge1xuXHRpZiAoIW9SZWZlcmVuY2UgfHwgIW9SZWZlcmVuY2UuZ2V0SWQpIHtcblx0XHRMb2cud2FybmluZyhcIk5vIHJlZmVyZW5jZSBmb3IgQnVzeUxvY2tlciwgdXNpbmcgZHVtbXkgcmVmZXJlbmNlXCIpO1xuXHRcdG9SZWZlcmVuY2UgPSBfb1JlZmVyZW5jZUR1bW15O1xuXHR9XG5cblx0c1BhdGggPSBzUGF0aCB8fCBcIi9idXN5XCI7XG5cdGNvbnN0IHNJZCA9IGdldExvY2tDb3VudElkKG9SZWZlcmVuY2UsIHNQYXRoKTtcblxuXHRpZiAoIShzSWQgaW4gX21Mb2NrQ291bnRlcnMpKSB7XG5cdFx0X21Mb2NrQ291bnRlcnNbc0lkXSA9IHtcblx0XHRcdGlkOiBzSWQsXG5cdFx0XHRwYXRoOiBzUGF0aCxcblx0XHRcdHJlZmVyZW5jZTogb1JlZmVyZW5jZSxcblx0XHRcdGNvdW50OiAwXG5cdFx0fTtcblx0fVxuXHRyZXR1cm4gX21Mb2NrQ291bnRlcnNbc0lkXTtcbn1cbi8qKlxuICogQHBhcmFtIG1Mb2NrQ291bnRFbnRyeVxuICovXG5mdW5jdGlvbiBkZWxldGVMb2NrQ291bnRFbnRyeShtTG9ja0NvdW50RW50cnk6IGFueSkge1xuXHRkZWxldGUgX21Mb2NrQ291bnRlcnNbbUxvY2tDb3VudEVudHJ5LmlkXTtcbn1cblxuZnVuY3Rpb24gYXBwbHlMb2NrU3RhdGUobUxvY2tDb3VudEVudHJ5OiBhbnkpIHtcblx0Y29uc3QgYklzTW9kZWwgPSBtTG9ja0NvdW50RW50cnkucmVmZXJlbmNlLmlzQSAmJiBtTG9ja0NvdW50RW50cnkucmVmZXJlbmNlLmlzQShcInNhcC51aS5tb2RlbC5Nb2RlbFwiKSxcblx0XHRiQnVzeSA9IG1Mb2NrQ291bnRFbnRyeS5jb3VudCAhPT0gMDtcblxuXHRpZiAoYklzTW9kZWwpIHtcblx0XHRtTG9ja0NvdW50RW50cnkucmVmZXJlbmNlLnNldFByb3BlcnR5KG1Mb2NrQ291bnRFbnRyeS5wYXRoLCBiQnVzeSwgdW5kZWZpbmVkLCB0cnVlKTtcblx0fSBlbHNlIGlmIChtTG9ja0NvdW50RW50cnkucmVmZXJlbmNlLnNldEJ1c3kpIHtcblx0XHRtTG9ja0NvdW50RW50cnkucmVmZXJlbmNlLnNldEJ1c3koYkJ1c3kpO1xuXHR9XG5cblx0Y2xlYXJUaW1lb3V0KG1Mb2NrQ291bnRFbnRyeS50aW1lb3V0KTtcblx0aWYgKGJCdXN5KSB7XG5cdFx0bUxvY2tDb3VudEVudHJ5LnRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblx0XHRcdExvZy5lcnJvcihcblx0XHRcdFx0YGJ1c3kgbG9jayBmb3IgJHttTG9ja0NvdW50RW50cnkuaWR9IHdpdGggdmFsdWUgJHttTG9ja0NvdW50RW50cnkuY291bnR9IHRpbWVkIG91dCBhZnRlciAke19pVGltZW91dEluU2Vjb25kc30gc2Vjb25kcyFgXG5cdFx0XHQpO1xuXHRcdH0sIF9pVGltZW91dEluU2Vjb25kcyAqIDEwMDApO1xuXHR9IGVsc2Uge1xuXHRcdGRlbGV0ZUxvY2tDb3VudEVudHJ5KG1Mb2NrQ291bnRFbnRyeSk7XG5cdH1cblxuXHRyZXR1cm4gYkJ1c3k7XG59XG5cbmZ1bmN0aW9uIGNoYW5nZUxvY2tDb3VudChtTG9ja0NvdW50RW50cnk6IGFueSwgaURlbHRhOiBhbnkpIHtcblx0aWYgKGlEZWx0YSA9PT0gMCkge1xuXHRcdG1Mb2NrQ291bnRFbnRyeS5jb3VudCA9IDA7XG5cdFx0TG9nLmluZm8oYGJ1c3kgbG9jayBjb3VudCAnJHttTG9ja0NvdW50RW50cnkuaWR9JyB3YXMgcmVzZXQgdG8gMGApO1xuXHR9IGVsc2Uge1xuXHRcdG1Mb2NrQ291bnRFbnRyeS5jb3VudCArPSBpRGVsdGE7XG5cdFx0TG9nLmluZm8oYGJ1c3kgbG9jayBjb3VudCAnJHttTG9ja0NvdW50RW50cnkuaWR9JyBpcyAke21Mb2NrQ291bnRFbnRyeS5jb3VudH1gKTtcblx0fVxufVxuXG5jb25zdCBCdXN5TG9ja2VyID0ge1xuXHRsb2NrOiBmdW5jdGlvbiAob01vZGVsT3JDb250cm9sOiBhbnksIHNQYXRoPzogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3VwZGF0ZUxvY2sob01vZGVsT3JDb250cm9sLCBzUGF0aCwgMSk7XG5cdH0sXG5cblx0dW5sb2NrOiBmdW5jdGlvbiAob01vZGVsT3JDb250cm9sOiBhbnksIHNQYXRoPzogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3VwZGF0ZUxvY2sob01vZGVsT3JDb250cm9sLCBzUGF0aCwgLTEpO1xuXHR9LFxuXG5cdGlzTG9ja2VkOiBmdW5jdGlvbiAob01vZGVsT3JDb250cm9sOiBhbnksIHNQYXRoPzogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIGlzTG9ja2VkKG9Nb2RlbE9yQ29udHJvbCwgc1BhdGgpO1xuXHR9LFxuXG5cdF91cGRhdGVMb2NrOiBmdW5jdGlvbiAob1JlZmVyZW5jZTogYW55LCBzUGF0aDogYW55LCBpRGVsdGE6IGFueSkge1xuXHRcdGNvbnN0IG1Mb2NrQ291bnRFbnRyeSA9IGdldExvY2tDb3VudEVudHJ5KG9SZWZlcmVuY2UsIHNQYXRoKTtcblx0XHRjaGFuZ2VMb2NrQ291bnQobUxvY2tDb3VudEVudHJ5LCBpRGVsdGEpO1xuXHRcdHJldHVybiBhcHBseUxvY2tTdGF0ZShtTG9ja0NvdW50RW50cnkpO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCdXN5TG9ja2VyO1xuIl19
@@ -2,10 +2,10 @@ import Log from "sap/base/Log";
2
2
  const _iTimeoutInSeconds = 30,
3
3
  _mLockCounters: any = {},
4
4
  _oReferenceDummy = {
5
- getId: function() {
5
+ getId: function () {
6
6
  return "BusyLocker.ReferenceDummy";
7
7
  },
8
- setBusy: function(bBusy: any) {
8
+ setBusy: function (bBusy: any) {
9
9
  Log.info(`setBusy(${bBusy}) triggered on dummy reference`);
10
10
  }
11
11
  };
@@ -53,7 +53,7 @@ function applyLockState(mLockCountEntry: any) {
53
53
 
54
54
  clearTimeout(mLockCountEntry.timeout);
55
55
  if (bBusy) {
56
- mLockCountEntry.timeout = setTimeout(function() {
56
+ mLockCountEntry.timeout = setTimeout(function () {
57
57
  Log.error(
58
58
  `busy lock for ${mLockCountEntry.id} with value ${mLockCountEntry.count} timed out after ${_iTimeoutInSeconds} seconds!`
59
59
  );
@@ -76,19 +76,19 @@ function changeLockCount(mLockCountEntry: any, iDelta: any) {
76
76
  }
77
77
 
78
78
  const BusyLocker = {
79
- lock: function(oModelOrControl: any, sPath?: string) {
79
+ lock: function (oModelOrControl: any, sPath?: string) {
80
80
  return this._updateLock(oModelOrControl, sPath, 1);
81
81
  },
82
82
 
83
- unlock: function(oModelOrControl: any, sPath?: string) {
83
+ unlock: function (oModelOrControl: any, sPath?: string) {
84
84
  return this._updateLock(oModelOrControl, sPath, -1);
85
85
  },
86
86
 
87
- isLocked: function(oModelOrControl: any, sPath?: string) {
87
+ isLocked: function (oModelOrControl: any, sPath?: string) {
88
88
  return isLocked(oModelOrControl, sPath);
89
89
  },
90
90
 
91
- _updateLock: function(oReference: any, sPath: any, iDelta: any) {
91
+ _updateLock: function (oReference: any, sPath: any, iDelta: any) {
92
92
  const mLockCountEntry = getLockCountEntry(oReference, sPath);
93
93
  changeLockCount(mLockCountEntry, iDelta);
94
94
  return applyLockState(mLockCountEntry);