@sapui5/sap.fe.core 1.100.0 → 1.101.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 (250) hide show
  1. package/package.json +4 -4
  2. package/src/sap/fe/core/.library +2 -3
  3. package/src/sap/fe/core/AnnotationHelper.js +43 -24
  4. package/src/sap/fe/core/AnnotationHelper.ts +43 -37
  5. package/src/sap/fe/core/AppComponent.js +20 -27
  6. package/src/sap/fe/core/AppComponent.ts +19 -25
  7. package/src/sap/fe/core/AppStateHandler.js +5 -5
  8. package/src/sap/fe/core/AppStateHandler.ts +2 -2
  9. package/src/sap/fe/core/BaseController.js +9 -9
  10. package/src/sap/fe/core/BaseController.ts +3 -4
  11. package/src/sap/fe/core/CommonUtils.js +74 -17
  12. package/src/sap/fe/core/CommonUtils.ts +181 -110
  13. package/src/sap/fe/core/ExtensionAPI.js +11 -10
  14. package/src/sap/fe/core/ExtensionAPI.ts +22 -30
  15. package/src/sap/fe/core/PageController.js +12 -11
  16. package/src/sap/fe/core/PageController.ts +34 -34
  17. package/src/sap/fe/core/RouterProxy.js +36 -24
  18. package/src/sap/fe/core/RouterProxy.ts +36 -22
  19. package/src/sap/fe/core/TemplateComponent.js +193 -118
  20. package/src/sap/fe/core/TemplateComponent.ts +105 -117
  21. package/src/sap/fe/core/TemplateModel.js +6 -8
  22. package/src/sap/fe/core/TemplateModel.ts +2 -2
  23. package/src/sap/fe/core/TransactionHelper.js +33 -18
  24. package/src/sap/fe/core/TransactionHelper.ts +172 -153
  25. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +31 -17
  26. package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +52 -45
  27. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +16 -6
  28. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +13 -3
  29. package/src/sap/fe/core/actions/collaboration/Manage.js +9 -7
  30. package/src/sap/fe/core/actions/collaboration/Manage.ts +33 -31
  31. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +53 -56
  32. package/src/sap/fe/core/actions/draft.js +308 -166
  33. package/src/sap/fe/core/actions/draft.ts +177 -74
  34. package/src/sap/fe/core/actions/messageHandling.js +25 -13
  35. package/src/sap/fe/core/actions/messageHandling.ts +49 -39
  36. package/src/sap/fe/core/actions/operations.js +4 -4
  37. package/src/sap/fe/core/actions/operations.ts +3 -2
  38. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +60 -0
  39. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +37 -0
  40. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +165 -0
  41. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +178 -0
  42. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +707 -0
  43. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +628 -0
  44. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +436 -0
  45. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +431 -0
  46. package/src/sap/fe/core/controllerextensions/EditFlow.js +506 -245
  47. package/src/sap/fe/core/controllerextensions/EditFlow.ts +395 -275
  48. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +11 -11
  49. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +6 -7
  50. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +15 -17
  51. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +98 -96
  52. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +15 -15
  53. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +60 -53
  54. package/src/sap/fe/core/controllerextensions/InternalRouting.js +94 -42
  55. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +114 -91
  56. package/src/sap/fe/core/controllerextensions/KPIManagement.js +14 -14
  57. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +12 -11
  58. package/src/sap/fe/core/controllerextensions/MassEdit.js +12 -12
  59. package/src/sap/fe/core/controllerextensions/MassEdit.ts +8 -9
  60. package/src/sap/fe/core/controllerextensions/MessageHandler.js +13 -25
  61. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +18 -28
  62. package/src/sap/fe/core/controllerextensions/PageReady.js +25 -23
  63. package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -47
  64. package/src/sap/fe/core/controllerextensions/Paginator.js +13 -13
  65. package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -18
  66. package/src/sap/fe/core/controllerextensions/Placeholder.js +10 -10
  67. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  68. package/src/sap/fe/core/controllerextensions/Routing.js +11 -11
  69. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  70. package/src/sap/fe/core/controllerextensions/Share.js +16 -16
  71. package/src/sap/fe/core/controllerextensions/Share.ts +32 -32
  72. package/src/sap/fe/core/controllerextensions/SideEffects.js +14 -14
  73. package/src/sap/fe/core/controllerextensions/SideEffects.ts +62 -63
  74. package/src/sap/fe/core/controllerextensions/ViewState.js +17 -31
  75. package/src/sap/fe/core/controllerextensions/ViewState.ts +93 -102
  76. package/src/sap/fe/core/controls/Any.js +28 -0
  77. package/src/sap/fe/core/controls/Any.ts +30 -0
  78. package/src/sap/fe/core/controls/CommandExecution.js +38 -15
  79. package/src/sap/fe/core/controls/CommandExecution.ts +20 -20
  80. package/src/sap/fe/core/controls/ConditionalWrapper.js +136 -65
  81. package/src/sap/fe/core/controls/ConditionalWrapper.ts +49 -58
  82. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +366 -0
  83. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +278 -0
  84. package/src/sap/fe/core/controls/CustomQuickViewPage.js +73 -36
  85. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +22 -32
  86. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +44 -5
  87. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +116 -66
  88. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +121 -67
  89. package/src/sap/fe/core/controls/FieldWrapper.js +171 -87
  90. package/src/sap/fe/core/controls/FieldWrapper.ts +69 -80
  91. package/src/sap/fe/core/controls/FileWrapper.js +313 -0
  92. package/src/sap/fe/core/controls/FileWrapper.ts +169 -0
  93. package/src/sap/fe/core/controls/FilterBar.js +154 -119
  94. package/src/sap/fe/core/controls/FilterBar.ts +128 -123
  95. package/src/sap/fe/core/controls/FormElementWrapper.js +92 -37
  96. package/src/sap/fe/core/controls/FormElementWrapper.ts +32 -35
  97. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +111 -89
  98. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +86 -82
  99. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -193
  100. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +211 -204
  101. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +152 -116
  102. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +105 -105
  103. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  104. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +2 -2
  105. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +37 -42
  106. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +7 -6
  107. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +15 -14
  108. package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
  109. package/src/sap/fe/core/converters/ManifestSettings.ts +5 -1
  110. package/src/sap/fe/core/converters/annotations/DataField.js +1 -2
  111. package/src/sap/fe/core/converters/annotations/DataField.ts +3 -4
  112. package/src/sap/fe/core/converters/controls/Common/Action.js +10 -10
  113. package/src/sap/fe/core/converters/controls/Common/Action.ts +20 -19
  114. package/src/sap/fe/core/converters/controls/Common/Chart.js +8 -8
  115. package/src/sap/fe/core/converters/controls/Common/Chart.ts +12 -11
  116. package/src/sap/fe/core/converters/controls/Common/Form.js +5 -5
  117. package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -1
  118. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  119. package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -3
  120. package/src/sap/fe/core/converters/controls/Common/Table.js +245 -112
  121. package/src/sap/fe/core/converters/controls/Common/Table.ts +305 -193
  122. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -5
  123. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +4 -7
  124. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +72 -43
  125. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +134 -100
  126. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +6 -6
  127. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +20 -18
  128. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +5 -2
  129. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +4 -1
  130. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  131. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -4
  132. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +27 -24
  133. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +49 -40
  134. package/src/sap/fe/core/converters/templates/ListReportConverter.js +33 -22
  135. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +77 -62
  136. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -5
  137. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +3 -7
  138. package/src/sap/fe/core/formatters/KPIFormatter.js +3 -12
  139. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -2
  140. package/src/sap/fe/core/formatters/TableFormatter.js +2 -2
  141. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
  142. package/src/sap/fe/core/formatters/ValueFormatter.js +4 -4
  143. package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -7
  144. package/src/sap/fe/core/fpm/Component.js +46 -17
  145. package/src/sap/fe/core/fpm/Component.ts +11 -16
  146. package/src/sap/fe/core/helpers/AppStartupHelper.js +4 -4
  147. package/src/sap/fe/core/helpers/AppStartupHelper.ts +3 -3
  148. package/src/sap/fe/core/helpers/ClassSupport.js +273 -256
  149. package/src/sap/fe/core/helpers/ClassSupport.ts +314 -237
  150. package/src/sap/fe/core/helpers/MassEditHelper.js +173 -39
  151. package/src/sap/fe/core/helpers/MassEditHelper.ts +236 -132
  152. package/src/sap/fe/core/helpers/ModelHelper.js +29 -1
  153. package/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
  154. package/src/sap/fe/core/helpers/PasteHelper.js +4 -4
  155. package/src/sap/fe/core/helpers/PasteHelper.ts +4 -3
  156. package/src/sap/fe/core/helpers/SemanticDateOperators.js +3 -3
  157. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +3 -1
  158. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  159. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  160. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -7
  161. package/src/sap/fe/core/helpers/StableIdHelper.ts +0 -4
  162. package/src/sap/fe/core/jsx-runtime/jsx.js +35 -5
  163. package/src/sap/fe/core/jsx-runtime/jsx.ts +22 -8
  164. package/src/sap/fe/core/library.js +4 -5
  165. package/src/sap/fe/core/library.ts +17 -17
  166. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  167. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -3
  168. package/src/sap/fe/core/messagebundle.properties +23 -8
  169. package/src/sap/fe/core/messagebundle_ar.properties +2 -0
  170. package/src/sap/fe/core/messagebundle_bg.properties +2 -0
  171. package/src/sap/fe/core/messagebundle_ca.properties +2 -0
  172. package/src/sap/fe/core/messagebundle_cs.properties +2 -0
  173. package/src/sap/fe/core/messagebundle_cy.properties +5 -3
  174. package/src/sap/fe/core/messagebundle_da.properties +2 -0
  175. package/src/sap/fe/core/messagebundle_de.properties +2 -0
  176. package/src/sap/fe/core/messagebundle_el.properties +2 -0
  177. package/src/sap/fe/core/messagebundle_en.properties +2 -0
  178. package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
  179. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
  180. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +2 -0
  181. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +2 -0
  182. package/src/sap/fe/core/messagebundle_es.properties +2 -0
  183. package/src/sap/fe/core/messagebundle_es_MX.properties +2 -0
  184. package/src/sap/fe/core/messagebundle_et.properties +2 -0
  185. package/src/sap/fe/core/messagebundle_fi.properties +2 -0
  186. package/src/sap/fe/core/messagebundle_fr.properties +4 -2
  187. package/src/sap/fe/core/messagebundle_fr_CA.properties +5 -3
  188. package/src/sap/fe/core/messagebundle_hi.properties +2 -0
  189. package/src/sap/fe/core/messagebundle_hr.properties +5 -3
  190. package/src/sap/fe/core/messagebundle_hu.properties +2 -0
  191. package/src/sap/fe/core/messagebundle_id.properties +2 -0
  192. package/src/sap/fe/core/messagebundle_it.properties +2 -0
  193. package/src/sap/fe/core/messagebundle_iw.properties +2 -0
  194. package/src/sap/fe/core/messagebundle_ja.properties +2 -0
  195. package/src/sap/fe/core/messagebundle_kk.properties +2 -0
  196. package/src/sap/fe/core/messagebundle_ko.properties +2 -0
  197. package/src/sap/fe/core/messagebundle_lt.properties +2 -0
  198. package/src/sap/fe/core/messagebundle_lv.properties +5 -3
  199. package/src/sap/fe/core/messagebundle_ms.properties +2 -0
  200. package/src/sap/fe/core/messagebundle_nl.properties +2 -0
  201. package/src/sap/fe/core/messagebundle_no.properties +2 -0
  202. package/src/sap/fe/core/messagebundle_pl.properties +5 -3
  203. package/src/sap/fe/core/messagebundle_pt.properties +2 -0
  204. package/src/sap/fe/core/messagebundle_pt_PT.properties +2 -0
  205. package/src/sap/fe/core/messagebundle_ro.properties +5 -3
  206. package/src/sap/fe/core/messagebundle_ru.properties +5 -3
  207. package/src/sap/fe/core/messagebundle_sh.properties +2 -0
  208. package/src/sap/fe/core/messagebundle_sk.properties +2 -0
  209. package/src/sap/fe/core/messagebundle_sl.properties +2 -0
  210. package/src/sap/fe/core/messagebundle_sv.properties +3 -1
  211. package/src/sap/fe/core/messagebundle_th.properties +2 -0
  212. package/src/sap/fe/core/messagebundle_tr.properties +2 -0
  213. package/src/sap/fe/core/messagebundle_uk.properties +2 -0
  214. package/src/sap/fe/core/messagebundle_vi.properties +2 -0
  215. package/src/sap/fe/core/messagebundle_zh_CN.properties +5 -3
  216. package/src/sap/fe/core/messagebundle_zh_TW.properties +5 -3
  217. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +4 -4
  218. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
  219. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +5 -5
  220. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +1 -2
  221. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +7 -7
  222. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +6 -5
  223. package/src/sap/fe/core/services/NavigationServiceFactory.js +4 -4
  224. package/src/sap/fe/core/services/NavigationServiceFactory.ts +1 -1
  225. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -4
  226. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +1 -1
  227. package/src/sap/fe/core/services/RoutingServiceFactory.js +98 -62
  228. package/src/sap/fe/core/services/RoutingServiceFactory.ts +51 -42
  229. package/src/sap/fe/core/services/ShellServicesFactory.js +69 -29
  230. package/src/sap/fe/core/services/ShellServicesFactory.ts +26 -29
  231. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
  232. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +1 -1
  233. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +8 -8
  234. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +6 -17
  235. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
  236. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +6 -3
  237. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  238. package/src/sap/fe/core/support/CommonHelper.ts +0 -3
  239. package/src/sap/fe/core/templating/DataModelPathHelper.js +2 -9
  240. package/src/sap/fe/core/templating/DataModelPathHelper.ts +32 -38
  241. package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
  242. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +26 -5
  243. package/src/sap/fe/core/templating/PropertyHelper.js +15 -1
  244. package/src/sap/fe/core/templating/PropertyHelper.ts +30 -23
  245. package/src/sap/fe/core/templating/UIFormatters.js +121 -21
  246. package/src/sap/fe/core/templating/UIFormatters.ts +134 -49
  247. package/src/sap/fe/core/type/Email.js +26 -8
  248. package/src/sap/fe/core/type/Email.ts +8 -7
  249. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +0 -78
  250. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +0 -65
@@ -2,21 +2,15 @@
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/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/core/AppStateHandler", "sap/base/Log", "sap/fe/core/support/Diagnostics", "sap/ui/model/json/JSONModel", "sap/fe/core/library", "sap/fe/core/helpers/ModelHelper", "sap/fe/macros/internal/valuehelp/ValueListHelper", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/ComponentMetadata", "./converters/MetaModelConverter"], function (UIComponent, RouterProxy, AppStateHandler, Log, Diagnostics, JSONModel, library, ModelHelper, ValueListHelper, ClassSupport, ComponentMetadata, MetaModelConverter) {
5
+ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/core/AppStateHandler", "sap/base/Log", "sap/fe/core/support/Diagnostics", "sap/ui/model/json/JSONModel", "sap/fe/core/library", "sap/fe/core/helpers/ModelHelper", "sap/fe/macros/internal/valuehelp/ValueListHelper", "sap/fe/core/helpers/ClassSupport", "./converters/MetaModelConverter", "sap/ui/core/Core"], function (UIComponent, RouterProxy, AppStateHandler, Log, Diagnostics, JSONModel, library, ModelHelper, ValueListHelper, ClassSupport, MetaModelConverter, Core) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _class, _class2, _temp;
9
9
 
10
10
  var deleteModelCacheData = MetaModelConverter.deleteModelCacheData;
11
- var UI5Class = ClassSupport.UI5Class;
11
+ var defineUI5Class = ClassSupport.defineUI5Class;
12
12
 
13
- function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }
14
-
15
- function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
16
-
17
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
18
-
19
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
13
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
20
14
 
21
15
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
22
16
 
@@ -45,7 +39,7 @@ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/cor
45
39
  * @name sap.fe.core.AppComponent
46
40
  */
47
41
 
48
- var AppComponent = (_dec = UI5Class("sap.fe.core.AppComponent", ComponentMetadata, {
42
+ var AppComponent = (_dec = defineUI5Class("sap.fe.core.AppComponent", {
49
43
  interfaces: ["sap.ui.core.IAsyncContentCreation"],
50
44
  config: {
51
45
  fullWidth: true
@@ -112,7 +106,7 @@ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/cor
112
106
  designtime: "sap/fe/core/designtime/AppComponent.designtime",
113
107
  library: "sap.fe.core"
114
108
  }), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_UIComponent) {
115
- _inherits(AppComponent, _UIComponent);
109
+ _inheritsLoose(AppComponent, _UIComponent);
116
110
 
117
111
  function AppComponent() {
118
112
  return _UIComponent.apply(this, arguments) || this;
@@ -195,18 +189,20 @@ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/cor
195
189
  };
196
190
 
197
191
  _proto.init = function init() {
198
- this.setModel(new JSONModel({
192
+ var uiModel = new JSONModel({
199
193
  editMode: library.EditMode.Display,
200
194
  isEditable: false,
201
195
  draftStatus: library.DraftStatus.Clear,
202
196
  busy: false,
203
197
  busyLocal: {},
204
198
  pages: {}
205
- }), "ui");
199
+ });
206
200
  var oInternalModel = new JSONModel({
207
201
  pages: {}
208
202
  });
203
+ ModelHelper.enhanceUiJSONModel(uiModel, library);
209
204
  ModelHelper.enhanceInternalJSONModel(oInternalModel);
205
+ this.setModel(uiModel, "ui");
210
206
  this.setModel(oInternalModel, "internal");
211
207
  this.bInitializeRouting = this.bInitializeRouting !== undefined ? this.bInitializeRouting : true;
212
208
  this._oRouterProxy = new RouterProxy();
@@ -233,15 +229,10 @@ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/cor
233
229
  // SemanticDateOperators.addSemanticDateOperators();
234
230
  // the init function configures the routing according to the settings above
235
231
  // it will call the createContent function to instantiate the RootView and add it to the UIComponent aggregations
236
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
237
- // @ts-ignore
238
232
 
239
233
 
240
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
241
- args[_key] = arguments[_key];
242
- }
234
+ _UIComponent.prototype.init.call(this);
243
235
 
244
- UIComponent.prototype.init.apply(this, args);
245
236
  AppComponent.instanceMap[this.getId()] = this;
246
237
  };
247
238
 
@@ -260,7 +251,7 @@ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/cor
260
251
 
261
252
  _this.getRouterProxy().init(_this, _this._isFclEnabled());
262
253
  }).catch(function (error) {
263
- var oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core");
254
+ var oResourceBundle = Core.getLibraryResourceBundle("sap.fe.core");
264
255
 
265
256
  _this.getRootViewController().displayMessagePage(oResourceBundle.getText("C_APP_COMPONENT_SAPFE_APPSTART_TECHNICAL_ISSUES"), {
266
257
  title: oResourceBundle.getText("C_COMMON_SAPFE_ERROR"),
@@ -309,6 +300,8 @@ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/cor
309
300
  };
310
301
 
311
302
  _proto.destroy = function destroy() {
303
+ var _UIComponent$prototyp;
304
+
312
305
  // LEAKS, with workaround for some Flex / MDC issue
313
306
  try {
314
307
  // // This one is only a leak if you don't go back to the same component in the long run
@@ -334,19 +327,19 @@ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/cor
334
327
  var oMainModel = this.oModels[undefined];
335
328
  var oHeaders = jQuery.extend({}, oMainModel.oRequestor.mHeaders); // As we need to cleanup the application / handle the dirty object we need to call our cleanup before the models are destroyed
336
329
 
337
- this.getRoutingService().beforeExit(); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
338
- // @ts-ignore
330
+ this.getRoutingService().beforeExit();
339
331
 
340
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
341
- args[_key2] = arguments[_key2];
332
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
333
+ args[_key] = arguments[_key];
342
334
  }
343
335
 
344
- UIComponent.prototype.destroy.apply(this, [args]);
336
+ (_UIComponent$prototyp = _UIComponent.prototype.destroy).call.apply(_UIComponent$prototyp, [this].concat(args));
337
+
345
338
  oMainModel.oRequestor.mHeaders = oHeaders;
346
339
  };
347
340
 
348
341
  _proto.getComponentData = function getComponentData() {
349
- return _get(_getPrototypeOf(AppComponent.prototype), "getComponentData", this).call(this);
342
+ return _UIComponent.prototype.getComponentData.call(this);
350
343
  };
351
344
 
352
345
  _proto.getRoutingService = function getRoutingService() {
@@ -389,4 +382,4 @@ sap.ui.define(["sap/ui/core/UIComponent", "sap/fe/core/RouterProxy", "sap/fe/cor
389
382
  }(UIComponent), _class2.instanceMap = {}, _temp)) || _class);
390
383
  return AppComponent;
391
384
  }, false);
392
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcENvbXBvbmVudC50cyJdLCJuYW1lcyI6WyJOQVZDT05GIiwiRkNMIiwiVklFV05BTUUiLCJST1VURVJDTEFTUyIsIk5BVkNPTlRBSU5FUiIsIkFwcENvbXBvbmVudCIsIlVJNUNsYXNzIiwiQ29tcG9uZW50TWV0YWRhdGEiLCJpbnRlcmZhY2VzIiwiY29uZmlnIiwiZnVsbFdpZHRoIiwibWFuaWZlc3QiLCJzZXJ2aWNlcyIsInJlc291cmNlTW9kZWwiLCJmYWN0b3J5TmFtZSIsInJvdXRpbmdTZXJ2aWNlIiwic3RhcnR1cCIsInNoZWxsU2VydmljZXMiLCJTaGVsbFVJU2VydmljZSIsIm5hdmlnYXRpb25TZXJ2aWNlIiwiZW52aXJvbm1lbnRDYXBhYmlsaXRpZXMiLCJzaWRlRWZmZWN0c1NlcnZpY2UiLCJhc3luY0NvbXBvbmVudFNlcnZpY2UiLCJyb290VmlldyIsInZpZXdOYW1lIiwidHlwZSIsImFzeW5jIiwiaWQiLCJyb3V0aW5nIiwiY29udHJvbElkIiwicm91dGVyQ2xhc3MiLCJ2aWV3VHlwZSIsImNvbnRyb2xBZ2dyZWdhdGlvbiIsImNvbnRhaW5lck9wdGlvbnMiLCJwcm9wYWdhdGVNb2RlbCIsImRlc2lnbnRpbWUiLCJsaWJyYXJ5IiwiX2lzRmNsRW5hYmxlZCIsIm9NYW5pZmVzdFVJNSIsImdldE1ldGFkYXRhIiwiZ2V0TWFuaWZlc3RFbnRyeSIsImdldFJvdXRlclByb3h5IiwiX29Sb3V0ZXJQcm94eSIsImdldEFwcFN0YXRlSGFuZGxlciIsIl9vQXBwU3RhdGVIYW5kbGVyIiwiZ2V0Um9vdFZpZXdDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRhaW5lciIsImdldENvbnRlbnQiLCJpbml0Iiwic2V0TW9kZWwiLCJKU09OTW9kZWwiLCJlZGl0TW9kZSIsIkVkaXRNb2RlIiwiRGlzcGxheSIsImlzRWRpdGFibGUiLCJkcmFmdFN0YXR1cyIsIkRyYWZ0U3RhdHVzIiwiQ2xlYXIiLCJidXN5IiwiYnVzeUxvY2FsIiwicGFnZXMiLCJvSW50ZXJuYWxNb2RlbCIsIk1vZGVsSGVscGVyIiwiZW5oYW5jZUludGVybmFsSlNPTk1vZGVsIiwiYkluaXRpYWxpemVSb3V0aW5nIiwidW5kZWZpbmVkIiwiUm91dGVyUHJveHkiLCJBcHBTdGF0ZUhhbmRsZXIiLCJfb0RpYWdub3N0aWNzIiwiRGlhZ25vc3RpY3MiLCJvTW9kZWwiLCJnZXRNb2RlbCIsImVudGl0eUNvbnRhaW5lciIsImdldE1ldGFNb2RlbCIsInJlcXVlc3RPYmplY3QiLCJMb2ciLCJpbmZvIiwiaW5kZXhPZiIsIkVycm9yIiwiYXJncyIsIlVJQ29tcG9uZW50IiwicHJvdG90eXBlIiwiYXBwbHkiLCJpbnN0YW5jZU1hcCIsImdldElkIiwib25TZXJ2aWNlc1N0YXJ0ZWQiLCJmaW5hbGl6ZWRSb3V0aW5nSW5pdGlhbGl6YXRpb24iLCJ0aGVuIiwiYXR0YWNoUm91dGVNYXRjaGVycyIsImdldFJvdXRlciIsImluaXRpYWxpemUiLCJjYXRjaCIsImVycm9yIiwib1Jlc291cmNlQnVuZGxlIiwic2FwIiwidWkiLCJnZXRDb3JlIiwiZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlIiwiZGlzcGxheU1lc3NhZ2VQYWdlIiwiZ2V0VGV4dCIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJtZXNzYWdlIiwiRkNMTGV2ZWwiLCJnZXRSb3V0aW5nU2VydmljZSIsImluaXRpYWxpemVSb3V0aW5nIiwiYXR0YWNoQWZ0ZXJJbml0IiwiZXJyIiwiZXhpdCIsImRlc3Ryb3kiLCJkZWxldGVNb2RlbENhY2hlRGF0YSIsImdldERpYWdub3N0aWNzIiwiVmFsdWVMaXN0SGVscGVyIiwiaW5pdGlhbGl6ZUNhY2hlZFZhbHVlSGVscCIsIndpbmRvdyIsIl9yb3V0aW5nIiwiZSIsIm9NYWluTW9kZWwiLCJvTW9kZWxzIiwib0hlYWRlcnMiLCJqUXVlcnkiLCJleHRlbmQiLCJvUmVxdWVzdG9yIiwibUhlYWRlcnMiLCJiZWZvcmVFeGl0IiwiZ2V0Q29tcG9uZW50RGF0YSIsImdldFNoZWxsU2VydmljZXMiLCJnZXROYXZpZ2F0aW9uU2VydmljZSIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0U3RhcnR1cFBhcmFtZXRlcnMiLCJvQ29tcG9uZW50RGF0YSIsIm9TdGFydFVwUGFyYW1ldGVycyIsInN0YXJ0dXBQYXJhbWV0ZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZXN0b3JlIiwidmlld1N0YXRlIiwib25SZXN0b3JlIiwic3VzcGVuZCIsIm9uU3VzcGVuZCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQSxNQUFNQSxPQUFPLEdBQUc7QUFDZkMsSUFBQUEsR0FBRyxFQUFFO0FBQ0pDLE1BQUFBLFFBQVEsRUFBRSx5Q0FETjtBQUVKQyxNQUFBQSxXQUFXLEVBQUU7QUFGVCxLQURVO0FBS2ZDLElBQUFBLFlBQVksRUFBRTtBQUNiRixNQUFBQSxRQUFRLEVBQUUsa0RBREc7QUFFYkMsTUFBQUEsV0FBVyxFQUFFO0FBRkE7QUFMQyxHQUFoQjtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O01BcUVNRSxZLFdBcEVMQyxRQUFRLENBQUMsMEJBQUQsRUFBNkJDLGlCQUE3QixFQUFnRDtBQUN4REMsSUFBQUEsVUFBVSxFQUFFLENBQUMsbUNBQUQsQ0FENEM7QUFFeERDLElBQUFBLE1BQU0sRUFBRTtBQUNQQyxNQUFBQSxTQUFTLEVBQUU7QUFESixLQUZnRDtBQUt4REMsSUFBQUEsUUFBUSxFQUFFO0FBQ1QsaUJBQVc7QUFDVkMsUUFBQUEsUUFBUSxFQUFFO0FBQ1RDLFVBQUFBLGFBQWEsRUFBRTtBQUNkQyxZQUFBQSxXQUFXLEVBQUUsMkNBREM7QUFFZCx1QkFBVyxTQUZHO0FBR2Qsd0JBQVk7QUFDWCx5QkFBVyxDQUFDLDJCQUFELENBREE7QUFFWCwyQkFBYTtBQUZGO0FBSEUsV0FETjtB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QSxVQUFVLENBQUNLLFVBQVgsQ0FBc0JDLFFBQXRCLEdBQWlDSixRQUFqQztBQUNBLEs7O1dBQ0RNLGdCLEdBQUEsNEJBQXdCO0FBQ3ZCO0FBQ0EsSzs7V0FDRHJCLGlCLEdBQUEsNkJBQW9DO0FBQ25DLGFBQU8sRUFBUCxDQURtQyxDQUNOO0FBQzdCLEs7O1dBQ0RzQixnQixHQUFBLDRCQUFtQztBQUNsQyxhQUFPLEVBQVAsQ0FEa0MsQ0FDTDtBQUM3QixLOztXQUNEQyxvQixHQUFBLGdDQUEwQztBQUN6QyxhQUFPLEVBQVAsQ0FEeUMsQ0FDVDtBQUNoQyxLOztXQUNEQyxxQixHQUFBLGlDQUE0QztBQUMzQyxhQUFPLEVBQVA7QUFDQSxLOztXQUNEQywwQixHQUFBLHNDQUE2RDtBQUM1RCxhQUFPLEVBQVA7QUFDQSxLOztXQUVEQyxvQixHQUFBLGdDQUF1QjtBQUN0QixVQUFNQyxjQUFjLEdBQUcsS0FBS04sZ0JBQUwsRUFBdkI7QUFDQSxVQUFNTyxrQkFBa0IsR0FBSUQsY0FBYyxJQUFJQSxjQUFjLENBQUNFLGlCQUFsQyxJQUF3RCxFQUFuRjtBQUNBLGFBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQkgsa0JBQWhCLENBQVA7QUFDQSxLOztXQUNESSxPLEdBQUEsbUJBQVU7QUFDVDtBQUNDLFdBQUs3RixxQkFBTCxFQUFELENBQXNDOEYsU0FBdEMsQ0FBZ0RDLFNBQWhEO0FBQ0EsSzs7V0FDREMsTyxHQUFBLG1CQUFVO0FBQ1Q7QUFDQyxXQUFLaEcscUJBQUwsRUFBRCxDQUFzQzhGLFNBQXRDLENBQWdERyxTQUFoRDtBQUNBLEs7OztJQTNSeUI1RCxXLFdBQ25CRyxXLEdBQTRDLEU7U0E2UnJDaEYsWSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFVJQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9VSUNvbXBvbmVudFwiO1xuaW1wb3J0IFJvdXRlclByb3h5IGZyb20gXCJzYXAvZmUvY29yZS9Sb3V0ZXJQcm94eVwiO1xuaW1wb3J0IEFwcFN0YXRlSGFuZGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwU3RhdGVIYW5kbGVyXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBEaWFnbm9zdGljcyBmcm9tIFwic2FwL2ZlL2NvcmUvc3VwcG9ydC9EaWFnbm9zdGljc1wiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgbGlicmFyeSBmcm9tIFwic2FwL2ZlL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgVmFsdWVMaXN0SGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL3ZhbHVlaGVscC9WYWx1ZUxpc3RIZWxwZXJcIjtcbmltcG9ydCB7IFVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tcG9uZW50TWV0YWRhdGEgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudE1ldGFkYXRhXCI7XG5pbXBvcnQgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgQmFzZUNvbnRyb2xsZXIgZnJvbSBcIi4vQmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IGRlbGV0ZU1vZGVsQ2FjaGVEYXRhIH0gZnJvbSBcIi4vY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgeyBSb3V0aW5nU2VydmljZSB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9Sb3V0aW5nU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IElTaGVsbFNlcnZpY2VzIH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1NoZWxsU2VydmljZXNGYWN0b3J5XCI7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9OYXZpZ2F0aW9uU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IFNpZGVFZmZlY3RzU2VydmljZSB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9TaWRlRWZmZWN0c1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudENhcGFiaWxpdGllc1NlcnZpY2UgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvRW52aXJvbm1lbnRTZXJ2aWNlRmFjdG9yeVwiO1xuXG5jb25zdCBOQVZDT05GID0ge1xuXHRGQ0w6IHtcblx0XHRWSUVXTkFNRTogXCJzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIudmlldy5GY2xcIixcblx0XHRST1VURVJDTEFTUzogXCJzYXAuZi5yb3V0aW5nLlJvdXRlclwiXG5cdH0sXG5cdE5BVkNPTlRBSU5FUjoge1xuXHRcdFZJRVdOQU1FOiBcInNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci52aWV3Lk5hdkNvbnRhaW5lclwiLFxuXHRcdFJPVVRFUkNMQVNTOiBcInNhcC5tLnJvdXRpbmcuUm91dGVyXCJcblx0fVxufTtcblxuLyoqXG4gKiBNYWluIGNsYXNzIGZvciBjb21wb25lbnRzIHVzZWQgZm9yIGFuIGFwcGxpY2F0aW9uIGluIFNBUCBGaW9yaSBlbGVtZW50cy5cbiAqXG4gKiBBcHBsaWNhdGlvbiBkZXZlbG9wZXJzIHVzaW5nIHRoZSB0ZW1wbGF0ZXMgYW5kIGJ1aWxkaW5nIGJsb2NrcyBwcm92aWRlZCBieSBTQVAgRmlvcmkgZWxlbWVudHMgc2hvdWxkIGNyZWF0ZSB0aGVpciBhcHBzIGJ5IGV4dGVuZGluZyB0aGlzIGNvbXBvbmVudC5cbiAqIFRoaXMgZW5zdXJlcyB0aGF0IGFsbCB0aGUgbmVjZXNzYXJ5IHNlcnZpY2VzIHRoYXQgeW91IG5lZWQgZm9yIHRoZSBidWlsZGluZyBibG9ja3MgYW5kIHRlbXBsYXRlcyB0byB3b3JrIHByb3Blcmx5IGFyZSBzdGFydGVkLlxuICpcbiAqIFdoZW4geW91IHVzZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQgYXMgdGhlIGJhc2UgY29tcG9uZW50LCB5b3UgYWxzbyBuZWVkIHRvIHVzZSBhIHJvb3RWaWV3LiBTQVAgRmlvcmkgZWxlbWVudHMgcHJvdmlkZXMgdHdvIG9wdGlvbnM6IDxici8+XG4gKiAgLSBzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIudmlldy5OYXZDb250YWluZXIgd2hlbiB1c2luZyBzYXAubS5yb3V0aW5nLlJvdXRlciA8YnIvPlxuICogIC0gc2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLnZpZXcuRmNsIHdoZW4gdXNpbmcgc2FwLmYucm91dGluZy5Sb3V0ZXIgKEZDTCB1c2UgY2FzZSkgPGJyLz5cbiAqXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAcHVibGljXG4gKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcbiAqL1xuQFVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XCIsIENvbXBvbmVudE1ldGFkYXRhLCB7XG5cdGludGVyZmFjZXM6IFtcInNhcC51aS5jb3JlLklBc3luY0NvbnRlbnRDcmVhdGlvblwiXSxcblx0Y29uZmlnOiB7XG5cdFx0ZnVsbFdpZHRoOiB0cnVlXG5cdH0sXG5cdG1hbmlmZXN0OiB7XG5cdFx0XCJzYXAudWk1XCI6IHtcblx0XHRcdHNlcnZpY2VzOiB7XG5cdFx0XHRcdHJlc291cmNlTW9kZWw6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5SZXNvdXJjZU1vZGVsU2VydmljZVwiLFxuXHRcdFx0XHRcdFwic3RhcnR1cFwiOiBcIndhaXRGb3JcIixcblx0XHRcdFx0XHRcInNldHRpbmdzXCI6IHtcblx0XHRcdFx0XHRcdFwiYnVuZGxlc1wiOiBbXCJzYXAuZmUuY29yZS5tZXNzYWdlYnVuZGxlXCJdLFxuXHRcdFx0XHRcdFx0XCJtb2RlbE5hbWVcIjogXCJzYXAuZmUuaTE4blwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRyb3V0aW5nU2VydmljZToge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlJvdXRpbmdTZXJ2aWNlXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0c2hlbGxTZXJ2aWNlczoge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlNoZWxsU2VydmljZXNcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRTaGVsbFVJU2VydmljZToge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC51c2hlbGwudWk1c2VydmljZS5TaGVsbFVJU2VydmljZVwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG5hdmlnYXRpb25TZXJ2aWNlOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMuTmF2aWdhdGlvblNlcnZpY2VcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRlbnZpcm9ubWVudENhcGFiaWxpdGllczoge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLkVudmlyb25tZW50U2VydmljZVwiLFxuXHRcdFx0XHRcdHN0YXJ0dXA6IFwid2FpdEZvclwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNpZGVFZmZlY3RzU2VydmljZToge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlNpZGVFZmZlY3RzU2VydmljZVwiLFxuXHRcdFx0XHRcdHN0YXJ0dXA6IFwid2FpdEZvclwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFzeW5jQ29tcG9uZW50U2VydmljZToge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLkFzeW5jQ29tcG9uZW50U2VydmljZVwiLFxuXHRcdFx0XHRcdHN0YXJ0dXA6IFwid2FpdEZvclwiXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRyb290Vmlldzoge1xuXHRcdFx0XHR2aWV3TmFtZTogTkFWQ09ORi5OQVZDT05UQUlORVIuVklFV05BTUUsXG5cdFx0XHRcdHR5cGU6IFwiWE1MXCIsXG5cdFx0XHRcdGFzeW5jOiB0cnVlLFxuXHRcdFx0XHRpZDogXCJhcHBSb290Vmlld1wiXG5cdFx0XHR9LFxuXHRcdFx0cm91dGluZzoge1xuXHRcdFx0XHRjb25maWc6IHtcblx0XHRcdFx0XHRjb250cm9sSWQ6IFwiYXBwQ29udGVudFwiLFxuXHRcdFx0XHRcdHJvdXRlckNsYXNzOiBOQVZDT05GLk5BVkNPTlRBSU5FUi5ST1VURVJDTEFTUyxcblx0XHRcdFx0XHR2aWV3VHlwZTogXCJYTUxcIixcblx0XHRcdFx0XHRjb250cm9sQWdncmVnYXRpb246IFwicGFnZXNcIixcblx0XHRcdFx0XHRhc3luYzogdHJ1ZSxcblx0XHRcdFx0XHRjb250YWluZXJPcHRpb25zOiB7XG5cdFx0XHRcdFx0XHRwcm9wYWdhdGVNb2RlbDogdHJ1ZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZGVzaWdudGltZTogXCJzYXAvZmUvY29yZS9kZXNpZ250aW1lL0FwcENvbXBvbmVudC5kZXNpZ250aW1lXCIsXG5cblx0bGlicmFyeTogXCJzYXAuZmUuY29yZVwiXG59KVxuY2xhc3MgQXBwQ29tcG9uZW50IGV4dGVuZHMgVUlDb21wb25lbnQge1xuXHRzdGF0aWMgaW5zdGFuY2VNYXA6IFJlY29yZDxzdHJpbmcsIEFwcENvbXBvbmVudD4gPSB7fTtcblx0cHJpdmF0ZSBfb1JvdXRlclByb3h5ITogUm91dGVyUHJveHk7XG5cdHByaXZhdGUgX29BcHBTdGF0ZUhhbmRsZXIhOiBBcHBTdGF0ZUhhbmRsZXI7XG5cdHByaXZhdGUgYkluaXRpYWxpemVSb3V0aW5nPzogYm9vbGVhbjtcblx0cHJpdmF0ZSBfb0RpYWdub3N0aWNzITogRGlhZ25vc3RpY3M7XG5cdHByaXZhdGUgZW50aXR5Q29udGFpbmVyOiBhbnk7XG5cdC8qKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQuZ2V0TWV0YWRhdGFcblx0ICogQGZ1bmN0aW9uXG5cdCAqL1xuXG5cdF9pc0ZjbEVuYWJsZWQoKSB7XG5cdFx0Y29uc3Qgb01hbmlmZXN0VUk1ID0gdGhpcy5nZXRNZXRhZGF0YSgpLmdldE1hbmlmZXN0RW50cnkoXCIvc2FwLnVpNVwiLCB0cnVlKTtcblx0XHRyZXR1cm4gTkFWQ09ORi5GQ0wuVklFV05BTUUgPT09IG9NYW5pZmVzdFVJNS5yb290Vmlldy52aWV3TmFtZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYSByZWZlcmVuY2UgdG8gdGhlIFJvdXRlclByb3h5LlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50I2dldFJvdXRlclByb3h5XG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcblx0ICogQHJldHVybnMge29PYmplY3R9IEEgUmVmZXJlbmNlIHRvIHRoZSBSb3V0ZXJQcm94eVxuXHQgKlxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRnZXRSb3V0ZXJQcm94eSgpOiBSb3V0ZXJQcm94eSB7XG5cdFx0cmV0dXJuIHRoaXMuX29Sb3V0ZXJQcm94eTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYSByZWZlcmVuY2UgdG8gdGhlIEFwcFN0YXRlSGFuZGxlci5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudCNnZXRBcHBTdGF0ZUhhbmRsZXJcblx0ICogQG1lbWJlcm9mIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudFxuXHQgKiBAcmV0dXJucyB7b09iamVjdH0gQSByZWZlcmVuY2UgdG8gdGhlIEFwcFN0YXRlSGFuZGxlclxuXHQgKlxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRnZXRBcHBTdGF0ZUhhbmRsZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX29BcHBTdGF0ZUhhbmRsZXI7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBuYXYvRkNMIENvbnRyb2xsZXIuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQjZ2V0Um9vdFZpZXdDb250cm9sbGVyXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcblx0ICogQHJldHVybnMge29PYmplY3R9IEEgcmVmZXJlbmNlIHRvIHRoZSBGQ0wgQ29udHJvbGxlclxuXHQgKlxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRnZXRSb290Vmlld0NvbnRyb2xsZXIoKTogQmFzZUNvbnRyb2xsZXIge1xuXHRcdHJldHVybiAodGhpcy5nZXRSb290Q29udHJvbCgpIGFzIFZpZXcpLmdldENvbnRyb2xsZXIoKSBhcyBCYXNlQ29udHJvbGxlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIE5hdkNvbnRhaW5lciBjb250cm9sIG9yIHRoZSBGQ0wgY29udHJvbC5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudCNnZXRSb290Q29udGFpbmVyXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcblx0ICogQHJldHVybnMge29PYmplY3R9IEEgcmVmZXJlbmNlIHRvIE5hdkNvbnRhaW5lciBjb250cm9sIG9yIHRoZSBGQ0wgY29udHJvbFxuXHQgKlxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQGZpbmFsXG5cdCAqL1xuXHRnZXRSb290Q29udGFpbmVyKCkge1xuXHRcdHJldHVybiAodGhpcy5nZXRSb290Q29udHJvbCgpIGFzIFZpZXcpLmdldENvbnRlbnQoKVswXTtcblx0fVxuXG5cdGluaXQoLi4uYXJnczogYW55W10pIHtcblx0XHR0aGlzLnNldE1vZGVsKFxuXHRcdFx0bmV3IEpTT05Nb2RlbCh7XG5cdFx0XHRcdGVkaXRNb2RlOiBsaWJyYXJ5LkVkaXRNb2RlLkRpc3BsYXksXG5cdFx0XHRcdGlzRWRpdGFibGU6IGZhbHNlLFxuXHRcdFx0XHRkcmFmdFN0YXR1czogbGlicmFyeS5EcmFmdFN0YXR1cy5DbGVhcixcblx0XHRcdFx0YnVzeTogZmFsc2UsXG5cdFx0XHRcdGJ1c3lMb2NhbDoge30sXG5cdFx0XHRcdHBhZ2VzOiB7fVxuXHRcdFx0fSksXG5cdFx0XHRcInVpXCJcblx0XHQpO1xuXG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHtcblx0XHRcdHBhZ2VzOiB7fVxuXHRcdH0pO1xuXG5cdFx0TW9kZWxIZWxwZXIuZW5oYW5jZUludGVybmFsSlNPTk1vZGVsKG9JbnRlcm5hbE1vZGVsKTtcblxuXHRcdHRoaXMuc2V0TW9kZWwob0ludGVybmFsTW9kZWwsIFwiaW50ZXJuYWxcIik7XG5cblx0XHR0aGlzLmJJbml0aWFsaXplUm91dGluZyA9IHRoaXMuYkluaXRpYWxpemVSb3V0aW5nICE9PSB1bmRlZmluZWQgPyB0aGlzLmJJbml0aWFsaXplUm91dGluZyA6IHRydWU7XG5cdFx0dGhpcy5fb1JvdXRlclByb3h5ID0gbmV3IFJvdXRlclByb3h5KCk7XG5cdFx0dGhpcy5fb0FwcFN0YXRlSGFuZGxlciA9IG5ldyBBcHBTdGF0ZUhhbmRsZXIodGhpcyk7XG5cdFx0dGhpcy5fb0RpYWdub3N0aWNzID0gbmV3IERpYWdub3N0aWNzKCk7XG5cdFx0Y29uc3Qgb01vZGVsID0gdGhpcy5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWw7XG5cdFx0aWYgKG9Nb2RlbCkge1xuXHRcdFx0dGhpcy5lbnRpdHlDb250YWluZXIgPSBvTW9kZWwuZ2V0TWV0YU1vZGVsKCkucmVxdWVzdE9iamVjdChcIi8kRW50aXR5Q29udGFpbmVyL1wiKTtcblx0XHR9XG5cblx0XHRjb25zdCBvTWFuaWZlc3RVSTUgPSB0aGlzLmdldE1ldGFkYXRhKCkuZ2V0TWFuaWZlc3RFbnRyeShcIi9zYXAudWk1XCIsIHRydWUpO1xuXHRcdGlmIChcblx0XHRcdG9NYW5pZmVzdFVJNS5yb290Vmlldy52aWV3TmFtZSA9PT0gTkFWQ09ORi5GQ0wuVklFV05BTUUgJiZcblx0XHRcdG9NYW5pZmVzdFVJNS5yb3V0aW5nLmNvbmZpZy5yb3V0ZXJDbGFzcyA9PT0gTkFWQ09ORi5GQ0wuUk9VVEVSQ0xBU1Ncblx0XHQpIHtcblx0XHRcdExvZy5pbmZvKCdSb290Y29udGFpbmVyOiBcIicgKyBOQVZDT05GLkZDTC5WSUVXTkFNRSArICdcIiAtIFJvdXRlcmNsYXNzOiBcIicgKyBOQVZDT05GLkZDTC5ST1VURVJDTEFTUyArICdcIicpO1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRvTWFuaWZlc3RVSTUucm9vdFZpZXcudmlld05hbWUgPT09IE5BVkNPTkYuTkFWQ09OVEFJTkVSLlZJRVdOQU1FICYmXG5cdFx0XHRvTWFuaWZlc3RVSTUucm91dGluZy5jb25maWcucm91dGVyQ2xhc3MgPT09IE5BVkNPTkYuTkFWQ09OVEFJTkVSLlJPVVRFUkNMQVNTXG5cdFx0KSB7XG5cdFx0XHRMb2cuaW5mbygnUm9vdGNvbnRhaW5lcjogXCInICsgTkFWQ09ORi5OQVZDT05UQUlORVIuVklFV05BTUUgKyAnXCIgLSBSb3V0ZXJjbGFzczogXCInICsgTkFWQ09ORi5OQVZDT05UQUlORVIuUk9VVEVSQ0xBU1MgKyAnXCInKTtcblx0XHR9IGVsc2UgaWYgKG9NYW5pZmVzdFVJNS5yb290Vmlldy52aWV3TmFtZS5pbmRleE9mKFwic2FwLmZlXCIpICE9PSAtMSkge1xuXHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdFwiXFxuV3JvbmcgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNvdXBsZSAocm9vdFZpZXcvcm91dGVyQ2xhc3MpIGluIG1hbmlmZXN0IGZpbGUuXFxuXCIgK1xuXHRcdFx0XHRcdFwiQ3VycmVudCB2YWx1ZXMgYXJlIDooXCIgK1xuXHRcdFx0XHRcdG9NYW5pZmVzdFVJNS5yb290Vmlldy52aWV3TmFtZSArXG5cdFx0XHRcdFx0XCIvXCIgK1xuXHRcdFx0XHRcdG9NYW5pZmVzdFVJNS5yb3V0aW5nLmNvbmZpZy5yb3V0ZXJDbGFzcyArXG5cdFx0XHRcdFx0XCIpXFxuXCIgK1xuXHRcdFx0XHRcdFwiRXhwZWN0ZWQgdmFsdWVzIGFyZSBcXG5cIiArXG5cdFx0XHRcdFx0XCJcXHQgLSAoXCIgK1xuXHRcdFx0XHRcdE5BVkNPTkYuTkFWQ09OVEFJTkVSLlZJRVdOQU1FICtcblx0XHRcdFx0XHRcIi9cIiArXG5cdFx0XHRcdFx0TkFWQ09ORi5OQVZDT05UQUlORVIuUk9VVEVSQ0xBU1MgK1xuXHRcdFx0XHRcdFwiKVxcblwiICtcblx0XHRcdFx0XHRcIlxcdCAtIChcIiArXG5cdFx0XHRcdFx0TkFWQ09ORi5GQ0wuVklFV05BTUUgK1xuXHRcdFx0XHRcdFwiL1wiICtcblx0XHRcdFx0XHROQVZDT05GLkZDTC5ST1VURVJDTEFTUyArXG5cdFx0XHRcdFx0XCIpXCJcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdExvZy5pbmZvKCdSb290Y29udGFpbmVyOiBcIicgKyBvTWFuaWZlc3RVSTUucm9vdFZpZXcudmlld05hbWUgKyAnXCIgLSBSb3V0ZXJjbGFzczogXCInICsgTkFWQ09ORi5OQVZDT05UQUlORVIuUk9VVEVSQ0xBU1MgKyAnXCInKTtcblx0XHR9XG5cblx0XHQvLyBBZGRpbmcgU2VtYW50aWMgRGF0ZSBPcGVyYXRvcnNcblx0XHQvLyBDb21tZW50aW5nIHNpbmNlIGl0IGlzIG5vdCBuZWVkZWQgZm9yIFNpbmdsZVJhbmdlXG5cdFx0Ly8gU2VtYW50aWNEYXRlT3BlcmF0b3JzLmFkZFNlbWFudGljRGF0ZU9wZXJhdG9ycygpO1xuXG5cdFx0Ly8gdGhlIGluaXQgZnVuY3Rpb24gY29uZmlndXJlcyB0aGUgcm91dGluZyBhY2NvcmRpbmcgdG8gdGhlIHNldHRpbmdzIGFib3ZlXG5cdFx0Ly8gaXQgd2lsbCBjYWxsIHRoZSBjcmVhdGVDb250ZW50IGZ1bmN0aW9uIHRvIGluc3RhbnRpYXRlIHRoZSBSb290VmlldyBhbmQgYWRkIGl0IHRvIHRoZSBVSUNvbXBvbmVudCBhZ2dyZWdhdGlvbnNcblxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0VUlDb21wb25lbnQucHJvdG90eXBlLmluaXQuYXBwbHkodGhpcywgYXJncyk7XG5cdFx0QXBwQ29tcG9uZW50Lmluc3RhbmNlTWFwW3RoaXMuZ2V0SWQoKV0gPSB0aGlzO1xuXHR9XG5cdG9uU2VydmljZXNTdGFydGVkKCkge1xuXHRcdC8vcm91dGVyIG11c3QgYmUgc3RhcnRlZCBvbmNlIHRoZSByb290Y29udGFpbmVyIGlzIGluaXRpYWxpemVkXG5cdFx0Ly9zdGFydGluZyBvZiB0aGUgcm91dGVyXG5cdFx0Y29uc3QgZmluYWxpemVkUm91dGluZ0luaXRpYWxpemF0aW9uID0gKCkgPT4ge1xuXHRcdFx0dGhpcy5lbnRpdHlDb250YWluZXJcblx0XHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdGlmICgodGhpcy5nZXRSb290Vmlld0NvbnRyb2xsZXIoKSBhcyBhbnkpLmF0dGFjaFJvdXRlTWF0Y2hlcnMpIHtcblx0XHRcdFx0XHRcdCh0aGlzLmdldFJvb3RWaWV3Q29udHJvbGxlcigpIGFzIGFueSkuYXR0YWNoUm91dGVNYXRjaGVycygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLmdldFJvdXRlcigpLmluaXRpYWxpemUoKTtcblx0XHRcdFx0XHR0aGlzLmdldFJvdXRlclByb3h5KCkuaW5pdCh0aGlzLCB0aGlzLl9pc0ZjbEVuYWJsZWQoKSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXJyb3I6IGFueSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IG9SZXNvdXJjZUJ1bmRsZSA9IHNhcC51aS5nZXRDb3JlKCkuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIikgYXMgUmVzb3VyY2VCdW5kbGU7XG5cblx0XHRcdFx0XHQodGhpcy5nZXRSb290Vmlld0NvbnRyb2xsZXIoKSBhcyBhbnkpLmRpc3BsYXlNZXNzYWdlUGFnZShcblx0XHRcdFx0XHRcdG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19BUFBfQ09NUE9ORU5UX1NBUEZFX0FQUFNUQVJUX1RFQ0hOSUNBTF9JU1NVRVNcIiksXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHRpdGxlOiBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfQ09NTU9OX1NBUEZFX0VSUk9SXCIpLFxuXHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogZXJyb3IubWVzc2FnZSxcblx0XHRcdFx0XHRcdFx0RkNMTGV2ZWw6IDBcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0aWYgKHRoaXMuYkluaXRpYWxpemVSb3V0aW5nKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRSb3V0aW5nU2VydmljZSgpXG5cdFx0XHRcdC5pbml0aWFsaXplUm91dGluZygpXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5nZXRSb290Vmlld0NvbnRyb2xsZXIoKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZpbmFsaXplZFJvdXRpbmdJbml0aWFsaXphdGlvbigpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQodGhpcy5nZXRSb290Q29udHJvbCgpIGFzIGFueSkuYXR0YWNoQWZ0ZXJJbml0KGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRmaW5hbGl6ZWRSb3V0aW5nSW5pdGlhbGl6YXRpb24oKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uKGVycjogYW55KSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiY2Fubm90IGNhbm5vdCBpbml0aWFsaXplIHJvdXRpbmc6IFwiICsgZXJyKTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cdGV4aXQoKSB7XG5cdFx0dGhpcy5fb0FwcFN0YXRlSGFuZGxlci5kZXN0cm95KCk7XG5cdFx0dGhpcy5fb1JvdXRlclByb3h5LmRlc3Ryb3koKTtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGRlbGV0ZSB0aGlzLl9vQXBwU3RhdGVIYW5kbGVyO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0ZGVsZXRlIHRoaXMuX29Sb3V0ZXJQcm94eTtcblx0XHRkZWxldGVNb2RlbENhY2hlRGF0YSh0aGlzLmdldE1ldGFNb2RlbCgpKTtcblx0XHR0aGlzLmdldE1vZGVsKFwidWlcIikuZGVzdHJveSgpO1xuXHR9XG5cdGdldE1ldGFNb2RlbCgpOiBPRGF0YU1ldGFNb2RlbCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbDtcblx0fVxuXHRnZXREaWFnbm9zdGljcygpIHtcblx0XHRyZXR1cm4gdGhpcy5fb0RpYWdub3N0aWNzO1xuXHR9XG5cdGRlc3Ryb3koLi4uYXJnczogYW55W10pIHtcblx0XHQvLyBMRUFLUywgd2l0aCB3b3JrYXJvdW5kIGZvciBzb21lIEZsZXggLyBNREMgaXNzdWVcblx0XHR0cnkge1xuXHRcdFx0Ly8gXHQvLyBUaGlzIG9uZSBpcyBvbmx5IGEgbGVhayBpZiB5b3UgZG9uJ3QgZ28gYmFjayB0byB0aGUgc2FtZSBjb21wb25lbnQgaW4gdGhlIGxvbmcgcnVuXG5cdFx0XHQvL2RlbGV0ZSBzYXAudWkuZmwuRmxleENvbnRyb2xsZXJGYWN0b3J5Ll9jb21wb25lbnRJbnN0YW50aWF0aW9uUHJvbWlzZXNbdGhpcy5nZXRJZCgpXTtcblxuXHRcdFx0VmFsdWVMaXN0SGVscGVyLmluaXRpYWxpemVDYWNoZWRWYWx1ZUhlbHAoKTtcblxuXHRcdFx0ZGVsZXRlIEFwcENvbXBvbmVudC5pbnN0YW5jZU1hcFt0aGlzLmdldElkKCldO1xuXG5cdFx0XHQvLyBcdHZhciBvUmVnaXN0cnkgPSBzYXAudWkubWRjLnAxM24uRW5naW5lLmdldEluc3RhbmNlKCkuX2dldFJlZ2lzdHJ5KCk7XG5cdFx0XHQvLyBcdE9iamVjdC5rZXlzKG9SZWdpc3RyeSkuZm9yRWFjaChmdW5jdGlvbihzS2V5KSB7XG5cdFx0XHQvLyBcdFx0T2JqZWN0LmtleXMob1JlZ2lzdHJ5W3NLZXldLmNvbnRyb2xsZXIpLmZvckVhY2goZnVuY3Rpb24oc0NvbnRyb2xsZXJLZXkpIHtcblx0XHRcdC8vIFx0XHRcdG9SZWdpc3RyeVtzS2V5XS5jb250cm9sbGVyW3NDb250cm9sbGVyS2V5XS5kZXN0cm95KCk7XG5cdFx0XHQvLyBcdFx0fSk7XG5cdFx0XHQvLyBcdH0pO1xuXHRcdFx0Ly8gXHRzYXAudWkubWRjLnAxM24uRW5naW5lLmdldEluc3RhbmNlKCkuZGVzdHJveSgpO1xuXHRcdFx0ZGVsZXRlICh3aW5kb3cgYXMgYW55KS5fcm91dGluZztcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRMb2cuaW5mbyhlKTtcblx0XHR9XG5cblx0XHQvL1dPUktBUk9VTkQgZm9yIHN0aWNreSBkaXNjYXJkIHJlcXVlc3QgOiBkdWUgdG8gYXN5bmMgY2FsbGJhY2ssIHJlcXVlc3QgdHJpZ2dlcmVkIGJ5IHRoZSBleGl0QXBwbGljYXRpb24gd2lsbCBiZSBzZW5kIGFmdGVyIHRoZSBVSUNvbXBvbmVudC5wcm90b3R5cGUuZGVzdHJveVxuXHRcdC8vc28gd2UgbmVlZCB0byBjb3B5IHRoZSBSZXF1ZXN0b3IgaGVhZGVycyBhcyBpdCB3aWxsIGJlIGRlc3Ryb3lcblxuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0Y29uc3Qgb01haW5Nb2RlbCA9ICh0aGlzIGFzIGFueSkub01vZGVsc1t1bmRlZmluZWRdO1xuXHRcdGNvbnN0IG9IZWFkZXJzID0galF1ZXJ5LmV4dGVuZCh7fSwgb01haW5Nb2RlbC5vUmVxdWVzdG9yLm1IZWFkZXJzKTtcblx0XHQvLyBBcyB3ZSBuZWVkIHRvIGNsZWFudXAgdGhlIGFwcGxpY2F0aW9uIC8gaGFuZGxlIHRoZSBkaXJ0eSBvYmplY3Qgd2UgbmVlZCB0byBjYWxsIG91ciBjbGVhbnVwIGJlZm9yZSB0aGUgbW9kZWxzIGFyZSBkZXN0cm95ZWRcblx0XHR0aGlzLmdldFJvdXRpbmdTZXJ2aWNlKCkuYmVmb3JlRXhpdCgpO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0VUlDb21wb25lbnQucHJvdG90eXBlLmRlc3Ryb3kuYXBwbHkodGhpcywgW2FyZ3NdKTtcblx0XHRvTWFpbk1vZGVsLm9SZXF1ZXN0b3IubUhlYWRlcnMgPSBvSGVhZGVycztcblx0fVxuXHRnZXRDb21wb25lbnREYXRhKCk6IGFueSB7XG5cdFx0cmV0dXJuIHN1cGVyLmdldENvbXBvbmVudERhdGEoKTtcblx0fVxuXHRnZXRSb3V0aW5nU2VydmljZSgpOiBSb3V0aW5nU2VydmljZSB7XG5cdFx0cmV0dXJuIHt9IGFzIFJvdXRpbmdTZXJ2aWNlOyAvLyBvdmVycmlkZW4gYXQgcnVudGltZVxuXHR9XG5cdGdldFNoZWxsU2VydmljZXMoKTogSVNoZWxsU2VydmljZXMge1xuXHRcdHJldHVybiB7fSBhcyBJU2hlbGxTZXJ2aWNlczsgLy8gb3ZlcnJpZGVuIGF0IHJ1bnRpbWVcblx0fVxuXHRnZXROYXZpZ2F0aW9uU2VydmljZSgpOiBOYXZpZ2F0aW9uU2VydmljZSB7XG5cdFx0cmV0dXJuIHt9IGFzIE5hdmlnYXRpb25TZXJ2aWNlOyAvLyBvdmVycmlkZW4gYXQgcnVudGltZVxuXHR9XG5cdGdldFNpZGVFZmZlY3RzU2VydmljZSgpOiBTaWRlRWZmZWN0c1NlcnZpY2Uge1xuXHRcdHJldHVybiB7fSBhcyBTaWRlRWZmZWN0c1NlcnZpY2U7XG5cdH1cblx0Z2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKTogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNTZXJ2aWNlIHtcblx0XHRyZXR1cm4ge30gYXMgRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNTZXJ2aWNlO1xuXHR9XG5cblx0Z2V0U3RhcnR1cFBhcmFtZXRlcnMoKSB7XG5cdFx0Y29uc3Qgb0NvbXBvbmVudERhdGEgPSB0aGlzLmdldENvbXBvbmVudERhdGEoKSBhcyBhbnk7XG5cdFx0Y29uc3Qgb1N0YXJ0VXBQYXJhbWV0ZXJzID0gKG9Db21wb25lbnREYXRhICYmIG9Db21wb25lbnREYXRhLnN0YXJ0dXBQYXJhbWV0ZXJzKSB8fCB7fTtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG9TdGFydFVwUGFyYW1ldGVycyk7XG5cdH1cblx0cmVzdG9yZSgpIHtcblx0XHQvLyBjYWxsZWQgYnkgRkxQIHdoZW4gYXBwIHNhcC1rZWVwLWFsaXZlIGlzIGVuYWJsZWQgYW5kIGFwcCBpcyByZXN0b3JlZFxuXHRcdCh0aGlzLmdldFJvb3RWaWV3Q29udHJvbGxlcigpIGFzIGFueSkudmlld1N0YXRlLm9uUmVzdG9yZSgpO1xuXHR9XG5cdHN1c3BlbmQoKSB7XG5cdFx0Ly8gY2FsbGVkIGJ5IEZMUCB3aGVuIGFwcCBzYXAta2VlcC1hbGl2ZSBpcyBlbmFibGVkIGFuZCBhcHAgaXMgc3VzcGVuZGVkXG5cdFx0KHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkgYXMgYW55KS52aWV3U3RhdGUub25TdXNwZW5kKCk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXBwQ29tcG9uZW50O1xuIl19
385
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcENvbXBvbmVudC50cyJdLCJuYW1lcyI6WyJOQVZDT05GIiwiRkNMIiwiVklFV05BTUUiLCJST1VURVJDTEFTUyIsIk5BVkNPTlRBSU5FUiIsIkFwcENvbXBvbmVudCIsImRlZmluZVVJNUNsYXNzIiwiaW50ZXJmYWNlcyIsImNvbmZpZyIsImZ1bGxXaWR0aCIsIm1hbmlmZXN0Iiwic2VydmljZXMiLCJyZXNvdXJjZU1vZGVsIiwiZmFjdG9yeU5hbWUiLCJyb3V0aW5nU2VydmljZSIsInN0YXJ0dXAiLCJzaGVsbFNlcnZpY2VzIiwiU2hlbGxVSVNlcnZpY2UiLCJuYXZpZ2F0aW9uU2VydmljZSIsImVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwic2lkZUVmZmVjdHNTZXJ2aWNlIiwiYXN5bmNDb21wb25lbnRTZXJ2aWNlIiwicm9vdFZpZXciLCJ2aWV3TmFtZSIsInR5cGUiLCJhc3luYyIsImlkIiwicm91dGluZyIsImNvbnRyb2xJZCIsInJvdXRlckNsYXNzIiwidmlld1R5cGUiLCJjb250cm9sQWdncmVnYXRpb24iLCJjb250YWluZXJPcHRpb25zIiwicHJvcGFnYXRlTW9kZWwiLCJkZXNpZ250aW1lIiwibGlicmFyeSIsIl9pc0ZjbEVuYWJsZWQiLCJvTWFuaWZlc3RVSTUiLCJnZXRNZXRhZGF0YSIsImdldE1hbmlmZXN0RW50cnkiLCJnZXRSb3V0ZXJQcm94eSIsIl9vUm91dGVyUHJveHkiLCJnZXRBcHBTdGF0ZUhhbmRsZXIiLCJfb0FwcFN0YXRlSGFuZGxlciIsImdldFJvb3RWaWV3Q29udHJvbGxlciIsImdldFJvb3RDb250cm9sIiwiZ2V0Q29udHJvbGxlciIsImdldFJvb3RDb250YWluZXIiLCJnZXRDb250ZW50IiwiaW5pdCIsInVpTW9kZWwiLCJKU09OTW9kZWwiLCJlZGl0TW9kZSIsIkVkaXRNb2RlIiwiRGlzcGxheSIsImlzRWRpdGFibGUiLCJkcmFmdFN0YXR1cyIsIkRyYWZ0U3RhdHVzIiwiQ2xlYXIiLCJidXN5IiwiYnVzeUxvY2FsIiwicGFnZXMiLCJvSW50ZXJuYWxNb2RlbCIsIk1vZGVsSGVscGVyIiwiZW5oYW5jZVVpSlNPTk1vZGVsIiwiZW5oYW5jZUludGVybmFsSlNPTk1vZGVsIiwic2V0TW9kZWwiLCJiSW5pdGlhbGl6ZVJvdXRpbmciLCJ1bmRlZmluZWQiLCJSb3V0ZXJQcm94eSIsIkFwcFN0YXRlSGFuZGxlciIsIl9vRGlhZ25vc3RpY3MiLCJEaWFnbm9zdGljcyIsIm9Nb2RlbCIsImdldE1vZGVsIiwiZW50aXR5Q29udGFpbmVyIiwiZ2V0TWV0YU1vZGVsIiwicmVxdWVzdE9iamVjdCIsIkxvZyIsImluZm8iLCJpbmRleE9mIiwiRXJyb3IiLCJpbnN0YW5jZU1hcCIsImdldElkIiwib25TZXJ2aWNlc1N0YXJ0ZWQiLCJmaW5hbGl6ZWRSb3V0aW5nSW5pdGlhbGl6YXRpb24iLCJ0aGVuIiwiYXR0YWNoUm91dGVNYXRjaGVycyIsImdldFJvdXRlciIsImluaXRpYWxpemUiLCJjYXRjaCIsImVycm9yIiwib1Jlc291cmNlQnVuZGxlIiwiQ29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsImRpc3BsYXlNZXNzYWdlUGFnZSIsImdldFRleHQiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwibWVzc2FnZSIsIkZDTExldmVsIiwiZ2V0Um91dGluZ1NlcnZpY2UiLCJpbml0aWFsaXplUm91dGluZyIsImF0dGFjaEFmdGVySW5pdCIsImVyciIsImV4aXQiLCJkZXN0cm95IiwiZGVsZXRlTW9kZWxDYWNoZURhdGEiLCJnZXREaWFnbm9zdGljcyIsIlZhbHVlTGlzdEhlbHBlciIsImluaXRpYWxpemVDYWNoZWRWYWx1ZUhlbHAiLCJ3aW5kb3ciLCJfcm91dGluZyIsImUiLCJvTWFpbk1vZGVsIiwib01vZGVscyIsIm9IZWFkZXJzIiwialF1ZXJ5IiwiZXh0ZW5kIiwib1JlcXVlc3RvciIsIm1IZWFkZXJzIiwiYmVmb3JlRXhpdCIsImFyZ3MiLCJnZXRDb21wb25lbnREYXRhIiwiZ2V0U2hlbGxTZXJ2aWNlcyIsImdldE5hdmlnYXRpb25TZXJ2aWNlIiwiZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlIiwiZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMiLCJnZXRTdGFydHVwUGFyYW1ldGVycyIsIm9Db21wb25lbnREYXRhIiwib1N0YXJ0VXBQYXJhbWV0ZXJzIiwic3RhcnR1cFBhcmFtZXRlcnMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlc3RvcmUiLCJ2aWV3U3RhdGUiLCJvblJlc3RvcmUiLCJzdXNwZW5kIiwib25TdXNwZW5kIiwiVUlDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUFxQkEsTUFBTUEsT0FBTyxHQUFHO0FBQ2ZDLElBQUFBLEdBQUcsRUFBRTtBQUNKQyxNQUFBQSxRQUFRLEVBQUUseUNBRE47QUFFSkMsTUFBQUEsV0FBVyxFQUFFO0FBRlQsS0FEVTtBQUtmQyxJQUFBQSxZQUFZLEVBQUU7QUFDYkYsTUFBQUEsUUFBUSxFQUFFLGtEQURHO0FBRWJDLE1BQUFBLFdBQVcsRUFBRTtBQUZBO0FBTEMsR0FBaEI7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztNQXFFTUUsWSxXQXBFTEMsY0FBYyxDQUFDLDBCQUFELEVBQTZCO0FBQzNDQyxJQUFBQSxVQUFVLEVBQUUsQ0FBQyxtQ0FBRCxDQUQrQjtBQUUzQ0MsSUFBQUEsTUFBTSxFQUFFO0FBQ1BDLE1BQUFBLFNBQVMsRUFBRTtBQURKLEtBRm1DO0FBSzNDQyxJQUFBQSxRQUFRLEVBQUU7QUFDVCxpQkFBVztBQUNWQyxRQUFBQSxRQUFRLEVBQUU7QUFDVEMsVUFBQUEsYUFBYSxFQUFFO0FBQ2RDLFlBQUFBLFdBQVcsRUFBRSwyQ0FEQztBQUVkLHVCQUFXLFNBRkc7QUFHZCx3QkFBWTtBQUNYLHlCQUFXLENBQUMsMkJBQUQsQ0FEQTtBQUVYLDJCQUFhO0FBRkY7QUFIRSxXQUROO0FBU1RDLFVBQUFBLGNBQWMsRUFBRTtBQUNmRCxZQUFBQSxXQUFX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O1dBQ0R1QixnQixHQUFBLDRCQUFtQztBQUNsQyxhQUFPLEVBQVAsQ0FEa0MsQ0FDTDtBQUM3QixLOztXQUNEQyxvQixHQUFBLGdDQUEwQztBQUN6QyxhQUFPLEVBQVAsQ0FEeUMsQ0FDVDtBQUNoQyxLOztXQUNEQyxxQixHQUFBLGlDQUE0QztBQUMzQyxhQUFPLEVBQVA7QUFDQSxLOztXQUNEQywwQixHQUFBLHNDQUE2RDtBQUM1RCxhQUFPLEVBQVA7QUFDQSxLOztXQUVEQyxvQixHQUFBLGdDQUF1QjtBQUN0QixVQUFNQyxjQUFjLEdBQUcsS0FBS04sZ0JBQUwsRUFBdkI7QUFDQSxVQUFNTyxrQkFBa0IsR0FBSUQsY0FBYyxJQUFJQSxjQUFjLENBQUNFLGlCQUFsQyxJQUF3RCxFQUFuRjtBQUNBLGFBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQkgsa0JBQWhCLENBQVA7QUFDQSxLOztXQUNESSxPLEdBQUEsbUJBQVU7QUFDVDtBQUNDLFdBQUsxRixxQkFBTCxFQUFELENBQXNDMkYsU0FBdEMsQ0FBZ0RDLFNBQWhEO0FBQ0EsSzs7V0FDREMsTyxHQUFBLG1CQUFVO0FBQ1Q7QUFDQyxXQUFLN0YscUJBQUwsRUFBRCxDQUFzQzJGLFNBQXRDLENBQWdERyxTQUFoRDtBQUNBLEs7OztJQXJSeUJDLFcsV0FDbkJ6RCxXLEdBQTRDLEU7U0F1UnJDN0UsWSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFVJQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9VSUNvbXBvbmVudFwiO1xuaW1wb3J0IFJvdXRlclByb3h5IGZyb20gXCJzYXAvZmUvY29yZS9Sb3V0ZXJQcm94eVwiO1xuaW1wb3J0IEFwcFN0YXRlSGFuZGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwU3RhdGVIYW5kbGVyXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBEaWFnbm9zdGljcyBmcm9tIFwic2FwL2ZlL2NvcmUvc3VwcG9ydC9EaWFnbm9zdGljc1wiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgbGlicmFyeSBmcm9tIFwic2FwL2ZlL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgVmFsdWVMaXN0SGVscGVyIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL3ZhbHVlaGVscC9WYWx1ZUxpc3RIZWxwZXJcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IEJhc2VDb250cm9sbGVyIGZyb20gXCIuL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBkZWxldGVNb2RlbENhY2hlRGF0YSB9IGZyb20gXCIuL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHsgUm91dGluZ1NlcnZpY2UgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvUm91dGluZ1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgeyBJU2hlbGxTZXJ2aWNlcyB9IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9TaGVsbFNlcnZpY2VzRmFjdG9yeVwiO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgeyBTaWRlRWZmZWN0c1NlcnZpY2UgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNTZXJ2aWNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0Vudmlyb25tZW50U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IENvcmVFeCB9IGZyb20gXCJ0eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5cbmNvbnN0IE5BVkNPTkYgPSB7XG5cdEZDTDoge1xuXHRcdFZJRVdOQU1FOiBcInNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci52aWV3LkZjbFwiLFxuXHRcdFJPVVRFUkNMQVNTOiBcInNhcC5mLnJvdXRpbmcuUm91dGVyXCJcblx0fSxcblx0TkFWQ09OVEFJTkVSOiB7XG5cdFx0VklFV05BTUU6IFwic2FwLmZlLnRlbXBsYXRlcy5Sb290Q29udGFpbmVyLnZpZXcuTmF2Q29udGFpbmVyXCIsXG5cdFx0Uk9VVEVSQ0xBU1M6IFwic2FwLm0ucm91dGluZy5Sb3V0ZXJcIlxuXHR9XG59O1xuXG4vKipcbiAqIE1haW4gY2xhc3MgZm9yIGNvbXBvbmVudHMgdXNlZCBmb3IgYW4gYXBwbGljYXRpb24gaW4gU0FQIEZpb3JpIGVsZW1lbnRzLlxuICpcbiAqIEFwcGxpY2F0aW9uIGRldmVsb3BlcnMgdXNpbmcgdGhlIHRlbXBsYXRlcyBhbmQgYnVpbGRpbmcgYmxvY2tzIHByb3ZpZGVkIGJ5IFNBUCBGaW9yaSBlbGVtZW50cyBzaG91bGQgY3JlYXRlIHRoZWlyIGFwcHMgYnkgZXh0ZW5kaW5nIHRoaXMgY29tcG9uZW50LlxuICogVGhpcyBlbnN1cmVzIHRoYXQgYWxsIHRoZSBuZWNlc3Nhcnkgc2VydmljZXMgdGhhdCB5b3UgbmVlZCBmb3IgdGhlIGJ1aWxkaW5nIGJsb2NrcyBhbmQgdGVtcGxhdGVzIHRvIHdvcmsgcHJvcGVybHkgYXJlIHN0YXJ0ZWQuXG4gKlxuICogV2hlbiB5b3UgdXNlIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudCBhcyB0aGUgYmFzZSBjb21wb25lbnQsIHlvdSBhbHNvIG5lZWQgdG8gdXNlIGEgcm9vdFZpZXcuIFNBUCBGaW9yaSBlbGVtZW50cyBwcm92aWRlcyB0d28gb3B0aW9uczogPGJyLz5cbiAqICAtIHNhcC5mZS50ZW1wbGF0ZXMuUm9vdENvbnRhaW5lci52aWV3Lk5hdkNvbnRhaW5lciB3aGVuIHVzaW5nIHNhcC5tLnJvdXRpbmcuUm91dGVyIDxici8+XG4gKiAgLSBzYXAuZmUudGVtcGxhdGVzLlJvb3RDb250YWluZXIudmlldy5GY2wgd2hlbiB1c2luZyBzYXAuZi5yb3V0aW5nLlJvdXRlciAoRkNMIHVzZSBjYXNlKSA8YnIvPlxuICpcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBuYW1lIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcIiwge1xuXHRpbnRlcmZhY2VzOiBbXCJzYXAudWkuY29yZS5JQXN5bmNDb250ZW50Q3JlYXRpb25cIl0sXG5cdGNvbmZpZzoge1xuXHRcdGZ1bGxXaWR0aDogdHJ1ZVxuXHR9LFxuXHRtYW5pZmVzdDoge1xuXHRcdFwic2FwLnVpNVwiOiB7XG5cdFx0XHRzZXJ2aWNlczoge1xuXHRcdFx0XHRyZXNvdXJjZU1vZGVsOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMuUmVzb3VyY2VNb2RlbFNlcnZpY2VcIixcblx0XHRcdFx0XHRcInN0YXJ0dXBcIjogXCJ3YWl0Rm9yXCIsXG5cdFx0XHRcdFx0XCJzZXR0aW5nc1wiOiB7XG5cdFx0XHRcdFx0XHRcImJ1bmRsZXNcIjogW1wic2FwLmZlLmNvcmUubWVzc2FnZWJ1bmRsZVwiXSxcblx0XHRcdFx0XHRcdFwibW9kZWxOYW1lXCI6IFwic2FwLmZlLmkxOG5cIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0cm91dGluZ1NlcnZpY2U6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Sb3V0aW5nU2VydmljZVwiLFxuXHRcdFx0XHRcdHN0YXJ0dXA6IFwid2FpdEZvclwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNoZWxsU2VydmljZXM6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0U2hlbGxVSVNlcnZpY2U6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAudXNoZWxsLnVpNXNlcnZpY2UuU2hlbGxVSVNlcnZpY2VcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRuYXZpZ2F0aW9uU2VydmljZToge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLk5hdmlnYXRpb25TZXJ2aWNlXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0ZW52aXJvbm1lbnRDYXBhYmlsaXRpZXM6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5FbnZpcm9ubWVudFNlcnZpY2VcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzaWRlRWZmZWN0c1NlcnZpY2U6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaWRlRWZmZWN0c1NlcnZpY2VcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRhc3luY0NvbXBvbmVudFNlcnZpY2U6IHtcblx0XHRcdFx0XHRmYWN0b3J5TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Bc3luY0NvbXBvbmVudFNlcnZpY2VcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIlxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0cm9vdFZpZXc6IHtcblx0XHRcdFx0dmlld05hbWU6IE5BVkNPTkYuTkFWQ09OVEFJTkVSLlZJRVdOQU1FLFxuXHRcdFx0XHR0eXBlOiBcIlhNTFwiLFxuXHRcdFx0XHRhc3luYzogdHJ1ZSxcblx0XHRcdFx0aWQ6IFwiYXBwUm9vdFZpZXdcIlxuXHRcdFx0fSxcblx0XHRcdHJvdXRpbmc6IHtcblx0XHRcdFx0Y29uZmlnOiB7XG5cdFx0XHRcdFx0Y29udHJvbElkOiBcImFwcENvbnRlbnRcIixcblx0XHRcdFx0XHRyb3V0ZXJDbGFzczogTkFWQ09ORi5OQVZDT05UQUlORVIuUk9VVEVSQ0xBU1MsXG5cdFx0XHRcdFx0dmlld1R5cGU6IFwiWE1MXCIsXG5cdFx0XHRcdFx0Y29udHJvbEFnZ3JlZ2F0aW9uOiBcInBhZ2VzXCIsXG5cdFx0XHRcdFx0YXN5bmM6IHRydWUsXG5cdFx0XHRcdFx0Y29udGFpbmVyT3B0aW9uczoge1xuXHRcdFx0XHRcdFx0cHJvcGFnYXRlTW9kZWw6IHRydWVcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGRlc2lnbnRpbWU6IFwic2FwL2ZlL2NvcmUvZGVzaWdudGltZS9BcHBDb21wb25lbnQuZGVzaWdudGltZVwiLFxuXG5cdGxpYnJhcnk6IFwic2FwLmZlLmNvcmVcIlxufSlcbmNsYXNzIEFwcENvbXBvbmVudCBleHRlbmRzIFVJQ29tcG9uZW50IHtcblx0c3RhdGljIGluc3RhbmNlTWFwOiBSZWNvcmQ8c3RyaW5nLCBBcHBDb21wb25lbnQ+ID0ge307XG5cdHByaXZhdGUgX29Sb3V0ZXJQcm94eSE6IFJvdXRlclByb3h5O1xuXHRwcml2YXRlIF9vQXBwU3RhdGVIYW5kbGVyITogQXBwU3RhdGVIYW5kbGVyO1xuXHRwcml2YXRlIGJJbml0aWFsaXplUm91dGluZz86IGJvb2xlYW47XG5cdHByaXZhdGUgX29EaWFnbm9zdGljcyE6IERpYWdub3N0aWNzO1xuXHRwcml2YXRlIGVudGl0eUNvbnRhaW5lcjogYW55O1xuXHQvKipcblx0ICogQHByaXZhdGVcblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50LmdldE1ldGFkYXRhXG5cdCAqIEBmdW5jdGlvblxuXHQgKi9cblxuXHRfaXNGY2xFbmFibGVkKCkge1xuXHRcdGNvbnN0IG9NYW5pZmVzdFVJNSA9IHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRNYW5pZmVzdEVudHJ5KFwiL3NhcC51aTVcIiwgdHJ1ZSk7XG5cdFx0cmV0dXJuIE5BVkNPTkYuRkNMLlZJRVdOQU1FID09PSBvTWFuaWZlc3RVSTUucm9vdFZpZXcudmlld05hbWU7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBSb3V0ZXJQcm94eS5cblx0ICpcblx0ICogQGZ1bmN0aW9uXG5cdCAqIEBuYW1lIHNhcC5mZS5jb3JlLkFwcENvbXBvbmVudCNnZXRSb3V0ZXJQcm94eVxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XG5cdCAqIEByZXR1cm5zIHtvT2JqZWN0fSBBIFJlZmVyZW5jZSB0byB0aGUgUm91dGVyUHJveHlcblx0ICpcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBmaW5hbFxuXHQgKi9cblx0Z2V0Um91dGVyUHJveHkoKTogUm91dGVyUHJveHkge1xuXHRcdHJldHVybiB0aGlzLl9vUm91dGVyUHJveHk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGEgcmVmZXJlbmNlIHRvIHRoZSBBcHBTdGF0ZUhhbmRsZXIuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQjZ2V0QXBwU3RhdGVIYW5kbGVyXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBDb21wb25lbnRcblx0ICogQHJldHVybnMge29PYmplY3R9IEEgcmVmZXJlbmNlIHRvIHRoZSBBcHBTdGF0ZUhhbmRsZXJcblx0ICpcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBmaW5hbFxuXHQgKi9cblx0Z2V0QXBwU3RhdGVIYW5kbGVyKCkge1xuXHRcdHJldHVybiB0aGlzLl9vQXBwU3RhdGVIYW5kbGVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhIHJlZmVyZW5jZSB0byB0aGUgbmF2L0ZDTCBDb250cm9sbGVyLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQG5hbWUgc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50I2dldFJvb3RWaWV3Q29udHJvbGxlclxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XG5cdCAqIEByZXR1cm5zIHtvT2JqZWN0fSBBIHJlZmVyZW5jZSB0byB0aGUgRkNMIENvbnRyb2xsZXJcblx0ICpcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBmaW5hbFxuXHQgKi9cblx0Z2V0Um9vdFZpZXdDb250cm9sbGVyKCk6IEJhc2VDb250cm9sbGVyIHtcblx0XHRyZXR1cm4gKHRoaXMuZ2V0Um9vdENvbnRyb2woKSBhcyBWaWV3KS5nZXRDb250cm9sbGVyKCkgYXMgQmFzZUNvbnRyb2xsZXI7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBOYXZDb250YWluZXIgY29udHJvbCBvciB0aGUgRkNMIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzYXAuZmUuY29yZS5BcHBDb21wb25lbnQjZ2V0Um9vdENvbnRhaW5lclxuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwQ29tcG9uZW50XG5cdCAqIEByZXR1cm5zIHtvT2JqZWN0fSBBIHJlZmVyZW5jZSB0byBOYXZDb250YWluZXIgY29udHJvbCBvciB0aGUgRkNMIGNvbnRyb2xcblx0ICpcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBmaW5hbFxuXHQgKi9cblx0Z2V0Um9vdENvbnRhaW5lcigpIHtcblx0XHRyZXR1cm4gKHRoaXMuZ2V0Um9vdENvbnRyb2woKSBhcyBWaWV3KS5nZXRDb250ZW50KClbMF07XG5cdH1cblxuXHRpbml0KCkge1xuXHRcdGNvbnN0IHVpTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHtcblx0XHRcdGVkaXRNb2RlOiBsaWJyYXJ5LkVkaXRNb2RlLkRpc3BsYXksXG5cdFx0XHRpc0VkaXRhYmxlOiBmYWxzZSxcblx0XHRcdGRyYWZ0U3RhdHVzOiBsaWJyYXJ5LkRyYWZ0U3RhdHVzLkNsZWFyLFxuXHRcdFx0YnVzeTogZmFsc2UsXG5cdFx0XHRidXN5TG9jYWw6IHt9LFxuXHRcdFx0cGFnZXM6IHt9XG5cdFx0fSk7XG5cdFx0Y29uc3Qgb0ludGVybmFsTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHtcblx0XHRcdHBhZ2VzOiB7fVxuXHRcdH0pO1xuXG5cdFx0TW9kZWxIZWxwZXIuZW5oYW5jZVVpSlNPTk1vZGVsKHVpTW9kZWwsIGxpYnJhcnkpO1xuXHRcdE1vZGVsSGVscGVyLmVuaGFuY2VJbnRlcm5hbEpTT05Nb2RlbChvSW50ZXJuYWxNb2RlbCk7XG5cblx0XHR0aGlzLnNldE1vZGVsKHVpTW9kZWwsIFwidWlcIik7XG5cdFx0dGhpcy5zZXRNb2RlbChvSW50ZXJuYWxNb2RlbCwgXCJpbnRlcm5hbFwiKTtcblxuXHRcdHRoaXMuYkluaXRpYWxpemVSb3V0aW5nID0gdGhpcy5iSW5pdGlhbGl6ZVJvdXRpbmcgIT09IHVuZGVmaW5lZCA/IHRoaXMuYkluaXRpYWxpemVSb3V0aW5nIDogdHJ1ZTtcblx0XHR0aGlzLl9vUm91dGVyUHJveHkgPSBuZXcgUm91dGVyUHJveHkoKTtcblx0XHR0aGlzLl9vQXBwU3RhdGVIYW5kbGVyID0gbmV3IEFwcFN0YXRlSGFuZGxlcih0aGlzKTtcblx0XHR0aGlzLl9vRGlhZ25vc3RpY3MgPSBuZXcgRGlhZ25vc3RpY3MoKTtcblx0XHRjb25zdCBvTW9kZWwgPSB0aGlzLmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbDtcblx0XHRpZiAob01vZGVsKSB7XG5cdFx0XHR0aGlzLmVudGl0eUNvbnRhaW5lciA9IG9Nb2RlbC5nZXRNZXRhTW9kZWwoKS5yZXF1ZXN0T2JqZWN0KFwiLyRFbnRpdHlDb250YWluZXIvXCIpO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9NYW5pZmVzdFVJNSA9IHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRNYW5pZmVzdEVudHJ5KFwiL3NhcC51aTVcIiwgdHJ1ZSk7XG5cdFx0aWYgKFxuXHRcdFx0b01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lID09PSBOQVZDT05GLkZDTC5WSUVXTkFNRSAmJlxuXHRcdFx0b01hbmlmZXN0VUk1LnJvdXRpbmcuY29uZmlnLnJvdXRlckNsYXNzID09PSBOQVZDT05GLkZDTC5ST1VURVJDTEFTU1xuXHRcdCkge1xuXHRcdFx0TG9nLmluZm8oJ1Jvb3Rjb250YWluZXI6IFwiJyArIE5BVkNPTkYuRkNMLlZJRVdOQU1FICsgJ1wiIC0gUm91dGVyY2xhc3M6IFwiJyArIE5BVkNPTkYuRkNMLlJPVVRFUkNMQVNTICsgJ1wiJyk7XG5cdFx0fSBlbHNlIGlmIChcblx0XHRcdG9NYW5pZmVzdFVJNS5yb290Vmlldy52aWV3TmFtZSA9PT0gTkFWQ09ORi5OQVZDT05UQUlORVIuVklFV05BTUUgJiZcblx0XHRcdG9NYW5pZmVzdFVJNS5yb3V0aW5nLmNvbmZpZy5yb3V0ZXJDbGFzcyA9PT0gTkFWQ09ORi5OQVZDT05UQUlORVIuUk9VVEVSQ0xBU1Ncblx0XHQpIHtcblx0XHRcdExvZy5pbmZvKCdSb290Y29udGFpbmVyOiBcIicgKyBOQVZDT05GLk5BVkNPTlRBSU5FUi5WSUVXTkFNRSArICdcIiAtIFJvdXRlcmNsYXNzOiBcIicgKyBOQVZDT05GLk5BVkNPTlRBSU5FUi5ST1VURVJDTEFTUyArICdcIicpO1xuXHRcdH0gZWxzZSBpZiAob01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lLmluZGV4T2YoXCJzYXAuZmVcIikgIT09IC0xKSB7XG5cdFx0XHR0aHJvdyBFcnJvcihcblx0XHRcdFx0XCJcXG5Xcm9uZyBjb25maWd1cmF0aW9uIGZvciB0aGUgY291cGxlIChyb290Vmlldy9yb3V0ZXJDbGFzcykgaW4gbWFuaWZlc3QgZmlsZS5cXG5cIiArXG5cdFx0XHRcdFx0XCJDdXJyZW50IHZhbHVlcyBhcmUgOihcIiArXG5cdFx0XHRcdFx0b01hbmlmZXN0VUk1LnJvb3RWaWV3LnZpZXdOYW1lICtcblx0XHRcdFx0XHRcIi9cIiArXG5cdFx0XHRcdFx0b01hbmlmZXN0VUk1LnJvdXRpbmcuY29uZmlnLnJvdXRlckNsYXNzICtcblx0XHRcdFx0XHRcIilcXG5cIiArXG5cdFx0XHRcdFx0XCJFeHBlY3RlZCB2YWx1ZXMgYXJlIFxcblwiICtcblx0XHRcdFx0XHRcIlxcdCAtIChcIiArXG5cdFx0XHRcdFx0TkFWQ09ORi5OQVZDT05UQUlORVIuVklFV05BTUUgK1xuXHRcdFx0XHRcdFwiL1wiICtcblx0XHRcdFx0XHROQVZDT05GLk5BVkNPTlRBSU5FUi5ST1VURVJDTEFTUyArXG5cdFx0XHRcdFx0XCIpXFxuXCIgK1xuXHRcdFx0XHRcdFwiXFx0IC0gKFwiICtcblx0XHRcdFx0XHROQVZDT05GLkZDTC5WSUVXTkFNRSArXG5cdFx0XHRcdFx0XCIvXCIgK1xuXHRcdFx0XHRcdE5BVkNPTkYuRkNMLlJPVVRFUkNMQVNTICtcblx0XHRcdFx0XHRcIilcIlxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0TG9nLmluZm8oJ1Jvb3Rjb250YWluZXI6IFwiJyArIG9NYW5pZmVzdFVJNS5yb290Vmlldy52aWV3TmFtZSArICdcIiAtIFJvdXRlcmNsYXNzOiBcIicgKyBOQVZDT05GLk5BVkNPTlRBSU5FUi5ST1VURVJDTEFTUyArICdcIicpO1xuXHRcdH1cblxuXHRcdC8vIEFkZGluZyBTZW1hbnRpYyBEYXRlIE9wZXJhdG9yc1xuXHRcdC8vIENvbW1lbnRpbmcgc2luY2UgaXQgaXMgbm90IG5lZWRlZCBmb3IgU2luZ2xlUmFuZ2Vcblx0XHQvLyBTZW1hbnRpY0RhdGVPcGVyYXRvcnMuYWRkU2VtYW50aWNEYXRlT3BlcmF0b3JzKCk7XG5cblx0XHQvLyB0aGUgaW5pdCBmdW5jdGlvbiBjb25maWd1cmVzIHRoZSByb3V0aW5nIGFjY29yZGluZyB0byB0aGUgc2V0dGluZ3MgYWJvdmVcblx0XHQvLyBpdCB3aWxsIGNhbGwgdGhlIGNyZWF0ZUNvbnRlbnQgZnVuY3Rpb24gdG8gaW5zdGFudGlhdGUgdGhlIFJvb3RWaWV3IGFuZCBhZGQgaXQgdG8gdGhlIFVJQ29tcG9uZW50IGFnZ3JlZ2F0aW9uc1xuXG5cdFx0c3VwZXIuaW5pdCgpO1xuXHRcdEFwcENvbXBvbmVudC5pbnN0YW5jZU1hcFt0aGlzLmdldElkKCldID0gdGhpcztcblx0fVxuXHRvblNlcnZpY2VzU3RhcnRlZCgpIHtcblx0XHQvL3JvdXRlciBtdXN0IGJlIHN0YXJ0ZWQgb25jZSB0aGUgcm9vdGNvbnRhaW5lciBpcyBpbml0aWFsaXplZFxuXHRcdC8vc3RhcnRpbmcgb2YgdGhlIHJvdXRlclxuXHRcdGNvbnN0IGZpbmFsaXplZFJvdXRpbmdJbml0aWFsaXphdGlvbiA9ICgpID0+IHtcblx0XHRcdHRoaXMuZW50aXR5Q29udGFpbmVyXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRpZiAoKHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkgYXMgYW55KS5hdHRhY2hSb3V0ZU1hdGNoZXJzKSB7XG5cdFx0XHRcdFx0XHQodGhpcy5nZXRSb290Vmlld0NvbnRyb2xsZXIoKSBhcyBhbnkpLmF0dGFjaFJvdXRlTWF0Y2hlcnMoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGhpcy5nZXRSb3V0ZXIoKS5pbml0aWFsaXplKCk7XG5cdFx0XHRcdFx0dGhpcy5nZXRSb3V0ZXJQcm94eSgpLmluaXQodGhpcywgdGhpcy5faXNGY2xFbmFibGVkKCkpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goKGVycm9yOiBhbnkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBvUmVzb3VyY2VCdW5kbGUgPSAoQ29yZSBhcyBDb3JlRXgpLmdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZShcInNhcC5mZS5jb3JlXCIpO1xuXG5cdFx0XHRcdFx0KHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkgYXMgYW55KS5kaXNwbGF5TWVzc2FnZVBhZ2UoXG5cdFx0XHRcdFx0XHRvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfQVBQX0NPTVBPTkVOVF9TQVBGRV9BUFBTVEFSVF9URUNITklDQUxfSVNTVUVTXCIpLFxuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHR0aXRsZTogb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJDX0NPTU1PTl9TQVBGRV9FUlJPUlwiKSxcblx0XHRcdFx0XHRcdFx0ZGVzY3JpcHRpb246IGVycm9yLm1lc3NhZ2UsXG5cdFx0XHRcdFx0XHRcdEZDTExldmVsOiAwXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSk7XG5cdFx0fTtcblxuXHRcdGlmICh0aGlzLmJJbml0aWFsaXplUm91dGluZykge1xuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0Um91dGluZ1NlcnZpY2UoKVxuXHRcdFx0XHQuaW5pdGlhbGl6ZVJvdXRpbmcoKVxuXHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkpIHtcblx0XHRcdFx0XHRcdHJldHVybiBmaW5hbGl6ZWRSb3V0aW5nSW5pdGlhbGl6YXRpb24oKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0KHRoaXMuZ2V0Um9vdENvbnRyb2woKSBhcyBhbnkpLmF0dGFjaEFmdGVySW5pdChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0ZmluYWxpemVkUm91dGluZ0luaXRpYWxpemF0aW9uKCk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaChmdW5jdGlvbihlcnI6IGFueSkge1xuXHRcdFx0XHRcdExvZy5lcnJvcihcImNhbm5vdCBjYW5ub3QgaW5pdGlhbGl6ZSByb3V0aW5nOiBcIiArIGVycik7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXHRleGl0KCkge1xuXHRcdHRoaXMuX29BcHBTdGF0ZUhhbmRsZXIuZGVzdHJveSgpO1xuXHRcdHRoaXMuX29Sb3V0ZXJQcm94eS5kZXN0cm95KCk7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRkZWxldGUgdGhpcy5fb0FwcFN0YXRlSGFuZGxlcjtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdGRlbGV0ZSB0aGlzLl9vUm91dGVyUHJveHk7XG5cdFx0ZGVsZXRlTW9kZWxDYWNoZURhdGEodGhpcy5nZXRNZXRhTW9kZWwoKSk7XG5cdFx0dGhpcy5nZXRNb2RlbChcInVpXCIpLmRlc3Ryb3koKTtcblx0fVxuXHRnZXRNZXRhTW9kZWwoKTogT0RhdGFNZXRhTW9kZWwge1xuXHRcdHJldHVybiB0aGlzLmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkgYXMgT0RhdGFNZXRhTW9kZWw7XG5cdH1cblx0Z2V0RGlhZ25vc3RpY3MoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX29EaWFnbm9zdGljcztcblx0fVxuXHRkZXN0cm95KC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0Ly8gTEVBS1MsIHdpdGggd29ya2Fyb3VuZCBmb3Igc29tZSBGbGV4IC8gTURDIGlzc3VlXG5cdFx0dHJ5IHtcblx0XHRcdC8vIFx0Ly8gVGhpcyBvbmUgaXMgb25seSBhIGxlYWsgaWYgeW91IGRvbid0IGdvIGJhY2sgdG8gdGhlIHNhbWUgY29tcG9uZW50IGluIHRoZSBsb25nIHJ1blxuXHRcdFx0Ly9kZWxldGUgc2FwLnVpLmZsLkZsZXhDb250cm9sbGVyRmFjdG9yeS5fY29tcG9uZW50SW5zdGFudGlhdGlvblByb21pc2VzW3RoaXMuZ2V0SWQoKV07XG5cblx0XHRcdFZhbHVlTGlzdEhlbHBlci5pbml0aWFsaXplQ2FjaGVkVmFsdWVIZWxwKCk7XG5cblx0XHRcdGRlbGV0ZSBBcHBDb21wb25lbnQuaW5zdGFuY2VNYXBbdGhpcy5nZXRJZCgpXTtcblxuXHRcdFx0Ly8gXHR2YXIgb1JlZ2lzdHJ5ID0gc2FwLnVpLm1kYy5wMTNuLkVuZ2luZS5nZXRJbnN0YW5jZSgpLl9nZXRSZWdpc3RyeSgpO1xuXHRcdFx0Ly8gXHRPYmplY3Qua2V5cyhvUmVnaXN0cnkpLmZvckVhY2goZnVuY3Rpb24oc0tleSkge1xuXHRcdFx0Ly8gXHRcdE9iamVjdC5rZXlzKG9SZWdpc3RyeVtzS2V5XS5jb250cm9sbGVyKS5mb3JFYWNoKGZ1bmN0aW9uKHNDb250cm9sbGVyS2V5KSB7XG5cdFx0XHQvLyBcdFx0XHRvUmVnaXN0cnlbc0tleV0uY29udHJvbGxlcltzQ29udHJvbGxlcktleV0uZGVzdHJveSgpO1xuXHRcdFx0Ly8gXHRcdH0pO1xuXHRcdFx0Ly8gXHR9KTtcblx0XHRcdC8vIFx0c2FwLnVpLm1kYy5wMTNuLkVuZ2luZS5nZXRJbnN0YW5jZSgpLmRlc3Ryb3koKTtcblx0XHRcdGRlbGV0ZSAod2luZG93IGFzIGFueSkuX3JvdXRpbmc7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLmluZm8oZSBhcyBhbnkpO1xuXHRcdH1cblxuXHRcdC8vV09SS0FST1VORCBmb3Igc3RpY2t5IGRpc2NhcmQgcmVxdWVzdCA6IGR1ZSB0byBhc3luYyBjYWxsYmFjaywgcmVxdWVzdCB0cmlnZ2VyZWQgYnkgdGhlIGV4aXRBcHBsaWNhdGlvbiB3aWxsIGJlIHNlbmQgYWZ0ZXIgdGhlIFVJQ29tcG9uZW50LnByb3RvdHlwZS5kZXN0cm95XG5cdFx0Ly9zbyB3ZSBuZWVkIHRvIGNvcHkgdGhlIFJlcXVlc3RvciBoZWFkZXJzIGFzIGl0IHdpbGwgYmUgZGVzdHJveVxuXG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHRcdC8vIEB0cy1pZ25vcmVcblx0XHRjb25zdCBvTWFpbk1vZGVsID0gKHRoaXMgYXMgYW55KS5vTW9kZWxzW3VuZGVmaW5lZF07XG5cdFx0Y29uc3Qgb0hlYWRlcnMgPSBqUXVlcnkuZXh0ZW5kKHt9LCBvTWFpbk1vZGVsLm9SZXF1ZXN0b3IubUhlYWRlcnMpO1xuXHRcdC8vIEFzIHdlIG5lZWQgdG8gY2xlYW51cCB0aGUgYXBwbGljYXRpb24gLyBoYW5kbGUgdGhlIGRpcnR5IG9iamVjdCB3ZSBuZWVkIHRvIGNhbGwgb3VyIGNsZWFudXAgYmVmb3JlIHRoZSBtb2RlbHMgYXJlIGRlc3Ryb3llZFxuXHRcdHRoaXMuZ2V0Um91dGluZ1NlcnZpY2UoKS5iZWZvcmVFeGl0KCk7XG5cdFx0c3VwZXIuZGVzdHJveSguLi5hcmdzKTtcblx0XHRvTWFpbk1vZGVsLm9SZXF1ZXN0b3IubUhlYWRlcnMgPSBvSGVhZGVycztcblx0fVxuXHRnZXRDb21wb25lbnREYXRhKCk6IGFueSB7XG5cdFx0cmV0dXJuIHN1cGVyLmdldENvbXBvbmVudERhdGEoKTtcblx0fVxuXHRnZXRSb3V0aW5nU2VydmljZSgpOiBSb3V0aW5nU2VydmljZSB7XG5cdFx0cmV0dXJuIHt9IGFzIFJvdXRpbmdTZXJ2aWNlOyAvLyBvdmVycmlkZW4gYXQgcnVudGltZVxuXHR9XG5cdGdldFNoZWxsU2VydmljZXMoKTogSVNoZWxsU2VydmljZXMge1xuXHRcdHJldHVybiB7fSBhcyBJU2hlbGxTZXJ2aWNlczsgLy8gb3ZlcnJpZGVuIGF0IHJ1bnRpbWVcblx0fVxuXHRnZXROYXZpZ2F0aW9uU2VydmljZSgpOiBOYXZpZ2F0aW9uU2VydmljZSB7XG5cdFx0cmV0dXJuIHt9IGFzIE5hdmlnYXRpb25TZXJ2aWNlOyAvLyBvdmVycmlkZW4gYXQgcnVudGltZVxuXHR9XG5cdGdldFNpZGVFZmZlY3RzU2VydmljZSgpOiBTaWRlRWZmZWN0c1NlcnZpY2Uge1xuXHRcdHJldHVybiB7fSBhcyBTaWRlRWZmZWN0c1NlcnZpY2U7XG5cdH1cblx0Z2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKTogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNTZXJ2aWNlIHtcblx0XHRyZXR1cm4ge30gYXMgRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNTZXJ2aWNlO1xuXHR9XG5cblx0Z2V0U3RhcnR1cFBhcmFtZXRlcnMoKSB7XG5cdFx0Y29uc3Qgb0NvbXBvbmVudERhdGEgPSB0aGlzLmdldENvbXBvbmVudERhdGEoKSBhcyBhbnk7XG5cdFx0Y29uc3Qgb1N0YXJ0VXBQYXJhbWV0ZXJzID0gKG9Db21wb25lbnREYXRhICYmIG9Db21wb25lbnREYXRhLnN0YXJ0dXBQYXJhbWV0ZXJzKSB8fCB7fTtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG9TdGFydFVwUGFyYW1ldGVycyk7XG5cdH1cblx0cmVzdG9yZSgpIHtcblx0XHQvLyBjYWxsZWQgYnkgRkxQIHdoZW4gYXBwIHNhcC1rZWVwLWFsaXZlIGlzIGVuYWJsZWQgYW5kIGFwcCBpcyByZXN0b3JlZFxuXHRcdCh0aGlzLmdldFJvb3RWaWV3Q29udHJvbGxlcigpIGFzIGFueSkudmlld1N0YXRlLm9uUmVzdG9yZSgpO1xuXHR9XG5cdHN1c3BlbmQoKSB7XG5cdFx0Ly8gY2FsbGVkIGJ5IEZMUCB3aGVuIGFwcCBzYXAta2VlcC1hbGl2ZSBpcyBlbmFibGVkIGFuZCBhcHAgaXMgc3VzcGVuZGVkXG5cdFx0KHRoaXMuZ2V0Um9vdFZpZXdDb250cm9sbGVyKCkgYXMgYW55KS52aWV3U3RhdGUub25TdXNwZW5kKCk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXBwQ29tcG9uZW50O1xuIl19
@@ -7,11 +7,9 @@ import JSONModel from "sap/ui/model/json/JSONModel";
7
7
  import library from "sap/fe/core/library";
8
8
  import ModelHelper from "sap/fe/core/helpers/ModelHelper";
9
9
  import ValueListHelper from "sap/fe/macros/internal/valuehelp/ValueListHelper";
10
- import { UI5Class } from "sap/fe/core/helpers/ClassSupport";
11
- import ComponentMetadata from "sap/ui/core/ComponentMetadata";
10
+ import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
12
11
  import View from "sap/ui/core/mvc/View";
13
12
  import ODataModel from "sap/ui/model/odata/v4/ODataModel";
14
- import ResourceBundle from "sap/base/i18n/ResourceBundle";
15
13
  import BaseController from "./BaseController";
16
14
  import { deleteModelCacheData } from "./converters/MetaModelConverter";
17
15
  import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
@@ -20,6 +18,8 @@ import { IShellServices } from "sap/fe/core/services/ShellServicesFactory";
20
18
  import { NavigationService } from "sap/fe/core/services/NavigationServiceFactory";
21
19
  import { SideEffectsService } from "sap/fe/core/services/SideEffectsServiceFactory";
22
20
  import { EnvironmentCapabilitiesService } from "sap/fe/core/services/EnvironmentServiceFactory";
21
+ import { CoreEx } from "types/extension_types";
22
+ import Core from "sap/ui/core/Core";
23
23
 
24
24
  const NAVCONF = {
25
25
  FCL: {
@@ -46,7 +46,7 @@ const NAVCONF = {
46
46
  * @public
47
47
  * @name sap.fe.core.AppComponent
48
48
  */
49
- @UI5Class("sap.fe.core.AppComponent", ComponentMetadata, {
49
+ @defineUI5Class("sap.fe.core.AppComponent", {
50
50
  interfaces: ["sap.ui.core.IAsyncContentCreation"],
51
51
  config: {
52
52
  fullWidth: true
@@ -192,25 +192,23 @@ class AppComponent extends UIComponent {
192
192
  return (this.getRootControl() as View).getContent()[0];
193
193
  }
194
194
 
195
- init(...args: any[]) {
196
- this.setModel(
197
- new JSONModel({
198
- editMode: library.EditMode.Display,
199
- isEditable: false,
200
- draftStatus: library.DraftStatus.Clear,
201
- busy: false,
202
- busyLocal: {},
203
- pages: {}
204
- }),
205
- "ui"
206
- );
207
-
195
+ init() {
196
+ const uiModel = new JSONModel({
197
+ editMode: library.EditMode.Display,
198
+ isEditable: false,
199
+ draftStatus: library.DraftStatus.Clear,
200
+ busy: false,
201
+ busyLocal: {},
202
+ pages: {}
203
+ });
208
204
  const oInternalModel = new JSONModel({
209
205
  pages: {}
210
206
  });
211
207
 
208
+ ModelHelper.enhanceUiJSONModel(uiModel, library);
212
209
  ModelHelper.enhanceInternalJSONModel(oInternalModel);
213
210
 
211
+ this.setModel(uiModel, "ui");
214
212
  this.setModel(oInternalModel, "internal");
215
213
 
216
214
  this.bInitializeRouting = this.bInitializeRouting !== undefined ? this.bInitializeRouting : true;
@@ -264,9 +262,7 @@ class AppComponent extends UIComponent {
264
262
  // the init function configures the routing according to the settings above
265
263
  // it will call the createContent function to instantiate the RootView and add it to the UIComponent aggregations
266
264
 
267
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
268
- // @ts-ignore
269
- UIComponent.prototype.init.apply(this, args);
265
+ super.init();
270
266
  AppComponent.instanceMap[this.getId()] = this;
271
267
  }
272
268
  onServicesStarted() {
@@ -282,7 +278,7 @@ class AppComponent extends UIComponent {
282
278
  this.getRouterProxy().init(this, this._isFclEnabled());
283
279
  })
284
280
  .catch((error: any) => {
285
- const oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
281
+ const oResourceBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.core");
286
282
 
287
283
  (this.getRootViewController() as any).displayMessagePage(
288
284
  oResourceBundle.getText("C_APP_COMPONENT_SAPFE_APPSTART_TECHNICAL_ISSUES"),
@@ -349,7 +345,7 @@ class AppComponent extends UIComponent {
349
345
  // sap.ui.mdc.p13n.Engine.getInstance().destroy();
350
346
  delete (window as any)._routing;
351
347
  } catch (e) {
352
- Log.info(e);
348
+ Log.info(e as any);
353
349
  }
354
350
 
355
351
  //WORKAROUND for sticky discard request : due to async callback, request triggered by the exitApplication will be send after the UIComponent.prototype.destroy
@@ -361,9 +357,7 @@ class AppComponent extends UIComponent {
361
357
  const oHeaders = jQuery.extend({}, oMainModel.oRequestor.mHeaders);
362
358
  // As we need to cleanup the application / handle the dirty object we need to call our cleanup before the models are destroyed
363
359
  this.getRoutingService().beforeExit();
364
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
365
- // @ts-ignore
366
- UIComponent.prototype.destroy.apply(this, [args]);
360
+ super.destroy(...args);
367
361
  oMainModel.oRequestor.mHeaders = oHeaders;
368
362
  }
369
363
  getComponentData(): any {
@@ -7,9 +7,9 @@ sap.ui.define(["sap/ui/base/Object", "sap/fe/navigation/library", "sap/base/Log"
7
7
 
8
8
  var _dec, _class;
9
9
 
10
- var UI5Class = ClassSupport.UI5Class;
10
+ var defineUI5Class = ClassSupport.defineUI5Class;
11
11
 
12
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
12
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
13
13
 
14
14
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
15
15
 
@@ -31,8 +31,8 @@ sap.ui.define(["sap/ui/base/Object", "sap/fe/navigation/library", "sap/base/Log"
31
31
  }));
32
32
  }
33
33
 
34
- var AppStateHandler = (_dec = UI5Class("sap.fe.core.AppStateHandler"), _dec(_class = /*#__PURE__*/function (_BaseObject) {
35
- _inherits(AppStateHandler, _BaseObject);
34
+ var AppStateHandler = (_dec = defineUI5Class("sap.fe.core.AppStateHandler"), _dec(_class = /*#__PURE__*/function (_BaseObject) {
35
+ _inheritsLoose(AppStateHandler, _BaseObject);
36
36
 
37
37
  // AppComponent
38
38
  function AppStateHandler(oAppComponent) {
@@ -197,4 +197,4 @@ sap.ui.define(["sap/ui/base/Object", "sap/fe/navigation/library", "sap/base/Log"
197
197
 
198
198
  return AppStateHandler;
199
199
  }, true);
200
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcFN0YXRlSGFuZGxlci50cyJdLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIl90b0VTNlByb21pc2UiLCJvVGhlbmFibGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJhcmdzIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJzbGljZSIsImNhbGwiLCJjYXRjaCIsIkFwcFN0YXRlSGFuZGxlciIsIlVJNUNsYXNzIiwib0FwcENvbXBvbmVudCIsIl9tQ3VycmVudEFwcFN0YXRlIiwic0lkIiwiZ2V0SWQiLCJiTm9Sb3V0ZUNoYW5nZSIsIkxvZyIsImluZm8iLCJjcmVhdGVBcHBTdGF0ZSIsIkJ1c3lMb2NrZXIiLCJpc0xvY2tlZCIsIm9OYXZpZ2F0aW9uU2VydmljZSIsImdldE5hdmlnYXRpb25TZXJ2aWNlIiwib1JvdXRlclByb3h5IiwiZ2V0Um91dGVyUHJveHkiLCJzSGFzaCIsImdldEhhc2giLCJvQ29udHJvbGxlciIsImdldFJvb3RDb250cm9sIiwiZ2V0Q29udHJvbGxlciIsImJJc1N0aWNreU1vZGUiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsImdldE1ldGFNb2RlbCIsInZpZXdTdGF0ZSIsInJlamVjdCIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsInJldHJpZXZlVmlld1N0YXRlIiwibUlubmVyQXBwU3RhdGUiLCJvU3RvcmVEYXRhIiwiYXBwU3RhdGUiLCJkZWVwRXF1YWwiLCJvQXBwU3RhdGUiLCJzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwic0FwcFN0YXRlS2V5IiwiYXBwU3RhdGVLZXkiLCJzTmV3SGFzaCIsInJlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwibmF2VG9IYXNoIiwiX2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwib0FwcERhdGEiLCJzTmF2VHlwZSIsIk9iamVjdCIsImFzc2lnbiIsInNlbGVjdGlvblZhcmlhbnREZWZhdWx0cyIsIm9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50Iiwic2VsZWN0aW9uVmFyaWFudCIsIm9TZWxlY3Rpb25WYXJpYW50IiwicmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQiLCJiTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5IiwibmF2aWdhdGlvblR5cGUiLCJhcHBseUFwcFN0YXRlIiwiZ2V0TW9kZWwiLCJnZXRQcm9wZXJ0eSIsImxvY2siLCJwYXJzZU5hdmlnYXRpb24iLCJhRXJyb3JEYXRhIiwid2FybmluZyIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsImlBcHBTdGF0ZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXBwbHlWaWV3U3RhdGUiLCJvRXJyb3IiLCJlcnJvciIsImZpbmFsbHkiLCJ1bmxvY2siLCJjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwIiwicmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAiLCJfaXNMaXN0QmFzZWRDb21wb25lbnQiLCJvQ29tcG9uZW50IiwiaXNBIiwiQmFzZU9iamVjdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUNELE9BQXhCOztBQUNBLFdBQVNFLGFBQVQsQ0FBdUJDLFNBQXZCLEVBQXVDO0FBQ3RDLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUNORixTQUFTLENBQ1BHLElBREYsQ0FDTyxZQUF5QjtBQUFBLHdDQUFiQyxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDOUIsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLENBQVA7QUFDQSxLQUhGLEVBSUVLLEtBSkYsQ0FJUSxZQUF5QjtBQUFBLHlDQUFiTCxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDL0IsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLENBQVA7QUFDQSxLQU5GLENBRE0sQ0FB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QjtBQUNBLE9BdENLLENBQVA7QUF1Q0E7QUFDRDtBQUNEO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ29ELHlCLEdBQUEscUNBQTRCO0FBQzNCLGFBQU8sS0FBS2pFLGNBQVo7QUFDQTtBQUNEO0FBQ0Q7QUFDQTs7O1dBQ0NrRSx1QixHQUFBLG1DQUEwQjtBQUN6QixVQUFJLEtBQUtsRSxjQUFULEVBQXlCO0FBQ3hCLGFBQUtBLGNBQUwsR0FBc0IsS0FBdEI7QUFDQTtBQUNELEs7O1dBQ0RtRSxxQixHQUFBLCtCQUFzQkMsVUFBdEIsRUFBdUM7QUFDdEMsYUFBT0EsVUFBVSxDQUFDQyxHQUFYLENBQWUsZ0NBQWYsQ0FBUDtBQUNBLEs7OztJQTlJNEJDLFU7QUFpSjlCO0FBQ0E7QUFDQTs7U0FDZTVFLGUiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCYXNlT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9PYmplY3RcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcEVxdWFsXCI7XG5pbXBvcnQgeyBVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcIi4vQnVzeUxvY2tlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCIuL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcblxuY29uc3QgTmF2VHlwZSA9IGxpYnJhcnkuTmF2VHlwZTtcbmZ1bmN0aW9uIF90b0VTNlByb21pc2Uob1RoZW5hYmxlOiBhbnkpIHtcblx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShcblx0XHRvVGhlbmFibGVcblx0XHRcdC50aGVuKGZ1bmN0aW9uKC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0XHRcdHJldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmdzKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcblx0XHRcdFx0cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpO1xuXHRcdFx0fSlcblx0KTtcbn1cblxuQFVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXCIpXG5jbGFzcyBBcHBTdGF0ZUhhbmRsZXIgZXh0ZW5kcyBCYXNlT2JqZWN0IHtcblx0cHVibGljIHNJZDogc3RyaW5nO1xuXHRwdWJsaWMgb0FwcENvbXBvbmVudDogYW55OyAvLyBBcHBDb21wb25lbnRcblx0cHVibGljIGJOb1JvdXRlQ2hhbmdlOiBib29sZWFuO1xuXHRwcml2YXRlIF9tQ3VycmVudEFwcFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cdGNvbnN0cnVjdG9yKG9BcHBDb21wb25lbnQ6IGFueSkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vQXBwQ29tcG9uZW50ID0gb0FwcENvbXBvbmVudDtcblx0XHR0aGlzLnNJZCA9IG9BcHBDb21wb25lbnQuZ2V0SWQoKSArIFwiL0FwcFN0YXRlSGFuZGxlclwiO1xuXG5cdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdExvZy5pbmZvKFwiQVBQU1RBVEUgOiBBcHBzdGF0ZSBoYW5kbGVyIGluaXRpYWxpemVkXCIpO1xuXHR9XG5cdGdldElkKCkge1xuXHRcdHJldHVybiB0aGlzLnNJZDtcblx0fVxuXHQvKipcblx0ICogQ3JlYXRlcy91cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICpcblx0ICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSByZXNvbHZpbmcgdGhlIHN0b3JlZCBkYXRhXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0Y3JlYXRlQXBwU3RhdGUoKSB7XG5cdFx0aWYgKEJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcykpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKSxcblx0XHRcdG9Sb3V0ZXJQcm94eSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb3V0ZXJQcm94eSgpLFxuXHRcdFx0c0hhc2ggPSBvUm91dGVyUHJveHkuZ2V0SGFzaCgpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCksXG5cdFx0XHRiSXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKHRoaXMub0FwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSk7XG5cblx0XHRpZiAoIW9Db250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KFwidmlld1N0YXRlIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG5vdCBhdmFpbGFibGUgZm9yIGNvbnRyb2xsZXI6IFwiICsgb0NvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkpO1xuXHRcdH1cblxuXHRcdHJldHVybiBvQ29udHJvbGxlci52aWV3U3RhdGUucmV0cmlldmVWaWV3U3RhdGUoKS50aGVuKChtSW5uZXJBcHBTdGF0ZTogYW55KSA9PiB7XG5cdFx0XHRjb25zdCBvU3RvcmVEYXRhID0geyBhcHBTdGF0ZTogbUlubmVyQXBwU3RhdGUgfTtcblx0XHRcdGlmIChtSW5uZXJBcHBTdGF0ZSAmJiAhZGVlcEVxdWFsKHRoaXMuX21DdXJyZW50QXBwU3RhdGUsIG1Jbm5lckFwcFN0YXRlKSkge1xuXHRcdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlID0gbUlubmVyQXBwU3RhdGU7XG5cdFx0XHRcdGNvbnN0IG9BcHBTdGF0ZSA9IG9OYXZpZ2F0aW9uU2VydmljZS5zdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuKG9TdG9yZURhdGEsIHRydWUpO1xuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBBcHBzdGF0ZSBzdG9yZWRcIik7XG5cdFx0XHRcdGNvbnN0IHNBcHBTdGF0ZUtleSA9IG9BcHBTdGF0ZS5hcHBTdGF0ZUtleTtcblx0XHRcdFx0Y29uc3Qgc05ld0hhc2ggPSBvTmF2aWdhdGlvblNlcnZpY2UucmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoc0hhc2gsIHNBcHBTdGF0ZUtleSk7XG5cdFx0XHRcdGlmIChzTmV3SGFzaCAhPT0gc0hhc2gpIHtcblx0XHRcdFx0XHRvUm91dGVyUHJveHkubmF2VG9IYXNoKHNOZXdIYXNoLCBudWxsLCBudWxsLCBudWxsLCAhYklzU3RpY2t5TW9kZSk7XG5cdFx0XHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogbmF2VG9IYXNoXCIpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG9TdG9yZURhdGE7XG5cdFx0fSk7XG5cdH1cblxuXHRfY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGE6IGFueSwgc05hdlR5cGU6IGFueSkge1xuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBvQXBwRGF0YSwge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudERlZmF1bHRzOiBvQXBwRGF0YS5vRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdHNlbGVjdGlvblZhcmlhbnQ6IG9BcHBEYXRhLm9TZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0cmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6ICFvQXBwRGF0YS5iTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5LFxuXHRcdFx0bmF2aWdhdGlvblR5cGU6IHNOYXZUeXBlXG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogQXBwbGllcyBhbiBhcHBzdGF0ZSBieSBmZXRjaGluZyBhcHBkYXRhIGFuZCBwYXNzaW5nIGl0IHRvIF9hcHBseUFwcHN0YXRlVG9QYWdlLlxuXHQgKlxuXHQgKiBAZnVuY3Rpb25cblx0ICogQHN0YXRpY1xuXHQgKiBAbWVtYmVyb2Ygc2FwLmZlLmNvcmUuQXBwU3RhdGVIYW5kbGVyXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgZm9yIGFzeW5jIGhhbmRsaW5nXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiovXG5cdGFwcGx5QXBwU3RhdGUoKSB7XG5cdFx0aWYgKHRoaXMub0FwcENvbXBvbmVudC5nZXRNb2RlbChcImludGVybmFsXCIpLmdldFByb3BlcnR5KFwiL3VpQWRhcHRhdGlvblwiKSB8fCBCdXN5TG9ja2VyLmlzTG9ja2VkKHRoaXMpKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzKTtcblx0XHQvLyBEb25lIGZvciBidXN5IGluZGljYXRvclxuXHRcdEJ1c3lMb2NrZXIubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKTtcblx0XHQvLyBUT0RPIG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSBzaG91bGQgcmV0dXJuIEVTNiBwcm9taXNlIGluc3RlYWQgalF1ZXJ5LnByb21pc2Vcblx0XHRyZXR1cm4gX3RvRVM2UHJvbWlzZShvTmF2aWdhdGlvblNlcnZpY2UucGFyc2VOYXZpZ2F0aW9uKCkpXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24oYUVycm9yRGF0YTogYW55KSB7XG5cdFx0XHRcdGlmICghYUVycm9yRGF0YSkge1xuXHRcdFx0XHRcdGFFcnJvckRhdGEgPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cud2FybmluZyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGZhaWxlZFwiLCBhRXJyb3JEYXRhWzBdKTtcblx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQvKiBhcHAgZGF0YSAqL1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsxXSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzJdXG5cdFx0XHRcdF07XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGFSZXN1bHRzOiBhbnkpID0+IHtcblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogUGFyc2UgTmF2aWdhdGlvbiBkb25lXCIpO1xuXG5cdFx0XHRcdC8vIGFSZXN1bHRzWzFdID0+IG9TdGFydHVwUGFyYW1ldGVycyAobm90IGV2YWx1YXRlZClcblx0XHRcdFx0Y29uc3Qgb0FwcERhdGEgPSBhUmVzdWx0c1swXSB8fCB7fSxcblx0XHRcdFx0XHRzTmF2VHlwZSA9IGFSZXN1bHRzWzJdIHx8IE5hdlR5cGUuaW5pdGlhbCxcblx0XHRcdFx0XHRvUm9vdENvbnRyb2xsZXIgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCk7XG5cblx0XHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IHNOYXZUeXBlID09PSBOYXZUeXBlLmlBcHBTdGF0ZSA/IG9BcHBEYXRhICYmIG9BcHBEYXRhLmFwcFN0YXRlIDogdW5kZWZpbmVkO1xuXG5cdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcInZpZXdTdGF0ZSBleHRlbnNpb24gcmVxdWlyZWQgZm9yIGNvbnRyb2xsZXIgXCIgKyBvUm9vdENvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCkpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIG9Sb290Q29udHJvbGxlci52aWV3U3RhdGVcblx0XHRcdFx0XHQuYXBwbHlWaWV3U3RhdGUodGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgdGhpcy5fY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGEsIHNOYXZUeXBlKSlcblx0XHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24ob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0XHRcdExvZy5lcnJvcihcImFwcFN0YXRlIGNvdWxkIG5vdCBiZSBhcHBsaWVkXCIsIG9FcnJvcik7XG5cdFx0XHRcdFx0XHR0aHJvdyBvRXJyb3I7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHR9KVxuXHRcdFx0LmZpbmFsbHkoKCkgPT4ge1xuXHRcdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzKTtcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkpO1xuXHRcdFx0fSk7XG5cdH1cblx0LyoqXG5cdCAqIFRvIGNoZWNrIGlzIHJvdXRlIGlzIGNoYW5nZWQgYnkgY2hhbmdlIGluIHRoZSBpQVBQU3RhdGUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtib29sZWFufVxuXHQgKiovXG5cdGNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAoKSB7XG5cdFx0cmV0dXJuIHRoaXMuYk5vUm91dGVDaGFuZ2U7XG5cdH1cblx0LyoqXG5cdCAqIFJlc2V0IHRoZSByb3V0ZSBjaGFuZ2VkIGJ5IGlBUFBTdGF0ZS5cblx0ICoqL1xuXHRyZXNldFJvdXRlQ2hhbmdlZEJ5SUFwcCgpIHtcblx0XHRpZiAodGhpcy5iTm9Sb3V0ZUNoYW5nZSkge1xuXHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IGZhbHNlO1xuXHRcdH1cblx0fVxuXHRfaXNMaXN0QmFzZWRDb21wb25lbnQob0NvbXBvbmVudDogYW55KSB7XG5cdFx0cmV0dXJuIG9Db21wb25lbnQuaXNBKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0Q29tcG9uZW50XCIpO1xuXHR9XG59XG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBBcHBTdGF0ZUhhbmRsZXI7XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFwcFN0YXRlSGFuZGxlci50cyJdLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIl90b0VTNlByb21pc2UiLCJvVGhlbmFibGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJhcmdzIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJzbGljZSIsImNhbGwiLCJjYXRjaCIsIkFwcFN0YXRlSGFuZGxlciIsImRlZmluZVVJNUNsYXNzIiwib0FwcENvbXBvbmVudCIsIl9tQ3VycmVudEFwcFN0YXRlIiwic0lkIiwiZ2V0SWQiLCJiTm9Sb3V0ZUNoYW5nZSIsIkxvZyIsImluZm8iLCJjcmVhdGVBcHBTdGF0ZSIsIkJ1c3lMb2NrZXIiLCJpc0xvY2tlZCIsIm9OYXZpZ2F0aW9uU2VydmljZSIsImdldE5hdmlnYXRpb25TZXJ2aWNlIiwib1JvdXRlclByb3h5IiwiZ2V0Um91dGVyUHJveHkiLCJzSGFzaCIsImdldEhhc2giLCJvQ29udHJvbGxlciIsImdldFJvb3RDb250cm9sIiwiZ2V0Q29udHJvbGxlciIsImJJc1N0aWNreU1vZGUiLCJNb2RlbEhlbHBlciIsImlzU3RpY2t5U2Vzc2lvblN1cHBvcnRlZCIsImdldE1ldGFNb2RlbCIsInZpZXdTdGF0ZSIsInJlamVjdCIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsInJldHJpZXZlVmlld1N0YXRlIiwibUlubmVyQXBwU3RhdGUiLCJvU3RvcmVEYXRhIiwiYXBwU3RhdGUiLCJkZWVwRXF1YWwiLCJvQXBwU3RhdGUiLCJzdG9yZUlubmVyQXBwU3RhdGVXaXRoSW1tZWRpYXRlUmV0dXJuIiwic0FwcFN0YXRlS2V5IiwiYXBwU3RhdGVLZXkiLCJzTmV3SGFzaCIsInJlcGxhY2VJbm5lckFwcFN0YXRlS2V5IiwibmF2VG9IYXNoIiwiX2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwib0FwcERhdGEiLCJzTmF2VHlwZSIsIk9iamVjdCIsImFzc2lnbiIsInNlbGVjdGlvblZhcmlhbnREZWZhdWx0cyIsIm9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50Iiwic2VsZWN0aW9uVmFyaWFudCIsIm9TZWxlY3Rpb25WYXJpYW50IiwicmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQiLCJiTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5IiwibmF2aWdhdGlvblR5cGUiLCJhcHBseUFwcFN0YXRlIiwiZ2V0TW9kZWwiLCJnZXRQcm9wZXJ0eSIsImxvY2siLCJwYXJzZU5hdmlnYXRpb24iLCJhRXJyb3JEYXRhIiwid2FybmluZyIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsImlBcHBTdGF0ZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiYXBwbHlWaWV3U3RhdGUiLCJvRXJyb3IiLCJlcnJvciIsImZpbmFsbHkiLCJ1bmxvY2siLCJjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwIiwicmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAiLCJfaXNMaXN0QmFzZWRDb21wb25lbnQiLCJvQ29tcG9uZW50IiwiaXNBIiwiQmFzZU9iamVjdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBTUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUNELE9BQXhCOztBQUNBLFdBQVNFLGFBQVQsQ0FBdUJDLFNBQXZCLEVBQXVDO0FBQ3RDLFdBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUNORixTQUFTLENBQ1BHLElBREYsQ0FDTyxZQUF5QjtBQUFBLHdDQUFiQyxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDOUIsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLENBQVA7QUFDQSxLQUhGLEVBSUVLLEtBSkYsQ0FJUSxZQUF5QjtBQUFBLHlDQUFiTCxJQUFhO0FBQWJBLFFBQUFBLElBQWE7QUFBQTs7QUFDL0IsYUFBT0MsS0FBSyxDQUFDQyxTQUFOLENBQWdCQyxLQUFoQixDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLENBQVA7QUFDQSxLQU5GLENB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LEVBQWxCO0FBQ0EsT0F0Q0ssQ0FBUDtBQXVDQTtBQUNEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7OztXQUNDb0QseUIsR0FBQSxxQ0FBNEI7QUFDM0IsYUFBTyxLQUFLakUsY0FBWjtBQUNBO0FBQ0Q7QUFDRDtBQUNBOzs7V0FDQ2tFLHVCLEdBQUEsbUNBQTBCO0FBQ3pCLFVBQUksS0FBS2xFLGNBQVQsRUFBeUI7QUFDeEIsYUFBS0EsY0FBTCxHQUFzQixLQUF0QjtBQUNBO0FBQ0QsSzs7V0FDRG1FLHFCLEdBQUEsK0JBQXNCQyxVQUF0QixFQUF1QztBQUN0QyxhQUFPQSxVQUFVLENBQUNDLEdBQVgsQ0FBZSxnQ0FBZixDQUFQO0FBQ0EsSzs7O0lBOUk0QkMsVTtBQWlKOUI7QUFDQTtBQUNBOztTQUNlNUUsZSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IGxpYnJhcnkgZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL2xpYnJhcnlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9kZWVwRXF1YWxcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQnVzeUxvY2tlciBmcm9tIFwiLi9CdXN5TG9ja2VyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcIi4vaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuXG5jb25zdCBOYXZUeXBlID0gbGlicmFyeS5OYXZUeXBlO1xuZnVuY3Rpb24gX3RvRVM2UHJvbWlzZShvVGhlbmFibGU6IGFueSkge1xuXHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFxuXHRcdG9UaGVuYWJsZVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24oLi4uYXJnczogYW55W10pIHtcblx0XHRcdFx0cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiguLi5hcmdzOiBhbnlbXSkge1xuXHRcdFx0XHRyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJncyk7XG5cdFx0XHR9KVxuXHQpO1xufVxuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5BcHBTdGF0ZUhhbmRsZXJcIilcbmNsYXNzIEFwcFN0YXRlSGFuZGxlciBleHRlbmRzIEJhc2VPYmplY3Qge1xuXHRwdWJsaWMgc0lkOiBzdHJpbmc7XG5cdHB1YmxpYyBvQXBwQ29tcG9uZW50OiBhbnk7IC8vIEFwcENvbXBvbmVudFxuXHRwdWJsaWMgYk5vUm91dGVDaGFuZ2U6IGJvb2xlYW47XG5cdHByaXZhdGUgX21DdXJyZW50QXBwU3RhdGU6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblx0Y29uc3RydWN0b3Iob0FwcENvbXBvbmVudDogYW55KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9BcHBDb21wb25lbnQgPSBvQXBwQ29tcG9uZW50O1xuXHRcdHRoaXMuc0lkID0gb0FwcENvbXBvbmVudC5nZXRJZCgpICsgXCIvQXBwU3RhdGVIYW5kbGVyXCI7XG5cblx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gZmFsc2U7XG5cdFx0TG9nLmluZm8oXCJBUFBTVEFURSA6IEFwcHN0YXRlIGhhbmRsZXIgaW5pdGlhbGl6ZWRcIik7XG5cdH1cblx0Z2V0SWQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuc0lkO1xuXHR9XG5cdC8qKlxuXHQgKiBDcmVhdGVzL3VwZGF0ZXMgdGhlIGFwcHN0YXRlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZX0gQSBwcm9taXNlIHJlc29sdmluZyB0aGUgc3RvcmVkIGRhdGFcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRjcmVhdGVBcHBTdGF0ZSgpIHtcblx0XHRpZiAoQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblxuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXROYXZpZ2F0aW9uU2VydmljZSgpLFxuXHRcdFx0b1JvdXRlclByb3h5ID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldFJvdXRlclByb3h5KCksXG5cdFx0XHRzSGFzaCA9IG9Sb3V0ZXJQcm94eS5nZXRIYXNoKCksXG5cdFx0XHRvQ29udHJvbGxlciA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKSxcblx0XHRcdGJJc1N0aWNreU1vZGUgPSBNb2RlbEhlbHBlci5pc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQodGhpcy5vQXBwQ29tcG9uZW50LmdldE1ldGFNb2RlbCgpKTtcblxuXHRcdGlmICghb0NvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoXCJ2aWV3U3RhdGUgY29udHJvbGxlciBleHRlbnNpb24gbm90IGF2YWlsYWJsZSBmb3IgY29udHJvbGxlcjogXCIgKyBvQ29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9Db250cm9sbGVyLnZpZXdTdGF0ZS5yZXRyaWV2ZVZpZXdTdGF0ZSgpLnRoZW4oKG1Jbm5lckFwcFN0YXRlOiBhbnkpID0+IHtcblx0XHRcdGNvbnN0IG9TdG9yZURhdGEgPSB7IGFwcFN0YXRlOiBtSW5uZXJBcHBTdGF0ZSB9O1xuXHRcdFx0aWYgKG1Jbm5lckFwcFN0YXRlICYmICFkZWVwRXF1YWwodGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgbUlubmVyQXBwU3RhdGUpKSB7XG5cdFx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUgPSBtSW5uZXJBcHBTdGF0ZTtcblx0XHRcdFx0Y29uc3Qgb0FwcFN0YXRlID0gb05hdmlnYXRpb25TZXJ2aWNlLnN0b3JlSW5uZXJBcHBTdGF0ZVdpdGhJbW1lZGlhdGVSZXR1cm4ob1N0b3JlRGF0YSwgdHJ1ZSk7XG5cdFx0XHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IEFwcHN0YXRlIHN0b3JlZFwiKTtcblx0XHRcdFx0Y29uc3Qgc0FwcFN0YXRlS2V5ID0gb0FwcFN0YXRlLmFwcFN0YXRlS2V5O1xuXHRcdFx0XHRjb25zdCBzTmV3SGFzaCA9IG9OYXZpZ2F0aW9uU2VydmljZS5yZXBsYWNlSW5uZXJBcHBTdGF0ZUtleShzSGFzaCwgc0FwcFN0YXRlS2V5KTtcblx0XHRcdFx0aWYgKHNOZXdIYXNoICE9PSBzSGFzaCkge1xuXHRcdFx0XHRcdG9Sb3V0ZXJQcm94eS5uYXZUb0hhc2goc05ld0hhc2gsIG51bGwsIG51bGwsIG51bGwsICFiSXNTdGlja3lNb2RlKTtcblx0XHRcdFx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBuYXZUb0hhc2hcIik7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gb1N0b3JlRGF0YTtcblx0XHR9KTtcblx0fVxuXG5cdF9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyhvQXBwRGF0YTogYW55LCBzTmF2VHlwZTogYW55KSB7XG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIG9BcHBEYXRhLCB7XG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHM6IG9BcHBEYXRhLm9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudDogb0FwcERhdGEub1NlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRyZXF1aXJlc1N0YW5kYXJkVmFyaWFudDogIW9BcHBEYXRhLmJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHksXG5cdFx0XHRuYXZpZ2F0aW9uVHlwZTogc05hdlR5cGVcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBcHBsaWVzIGFuIGFwcHN0YXRlIGJ5IGZldGNoaW5nIGFwcGRhdGEgYW5kIHBhc3NpbmcgaXQgdG8gX2FwcGx5QXBwc3RhdGVUb1BhZ2UuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAc3RhdGljXG5cdCAqIEBtZW1iZXJvZiBzYXAuZmUuY29yZS5BcHBTdGF0ZUhhbmRsZXJcblx0ICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSBmb3IgYXN5bmMgaGFuZGxpbmdcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqKi9cblx0YXBwbHlBcHBTdGF0ZSgpIHtcblx0XHRpZiAodGhpcy5vQXBwQ29tcG9uZW50LmdldE1vZGVsKFwiaW50ZXJuYWxcIikuZ2V0UHJvcGVydHkoXCIvdWlBZGFwdGF0aW9uXCIpIHx8IEJ1c3lMb2NrZXIuaXNMb2NrZWQodGhpcykpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0QnVzeUxvY2tlci5sb2NrKHRoaXMpO1xuXHRcdC8vIERvbmUgZm9yIGJ1c3kgaW5kaWNhdG9yXG5cdFx0QnVzeUxvY2tlci5sb2NrKHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpKTtcblxuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXROYXZpZ2F0aW9uU2VydmljZSgpO1xuXHRcdC8vIFRPRE8gb05hdmlnYXRpb25TZXJ2aWNlLnBhcnNlTmF2aWdhdGlvbigpIHNob3VsZCByZXR1cm4gRVM2IHByb21pc2UgaW5zdGVhZCBqUXVlcnkucHJvbWlzZVxuXHRcdHJldHVybiBfdG9FUzZQcm9taXNlKG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbihhRXJyb3JEYXRhOiBhbnkpIHtcblx0XHRcdFx0aWYgKCFhRXJyb3JEYXRhKSB7XG5cdFx0XHRcdFx0YUVycm9yRGF0YSA9IFtdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdExvZy53YXJuaW5nKFwiQVBQU1RBVEU6IFBhcnNlIE5hdmlnYXRpb24gZmFpbGVkXCIsIGFFcnJvckRhdGFbMF0pO1xuXHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdC8qIGFwcCBkYXRhICovXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzFdLFxuXHRcdFx0XHRcdGFFcnJvckRhdGFbMl1cblx0XHRcdFx0XTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoYVJlc3VsdHM6IGFueSkgPT4ge1xuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGRvbmVcIik7XG5cblx0XHRcdFx0Ly8gYVJlc3VsdHNbMV0gPT4gb1N0YXJ0dXBQYXJhbWV0ZXJzIChub3QgZXZhbHVhdGVkKVxuXHRcdFx0XHRjb25zdCBvQXBwRGF0YSA9IGFSZXN1bHRzWzBdIHx8IHt9LFxuXHRcdFx0XHRcdHNOYXZUeXBlID0gYVJlc3VsdHNbMl0gfHwgTmF2VHlwZS5pbml0aWFsLFxuXHRcdFx0XHRcdG9Sb290Q29udHJvbGxlciA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblxuXHRcdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlID0gc05hdlR5cGUgPT09IE5hdlR5cGUuaUFwcFN0YXRlID8gb0FwcERhdGEgJiYgb0FwcERhdGEuYXBwU3RhdGUgOiB1bmRlZmluZWQ7XG5cblx0XHRcdFx0aWYgKCFvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwidmlld1N0YXRlIGV4dGVuc2lvbiByZXF1aXJlZCBmb3IgY29udHJvbGxlciBcIiArIG9Sb290Q29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZVxuXHRcdFx0XHRcdC5hcHBseVZpZXdTdGF0ZSh0aGlzLl9tQ3VycmVudEFwcFN0YXRlLCB0aGlzLl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyhvQXBwRGF0YSwgc05hdlR5cGUpKVxuXHRcdFx0XHRcdC5jYXRjaChmdW5jdGlvbihvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0TG9nLmVycm9yKFwiYXBwU3RhdGUgY291bGQgbm90IGJlIGFwcGxpZWRcIiwgb0Vycm9yKTtcblx0XHRcdFx0XHRcdHRocm93IG9FcnJvcjtcblx0XHRcdFx0XHR9KTtcblx0XHRcdH0pXG5cdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMpO1xuXHRcdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cdFx0XHR9KTtcblx0fVxuXHQvKipcblx0ICogVG8gY2hlY2sgaXMgcm91dGUgaXMgY2hhbmdlZCBieSBjaGFuZ2UgaW4gdGhlIGlBUFBTdGF0ZS5cblx0ICpcblx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdCAqKi9cblx0Y2hlY2tJZlJvdXRlQ2hhbmdlZEJ5SUFwcCgpIHtcblx0XHRyZXR1cm4gdGhpcy5iTm9Sb3V0ZUNoYW5nZTtcblx0fVxuXHQvKipcblx0ICogUmVzZXQgdGhlIHJvdXRlIGNoYW5nZWQgYnkgaUFQUFN0YXRlLlxuXHQgKiovXG5cdHJlc2V0Um91dGVDaGFuZ2VkQnlJQXBwKCkge1xuXHRcdGlmICh0aGlzLmJOb1JvdXRlQ2hhbmdlKSB7XG5cdFx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gZmFsc2U7XG5cdFx0fVxuXHR9XG5cdF9pc0xpc3RCYXNlZENvbXBvbmVudChvQ29tcG9uZW50OiBhbnkpIHtcblx0XHRyZXR1cm4gb0NvbXBvbmVudC5pc0EoXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RDb21wb25lbnRcIik7XG5cdH1cbn1cblxuLyoqXG4gKiBAZ2xvYmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IEFwcFN0YXRlSGFuZGxlcjtcbiJdfQ==
@@ -2,7 +2,7 @@ import BaseObject from "sap/ui/base/Object";
2
2
  import library from "sap/fe/navigation/library";
3
3
  import Log from "sap/base/Log";
4
4
  import deepEqual from "sap/base/util/deepEqual";
5
- import { UI5Class } from "sap/fe/core/helpers/ClassSupport";
5
+ import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
6
6
  import BusyLocker from "./BusyLocker";
7
7
  import ModelHelper from "./helpers/ModelHelper";
8
8
 
@@ -19,7 +19,7 @@ function _toES6Promise(oThenable: any) {
19
19
  );
20
20
  }
21
21
 
22
- @UI5Class("sap.fe.core.AppStateHandler")
22
+ @defineUI5Class("sap.fe.core.AppStateHandler")
23
23
  class AppStateHandler extends BaseObject {
24
24
  public sId: string;
25
25
  public oAppComponent: any; // AppComponent
@@ -2,15 +2,15 @@
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/mvc/Controller", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport", "sap/ui/core/mvc/ControllerMetadata"], function (Controller, CommonUtils, ClassSupport, ControllerMetadata) {
5
+ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/ClassSupport"], function (Controller, CommonUtils, ClassSupport) {
6
6
  "use strict";
7
7
 
8
- var _dec, _class, _class2;
8
+ var _dec, _dec2, _class, _class2;
9
9
 
10
- var UI5Class = ClassSupport.UI5Class;
11
- var Public = ClassSupport.Public;
10
+ var defineUI5Class = ClassSupport.defineUI5Class;
11
+ var publicExtension = ClassSupport.publicExtension;
12
12
 
13
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
13
+ function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
14
14
 
15
15
  function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
16
16
 
@@ -26,8 +26,8 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/CommonUtils", "sap/fe/
26
26
  * @name sap.fe.core.BaseController
27
27
  * @since 1.90.0
28
28
  */
29
- var BaseController = (_dec = UI5Class("sap.fe.core.BaseController", ControllerMetadata, {}), _dec(_class = (_class2 = /*#__PURE__*/function (_Controller) {
30
- _inherits(BaseController, _Controller);
29
+ var BaseController = (_dec = defineUI5Class("sap.fe.core.BaseController"), _dec2 = publicExtension(), _dec(_class = (_class2 = /*#__PURE__*/function (_Controller) {
30
+ _inheritsLoose(BaseController, _Controller);
31
31
 
32
32
  function BaseController() {
33
33
  return _Controller.apply(this, arguments) || this;
@@ -83,7 +83,7 @@ sap.ui.define(["sap/ui/core/mvc/Controller", "sap/fe/core/CommonUtils", "sap/fe/
83
83
  };
84
84
 
85
85
  return BaseController;
86
- }(Controller), (_applyDecoratedDescriptor(_class2.prototype, "getAppComponent", [Public], Object.getOwnPropertyDescriptor(_class2.prototype, "getAppComponent"), _class2.prototype)), _class2)) || _class);
86
+ }(Controller), (_applyDecoratedDescriptor(_class2.prototype, "getAppComponent", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "getAppComponent"), _class2.prototype)), _class2)) || _class);
87
87
  return BaseController;
88
88
  }, false);
89
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhc2VDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIkJhc2VDb250cm9sbGVyIiwiVUk1Q2xhc3MiLCJDb250cm9sbGVyTWV0YWRhdGEiLCJnZXRBcHBDb21wb25lbnQiLCJfb0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0VmlldyIsImdldE1vZGVsIiwic05hbWUiLCJzZXRNb2RlbCIsIm9Nb2RlbCIsImdldFJlc291cmNlQnVuZGxlIiwic0kxOG5Nb2RlbE5hbWUiLCJDb250cm9sbGVyIiwiUHVibGljIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUVNQSxjLFdBRExDLFFBQVEsQ0FBQyw0QkFBRCxFQUErQkMsa0JBQS9CLEVBQW1ELEVBQW5ELEM7Ozs7Ozs7OztBQUdSO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7V0FFQ0MsZSxHQURBLDJCQUNnQztBQUMvQixVQUFJLENBQUMsS0FBS0MsY0FBVixFQUEwQjtBQUN6QixhQUFLQSxjQUFMLEdBQXNCQyxXQUFXLENBQUNGLGVBQVosQ0FBNEIsS0FBS0csT0FBTCxFQUE1QixDQUF0QjtBQUNBOztBQUNELGFBQU8sS0FBS0YsY0FBWjtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ0csUSxHQUFBLGtCQUFTQyxLQUFULEVBQXlCO0FBQ3hCLGFBQU8sS0FBS0YsT0FBTCxHQUFlQyxRQUFmLENBQXdCQyxLQUF4QixDQUFQO0FBQ0E7QUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0NDLFEsR0FBQSxrQkFBU0MsTUFBVCxFQUF3QkYsS0FBeEIsRUFBNkM7QUFDNUMsYUFBTyxLQUFLRixPQUFMLEdBQWVHLFFBQWYsQ0FBd0JDLE1BQXhCLEVBQWdDRixLQUFoQyxDQUFQO0FBQ0EsSzs7V0FFREcsaUIsR0FBQSwyQkFBa0JDLGNBQWxCLEVBQXVDO0FBQ3RDLFVBQUksQ0FBQ0EsY0FBTCxFQUFxQjtBQUNwQkEsUUFBQUEsY0FBYyxHQUFHLE1BQWpCO0FBQ0E7O0FBQ0QsYUFBUSxLQUFLVCxlQUFMLEdBQXVCSSxRQUF2QixDQUFnQ0ssY0FBaEMsQ0FBRCxDQUFtRUQsaUJBQW5FLEVBQVA7QUFDQSxLOzs7SUE1QzJCRSxVLHFFQVUzQkMsTTtTQXFDYWQsYyIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbnRyb2xsZXIgZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgeyBQdWJsaWMsIFVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29udHJvbGxlck1ldGFkYXRhIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlck1ldGFkYXRhXCI7XG5pbXBvcnQgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvcmVzb3VyY2UvUmVzb3VyY2VNb2RlbFwiO1xuaW1wb3J0IFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuXG4vKipcbiAqIEludGVybmFsIGJhc2UgY29udHJvbGxlciBjbGFzcyBmb3IgU0FQIEZpb3JpIGVsZW1lbnRzIGFwcGxpY2F0aW9uLlxuICpcbiAqIElmIHlvdSB3YW50IHRvIGV4dGVuZCBhIGJhc2UgY29udHJvbGxlciBmb3IgeW91ciBjdXN0b20gcGFnZSwgcGxlYXNlIHVzZSBmb3Igc2FwLmZlLmNvcmUuUGFnZUNvbnRyb2xsZXIuXG4gKlxuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQHB1YmxpY1xuICogQG5hbWUgc2FwLmZlLmNvcmUuQmFzZUNvbnRyb2xsZXJcbiAqIEBzaW5jZSAxLjkwLjBcbiAqL1xuQFVJNUNsYXNzKFwic2FwLmZlLmNvcmUuQmFzZUNvbnRyb2xsZXJcIiwgQ29udHJvbGxlck1ldGFkYXRhLCB7fSlcbmNsYXNzIEJhc2VDb250cm9sbGVyIGV4dGVuZHMgQ29udHJvbGxlciB7XG5cdHByaXZhdGUgX29BcHBDb21wb25lbnQ/OiBBcHBDb21wb25lbnQ7XG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGFwcCBjb21wb25lbnQuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzYXAuZmUuY29yZS5BcHBDb21wb25lbnR9IFRoZSBhcHAgY29tcG9uZW50IG9yLCBpZiBub3QgZm91bmQsIG51bGxcblx0ICogQGFsaWFzIHNhcC5mZS5jb3JlLkJhc2VDb250cm9sbGVyI2dldEFwcENvbXBvbmVudFxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkxLjBcblx0ICovXG5cdEBQdWJsaWNcblx0Z2V0QXBwQ29tcG9uZW50KCk6IEFwcENvbXBvbmVudCB7XG5cdFx0aWYgKCF0aGlzLl9vQXBwQ29tcG9uZW50KSB7XG5cdFx0XHR0aGlzLl9vQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuZ2V0VmlldygpKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX29BcHBDb21wb25lbnQgYXMgQXBwQ29tcG9uZW50O1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlbmllbmNlIG1ldGhvZCBwcm92aWRlZCBieSBTQVAgRmlvcmkgZWxlbWVudHMgdG8gZW5hYmxlIGFwcGxpY2F0aW9ucyB0byBpbmNsdWRlIHRoZSB2aWV3IG1vZGVsIGJ5IG5hbWUgaW50byBlYWNoIGNvbnRyb2xsZXIuXG5cdCAqIEBwdWJsaWNcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBtb2RlbCBuYW1lXG5cdCAqIEByZXR1cm5zIHtzYXAudWkubW9kZWwuTW9kZWx9IFRoZSBtb2RlbCBpbnN0YW5jZVxuXHQgKi9cblx0Z2V0TW9kZWwoc05hbWU/OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRWaWV3KCkuZ2V0TW9kZWwoc05hbWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3Igc2V0dGluZyB0aGUgdmlldyBtb2RlbCBpbiBldmVyeSBjb250cm9sbGVyIG9mIHRoZSBhcHBsaWNhdGlvbi5cblx0ICogQHB1YmxpY1xuXHQgKiBAcGFyYW0ge3NhcC51aS5tb2RlbC5Nb2RlbH0gb01vZGVsIFRoZSBtb2RlbCBpbnN0YW5jZVxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc05hbWUgVGhlIG1vZGVsIG5hbWVcblx0ICogQHJldHVybnMge3NhcC51aS5tdmMuVmlld30gVGhlIHZpZXcgaW5zdGFuY2Vcblx0ICovXG5cdHNldE1vZGVsKG9Nb2RlbDogTW9kZWwsIHNOYW1lOiBzdHJpbmcpOiBWaWV3IHtcblx0XHRyZXR1cm4gdGhpcy5nZXRWaWV3KCkuc2V0TW9kZWwob01vZGVsLCBzTmFtZSk7XG5cdH1cblxuXHRnZXRSZXNvdXJjZUJ1bmRsZShzSTE4bk1vZGVsTmFtZTogYW55KSB7XG5cdFx0aWYgKCFzSTE4bk1vZGVsTmFtZSkge1xuXHRcdFx0c0kxOG5Nb2RlbE5hbWUgPSBcImkxOG5cIjtcblx0XHR9XG5cdFx0cmV0dXJuICh0aGlzLmdldEFwcENvbXBvbmVudCgpLmdldE1vZGVsKHNJMThuTW9kZWxOYW1lKSBhcyBSZXNvdXJjZU1vZGVsKS5nZXRSZXNvdXJjZUJ1bmRsZSgpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJhc2VDb250cm9sbGVyO1xuIl19
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJhc2VDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbIkJhc2VDb250cm9sbGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJwdWJsaWNFeHRlbnNpb24iLCJnZXRBcHBDb21wb25lbnQiLCJfb0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0VmlldyIsImdldE1vZGVsIiwic05hbWUiLCJzZXRNb2RlbCIsIm9Nb2RlbCIsImdldFJlc291cmNlQnVuZGxlIiwic0kxOG5Nb2RlbE5hbWUiLCJDb250cm9sbGVyIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtNQUVNQSxjLFdBRExDLGNBQWMsQ0FBQyw0QkFBRCxDLFVBV2JDLGVBQWUsRTs7Ozs7Ozs7O0FBUmhCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7V0FFQ0MsZSxHQURBLDJCQUNnQztBQUMvQixVQUFJLENBQUMsS0FBS0MsY0FBVixFQUEwQjtBQUN6QixhQUFLQSxjQUFMLEdBQXNCQyxXQUFXLENBQUNGLGVBQVosQ0FBNEIsS0FBS0csT0FBTCxFQUE1QixDQUF0QjtBQUNBOztBQUNELGFBQU8sS0FBS0YsY0FBWjtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ0csUSxHQUFBLGtCQUFTQyxLQUFULEVBQXlCO0FBQ3hCLGFBQU8sS0FBS0YsT0FBTCxHQUFlQyxRQUFmLENBQXdCQyxLQUF4QixDQUFQO0FBQ0E7QUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O1dBQ0NDLFEsR0FBQSxrQkFBU0MsTUFBVCxFQUF3QkYsS0FBeEIsRUFBNkM7QUFDNUMsYUFBTyxLQUFLRixPQUFMLEdBQWVHLFFBQWYsQ0FBd0JDLE1BQXhCLEVBQWdDRixLQUFoQyxDQUFQO0FBQ0EsSzs7V0FFREcsaUIsR0FBQSwyQkFBa0JDLGNBQWxCLEVBQXVDO0FBQ3RDLFVBQUksQ0FBQ0EsY0FBTCxFQUFxQjtBQUNwQkEsUUFBQUEsY0FBYyxHQUFHLE1BQWpCO0FBQ0E7O0FBQ0QsYUFBUSxLQUFLVCxlQUFMLEdBQXVCSSxRQUF2QixDQUFnQ0ssY0FBaEMsQ0FBRCxDQUFtRUQsaUJBQW5FLEVBQVA7QUFDQSxLOzs7SUE1QzJCRSxVO1NBK0NkYixjIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29udHJvbGxlciBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IHB1YmxpY0V4dGVuc2lvbiwgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IFJlc291cmNlTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9yZXNvdXJjZS9SZXNvdXJjZU1vZGVsXCI7XG5pbXBvcnQgVmlldyBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL1ZpZXdcIjtcbmltcG9ydCBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5cbi8qKlxuICogSW50ZXJuYWwgYmFzZSBjb250cm9sbGVyIGNsYXNzIGZvciBTQVAgRmlvcmkgZWxlbWVudHMgYXBwbGljYXRpb24uXG4gKlxuICogSWYgeW91IHdhbnQgdG8gZXh0ZW5kIGEgYmFzZSBjb250cm9sbGVyIGZvciB5b3VyIGN1c3RvbSBwYWdlLCBwbGVhc2UgdXNlIGZvciBzYXAuZmUuY29yZS5QYWdlQ29udHJvbGxlci5cbiAqXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAcHVibGljXG4gKiBAbmFtZSBzYXAuZmUuY29yZS5CYXNlQ29udHJvbGxlclxuICogQHNpbmNlIDEuOTAuMFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5CYXNlQ29udHJvbGxlclwiKVxuY2xhc3MgQmFzZUNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyIHtcblx0cHJpdmF0ZSBfb0FwcENvbXBvbmVudD86IEFwcENvbXBvbmVudDtcblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgYXBwIGNvbXBvbmVudC5cblx0ICpcblx0ICogQHJldHVybnMge3NhcC5mZS5jb3JlLkFwcENvbXBvbmVudH0gVGhlIGFwcCBjb21wb25lbnQgb3IsIGlmIG5vdCBmb3VuZCwgbnVsbFxuXHQgKiBAYWxpYXMgc2FwLmZlLmNvcmUuQmFzZUNvbnRyb2xsZXIjZ2V0QXBwQ29tcG9uZW50XG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuOTEuMFxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdGdldEFwcENvbXBvbmVudCgpOiBBcHBDb21wb25lbnQge1xuXHRcdGlmICghdGhpcy5fb0FwcENvbXBvbmVudCkge1xuXHRcdFx0dGhpcy5fb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLmdldFZpZXcoKSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9vQXBwQ29tcG9uZW50IGFzIEFwcENvbXBvbmVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb252ZW5pZW5jZSBtZXRob2QgcHJvdmlkZWQgYnkgU0FQIEZpb3JpIGVsZW1lbnRzIHRvIGVuYWJsZSBhcHBsaWNhdGlvbnMgdG8gaW5jbHVkZSB0aGUgdmlldyBtb2RlbCBieSBuYW1lIGludG8gZWFjaCBjb250cm9sbGVyLlxuXHQgKiBAcHVibGljXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzTmFtZSBUaGUgbW9kZWwgbmFtZVxuXHQgKiBAcmV0dXJucyB7c2FwLnVpLm1vZGVsLk1vZGVsfSBUaGUgbW9kZWwgaW5zdGFuY2Vcblx0ICovXG5cdGdldE1vZGVsKHNOYW1lPzogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0VmlldygpLmdldE1vZGVsKHNOYW1lKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIHNldHRpbmcgdGhlIHZpZXcgbW9kZWwgaW4gZXZlcnkgY29udHJvbGxlciBvZiB0aGUgYXBwbGljYXRpb24uXG5cdCAqIEBwdWJsaWNcblx0ICogQHBhcmFtIHtzYXAudWkubW9kZWwuTW9kZWx9IG9Nb2RlbCBUaGUgbW9kZWwgaW5zdGFuY2Vcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNOYW1lIFRoZSBtb2RlbCBuYW1lXG5cdCAqIEByZXR1cm5zIHtzYXAudWkubXZjLlZpZXd9IFRoZSB2aWV3IGluc3RhbmNlXG5cdCAqL1xuXHRzZXRNb2RlbChvTW9kZWw6IE1vZGVsLCBzTmFtZTogc3RyaW5nKTogVmlldyB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0VmlldygpLnNldE1vZGVsKG9Nb2RlbCwgc05hbWUpO1xuXHR9XG5cblx0Z2V0UmVzb3VyY2VCdW5kbGUoc0kxOG5Nb2RlbE5hbWU6IGFueSkge1xuXHRcdGlmICghc0kxOG5Nb2RlbE5hbWUpIHtcblx0XHRcdHNJMThuTW9kZWxOYW1lID0gXCJpMThuXCI7XG5cdFx0fVxuXHRcdHJldHVybiAodGhpcy5nZXRBcHBDb21wb25lbnQoKS5nZXRNb2RlbChzSTE4bk1vZGVsTmFtZSkgYXMgUmVzb3VyY2VNb2RlbCkuZ2V0UmVzb3VyY2VCdW5kbGUoKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBCYXNlQ29udHJvbGxlcjtcbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  import Controller from "sap/ui/core/mvc/Controller";
2
2
  import CommonUtils from "sap/fe/core/CommonUtils";
3
- import { Public, UI5Class } from "sap/fe/core/helpers/ClassSupport";
4
- import ControllerMetadata from "sap/ui/core/mvc/ControllerMetadata";
3
+ import { publicExtension, defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
5
4
  import AppComponent from "sap/fe/core/AppComponent";
6
5
  import ResourceModel from "sap/ui/model/resource/ResourceModel";
7
6
  import View from "sap/ui/core/mvc/View";
@@ -17,7 +16,7 @@ import Model from "sap/ui/model/Model";
17
16
  * @name sap.fe.core.BaseController
18
17
  * @since 1.90.0
19
18
  */
20
- @UI5Class("sap.fe.core.BaseController", ControllerMetadata, {})
19
+ @defineUI5Class("sap.fe.core.BaseController")
21
20
  class BaseController extends Controller {
22
21
  private _oAppComponent?: AppComponent;
23
22
  /**
@@ -28,7 +27,7 @@ class BaseController extends Controller {
28
27
  * @public
29
28
  * @since 1.91.0
30
29
  */
31
- @Public
30
+ @publicExtension()
32
31
  getAppComponent(): AppComponent {
33
32
  if (!this._oAppComponent) {
34
33
  this._oAppComponent = CommonUtils.getAppComponent(this.getView());