@sapui5/sap.fe.core 1.102.3 → 1.105.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 (359) hide show
  1. package/package.json +6 -6
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +120 -0
  4. package/src/sap/fe/core/ActionRuntime.ts +108 -0
  5. package/src/sap/fe/core/AppComponent.js +81 -35
  6. package/src/sap/fe/core/AppComponent.ts +68 -44
  7. package/src/sap/fe/core/AppStateHandler.js +82 -70
  8. package/src/sap/fe/core/AppStateHandler.ts +32 -37
  9. package/src/sap/fe/core/BaseController.js +12 -10
  10. package/src/sap/fe/core/BaseController.ts +15 -13
  11. package/src/sap/fe/core/CommonUtils.js +291 -218
  12. package/src/sap/fe/core/CommonUtils.ts +315 -251
  13. package/src/sap/fe/core/ExtensionAPI.js +25 -28
  14. package/src/sap/fe/core/ExtensionAPI.ts +36 -38
  15. package/src/sap/fe/core/PageController.js +5 -5
  16. package/src/sap/fe/core/PageController.ts +4 -5
  17. package/src/sap/fe/core/TemplateComponent.js +21 -10
  18. package/src/sap/fe/core/TemplateComponent.ts +9 -6
  19. package/src/sap/fe/core/TemplateModel.js +2 -2
  20. package/src/sap/fe/core/TemplateModel.ts +1 -1
  21. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +11 -3
  22. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +8 -2
  23. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +197 -43
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +164 -24
  25. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +14 -0
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.ts +5 -0
  27. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +609 -230
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +275 -128
  29. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +30 -30
  30. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +32 -29
  31. package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
  32. package/src/sap/fe/core/controllerextensions/EditFlow.js +761 -700
  33. package/src/sap/fe/core/controllerextensions/EditFlow.ts +478 -514
  34. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +10 -10
  35. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
  36. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +104 -75
  37. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +71 -79
  38. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +68 -68
  39. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +76 -76
  40. package/src/sap/fe/core/controllerextensions/InternalRouting.js +162 -102
  41. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +177 -121
  42. package/src/sap/fe/core/controllerextensions/KPIManagement.js +67 -69
  43. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
  44. package/src/sap/fe/core/controllerextensions/MassEdit.js +10 -10
  45. package/src/sap/fe/core/controllerextensions/MassEdit.ts +20 -27
  46. package/src/sap/fe/core/controllerextensions/MessageHandler.js +21 -13
  47. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +21 -14
  48. package/src/sap/fe/core/controllerextensions/PageReady.js +98 -26
  49. package/src/sap/fe/core/controllerextensions/PageReady.ts +98 -34
  50. package/src/sap/fe/core/controllerextensions/Paginator.js +31 -32
  51. package/src/sap/fe/core/controllerextensions/Paginator.ts +33 -34
  52. package/src/sap/fe/core/controllerextensions/Placeholder.js +5 -7
  53. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  54. package/src/sap/fe/core/controllerextensions/Routing.js +11 -12
  55. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  56. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  57. package/src/sap/fe/core/controllerextensions/Share.js +171 -140
  58. package/src/sap/fe/core/controllerextensions/Share.ts +117 -118
  59. package/src/sap/fe/core/controllerextensions/SideEffects.js +47 -51
  60. package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
  61. package/src/sap/fe/core/controllerextensions/ViewState.js +201 -132
  62. package/src/sap/fe/core/controllerextensions/ViewState.ts +141 -148
  63. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
  64. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
  65. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +13 -12
  66. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +17 -20
  67. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +13 -12
  68. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +15 -15
  69. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +57 -18
  70. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +60 -28
  71. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +29 -21
  72. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1424 -940
  73. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +799 -836
  74. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +410 -377
  75. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +275 -358
  76. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +309 -0
  77. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +320 -0
  78. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +752 -579
  79. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +631 -599
  80. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +92 -74
  81. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +49 -52
  82. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +78 -41
  83. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +110 -84
  84. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +69 -81
  85. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +64 -73
  86. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +18 -2
  87. package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +35 -0
  88. package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +25 -24
  89. package/src/sap/fe/core/controls/Any.js +9 -5
  90. package/src/sap/fe/core/controls/Any.ts +10 -4
  91. package/src/sap/fe/core/controls/CommandExecution.js +12 -26
  92. package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
  93. package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -3
  94. package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
  95. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +26 -26
  96. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
  97. package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -3
  98. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
  99. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
  100. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
  101. package/src/sap/fe/core/controls/FieldWrapper.js +3 -3
  102. package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
  103. package/src/sap/fe/core/controls/FileWrapper.js +9 -4
  104. package/src/sap/fe/core/controls/FileWrapper.ts +16 -12
  105. package/src/sap/fe/core/controls/FilterBar.js +7 -3
  106. package/src/sap/fe/core/controls/FilterBar.ts +13 -9
  107. package/src/sap/fe/core/controls/FormElementWrapper.js +2 -2
  108. package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
  109. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  110. package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
  111. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
  112. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +44 -19
  113. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -2
  114. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +17 -13
  115. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
  116. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +4 -4
  117. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
  118. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +49 -49
  119. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +54 -54
  120. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
  121. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
  122. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
  123. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
  124. package/src/sap/fe/core/converters/ConverterContext.js +48 -34
  125. package/src/sap/fe/core/converters/ConverterContext.ts +81 -67
  126. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  127. package/src/sap/fe/core/converters/ManifestSettings.ts +18 -15
  128. package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
  129. package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
  130. package/src/sap/fe/core/converters/MetaModelConverter.js +74 -40
  131. package/src/sap/fe/core/converters/MetaModelConverter.ts +176 -140
  132. package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
  133. package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
  134. package/src/sap/fe/core/converters/annotations/DataField.js +58 -35
  135. package/src/sap/fe/core/converters/annotations/DataField.ts +102 -76
  136. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1956 -1494
  137. package/src/sap/fe/core/converters/controls/Common/Action.js +78 -51
  138. package/src/sap/fe/core/converters/controls/Common/Action.ts +87 -52
  139. package/src/sap/fe/core/converters/controls/Common/Chart.js +22 -16
  140. package/src/sap/fe/core/converters/controls/Common/Chart.ts +42 -43
  141. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
  142. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
  143. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +65 -29
  144. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +93 -62
  145. package/src/sap/fe/core/converters/controls/Common/Form.js +31 -31
  146. package/src/sap/fe/core/converters/controls/Common/Form.ts +46 -57
  147. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
  148. package/src/sap/fe/core/converters/controls/Common/KPI.ts +49 -52
  149. package/src/sap/fe/core/converters/controls/Common/Table.js +251 -264
  150. package/src/sap/fe/core/converters/controls/Common/Table.ts +344 -370
  151. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
  152. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +147 -144
  153. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +89 -59
  154. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +118 -71
  155. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
  156. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
  157. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
  158. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
  159. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +131 -95
  160. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +123 -87
  161. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +98 -87
  162. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +121 -117
  163. package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
  164. package/src/sap/fe/core/converters/helpers/Aggregation.ts +12 -15
  165. package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
  166. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
  167. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +8 -6
  168. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +18 -10
  169. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +136 -0
  170. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +139 -0
  171. package/src/sap/fe/core/converters/helpers/ID.js +48 -46
  172. package/src/sap/fe/core/converters/helpers/ID.ts +26 -25
  173. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  174. package/src/sap/fe/core/converters/helpers/Key.js +7 -7
  175. package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
  176. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  177. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -5
  178. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
  179. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
  180. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +53 -75
  181. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +59 -90
  182. package/src/sap/fe/core/converters/templates/ListReportConverter.js +58 -57
  183. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +93 -86
  184. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +58 -44
  185. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +87 -80
  186. package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
  187. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
  188. package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
  189. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
  190. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
  191. package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
  192. package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
  193. package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
  194. package/src/sap/fe/core/formatters/StandardFormatter.js +96 -0
  195. package/src/sap/fe/core/formatters/StandardFormatter.ts +70 -0
  196. package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
  197. package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
  198. package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
  199. package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
  200. package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
  201. package/src/sap/fe/core/fpm/Component.js +33 -7
  202. package/src/sap/fe/core/fpm/Component.ts +14 -0
  203. package/src/sap/fe/core/helpers/AnnotationEnum.js +1 -1
  204. package/src/sap/fe/core/helpers/AppStartupHelper.js +19 -18
  205. package/src/sap/fe/core/helpers/AppStartupHelper.ts +41 -43
  206. package/src/sap/fe/core/helpers/BindingToolkit.js +1836 -0
  207. package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +397 -270
  208. package/src/sap/fe/core/helpers/ClassSupport.js +49 -12
  209. package/src/sap/fe/core/helpers/ClassSupport.ts +37 -10
  210. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
  211. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
  212. package/src/sap/fe/core/helpers/EditState.js +1 -6
  213. package/src/sap/fe/core/helpers/EditState.ts +5 -10
  214. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
  215. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
  216. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  217. package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
  218. package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
  219. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
  220. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
  221. package/src/sap/fe/core/helpers/MassEditHelper.js +306 -280
  222. package/src/sap/fe/core/helpers/MassEditHelper.ts +380 -360
  223. package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
  224. package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
  225. package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
  226. package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
  227. package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
  228. package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
  229. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  230. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
  231. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
  232. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
  233. package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
  234. package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
  235. package/src/sap/fe/core/helpers/Synchronization.js +1 -1
  236. package/src/sap/fe/core/helpers/ToES6Promise.js +32 -0
  237. package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
  238. package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
  239. package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
  240. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +109 -0
  241. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +47 -0
  242. package/src/sap/fe/core/jsx-runtime/jsx-control.js +110 -0
  243. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +92 -0
  244. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
  245. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
  246. package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
  247. package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
  248. package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
  249. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +179 -0
  250. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +150 -0
  251. package/src/sap/fe/core/library.js +42 -3
  252. package/src/sap/fe/core/library.support.js +1 -1
  253. package/src/sap/fe/core/library.ts +38 -0
  254. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
  255. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
  256. package/src/sap/fe/core/messagebundle.properties +39 -67
  257. package/src/sap/fe/core/messagebundle_ar.properties +27 -44
  258. package/src/sap/fe/core/messagebundle_bg.properties +27 -44
  259. package/src/sap/fe/core/messagebundle_ca.properties +27 -44
  260. package/src/sap/fe/core/messagebundle_cs.properties +27 -44
  261. package/src/sap/fe/core/messagebundle_cy.properties +26 -43
  262. package/src/sap/fe/core/messagebundle_da.properties +27 -44
  263. package/src/sap/fe/core/messagebundle_de.properties +25 -42
  264. package/src/sap/fe/core/messagebundle_el.properties +28 -45
  265. package/src/sap/fe/core/messagebundle_en.properties +27 -44
  266. package/src/sap/fe/core/messagebundle_en_GB.properties +27 -44
  267. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +25 -42
  268. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +26 -40
  269. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +25 -42
  270. package/src/sap/fe/core/messagebundle_es.properties +27 -44
  271. package/src/sap/fe/core/messagebundle_es_MX.properties +27 -44
  272. package/src/sap/fe/core/messagebundle_et.properties +27 -44
  273. package/src/sap/fe/core/messagebundle_fi.properties +27 -44
  274. package/src/sap/fe/core/messagebundle_fr.properties +26 -43
  275. package/src/sap/fe/core/messagebundle_fr_CA.properties +25 -42
  276. package/src/sap/fe/core/messagebundle_hi.properties +27 -44
  277. package/src/sap/fe/core/messagebundle_hr.properties +27 -44
  278. package/src/sap/fe/core/messagebundle_hu.properties +27 -44
  279. package/src/sap/fe/core/messagebundle_id.properties +27 -44
  280. package/src/sap/fe/core/messagebundle_it.properties +43 -60
  281. package/src/sap/fe/core/messagebundle_iw.properties +27 -44
  282. package/src/sap/fe/core/messagebundle_ja.properties +27 -44
  283. package/src/sap/fe/core/messagebundle_kk.properties +27 -44
  284. package/src/sap/fe/core/messagebundle_ko.properties +30 -47
  285. package/src/sap/fe/core/messagebundle_lt.properties +27 -44
  286. package/src/sap/fe/core/messagebundle_lv.properties +27 -44
  287. package/src/sap/fe/core/messagebundle_ms.properties +27 -44
  288. package/src/sap/fe/core/messagebundle_nl.properties +29 -46
  289. package/src/sap/fe/core/messagebundle_no.properties +27 -44
  290. package/src/sap/fe/core/messagebundle_pl.properties +28 -45
  291. package/src/sap/fe/core/messagebundle_pt.properties +28 -45
  292. package/src/sap/fe/core/messagebundle_pt_PT.properties +27 -44
  293. package/src/sap/fe/core/messagebundle_ro.properties +27 -44
  294. package/src/sap/fe/core/messagebundle_ru.properties +27 -44
  295. package/src/sap/fe/core/messagebundle_sh.properties +27 -44
  296. package/src/sap/fe/core/messagebundle_sk.properties +27 -44
  297. package/src/sap/fe/core/messagebundle_sl.properties +27 -44
  298. package/src/sap/fe/core/messagebundle_sv.properties +27 -44
  299. package/src/sap/fe/core/messagebundle_th.properties +25 -42
  300. package/src/sap/fe/core/messagebundle_tr.properties +27 -44
  301. package/src/sap/fe/core/messagebundle_uk.properties +27 -44
  302. package/src/sap/fe/core/messagebundle_vi.properties +27 -44
  303. package/src/sap/fe/core/messagebundle_zh_CN.properties +27 -44
  304. package/src/sap/fe/core/messagebundle_zh_TW.properties +27 -44
  305. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
  306. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
  307. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +103 -75
  308. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +72 -73
  309. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +2 -2
  310. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
  311. package/src/sap/fe/core/services/NavigationServiceFactory.js +62 -50
  312. package/src/sap/fe/core/services/NavigationServiceFactory.ts +63 -52
  313. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
  314. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
  315. package/src/sap/fe/core/services/RoutingServiceFactory.js +56 -56
  316. package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
  317. package/src/sap/fe/core/services/ShellServicesFactory.js +93 -77
  318. package/src/sap/fe/core/services/ShellServicesFactory.ts +95 -82
  319. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +64 -64
  320. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
  321. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +232 -200
  322. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +145 -142
  323. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
  324. package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
  325. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
  326. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
  327. package/src/sap/fe/core/support/CommonHelper.js +3 -2
  328. package/src/sap/fe/core/support/CommonHelper.ts +9 -13
  329. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  330. package/src/sap/fe/core/support/Diagnostics.ts +5 -5
  331. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
  332. package/src/sap/fe/core/templating/CommonFormatters.js +85 -0
  333. package/src/sap/fe/core/templating/CommonFormatters.ts +90 -0
  334. package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
  335. package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
  336. package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
  337. package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
  338. package/src/sap/fe/core/templating/DataModelPathHelper.js +23 -15
  339. package/src/sap/fe/core/templating/DataModelPathHelper.ts +47 -34
  340. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  341. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
  342. package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
  343. package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
  344. package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
  345. package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
  346. package/src/sap/fe/core/templating/FilterHelper.js +18 -17
  347. package/src/sap/fe/core/templating/FilterHelper.ts +18 -18
  348. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  349. package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
  350. package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
  351. package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
  352. package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
  353. package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
  354. package/src/sap/fe/core/templating/UIFormatters.js +152 -95
  355. package/src/sap/fe/core/templating/UIFormatters.ts +202 -128
  356. package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
  357. package/src/sap/fe/core/type/Email.js +3 -3
  358. package/src/sap/fe/core/type/Email.ts +2 -2
  359. package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
@@ -11,7 +11,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/
11
11
 
12
12
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
13
13
 
14
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
14
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
15
15
 
16
16
  var CustomCommandExecution = (_dec = defineUI5Class("sap.fe.core.controls.CommandExecution"), _dec(_class = /*#__PURE__*/function (_CommandExecution) {
17
17
  _inheritsLoose(CustomCommandExecution, _CommandExecution);
@@ -23,9 +23,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/
23
23
  var _proto = CustomCommandExecution.prototype;
24
24
 
25
25
  _proto.setParent = function setParent(oParent) {
26
- var aExcludedSingleKey = ["escape"]; // eslint-disable-next-line @typescript-eslint/ban-ts-comment
26
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
27
27
  // @ts-ignore
28
-
29
28
  _CommandExecution.prototype.setParent.call(this, oParent);
30
29
 
31
30
  var aCommands = oParent.data("sap.ui.core.Shortcut");
@@ -34,26 +33,13 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/
34
33
  var oCommand = oParent.data("sap.ui.core.Shortcut")[aCommands.length - 1],
35
34
  oShortcut = oCommand.shortcutSpec;
36
35
 
37
- if (oShortcut && aExcludedSingleKey.indexOf(oShortcut.key) > -1) {
36
+ if (oShortcut) {
38
37
  // Check if single key shortcut
39
38
  for (var key in oShortcut) {
40
39
  if (oShortcut[key] && key !== "key") {
41
40
  return this;
42
41
  }
43
- } // Need to disable ShortCut when user press single shortcut key into an input
44
-
45
-
46
- oParent.addDelegate({
47
- "onkeydown": function (oEvent) {
48
- if (aExcludedSingleKey.indexOf(oEvent.key.toLowerCase()) > -1) {
49
- var sElement = oEvent.target ? oEvent.target.tagName.toLowerCase() : undefined;
50
-
51
- if (sElement === "input") {
52
- oEvent.setMarked();
53
- }
54
- }
55
- }
56
- }, true, undefined, true);
42
+ }
57
43
  }
58
44
 
59
45
  return this;
@@ -79,21 +65,21 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/
79
65
  _proto.setVisible = function setVisible(bValue) {
80
66
  var oCommand,
81
67
  oParentControl = this.getParent(),
82
- oComponent = Component.getOwnerComponentFor(this.getParent());
68
+ oComponent;
83
69
 
84
- while (!oComponent && oParentControl && oParentControl.getParent()) {
70
+ while (!oComponent && oParentControl) {
85
71
  oComponent = Component.getOwnerComponentFor(oParentControl);
86
72
  oParentControl = oParentControl.getParent();
87
73
  }
88
74
 
89
75
  if (oComponent) {
90
76
  oCommand = oComponent.getCommand(this.getCommand());
91
- }
92
77
 
93
- if (oCommand) {
94
- _CommandExecution.prototype.setVisible.call(this, bValue);
95
- } else {
96
- Log.info("There is no shortcut definition registered in the manifest for the command : " + this.getCommand());
78
+ if (oCommand) {
79
+ _CommandExecution.prototype.setVisible.call(this, bValue);
80
+ } else {
81
+ Log.info("There is no shortcut definition registered in the manifest for the command : " + this.getCommand());
82
+ }
97
83
  }
98
84
 
99
85
  return this;
@@ -103,4 +89,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/
103
89
  }(CommandExecution)) || _class);
104
90
  return CustomCommandExecution;
105
91
  }, false);
106
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbW1hbmRFeGVjdXRpb24udHMiXSwibmFtZXMiOlsiQ3VzdG9tQ29tbWFuZEV4ZWN1dGlvbiIsImRlZmluZVVJNUNsYXNzIiwic2V0UGFyZW50Iiwib1BhcmVudCIsImFFeGNsdWRlZFNpbmdsZUtleSIsImFDb21tYW5kcyIsImRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJvQ29tbWFuZCIsIm9TaG9ydGN1dCIsInNob3J0Y3V0U3BlYyIsImluZGV4T2YiLCJrZXkiLCJhZGREZWxlZ2F0ZSIsIm9FdmVudCIsInRvTG93ZXJDYXNlIiwic0VsZW1lbnQiLCJ0YXJnZXQiLCJ0YWdOYW1lIiwidW5kZWZpbmVkIiwic2V0TWFya2VkIiwiZGVzdHJveSIsImJTdXBwcmVzc0ludmFsaWRhdGUiLCJnZXRQYXJlbnQiLCJfZ2V0Q29tbWFuZEluZm8iLCJTaG9ydGN1dCIsInVucmVnaXN0ZXIiLCJzaG9ydGN1dCIsIl9jbGVhbnVwQ29udGV4dCIsIkVsZW1lbnQiLCJwcm90b3R5cGUiLCJhcHBseSIsInNldFZpc2libGUiLCJiVmFsdWUiLCJvUGFyZW50Q29udHJvbCIsIm9Db21wb25lbnQiLCJDb21wb25lbnQiLCJnZXRPd25lckNvbXBvbmVudEZvciIsImdldENvbW1hbmQiLCJMb2ciLCJpbmZvIiwiQ29tbWFuZEV4ZWN1dGlvbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O01BTU1BLHNCLFdBRExDLGNBQWMsQ0FBQyx1Q0FBRCxDOzs7Ozs7Ozs7V0FFZEMsUyxHQUFBLG1CQUFVQyxPQUFWLEVBQXdCO0FBQ3ZCLFVBQU1DLGtCQUFrQixHQUFHLENBQUMsUUFBRCxDQUEzQixDQUR1QixDQUV2QjtBQUNBOztBQUNBLGtDQUFNRixTQUFOLFlBQWdCQyxPQUFoQjs7QUFDQSxVQUFNRSxTQUFTLEdBQUdGLE9BQU8sQ0FBQ0csSUFBUixDQUFhLHNCQUFiLENBQWxCOztBQUNBLFVBQUlDLEtBQUssQ0FBQ0MsT0FBTixDQUFjSCxT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LGdCO1NBd0V0QjNDLHNCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbWFuZEV4ZWN1dGlvbiBmcm9tIFwic2FwL3VpL2NvcmUvQ29tbWFuZEV4ZWN1dGlvblwiO1xuaW1wb3J0IENvbXBvbmVudCBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50XCI7XG5pbXBvcnQgRWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IFNob3J0Y3V0IGZyb20gXCJzYXAvdWkvY29yZS9TaG9ydGN1dFwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5Db21tYW5kRXhlY3V0aW9uXCIpXG5jbGFzcyBDdXN0b21Db21tYW5kRXhlY3V0aW9uIGV4dGVuZHMgQ29tbWFuZEV4ZWN1dGlvbiB7XG5cdHNldFBhcmVudChvUGFyZW50OiBhbnkpIHtcblx0XHRjb25zdCBhRXhjbHVkZWRTaW5nbGVLZXkgPSBbXCJlc2NhcGVcIl07XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRzdXBlci5zZXRQYXJlbnQob1BhcmVudCk7XG5cdFx0Y29uc3QgYUNvbW1hbmRzID0gb1BhcmVudC5kYXRhKFwic2FwLnVpLmNvcmUuU2hvcnRjdXRcIik7XG5cdFx0aWYgKEFycmF5LmlzQXJyYXkoYUNvbW1hbmRzKSAmJiBhQ29tbWFuZHMubGVuZ3RoID4gMCkge1xuXHRcdFx0Y29uc3Qgb0NvbW1hbmQgPSBvUGFyZW50LmRhdGEoXCJzYXAudWkuY29yZS5TaG9ydGN1dFwiKVthQ29tbWFuZHMubGVuZ3RoIC0gMV0sXG5cdFx0XHRcdG9TaG9ydGN1dCA9IG9Db21tYW5kLnNob3J0Y3V0U3BlYztcblx0XHRcdGlmIChvU2hvcnRjdXQgJiYgYUV4Y2x1ZGVkU2luZ2xlS2V5LmluZGV4T2Yob1Nob3J0Y3V0LmtleSkgPiAtMSkge1xuXHRcdFx0XHQvLyBDaGVjayBpZiBzaW5nbGUga2V5IHNob3J0Y3V0XG5cdFx0XHRcdGZvciAoY29uc3Qga2V5IGluIG9TaG9ydGN1dCkge1xuXHRcdFx0XHRcdGlmIChvU2hvcnRjdXRba2V5XSAmJiBrZXkgIT09IFwia2V5XCIpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBOZWVkIHRvIGRpc2FibGUgU2hvcnRDdXQgd2hlbiB1c2VyIHByZXNzIHNpbmdsZSBzaG9ydGN1dCBrZXkgaW50byBhbiBpbnB1dFxuXHRcdFx0XHRvUGFyZW50LmFkZERlbGVnYXRlKFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwib25rZXlkb3duXCI6IGZ1bmN0aW9uIChvRXZlbnQ6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRpZiAoYUV4Y2x1ZGVkU2luZ2xlS2V5LmluZGV4T2Yob0V2ZW50LmtleS50b0xvd2VyQ2FzZSgpKSA+IC0xKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgc0VsZW1lbnQgPSBvRXZlbnQudGFyZ2V0ID8gb0V2ZW50LnRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgOiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHNFbGVtZW50ID09PSBcImlucHV0XCIpIHtcblx0XHRcdFx0XHRcdFx0XHRcdG9FdmVudC5zZXRNYXJrZWQoKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHRydWUsXG5cdFx0XHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0XHRcdHRydWVcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0fVxuXG5cdGRlc3Ryb3koYlN1cHByZXNzSW52YWxpZGF0ZTogYm9vbGVhbikge1xuXHRcdGNvbnN0IG9QYXJlbnQgPSB0aGlzLmdldFBhcmVudCgpO1xuXHRcdGlmIChvUGFyZW50KSB7XG5cdFx0XHRjb25zdCBvQ29tbWFuZCA9IHRoaXMuX2dldENvbW1hbmRJbmZvKCk7XG5cdFx0XHRpZiAob0NvbW1hbmQpIHtcblx0XHRcdFx0U2hvcnRjdXQudW5yZWdpc3Rlcih0aGlzLmdldFBhcmVudCgpLCBvQ29tbWFuZC5zaG9ydGN1dCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9jbGVhbnVwQ29udGV4dChvUGFyZW50KTtcblx0XHR9XG5cdFx0RWxlbWVudC5wcm90b3R5cGUuZGVzdHJveS5hcHBseSh0aGlzLCBbYlN1cHByZXNzSW52YWxpZGF0ZV0pO1xuXHR9XG5cdHNldFZpc2libGUoYlZhbHVlOiBib29sZWFuKSB7XG5cdFx0bGV0IG9Db21tYW5kLFxuXHRcdFx0b1BhcmVudENvbnRyb2wgPSB0aGlzLmdldFBhcmVudCgpLFxuXHRcdFx0b0NvbXBvbmVudDogYW55ID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKHRoaXMuZ2V0UGFyZW50KCkpO1xuXHRcdHdoaWxlICghb0NvbXBvbmVudCAmJiBvUGFyZW50Q29udHJvbCAmJiBvUGFyZW50Q29udHJvbC5nZXRQYXJlbnQoKSkge1xuXHRcdFx0b0NvbXBvbmVudCA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcihvUGFyZW50Q29udHJvbCk7XG5cdFx0XHRvUGFyZW50Q29udHJvbCA9IG9QYXJlbnRDb250cm9sLmdldFBhcmVudCgpO1xuXHRcdH1cblx0XHRpZiAob0NvbXBvbmVudCkge1xuXHRcdFx0b0NvbW1hbmQgPSBvQ29tcG9uZW50LmdldENvbW1hbmQodGhpcy5nZXRDb21tYW5kKCkpO1xuXHRcdH1cblx0XHRpZiAob0NvbW1hbmQpIHtcblx0XHRcdHN1cGVyLnNldFZpc2libGUoYlZhbHVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0TG9nLmluZm8oXCJUaGVyZSBpcyBubyBzaG9ydGN1dCBkZWZpbml0aW9uIHJlZ2lzdGVyZWQgaW4gdGhlIG1hbmlmZXN0IGZvciB0aGUgY29tbWFuZCA6IFwiICsgdGhpcy5nZXRDb21tYW5kKCkpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxufVxuaW50ZXJmYWNlIEN1c3RvbUNvbW1hbmRFeGVjdXRpb24ge1xuXHRfZ2V0Q29tbWFuZEluZm8oKTogYW55O1xuXHRfY2xlYW51cENvbnRleHQob1BhcmVudDogYW55KTogdm9pZDtcbn1cbmV4cG9ydCBkZWZhdWx0IEN1c3RvbUNvbW1hbmRFeGVjdXRpb247XG4iXX0=
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDdXN0b21Db21tYW5kRXhlY3V0aW9uIiwiZGVmaW5lVUk1Q2xhc3MiLCJzZXRQYXJlbnQiLCJvUGFyZW50IiwiYUNvbW1hbmRzIiwiZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIm9Db21tYW5kIiwib1Nob3J0Y3V0Iiwic2hvcnRjdXRTcGVjIiwia2V5IiwiZGVzdHJveSIsImJTdXBwcmVzc0ludmFsaWRhdGUiLCJnZXRQYXJlbnQiLCJfZ2V0Q29tbWFuZEluZm8iLCJTaG9ydGN1dCIsInVucmVnaXN0ZXIiLCJzaG9ydGN1dCIsIl9jbGVhbnVwQ29udGV4dCIsIkVsZW1lbnQiLCJwcm90b3R5cGUiLCJhcHBseSIsInNldFZpc2libGUiLCJiVmFsdWUiLCJvUGFyZW50Q29udHJvbCIsIm9Db21wb25lbnQiLCJDb21wb25lbnQiLCJnZXRPd25lckNvbXBvbmVudEZvciIsImdldENvbW1hbmQiLCJMb2ciLCJpbmZvIiwiQ29tbWFuZEV4ZWN1dGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29tbWFuZEV4ZWN1dGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbWFuZEV4ZWN1dGlvbiBmcm9tIFwic2FwL3VpL2NvcmUvQ29tbWFuZEV4ZWN1dGlvblwiO1xuaW1wb3J0IENvbXBvbmVudCBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50XCI7XG5pbXBvcnQgRWxlbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRWxlbWVudFwiO1xuaW1wb3J0IFNob3J0Y3V0IGZyb20gXCJzYXAvdWkvY29yZS9TaG9ydGN1dFwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5Db21tYW5kRXhlY3V0aW9uXCIpXG5jbGFzcyBDdXN0b21Db21tYW5kRXhlY3V0aW9uIGV4dGVuZHMgQ29tbWFuZEV4ZWN1dGlvbiB7XG5cdHNldFBhcmVudChvUGFyZW50OiBhbnkpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHN1cGVyLnNldFBhcmVudChvUGFyZW50KTtcblx0XHRjb25zdCBhQ29tbWFuZHMgPSBvUGFyZW50LmRhdGEoXCJzYXAudWkuY29yZS5TaG9ydGN1dFwiKTtcblx0XHRpZiAoQXJyYXkuaXNBcnJheShhQ29tbWFuZHMpICYmIGFDb21tYW5kcy5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBvQ29tbWFuZCA9IG9QYXJlbnQuZGF0YShcInNhcC51aS5jb3JlLlNob3J0Y3V0XCIpW2FDb21tYW5kcy5sZW5ndGggLSAxXSxcblx0XHRcdFx0b1Nob3J0Y3V0ID0gb0NvbW1hbmQuc2hvcnRjdXRTcGVjO1xuXHRcdFx0aWYgKG9TaG9ydGN1dCkge1xuXHRcdFx0XHQvLyBDaGVjayBpZiBzaW5nbGUga2V5IHNob3J0Y3V0XG5cdFx0XHRcdGZvciAoY29uc3Qga2V5IGluIG9TaG9ydGN1dCkge1xuXHRcdFx0XHRcdGlmIChvU2hvcnRjdXRba2V5XSAmJiBrZXkgIT09IFwia2V5XCIpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0fVxuXHR9XG5cblx0ZGVzdHJveShiU3VwcHJlc3NJbnZhbGlkYXRlOiBib29sZWFuKSB7XG5cdFx0Y29uc3Qgb1BhcmVudCA9IHRoaXMuZ2V0UGFyZW50KCk7XG5cdFx0aWYgKG9QYXJlbnQpIHtcblx0XHRcdGNvbnN0IG9Db21tYW5kID0gdGhpcy5fZ2V0Q29tbWFuZEluZm8oKTtcblx0XHRcdGlmIChvQ29tbWFuZCkge1xuXHRcdFx0XHRTaG9ydGN1dC51bnJlZ2lzdGVyKHRoaXMuZ2V0UGFyZW50KCksIG9Db21tYW5kLnNob3J0Y3V0KTtcblx0XHRcdH1cblx0XHRcdHRoaXMuX2NsZWFudXBDb250ZXh0KG9QYXJlbnQpO1xuXHRcdH1cblx0XHRFbGVtZW50LnByb3RvdHlwZS5kZXN0cm95LmFwcGx5KHRoaXMsIFtiU3VwcHJlc3NJbnZhbGlkYXRlXSk7XG5cdH1cblx0c2V0VmlzaWJsZShiVmFsdWU6IGJvb2xlYW4pIHtcblx0XHRsZXQgb0NvbW1hbmQsXG5cdFx0XHRvUGFyZW50Q29udHJvbCA9IHRoaXMuZ2V0UGFyZW50KCksXG5cdFx0XHRvQ29tcG9uZW50OiBhbnk7XG5cblx0XHR3aGlsZSAoIW9Db21wb25lbnQgJiYgb1BhcmVudENvbnRyb2wpIHtcblx0XHRcdG9Db21wb25lbnQgPSBDb21wb25lbnQuZ2V0T3duZXJDb21wb25lbnRGb3Iob1BhcmVudENvbnRyb2wpO1xuXHRcdFx0b1BhcmVudENvbnRyb2wgPSBvUGFyZW50Q29udHJvbC5nZXRQYXJlbnQoKTtcblx0XHR9XG5cblx0XHRpZiAob0NvbXBvbmVudCkge1xuXHRcdFx0b0NvbW1hbmQgPSBvQ29tcG9uZW50LmdldENvbW1hbmQodGhpcy5nZXRDb21tYW5kKCkpO1xuXG5cdFx0XHRpZiAob0NvbW1hbmQpIHtcblx0XHRcdFx0c3VwZXIuc2V0VmlzaWJsZShiVmFsdWUpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0TG9nLmluZm8oXCJUaGVyZSBpcyBubyBzaG9ydGN1dCBkZWZpbml0aW9uIHJlZ2lzdGVyZWQgaW4gdGhlIG1hbmlmZXN0IGZvciB0aGUgY29tbWFuZCA6IFwiICsgdGhpcy5nZXRDb21tYW5kKCkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gdGhpcztcblx0fVxufVxuaW50ZXJmYWNlIEN1c3RvbUNvbW1hbmRFeGVjdXRpb24ge1xuXHRfZ2V0Q29tbWFuZEluZm8oKTogYW55O1xuXHRfY2xlYW51cENvbnRleHQob1BhcmVudDogYW55KTogdm9pZDtcbn1cbmV4cG9y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
@@ -8,7 +8,6 @@ import Shortcut from "sap/ui/core/Shortcut";
8
8
  @defineUI5Class("sap.fe.core.controls.CommandExecution")
9
9
  class CustomCommandExecution extends CommandExecution {
10
10
  setParent(oParent: any) {
11
- const aExcludedSingleKey = ["escape"];
12
11
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
12
  // @ts-ignore
14
13
  super.setParent(oParent);
@@ -16,29 +15,13 @@ class CustomCommandExecution extends CommandExecution {
16
15
  if (Array.isArray(aCommands) && aCommands.length > 0) {
17
16
  const oCommand = oParent.data("sap.ui.core.Shortcut")[aCommands.length - 1],
18
17
  oShortcut = oCommand.shortcutSpec;
19
- if (oShortcut && aExcludedSingleKey.indexOf(oShortcut.key) > -1) {
18
+ if (oShortcut) {
20
19
  // Check if single key shortcut
21
20
  for (const key in oShortcut) {
22
21
  if (oShortcut[key] && key !== "key") {
23
22
  return this;
24
23
  }
25
24
  }
26
- // Need to disable ShortCut when user press single shortcut key into an input
27
- oParent.addDelegate(
28
- {
29
- "onkeydown": function (oEvent: any) {
30
- if (aExcludedSingleKey.indexOf(oEvent.key.toLowerCase()) > -1) {
31
- const sElement = oEvent.target ? oEvent.target.tagName.toLowerCase() : undefined;
32
- if (sElement === "input") {
33
- oEvent.setMarked();
34
- }
35
- }
36
- }
37
- },
38
- true,
39
- undefined,
40
- true
41
- );
42
25
  }
43
26
  return this;
44
27
  }
@@ -58,18 +41,21 @@ class CustomCommandExecution extends CommandExecution {
58
41
  setVisible(bValue: boolean) {
59
42
  let oCommand,
60
43
  oParentControl = this.getParent(),
61
- oComponent: any = Component.getOwnerComponentFor(this.getParent());
62
- while (!oComponent && oParentControl && oParentControl.getParent()) {
44
+ oComponent: any;
45
+
46
+ while (!oComponent && oParentControl) {
63
47
  oComponent = Component.getOwnerComponentFor(oParentControl);
64
48
  oParentControl = oParentControl.getParent();
65
49
  }
50
+
66
51
  if (oComponent) {
67
52
  oCommand = oComponent.getCommand(this.getCommand());
68
- }
69
- if (oCommand) {
70
- super.setVisible(bValue);
71
- } else {
72
- Log.info("There is no shortcut definition registered in the manifest for the command : " + this.getCommand());
53
+
54
+ if (oCommand) {
55
+ super.setVisible(bValue);
56
+ } else {
57
+ Log.info("There is no shortcut definition registered in the manifest for the command : " + this.getCommand());
58
+ }
73
59
  }
74
60
  return this;
75
61
  }
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/ui/core/Control", "sap/fe/core/helpers/ClassSupport"], function (Control, ClassSupport) {
5
+ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/ui/core/Control"], function (ClassSupport, Control) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;
@@ -19,7 +19,7 @@ sap.ui.define(["sap/ui/core/Control", "sap/fe/core/helpers/ClassSupport"], funct
19
19
 
20
20
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
21
21
 
22
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
22
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
23
23
 
24
24
  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
25
25
 
@@ -165,4 +165,4 @@ sap.ui.define(["sap/ui/core/Control", "sap/fe/core/helpers/ClassSupport"], funct
165
165
  })), _class2)) || _class);
166
166
  return ConditionalWrapper;
167
167
  }, false);
168
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNvbmRpdGlvbmFsV3JhcHBlci50cyJdLCJuYW1lcyI6WyJDb25kaXRpb25hbFdyYXBwZXIiLCJkZWZpbmVVSTVDbGFzcyIsImltcGxlbWVudEludGVyZmFjZSIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImFzc29jaWF0aW9uIiwibXVsdGlwbGUiLCJzaW5ndWxhck5hbWUiLCJhZ2dyZWdhdGlvbiIsImlzRGVmYXVsdCIsImVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUiLCJvRWxlbWVudCIsIm1BcmlhUHJvcHMiLCJvUGFyZW50IiwiZ2V0UGFyZW50IiwiX3NldEFyaWFMYWJlbGxlZEJ5Iiwib0NvbnRlbnQiLCJhZGRBcmlhTGFiZWxsZWRCeSIsImFBcmlhTGFiZWxsZWRCeSIsImFyaWFMYWJlbGxlZEJ5IiwiaSIsImxlbmd0aCIsInNJZCIsImFBcmlhTGFiZWxsZWRCeXMiLCJnZXRBcmlhTGFiZWxsZWRCeSIsImluZGV4T2YiLCJvbkJlZm9yZVJlbmRlcmluZyIsImNvbnRlbnRUcnVlIiwiY29udGVudEZhbHNlIiwicmVuZGVyIiwib1JtIiwib0NvbnRyb2wiLCJvcGVuU3RhcnQiLCJzdHlsZSIsIndpZHRoIiwib3BlbkVuZCIsImNvbmRpdGlvbiIsInJlbmRlckNvbnRyb2wiLCJjbG9zZSIsIkNvbnRyb2wiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUlNQSxrQixXQURMQyxjQUFjLENBQUMseUNBQUQsQyxVQUViQyxrQkFBa0IsQ0FBQywwQkFBRCxDLFVBR2xCQyxRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLHFCQUFSO0FBQStCQyxJQUFBQSxZQUFZLEVBQUU7QUFBN0MsR0FBRCxDLFVBR1JGLFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUUsU0FBUjtBQUFtQkMsSUFBQUEsWUFBWSxFQUFFO0FBQWpDLEdBQUQsQyxVQUdSRixRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLFNBQVI7QUFBbUJDLElBQUFBLFlBQVksRUFBRTtBQUFqQyxHQUFELEMsVUFNUkMsV0FBVyxDQUFDO0FBQUVGLElBQUFBLElBQUksRUFBRSxxQkFBUjtBQUErQkcsSUFBQUEsUUFBUSxFQUFFLElBQXpDO0FBQStDQyxJQUFBQSxZQUFZLEVBQUU7QUFBN0QsR0FBRCxDLFVBR1hDLFdBQVcsQ0FBQztBQUFFTCxJQUFBQSxJQUFJLEVBQUUscUJBQVI7QUFBK0JHLElBQUFBLFFBQVEsRUFBRSxLQUF6QztBQUFnREcsSUFBQUEsU0FBUyxFQUFFO0FBQTNELEdBQUQsQyxVQUdYRCxXQUFXLENBQUM7QUFBRUwsSUFBQUEsSUFBSSxFQUFFLHFCQUFSO0FBQStCRyxJQUFBQSxRQUFRLEVBQUU7QUFBekMsR0FBRCxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBR1pJLHlCLEdBQUEsbUNBQTBCQyxRQUExQixFQUF5Q0MsVUFBekMsRUFBMEQ7QUFDekQsVUFBTUMsT0FBTyxHQUFHLEtBQUtDLFNBQUwsRUFBaEI7O0FBRUEsVUFBSUQsT0FBTyxJQUFJQSxPQUFPLENBQUNILHlCQUF2QixFQUFrRDtBQUNqREcsUUFBQUEsT0FBTyxDQUFDSCx5QkFBUixDQUFrQyxJQUFsQyxFQUF3Q0UsVUFBeEM7QUFDQTs7QUFFRCxhQUFPQSxVQUFQO0FBQ0EsSzs7V0FDREcsa0IsR0FBQSw0QkFBbUJDLFFBQW5CLEVBQWtDO0FBQ2pDLFVBQUlBLFFBQVEsSUFBSUEsUUFBUSxDQUFDQyxpQkFBekIsRUFBNEM7QUFDM0MsWUFBTUMsZUFBZSxHQUFHLEtBQUtDLGNBQTdCOztBQUVBLGFBQUssSUFBSUMsQ0FBQyxHQUFHLENBQWIsRUFBZ0JBLENBQUMsR0FBR0YsZUFBZSxDQUFDRyxNQUFwQyxFQUE0Q0QsQ0FBQyxFQUE3QyxFQUFpRDtBQUNoRCxjQUFNRSxHQUFHLEdBQUdKLGVBQWUsQ0FBQ0UsQ0FBRCxDQUEzQjtBQUNBLGNBQU1HLGdCQUFnQixHQUFHUCxRQUFRLENBQUNRLGlCQUFULE1BQWdDLEVBQXpEOztBQUNBLGNBQUlELGdCQUFnQixDQUFDRSxPQUFqQixDQUF5QkgsR0FBekIsTUFBa0MsQ0FBQyxDQUF2QyxFQUEwQztBQUN6Q04sWUFBQUEsUUFBUSxDQUFDQyxpQkFBVCxDQUEyQkssR0FBM0I7QUFDQTtBQUNEO0FBQ0Q7QUFDRCxLOztXQUNESSxpQixHQUFBLDZCQUFvQjtBQUNuQjtBQUNBO0FBQ0EsV0FBS1gsa0JBQUwsQ0FBd0IsS0FBS1ksV0FBN0I7O0FBQ0EsV0FBS1osa0JBQUwsQ0FBd0IsS0FBS2EsWUFBN0I7QUFDQSxLOzt1QkFDTUMsTSxHQUFQLGdCQUFjQyxHQUFkLEVBQWtDQyxRQUFsQyxFQUFnRTtBQUMvREQsTUFBQUEsR0FBRyxDQUFDRSxTQUFKLENBQWMsS0FBZCxFQUFxQkQsUUFBckI7QUFDQUQsTUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsT0FBVixFQUFtQkYsUUFBUSxDQUFDRyxLQUE1QjtBQUNBSixNQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxTQUFWLEVBQXFCLGNBQXJCO0FBQ0FILE1BQUFBLEdBQUcsQ0FBQ0ssT0FBSjs7QUFDQSxVQUFJSixRQUFRLENBQUNLLFNBQWIsRUFBd0I7QUFDdkJOLFFBQUFBLEdBQUcsQ0FBQ08sYUFBSixDQUFrQk4sUUFBUSxDQUFDSixXQUEzQjtBQUNBLE9BRkQsTUFFTztBQUNORyxRQUFBQSxHQUFHLENBQUNPLGFBQUosQ0FBa0JOLFFBQVEsQ0FBQ0gsWUFBM0I7QUFDQTs7QUFDREUsTUFBQUEsR0FBRyxDQUFDUSxLQUFKLENBQVUsS0FBVixFQVYrRCxDQVU3QztBQUNsQixLOzs7SUFoRStCQyxPOzs7OzthQUVrQixJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FpRXBDeEMsa0IiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBpbXBsZW1lbnRJbnRlcmZhY2UsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBDU1NTaXplLCBJRm9ybUNvbnRlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbHMuQ29uZGl0aW9uYWxXcmFwcGVyXCIpXG5jbGFzcyBDb25kaXRpb25hbFdyYXBwZXIgZXh0ZW5kcyBDb250cm9sIGltcGxlbWVudHMgSUZvcm1Db250ZW50IHtcblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC51aS5jb3JlLklGb3JtQ29udGVudFwiKVxuXHRfX2ltcGxlbWVudHNfX3NhcF91aV9jb3JlX0lGb3JtQ29udGVudDogYm9vbGVhbiA9IHRydWU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5DU1NTaXplXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHR3aWR0aCE6IENTU1NpemU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0Zm9ybURvTm90QWRqdXN0V2lkdGghOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGNvbmRpdGlvbiE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIEFzc29jaWF0aW9uIHRvIGNvbnRyb2xzIC8gSURzIHRoYXQgbGFiZWwgdGhpcyBjb250cm9sIChzZWUgV0FJLUFSSUEgYXR0cmlidXRlIGFyaWEtbGFiZWxsZWRieSkuXG5cdCAqL1xuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUsIHNpbmd1bGFyTmFtZTogXCJhcmlhTGFiZWxsZWRCeVwiIH0pXG5cdGFyaWFMYWJlbGxlZEJ5ITogQ29udHJvbFtdO1xuXG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogZmFsc2UsIGlzRGVmYXVsdDogdHJ1ZSB9KVxuXHRjb250ZW50VHJ1ZSE6IENvbnRyb2w7XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiBmYWxzZSB9KVxuXHRjb250ZW50RmFsc2UhOiBDb250cm9sO1xuXG5cdGVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUob0VsZW1lbnQ6IGFueSwgbUFyaWFQcm9wczogYW55KSB7XG5cdFx0Y29uc3Qgb1BhcmVudCA9IHRoaXMuZ2V0UGFyZW50KCkgYXMgYW55O1xuXG5cdFx0aWYgKG9QYXJlbnQgJiYgb1BhcmVudC5lbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKSB7XG5cdFx0XHRvUGFyZW50LmVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUodGhpcywgbUFyaWFQcm9wcyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1BcmlhUHJvcHM7XG5cdH1cblx0X3NldEFyaWFMYWJlbGxlZEJ5KG9Db250ZW50OiBhbnkpIHtcblx0XHRpZiAob0NvbnRlbnQgJiYgb0NvbnRlbnQuYWRkQXJpYUxhYmVsbGVkQnkpIHtcblx0XHRcdGNvbnN0IGFBcmlhTGFiZWxsZWRCeSA9IHRoaXMuYXJpYUxhYmVsbGVkQnk7XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUFyaWFMYWJlbGxlZEJ5Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IHNJZCA9IGFBcmlhTGFiZWxsZWRCeVtpXTtcblx0XHRcdFx0Y29uc3QgYUFyaWFMYWJlbGxlZEJ5cyA9IG9Db250ZW50LmdldEFyaWFMYWJlbGxlZEJ5KCkgfHwgW107XG5cdFx0XHRcdGlmIChhQXJpYUxhYmVsbGVkQnlzLmluZGV4T2Yoc0lkKSA9PT0gLTEpIHtcblx0XHRcdFx0XHRvQ29udGVudC5hZGRBcmlhTGFiZWxsZWRCeShzSWQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cdG9uQmVmb3JlUmVuZGVyaW5nKCkge1xuXHRcdC8vIGJlZm9yZSBjYWxsaW5nIHRoZSByZW5kZXJlciBvZiB0aGUgQ29uZGl0aW9uYWxXcmFwcGVyIHBhcmVudCBjb250cm9sIG1heSBoYXZlIHNldCBhcmlhTGFiZWxsZWRCeVxuXHRcdC8vIHdlIGVuc3VyZSBpdCBpcyBwYXNzZWQgdG8gaXRzIGlubmVyIGNvbnRyb2xzXG5cdFx0dGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkodGhpcy5jb250ZW50VHJ1ZSk7XG5cdFx0dGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkodGhpcy5jb250ZW50RmFsc2UpO1xuXHR9XG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogQ29uZGl0aW9uYWxXcmFwcGVyKSB7XG5cdFx0b1JtLm9wZW5TdGFydChcImRpdlwiLCBvQ29udHJvbCk7XG5cdFx0b1JtLnN0eWxlKFwid2lkdGhcIiwgb0NvbnRyb2wud2lkdGgpO1xuXHRcdG9SbS5zdHlsZShcImRpc3BsYXlcIiwgXCJpbmxpbmUtYmxvY2tcIik7XG5cdFx0b1JtLm9wZW5FbmQoKTtcblx0XHRpZiAob0NvbnRyb2wuY29uZGl0aW9uKSB7XG5cdFx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50VHJ1ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnRGYWxzZSk7XG5cdFx0fVxuXHRcdG9SbS5jbG9zZShcImRpdlwiKTsgLy8gZW5kIG9mIHRoZSBjb21wbGV0ZSBDb250cm9sXG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29uZGl0aW9uYWxXcmFwcGVyO1xuIl19
168
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb25kaXRpb25hbFdyYXBwZXIiLCJkZWZpbmVVSTVDbGFzcyIsImltcGxlbWVudEludGVyZmFjZSIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImFzc29jaWF0aW9uIiwibXVsdGlwbGUiLCJzaW5ndWxhck5hbWUiLCJhZ2dyZWdhdGlvbiIsImlzRGVmYXVsdCIsImVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUiLCJvRWxlbWVudCIsIm1BcmlhUHJvcHMiLCJvUGFyZW50IiwiZ2V0UGFyZW50IiwiX3NldEFyaWFMYWJlbGxlZEJ5Iiwib0NvbnRlbnQiLCJhZGRBcmlhTGFiZWxsZWRCeSIsImFBcmlhTGFiZWxsZWRCeSIsImFyaWFMYWJlbGxlZEJ5IiwiaSIsImxlbmd0aCIsInNJZCIsImFBcmlhTGFiZWxsZWRCeXMiLCJnZXRBcmlhTGFiZWxsZWRCeSIsImluZGV4T2YiLCJvbkJlZm9yZVJlbmRlcmluZyIsImNvbnRlbnRUcnVlIiwiY29udGVudEZhbHNlIiwicmVuZGVyIiwib1JtIiwib0NvbnRyb2wiLCJvcGVuU3RhcnQiLCJzdHlsZSIsIndpZHRoIiwib3BlbkVuZCIsImNvbmRpdGlvbiIsInJlbmRlckNvbnRyb2wiLCJjbG9zZSIsIkNvbnRyb2wiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbmRpdGlvbmFsV3JhcHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBpbXBsZW1lbnRJbnRlcmZhY2UsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyBDU1NTaXplLCBJRm9ybUNvbnRlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5Db25kaXRpb25hbFdyYXBwZXJcIilcbmNsYXNzIENvbmRpdGlvbmFsV3JhcHBlciBleHRlbmRzIENvbnRyb2wgaW1wbGVtZW50cyBJRm9ybUNvbnRlbnQge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfSUZvcm1Db250ZW50OiBib29sZWFuID0gdHJ1ZTtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInNhcC51aS5jb3JlLkNTU1NpemVcIiwgZGVmYXVsdFZhbHVlOiBudWxsIH0pXG5cdHdpZHRoITogQ1NTU2l6ZTtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRmb3JtRG9Ob3RBZGp1c3RXaWR0aCE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0Y29uZGl0aW9uITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQXNzb2NpYXRpb24gdG8gY29udHJvbHMgLyBJRHMgdGhhdCBsYWJlbCB0aGlzIGNvbnRyb2wgKHNlZSBXQUktQVJJQSBhdHRyaWJ1dGUgYXJpYS1sYWJlbGxlZGJ5KS5cblx0ICovXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSwgc2luZ3VsYXJOYW1lOiBcImFyaWFMYWJlbGxlZEJ5XCIgfSlcblx0YXJpYUxhYmVsbGVkQnkhOiBDb250cm9sW107XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiBmYWxzZSwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGNvbnRlbnRUcnVlITogQ29udHJvbDtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlIH0pXG5cdGNvbnRlbnRGYWxzZSE6IENvbnRyb2w7XG5cblx0ZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZShvRWxlbWVudDogYW55LCBtQXJpYVByb3BzOiBhbnkpIHtcblx0XHRjb25zdCBvUGFyZW50ID0gdGhpcy5nZXRQYXJlbnQoKSBhcyBhbnk7XG5cblx0XHRpZiAob1BhcmVudCAmJiBvUGFyZW50LmVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUpIHtcblx0XHRcdG9QYXJlbnQuZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZSh0aGlzLCBtQXJpYVByb3BzKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gbUFyaWFQcm9wcztcblx0fVxuXHRfc2V0QXJpYUxhYmVsbGVkQnkob0NvbnRlbnQ6IGFueSkge1xuXHRcdGlmIChvQ29udGVudCAmJiBvQ29udGVudC5hZGRBcmlhTGFiZWxsZWRCeSkge1xuXHRcdFx0Y29uc3QgYUFyaWFMYWJlbGxlZEJ5ID0gdGhpcy5hcmlhTGFiZWxsZWRCeTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhQXJpYUxhYmVsbGVkQnkubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qgc0lkID0gYUFyaWFMYWJlbGxlZEJ5W2ldO1xuXHRcdFx0XHRjb25zdCBhQXJpYUxhYmVsbGVkQnlzID0gb0NvbnRlbnQuZ2V0QXJpYUxhYmVsbGVkQnkoKSB8fCBbXTtcblx0XHRcdFx0aWYgKGFBcmlhTGFiZWxsZWRCeXMuaW5kZXhPZihzSWQpID09PSAtMSkge1xuXHRcdFx0XHRcdG9Db250ZW50LmFkZEFyaWFMYWJlbGxlZEJ5KHNJZCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblx0b25CZWZvcmVSZW5kZXJpbmcoKSB7XG5cdFx0Ly8gYmVmb3JlIGNhbGxpbmcgdGhlIHJlbmRlcmVyIG9mIHRoZSBDb25kaXRpb25hbFdyYXBwZXIgcGFyZW50IGNvbnRyb2wgbWF5IGhhdmUgc2V0IGFyaWFMYWJlbGxlZEJ5XG5cdFx0Ly8gd2UgZW5zdXJlIGl0IGlzIHBhc3NlZCB0byBpdHMgaW5uZXIgY29udHJvbHNcblx0XHR0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSh0aGlzLmNvbnRlbnRUcnVlKTtcblx0XHR0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSh0aGlzLmNvbnRlbnRGYWxzZSk7XG5cdH1cblx0c3RhdGljIHJlbmRlcihvUm06IFJlbmRlck1hbmFnZXIsIG9Db250cm9sOiBDb25kaXRpb25hbFdyYXBwZXIpIHtcblx0XHRvUm0ub3BlblN0YXJ0KFwiZGl2XCIsIG9Db250cm9sKTtcblx0XHRvUm0uc3R5bGUoXCJ3aWR0aFwiLCBvQ29udHJvbC53aWR0aCk7XG5cdFx0b1JtLnN0eWxlKFwiZGlzcGxheVwiLCBcImlubGluZS1ibG9ja1wiKTtcblx0XHRvUm0ub3BlbkVuZCgpO1xuXHRcdGlmIChvQ29udHJvbC5jb25kaXRpb24pIHtcblx0XHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnRUcnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b1JtLnJlbmRlckNvbnRyb2wob0NvbnRyb2wuY29udGVudEZhbHNlKTtcblx0XHR9XG5cdFx0b1JtLmNsb3NlKFwiZGl2XCIpOyAvLyBlbmQgb2YgdGhlIGNvbXBsZXRlIENvbnRyb2xcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBDb25kaXRpb25hbFdyYXBwZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQU1NQSxrQixXQURMQyxjQUFjLENBQUMseUNBQUQsQyxVQUViQyxrQkFBa0IsQ0FBQywwQkFBRCxDLFVBR2xCQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLHFCQUFSO0lBQStCQyxZQUFZLEVBQUU7RUFBN0MsQ0FBRCxDLFVBR1JGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsU0FBUjtJ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
@@ -1,7 +1,7 @@
1
- import Control from "sap/ui/core/Control";
2
1
  import { aggregation, association, defineUI5Class, implementInterface, property } from "sap/fe/core/helpers/ClassSupport";
3
- import { CSSSize, IFormContent } from "sap/ui/core/library";
4
- import RenderManager from "sap/ui/core/RenderManager";
2
+ import Control from "sap/ui/core/Control";
3
+ import type { CSSSize, IFormContent } from "sap/ui/core/library";
4
+ import type RenderManager from "sap/ui/core/RenderManager";
5
5
 
6
6
  @defineUI5Class("sap.fe.core.controls.ConditionalWrapper")
7
7
  class ConditionalWrapper extends Control implements IFormContent {
@@ -5,7 +5,7 @@
5
5
  sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/SemanticDateOperators", "sap/ui/base/ManagedObjectObserver", "sap/ui/core/Control", "sap/ui/mdc/condition/Condition", "sap/ui/mdc/enum/ConditionValidated", "sap/ui/mdc/field/ConditionsType", "sap/ui/model/json/JSONModel"], function (ClassSupport, SemanticDateOperators, ManagedObjectObserver, Control, Condition, ConditionValidated, ConditionsType, JSONModel) {
6
6
  "use strict";
7
7
 
8
- var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _class3, _temp;
8
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _class3;
9
9
 
10
10
  var _exports = {};
11
11
  var property = ClassSupport.property;
@@ -20,7 +20,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
20
20
 
21
21
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
22
22
 
23
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
23
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
24
24
 
25
25
  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
26
26
 
@@ -48,7 +48,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
48
48
  type: "sap.ui.core.Control",
49
49
  multiple: false,
50
50
  isDefault: true
51
- }), _dec7 = event(), _dec(_class = (_class2 = (_temp = _class3 = /*#__PURE__*/function (_Control) {
51
+ }), _dec7 = event(), _dec(_class = (_class2 = (_class3 = /*#__PURE__*/function (_Control) {
52
52
  _inheritsLoose(CustomFilterFieldContentWrapper, _Control);
53
53
 
54
54
  function CustomFilterFieldContentWrapper() {
@@ -89,10 +89,10 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
89
89
  /**
90
90
  * Maps an array of filter values to an array of conditions.
91
91
  *
92
- * @param {Array | string} filterValues Array of filter value bindings or a filter value string
93
- * @param {string} [operator] The operator to be used (optional) - if not set, the default operator (EQ) will be used
92
+ * @param filterValues Array of filter value bindings or a filter value string
93
+ * @param [operator] The operator to be used (optional) - if not set, the default operator (EQ) will be used
94
94
  * @private
95
- * @returns {Array} Array of filter conditions
95
+ * @returns Array of filter conditions
96
96
  */
97
97
  ;
98
98
 
@@ -116,7 +116,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
116
116
  };
117
117
  filterValues = filterValues.values;
118
118
  } else if (filterValues !== undefined && typeof filterValues !== "object" && typeof filterValues !== "string") {
119
- throw new Error("FilterUtils.js#_filterValuesToConditions: Unexpected type of input parameter vValues: " + typeof filterValues);
119
+ throw new Error("FilterUtils.js#_filterValuesToConditions: Unexpected type of input parameter vValues: ".concat(typeof filterValues));
120
120
  }
121
121
 
122
122
  var conditionsType = new ConditionsType(formatOptions);
@@ -139,10 +139,10 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
139
139
  /**
140
140
  * Maps an array of conditions to a comma separated list of filter values.
141
141
  *
142
- * @param {object[]} conditions Array of filter conditions
143
- * @param {object} formatOptions Format options that specifies a condition type
142
+ * @param conditions Array of filter conditions
143
+ * @param formatOptions Format options that specifies a condition type
144
144
  * @private
145
- * @returns {string} Concatenated string of filter values
145
+ * @returns Concatenated string of filter values
146
146
  */
147
147
  ;
148
148
 
@@ -157,7 +157,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
157
157
  /**
158
158
  * Listens to filter model changes and updates wrapper property "conditions".
159
159
  *
160
- * @param {object} changeEvent Event triggered by a filter model change
160
+ * @param changeEvent Event triggered by a filter model change
161
161
  * @private
162
162
  */
163
163
  ;
@@ -172,7 +172,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
172
172
  /**
173
173
  * Listens to "conditions" changes and updates the filter model.
174
174
  *
175
- * @param {object} conditions Event triggered by a "conditions" change
175
+ * @param conditions Event triggered by a "conditions" change
176
176
  * @private
177
177
  */
178
178
  ;
@@ -204,9 +204,9 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
204
204
  * Overrides {@link sap.ui.core.Control#clone Control.clone} to clone additional
205
205
  * internal states.
206
206
  *
207
- * @param {string} [sIdSuffix] A suffix to be appended to the cloned control id
208
- * @param {string[]} [aLocalIds] An array of local IDs within the cloned hierarchy (internally used)
209
- * @returns {CustomFilterFieldContentWrapper} Reference to the newly created clone
207
+ * @param [sIdSuffix] A suffix to be appended to the cloned control id
208
+ * @param [aLocalIds] An array of local IDs within the cloned hierarchy (internally used)
209
+ * @returns Reference to the newly created clone
210
210
  * @protected
211
211
  */
212
212
  ;
@@ -225,7 +225,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
225
225
  /**
226
226
  * Listens to property changes.
227
227
  *
228
- * @param {any} changes Property changes
228
+ * @param changes Property changes
229
229
  * @private
230
230
  */
231
231
  ;
@@ -238,7 +238,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
238
238
  /**
239
239
  * Gets the content of this wrapper control.
240
240
  *
241
- * @returns {sap.ui.core.Control} The wrapper content
241
+ * @returns The wrapper content
242
242
  * @private
243
243
  */
244
244
  ;
@@ -249,7 +249,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
249
249
  /**
250
250
  * Gets the value for control property 'conditions'.
251
251
  *
252
- * @returns {object[]} Array of filter conditions
252
+ * @returns Array of filter conditions
253
253
  * @private
254
254
  */
255
255
  ;
@@ -260,8 +260,8 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
260
260
  /**
261
261
  * Sets the value for control property 'conditions'.
262
262
  *
263
- * @param {object[]} [conditions] Array of filter conditions
264
- * @returns {CustomFilterFieldContentWrapper} Reference to this wrapper
263
+ * @param [conditions] Array of filter conditions
264
+ * @returns Reference to this wrapper
265
265
  * @private
266
266
  */
267
267
  ;
@@ -273,7 +273,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
273
273
  /**
274
274
  * Gets the filter model alias 'filterValues'.
275
275
  *
276
- * @returns {string} The filter model
276
+ * @returns The filter model
277
277
  * @private
278
278
  */
279
279
  ;
@@ -285,8 +285,8 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
285
285
  * Updates the property "conditions" with filter values
286
286
  * sent by ExtensionAPI#setFilterValues().
287
287
  *
288
- * @param {any} values The filter values
289
- * @param {string} [operator] The operator name
288
+ * @param values The filter values
289
+ * @param [operator] The operator name
290
290
  * @private
291
291
  */
292
292
  ;
@@ -300,7 +300,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
300
300
  * Updates filter model with conditions
301
301
  * sent by the {@link sap.ui.mdc.FilterField FilterField}.
302
302
  *
303
- * @param {Array} conditions Array of filter conditions
303
+ * @param conditions Array of filter conditions
304
304
  * @private
305
305
  */
306
306
  ;
@@ -332,7 +332,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
332
332
  };
333
333
 
334
334
  return CustomFilterFieldContentWrapper;
335
- }(Control), _class3.FILTER_MODEL_ALIAS = "filterValues", _temp), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "__implements__sap_ui_core_IFormContent", [_dec2], {
335
+ }(Control), _class3.FILTER_MODEL_ALIAS = "filterValues", _class3), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "__implements__sap_ui_core_IFormContent", [_dec2], {
336
336
  configurable: true,
337
337
  enumerable: true,
338
338
  writable: true,
@@ -368,4 +368,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/Semantic
368
368
  _exports = CustomFilterFieldContentWrapper;
369
369
  return _exports;
370
370
  }, false);
371
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIudHMiXSwibmFtZXMiOlsiQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlciIsImRlZmluZVVJNUNsYXNzIiwiaW1wbGVtZW50SW50ZXJmYWNlIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImV2ZW50IiwicmVuZGVyIiwicmVuZGVyTWFuYWdlciIsImNvbnRyb2wiLCJvcGVuU3RhcnQiLCJzdHlsZSIsIndpZHRoIiwib3BlbkVuZCIsInJlbmRlckNvbnRyb2wiLCJnZXRDb250ZW50IiwiY2xvc2UiLCJfZmlsdGVyVmFsdWVzVG9Db25kaXRpb25zIiwiZmlsdGVyVmFsdWVzIiwib3BlcmF0b3IiLCJmb3JtYXRPcHRpb25zIiwib3BlcmF0b3JzIiwiY29uZGl0aW9ucyIsImhhc093blByb3BlcnR5IiwidmFsdWVzIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJjb25kaXRpb25zVHlwZSIsIkNvbmRpdGlvbnNUeXBlIiwiY29uZGl0aW9uVmFsdWVzIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiU2VtYW50aWNEYXRlT3BlcmF0b3JzIiwiZ2V0U2VtYW50aWNEYXRlT3BlcmF0aW9ucyIsImluY2x1ZGVzIiwiQ29uZGl0aW9uIiwiY3JlYXRlQ29uZGl0aW9uIiwiQ29uZGl0aW9uVmFsaWRhdGVkIiwiTm90VmFsaWRhdGVkIiwibWFwIiwiY29uZGl0aW9uVmFsdWUiLCJzdHJpbmdWYWx1ZSIsInRvU3RyaW5nIiwicGFyc2VkQ29uZGl0aW9ucyIsInBhcnNlVmFsdWUiLCJmaWx0ZXIiLCJfY29uZGl0aW9uc1RvRmlsdGVyTW9kZWxTdHJpbmciLCJjb25kaXRpb24iLCJmb3JtYXRWYWx1ZSIsImpvaW4iLCJfaGFuZGxlRmlsdGVyTW9kZWxDaGFuZ2UiLCJjaGFuZ2VFdmVudCIsInByb3BlcnR5UGF0aCIsImdldE9iamVjdEJpbmRpbmciLCJnZXRQYXRoIiwiZ2V0U291cmNlIiwiZ2V0UHJvcGVydHkiLCJ1cGRhdGVDb25kaXRpb25zQnlGaWx0ZXJWYWx1ZXMiLCJfaGFuZGxlQ29uZGl0aW9uc0NoYW5nZSIsInVwZGF0ZUZpbHRlck1vZGVsQnlDb25kaXRpb25zIiwiaW5pdCIsIl9jb25kaXRpb25zT2JzZXJ2ZXIiLCJNYW5hZ2VkT2JqZWN0T2JzZXJ2ZXIiLCJfb2JzZXJ2ZUNoYW5nZXMiLCJiaW5kIiwib2JzZXJ2ZSIsInByb3BlcnRpZXMiLCJfZmlsdGVyTW9kZWwiLCJKU09OTW9kZWwiLCJhdHRhY2hQcm9wZXJ0eUNoYW5nZSIsInNldE1vZGVsIiwiRklMVEVSX01PREVMX0FMSUFTIiwiY2xvbmUiLCJzSWRTdWZmaXgiLCJhTG9jYWxJZHMiLCJjaGFuZ2VzIiwibmFtZSIsImN1cnJlbnQiLCJnZXRBZ2dyZWdhdGlvbiIsImdldENvbmRpdGlvbnMiLCJzZXRDb25kaXRpb25zIiwic2V0UHJvcGVydHkiLCJnZXRGaWx0ZXJNb2RlbEFsaWFzIiwiZ2V0QmluZGluZ0NvbnRleHQiLCJnZXRBY2Nlc3NpYmlsaXR5SW5mbyIsImNvbnRlbnQiLCJDb250cm9sIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BOEJxQkEsK0I7QUFUckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtTQUNDQyxjQUFjLENBQUMsc0RBQUQsQyxVQUViQyxrQkFBa0IsQ0FBQywwQkFBRCxDLFVBSWxCQyxRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLHFCQUFSO0FBQStCQyxJQUFBQSxZQUFZLEVBQUU7QUFBN0MsR0FBRCxDLFVBR1JGLFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUUsU0FBUjtBQUFtQkMsSUFBQUEsWUFBWSxFQUFFO0FBQWpDLEdBQUQsQyxVQUdSRixRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLFVBQVI7QUFBb0JDLElBQUFBLFlB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QVEsS0FBSyxFQUFiLEdBQWtCO0FBQUVFLFFBQUFBLFNBQVMsRUFBRSxDQUFDRixRQUFEO0FBQWIsT0FBbEIsR0FBOEM7QUFBRUUsUUFBQUEsU0FBUyxFQUFFO0FBQWIsT0FBdkY7O0FBQ0EsVUFBSSxLQUFLK0QsaUJBQUwsQ0FBdUJ2RiwrQkFBK0IsQ0FBQzJFLGtCQUF2RCxDQUFKLEVBQWdGO0FBQUE7O0FBQy9FLFlBQU05QixXQUFXLEdBQUc3QywrQkFBK0IsQ0FBQ2tELDhCQUFoQyxDQUErRHpCLFVBQS9ELEVBQTJFRixhQUEzRSxDQUFwQjs7QUFDQSxhQUFLZ0QsWUFBTCxDQUFrQmMsV0FBbEIsMEJBQ0MsS0FBS0UsaUJBQUwsQ0FBdUJ2RiwrQkFBK0IsQ0FBQzJFLGtCQUF2RCxDQURELDBEQUNDLHNCQUE0RWpCLE9BQTVFLEVBREQsRUFFQ2IsV0FGRDtBQUlBO0FBQ0QsSzs7V0FFRDJDLG9CLEdBQUEsZ0NBQTRCO0FBQUE7O0FBQzNCLFVBQU1DLE9BQU8sR0FBRyxLQUFLdkUsVUFBTCxFQUFoQjtBQUNBLGFBQU8sQ0FBQXVFLE9BQU8sU0FBUCxJQUFBQSxPQUFPLFdBQVAscUNBQUFBLE9BQU8sQ0FBRUQsb0JBQVQscUZBQUFDLE9BQU8sTUFBOEIsRUFBNUM7QUFDQSxLOzs7SUF4UDJEQyxPLFdBeUJwQ2Ysa0IsR0FBcUIsYzs7Ozs7YUF0QkosSSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiAke2NvcHlyaWdodH1cbiAqL1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGRlZmluZVVJNUNsYXNzLCBldmVudCwgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IFNlbWFudGljRGF0ZU9wZXJhdG9ycyBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TZW1hbnRpY0RhdGVPcGVyYXRvcnNcIjtcbmltcG9ydCBNYW5hZ2VkT2JqZWN0T2JzZXJ2ZXIgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RPYnNlcnZlclwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjsgLy9pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL21kYy9maWVsZC9GaWVsZEJhc2VcIjtcbmltcG9ydCB7IElGb3JtQ29udGVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuaW1wb3J0IENvbmRpdGlvbiwgeyBDb25kaXRpb25PYmplY3QgfSBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgQ29uZGl0aW9uVmFsaWRhdGVkIGZyb20gXCJzYXAvdWkvbWRjL2VudW0vQ29uZGl0aW9uVmFsaWRhdGVkXCI7XG5pbXBvcnQgQ29uZGl0aW9uc1R5cGUgZnJvbSBcInNhcC91aS9tZGMvZmllbGQvQ29uZGl0aW9uc1R5cGVcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG4vKipcbiAqIFR5cGUgdXNlZCBmb3IgZm9ybWF0IG9wdGlvbnNcbiAqXG4gKiBAdHlwZWRlZiBGb3JtYXRPcHRpb25zVHlwZVxuICovXG50eXBlIEZvcm1hdE9wdGlvbnNUeXBlID0ge1xuXHRvcGVyYXRvcnM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBAY2xhc3NcbiAqIENyZWF0ZXMgYW4gPGNvZGU+c2FwLmZlLmNvcmUuY29udHJvbHMuQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlcjwvY29kZT4gb2JqZWN0LlxuICogVGhpcyBpcyB1c2VkIGluIHRoZSB7QGxpbmsgc2FwLnVpLm1kYy5GaWx0ZXJGaWVsZCBGaWx0ZXJGaWVsZH0gYXMgYSBmaWx0ZXIgY29udGVudC5cbiAqIEBleHRlbmRzIHNhcC51aS5jb3JlLkNvbnRyb2xcbiAqIEBwcml2YXRlXG4gKiBAYWxpYXMgc2FwLmZlLmNvcmUuY29udHJvbHMuQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlclxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5DdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyIGV4dGVuZHMgQ29udHJvbCBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuXHRfX2ltcGxlbWVudHNfX3NhcF91aV9jb3JlX0lGb3JtQ29udGVudCA9IHRydWU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5DU1NTaXplXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHR3aWR0aCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRmb3JtRG9Ob3RBZGp1c3RXaWR0aCE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RbXVwiLCBkZWZhdWx0VmFsdWU6IFtdIH0pXG5cdGNvbmRpdGlvbnMhOiBDb25kaXRpb25PYmplY3RbXTtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IENvbnRyb2w7XG5cblx0QGV2ZW50KClcblx0Y29uZGl0aW9uc0NoYW5nZSE6IEZ1bmN0aW9uO1xuXG5cdC8vIE5vdGU6IEZpZWxkQmFzZSBtaWdodCBiZSB1c2VkIGFzIGJhc2UgY29udHJvbCAoaW5zdGVhZCBvZiBDb250cm9sKSBpbiBhIGxhdGVyIHZlcnNpb247XG5cdC8vIGluIHRoYXQgY2FzZSwgeW91IHNob3VsZCBhZGQgYSAnY2hhbmdlJyBldmVudCBhbmQgYnViYmxlIGl0IHRvIHRoZSBjb3JyZXNwb25kaW5nIGhhbmRsZXJzXG5cblx0cHJpdmF0ZSBfZmlsdGVyTW9kZWw6IGFueTtcblx0cHJpdmF0ZSBfY29uZGl0aW9uc09ic2VydmVyOiBhbnk7XG5cdHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEZJTFRFUl9NT0RFTF9BTElBUyA9IFwiZmlsdGVyVmFsdWVzXCI7XG5cblx0c3RhdGljIHJlbmRlcihyZW5kZXJNYW5hZ2VyOiBSZW5kZXJNYW5hZ2VyLCBjb250cm9sOiBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyKTogdm9pZCB7XG5cdFx0cmVuZGVyTWFuYWdlci5vcGVuU3RhcnQoXCJkaXZcIiwgY29udHJvbCk7XG5cdFx0cmVuZGVyTWFuYWdlci5zdHlsZShcIm1pbi1oZWlnaHRcIiwgXCIxcmVtXCIpO1xuXHRcdHJlbmRlck1hbmFnZXIuc3R5bGUoXCJ3aWR0aFwiLCBjb250cm9sLndpZHRoKTtcblx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5FbmQoKTtcblx0XHRyZW5kZXJNYW5hZ2VyLnJlbmRlckNvbnRyb2woY29udHJvbC5nZXRDb250ZW50KCkpOyAvLyByZW5kZXIgdGhlIGNoaWxkIENvbnRyb2xcblx0XHRyZW5kZXJNYW5hZ2VyLmNsb3NlKFwiZGl2XCIpOyAvLyBlbmQgb2YgdGhlIGNvbXBsZXRlIENvbnRyb2xcblx0fVxuXG5cdC8qKlxuXHQgKiBNYXBzIGFuIGFycmF5IG9mIGZpbHRlciB2YWx1ZXMgdG8gYW4gYXJyYXkgb2YgY29uZGl0aW9ucy5cblx0ICpcblx0ICogQHBhcmFtIHtBcnJheSB8IHN0cmluZ30gZmlsdGVyVmFsdWVzIEFycmF5IG9mIGZpbHRlciB2YWx1ZSBiaW5kaW5ncyBvciBhIGZpbHRlciB2YWx1ZSBzdHJpbmdcblx0ICogQHBhcmFtIHtzdHJpbmd9IFtvcGVyYXRvcl0gVGhlIG9wZXJhdG9yIHRvIGJlIHVzZWQgKG9wdGlvbmFsKSAtIGlmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IG9wZXJhdG9yIChFUSkgd2lsbCBiZSB1c2VkXG5cdCAqIEBwcml2YXRlXG5cdCAqIEByZXR1cm5zIHtBcnJheX0gQXJyYXkgb2YgZmlsdGVyIGNvbmRpdGlvbnNcblx0ICovXG5cdHN0YXRpYyBfZmlsdGVyVmFsdWVzVG9Db25kaXRpb25zKGZpbHRlclZhbHVlczogYW55IHwgYW55W10sIG9wZXJhdG9yPzogc3RyaW5nKTogQ29uZGl0aW9uT2JqZWN0W10ge1xuXHRcdGxldCBmb3JtYXRPcHRpb25zOiBGb3JtYXRPcHRpb25zVHlwZSA9IHsgb3BlcmF0b3JzOiBbXSB9LFxuXHRcdFx0Y29uZGl0aW9ucyA9IFtdO1xuXG5cdFx0aWYgKG9wZXJhdG9yKSB7XG5cdFx0XHRmb3JtYXRPcHRpb25zID0geyBvcGVyYXRvcnM6IFtvcGVyYXRvcl0gfTtcblx0XHR9XG5cdFx0aWYgKGZpbHRlclZhbHVlcyA9PT0gXCJcIikge1xuXHRcdFx0ZmlsdGVyVmFsdWVzID0gW107XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgZmlsdGVyVmFsdWVzID09PSBcIm9iamVjdFwiICYmIGZpbHRlclZhbHVlcy5oYXNPd25Qcm9wZXJ0eShcIm9wZXJhdG9yXCIpICYmIGZpbHRlclZhbHVlcy5oYXNPd25Qcm9wZXJ0eShcInZhbHVlc1wiKSkge1xuXHRcdFx0Zm9ybWF0T3B0aW9ucyA9IHsgb3BlcmF0b3JzOiBbZmlsdGVyVmFsdWVzLm9wZXJhdG9yXSB9O1xuXHRcdFx0ZmlsdGVyVmFsdWVzID0gZmlsdGVyVmFsdWVzLnZhbHVlcztcblx0XHR9IGVsc2UgaWYgKGZpbHRlclZhbHVlcyAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiBmaWx0ZXJWYWx1ZXMgIT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIGZpbHRlclZhbHVlcyAhPT0gXCJzdHJpbmdcIikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiRmlsdGVyVXRpbHMuanMjX2ZpbHRlclZhbHVlc1RvQ29uZGl0aW9uczogVW5leHBlY3RlZCB0eXBlIG9mIGlucHV0IHBhcmFtZXRlciB2VmFsdWVzOiBcIiArIHR5cGVvZiBmaWx0ZXJWYWx1ZXMpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvbmRpdGlvbnNUeXBlOiBhbnkgPSBuZXcgQ29uZGl0aW9uc1R5cGUoZm9ybWF0T3B0aW9ucyk7XG5cdFx0Y29uc3QgY29uZGl0aW9uVmFsdWVzID0gQXJyYXkuaXNBcnJheShmaWx0ZXJWYWx1ZXMpID8gZmlsdGVyVmFsdWVzIDogW2ZpbHRlclZhbHVlc107XG5cblx0XHQvLyBTaG9ydGN1dCBmb3Igb3BlcmF0b3Igd2l0aG91dCB2YWx1ZXMgYW5kIHNlbWFudGljIGRhdGUgb3BlcmF0aW9uc1xuXHRcdGlmIChcblx0XHRcdHR5cGVvZiBvcGVyYXRvciA9PT0gXCJzdHJpbmdcIiAmJlxuXHRcdFx0KGNvbmRpdGlvblZhbHVlcy5sZW5ndGggPT09IDAgfHwgU2VtYW50aWNEYXRlT3BlcmF0b3JzLmdldFNlbWFudGljRGF0ZU9wZXJhdGlvbnMoKS5pbmNsdWRlcyhvcGVyYXRvcikpXG5cdFx0KSB7XG5cdFx0XHRjb25kaXRpb25zID0gW0NvbmRpdGlvbi5jcmVhdGVDb25kaXRpb24ob3BlcmF0b3IsIGNvbmRpdGlvblZhbHVlcywgbnVsbCwgbnVsbCwgQ29uZGl0aW9uVmFsaWRhdGVkLk5vdFZhbGlkYXRlZCldO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25kaXRpb25zID0gY29uZGl0aW9uVmFsdWVzXG5cdFx0XHRcdC5tYXAoKGNvbmRpdGlvblZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qgc3RyaW5nVmFsdWUgPSBjb25kaXRpb25WYWx1ZT8udG9TdHJpbmcoKSxcblx0XHRcdFx0XHRcdHBhcnNlZENvbmRpdGlvbnMgPSBjb25kaXRpb25zVHlwZS5wYXJzZVZhbHVlKHN0cmluZ1ZhbHVlLCBcImFueVwiKTtcblx0XHRcdFx0XHRyZXR1cm4gcGFyc2VkQ29uZGl0aW9ucz8uWzBdO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZmlsdGVyKChjb25kaXRpb25WYWx1ZSkgPT4gY29uZGl0aW9uVmFsdWUgIT09IHVuZGVmaW5lZCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbmRpdGlvbnM7XG5cdH1cblxuXHQvKipcblx0ICogTWFwcyBhbiBhcnJheSBvZiBjb25kaXRpb25zIHRvIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmlsdGVyIHZhbHVlcy5cblx0ICpcblx0ICogQHBhcmFtIHtvYmplY3RbXX0gY29uZGl0aW9ucyBBcnJheSBvZiBmaWx0ZXIgY29uZGl0aW9uc1xuXHQgKiBAcGFyYW0ge29iamVjdH0gZm9ybWF0T3B0aW9ucyBGb3JtYXQgb3B0aW9ucyB0aGF0IHNwZWNpZmllcyBhIGNvbmRpdGlvbiB0eXBlXG5cdCAqIEBwcml2YXRlXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9IENvbmNhdGVuYXRlZCBzdHJpbmcgb2YgZmlsdGVyIHZhbHVlc1xuXHQgKi9cblx0c3RhdGljIF9jb25kaXRpb25zVG9GaWx0ZXJNb2RlbFN0cmluZyhjb25kaXRpb25zOiBvYmplY3RbXSwgZm9ybWF0T3B0aW9uczogRm9ybWF0T3B0aW9uc1R5cGUpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGNvbmRpdGlvbnNUeXBlID0gbmV3IENvbmRpdGlvbnNUeXBlKGZvcm1hdE9wdGlvbnMpO1xuXG5cdFx0cmV0dXJuIGNvbmRpdGlvbnNcblx0XHRcdC5tYXAoKGNvbmRpdGlvbikgPT4ge1xuXHRcdFx0XHRyZXR1cm4gY29uZGl0aW9uc1R5cGUuZm9ybWF0VmFsdWUoW2NvbmRpdGlvbl0sIFwiYW55XCIpIHx8IFwiXCI7XG5cdFx0XHR9KVxuXHRcdFx0LmZpbHRlcigoc3RyaW5nVmFsdWUpID0+IHtcblx0XHRcdFx0cmV0dXJuIHN0cmluZ1ZhbHVlICE9PSBcIlwiO1xuXHRcdFx0fSlcblx0XHRcdC5qb2luKFwiLFwiKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBMaXN0ZW5zIHRvIGZpbHRlciBtb2RlbCBjaGFuZ2VzIGFuZCB1cGRhdGVzIHdyYXBwZXIgcHJvcGVydHkgXCJjb25kaXRpb25zXCIuXG5cdCAqXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBjaGFuZ2VFdmVudCBFdmVudCB0cmlnZ2VyZWQgYnkgYSBmaWx0ZXIgbW9kZWwgY2hhbmdlXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfaGFuZGxlRmlsdGVyTW9kZWxDaGFuZ2UoY2hhbmdlRXZlbnQ6IGFueSk6IHZvaWQge1xuXHRcdGNvbnN0IHByb3BlcnR5UGF0aCA9IHRoaXMuZ2V0T2JqZWN0QmluZGluZyhcImZpbHRlclZhbHVlc1wiKS5nZXRQYXRoKCksXG5cdFx0XHR2YWx1ZXMgPSBjaGFuZ2VFdmVudC5nZXRTb3VyY2UoKS5nZXRQcm9wZXJ0eShwcm9wZXJ0eVBhdGgpO1xuXHRcdHRoaXMudXBkYXRlQ29uZGl0aW9uc0J5RmlsdGVyVmFsdWVzKHZhbHVlcywgXCJcIik7XG5cdH1cblxuXHQvKipcblx0ICogTGlzdGVucyB0byBcImNvbmRpdGlvbnNcIiBjaGFuZ2VzIGFuZCB1cGRhdGVzIHRoZSBmaWx0ZXIgbW9kZWwuXG5cdCAqXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBjb25kaXRpb25zIEV2ZW50IHRyaWdnZXJlZCBieSBhIFwiY29uZGl0aW9uc1wiIGNoYW5nZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2hhbmRsZUNvbmRpdGlvbnNDaGFuZ2UoY29uZGl0aW9uczogYW55KTogdm9pZCB7XG5cdFx0dGhpcy51cGRhdGVGaWx0ZXJNb2RlbEJ5Q29uZGl0aW9ucyhjb25kaXRpb25zKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbml0aWFsaXplIEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIgY29udHJvbCBhbmQgcmVnaXN0ZXIgb2JzZXJ2ZXIuXG5cdCAqL1xuXHRpbml0KCk6IHZvaWQge1xuXHRcdHN1cGVyLmluaXQoKTtcblx0XHR0aGlzLl9jb25kaXRpb25zT2JzZXJ2ZXIgPSBuZXcgTWFuYWdlZE9iamVjdE9ic2VydmVyKHRoaXMuX29ic2VydmVDaGFuZ2VzLmJpbmQodGhpcykpO1xuXHRcdHRoaXMuX2NvbmRpdGlvbnNPYnNlcnZlci5vYnNlcnZlKHRoaXMsIHtcblx0XHRcdHByb3BlcnRpZXM6IFtcImNvbmRpdGlvbnNcIl1cblx0XHR9KTtcblx0XHR0aGlzLl9maWx0ZXJNb2RlbCA9IG5ldyBKU09OTW9kZWwoKTtcblx0XHR0aGlzLl9maWx0ZXJNb2RlbC5hdHRhY2hQcm9wZXJ0eUNoYW5nZSh0aGlzLl9oYW5kbGVGaWx0ZXJNb2RlbENoYW5nZSwgdGhpcyk7XG5cdFx0dGhpcy5zZXRNb2RlbCh0aGlzLl9maWx0ZXJNb2RlbCwgQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlci5GSUxURVJfTU9ERUxfQUxJQVMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE92ZXJyaWRlcyB7QGxpbmsgc2FwLnVpLmNvcmUuQ29udHJvbCNjbG9uZSBDb250cm9sLmNsb25lfSB0byBjbG9uZSBhZGRpdGlvbmFsXG5cdCAqIGludGVybmFsIHN0YXRlcy5cblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmd9IFtzSWRTdWZmaXhdIEEgc3VmZml4IHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBjbG9uZWQgY29udHJvbCBpZFxuXHQgKiBAcGFyYW0ge3N0cmluZ1tdfSBbYUxvY2FsSWRzXSBBbiBhcnJheSBvZiBsb2NhbCBJRHMgd2l0aGluIHRoZSBjbG9uZWQgaGllcmFyY2h5IChpbnRlcm5hbGx5IHVzZWQpXG5cdCAqIEByZXR1cm5zIHtDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyfSBSZWZlcmVuY2UgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgY2xvbmVcblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0Y2xvbmUoc0lkU3VmZml4OiBzdHJpbmcgfCB1bmRlZmluZWQsIGFMb2NhbElkczogc3RyaW5nW10gfCB1bmRlZmluZWQpOiB0aGlzIHtcblx0XHRjb25zdCBjbG9uZSA9IHN1cGVyLmNsb25lKHNJZFN1ZmZpeCwgYUxvY2FsSWRzKTtcblx0XHQvLyBEdXJpbmcgY2xvbmluZywgdGhlIG9sZCBtb2RlbCB3aWxsIGJlIGNvcGllZCBhbmQgb3ZlcndyaXRlcyBhbnkgbmV3IG1vZGVsIChzYW1lIGFsaWFzKSB0aGF0XG5cdFx0Ly8geW91IGludHJvZHVjZSBkdXJpbmcgaW5pdCgpOyBoZW5jZSB5b3UgbmVlZCB0byBvdmVyd3JpdGUgaXQgYWdhaW4gYnkgdGhlIG5ldyBvbmUgdGhhdCB5b3UndmVcblx0XHQvLyBjcmVhdGVkIGR1cmluZyBpbml0KCkgKGkuZS4gY2xvbmUuX2ZpbHRlck1vZGVsKTsgdGhhdCBzdGFuZGFyZCBiZWhhdmlvdXIgb2Ygc3VwZXIuY2xvbmUoKVxuXHRcdC8vIGNhbid0IGV2ZW4gYmUgc3VwcHJlc3NlZCBpbiBhbiBvd24gY29uc3RydWN0b3I7IGZvciBhIGRldGFpbGVkIGludmVzdGlnYXRpb24gb2YgdGhlIGNsb25pbmcsXG5cdFx0Ly8gcGxlYXNlIG92ZXJ3cml0ZSB0aGUgc2V0TW9kZWwoKSBtZXRob2QgYW5kIGNoZWNrIHRoZSBsaXN0IG9mIGNhbGxlcnMgYW5kIHN0ZXBzIGluZHVjZWQgYnkgdGhlbS5cblx0XHRjbG9uZS5zZXRNb2RlbChjbG9uZS5fZmlsdGVyTW9kZWwsIEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuRklMVEVSX01PREVMX0FMSUFTKTtcblx0XHRyZXR1cm4gY2xvbmU7XG5cdH1cblxuXHQvKipcblx0ICogTGlzdGVucyB0byBwcm9wZXJ0eSBjaGFuZ2VzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2FueX0gY2hhbmdlcyBQcm9wZXJ0eSBjaGFuZ2VzXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfb2JzZXJ2ZUNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG5cdFx0aWYgKGNoYW5nZXMubmFtZSA9PT0gXCJjb25kaXRpb25zXCIpIHtcblx0XHRcdHRoaXMuX2hhbmRsZUNvbmRpdGlvbnNDaGFuZ2UoY2hhbmdlcy5jdXJyZW50KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgY29udGVudCBvZiB0aGlzIHdyYXBwZXIgY29udHJvbC5cblx0ICpcblx0ICogQHJldHVybnMge3NhcC51aS5jb3JlLkNvbnRyb2x9IFRoZSB3cmFwcGVyIGNvbnRlbnRcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGdldENvbnRlbnQoKTogQ29udHJvbCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0QWdncmVnYXRpb24oXCJjb250ZW50XCIpIGFzIENvbnRyb2w7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgdmFsdWUgZm9yIGNvbnRyb2wgcHJvcGVydHkgJ2NvbmRpdGlvbnMnLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7b2JqZWN0W119IEFycmF5IG9mIGZpbHRlciBjb25kaXRpb25zXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRnZXRDb25kaXRpb25zKCk6IG9iamVjdFtdIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eShcImNvbmRpdGlvbnNcIik7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgdmFsdWUgZm9yIGNvbnRyb2wgcHJvcGVydHkgJ2NvbmRpdGlvbnMnLlxuXHQgKlxuXHQgKiBAcGFyYW0ge29iamVjdFtdfSBbY29uZGl0aW9uc10gQXJyYXkgb2YgZmlsdGVyIGNvbmRpdGlvbnNcblx0ICogQHJldHVybnMge0N1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXJ9IFJlZmVyZW5jZSB0byB0aGlzIHdyYXBwZXJcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHNldENvbmRpdGlvbnMoY29uZGl0aW9uczogb2JqZWN0W10pOiB0aGlzIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiY29uZGl0aW9uc1wiLCBjb25kaXRpb25zIHx8IFtdKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBmaWx0ZXIgbW9kZWwgYWxpYXMgJ2ZpbHRlclZhbHVlcycuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBmaWx0ZXIgbW9kZWxcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGdldEZpbHRlck1vZGVsQWxpYXMoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlci5GSUxURVJfTU9ERUxfQUxJQVM7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgcHJvcGVydHkgXCJjb25kaXRpb25zXCIgd2l0aCBmaWx0ZXIgdmFsdWVzXG5cdCAqIHNlbnQgYnkgRXh0ZW5zaW9uQVBJI3NldEZpbHRlclZhbHVlcygpLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2FueX0gdmFsdWVzIFRoZSBmaWx0ZXIgdmFsdWVzXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBbb3BlcmF0b3JdIFRoZSBvcGVyYXRvciBuYW1lXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHR1cGRhdGVDb25kaXRpb25zQnlGaWx0ZXJWYWx1ZXModmFsdWVzOiBhbnksIG9wZXJhdG9yPzogc3RyaW5nKTogdm9pZCB7XG5cdFx0Y29uc3QgY29uZGl0aW9ucyA9IEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuX2ZpbHRlclZhbHVlc1RvQ29uZGl0aW9ucyh2YWx1ZXMsIG9wZXJhdG9yKTtcblx0XHR0aGlzLnNldENvbmRpdGlvbnMoY29uZGl0aW9ucyk7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyBmaWx0ZXIgbW9kZWwgd2l0aCBjb25kaXRpb25zXG5cdCAqIHNlbnQgYnkgdGhlIHtAbGluayBzYXAudWkubWRjLkZpbHRlckZpZWxkIEZpbHRlckZpZWxkfS5cblx0ICpcblx0ICogQHBhcmFtIHtBcnJheX0gY29uZGl0aW9ucyBBcnJheSBvZiBmaWx0ZXIgY29uZGl0aW9uc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0dXBkYXRlRmlsdGVyTW9kZWxCeUNvbmRpdGlvbnMoY29uZGl0aW9uczogYW55W10pOiB2b2lkIHtcblx0XHRjb25zdCBvcGVyYXRvciA9IGNvbmRpdGlvbnNbMF0/Lm9wZXJhdG9yIHx8IFwiXCI7XG5cdFx0Y29uc3QgZm9ybWF0T3B0aW9uczogRm9ybWF0T3B0aW9uc1R5cGUgPSBvcGVyYXRvciAhPT0gXCJcIiA/IHsgb3BlcmF0b3JzOiBbb3BlcmF0b3JdIH0gOiB7IG9wZXJhdG9yczogW10gfTtcblx0XHRpZiAodGhpcy5nZXRCaW5kaW5nQ29udGV4dChDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLkZJTFRFUl9NT0RFTF9BTElBUykpIHtcblx0XHRcdGNvbnN0IHN0cmluZ1ZhbHVlID0gQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlci5fY29uZGl0aW9uc1RvRmlsdGVyTW9kZWxTdHJpbmcoY29uZGl0aW9ucywgZm9ybWF0T3B0aW9ucyk7XG5cdFx0XHR0aGlzLl9maWx0ZXJNb2RlbC5zZXRQcm9wZXJ0eShcblx0XHRcdFx0dGhpcy5nZXRCaW5kaW5nQ29udGV4dChDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLkZJTFRFUl9NT0RFTF9BTElBUyk/LmdldFBhdGgoKSxcblx0XHRcdFx0c3RyaW5nVmFsdWVcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0QWNjZXNzaWJpbGl0eUluZm8oKTogYW55IHtcblx0XHRjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCk7XG5cdFx0cmV0dXJuIGNvbnRlbnQ/LmdldEFjY2Vzc2liaWxpdHlJbmZvPy4oKSB8fCB7fTtcblx0fVxufVxuIl19
371
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJwcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJhZ2dyZWdhdGlvbiIsIm11bHRpcGxlIiwiaXNEZWZhdWx0IiwiZXZlbnQiLCJyZW5kZXIiLCJyZW5kZXJNYW5hZ2VyIiwiY29udHJvbCIsIm9wZW5TdGFydCIsInN0eWxlIiwid2lkdGgiLCJvcGVuRW5kIiwicmVuZGVyQ29udHJvbCIsImdldENvbnRlbnQiLCJjbG9zZSIsIl9maWx0ZXJWYWx1ZXNUb0NvbmRpdGlvbnMiLCJmaWx0ZXJWYWx1ZXMiLCJvcGVyYXRvciIsImZvcm1hdE9wdGlvbnMiLCJvcGVyYXRvcnMiLCJjb25kaXRpb25zIiwiaGFzT3duUHJvcGVydHkiLCJ2YWx1ZXMiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNvbmRpdGlvbnNUeXBlIiwiQ29uZGl0aW9uc1R5cGUiLCJjb25kaXRpb25WYWx1ZXMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJTZW1hbnRpY0RhdGVPcGVyYXRvcnMiLCJnZXRTZW1hbnRpY0RhdGVPcGVyYXRpb25zIiwiaW5jbHVkZXMiLCJDb25kaXRpb24iLCJjcmVhdGVDb25kaXRpb24iLCJDb25kaXRpb25WYWxpZGF0ZWQiLCJOb3RWYWxpZGF0ZWQiLCJtYXAiLCJjb25kaXRpb25WYWx1ZSIsInN0cmluZ1ZhbHVlIiwidG9TdHJpbmciLCJwYXJzZWRDb25kaXRpb25zIiwicGFyc2VWYWx1ZSIsImZpbHRlciIsIl9jb25kaXRpb25zVG9GaWx0ZXJNb2RlbFN0cmluZyIsImNvbmRpdGlvbiIsImZvcm1hdFZhbHVlIiwiam9pbiIsIl9oYW5kbGVGaWx0ZXJNb2RlbENoYW5nZSIsImNoYW5nZUV2ZW50IiwicHJvcGVydHlQYXRoIiwiZ2V0T2JqZWN0QmluZGluZyIsImdldFBhdGgiLCJnZXRTb3VyY2UiLCJnZXRQcm9wZXJ0eSIsInVwZGF0ZUNvbmRpdGlvbnNCeUZpbHRlclZhbHVlcyIsIl9oYW5kbGVDb25kaXRpb25zQ2hhbmdlIiwidXBkYXRlRmlsdGVyTW9kZWxCeUNvbmRpdGlvbnMiLCJpbml0IiwiX2NvbmRpdGlvbnNPYnNlcnZlciIsIk1hbmFnZWRPYmplY3RPYnNlcnZlciIsIl9vYnNlcnZlQ2hhbmdlcyIsImJpbmQiLCJvYnNlcnZlIiwicHJvcGVydGllcyIsIl9maWx0ZXJNb2RlbCIsIkpTT05Nb2RlbCIsImF0dGFjaFByb3BlcnR5Q2hhbmdlIiwic2V0TW9kZWwiLCJGSUxURVJfTU9ERUxfQUxJQVMiLCJjbG9uZSIsInNJZFN1ZmZpeCIsImFMb2NhbElkcyIsImNoYW5nZXMiLCJuYW1lIiwiY3VycmVudCIsImdldEFnZ3JlZ2F0aW9uIiwiZ2V0Q29uZGl0aW9ucyIsInNldENvbmRpdGlvbnMiLCJzZXRQcm9wZXJ0eSIsImdldEZpbHRlck1vZGVsQWxpYXMiLCJnZXRCaW5kaW5nQ29udGV4dCIsImdldEFjY2Vzc2liaWxpdHlJbmZvIiwiY29udGVudCIsIkNvbnRyb2wiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiAke2NvcHlyaWdodH1cbiAqL1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGRlZmluZVVJNUNsYXNzLCBldmVudCwgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IFNlbWFudGljRGF0ZU9wZXJhdG9ycyBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TZW1hbnRpY0RhdGVPcGVyYXRvcnNcIjtcbmltcG9ydCBNYW5hZ2VkT2JqZWN0T2JzZXJ2ZXIgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RPYnNlcnZlclwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjsgLy9pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL21kYy9maWVsZC9GaWVsZEJhc2VcIjtcbmltcG9ydCB0eXBlIHsgSUZvcm1Db250ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCB0eXBlIHsgQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IENvbmRpdGlvbiBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgQ29uZGl0aW9uVmFsaWRhdGVkIGZyb20gXCJzYXAvdWkvbWRjL2VudW0vQ29uZGl0aW9uVmFsaWRhdGVkXCI7XG5pbXBvcnQgQ29uZGl0aW9uc1R5cGUgZnJvbSBcInNhcC91aS9tZGMvZmllbGQvQ29uZGl0aW9uc1R5cGVcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG4vKipcbiAqIFR5cGUgdXNlZCBmb3IgZm9ybWF0IG9wdGlvbnNcbiAqXG4gKiBAdHlwZWRlZiBGb3JtYXRPcHRpb25zVHlwZVxuICovXG50eXBlIEZvcm1hdE9wdGlvbnNUeXBlID0ge1xuXHRvcGVyYXRvcnM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBAY2xhc3NcbiAqIENyZWF0ZXMgYW4gPGNvZGU+c2FwLmZlLmNvcmUuY29udHJvbHMuQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlcjwvY29kZT4gb2JqZWN0LlxuICogVGhpcyBpcyB1c2VkIGluIHRoZSB7QGxpbmsgc2FwLnVpLm1kYy5GaWx0ZXJGaWVsZCBGaWx0ZXJGaWVsZH0gYXMgYSBmaWx0ZXIgY29udGVudC5cbiAqIEBleHRlbmRzIHNhcC51aS5jb3JlLkNvbnRyb2xcbiAqIEBwcml2YXRlXG4gKiBAYWxpYXMgc2FwLmZlLmNvcmUuY29udHJvbHMuQ3VzdG9tRmlsdGVyRmllbGRDb250ZW50V3JhcHBlclxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5DdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyIGV4dGVuZHMgQ29udHJvbCBpbXBsZW1lbnRzIElGb3JtQ29udGVudCB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuXHRfX2ltcGxlbWVudHNfX3NhcF91aV9jb3JlX0lGb3JtQ29udGVudCA9IHRydWU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzYXAudWkuY29yZS5DU1NTaXplXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHR3aWR0aCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRmb3JtRG9Ob3RBZGp1c3RXaWR0aCE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RbXVwiLCBkZWZhdWx0VmFsdWU6IFtdIH0pXG5cdGNvbmRpdGlvbnMhOiBDb25kaXRpb25PYmplY3RbXTtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IENvbnRyb2w7XG5cblx0QGV2ZW50KClcblx0Y29uZGl0aW9uc0NoYW5nZSE6IEZ1bmN0aW9uO1xuXG5cdC8vIE5vdGU6IEZpZWxkQmFzZSBtaWdodCBiZSB1c2VkIGFzIGJhc2UgY29udHJvbCAoaW5zdGVhZCBvZiBDb250cm9sKSBpbiBhIGxhdGVyIHZlcnNpb247XG5cdC8vIGluIHRoYXQgY2FzZSwgeW91IHNob3VsZCBhZGQgYSAnY2hhbmdlJyBldmVudCBhbmQgYnViYmxlIGl0IHRvIHRoZSBjb3JyZXNwb25kaW5nIGhhbmRsZXJzXG5cblx0cHJpdmF0ZSBfZmlsdGVyTW9kZWw6IGFueTtcblx0cHJpdmF0ZSBfY29uZGl0aW9uc09ic2VydmVyOiBhbnk7XG5cdHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEZJTFRFUl9NT0RFTF9BTElBUyA9IFwiZmlsdGVyVmFsdWVzXCI7XG5cblx0c3RhdGljIHJlbmRlcihyZW5kZXJNYW5hZ2VyOiBSZW5kZXJNYW5hZ2VyLCBjb250cm9sOiBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyKTogdm9pZCB7XG5cdFx0cmVuZGVyTWFuYWdlci5vcGVuU3RhcnQoXCJkaXZcIiwgY29udHJvbCk7XG5cdFx0cmVuZGVyTWFuYWdlci5zdHlsZShcIm1pbi1oZWlnaHRcIiwgXCIxcmVtXCIpO1xuXHRcdHJlbmRlck1hbmFnZXIuc3R5bGUoXCJ3aWR0aFwiLCBjb250cm9sLndpZHRoKTtcblx0XHRyZW5kZXJNYW5hZ2VyLm9wZW5FbmQoKTtcblx0XHRyZW5kZXJNYW5hZ2VyLnJlbmRlckNvbnRyb2woY29udHJvbC5nZXRDb250ZW50KCkpOyAvLyByZW5kZXIgdGhlIGNoaWxkIENvbnRyb2xcblx0XHRyZW5kZXJNYW5hZ2VyLmNsb3NlKFwiZGl2XCIpOyAvLyBlbmQgb2YgdGhlIGNvbXBsZXRlIENvbnRyb2xcblx0fVxuXG5cdC8qKlxuXHQgKiBNYXBzIGFuIGFycmF5IG9mIGZpbHRlciB2YWx1ZXMgdG8gYW4gYXJyYXkgb2YgY29uZGl0aW9ucy5cblx0ICpcblx0ICogQHBhcmFtIGZpbHRlclZhbHVlcyBBcnJheSBvZiBmaWx0ZXIgdmFsdWUgYmluZGluZ3Mgb3IgYSBmaWx0ZXIgdmFsdWUgc3RyaW5nXG5cdCAqIEBwYXJhbSBbb3BlcmF0b3JdIFRoZSBvcGVyYXRvciB0byBiZSB1c2VkIChvcHRpb25hbCkgLSBpZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCBvcGVyYXRvciAoRVEpIHdpbGwgYmUgdXNlZFxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAcmV0dXJucyBBcnJheSBvZiBmaWx0ZXIgY29uZGl0aW9uc1xuXHQgKi9cblx0c3RhdGljIF9maWx0ZXJWYWx1ZXNUb0NvbmRpdGlvbnMoZmlsdGVyVmFsdWVzOiBhbnkgfCBhbnlbXSwgb3BlcmF0b3I/OiBzdHJpbmcpOiBDb25kaXRpb25PYmplY3RbXSB7XG5cdFx0bGV0IGZvcm1hdE9wdGlvbnM6IEZvcm1hdE9wdGlvbnNUeXBlID0geyBvcGVyYXRvcnM6IFtdIH0sXG5cdFx0XHRjb25kaXRpb25zID0gW107XG5cblx0XHRpZiAob3BlcmF0b3IpIHtcblx0XHRcdGZvcm1hdE9wdGlvbnMgPSB7IG9wZXJhdG9yczogW29wZXJhdG9yXSB9O1xuXHRcdH1cblx0XHRpZiAoZmlsdGVyVmFsdWVzID09PSBcIlwiKSB7XG5cdFx0XHRmaWx0ZXJWYWx1ZXMgPSBbXTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBmaWx0ZXJWYWx1ZXMgPT09IFwib2JqZWN0XCIgJiYgZmlsdGVyVmFsdWVzLmhhc093blByb3BlcnR5KFwib3BlcmF0b3JcIikgJiYgZmlsdGVyVmFsdWVzLmhhc093blByb3BlcnR5KFwidmFsdWVzXCIpKSB7XG5cdFx0XHRmb3JtYXRPcHRpb25zID0geyBvcGVyYXRvcnM6IFtmaWx0ZXJWYWx1ZXMub3BlcmF0b3JdIH07XG5cdFx0XHRmaWx0ZXJWYWx1ZXMgPSBmaWx0ZXJWYWx1ZXMudmFsdWVzO1xuXHRcdH0gZWxzZSBpZiAoZmlsdGVyVmFsdWVzICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGZpbHRlclZhbHVlcyAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgZmlsdGVyVmFsdWVzICE9PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEZpbHRlclV0aWxzLmpzI19maWx0ZXJWYWx1ZXNUb0NvbmRpdGlvbnM6IFVuZXhwZWN0ZWQgdHlwZSBvZiBpbnB1dCBwYXJhbWV0ZXIgdlZhbHVlczogJHt0eXBlb2YgZmlsdGVyVmFsdWVzfWApO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNvbmRpdGlvbnNUeXBlOiBhbnkgPSBuZXcgQ29uZGl0aW9uc1R5cGUoZm9ybWF0T3B0aW9ucyk7XG5cdFx0Y29uc3QgY29uZGl0aW9uVmFsdWVzID0gQXJyYXkuaXNBcnJheShmaWx0ZXJWYWx1ZXMpID8gZmlsdGVyVmFsdWVzIDogW2ZpbHRlclZhbHVlc107XG5cblx0XHQvLyBTaG9ydGN1dCBmb3Igb3BlcmF0b3Igd2l0aG91dCB2YWx1ZXMgYW5kIHNlbWFudGljIGRhdGUgb3BlcmF0aW9uc1xuXHRcdGlmIChcblx0XHRcdHR5cGVvZiBvcGVyYXRvciA9PT0gXCJzdHJpbmdcIiAmJlxuXHRcdFx0KGNvbmRpdGlvblZhbHVlcy5sZW5ndGggPT09IDAgfHwgU2VtYW50aWNEYXRlT3BlcmF0b3JzLmdldFNlbWFudGljRGF0ZU9wZXJhdGlvbnMoKS5pbmNsdWRlcyhvcGVyYXRvcikpXG5cdFx0KSB7XG5cdFx0XHRjb25kaXRpb25zID0gW0NvbmRpdGlvbi5jcmVhdGVDb25kaXRpb24ob3BlcmF0b3IsIGNvbmRpdGlvblZhbHVlcywgbnVsbCwgbnVsbCwgQ29uZGl0aW9uVmFsaWRhdGVkLk5vdFZhbGlkYXRlZCldO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25kaXRpb25zID0gY29uZGl0aW9uVmFsdWVzXG5cdFx0XHRcdC5tYXAoKGNvbmRpdGlvblZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qgc3RyaW5nVmFsdWUgPSBjb25kaXRpb25WYWx1ZT8udG9TdHJpbmcoKSxcblx0XHRcdFx0XHRcdHBhcnNlZENvbmRpdGlvbnMgPSBjb25kaXRpb25zVHlwZS5wYXJzZVZhbHVlKHN0cmluZ1ZhbHVlLCBcImFueVwiKTtcblx0XHRcdFx0XHRyZXR1cm4gcGFyc2VkQ29uZGl0aW9ucz8uWzBdO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZmlsdGVyKChjb25kaXRpb25WYWx1ZSkgPT4gY29uZGl0aW9uVmFsdWUgIT09IHVuZGVmaW5lZCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbmRpdGlvbnM7XG5cdH1cblxuXHQvKipcblx0ICogTWFwcyBhbiBhcnJheSBvZiBjb25kaXRpb25zIHRvIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmlsdGVyIHZhbHVlcy5cblx0ICpcblx0ICogQHBhcmFtIGNvbmRpdGlvbnMgQXJyYXkgb2YgZmlsdGVyIGNvbmRpdGlvbnNcblx0ICogQHBhcmFtIGZvcm1hdE9wdGlvbnMgRm9ybWF0IG9wdGlvbnMgdGhhdCBzcGVjaWZpZXMgYSBjb25kaXRpb24gdHlwZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAcmV0dXJucyBDb25jYXRlbmF0ZWQgc3RyaW5nIG9mIGZpbHRlciB2YWx1ZXNcblx0ICovXG5cdHN0YXRpYyBfY29uZGl0aW9uc1RvRmlsdGVyTW9kZWxTdHJpbmcoY29uZGl0aW9uczogb2JqZWN0W10sIGZvcm1hdE9wdGlvbnM6IEZvcm1hdE9wdGlvbnNUeXBlKTogc3RyaW5nIHtcblx0XHRjb25zdCBjb25kaXRpb25zVHlwZSA9IG5ldyBDb25kaXRpb25zVHlwZShmb3JtYXRPcHRpb25zKTtcblxuXHRcdHJldHVybiBjb25kaXRpb25zXG5cdFx0XHQubWFwKChjb25kaXRpb24pID0+IHtcblx0XHRcdFx0cmV0dXJuIGNvbmRpdGlvbnNUeXBlLmZvcm1hdFZhbHVlKFtjb25kaXRpb25dLCBcImFueVwiKSB8fCBcIlwiO1xuXHRcdFx0fSlcblx0XHRcdC5maWx0ZXIoKHN0cmluZ1ZhbHVlKSA9PiB7XG5cdFx0XHRcdHJldHVybiBzdHJpbmdWYWx1ZSAhPT0gXCJcIjtcblx0XHRcdH0pXG5cdFx0XHQuam9pbihcIixcIik7XG5cdH1cblxuXHQvKipcblx0ICogTGlzdGVucyB0byBmaWx0ZXIgbW9kZWwgY2hhbmdlcyBhbmQgdXBkYXRlcyB3cmFwcGVyIHByb3BlcnR5IFwiY29uZGl0aW9uc1wiLlxuXHQgKlxuXHQgKiBAcGFyYW0gY2hhbmdlRXZlbnQgRXZlbnQgdHJpZ2dlcmVkIGJ5IGEgZmlsdGVyIG1vZGVsIGNoYW5nZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2hhbmRsZUZpbHRlck1vZGVsQ2hhbmdlKGNoYW5nZUV2ZW50OiBhbnkpOiB2b2lkIHtcblx0XHRjb25zdCBwcm9wZXJ0eVBhdGggPSB0aGlzLmdldE9iamVjdEJpbmRpbmcoXCJmaWx0ZXJWYWx1ZXNcIikuZ2V0UGF0aCgpLFxuXHRcdFx0dmFsdWVzID0gY2hhbmdlRXZlbnQuZ2V0U291cmNlKCkuZ2V0UHJvcGVydHkocHJvcGVydHlQYXRoKTtcblx0XHR0aGlzLnVwZGF0ZUNvbmRpdGlvbnNCeUZpbHRlclZhbHVlcyh2YWx1ZXMsIFwiXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIExpc3RlbnMgdG8gXCJjb25kaXRpb25zXCIgY2hhbmdlcyBhbmQgdXBkYXRlcyB0aGUgZmlsdGVyIG1vZGVsLlxuXHQgKlxuXHQgKiBAcGFyYW0gY29uZGl0aW9ucyBFdmVudCB0cmlnZ2VyZWQgYnkgYSBcImNvbmRpdGlvbnNcIiBjaGFuZ2Vcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9oYW5kbGVDb25kaXRpb25zQ2hhbmdlKGNvbmRpdGlvbnM6IGFueSk6IHZvaWQge1xuXHRcdHRoaXMudXBkYXRlRmlsdGVyTW9kZWxCeUNvbmRpdGlvbnMoY29uZGl0aW9ucyk7XG5cdH1cblxuXHQvKipcblx0ICogSW5pdGlhbGl6ZSBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyIGNvbnRyb2wgYW5kIHJlZ2lzdGVyIG9ic2VydmVyLlxuXHQgKi9cblx0aW5pdCgpOiB2b2lkIHtcblx0XHRzdXBlci5pbml0KCk7XG5cdFx0dGhpcy5fY29uZGl0aW9uc09ic2VydmVyID0gbmV3IE1hbmFnZWRPYmplY3RPYnNlcnZlcih0aGlzLl9vYnNlcnZlQ2hhbmdlcy5iaW5kKHRoaXMpKTtcblx0XHR0aGlzLl9jb25kaXRpb25zT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLCB7XG5cdFx0XHRwcm9wZXJ0aWVzOiBbXCJjb25kaXRpb25zXCJdXG5cdFx0fSk7XG5cdFx0dGhpcy5fZmlsdGVyTW9kZWwgPSBuZXcgSlNPTk1vZGVsKCk7XG5cdFx0dGhpcy5fZmlsdGVyTW9kZWwuYXR0YWNoUHJvcGVydHlDaGFuZ2UodGhpcy5faGFuZGxlRmlsdGVyTW9kZWxDaGFuZ2UsIHRoaXMpO1xuXHRcdHRoaXMuc2V0TW9kZWwodGhpcy5fZmlsdGVyTW9kZWwsIEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuRklMVEVSX01PREVMX0FMSUFTKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBPdmVycmlkZXMge0BsaW5rIHNhcC51aS5jb3JlLkNvbnRyb2wjY2xvbmUgQ29udHJvbC5jbG9uZX0gdG8gY2xvbmUgYWRkaXRpb25hbFxuXHQgKiBpbnRlcm5hbCBzdGF0ZXMuXG5cdCAqXG5cdCAqIEBwYXJhbSBbc0lkU3VmZml4XSBBIHN1ZmZpeCB0byBiZSBhcHBlbmRlZCB0byB0aGUgY2xvbmVkIGNvbnRyb2wgaWRcblx0ICogQHBhcmFtIFthTG9jYWxJZHNdIEFuIGFycmF5IG9mIGxvY2FsIElEcyB3aXRoaW4gdGhlIGNsb25lZCBoaWVyYXJjaHkgKGludGVybmFsbHkgdXNlZClcblx0ICogQHJldHVybnMgUmVmZXJlbmNlIHRvIHRoZSBuZXdseSBjcmVhdGVkIGNsb25lXG5cdCAqIEBwcm90ZWN0ZWRcblx0ICovXG5cdGNsb25lKHNJZFN1ZmZpeDogc3RyaW5nIHwgdW5kZWZpbmVkLCBhTG9jYWxJZHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKTogdGhpcyB7XG5cdFx0Y29uc3QgY2xvbmUgPSBzdXBlci5jbG9uZShzSWRTdWZmaXgsIGFMb2NhbElkcyk7XG5cdFx0Ly8gRHVyaW5nIGNsb25pbmcsIHRoZSBvbGQgbW9kZWwgd2lsbCBiZSBjb3BpZWQgYW5kIG92ZXJ3cml0ZXMgYW55IG5ldyBtb2RlbCAoc2FtZSBhbGlhcykgdGhhdFxuXHRcdC8vIHlvdSBpbnRyb2R1Y2UgZHVyaW5nIGluaXQoKTsgaGVuY2UgeW91IG5lZWQgdG8gb3ZlcndyaXRlIGl0IGFnYWluIGJ5IHRoZSBuZXcgb25lIHRoYXQgeW91J3ZlXG5cdFx0Ly8gY3JlYXRlZCBkdXJpbmcgaW5pdCgpIChpLmUuIGNsb25lLl9maWx0ZXJNb2RlbCk7IHRoYXQgc3RhbmRhcmQgYmVoYXZpb3VyIG9mIHN1cGVyLmNsb25lKClcblx0XHQvLyBjYW4ndCBldmVuIGJlIHN1cHByZXNzZWQgaW4gYW4gb3duIGNvbnN0cnVjdG9yOyBmb3IgYSBkZXRhaWxlZCBpbnZlc3RpZ2F0aW9uIG9mIHRoZSBjbG9uaW5nLFxuXHRcdC8vIHBsZWFzZSBvdmVyd3JpdGUgdGhlIHNldE1vZGVsKCkgbWV0aG9kIGFuZCBjaGVjayB0aGUgbGlzdCBvZiBjYWxsZXJzIGFuZCBzdGVwcyBpbmR1Y2VkIGJ5IHRoZW0uXG5cdFx0Y2xvbmUuc2V0TW9kZWwoY2xvbmUuX2ZpbHRlck1vZGVsLCBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLkZJTFRFUl9NT0RFTF9BTElBUyk7XG5cdFx0cmV0dXJuIGNsb25lO1xuXHR9XG5cblx0LyoqXG5cdCAqIExpc3RlbnMgdG8gcHJvcGVydHkgY2hhbmdlcy5cblx0ICpcblx0ICogQHBhcmFtIGNoYW5nZXMgUHJvcGVydHkgY2hhbmdlc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X29ic2VydmVDaGFuZ2VzKGNoYW5nZXM6IGFueSk6IHZvaWQge1xuXHRcdGlmIChjaGFuZ2VzLm5hbWUgPT09IFwiY29uZGl0aW9uc1wiKSB7XG5cdFx0XHR0aGlzLl9oYW5kbGVDb25kaXRpb25zQ2hhbmdlKGNoYW5nZXMuY3VycmVudCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGNvbnRlbnQgb2YgdGhpcyB3cmFwcGVyIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSB3cmFwcGVyIGNvbnRlbnRcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGdldENvbnRlbnQoKTogQ29udHJvbCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0QWdncmVnYXRpb24oXCJjb250ZW50XCIpIGFzIENvbnRyb2w7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgdmFsdWUgZm9yIGNvbnRyb2wgcHJvcGVydHkgJ2NvbmRpdGlvbnMnLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBBcnJheSBvZiBmaWx0ZXIgY29uZGl0aW9uc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0Z2V0Q29uZGl0aW9ucygpOiBvYmplY3RbXSB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0UHJvcGVydHkoXCJjb25kaXRpb25zXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIHZhbHVlIGZvciBjb250cm9sIHByb3BlcnR5ICdjb25kaXRpb25zJy5cblx0ICpcblx0ICogQHBhcmFtIFtjb25kaXRpb25zXSBBcnJheSBvZiBmaWx0ZXIgY29uZGl0aW9uc1xuXHQgKiBAcmV0dXJucyBSZWZlcmVuY2UgdG8gdGhpcyB3cmFwcGVyXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRzZXRDb25kaXRpb25zKGNvbmRpdGlvbnM6IG9iamVjdFtdKTogdGhpcyB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcImNvbmRpdGlvbnNcIiwgY29uZGl0aW9ucyB8fCBbXSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgZmlsdGVyIG1vZGVsIGFsaWFzICdmaWx0ZXJWYWx1ZXMnLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgZmlsdGVyIG1vZGVsXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRnZXRGaWx0ZXJNb2RlbEFsaWFzKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuRklMVEVSX01PREVMX0FMSUFTO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgdGhlIHByb3BlcnR5IFwiY29uZGl0aW9uc1wiIHdpdGggZmlsdGVyIHZhbHVlc1xuXHQgKiBzZW50IGJ5IEV4dGVuc2lvbkFQSSNzZXRGaWx0ZXJWYWx1ZXMoKS5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlcyBUaGUgZmlsdGVyIHZhbHVlc1xuXHQgKiBAcGFyYW0gW29wZXJhdG9yXSBUaGUgb3BlcmF0b3IgbmFtZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0dXBkYXRlQ29uZGl0aW9uc0J5RmlsdGVyVmFsdWVzKHZhbHVlczogYW55LCBvcGVyYXRvcj86IHN0cmluZyk6IHZvaWQge1xuXHRcdGNvbnN0IGNvbmRpdGlvbnMgPSBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLl9maWx0ZXJWYWx1ZXNUb0NvbmRpdGlvbnModmFsdWVzLCBvcGVyYXRvcik7XG5cdFx0dGhpcy5zZXRDb25kaXRpb25zKGNvbmRpdGlvbnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgZmlsdGVyIG1vZGVsIHdpdGggY29uZGl0aW9uc1xuXHQgKiBzZW50IGJ5IHRoZSB7QGxpbmsgc2FwLnVpLm1kYy5GaWx0ZXJGaWVsZCBGaWx0ZXJGaWVsZH0uXG5cdCAqXG5cdCAqIEBwYXJhbSBjb25kaXRpb25zIEFycmF5IG9mIGZpbHRlciBjb25kaXRpb25zXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHR1cGRhdGVGaWx0ZXJNb2RlbEJ5Q29uZGl0aW9ucyhjb25kaXRpb25zOiBhbnlbXSk6IHZvaWQge1xuXHRcdGNvbnN0IG9wZXJhdG9yID0gY29uZGl0aW9uc1swXT8ub3BlcmF0b3IgfHwgXCJcIjtcblx0XHRjb25zdCBmb3JtYXRPcHRpb25zOiBGb3JtYXRPcHRpb25zVHlwZSA9IG9wZXJhdG9yICE9PSBcIlwiID8geyBvcGVyYXRvcnM6IFtvcGVyYXRvcl0gfSA6IHsgb3BlcmF0b3JzOiBbXSB9O1xuXHRcdGlmICh0aGlzLmdldEJpbmRpbmdDb250ZXh0KEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuRklMVEVSX01PREVMX0FMSUFTKSkge1xuXHRcdFx0Y29uc3Qgc3RyaW5nVmFsdWUgPSBDdXN0b21GaWx0ZXJGaWVsZENvbnRlbnRXcmFwcGVyLl9jb25kaXRpb25zVG9GaWx0ZXJNb2RlbFN0cmluZyhjb25kaXRpb25zLCBmb3JtYXRPcHRpb25zKTtcblx0XHRcdHRoaXMuX2ZpbHRlck1vZGVsLnNldFByb3BlcnR5KFxuXHRcdFx0XHR0aGlzLmdldEJpbmRpbmdDb250ZXh0KEN1c3RvbUZpbHRlckZpZWxkQ29udGVudFdyYXBwZXIuRklMVEVSX01PREVMX0FMSUFTKT8uZ2V0UGF0aCgpLFxuXHRcdFx0XHRzdHJpbmdWYWx1ZVxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRnZXRBY2Nlc3NpYmlsaXR5SW5mbygpOiBhbnkge1xuXHRcdGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKTtcblx0XHRyZXR1cm4gY29udGVudD8uZ2V0QWNjZXNzaWJpbGl0eUluZm8/LigpIHx8IHt9O1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFpQ3FCQSwrQjtFQVRyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO1NBQ0NDLGNBQWMsQ0FBQyxzREFBRCxDLFVBRWJDLGtCQUFrQixDQUFDLDBCQUFELEMsVUFJbEJDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUscUJBQVI7SUFBK0JDLFlBQVksRUFBRTtFQUE3QyxDQUFELEMsVUFHUkYsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFSO0lBQW1CQyxZQUFZLEVBQUU7RUFBakMsQ0FBRCxDLFVBR1JGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsVUFBUjtJQUFvQkMsWUFBWSxFQUFFO0VBQWxDLENBQUQsQyxVQUdSQyxXQUFXLENBQUM7SUFBRUYsSUFBSSxFQUFFLHFCQUFSO0lBQStCRyxRQUFRLEVBQUUsS0FBekM7SUFBZ0RDLFNBQVMsRUFBRTtFQUEzRCxDQUFELEMsVUFHWEMsS0FBSyxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQ0FVQ0MsTSxHQUFQLGdCQUFjQyxhQUFkLEVBQTRDQyxPQUE1QyxFQUE0RjtNQUMz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