@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
@@ -1,38 +1,38 @@
1
- import { FacetTypes } from "@sap-ux/vocabularies-types";
2
- import { ManifestSection, ManifestSubSection, TemplateType } from "../ManifestSettings";
3
- import { PageDefinition } from "../TemplateConverter";
4
1
  import { EntityType } from "@sap-ux/annotation-converter";
5
- import {
6
- createCustomSubSections,
7
- createSubSections,
8
- createCustomHeaderFacetSubSections,
9
- CustomObjectPageSection,
10
- ObjectPageSection,
11
- ObjectPageSubSection,
12
- FormSubSection
13
- } from "../controls/ObjectPage/SubSection";
14
- import { getHeaderFacetsFromAnnotations, getHeaderFacetsFromManifest, ObjectPageHeaderFacet } from "../controls/ObjectPage/HeaderFacet";
15
- import { CustomSectionID, EditableHeaderSectionID, SectionID } from "../helpers/ID";
16
- import { ConfigurableRecord, insertCustomElements, Placement, Position } from "../helpers/ConfigurableObject";
2
+ import { FacetTypes } from "@sap-ux/vocabularies-types";
17
3
  import { BaseAction, getActionsFromManifest, removeDuplicateActions } from "sap/fe/core/converters/controls/Common/Action";
18
4
  import {
19
- getHeaderDefaultActions,
20
5
  getFooterDefaultActions,
6
+ getHeaderDefaultActions,
21
7
  getHiddenHeaderActions
22
8
  } from "sap/fe/core/converters/objectPage/HeaderAndFooterAction";
23
- import { Avatar, getAvatar } from "../controls/ObjectPage/Avatar";
24
9
  import {
25
10
  annotationExpression,
26
- bindingExpression,
11
+ BindingExpression,
27
12
  compileBinding,
13
+ constant,
28
14
  equal,
29
- not,
15
+ Expression,
30
16
  ifElse,
31
- constant,
32
- BindingExpression,
33
- Expression
17
+ not
34
18
  } from "sap/fe/core/helpers/BindingExpression";
19
+ import { Avatar, getAvatar } from "../controls/ObjectPage/Avatar";
20
+ import { getHeaderFacetsFromAnnotations, getHeaderFacetsFromManifest, ObjectPageHeaderFacet } from "../controls/ObjectPage/HeaderFacet";
21
+ import {
22
+ createCustomHeaderFacetSubSections,
23
+ createCustomSubSections,
24
+ createSubSections,
25
+ CustomObjectPageSection,
26
+ FormSubSection,
27
+ ObjectPageSection,
28
+ ObjectPageSubSection
29
+ } from "../controls/ObjectPage/SubSection";
35
30
  import ConverterContext from "../ConverterContext";
31
+ import { UI } from "../helpers/BindingHelper";
32
+ import { ConfigurableRecord, insertCustomElements, Placement, Position } from "../helpers/ConfigurableObject";
33
+ import { CustomSectionID, EditableHeaderSectionID, SectionID } from "../helpers/ID";
34
+ import { ManifestSection, ManifestSubSection, TemplateType } from "../ManifestSettings";
35
+ import { PageDefinition } from "../TemplateConverter";
36
36
 
37
37
  export type ObjectPageDefinition = PageDefinition & {
38
38
  header: {
@@ -46,7 +46,6 @@ export type ObjectPageDefinition = PageDefinition & {
46
46
  title: {
47
47
  expandedImageVisible: BindingExpression<string>;
48
48
  };
49
- situations: boolean;
50
49
  };
51
50
  sections: ObjectPageSection[];
52
51
  footerActions: BaseAction[];
@@ -77,7 +76,7 @@ export function createEditableHeaderSection(
77
76
  if (customHeaderFacetSubSections.length > 0) {
78
77
  // merge annotation based header facets and custom header facets in the right order
79
78
  let i = 0;
80
- allHeaderFacets.forEach(function(item) {
79
+ allHeaderFacets.forEach(function (item) {
81
80
  // hidden header facets are not included in allHeaderFacets array => add them anyway
82
81
  while (headerfacetSubSections.length > i && headerfacetSubSections[i].visible === "false") {
83
82
  allHeaderFacetsSubSections.push(headerfacetSubSections[i]);
@@ -93,7 +92,7 @@ export function createEditableHeaderSection(
93
92
  allHeaderFacetsSubSections.push(headerfacetSubSections[i]);
94
93
  i++;
95
94
  } else {
96
- customHeaderFacetSubSections.forEach(function(customItem) {
95
+ customHeaderFacetSubSections.forEach(function (customItem) {
97
96
  if (item.key === customItem.key) {
98
97
  allHeaderFacetsSubSections.push(customItem);
99
98
  }
@@ -107,7 +106,7 @@ export function createEditableHeaderSection(
107
106
  id: editableHeaderSectionID,
108
107
  key: "EditableHeaderContent",
109
108
  title: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_HEADER_SECTION}",
110
- visible: "{= ${ui>/editMode} === 'Editable' }",
109
+ visible: compileBinding(UI.IsEditable),
111
110
  subSections: allHeaderFacetsSubSections
112
111
  };
113
112
  return headerSection;
@@ -159,7 +158,7 @@ function getSectionsFromManifest(
159
158
  converterContext: ConverterContext
160
159
  ): Record<string, CustomObjectPageSection> {
161
160
  const sections: Record<string, CustomObjectPageSection> = {};
162
- Object.keys(manifestSections).forEach(manifestSectionKey => {
161
+ Object.keys(manifestSections).forEach((manifestSectionKey) => {
163
162
  sections[manifestSectionKey] = getSectionFromManifest(manifestSections[manifestSectionKey], manifestSectionKey, converterContext);
164
163
  });
165
164
  return sections;
@@ -218,7 +217,7 @@ function getSectionFromManifest(
218
217
  * @param {ConverterContext} converterContext The converter context
219
218
  * @returns An array containing all the actions for this ObjectPage header
220
219
  */
221
- export const getHeaderActions = function(converterContext: ConverterContext): BaseAction[] {
220
+ export const getHeaderActions = function (converterContext: ConverterContext): BaseAction[] {
222
221
  const aAnnotationHeaderActions: BaseAction[] = getHeaderDefaultActions(converterContext);
223
222
  const manifestWrapper = converterContext.getManifestWrapper();
224
223
  const headerActions = insertCustomElements(
@@ -231,7 +230,7 @@ export const getHeaderActions = function(converterContext: ConverterContext): Ba
231
230
  undefined,
232
231
  getHiddenHeaderActions(converterContext)
233
232
  ),
234
- { isNavigable: "overwrite", enabled: "overwrite", defaultValuesExtensionFunction: "overwrite" }
233
+ { isNavigable: "overwrite", enabled: "overwrite", defaultValuesExtensionFunction: "overwrite", command: "overwrite" }
235
234
  );
236
235
  return removeDuplicateActions(headerActions);
237
236
  };
@@ -242,13 +241,13 @@ export const getHeaderActions = function(converterContext: ConverterContext): Ba
242
241
  * @param {ConverterContext} converterContext The converter context
243
242
  * @returns An array containing all the actions for this ObjectPage footer
244
243
  */
245
- export const getFooterActions = function(converterContext: ConverterContext): BaseAction[] {
244
+ export const getFooterActions = function (converterContext: ConverterContext): BaseAction[] {
246
245
  const manifestWrapper = converterContext.getManifestWrapper();
247
246
  const aAnnotationFooterActions: BaseAction[] = getFooterDefaultActions(manifestWrapper.getViewLevel(), converterContext);
248
247
  const footerActions = insertCustomElements(
249
248
  aAnnotationFooterActions,
250
249
  getActionsFromManifest(manifestWrapper.getFooterActions(), converterContext, aAnnotationFooterActions),
251
- { isNavigable: "overwrite", enabled: "overwrite", defaultValuesExtensionFunction: "overwrite" }
250
+ { isNavigable: "overwrite", enabled: "overwrite", defaultValuesExtensionFunction: "overwrite", command: "overwrite" }
252
251
  );
253
252
  return footerActions;
254
253
  };
@@ -259,7 +258,7 @@ export const getFooterActions = function(converterContext: ConverterContext): Ba
259
258
  * @param {ConverterContext} converterContext The converter context
260
259
  * @returns An array of sections.
261
260
  */
262
- export const getSections = function(converterContext: ConverterContext): ObjectPageSection[] {
261
+ export const getSections = function (converterContext: ConverterContext): ObjectPageSection[] {
263
262
  const manifestWrapper = converterContext.getManifestWrapper();
264
263
  const sections = insertCustomElements(
265
264
  getSectionsFromAnnotation(converterContext),
@@ -282,8 +281,8 @@ export const getSections = function(converterContext: ConverterContext): ObjectP
282
281
  // defining the side content and actions in the manifest at collection facet level; now, since the sideContent always needs
283
282
  // to be assigned to a block, we need to move the sideContent of from a mixed collection facet to its first child reference facet.
284
283
  // ==============================================
285
- sections.forEach(function(section) {
286
- section.subSections?.forEach(function(subSection) {
284
+ sections.forEach(function (section) {
285
+ section.subSections?.forEach(function (subSection) {
287
286
  if (subSection.type === "Mixed" && subSection.sideContent != undefined && subSection.content && subSection.content.length > 0) {
288
287
  // 1. Copy sideContent / actions to the SubSection's content
289
288
  // 2. Delete sideContent / actions at the (invalid) manifest level
@@ -326,11 +325,7 @@ function getShowHeaderContentExpression(converterContext: ConverterContext): Exp
326
325
  return ifElse(
327
326
  !hasHeaderContent(converterContext),
328
327
  constant(false),
329
- ifElse(
330
- equal(manifestWrapper.isHeaderEditable(), false),
331
- constant(true),
332
- not(equal(bindingExpression("/editMode", "ui"), "Editable"))
333
- )
328
+ ifElse(equal(manifestWrapper.isHeaderEditable(), false), constant(true), not(UI.IsEditable))
334
329
  );
335
330
  }
336
331
 
@@ -340,7 +335,7 @@ function getShowHeaderContentExpression(converterContext: ConverterContext): Exp
340
335
  * @param converterContext The instance of the converter context
341
336
  * @returns {BindingExpression<boolean>} The binding expression for the Delete button
342
337
  */
343
- export const getShowHeaderContent = function(converterContext: ConverterContext): BindingExpression<boolean> {
338
+ export const getShowHeaderContent = function (converterContext: ConverterContext): BindingExpression<boolean> {
344
339
  return compileBinding(getShowHeaderContentExpression(converterContext));
345
340
  };
346
341
 
@@ -350,16 +345,15 @@ export const getShowHeaderContent = function(converterContext: ConverterContext)
350
345
  * @param converterContext The instance of the converter context
351
346
  * @returns {BindingExpression<string>} The binding expression for the Delete button
352
347
  */
353
- export const getExpandedImageVisible = function(converterContext: ConverterContext): BindingExpression<string> {
348
+ export const getExpandedImageVisible = function (converterContext: ConverterContext): BindingExpression<string> {
354
349
  return compileBinding(not(getShowHeaderContentExpression(converterContext)));
355
350
  };
356
351
 
357
- export const convertPage = function(converterContext: ConverterContext): ObjectPageDefinition {
352
+ export const convertPage = function (converterContext: ConverterContext): ObjectPageDefinition {
358
353
  const manifestWrapper = converterContext.getManifestWrapper();
359
354
  let headerSection: ObjectPageSection | undefined;
360
355
  const entityType: EntityType = converterContext.getEntityType();
361
356
 
362
- const situationAnnotations = (entityType.annotations as any)?.FE?.Situations;
363
357
  // Retrieve all header facets (from annotations & custom)
364
358
  const headerFacets = insertCustomElements(
365
359
  getHeaderFacetsFromAnnotations(converterContext),
@@ -390,8 +384,7 @@ export const convertPage = function(converterContext: ConverterContext): ObjectP
390
384
  avatar: getAvatar(converterContext),
391
385
  title: {
392
386
  expandedImageVisible: getExpandedImageVisible(converterContext)
393
- },
394
- situations: situationAnnotations
387
+ }
395
388
  },
396
389
  sections: sections,
397
390
  footerActions: footerActions,
@@ -84,13 +84,13 @@ sap.ui.define([], function () {
84
84
  },
85
85
  tool: {
86
86
  start: function (oComponent) {
87
- oComponent.getModel("internal").setProperty("/uiAdaptation", true);
87
+ oComponent.getEnvironmentCapabilities().setCapability("AppState", false);
88
88
  },
89
89
  stop: function (oComponent) {
90
- oComponent.getModel("internal").setProperty("/uiAdaptation", false);
90
+ oComponent.getEnvironmentCapabilities().setCapability("AppState", true);
91
91
  }
92
92
  }
93
93
  };
94
94
  return AppComponentDesignTime;
95
95
  }, false);
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcENvbXBvbmVudC5kZXNpZ250aW1lLnRzIl0sIm5hbWVzIjpbIm9VcmxQYXJzZXIiLCJzYXAiLCJ1c2hlbGwiLCJDb250YWluZXIiLCJnZXRTZXJ2aWNlIiwib1VybFBhcmFtcyIsInBhcnNlUGFyYW1ldGVycyIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VhcmNoIiwic0Zpb3JpVG9vbHNSdGFNb2RlIiwic0Zpb3JpVG9vbHNSdGFNb2RlVmFsdWUiLCJ0b0xvd2VyQ2FzZSIsIkFwcENvbXBvbmVudERlc2lnblRpbWUiLCJhY3Rpb25zIiwiYWdncmVnYXRpb25zIiwicm9vdENvbnRyb2wiLCJwcm9wYWdhdGVNZXRhZGF0YSIsIm9FbGVtZW50IiwibUFsbG93TGlzdCIsImlzT25EeW5hbWljUGFnZSIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsIm9QYXJlbnQiLCJnZXRQYXJlbnQiLCJzUGFyZW50QWdncmVnYXRpb25OYW1lIiwiZ2V0SWQiLCJpbmRleE9mIiwidG9vbCIsInN0YXJ0Iiwib0NvbXBvbmVudCIsImdldE1vZGVsIiwic2V0UHJvcGVydHkiLCJzdG9wIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBRkEsTUFBTUEsVUFBVSxHQUFHQyxHQUFHLENBQUNDLE1BQUosQ0FBV0MsU0FBWCxDQUFxQkMsVUFBckIsQ0FBZ0MsWUFBaEMsQ0FBbkI7QUFDQSxNQUFNQyxVQUFVLEdBQUdMLFVBQVUsQ0FBQ00sZUFBWCxDQUEyQkMsTUFBTSxDQUFDQyxRQUFQLENBQWdCQyxNQUEzQyxDQUFuQjtBQUNBLE1BQU1DLGtCQUFrQixHQUFHLHNCQUEzQjtBQUNBLE1BQU1DLHVCQUF1QixHQUFHTixVQUFVLENBQUNLLGtCQUFELENBQVYsSUFBa0NMLFVBQVUsQ0FBQ0ssa0JBQUQsQ0FBVixDQUErQixDQUEvQixFQUFrQ0UsV0FBbEMsRUFBbEUsQyxDQUNBOztBQUNBLE1BQU1DLHNCQUFzQixHQUFHO0FBQzlCQyxJQUFBQSxPQUFPLEVBQUUsZUFEcUI7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QixFQUFnQ0MsV0FBaEMsQ0FBNEMsZUFBNUMsRUFBNkQsS0FBN0Q7QUFDQTtBQU5JO0FBM0V3QixHQUEvQjtTQXFGZW5CLHNCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBvVXJsUGFyc2VyID0gc2FwLnVzaGVsbC5Db250YWluZXIuZ2V0U2VydmljZShcIlVSTFBhcnNpbmdcIik7XG5jb25zdCBvVXJsUGFyYW1zID0gb1VybFBhcnNlci5wYXJzZVBhcmFtZXRlcnMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG5jb25zdCBzRmlvcmlUb29sc1J0YU1vZGUgPSBcImZpb3JpLXRvb2xzLXJ0YS1tb2RlXCI7XG5jb25zdCBzRmlvcmlUb29sc1J0YU1vZGVWYWx1ZSA9IG9VcmxQYXJhbXNbc0Zpb3JpVG9vbHNSdGFNb2RlXSAmJiBvVXJsUGFyYW1zW3NGaW9yaVRvb2xzUnRhTW9kZV1bMF0udG9Mb3dlckNhc2UoKTtcbi8vIFRvIGVuYWJsZSBhbGwgYWN0aW9ucywgcmVtb3ZlIHRoZSBwcm9wYWdhdGVNZXRhZGF0YSBmdW5jdGlvbi4gT3IsIHJlbW92ZSB0aGlzIGZpbGUgYW5kIGl0cyBlbnRyeSBpbiBBcHBDb21wb25lbnQuanMgcmVmZXJyaW5nICdkZXNpZ25UaW1lJy5cbmNvbnN0IEFwcENvbXBvbmVudERlc2lnblRpbWUgPSB7XG5cdGFjdGlvbnM6IFwibm90LWFkYXB0YWJsZVwiLFxuXHRhZ2dyZWdhdGlvbnM6IHtcblx0XHRyb290Q29udHJvbDoge1xuXHRcdFx0YWN0aW9uczogXCJub3QtYWRhcHRhYmxlXCIsXG5cdFx0XHRwcm9wYWdhdGVNZXRhZGF0YTogZnVuY3Rpb24ob0VsZW1lbnQ6IGFueSkge1xuXHRcdFx0XHQvLyBhbGxvdyBsaXN0IG9mIGNvbnRyb2xzIGZvciB3aGljaCB3ZSB3YW50IHRvIGVuYWJsZSBEZXNpZ25UaW1lXG5cdFx0XHRcdGxldCBtQWxsb3dMaXN0OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuXHRcdFx0XHRjb25zdCBpc09uRHluYW1pY1BhZ2UgPSBmdW5jdGlvbihvRWxlbWVudDogYW55KTogYm9vbGVhbiB7XG5cdFx0XHRcdFx0aWYgKG9FbGVtZW50LmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpID09PSBcInNhcC5mLkR5bmFtaWNQYWdlXCIpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBvUGFyZW50ID0gb0VsZW1lbnQuZ2V0UGFyZW50KCk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gb1BhcmVudCA/IGlzT25EeW5hbWljUGFnZShvUGFyZW50KSA6IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdFx0aWYgKHNGaW9yaVRvb2xzUnRhTW9kZVZhbHVlID09PSBcInRydWVcIikge1xuXHRcdFx0XHRcdC8vIGFsbG93IGxpc3QgZm9yIHRoZSBGaW9yaSB0b29sc1xuXHRcdFx0XHRcdGlmIChpc09uRHluYW1pY1BhZ2Uob0VsZW1lbnQpKSB7XG5cdFx0XHRcdFx0XHRtQWxsb3dMaXN0ID0ge1xuXHRcdFx0XHRcdFx0XHRcInNhcC51aS5mbC52YXJpYW50cy5WYXJpYW50TWFuYWdlbWVudFwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkZpbHRlckJhclwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcInNhcC51aS5tZGMuVGFibGVcIjogdHJ1ZVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gYWxsb3cgbGlzdCBmb3Iga2V5IHVzZXJzXG5cdFx0XHRcdFx0bUFsbG93TGlzdCA9IHtcblx0XHRcdFx0XHRcdFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN0YXNoYWJsZVZCb3hcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN0YXNoYWJsZUhCb3hcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnV4YXAuT2JqZWN0UGFnZUxheW91dFwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJzYXAudXhhcC5BbmNob3JCYXJcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnV4YXAuT2JqZWN0UGFnZVNlY3Rpb25cIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnV4YXAuT2JqZWN0UGFnZVN1YlNlY3Rpb25cIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLm0uQnV0dG9uXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC5tLk1lbnVCdXR0b25cIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLm0uRmxleEJveFwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJzYXAudWkuZmwudXRpbC5JRnJhbWVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnVpLmxheW91dC5mb3JtLkZvcm1cIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnVpLmxheW91dC5mb3JtLkZvcm1Db250YWluZXJcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnVpLmxheW91dC5mb3JtLkZvcm1FbGVtZW50XCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51aS5mbC52YXJpYW50cy5WYXJpYW50TWFuYWdlbWVudFwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnVpLm1kYy5UYWJsZVwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJzYXAubS5JY29uVGFiQmFyXCI6IHRydWVcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdG9FbGVtZW50LmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpID09PSBcInNhcC5tLk1lbnVCdXR0b25cIiAmJlxuXHRcdFx0XHRcdFx0b0VsZW1lbnQuZ2V0UGFyZW50KCkuc1BhcmVudEFnZ3JlZ2F0aW9uTmFtZSAhPT0gXCJfYW5jaG9yQmFyXCJcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdG1BbGxvd0xpc3RbXCJzYXAubS5NZW51QnV0dG9uXCJdID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdG9FbGVtZW50LmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpID09PSBcInNhcC5tLkJ1dHRvblwiICYmXG5cdFx0XHRcdFx0XHRvRWxlbWVudC5nZXRQYXJlbnQoKS5zUGFyZW50QWdncmVnYXRpb25OYW1lICE9PSBcIl9hbmNob3JCYXJcIlxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0bUFsbG93TGlzdFtcInNhcC5tLkJ1dHRvblwiXSA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRvRWxlbWVudC5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSA9PT0gXCJzYXAubS5GbGV4Qm94XCIgJiZcblx0XHRcdFx0XHRcdG9FbGVtZW50LmdldElkKCkuaW5kZXhPZihcIi0tZmU6OkhlYWRlckNvbnRlbnRDb250YWluZXJcIikgPCAwXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRtQWxsb3dMaXN0W1wic2FwLm0uRmxleEJveFwiXSA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobUFsbG93TGlzdFtvRWxlbWVudC5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKV0pIHtcblx0XHRcdFx0XHRyZXR1cm4ge307XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdGFjdGlvbnM6IFwibm90LWFkYXB0YWJsZVwiXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0dG9vbDoge1xuXHRcdHN0YXJ0OiBmdW5jdGlvbihvQ29tcG9uZW50OiBhbnkpIHtcblx0XHRcdG9Db21wb25lbnQuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKS5zZXRQcm9wZXJ0eShcIi91aUFkYXB0YXRpb25cIiwgdHJ1ZSk7XG5cdFx0fSxcblx0XHRzdG9wOiBmdW5jdGlvbihvQ29tcG9uZW50OiBhbnkpIHtcblx0XHRcdG9Db21wb25lbnQuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKS5zZXRQcm9wZXJ0eShcIi91aUFkYXB0YXRpb25cIiwgZmFsc2UpO1xuXHRcdH1cblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQXBwQ29tcG9uZW50RGVzaWduVGltZTtcbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcENvbXBvbmVudC5kZXNpZ250aW1lLnRzIl0sIm5hbWVzIjpbIm9VcmxQYXJzZXIiLCJzYXAiLCJ1c2hlbGwiLCJDb250YWluZXIiLCJnZXRTZXJ2aWNlIiwib1VybFBhcmFtcyIsInBhcnNlUGFyYW1ldGVycyIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VhcmNoIiwic0Zpb3JpVG9vbHNSdGFNb2RlIiwic0Zpb3JpVG9vbHNSdGFNb2RlVmFsdWUiLCJ0b0xvd2VyQ2FzZSIsIkFwcENvbXBvbmVudERlc2lnblRpbWUiLCJhY3Rpb25zIiwiYWdncmVnYXRpb25zIiwicm9vdENvbnRyb2wiLCJwcm9wYWdhdGVNZXRhZGF0YSIsIm9FbGVtZW50IiwibUFsbG93TGlzdCIsImlzT25EeW5hbWljUGFnZSIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsIm9QYXJlbnQiLCJnZXRQYXJlbnQiLCJzUGFyZW50QWdncmVnYXRpb25OYW1lIiwiZ2V0SWQiLCJpbmRleE9mIiwidG9vbCIsInN0YXJ0Iiwib0NvbXBvbmVudCIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwic2V0Q2FwYWJpbGl0eSIsInN0b3AiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFBQSxNQUFNQSxVQUFVLEdBQUdDLEdBQUcsQ0FBQ0MsTUFBSixDQUFXQyxTQUFYLENBQXFCQyxVQUFyQixDQUFnQyxZQUFoQyxDQUFuQjtBQUNBLE1BQU1DLFVBQVUsR0FBR0wsVUFBVSxDQUFDTSxlQUFYLENBQTJCQyxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JDLE1BQTNDLENBQW5CO0FBQ0EsTUFBTUMsa0JBQWtCLEdBQUcsc0JBQTNCO0FBQ0EsTUFBTUMsdUJBQXVCLEdBQUdOLFVBQVUsQ0FBQ0ssa0JBQUQsQ0FBVixJQUFrQ0wsVUFBVSxDQUFDSyxrQkFBRCxDQUFWLENBQStCLENBQS9CLEVBQWtDRSxXQUFsQyxFQUFsRSxDLENBQ0E7O0FBQ0EsTUFBTUMsc0JBQXNCLEdBQUc7QUFDOUJDLElB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R0FBd0NDLGFBQXhDLENBQXNELFVBQXRELEVBQWtFLElBQWxFO0FBQ0E7QUFOSTtBQTNFd0IsR0FBL0I7U0FxRmVuQixzQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5cbmNvbnN0IG9VcmxQYXJzZXIgPSBzYXAudXNoZWxsLkNvbnRhaW5lci5nZXRTZXJ2aWNlKFwiVVJMUGFyc2luZ1wiKTtcbmNvbnN0IG9VcmxQYXJhbXMgPSBvVXJsUGFyc2VyLnBhcnNlUGFyYW1ldGVycyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbmNvbnN0IHNGaW9yaVRvb2xzUnRhTW9kZSA9IFwiZmlvcmktdG9vbHMtcnRhLW1vZGVcIjtcbmNvbnN0IHNGaW9yaVRvb2xzUnRhTW9kZVZhbHVlID0gb1VybFBhcmFtc1tzRmlvcmlUb29sc1J0YU1vZGVdICYmIG9VcmxQYXJhbXNbc0Zpb3JpVG9vbHNSdGFNb2RlXVswXS50b0xvd2VyQ2FzZSgpO1xuLy8gVG8gZW5hYmxlIGFsbCBhY3Rpb25zLCByZW1vdmUgdGhlIHByb3BhZ2F0ZU1ldGFkYXRhIGZ1bmN0aW9uLiBPciwgcmVtb3ZlIHRoaXMgZmlsZSBhbmQgaXRzIGVudHJ5IGluIEFwcENvbXBvbmVudC5qcyByZWZlcnJpbmcgJ2Rlc2lnblRpbWUnLlxuY29uc3QgQXBwQ29tcG9uZW50RGVzaWduVGltZSA9IHtcblx0YWN0aW9uczogXCJub3QtYWRhcHRhYmxlXCIsXG5cdGFnZ3JlZ2F0aW9uczoge1xuXHRcdHJvb3RDb250cm9sOiB7XG5cdFx0XHRhY3Rpb25zOiBcIm5vdC1hZGFwdGFibGVcIixcblx0XHRcdHByb3BhZ2F0ZU1ldGFkYXRhOiBmdW5jdGlvbiAob0VsZW1lbnQ6IGFueSkge1xuXHRcdFx0XHQvLyBhbGxvdyBsaXN0IG9mIGNvbnRyb2xzIGZvciB3aGljaCB3ZSB3YW50IHRvIGVuYWJsZSBEZXNpZ25UaW1lXG5cdFx0XHRcdGxldCBtQWxsb3dMaXN0OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuXHRcdFx0XHRjb25zdCBpc09uRHluYW1pY1BhZ2UgPSBmdW5jdGlvbiAob0VsZW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xuXHRcdFx0XHRcdGlmIChvRWxlbWVudC5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSA9PT0gXCJzYXAuZi5EeW5hbWljUGFnZVwiKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y29uc3Qgb1BhcmVudCA9IG9FbGVtZW50LmdldFBhcmVudCgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIG9QYXJlbnQgPyBpc09uRHluYW1pY1BhZ2Uob1BhcmVudCkgOiBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0XHRcdGlmIChzRmlvcmlUb29sc1J0YU1vZGVWYWx1ZSA9PT0gXCJ0cnVlXCIpIHtcblx0XHRcdFx0XHQvLyBhbGxvdyBsaXN0IGZvciB0aGUgRmlvcmkgdG9vbHNcblx0XHRcdFx0XHRpZiAoaXNPbkR5bmFtaWNQYWdlKG9FbGVtZW50KSkge1xuXHRcdFx0XHRcdFx0bUFsbG93TGlzdCA9IHtcblx0XHRcdFx0XHRcdFx0XCJzYXAudWkuZmwudmFyaWFudHMuVmFyaWFudE1hbmFnZW1lbnRcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XCJzYXAudWkubWRjLlRhYmxlXCI6IHRydWVcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGFsbG93IGxpc3QgZm9yIGtleSB1c2Vyc1xuXHRcdFx0XHRcdG1BbGxvd0xpc3QgPSB7XG5cdFx0XHRcdFx0XHRcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdGFzaGFibGVWQm94XCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5jb250cm9scy5TdGFzaGFibGVIQm94XCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51eGFwLk9iamVjdFBhZ2VMYXlvdXRcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnV4YXAuQW5jaG9yQmFyXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51eGFwLk9iamVjdFBhZ2VTZWN0aW9uXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51eGFwLk9iamVjdFBhZ2VTdWJTZWN0aW9uXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC5tLkJ1dHRvblwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJzYXAubS5NZW51QnV0dG9uXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC5tLkZsZXhCb3hcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLnVpLmZsLnV0aWwuSUZyYW1lXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtQ29udGFpbmVyXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51aS5sYXlvdXQuZm9ybS5Gb3JtRWxlbWVudFwiOiB0cnVlLFxuXHRcdFx0XHRcdFx0XCJzYXAudWkuZmwudmFyaWFudHMuVmFyaWFudE1hbmFnZW1lbnRcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmlsdGVyQmFyXCI6IHRydWUsXG5cdFx0XHRcdFx0XHRcInNhcC51aS5tZGMuVGFibGVcIjogdHJ1ZSxcblx0XHRcdFx0XHRcdFwic2FwLm0uSWNvblRhYkJhclwiOiB0cnVlXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRvRWxlbWVudC5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSA9PT0gXCJzYXAubS5NZW51QnV0dG9uXCIgJiZcblx0XHRcdFx0XHRcdG9FbGVtZW50LmdldFBhcmVudCgpLnNQYXJlbnRBZ2dyZWdhdGlvbk5hbWUgIT09IFwiX2FuY2hvckJhclwiXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRtQWxsb3dMaXN0W1wic2FwLm0uTWVudUJ1dHRvblwiXSA9IGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRvRWxlbWVudC5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSA9PT0gXCJzYXAubS5CdXR0b25cIiAmJlxuXHRcdFx0XHRcdFx0b0VsZW1lbnQuZ2V0UGFyZW50KCkuc1BhcmVudEFnZ3JlZ2F0aW9uTmFtZSAhPT0gXCJfYW5jaG9yQmFyXCJcblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdG1BbGxvd0xpc3RbXCJzYXAubS5CdXR0b25cIl0gPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0b0VsZW1lbnQuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkgPT09IFwic2FwLm0uRmxleEJveFwiICYmXG5cdFx0XHRcdFx0XHRvRWxlbWVudC5nZXRJZCgpLmluZGV4T2YoXCItLWZlOjpIZWFkZXJDb250ZW50Q29udGFpbmVyXCIpIDwgMFxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0bUFsbG93TGlzdFtcInNhcC5tLkZsZXhCb3hcIl0gPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG1BbGxvd0xpc3Rbb0VsZW1lbnQuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCldKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRhY3Rpb25zOiBcIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHRvb2w6IHtcblx0XHRzdGFydDogZnVuY3Rpb24gKG9Db21wb25lbnQ6IEFwcENvbXBvbmVudCkge1xuXHRcdFx0b0NvbXBvbmVudC5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpLnNldENhcGFiaWxpdHkoXCJBcHBTdGF0ZVwiLCBmYWxzZSk7XG5cdFx0fSxcblx0XHRzdG9wOiBmdW5jdGlvbiAob0NvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0XHRvQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuc2V0Q2FwYWJpbGl0eShcIkFwcFN0YXRlXCIsIHRydWUpO1xuXHRcdH1cblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQXBwQ29tcG9uZW50RGVzaWduVGltZTtcbiJdfQ==
@@ -1,3 +1,5 @@
1
+ import AppComponent from "sap/fe/core/AppComponent";
2
+
1
3
  const oUrlParser = sap.ushell.Container.getService("URLParsing");
2
4
  const oUrlParams = oUrlParser.parseParameters(window.location.search);
3
5
  const sFioriToolsRtaMode = "fiori-tools-rta-mode";
@@ -8,10 +10,10 @@ const AppComponentDesignTime = {
8
10
  aggregations: {
9
11
  rootControl: {
10
12
  actions: "not-adaptable",
11
- propagateMetadata: function(oElement: any) {
13
+ propagateMetadata: function (oElement: any) {
12
14
  // allow list of controls for which we want to enable DesignTime
13
15
  let mAllowList: Record<string, boolean> = {};
14
- const isOnDynamicPage = function(oElement: any): boolean {
16
+ const isOnDynamicPage = function (oElement: any): boolean {
15
17
  if (oElement.getMetadata().getName() === "sap.f.DynamicPage") {
16
18
  return true;
17
19
  } else {
@@ -79,11 +81,11 @@ const AppComponentDesignTime = {
79
81
  }
80
82
  },
81
83
  tool: {
82
- start: function(oComponent: any) {
83
- oComponent.getModel("internal").setProperty("/uiAdaptation", true);
84
+ start: function (oComponent: AppComponent) {
85
+ oComponent.getEnvironmentCapabilities().setCapability("AppState", false);
84
86
  },
85
- stop: function(oComponent: any) {
86
- oComponent.getModel("internal").setProperty("/uiAdaptation", false);
87
+ stop: function (oComponent: AppComponent) {
88
+ oComponent.getEnvironmentCapabilities().setCapability("AppState", true);
87
89
  }
88
90
  }
89
91
  };
@@ -2,18 +2,9 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define([], function () {
5
+ sap.ui.define(["sap/ui/core/Core"], function (Core) {
6
6
  "use strict";
7
7
 
8
- /**
9
- * KPI label formatting.
10
- * The KPI label is an abbreviation of the complete global KPI title. It is formed using the first three letters of the first three words of the KPI title.
11
- * If there is only one word in the global KPI title, the first three letters of the word are displayed.
12
- * If the KPI title has only two words, only the first letters of these two words are displayed.
13
- *
14
- * @param {string} kpiTitle KPI title value
15
- * @returns {string} The formatted criticality
16
- */
17
8
  var labelFormat = function (kpiTitle) {
18
9
  if (kpiTitle) {
19
10
  // Split the title in words
@@ -51,7 +42,7 @@ sap.ui.define([], function () {
51
42
  */
52
43
 
53
44
  var tooltipFormat = function (kpiTitle, kpiValue, kpiUnit, kpiStatus, hasUnit) {
54
- var resBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");
45
+ var resBundle = Core.getLibraryResourceBundle("sap.fe.core");
55
46
  var msgKey = kpiStatus ? "C_KPI_TOOLTIP_" + kpiStatus.toUpperCase() : "C_KPI_TOOLTIP_NONE";
56
47
  var amountWithUnit;
57
48
 
@@ -100,4 +91,4 @@ sap.ui.define([], function () {
100
91
 
101
92
  return kpiFormatters;
102
93
  }, true);
103
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIktQSUZvcm1hdHRlci50cyJdLCJuYW1lcyI6WyJsYWJlbEZvcm1hdCIsImtwaVRpdGxlIiwidGl0bGVQYXJ0cyIsInNwbGl0Iiwia3BpTGFiZWwiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJ0b1VwcGVyQ2FzZSIsIl9fZnVuY3Rpb25OYW1lIiwidG9vbHRpcEZvcm1hdCIsImtwaVZhbHVlIiwia3BpVW5pdCIsImtwaVN0YXR1cyIsImhhc1VuaXQiLCJyZXNCdW5kbGUiLCJzYXAiLCJ1aSIsImdldENvcmUiLCJnZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUiLCJtc2dLZXkiLCJhbW91bnRXaXRoVW5pdCIsImdldFRleHQiLCJrcGlGb3JtYXR0ZXJzIiwic05hbWUiLCJoYXNPd25Qcm9wZXJ0eSIsIm9BcmdzIiwiYXBwbHkiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQSxNQUFNQSxXQUFXLEdBQUcsVUFBU0MsUUFBVCxFQUFtQztBQUN0RCxRQUFJQSxRQUFKLEVBQWM7QUFDYjtBQUNBLFVBQU1DLFVBQVUsR0FBR0QsUUFBUSxDQUFDRSxLQUFULENBQWUsR0FBZixDQUFuQjtBQUVBLFVBQUlDLFFBQUo7O0FBQ0EsVUFBSUYsVUFBVSxDQUFDRyxNQUFYLEtBQXNCLENBQTFCLEVBQTZCO0FBQzVCO0FBQ0FELFFBQUFBLFFBQVEsR0FBR0YsVUFBVSxDQUFDLENBQUQsQ0FBVixDQUFjSSxTQUFkLENBQXdCLENBQXhCLEVBQTJCLENBQTNCLEVBQThCQyxXQUE5QixFQUFYO0FBQ0EsT0FIRCxNQUdPLElBQUlMLFVBQVUsQ0FBQ0csTUFBWCxLQUFzQixDQUExQixFQUE2QjtBQUNuQztBQUNBRCxRQUFBQSxRQUFRLEdBQUcsQ0FBQ0YsVUFBVSxDQUFDLENBQUQsQ0FBVixDQUFjSSxTQUFkLENBQXdCLENBQXhCLEVBQTJCLENBQTNCLElBQWdDSixVQUFVLENBQUMsQ0FBRCxDQUFWLENBQWNJLFNBQWQsQ0FBd0IsQ0FBeEIsRUFBMkIsQ0FBM0IsQ0FBakMsRUFBZ0VDLFdBQWhFLEVBQVg7QUFDQSxPQUhNLE1BR0E7QUFDTjtBQUNBSCxRQUFBQSxRQUFRLEdBQUcsQ0FBQ0YsVUFBVSxDQUFDLENBQUQsQ0FBVixDQUFjSSxTQUFkLENBQXdCLENBQXhCLEVBQTJCLENBQTNCLElBQWdDSixVQUFVLENBQUMsQ0FBRCxDQUFWLENBQWNJLFNBQWQsQ0FBd0IsQ0FBeEIsRUFBMkIsQ0FBM0IsQ0FBaEMsR0FBZ0VKLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ksU0FBZCxDQUF3QixDQUF4QixFQUEyQixDQUEzQixDQUFqRSxFQUFnR0MsV0FBaEcsRUFBWDtBQUNBOztBQUVELGFBQU9ILFFBQVA7QUFDQSxLQWpCRCxNQWlCTztBQUNOO0FBQ0EsYUFBTyxFQUFQO0FBQ0E7QUFDRCxHQXRCRDs7QUF1QkFKLEVBQUFBLFdBQVcsQ0FBQ1EsY0FBWixHQUE2QixpREFBN0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxNQUFNQyxhQUFhLEdBQUcsVUFBU1IsUUFBVCxFQUEyQlMsUUFBM0IsRUFBNkNDLE9BQTdDLEVBQThEQyxTQUE5RCxFQUFpRkMsT0FBakYsRUFBMEc7QUFDL0gsUUFBTUMsU0FBUyxHQUFHQyxHQUFHLENBQUNDLEVBQUosQ0FBT0MsT0FBUCxHQUFpQkMsd0JBQWpCLENBQTBDLGFBQTFDLENBQWxCO0FBQ0EsUUFBTUMsTUFBTSxHQUFHUCxTQUFTLEdBQUcsbUJBQW1CQSxTQUFTLENBQUNMLFdBQVYsRUFBdEIsR0FBZ0Qsb0JBQXhFO0FBQ0EsUUFBSWEsY0FBSjs7QUFDQSxRQUFJUCxPQUFPLEtBQUssTUFBaEIsRUFBd0I7QUFDdkIsVUFBSSxDQUFDRixPQUFMLEVBQWM7QUFDYjtBQUNBUyxRQUFBQSxjQUFjLEdBQUdOLFNBQVMsQ0FBQ08sT0FBVixDQUFrQixnQ0FBbEIsQ0FBakI7QUFDQSxPQUhELE1BR087QUFDTkQsUUFBQUEsY0FBYyxHQUFHVixRQUFRLEdBQUcsR0FBWCxHQUFpQkMsT0FBbEM7QUFDQTtBQUNELEtBUEQsTUFPTztBQUNOUyxNQUFBQSxjQUFjLEdBQUdWLFFBQWpCO0FBQ0E7O0FBRUQsV0FBT0ksU0FBUyxDQUFDTyxPQUFWLENBQWtCRixNQUFsQixFQUEwQixDQUFDbEIsUUFBRCxFQUFXbUIsY0FBWCxDQUExQixDQUFQO0FBQ0EsR0FoQkQ7O0FBaUJBWCxFQUFBQSxhQUFhLENBQUNELGNBQWQsR0FBK0IsbURBQS9CLEMsQ0FFQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE1BQU1jLGFBQWEsR0FBRyxVQUF1QkMsS0FBdkIsRUFBNEQ7QUFDakYsUUFBSUQsYUFBYSxDQUFDRSxjQUFkLENBQTZCRCxLQUE3QixDQUFKLEVBQXlDO0FBQUEsd0NBRHFCRSxLQUNyQjtBQURxQkEsUUFBQUEsS0FDckI7QUFBQTs7QUFDeEMsYUFBUUgsYUFBRCxDQUF1QkMsS0FBdkIsRUFBOEJHLEtBQTlCLENBQW9DLElBQXBDLEVBQTBDRCxLQUExQyxDQUFQO0FBQ0EsS0FGRCxNQUVPO0FBQ04sYUFBTyxFQUFQO0FBQ0E7QUFDRCxHQU5EOztBQVFBSCxFQUFBQSxhQUFhLENBQUN0QixXQUFkLEdBQTRCQSxXQUE1QjtBQUNBc0IsRUFBQUEsYUFBYSxDQUFDYixhQUFkLEdBQThCQSxhQUE5QjtBQUVBO0FBQ0E7QUFDQTs7U0FDZWEsYSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBLUEkgbGFiZWwgZm9ybWF0dGluZy5cbiAqIFRoZSBLUEkgbGFiZWwgaXMgYW4gYWJicmV2aWF0aW9uIG9mIHRoZSBjb21wbGV0ZSBnbG9iYWwgS1BJIHRpdGxlLiBJdCBpcyBmb3JtZWQgdXNpbmcgdGhlIGZpcnN0IHRocmVlIGxldHRlcnMgb2YgdGhlIGZpcnN0IHRocmVlIHdvcmRzIG9mIHRoZSBLUEkgdGl0bGUuXG4gKiBJZiB0aGVyZSBpcyBvbmx5IG9uZSB3b3JkIGluIHRoZSBnbG9iYWwgS1BJIHRpdGxlLCB0aGUgZmlyc3QgdGhyZWUgbGV0dGVycyBvZiB0aGUgd29yZCBhcmUgZGlzcGxheWVkLlxuICogSWYgdGhlIEtQSSB0aXRsZSBoYXMgb25seSB0d28gd29yZHMsIG9ubHkgdGhlIGZpcnN0IGxldHRlcnMgb2YgdGhlc2UgdHdvIHdvcmRzIGFyZSBkaXNwbGF5ZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtwaVRpdGxlIEtQSSB0aXRsZSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGZvcm1hdHRlZCBjcml0aWNhbGl0eVxuICovXG5cbmltcG9ydCBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuXG5jb25zdCBsYWJlbEZvcm1hdCA9IGZ1bmN0aW9uKGtwaVRpdGxlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRpZiAoa3BpVGl0bGUpIHtcblx0XHQvLyBTcGxpdCB0aGUgdGl0bGUgaW4gd29yZHNcblx0XHRjb25zdCB0aXRsZVBhcnRzID0ga3BpVGl0bGUuc3BsaXQoXCIgXCIpO1xuXG5cdFx0bGV0IGtwaUxhYmVsOiBzdHJpbmc7XG5cdFx0aWYgKHRpdGxlUGFydHMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHQvLyBPbmx5IDEgd29yZCAtLT4gZmlyc3QgMyBjYXBpdGFsaXplZCBsZXR0ZXJzIG9mIHRoZSB3b3JkXG5cdFx0XHRrcGlMYWJlbCA9IHRpdGxlUGFydHNbMF0uc3Vic3RyaW5nKDAsIDMpLnRvVXBwZXJDYXNlKCk7XG5cdFx0fSBlbHNlIGlmICh0aXRsZVBhcnRzLmxlbmd0aCA9PT0gMikge1xuXHRcdFx0Ly8gMiB3b3JkcyAtLT4gZmlyc3QgY2FwaXRhbGl6ZWQgbGV0dGVycyBvZiB0aGVzZSB0d28gd29yZHNcblx0XHRcdGtwaUxhYmVsID0gKHRpdGxlUGFydHNbMF0uc3Vic3RyaW5nKDAsIDEpICsgdGl0bGVQYXJ0c1sxXS5zdWJzdHJpbmcoMCwgMSkpLnRvVXBwZXJDYXNlKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIDMgd29yZHMgb3IgbW9yZSAtLT4gZmlyc3QgY2FwaXRhbGl6ZWQgbGV0dGVycyBvZiB0aGUgZmlyc3QgMyB3b3Jkc1xuXHRcdFx0a3BpTGFiZWwgPSAodGl0bGVQYXJ0c1swXS5zdWJzdHJpbmcoMCwgMSkgKyB0aXRsZVBhcnRzWzFdLnN1YnN0cmluZygwLCAxKSArIHRpdGxlUGFydHNbMl0uc3Vic3RyaW5nKDAsIDEpKS50b1VwcGVyQ2FzZSgpO1xuXHRcdH1cblxuXHRcdHJldHVybiBrcGlMYWJlbDtcblx0fSBlbHNlIHtcblx0XHQvLyBObyBLUEkgdGl0bGUgLS0+IG5vIGxhYmVsXG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cbn07XG5sYWJlbEZvcm1hdC5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5LUElGb3JtYXR0ZXIjbGFiZWxGb3JtYXRcIjtcblxuLyoqXG4gKiBLUEkgdG9vbHRpcCBmb3JtYXR0aW5nLlxuICpcbiAqIEBwYXJhbSBrcGlUaXRsZSBLUEkgdGl0bGVcbiAqIEBwYXJhbSBrcGlWYWx1ZSBLUEkgdmFsdWVcbiAqIEBwYXJhbSBrcGlVbml0IEtQSSB1bml0IG9yIGN1cnJlbmN5IChjYW4gYmUgdW5kZWZpbmVkKVxuICogQHBhcmFtIGtwaVN0YXR1cyBLUEkgc3RhdHVzXG4gKiBAcGFyYW0gaGFzVW5pdCBJcyBcInRydWVcIiBpZiB0aGUgS1BJIHZhbHVlIGhhcyBhIHVuaXQgb3IgYSBjdXJyZW5jeVxuICogQHJldHVybnMgUmV0dXJucyB0aGUgdGV4dCBmb3IgdGhlIEtQSSB0b29sdGlwLlxuICovXG5jb25zdCB0b29sdGlwRm9ybWF0ID0gZnVuY3Rpb24oa3BpVGl0bGU6IHN0cmluZywga3BpVmFsdWU6IHN0cmluZywga3BpVW5pdDogc3RyaW5nLCBrcGlTdGF0dXM6IHN0cmluZywgaGFzVW5pdDogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgcmVzQnVuZGxlID0gc2FwLnVpLmdldENvcmUoKS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUuY29yZVwiKSBhcyBSZXNvdXJjZUJ1bmRsZTtcblx0Y29uc3QgbXNnS2V5ID0ga3BpU3RhdHVzID8gXCJDX0tQSV9UT09MVElQX1wiICsga3BpU3RhdHVzLnRvVXBwZXJDYXNlKCkgOiBcIkNfS1BJX1RPT0xUSVBfTk9ORVwiO1xuXHRsZXQgYW1vdW50V2l0aFVuaXQ6IHN0cmluZztcblx0aWYgKGhhc1VuaXQgPT09IFwidHJ1ZVwiKSB7XG5cdFx0aWYgKCFrcGlVbml0KSB7XG5cdFx0XHQvLyBObyB1bml0IG1lYW5zIG11bHRpLXVuaXQgc2l0dWF0aW9uXG5cdFx0XHRhbW91bnRXaXRoVW5pdCA9IHJlc0J1bmRsZS5nZXRUZXh0KFwiQ19LUElfVE9PTFRJUF9BTU9VTlRfTVVMVElVTklUXCIpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhbW91bnRXaXRoVW5pdCA9IGtwaVZhbHVlICsgXCIgXCIgKyBrcGlVbml0O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRhbW91bnRXaXRoVW5pdCA9IGtwaVZhbHVlO1xuXHR9XG5cblx0cmV0dXJuIHJlc0J1bmRsZS5nZXRUZXh0KG1zZ0tleSwgW2twaVRpdGxlLCBhbW91bnRXaXRoVW5pdF0pO1xufTtcbnRvb2x0aXBGb3JtYXQuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuS1BJRm9ybWF0dGVyI3Rvb2x0aXBGb3JtYXRcIjtcblxuLy8gU2VlIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rL2Z1bmN0aW9ucy5odG1sI3RoaXMtcGFyYW1ldGVycyBmb3IgbW9yZSBkZXRhaWwgb24gdGhpcyB3ZWlyZCBzeW50YXhcbi8qKlxuICogQ29sbGVjdGlvbiBvZiB0YWJsZSBmb3JtYXR0ZXJzLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0aGlzIFRoZSBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gc05hbWUgVGhlIGlubmVyIGZ1bmN0aW9uIG5hbWVcbiAqIEBwYXJhbSB7b2JqZWN0W119IG9BcmdzIFRoZSBpbm5lciBmdW5jdGlvbiBwYXJhbWV0ZXJzXG4gKiBAcmV0dXJucyB7b2JqZWN0fSBUaGUgdmFsdWUgZnJvbSB0aGUgaW5uZXIgZnVuY3Rpb25cbiAqL1xuY29uc3Qga3BpRm9ybWF0dGVycyA9IGZ1bmN0aW9uKHRoaXM6IG9iamVjdCwgc05hbWU6IHN0cmluZywgLi4ub0FyZ3M6IGFueVtdKTogYW55IHtcblx0aWYgKGtwaUZvcm1hdHRlcnMuaGFzT3duUHJvcGVydHkoc05hbWUpKSB7XG5cdFx0cmV0dXJuIChrcGlGb3JtYXR0ZXJzIGFzIGFueSlbc05hbWVdLmFwcGx5KHRoaXMsIG9BcmdzKTtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxufTtcblxua3BpRm9ybWF0dGVycy5sYWJlbEZvcm1hdCA9IGxhYmVsRm9ybWF0O1xua3BpRm9ybWF0dGVycy50b29sdGlwRm9ybWF0ID0gdG9vbHRpcEZvcm1hdDtcblxuLyoqXG4gKiBAZ2xvYmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGtwaUZvcm1hdHRlcnM7XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIktQSUZvcm1hdHRlci50cyJdLCJuYW1lcyI6WyJsYWJlbEZvcm1hdCIsImtwaVRpdGxlIiwidGl0bGVQYXJ0cyIsInNwbGl0Iiwia3BpTGFiZWwiLCJsZW5ndGgiLCJzdWJzdHJpbmciLCJ0b1VwcGVyQ2FzZSIsIl9fZnVuY3Rpb25OYW1lIiwidG9vbHRpcEZvcm1hdCIsImtwaVZhbHVlIiwia3BpVW5pdCIsImtwaVN0YXR1cyIsImhhc1VuaXQiLCJyZXNCdW5kbGUiLCJDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwibXNnS2V5IiwiYW1vdW50V2l0aFVuaXQiLCJnZXRUZXh0Iiwia3BpRm9ybWF0dGVycyIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBV0EsTUFBTUEsV0FBVyxHQUFHLFVBQVNDLFFBQVQsRUFBbUM7QUFDdEQsUUFBSUEsUUFBSixFQUFjO0FBQ2I7QUFDQSxVQUFNQyxVQUFVLEdBQUdELFFBQVEsQ0FBQ0UsS0FBVCxDQUFlLEdBQWYsQ0FBbkI7QUFFQSxVQUFJQyxRQUFKOztBQUNBLFVBQUlGLFVBQVUsQ0FBQ0csTUFBWCxLQUFzQixDQUExQixFQUE2QjtBQUM1QjtBQUNBRCxRQUFBQSxRQUFRLEdBQUdGLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ksU0FBZCxDQUF3QixDQUF4QixFQUEyQixDQUEzQixFQUE4QkMsV0FBOUIsRUFBWDtBQUNBLE9BSEQsTUFHTyxJQUFJTCxVQUFVLENBQUNHLE1BQVgsS0FBc0IsQ0FBMUIsRUFBNkI7QUFDbkM7QUFDQUQsUUFBQUEsUUFBUSxHQUFHLENBQUNGLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ksU0FBZCxDQUF3QixDQUF4QixFQUEyQixDQUEzQixJQUFnQ0osVUFBVSxDQUFDLENBQUQsQ0FBVixDQUFjSSxTQUFkLENBQXdCLENBQXhCLEVBQTJCLENBQTNCLENBQWpDLEVBQWdFQyxXQUFoRSxFQUFYO0FBQ0EsT0FITSxNQUdBO0FBQ047QUFDQUgsUUFBQUEsUUFBUSxHQUFHLENBQUNGLFVBQVUsQ0FBQyxDQUFELENBQVYsQ0FBY0ksU0FBZCxDQUF3QixDQUF4QixFQUEyQixDQUEzQixJQUFnQ0osVUFBVSxDQUFDLENBQUQsQ0FBVixDQUFjSSxTQUFkLENBQXdCLENBQXhCLEVBQTJCLENBQTNCLENBQWhDLEdBQWdFSixVQUFVLENBQUMsQ0FBRCxDQUFWLENBQWNJLFNBQWQsQ0FBd0IsQ0FBeEIsRUFBMkIsQ0FBM0IsQ0FBakUsRUFBZ0dDLFdBQWhHLEVBQVg7QUFDQTs7QUFFRCxhQUFPSCxRQUFQO0FBQ0EsS0FqQkQsTUFpQk87QUFDTjtBQUNBLGFBQU8sRUFBUDtBQUNBO0FBQ0QsR0F0QkQ7O0FBdUJBSixFQUFBQSxXQUFXLENBQUNRLGNBQVosR0FBNkIsaURBQTdCO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsTUFBTUMsYUFBYSxHQUFHLFVBQVNSLFFBQVQsRUFBMkJTLFFBQTNCLEVBQTZDQyxPQUE3QyxFQUE4REMsU0FBOUQsRUFBaUZDLE9BQWpGLEVBQTBHO0FBQy9ILFFBQU1DLFNBQVMsR0FBSUMsSUFBRCxDQUFpQkMsd0JBQWpCLENBQTBDLGFBQTFDLENBQWxCO0FBQ0EsUUFBTUMsTUFBTSxHQUFHTCxTQUFTLEdBQUcsbUJBQW1CQSxTQUFTLENBQUNMLFdBQVYsRUFBdEIsR0FBZ0Qsb0JBQXhFO0FBQ0EsUUFBSVcsY0FBSjs7QUFDQSxRQUFJTCxPQUFPLEtBQUssTUFBaEIsRUFBd0I7QUFDdkIsVUFBSSxDQUFDRixPQUFMLEVBQWM7QUFDYjtBQUNBTyxRQUFBQSxjQUFjLEdBQUdKLFNBQVMsQ0FBQ0ssT0FBVixDQUFrQixnQ0FBbEIsQ0FBakI7QUFDQSxPQUhELE1BR087QUFDTkQsUUFBQUEsY0FBYyxHQUFHUixRQUFRLEdBQUcsR0FBWCxHQUFpQkMsT0FBbEM7QUFDQTtBQUNELEtBUEQsTUFPTztBQUNOTyxNQUFBQSxjQUFjLEdBQUdSLFFBQWpCO0FBQ0E7O0FBRUQsV0FBT0ksU0FBUyxDQUFDSyxPQUFWLENBQWtCRixNQUFsQixFQUEwQixDQUFDaEIsUUFBRCxFQUFXaUIsY0FBWCxDQUExQixDQUFQO0FBQ0EsR0FoQkQ7O0FBaUJBVCxFQUFBQSxhQUFhLENBQUNELGNBQWQsR0FBK0IsbURBQS9CLEMsQ0FFQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE1BQU1ZLGFBQWEsR0FBRyxVQUF1QkMsS0FBdkIsRUFBNEQ7QUFDakYsUUFBSUQsYUFBYSxDQUFDRSxjQUFkLENBQTZCRCxLQUE3QixDQUFKLEVBQXlDO0FBQUEsd0NBRHFCRSxLQUNyQjtBQURxQkEsUUFBQUEsS0FDckI7QUFBQTs7QUFDeEMsYUFBUUgsYUFBRCxDQUF1QkMsS0FBdkIsRUFBOEJHLEtBQTlCLENBQW9DLElBQXBDLEVBQTBDRCxLQUExQyxDQUFQO0FBQ0EsS0FGRCxNQUVPO0FBQ04sYUFBTyxFQUFQO0FBQ0E7QUFDRCxHQU5EOztBQVFBSCxFQUFBQSxhQUFhLENBQUNwQixXQUFkLEdBQTRCQSxXQUE1QjtBQUNBb0IsRUFBQUEsYUFBYSxDQUFDWCxhQUFkLEdBQThCQSxhQUE5QjtBQUVBO0FBQ0E7QUFDQTs7U0FDZVcsYSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBLUEkgbGFiZWwgZm9ybWF0dGluZy5cbiAqIFRoZSBLUEkgbGFiZWwgaXMgYW4gYWJicmV2aWF0aW9uIG9mIHRoZSBjb21wbGV0ZSBnbG9iYWwgS1BJIHRpdGxlLiBJdCBpcyBmb3JtZWQgdXNpbmcgdGhlIGZpcnN0IHRocmVlIGxldHRlcnMgb2YgdGhlIGZpcnN0IHRocmVlIHdvcmRzIG9mIHRoZSBLUEkgdGl0bGUuXG4gKiBJZiB0aGVyZSBpcyBvbmx5IG9uZSB3b3JkIGluIHRoZSBnbG9iYWwgS1BJIHRpdGxlLCB0aGUgZmlyc3QgdGhyZWUgbGV0dGVycyBvZiB0aGUgd29yZCBhcmUgZGlzcGxheWVkLlxuICogSWYgdGhlIEtQSSB0aXRsZSBoYXMgb25seSB0d28gd29yZHMsIG9ubHkgdGhlIGZpcnN0IGxldHRlcnMgb2YgdGhlc2UgdHdvIHdvcmRzIGFyZSBkaXNwbGF5ZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtwaVRpdGxlIEtQSSB0aXRsZSB2YWx1ZVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGZvcm1hdHRlZCBjcml0aWNhbGl0eVxuICovXG5cbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgeyBDb3JlRXggfSBmcm9tIFwidHlwZXMvZXh0ZW5zaW9uX3R5cGVzXCI7XG5cbmNvbnN0IGxhYmVsRm9ybWF0ID0gZnVuY3Rpb24oa3BpVGl0bGU6IHN0cmluZyk6IHN0cmluZyB7XG5cdGlmIChrcGlUaXRsZSkge1xuXHRcdC8vIFNwbGl0IHRoZSB0aXRsZSBpbiB3b3Jkc1xuXHRcdGNvbnN0IHRpdGxlUGFydHMgPSBrcGlUaXRsZS5zcGxpdChcIiBcIik7XG5cblx0XHRsZXQga3BpTGFiZWw6IHN0cmluZztcblx0XHRpZiAodGl0bGVQYXJ0cy5sZW5ndGggPT09IDEpIHtcblx0XHRcdC8vIE9ubHkgMSB3b3JkIC0tPiBmaXJzdCAzIGNhcGl0YWxpemVkIGxldHRlcnMgb2YgdGhlIHdvcmRcblx0XHRcdGtwaUxhYmVsID0gdGl0bGVQYXJ0c1swXS5zdWJzdHJpbmcoMCwgMykudG9VcHBlckNhc2UoKTtcblx0XHR9IGVsc2UgaWYgKHRpdGxlUGFydHMubGVuZ3RoID09PSAyKSB7XG5cdFx0XHQvLyAyIHdvcmRzIC0tPiBmaXJzdCBjYXBpdGFsaXplZCBsZXR0ZXJzIG9mIHRoZXNlIHR3byB3b3Jkc1xuXHRcdFx0a3BpTGFiZWwgPSAodGl0bGVQYXJ0c1swXS5zdWJzdHJpbmcoMCwgMSkgKyB0aXRsZVBhcnRzWzFdLnN1YnN0cmluZygwLCAxKSkudG9VcHBlckNhc2UoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gMyB3b3JkcyBvciBtb3JlIC0tPiBmaXJzdCBjYXBpdGFsaXplZCBsZXR0ZXJzIG9mIHRoZSBmaXJzdCAzIHdvcmRzXG5cdFx0XHRrcGlMYWJlbCA9ICh0aXRsZVBhcnRzWzBdLnN1YnN0cmluZygwLCAxKSArIHRpdGxlUGFydHNbMV0uc3Vic3RyaW5nKDAsIDEpICsgdGl0bGVQYXJ0c1syXS5zdWJzdHJpbmcoMCwgMSkpLnRvVXBwZXJDYXNlKCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGtwaUxhYmVsO1xuXHR9IGVsc2Uge1xuXHRcdC8vIE5vIEtQSSB0aXRsZSAtLT4gbm8gbGFiZWxcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxufTtcbmxhYmVsRm9ybWF0Ll9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLktQSUZvcm1hdHRlciNsYWJlbEZvcm1hdFwiO1xuXG4vKipcbiAqIEtQSSB0b29sdGlwIGZvcm1hdHRpbmcuXG4gKlxuICogQHBhcmFtIGtwaVRpdGxlIEtQSSB0aXRsZVxuICogQHBhcmFtIGtwaVZhbHVlIEtQSSB2YWx1ZVxuICogQHBhcmFtIGtwaVVuaXQgS1BJIHVuaXQgb3IgY3VycmVuY3kgKGNhbiBiZSB1bmRlZmluZWQpXG4gKiBAcGFyYW0ga3BpU3RhdHVzIEtQSSBzdGF0dXNcbiAqIEBwYXJhbSBoYXNVbml0IElzIFwidHJ1ZVwiIGlmIHRoZSBLUEkgdmFsdWUgaGFzIGEgdW5pdCBvciBhIGN1cnJlbmN5XG4gKiBAcmV0dXJucyBSZXR1cm5zIHRoZSB0ZXh0IGZvciB0aGUgS1BJIHRvb2x0aXAuXG4gKi9cbmNvbnN0IHRvb2x0aXBGb3JtYXQgPSBmdW5jdGlvbihrcGlUaXRsZTogc3RyaW5nLCBrcGlWYWx1ZTogc3RyaW5nLCBrcGlVbml0OiBzdHJpbmcsIGtwaVN0YXR1czogc3RyaW5nLCBoYXNVbml0OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRjb25zdCByZXNCdW5kbGUgPSAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5jb3JlXCIpO1xuXHRjb25zdCBtc2dLZXkgPSBrcGlTdGF0dXMgPyBcIkNfS1BJX1RPT0xUSVBfXCIgKyBrcGlTdGF0dXMudG9VcHBlckNhc2UoKSA6IFwiQ19LUElfVE9PTFRJUF9OT05FXCI7XG5cdGxldCBhbW91bnRXaXRoVW5pdDogc3RyaW5nO1xuXHRpZiAoaGFzVW5pdCA9PT0gXCJ0cnVlXCIpIHtcblx0XHRpZiAoIWtwaVVuaXQpIHtcblx0XHRcdC8vIE5vIHVuaXQgbWVhbnMgbXVsdGktdW5pdCBzaXR1YXRpb25cblx0XHRcdGFtb3VudFdpdGhVbml0ID0gcmVzQnVuZGxlLmdldFRleHQoXCJDX0tQSV9UT09MVElQX0FNT1VOVF9NVUxUSVVOSVRcIik7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFtb3VudFdpdGhVbml0ID0ga3BpVmFsdWUgKyBcIiBcIiArIGtwaVVuaXQ7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdGFtb3VudFdpdGhVbml0ID0ga3BpVmFsdWU7XG5cdH1cblxuXHRyZXR1cm4gcmVzQnVuZGxlLmdldFRleHQobXNnS2V5LCBba3BpVGl0bGUsIGFtb3VudFdpdGhVbml0XSk7XG59O1xudG9vbHRpcEZvcm1hdC5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5LUElGb3JtYXR0ZXIjdG9vbHRpcEZvcm1hdFwiO1xuXG4vLyBTZWUgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svZnVuY3Rpb25zLmh0bWwjdGhpcy1wYXJhbWV0ZXJzIGZvciBtb3JlIGRldGFpbCBvbiB0aGlzIHdlaXJkIHN5bnRheFxuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIHRhYmxlIGZvcm1hdHRlcnMuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHRoaXMgVGhlIGNvbnRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBzTmFtZSBUaGUgaW5uZXIgZnVuY3Rpb24gbmFtZVxuICogQHBhcmFtIHtvYmplY3RbXX0gb0FyZ3MgVGhlIGlubmVyIGZ1bmN0aW9uIHBhcmFtZXRlcnNcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSB2YWx1ZSBmcm9tIHRoZSBpbm5lciBmdW5jdGlvblxuICovXG5jb25zdCBrcGlGb3JtYXR0ZXJzID0gZnVuY3Rpb24odGhpczogb2JqZWN0LCBzTmFtZTogc3RyaW5nLCAuLi5vQXJnczogYW55W10pOiBhbnkge1xuXHRpZiAoa3BpRm9ybWF0dGVycy5oYXNPd25Qcm9wZXJ0eShzTmFtZSkpIHtcblx0XHRyZXR1cm4gKGtwaUZvcm1hdHRlcnMgYXMgYW55KVtzTmFtZV0uYXBwbHkodGhpcywgb0FyZ3MpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG59O1xuXG5rcGlGb3JtYXR0ZXJzLmxhYmVsRm9ybWF0ID0gbGFiZWxGb3JtYXQ7XG5rcGlGb3JtYXR0ZXJzLnRvb2x0aXBGb3JtYXQgPSB0b29sdGlwRm9ybWF0O1xuXG4vKipcbiAqIEBnbG9iYWxcbiAqL1xuZXhwb3J0IGRlZmF1bHQga3BpRm9ybWF0dGVycztcbiJdfQ==
@@ -8,7 +8,8 @@
8
8
  * @returns {string} The formatted criticality
9
9
  */
10
10
 
11
- import ResourceBundle from "sap/base/i18n/ResourceBundle";
11
+ import Core from "sap/ui/core/Core";
12
+ import { CoreEx } from "types/extension_types";
12
13
 
13
14
  const labelFormat = function(kpiTitle: string): string {
14
15
  if (kpiTitle) {
@@ -46,7 +47,7 @@ labelFormat.__functionName = "sap.fe.core.formatters.KPIFormatter#labelFormat";
46
47
  * @returns Returns the text for the KPI tooltip.
47
48
  */
48
49
  const tooltipFormat = function(kpiTitle: string, kpiValue: string, kpiUnit: string, kpiStatus: string, hasUnit: string): string {
49
- const resBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
50
+ const resBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.core");
50
51
  const msgKey = kpiStatus ? "C_KPI_TOOLTIP_" + kpiStatus.toUpperCase() : "C_KPI_TOOLTIP_NONE";
51
52
  let amountWithUnit: string;
52
53
  if (hasUnit === "true") {
@@ -47,7 +47,7 @@ sap.ui.define(["sap/fe/core/formatters/TableFormatterTypes"], function (TableFor
47
47
  };
48
48
 
49
49
  validateCreationRowFields.__functionName = "sap.fe.core.formatters.TableFormatter#validateCreationRowFields";
50
- /**
50
+ /**
51
51
  * @param {object} this The context.
52
52
  * @param {string} semanticKeyHasDraftIndicator The draft indicator property name.
53
53
  * @param {Array} aFilteredMessages Array of messages.
@@ -149,7 +149,65 @@ sap.ui.define(["sap/fe/core/formatters/TableFormatterTypes"], function (TableFor
149
149
  }
150
150
  };
151
151
 
152
- navigatedRow.__functionName = "sap.fe.core.formatters.TableFormatter#navigatedRow"; // See https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters for more detail on this weird syntax
152
+ navigatedRow.__functionName = "sap.fe.core.formatters.TableFormatter#navigatedRow";
153
+
154
+ function isRatingIndicator(oControl) {
155
+ if (oControl.isA("sap.fe.core.controls.FieldWrapper")) {
156
+ var vContentDisplay = Array.isArray(oControl.getContentDisplay()) ? oControl.getContentDisplay()[0] : oControl.getContentDisplay();
157
+
158
+ if (vContentDisplay && vContentDisplay.isA("sap.m.RatingIndicator")) {
159
+ return true;
160
+ }
161
+ }
162
+
163
+ return false;
164
+ }
165
+
166
+ function _updateStyleClassForRatingIndicator(oFieldWrapper, bLast) {
167
+ var vContentDisplay = Array.isArray(oFieldWrapper.getContentDisplay()) ? oFieldWrapper.getContentDisplay()[0] : oFieldWrapper.getContentDisplay();
168
+ var vContentEdit = Array.isArray(oFieldWrapper.getContentEdit()) ? oFieldWrapper.getContentEdit()[0] : oFieldWrapper.getContentEdit();
169
+
170
+ if (bLast) {
171
+ vContentDisplay.addStyleClass("sapUiNoMarginBottom");
172
+ vContentDisplay.addStyleClass("sapUiNoMarginTop");
173
+ vContentEdit.removeStyleClass("sapUiTinyMarginBottom");
174
+ } else {
175
+ vContentDisplay.addStyleClass("sapUiNoMarginBottom");
176
+ vContentDisplay.removeStyleClass("sapUiNoMarginTop");
177
+ vContentEdit.addStyleClass("sapUiTinyMarginBottom");
178
+ }
179
+ }
180
+
181
+ function getVBoxVisibility() {
182
+ var aItems = this.getItems();
183
+ var bLastElementFound = false;
184
+
185
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
186
+ args[_key] = arguments[_key];
187
+ }
188
+
189
+ for (var index = aItems.length - 1; index >= 0; index--) {
190
+ if (!bLastElementFound) {
191
+ if (args[index] !== true) {
192
+ bLastElementFound = true;
193
+
194
+ if (isRatingIndicator(aItems[index])) {
195
+ _updateStyleClassForRatingIndicator(aItems[index], true);
196
+ } else {
197
+ aItems[index].removeStyleClass("sapUiTinyMarginBottom");
198
+ }
199
+ }
200
+ } else if (isRatingIndicator(aItems[index])) {
201
+ _updateStyleClassForRatingIndicator(aItems[index], false);
202
+ } else {
203
+ aItems[index].addStyleClass("sapUiTinyMarginBottom");
204
+ }
205
+ }
206
+
207
+ return true;
208
+ }
209
+
210
+ getVBoxVisibility.__functionName = "sap.fe.core.formatters.TableFormatter#getVBoxVisibility"; // See https://www.typescriptlang.org/docs/handbook/functions.html#this-parameters for more detail on this weird syntax
153
211
 
154
212
  /**
155
213
  * Collection of table formatters.
@@ -160,26 +218,29 @@ sap.ui.define(["sap/fe/core/formatters/TableFormatterTypes"], function (TableFor
160
218
  * @returns {object} The value from the inner function
161
219
  */
162
220
 
163
- var tableFormatters = function (sName) {
164
- if (tableFormatters.hasOwnProperty(sName)) {
165
- for (var _len = arguments.length, oArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
166
- oArgs[_key - 1] = arguments[_key];
221
+ var tableFormatter = function (sName) {
222
+ if (tableFormatter.hasOwnProperty(sName)) {
223
+ for (var _len2 = arguments.length, oArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
224
+ oArgs[_key2 - 1] = arguments[_key2];
167
225
  }
168
226
 
169
- return tableFormatters[sName].apply(this, oArgs);
227
+ return tableFormatter[sName].apply(this, oArgs);
170
228
  } else {
171
229
  return "";
172
230
  }
173
231
  };
174
232
 
175
- tableFormatters.validateCreationRowFields = validateCreationRowFields;
176
- tableFormatters.rowHighlighting = rowHighlighting;
177
- tableFormatters.navigatedRow = navigatedRow;
178
- tableFormatters.getErrorStatusTextVisibilityFormatter = getErrorStatusTextVisibilityFormatter;
233
+ tableFormatter.validateCreationRowFields = validateCreationRowFields;
234
+ tableFormatter.rowHighlighting = rowHighlighting;
235
+ tableFormatter.navigatedRow = navigatedRow;
236
+ tableFormatter.getErrorStatusTextVisibilityFormatter = getErrorStatusTextVisibilityFormatter;
237
+ tableFormatter.getVBoxVisibility = getVBoxVisibility;
238
+ tableFormatter.isRatingIndicator = isRatingIndicator; // for unit tests
239
+
179
240
  /**
180
241
  * @global
181
242
  */
182
243
 
183
- return tableFormatters;
244
+ return tableFormatter;
184
245
  }, true);
185
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlRm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbImdldE1lc3NhZ2V0eXBlT3JkZXIiLCJtZXNzYWdlVHlwZSIsInZhbGlkYXRlQ3JlYXRpb25Sb3dGaWVsZHMiLCJmaWVsZFZhbGlkaXR5T2JqZWN0IiwiZmllbGRLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImV2ZXJ5Iiwia2V5IiwiX19mdW5jdGlvbk5hbWUiLCJnZXRFcnJvclN0YXR1c1RleHRWaXNpYmlsaXR5Rm9ybWF0dGVyIiwic2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvciIsImFGaWx0ZXJlZE1lc3NhZ2VzIiwiYlN0YXR1c1Zpc2liaWxpdHkiLCJhU2VtYW50aWNLZXlDb2x1bW5zIiwiZ2V0UGFyZW50IiwiZ2V0QWdncmVnYXRpb24iLCJzQ29sdW1uUHJvcGVydHkiLCJnZXRCaW5kaW5nIiwiZ2V0UGF0aCIsInNDdXJyZW50Q29udGV4dFBhdGgiLCJnZXRCaW5kaW5nQ29udGV4dCIsInVuZGVmaW5lZCIsImZvckVhY2giLCJvTWVzc2FnZSIsInR5cGUiLCJhVGFyZ2V0cyIsImluZGV4T2YiLCJyb3dIaWdobGlnaHRpbmciLCJjcml0aWNhbGl0eVZhbHVlIiwiaGFzQWN0aXZlRW50aXR5IiwiaXNBY3RpdmVFbnRpdHkiLCJpc0RyYWZ0Um9vdCIsImlzTmV3T2JqZWN0IiwiaUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlIiwiTWVzc2FnZVR5cGUiLCJFcnJvciIsIldhcm5pbmciLCJTdWNjZXNzIiwiSW5mb3JtYXRpb24iLCJOb25lIiwibmF2aWdhdGVkUm93Iiwic0RlZXBlc3RQYXRoIiwic1BhdGgiLCJ0YWJsZUZvcm1hdHRlcnMiLCJzTmFtZSIsImhhc093blByb3BlcnR5Iiwib0FyZ3MiLCJhcHBseSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7O0FBQUEsTUFBTUEsbUJBQW1CLEdBQUcsVUFBU0MsV0FBVCxFQUFzQztBQUNqRSxZQUFRQSxXQUFSO0FBQ0MsV0FB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Q3hFLFFBQU1DLEtBQUssNkJBQUcsS0FBS3RCLGlCQUFMLEVBQUgsMkRBQUcsdUJBQTBCRixPQUExQixFQUFkOztBQUNBLFFBQUl3QixLQUFLLElBQUlELFlBQWIsRUFBMkI7QUFDMUIsYUFBT0EsWUFBWSxDQUFDZixPQUFiLENBQXFCZ0IsS0FBckIsTUFBZ0MsQ0FBdkM7QUFDQSxLQUZELE1BRU87QUFDTixhQUFPLEtBQVA7QUFDQTtBQUNELEdBUEQ7O0FBUUFGLEVBQUFBLFlBQVksQ0FBQ2hDLGNBQWIsR0FBOEIsb0RBQTlCLEMsQ0FFQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE1BQU1tQyxlQUFlLEdBQUcsVUFBdUJDLEtBQXZCLEVBQTREO0FBQ25GLFFBQUlELGVBQWUsQ0FBQ0UsY0FBaEIsQ0FBK0JELEtBQS9CLENBQUosRUFBMkM7QUFBQSx3Q0FEcUJFLEtBQ3JCO0FBRHFCQSxRQUFBQSxLQUNyQjtBQUFBOztBQUMxQyxhQUFRSCxlQUFELENBQXlCQyxLQUF6QixFQUFnQ0csS0FBaEMsQ0FBc0MsSUFBdEMsRUFBNENELEtBQTVDLENBQVA7QUFDQSxLQUZELE1BRU87QUFDTixhQUFPLEVBQVA7QUFDQTtBQUNELEdBTkQ7O0FBUUFILEVBQUFBLGVBQWUsQ0FBQzNDLHlCQUFoQixHQUE0Q0EseUJBQTVDO0FBQ0EyQyxFQUFBQSxlQUFlLENBQUNoQixlQUFoQixHQUFrQ0EsZUFBbEM7QUFDQWdCLEVBQUFBLGVBQWUsQ0FBQ0gsWUFBaEIsR0FBK0JBLFlBQS9CO0FBQ0FHLEVBQUFBLGVBQWUsQ0FBQ2xDLHFDQUFoQixHQUF3REEscUNBQXhEO0FBQ0E7QUFDQTtBQUNBOztTQUNla0MsZSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvVGFibGVGb3JtYXR0ZXJUeXBlc1wiO1xuY29uc3QgZ2V0TWVzc2FnZXR5cGVPcmRlciA9IGZ1bmN0aW9uKG1lc3NhZ2VUeXBlOiBzdHJpbmcpOiBudW1iZXIge1xuXHRzd2l0Y2ggKG1lc3NhZ2VUeXBlKSB7XG5cdFx0Y2FzZSBcIkVycm9yXCI6XG5cdFx0XHRyZXR1cm4gNDtcblx0XHRjYXNlIFwiV2FybmluZ1wiOlxuXHRcdFx0cmV0dXJuIDM7XG5cdFx0Y2FzZSBcIkluZm9ybWF0aW9uXCI6XG5cdFx0XHRyZXR1cm4gMjtcblx0XHRjYXNlIFwiTm9uZVwiOlxuXHRcdFx0cmV0dXJuIDE7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiAtMTtcblx0fVxufTtcblxuLyoqXG4gKiBHZXRzIHRoZSB2YWxpZGl0eSBvZiBjcmVhdGlvbiByb3cgZmllbGRzLlxuICpcbiAqIEBmdW5jdGlvblxuICogQG5hbWUgdmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkc1xuICogQHBhcmFtIHtvYmplY3R9IGZpZWxkVmFsaWRpdHlPYmplY3QgT2JqZWN0IGhvbGRpbmcgdGhlIGZpZWxkc1xuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiBhbGwgdGhlIGZpZWxkcyBpbiB0aGUgY3JlYXRpb24gcm93IGFyZSB2YWxpZCwgYGZhbHNlYCBvdGhlcndpc2VcbiAqL1xuY29uc3QgdmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcyA9IGZ1bmN0aW9uKGZpZWxkVmFsaWRpdHlPYmplY3Q/OiBhbnkpIHtcblx0aWYgKCFmaWVsZFZhbGlkaXR5T2JqZWN0KSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdGNvbnN0IGZpZWxkS2V5cyA9IE9iamVjdC5rZXlzKGZpZWxkVmFsaWRpdHlPYmplY3QpO1xuXHRyZXR1cm4gKFxuXHRcdGZpZWxkS2V5cy5sZW5ndGggPiAwICYmXG5cdFx0ZmllbGRLZXlzLmV2ZXJ5KGZ1bmN0aW9uKGtleSkge1xuXHRcdFx0cmV0dXJuIGZpZWxkVmFsaWRpdHlPYmplY3Rba2V5XVtcInZhbGlkaXR5XCJdO1xuXHRcdH0pXG5cdCk7XG59O1xudmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcy5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5UYWJsZUZvcm1hdHRlciN2YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzXCI7XG5cbi8qKiBcbiAqIEBwYXJhbSB7b2JqZWN0fSB0aGlzIFRoZSBjb250ZXh0LlxuICogQHBhcmFtIHtzdHJpbmd9IHNlbWFudGljS2V5SGFzRHJhZnRJbmRpY2F0b3IgVGhlIGRyYWZ0IGluZGljYXRvciBwcm9wZXJ0eSBuYW1lLlxuICogQHBhcmFtIHtBcnJheX0gYUZpbHRlcmVkTWVzc2FnZXMgQXJyYXkgb2YgbWVzc2FnZXMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gVGhlIHZhbHVlIGZvciBPYmplY3QgU3RhdHVzIHZpc2liaWxpdHkgcHJvcGVydHkuXG4gKi9cbmNvbnN0IGdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIgPSBmdW5jdGlvbihcblx0dGhpczogTWFuYWdlZE9iamVjdCB8IGFueSxcblx0c2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvcjogc3RyaW5nLFxuXHRhRmlsdGVyZWRNZXNzYWdlczogYW55XG4pIHtcblx0bGV0IGJTdGF0dXNWaXNpYmlsaXR5ID0gZmFsc2U7XG5cdGNvbnN0IGFTZW1hbnRpY0tleUNvbHVtbnMgPSB0aGlzLmdldFBhcmVudCgpLmdldEFnZ3JlZ2F0aW9uKFwiaXRlbXNcIik7XG5cdGNvbnN0IHNDb2x1bW5Qcm9wZXJ0eSA9IGFTZW1hbnRpY0tleUNvbHVtbnNbMF0hLmdldEJpbmRpbmcoXCJ0aXRsZVwiKT8uZ2V0UGF0aCgpO1xuXHRpZiAoYUZpbHRlcmVkTWVzc2FnZXMgJiYgYUZpbHRlcmVkTWVzc2FnZXMubGVuZ3RoID4gMCAmJiBzQ29sdW1uUHJvcGVydHkgPT09IHNlbWFudGljS2V5SGFzRHJhZnRJbmRpY2F0b3IpIHtcblx0XHRjb25zdCBzQ3VycmVudENvbnRleHRQYXRoID0gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpID8gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpLmdldFBhdGgoKSA6IHVuZGVmaW5lZDtcblx0XHRhRmlsdGVyZWRNZXNzYWdlcy5mb3JFYWNoKChvTWVzc2FnZTogYW55KSA9PiB7XG5cdFx0XHRpZiAob01lc3NhZ2UudHlwZSA9PT0gXCJFcnJvclwiICYmIG9NZXNzYWdlLmFUYXJnZXRzWzBdLmluZGV4T2Yoc0N1cnJlbnRDb250ZXh0UGF0aCkgPT09IDApIHtcblx0XHRcdFx0YlN0YXR1c1Zpc2liaWxpdHkgPSB0cnVlO1xuXHRcdFx0XHRyZXR1cm4gYlN0YXR1c1Zpc2liaWxpdHk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGJTdGF0dXNWaXNpYmlsaXR5O1xufTtcbmdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVGFibGVGb3JtYXR0ZXIjZ2V0RXJyb3JTdGF0dXNUZXh0VmlzaWJpbGl0eUZvcm1hdHRlclwiO1xuXG4vKipcbiAqIHJvd0hpZ2hsaWdodGluZ1xuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0aGlzIFRoZSBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IENyaXRpY2FsaXR5VmFsdWUgVGhlIGNyaXRpY2FsaXR5IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcn0gbWVzc2FnZUxhc3RVcGRhdGUgVGltZXN0YW1wIG9mIHRoZSBsYXN0IG1lc3NhZ2UgdGhhdCB3YXMgY3JlYXRlZC4gSXQncyBkZWZpbmVkIGFzIGFuIGlucHV0IHZhbHVlLCBidXQgbm90IHVzZWQgaW4gdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uXG4gKiBJdCBpcyB1c2VkIHRvIHJlZnJlc2ggdGhlIGZvcm1hdHRpbmcgb2YgdGhlIHRhYmxlIGVhY2ggdGltZSBhIG5ldyBtZXNzYWdlIGlzIHVwZGF0ZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSB2YWx1ZSBmcm9tIHRoZSBpbm5lciBmdW5jdGlvblxuICovXG5cbmNvbnN0IHJvd0hpZ2hsaWdodGluZyA9IGZ1bmN0aW9uKFxuXHR0aGlzOiBNYW5hZ2VkT2JqZWN0LFxuXHRjcml0aWNhbGl0eVZhbHVlOiBzdHJpbmcgfCBudW1iZXIsXG5cdGFGaWx0ZXJlZE1lc3NhZ2VzOiBhbnlbXSxcblx0aGFzQWN0aXZlRW50aXR5OiBib29sZWFuLFxuXHRpc0FjdGl2ZUVudGl0eTogYm9vbGVhbixcblx0aXNEcmFmdFJvb3Q6IHN0cmluZyxcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHQuLi5hcmdzOiBhbnlbXVxuKTogTWVzc2FnZVR5cGUge1xuXHRjb25zdCBpc05ld09iamVjdCA9ICFoYXNBY3RpdmVFbnRpdHkgJiYgIWlzQWN0aXZlRW50aXR5O1xuXHRsZXQgaUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlOiBudW1iZXIgPSAtMTtcblx0aWYgKGFGaWx0ZXJlZE1lc3NhZ2VzICYmIGFGaWx0ZXJlZE1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcblx0XHRjb25zdCBzQ3VycmVudENvbnRleHRQYXRoID0gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpPy5nZXRQYXRoKCk7XG5cdFx0YUZpbHRlcmVkTWVzc2FnZXMuZm9yRWFjaCgob01lc3NhZ2U6IGFueSkgPT4ge1xuXHRcdFx0aWYgKG9NZXNzYWdlLmFUYXJnZXRzWzBdLmluZGV4T2Yoc0N1cnJlbnRDb250ZXh0UGF0aCkgPT09IDAgJiYgaUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlIDwgZ2V0TWVzc2FnZXR5cGVPcmRlcihvTWVzc2FnZS50eXBlKSkge1xuXHRcdFx0XHRpSGlnaGVzdENyaXRpY2FsaXR5VmFsdWUgPSBnZXRNZXNzYWdldHlwZU9yZGVyKG9NZXNzYWdlLnR5cGUpO1xuXHRcdFx0XHRjcml0aWNhbGl0eVZhbHVlID0gb01lc3NhZ2UudHlwZTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRpZiAodHlwZW9mIGNyaXRpY2FsaXR5VmFsdWUgIT09IFwic3RyaW5nXCIpIHtcblx0XHRzd2l0Y2ggKGNyaXRpY2FsaXR5VmFsdWUpIHtcblx0XHRcdGNhc2UgMTpcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IE1lc3NhZ2VUeXBlLkVycm9yO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgMjpcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IE1lc3NhZ2VUeXBlLldhcm5pbmc7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAzOlxuXHRcdFx0XHRjcml0aWNhbGl0eVZhbHVlID0gTWVzc2FnZVR5cGUuU3VjY2Vzcztcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIDU6XG5cdFx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5JbmZvcm1hdGlvbjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRjcml0aWNhbGl0eVZhbHVlID0gTWVzc2FnZVR5cGUuTm9uZTtcblx0XHR9XG5cdH1cblxuXHRpZiAoY3JpdGljYWxpdHlWYWx1ZSA9PT0gTWVzc2FnZVR5cGUuTm9uZSkge1xuXHRcdGlmIChpc0RyYWZ0Um9vdCA9PT0gXCJ0cnVlXCIgJiYgaXNOZXdPYmplY3QpIHtcblx0XHRcdHJldHVybiBNZXNzYWdlVHlwZS5JbmZvcm1hdGlvbjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIE1lc3NhZ2VUeXBlLk5vbmU7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBjcml0aWNhbGl0eVZhbHVlIGFzIE1lc3NhZ2VUeXBlO1xuXHR9XG59O1xucm93SGlnaGxpZ2h0aW5nLl9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlRhYmxlRm9ybWF0dGVyI3Jvd0hpZ2hsaWdodGluZ1wiO1xuXG5jb25zdCBuYXZpZ2F0ZWRSb3cgPSBmdW5jdGlvbih0aGlzOiBNYW5hZ2VkT2JqZWN0LCBzRGVlcGVzdFBhdGg6IHN0cmluZykge1xuXHRjb25zdCBzUGF0aCA9IHRoaXMuZ2V0QmluZGluZ0NvbnRleHQoKT8uZ2V0UGF0aCgpO1xuXHRpZiAoc1BhdGggJiYgc0RlZXBlc3RQYXRoKSB7XG5cdFx0cmV0dXJuIHNEZWVwZXN0UGF0aC5pbmRleE9mKHNQYXRoKSA9PT0gMDtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn07XG5uYXZpZ2F0ZWRSb3cuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVGFibGVGb3JtYXR0ZXIjbmF2aWdhdGVkUm93XCI7XG5cbi8vIFNlZSBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9mdW5jdGlvbnMuaHRtbCN0aGlzLXBhcmFtZXRlcnMgZm9yIG1vcmUgZGV0YWlsIG9uIHRoaXMgd2VpcmQgc3ludGF4XG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdGFibGUgZm9ybWF0dGVycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdGhpcyBUaGUgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBpbm5lciBmdW5jdGlvbiBuYW1lXG4gKiBAcGFyYW0ge29iamVjdFtdfSBvQXJncyBUaGUgaW5uZXIgZnVuY3Rpb24gcGFyYW1ldGVyc1xuICogQHJldHVybnMge29iamVjdH0gVGhlIHZhbHVlIGZyb20gdGhlIGlubmVyIGZ1bmN0aW9uXG4gKi9cbmNvbnN0IHRhYmxlRm9ybWF0dGVycyA9IGZ1bmN0aW9uKHRoaXM6IG9iamVjdCwgc05hbWU6IHN0cmluZywgLi4ub0FyZ3M6IGFueVtdKTogYW55IHtcblx0aWYgKHRhYmxlRm9ybWF0dGVycy5oYXNPd25Qcm9wZXJ0eShzTmFtZSkpIHtcblx0XHRyZXR1cm4gKHRhYmxlRm9ybWF0dGVycyBhcyBhbnkpW3NOYW1lXS5hcHBseSh0aGlzLCBvQXJncyk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cbn07XG5cbnRhYmxlRm9ybWF0dGVycy52YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzID0gdmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcztcbnRhYmxlRm9ybWF0dGVycy5yb3dIaWdobGlnaHRpbmcgPSByb3dIaWdobGlnaHRpbmc7XG50YWJsZUZvcm1hdHRlcnMubmF2aWdhdGVkUm93ID0gbmF2aWdhdGVkUm93O1xudGFibGVGb3JtYXR0ZXJzLmdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIgPSBnZXRFcnJvclN0YXR1c1RleHRWaXNpYmlsaXR5Rm9ybWF0dGVyO1xuLyoqXG4gKiBAZ2xvYmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IHRhYmxlRm9ybWF0dGVycztcbiJdfQ==
246
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlRm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbImdldE1lc3NhZ2V0eXBlT3JkZXIiLCJtZXNzYWdlVHlwZSIsInZhbGlkYXRlQ3JlYXRpb25Sb3dGaWVsZHMiLCJmaWVsZFZhbGlkaXR5T2JqZWN0IiwiZmllbGRLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImV2ZXJ5Iiwia2V5IiwiX19mdW5jdGlvbk5hbWUiLCJnZXRFcnJvclN0YXR1c1RleHRWaXNpYmlsaXR5Rm9ybWF0dGVyIiwic2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvciIsImFGaWx0ZXJlZE1lc3NhZ2VzIiwiYlN0YXR1c1Zpc2liaWxpdHkiLCJhU2VtYW50aWNLZXlDb2x1bW5zIiwiZ2V0UGFyZW50IiwiZ2V0QWdncmVnYXRpb24iLCJzQ29sdW1uUHJvcGVydHkiLCJnZXRCaW5kaW5nIiwiZ2V0UGF0aCIsInNDdXJyZW50Q29udGV4dFBhdGgiLCJnZXRCaW5kaW5nQ29udGV4dCIsInVuZGVmaW5lZCIsImZvckVhY2giLCJvTWVzc2FnZSIsInR5cGUiLCJhVGFyZ2V0cyIsImluZGV4T2YiLCJyb3dIaWdobGlnaHRpbmciLCJjcml0aWNhbGl0eVZhbHVlIiwiaGFzQWN0aXZlRW50aXR5IiwiaXNBY3RpdmVFbnRpdHkiLCJpc0RyYWZ0Um9vdCIsImlzTmV3T2JqZWN0IiwiaUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlIiwiTWVzc2FnZVR5cGUiLCJFcnJvciIsIldhcm5pbmciLCJTdWNjZXNzIiwiSW5mb3JtYXRpb24iLCJOb25lIiwibmF2aWdhdGVkUm93Iiwic0RlZXBlc3RQYXRoIiwic1BhdGgiLCJpc1JhdGluZ0luZGljYXRvciIsIm9Db250cm9sIiwiaXNBIiwidkNvbnRlbnREaXNwbGF5IiwiQXJyYXkiLCJpc0FycmF5IiwiZ2V0Q29udGVudERpc3BsYXkiLCJfdXBkYXRlU3R5bGVDbGFzc0ZvclJhdGluZ0luZGljYXRvciIsIm9GaWVsZFdyYXBwZXIiLCJiTGFzdCIsInZDb250ZW50RWRpdCIsImdldENvbnRlbnRFZGl0IiwiYWRkU3R5bGVDbGFzcyIsInJlbW92ZVN0eWxlQ2xhc3MiLCJnZXRWQm94VmlzaWJpbGl0eSIsImFJdGVtcyIsImdldEl0ZW1zIiwiYkxhc3RFbGVtZW50Rm91bmQiLCJhcmdzIiwiaW5kZXgiLCJ0YWJsZUZvcm1hdHRlciIsInNOYW1lIiwiaGFzT3duUHJvcGVydHkiLCJvQXJncyIsImFwcGx5Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7QUFFQSxNQUFNQSxtQkFBbUIsR0FBRyxVQUFVQyxXQUFWLEVBQXVDO0FBQ2xFLFlBQVFBLFdBQVI7QUFDQyxXQUFLLE9BQUw7QUFDQyxlQUFPLENBQVA7O0FBQ0QsV0FBSyxTQUFMO0FBQ0MsZUFBTyxDQUFQOztBQUNELFdBQUssYUFBTDtBQUNDLGVBQU8sQ0FBUDs7QUFDRCxXQUFLLE1BQUw7QUFDQyxlQUFPLENBQVA7O0FBQ0Q7QUFDQyxlQUFPLENBQUMsQ0FBUjtBQVZGO0FBWUEsR0FiRDtBQWVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE1BQU1DLHlCQUF5QixHQUFHLFVBQVVDLG1CQUFWLEVBQXFDO0FBQ3RFLFFBQUksQ0FBQ0EsbUJBQUwsRUFBMEI7QUFDekIsYUFBTyxLQUFQO0FBQ0E7O0FBQ0QsUUFBTUMsU0FBUyxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWUgsbUJBQVosQ0FBbEI7QUFDQSxXQUNDQyxTQUFTLENBQUNHLE1BQVYsR0FBbUIsQ0FBbkIsSUFDQUgsU0FBUyxDQUFDSSxLQUFWLENBQWdCLFVBQVVDLEdBQVYsRUFBZTtBQUM5QixhQUFPTixtQkFBbUIsQ0FBQ00sR0FBRCxDQUFuQixDQUF5QixVQUF6QixDQUFQO0FBQ0EsS0FGRCxDQUZEO0FBTUEsR0FYRDs7QUFZQVAsRUFBQUEseUJBQXlCLENBQUNRLGNBQTFCLEdBQTJDLGlFQUEzQztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxNQUFNQyxxQ0FBcUMsR0FB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LENBQUNwQyxlQUFmLEdBQWlDQSxlQUFqQztBQUNBb0MsRUFBQUEsY0FBYyxDQUFDdkIsWUFBZixHQUE4QkEsWUFBOUI7QUFDQXVCLEVBQUFBLGNBQWMsQ0FBQ3RELHFDQUFmLEdBQXVEQSxxQ0FBdkQ7QUFDQXNELEVBQUFBLGNBQWMsQ0FBQ04saUJBQWYsR0FBbUNBLGlCQUFuQztBQUNBTSxFQUFBQSxjQUFjLENBQUNwQixpQkFBZixHQUFtQ0EsaUJBQW5DLEMsQ0FBc0Q7O0FBRXREO0FBQ0E7QUFDQTs7U0FDZW9CLGMiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvVGFibGVGb3JtYXR0ZXJUeXBlc1wiO1xuaW1wb3J0IFRhYmxlIGZyb20gXCJzYXAvbS9UYWJsZVwiO1xuaW1wb3J0IE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcblxuY29uc3QgZ2V0TWVzc2FnZXR5cGVPcmRlciA9IGZ1bmN0aW9uIChtZXNzYWdlVHlwZTogc3RyaW5nKTogbnVtYmVyIHtcblx0c3dpdGNoIChtZXNzYWdlVHlwZSkge1xuXHRcdGNhc2UgXCJFcnJvclwiOlxuXHRcdFx0cmV0dXJuIDQ7XG5cdFx0Y2FzZSBcIldhcm5pbmdcIjpcblx0XHRcdHJldHVybiAzO1xuXHRcdGNhc2UgXCJJbmZvcm1hdGlvblwiOlxuXHRcdFx0cmV0dXJuIDI7XG5cdFx0Y2FzZSBcIk5vbmVcIjpcblx0XHRcdHJldHVybiAxO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXR1cm4gLTE7XG5cdH1cbn07XG5cbi8qKlxuICogR2V0cyB0aGUgdmFsaWRpdHkgb2YgY3JlYXRpb24gcm93IGZpZWxkcy5cbiAqXG4gKiBAZnVuY3Rpb25cbiAqIEBuYW1lIHZhbGlkYXRlQ3JlYXRpb25Sb3dGaWVsZHNcbiAqIEBwYXJhbSB7b2JqZWN0fSBmaWVsZFZhbGlkaXR5T2JqZWN0IE9iamVjdCBob2xkaW5nIHRoZSBmaWVsZHNcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgYWxsIHRoZSBmaWVsZHMgaW4gdGhlIGNyZWF0aW9uIHJvdyBhcmUgdmFsaWQsIGBmYWxzZWAgb3RoZXJ3aXNlXG4gKi9cbmNvbnN0IHZhbGlkYXRlQ3JlYXRpb25Sb3dGaWVsZHMgPSBmdW5jdGlvbiAoZmllbGRWYWxpZGl0eU9iamVjdD86IGFueSkge1xuXHRpZiAoIWZpZWxkVmFsaWRpdHlPYmplY3QpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Y29uc3QgZmllbGRLZXlzID0gT2JqZWN0LmtleXMoZmllbGRWYWxpZGl0eU9iamVjdCk7XG5cdHJldHVybiAoXG5cdFx0ZmllbGRLZXlzLmxlbmd0aCA+IDAgJiZcblx0XHRmaWVsZEtleXMuZXZlcnkoZnVuY3Rpb24gKGtleSkge1xuXHRcdFx0cmV0dXJuIGZpZWxkVmFsaWRpdHlPYmplY3Rba2V5XVtcInZhbGlkaXR5XCJdO1xuXHRcdH0pXG5cdCk7XG59O1xudmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcy5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5UYWJsZUZvcm1hdHRlciN2YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzXCI7XG5cbi8qKlxuICogQHBhcmFtIHtvYmplY3R9IHRoaXMgVGhlIGNvbnRleHQuXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvciBUaGUgZHJhZnQgaW5kaWNhdG9yIHByb3BlcnR5IG5hbWUuXG4gKiBAcGFyYW0ge0FycmF5fSBhRmlsdGVyZWRNZXNzYWdlcyBBcnJheSBvZiBtZXNzYWdlcy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBUaGUgdmFsdWUgZm9yIE9iamVjdCBTdGF0dXMgdmlzaWJpbGl0eSBwcm9wZXJ0eS5cbiAqL1xuY29uc3QgZ2V0RXJyb3JTdGF0dXNUZXh0VmlzaWJpbGl0eUZvcm1hdHRlciA9IGZ1bmN0aW9uIChcblx0dGhpczogTWFuYWdlZE9iamVjdCB8IGFueSxcblx0c2VtYW50aWNLZXlIYXNEcmFmdEluZGljYXRvcjogc3RyaW5nLFxuXHRhRmlsdGVyZWRNZXNzYWdlczogYW55XG4pIHtcblx0bGV0IGJTdGF0dXNWaXNpYmlsaXR5ID0gZmFsc2U7XG5cdGNvbnN0IGFTZW1hbnRpY0tleUNvbHVtbnMgPSB0aGlzLmdldFBhcmVudCgpLmdldEFnZ3JlZ2F0aW9uKFwiaXRlbXNcIik7XG5cdGNvbnN0IHNDb2x1bW5Qcm9wZXJ0eSA9IGFTZW1hbnRpY0tleUNvbHVtbnNbMF0hLmdldEJpbmRpbmcoXCJ0aXRsZVwiKT8uZ2V0UGF0aCgpO1xuXHRpZiAoYUZpbHRlcmVkTWVzc2FnZXMgJiYgYUZpbHRlcmVkTWVzc2FnZXMubGVuZ3RoID4gMCAmJiBzQ29sdW1uUHJvcGVydHkgPT09IHNlbWFudGljS2V5SGFzRHJhZnRJbmRpY2F0b3IpIHtcblx0XHRjb25zdCBzQ3VycmVudENvbnRleHRQYXRoID0gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpID8gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpLmdldFBhdGgoKSA6IHVuZGVmaW5lZDtcblx0XHRhRmlsdGVyZWRNZXNzYWdlcy5mb3JFYWNoKChvTWVzc2FnZTogYW55KSA9PiB7XG5cdFx0XHRpZiAob01lc3NhZ2UudHlwZSA9PT0gXCJFcnJvclwiICYmIG9NZXNzYWdlLmFUYXJnZXRzWzBdLmluZGV4T2Yoc0N1cnJlbnRDb250ZXh0UGF0aCkgPT09IDApIHtcblx0XHRcdFx0YlN0YXR1c1Zpc2liaWxpdHkgPSB0cnVlO1xuXHRcdFx0XHRyZXR1cm4gYlN0YXR1c1Zpc2liaWxpdHk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIGJTdGF0dXNWaXNpYmlsaXR5O1xufTtcbmdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIuX19mdW5jdGlvbk5hbWUgPSBcInNhcC5mZS5jb3JlLmZvcm1hdHRlcnMuVGFibGVGb3JtYXR0ZXIjZ2V0RXJyb3JTdGF0dXNUZXh0VmlzaWJpbGl0eUZvcm1hdHRlclwiO1xuXG4vKipcbiAqIHJvd0hpZ2hsaWdodGluZ1xuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSB0aGlzIFRoZSBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ3xudW1iZXJ9IENyaXRpY2FsaXR5VmFsdWUgVGhlIGNyaXRpY2FsaXR5IHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcn0gbWVzc2FnZUxhc3RVcGRhdGUgVGltZXN0YW1wIG9mIHRoZSBsYXN0IG1lc3NhZ2UgdGhhdCB3YXMgY3JlYXRlZC4gSXQncyBkZWZpbmVkIGFzIGFuIGlucHV0IHZhbHVlLCBidXQgbm90IHVzZWQgaW4gdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uXG4gKiBJdCBpcyB1c2VkIHRvIHJlZnJlc2ggdGhlIGZvcm1hdHRpbmcgb2YgdGhlIHRhYmxlIGVhY2ggdGltZSBhIG5ldyBtZXNzYWdlIGlzIHVwZGF0ZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9IFRoZSB2YWx1ZSBmcm9tIHRoZSBpbm5lciBmdW5jdGlvblxuICovXG5cbmNvbnN0IHJvd0hpZ2hsaWdodGluZyA9IGZ1bmN0aW9uIChcblx0dGhpczogTWFuYWdlZE9iamVjdCxcblx0Y3JpdGljYWxpdHlWYWx1ZTogc3RyaW5nIHwgbnVtYmVyLFxuXHRhRmlsdGVyZWRNZXNzYWdlczogYW55W10sXG5cdGhhc0FjdGl2ZUVudGl0eTogYm9vbGVhbixcblx0aXNBY3RpdmVFbnRpdHk6IGJvb2xlYW4sXG5cdGlzRHJhZnRSb290OiBzdHJpbmcsXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0Li4uYXJnczogYW55W11cbik6IE1lc3NhZ2VUeXBlIHtcblx0Y29uc3QgaXNOZXdPYmplY3QgPSAhaGFzQWN0aXZlRW50aXR5ICYmICFpc0FjdGl2ZUVudGl0eTtcblx0bGV0IGlIaWdoZXN0Q3JpdGljYWxpdHlWYWx1ZTogbnVtYmVyID0gLTE7XG5cdGlmIChhRmlsdGVyZWRNZXNzYWdlcyAmJiBhRmlsdGVyZWRNZXNzYWdlcy5sZW5ndGggPiAwKSB7XG5cdFx0Y29uc3Qgc0N1cnJlbnRDb250ZXh0UGF0aCA9IHRoaXMuZ2V0QmluZGluZ0NvbnRleHQoKT8uZ2V0UGF0aCgpO1xuXHRcdGFGaWx0ZXJlZE1lc3NhZ2VzLmZvckVhY2goKG9NZXNzYWdlOiBhbnkpID0+IHtcblx0XHRcdGlmIChvTWVzc2FnZS5hVGFyZ2V0c1swXS5pbmRleE9mKHNDdXJyZW50Q29udGV4dFBhdGgpID09PSAwICYmIGlIaWdoZXN0Q3JpdGljYWxpdHlWYWx1ZSA8IGdldE1lc3NhZ2V0eXBlT3JkZXIob01lc3NhZ2UudHlwZSkpIHtcblx0XHRcdFx0aUhpZ2hlc3RDcml0aWNhbGl0eVZhbHVlID0gZ2V0TWVzc2FnZXR5cGVPcmRlcihvTWVzc2FnZS50eXBlKTtcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IG9NZXNzYWdlLnR5cGU7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0aWYgKHR5cGVvZiBjcml0aWNhbGl0eVZhbHVlICE9PSBcInN0cmluZ1wiKSB7XG5cdFx0c3dpdGNoIChjcml0aWNhbGl0eVZhbHVlKSB7XG5cdFx0XHRjYXNlIDE6XG5cdFx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5FcnJvcjtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIDI6XG5cdFx0XHRcdGNyaXRpY2FsaXR5VmFsdWUgPSBNZXNzYWdlVHlwZS5XYXJuaW5nO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgMzpcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IE1lc3NhZ2VUeXBlLlN1Y2Nlc3M7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSA1OlxuXHRcdFx0XHRjcml0aWNhbGl0eVZhbHVlID0gTWVzc2FnZVR5cGUuSW5mb3JtYXRpb247XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0Y3JpdGljYWxpdHlWYWx1ZSA9IE1lc3NhZ2VUeXBlLk5vbmU7XG5cdFx0fVxuXHR9XG5cblx0aWYgKGNyaXRpY2FsaXR5VmFsdWUgPT09IE1lc3NhZ2VUeXBlLk5vbmUpIHtcblx0XHRpZiAoaXNEcmFmdFJvb3QgPT09IFwidHJ1ZVwiICYmIGlzTmV3T2JqZWN0KSB7XG5cdFx0XHRyZXR1cm4gTWVzc2FnZVR5cGUuSW5mb3JtYXRpb247XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBNZXNzYWdlVHlwZS5Ob25lO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gY3JpdGljYWxpdHlWYWx1ZSBhcyBNZXNzYWdlVHlwZTtcblx0fVxufTtcbnJvd0hpZ2hsaWdodGluZy5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5UYWJsZUZvcm1hdHRlciNyb3dIaWdobGlnaHRpbmdcIjtcblxuY29uc3QgbmF2aWdhdGVkUm93ID0gZnVuY3Rpb24gKHRoaXM6IE1hbmFnZWRPYmplY3QsIHNEZWVwZXN0UGF0aDogc3RyaW5nKSB7XG5cdGNvbnN0IHNQYXRoID0gdGhpcy5nZXRCaW5kaW5nQ29udGV4dCgpPy5nZXRQYXRoKCk7XG5cdGlmIChzUGF0aCAmJiBzRGVlcGVzdFBhdGgpIHtcblx0XHRyZXR1cm4gc0RlZXBlc3RQYXRoLmluZGV4T2Yoc1BhdGgpID09PSAwO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufTtcbm5hdmlnYXRlZFJvdy5fX2Z1bmN0aW9uTmFtZSA9IFwic2FwLmZlLmNvcmUuZm9ybWF0dGVycy5UYWJsZUZvcm1hdHRlciNuYXZpZ2F0ZWRSb3dcIjtcblxuZnVuY3Rpb24gaXNSYXRpbmdJbmRpY2F0b3Iob0NvbnRyb2w6IGFueSk6IGJvb2xlYW4ge1xuXHRpZiAob0NvbnRyb2wuaXNBKFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmllbGRXcmFwcGVyXCIpKSB7XG5cdFx0Y29uc3QgdkNvbnRlbnREaXNwbGF5ID0gQXJyYXkuaXNBcnJheShvQ29udHJvbC5nZXRDb250ZW50RGlzcGxheSgpKVxuXHRcdFx0PyBvQ29udHJvbC5nZXRDb250ZW50RGlzcGxheSgpWzBdXG5cdFx0XHQ6IG9Db250cm9sLmdldENvbnRlbnREaXNwbGF5KCk7XG5cdFx0aWYgKHZDb250ZW50RGlzcGxheSAmJiB2Q29udGVudERpc3BsYXkuaXNBKFwic2FwLm0uUmF0aW5nSW5kaWNhdG9yXCIpKSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gX3VwZGF0ZVN0eWxlQ2xhc3NGb3JSYXRpbmdJbmRpY2F0b3Iob0ZpZWxkV3JhcHBlcjogYW55LCBiTGFzdDogYm9vbGVhbikge1xuXHRjb25zdCB2Q29udGVudERpc3BsYXkgPSBBcnJheS5pc0FycmF5KG9GaWVsZFdyYXBwZXIuZ2V0Q29udGVudERpc3BsYXkoKSlcblx0XHQ/IG9GaWVsZFdyYXBwZXIuZ2V0Q29udGVudERpc3BsYXkoKVswXVxuXHRcdDogb0ZpZWxkV3JhcHBlci5nZXRDb250ZW50RGlzcGxheSgpO1xuXHRjb25zdCB2Q29udGVudEVkaXQgPSBBcnJheS5pc0FycmF5KG9GaWVsZFdyYXBwZXIuZ2V0Q29udGVudEVkaXQoKSkgPyBvRmllbGRXcmFwcGVyLmdldENvbnRlbnRFZGl0KClbMF0gOiBvRmllbGRXcmFwcGVyLmdldENvbnRlbnRFZGl0KCk7XG5cblx0aWYgKGJMYXN0KSB7XG5cdFx0dkNvbnRlbnREaXNwbGF5LmFkZFN0eWxlQ2xhc3MoXCJzYXBVaU5vTWFyZ2luQm90dG9tXCIpO1xuXHRcdHZDb250ZW50RGlzcGxheS5hZGRTdHlsZUNsYXNzKFwic2FwVWlOb01hcmdpblRvcFwiKTtcblx0XHR2Q29udGVudEVkaXQucmVtb3ZlU3R5bGVDbGFzcyhcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwiKTtcblx0fSBlbHNlIHtcblx0XHR2Q29udGVudERpc3BsYXkuYWRkU3R5bGVDbGFzcyhcInNhcFVpTm9NYXJnaW5Cb3R0b21cIik7XG5cdFx0dkNvbnRlbnREaXNwbGF5LnJlbW92ZVN0eWxlQ2xhc3MoXCJzYXBVaU5vTWFyZ2luVG9wXCIpO1xuXHRcdHZDb250ZW50RWRpdC5hZGRTdHlsZUNsYXNzKFwic2FwVWlUaW55TWFyZ2luQm90dG9tXCIpO1xuXHR9XG59XG5mdW5jdGlvbiBnZXRWQm94VmlzaWJpbGl0eSh0aGlzOiBUYWJsZSwgLi4uYXJnczogYW55W10pIHtcblx0Y29uc3QgYUl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xuXHRsZXQgYkxhc3RFbGVtZW50Rm91bmQgPSBmYWxzZTtcblx0Zm9yIChsZXQgaW5kZXggPSBhSXRlbXMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuXHRcdGlmICghYkxhc3RFbGVtZW50Rm91bmQpIHtcblx0XHRcdGlmIChhcmdzW2luZGV4XSAhPT0gdHJ1ZSkge1xuXHRcdFx0XHRiTGFzdEVsZW1lbnRGb3VuZCA9IHRydWU7XG5cdFx0XHRcdGlmIChpc1JhdGluZ0luZGljYXRvcihhSXRlbXNbaW5kZXhdKSkge1xuXHRcdFx0XHRcdF91cGRhdGVTdHlsZUNsYXNzRm9yUmF0aW5nSW5kaWNhdG9yKGFJdGVtc1tpbmRleF0sIHRydWUpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGFJdGVtc1tpbmRleF0ucmVtb3ZlU3R5bGVDbGFzcyhcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoaXNSYXRpbmdJbmRpY2F0b3IoYUl0ZW1zW2luZGV4XSkpIHtcblx0XHRcdF91cGRhdGVTdHlsZUNsYXNzRm9yUmF0aW5nSW5kaWNhdG9yKGFJdGVtc1tpbmRleF0sIGZhbHNlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YUl0ZW1zW2luZGV4XS5hZGRTdHlsZUNsYXNzKFwic2FwVWlUaW55TWFyZ2luQm90dG9tXCIpO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdHJ1ZTtcbn1cbmdldFZCb3hWaXNpYmlsaXR5Ll9fZnVuY3Rpb25OYW1lID0gXCJzYXAuZmUuY29yZS5mb3JtYXR0ZXJzLlRhYmxlRm9ybWF0dGVyI2dldFZCb3hWaXNpYmlsaXR5XCI7XG5cbi8vIFNlZSBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay9mdW5jdGlvbnMuaHRtbCN0aGlzLXBhcmFtZXRlcnMgZm9yIG1vcmUgZGV0YWlsIG9uIHRoaXMgd2VpcmQgc3ludGF4XG4vKipcbiAqIENvbGxlY3Rpb24gb2YgdGFibGUgZm9ybWF0dGVycy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gdGhpcyBUaGUgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBpbm5lciBmdW5jdGlvbiBuYW1lXG4gKiBAcGFyYW0ge29iamVjdFtdfSBvQXJncyBUaGUgaW5uZXIgZnVuY3Rpb24gcGFyYW1ldGVyc1xuICogQHJldHVybnMge29iamVjdH0gVGhlIHZhbHVlIGZyb20gdGhlIGlubmVyIGZ1bmN0aW9uXG4gKi9cbmNvbnN0IHRhYmxlRm9ybWF0dGVyID0gZnVuY3Rpb24gKHRoaXM6IG9iamVjdCwgc05hbWU6IHN0cmluZywgLi4ub0FyZ3M6IGFueVtdKTogYW55IHtcblx0aWYgKHRhYmxlRm9ybWF0dGVyLmhhc093blByb3BlcnR5KHNOYW1lKSkge1xuXHRcdHJldHVybiAodGFibGVGb3JtYXR0ZXIgYXMgYW55KVtzTmFtZV0uYXBwbHkodGhpcywgb0FyZ3MpO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG59O1xuXG50YWJsZUZvcm1hdHRlci52YWxpZGF0ZUNyZWF0aW9uUm93RmllbGRzID0gdmFsaWRhdGVDcmVhdGlvblJvd0ZpZWxkcztcbnRhYmxlRm9ybWF0dGVyLnJvd0hpZ2hsaWdodGluZyA9IHJvd0hpZ2hsaWdodGluZztcbnRhYmxlRm9ybWF0dGVyLm5hdmlnYXRlZFJvdyA9IG5hdmlnYXRlZFJvdztcbnRhYmxlRm9ybWF0dGVyLmdldEVycm9yU3RhdHVzVGV4dFZpc2liaWxpdHlGb3JtYXR0ZXIgPSBnZXRFcnJvclN0YXR1c1RleHRWaXNpYmlsaXR5Rm9ybWF0dGVyO1xudGFibGVGb3JtYXR0ZXIuZ2V0VkJveFZpc2liaWxpdHkgPSBnZXRWQm94VmlzaWJpbGl0eTtcbnRhYmxlRm9ybWF0dGVyLmlzUmF0aW5nSW5kaWNhdG9yID0gaXNSYXRpbmdJbmRpY2F0b3I7IC8vIGZvciB1bml0IHRlc3RzXG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCB0YWJsZUZvcm1hdHRlcjtcbiJdfQ==