@sapui5/sap.fe.core 1.127.2 → 1.129.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 (393) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +3 -9
  4. package/src/sap/fe/core/ActionRuntime.ts +3 -7
  5. package/src/sap/fe/core/AppComponent.js +9 -19
  6. package/src/sap/fe/core/AppComponent.ts +2 -12
  7. package/src/sap/fe/core/AppStateHandler.js +3 -11
  8. package/src/sap/fe/core/AppStateHandler.ts +0 -7
  9. package/src/sap/fe/core/BaseController.js +4 -8
  10. package/src/sap/fe/core/BaseController.ts +0 -5
  11. package/src/sap/fe/core/CommonUtils.js +1 -9
  12. package/src/sap/fe/core/CommonUtils.ts +4 -8
  13. package/src/sap/fe/core/ExtensionAPI.js +10 -25
  14. package/src/sap/fe/core/ExtensionAPI.ts +4 -19
  15. package/src/sap/fe/core/InsightsFormattersExtension.js +5 -3
  16. package/src/sap/fe/core/PageController.js +7 -10
  17. package/src/sap/fe/core/PageController.ts +0 -3
  18. package/src/sap/fe/core/ResourceModel.js +3 -5
  19. package/src/sap/fe/core/ResourceModel.ts +0 -2
  20. package/src/sap/fe/core/ReuseComponent.js +8 -14
  21. package/src/sap/fe/core/ReuseComponent.ts +0 -6
  22. package/src/sap/fe/core/TemplateComponent.js +37 -9
  23. package/src/sap/fe/core/TemplateComponent.ts +3 -2
  24. package/src/sap/fe/core/TemplateModel.js +5 -5
  25. package/src/sap/fe/core/TemplateModel.ts +0 -1
  26. package/src/sap/fe/core/UIProvider.js +1 -1
  27. package/src/sap/fe/core/UIProvider.ts +44 -1
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +7 -12
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +0 -5
  30. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +61 -65
  31. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +60 -63
  32. package/src/sap/fe/core/buildingBlocks/templating/AttributeModel.js +3 -3
  33. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockFormatter.js +1 -1
  34. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +21 -5
  35. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +0 -4
  36. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +6 -18
  37. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +3 -20
  38. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +5 -11
  39. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +0 -6
  40. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlock.js +3 -3
  41. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +11 -10
  42. package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +0 -1
  43. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +5 -7
  44. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +0 -1
  45. package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
  46. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +3 -10
  47. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +0 -7
  48. package/src/sap/fe/core/controllerextensions/ContextSharing.js +5 -8
  49. package/src/sap/fe/core/controllerextensions/ContextSharing.ts +0 -2
  50. package/src/sap/fe/core/controllerextensions/EditFlow.js +225 -155
  51. package/src/sap/fe/core/controllerextensions/EditFlow.ts +248 -164
  52. package/src/sap/fe/core/controllerextensions/Feedback.js +1 -3
  53. package/src/sap/fe/core/controllerextensions/Feedback.ts +0 -2
  54. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +4 -7
  55. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -3
  56. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +8 -25
  57. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +2 -21
  58. package/src/sap/fe/core/controllerextensions/InternalRouting.js +22 -34
  59. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +25 -31
  60. package/src/sap/fe/core/controllerextensions/KPIManagement.js +8 -21
  61. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +4 -15
  62. package/src/sap/fe/core/controllerextensions/MessageHandler.js +68 -31
  63. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +78 -32
  64. package/src/sap/fe/core/controllerextensions/PageReady.js +4 -4
  65. package/src/sap/fe/core/controllerextensions/Paginator.js +4 -8
  66. package/src/sap/fe/core/controllerextensions/Paginator.ts +0 -4
  67. package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -4
  68. package/src/sap/fe/core/controllerextensions/Recommendations.js +15 -24
  69. package/src/sap/fe/core/controllerextensions/Recommendations.ts +13 -20
  70. package/src/sap/fe/core/controllerextensions/Routing.js +4 -10
  71. package/src/sap/fe/core/controllerextensions/Routing.ts +0 -6
  72. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  73. package/src/sap/fe/core/controllerextensions/Share.js +17 -11
  74. package/src/sap/fe/core/controllerextensions/Share.ts +10 -5
  75. package/src/sap/fe/core/controllerextensions/SideEffects.js +49 -45
  76. package/src/sap/fe/core/controllerextensions/SideEffects.ts +54 -41
  77. package/src/sap/fe/core/controllerextensions/Telemetry.js +4 -4
  78. package/src/sap/fe/core/controllerextensions/ViewState.js +10 -34
  79. package/src/sap/fe/core/controllerextensions/ViewState.ts +3 -49
  80. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.js +6 -8
  81. package/src/sap/fe/core/controllerextensions/cards/CollaborationManager.ts +0 -1
  82. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -2
  83. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +0 -1
  84. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +4 -3
  85. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +1 -1
  86. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +16 -12
  87. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +4 -1
  88. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -1
  89. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +126 -74
  90. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +158 -91
  91. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -22
  92. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +0 -20
  93. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +10 -20
  94. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +11 -17
  95. package/src/sap/fe/core/controllerextensions/editFlow/editFlowConstants.js +1 -1
  96. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +191 -767
  97. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +277 -1024
  98. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  99. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -6
  100. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -5
  101. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +381 -250
  102. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +467 -301
  103. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +2 -6
  104. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +0 -5
  105. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +2 -6
  106. package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +4 -6
  107. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +1 -6
  108. package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +0 -4
  109. package/src/sap/fe/core/controllerextensions/routing/NavigationReason.js +1 -1
  110. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +4 -41
  111. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +1 -37
  112. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +1 -1
  113. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +0 -1
  114. package/src/sap/fe/core/controls/Any.js +1 -2
  115. package/src/sap/fe/core/controls/Any.ts +0 -1
  116. package/src/sap/fe/core/controls/AnyElement.js +1 -2
  117. package/src/sap/fe/core/controls/AnyElement.ts +0 -1
  118. package/src/sap/fe/core/controls/CommandExecution.js +3 -3
  119. package/src/sap/fe/core/controls/ComponentLoader.js +23 -10
  120. package/src/sap/fe/core/controls/ComponentLoader.ts +0 -1
  121. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +10 -13
  122. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +0 -6
  123. package/src/sap/fe/core/controls/EventDelegateHook.js +8 -9
  124. package/src/sap/fe/core/controls/FormElementWrapper.js +7 -7
  125. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +3 -1
  126. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +140 -24
  127. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +141 -10
  128. package/src/sap/fe/core/converters/ConverterContext.js +8 -30
  129. package/src/sap/fe/core/converters/ConverterContext.ts +7 -29
  130. package/src/sap/fe/core/converters/ManifestSettings.js +37 -1
  131. package/src/sap/fe/core/converters/ManifestSettings.ts +12 -3
  132. package/src/sap/fe/core/converters/ManifestWrapper.js +12 -40
  133. package/src/sap/fe/core/converters/ManifestWrapper.ts +13 -46
  134. package/src/sap/fe/core/converters/MetaModelConverter.js +44 -48
  135. package/src/sap/fe/core/converters/MetaModelConverter.ts +50 -48
  136. package/src/sap/fe/core/converters/TemplateConverter.js +3 -2
  137. package/src/sap/fe/core/converters/TemplateConverter.ts +0 -1
  138. package/src/sap/fe/core/converters/annotations/DataField.js +1 -28
  139. package/src/sap/fe/core/converters/annotations/DataField.ts +0 -26
  140. package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -19
  141. package/src/sap/fe/core/converters/controls/Common/Action.js +13 -26
  142. package/src/sap/fe/core/converters/controls/Common/Action.ts +13 -31
  143. package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -6
  144. package/src/sap/fe/core/converters/controls/Common/Chart.ts +0 -5
  145. package/src/sap/fe/core/converters/controls/Common/Criticality.js +2 -4
  146. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +1 -2
  147. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -5
  148. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +0 -4
  149. package/src/sap/fe/core/converters/controls/Common/Form.js +3 -2
  150. package/src/sap/fe/core/converters/controls/Common/Form.ts +2 -1
  151. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -7
  152. package/src/sap/fe/core/converters/controls/Common/KPI.ts +11 -6
  153. package/src/sap/fe/core/converters/controls/Common/Table.js +159 -141
  154. package/src/sap/fe/core/converters/controls/Common/Table.ts +166 -122
  155. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -30
  156. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +3 -29
  157. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +43 -55
  158. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +43 -47
  159. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -4
  160. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +0 -3
  161. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
  162. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +3 -8
  163. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +2 -7
  164. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -11
  165. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +0 -9
  166. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -10
  167. package/src/sap/fe/core/converters/helpers/Aggregation.ts +0 -9
  168. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -7
  169. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +0 -6
  170. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -9
  171. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +0 -8
  172. package/src/sap/fe/core/converters/helpers/ID.js +1 -2
  173. package/src/sap/fe/core/converters/helpers/ID.ts +0 -1
  174. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +1 -2
  175. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +0 -1
  176. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  177. package/src/sap/fe/core/converters/helpers/Key.js +1 -5
  178. package/src/sap/fe/core/converters/helpers/Key.ts +0 -4
  179. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -2
  180. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +0 -1
  181. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  182. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -7
  183. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +0 -6
  184. package/src/sap/fe/core/converters/templates/ListReportConverter.js +6 -27
  185. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +9 -26
  186. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -16
  187. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +0 -15
  188. package/src/sap/fe/core/definition/FEDefinition.js +2550 -0
  189. package/src/sap/fe/core/designtime/AppComponent.designtime.js +11 -12
  190. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +9 -10
  191. package/src/sap/fe/core/formatters/CollaborationFormatter.js +8 -2
  192. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +0 -2
  193. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  194. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -2
  195. package/src/sap/fe/core/formatters/FPMFormatter.ts +0 -1
  196. package/src/sap/fe/core/formatters/FiscalFormat.js +9 -14
  197. package/src/sap/fe/core/formatters/FiscalFormat.ts +0 -11
  198. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -4
  199. package/src/sap/fe/core/formatters/KPIFormatter.ts +0 -3
  200. package/src/sap/fe/core/formatters/StandardFormatter.js +6 -3
  201. package/src/sap/fe/core/formatters/StandardFormatter.ts +6 -2
  202. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -4
  203. package/src/sap/fe/core/formatters/ValueFormatter.ts +0 -3
  204. package/src/sap/fe/core/fpm/Component.js +14 -17
  205. package/src/sap/fe/core/fpm/Component.ts +7 -10
  206. package/src/sap/fe/core/fpm/manifest.json +1 -1
  207. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.js +3 -10
  208. package/src/sap/fe/core/helpers/AdaptiveCardExpressionCompiler.ts +0 -9
  209. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -13
  210. package/src/sap/fe/core/helpers/AppStartupHelper.ts +0 -11
  211. package/src/sap/fe/core/helpers/BindingHelper.js +1 -4
  212. package/src/sap/fe/core/helpers/BindingHelper.ts +0 -3
  213. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.js +1 -2
  214. package/src/sap/fe/core/helpers/BindingToolkitEvaluator.ts +0 -1
  215. package/src/sap/fe/core/helpers/DeleteHelper.js +61 -32
  216. package/src/sap/fe/core/helpers/DeleteHelper.ts +79 -33
  217. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -2
  218. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +0 -1
  219. package/src/sap/fe/core/helpers/EditState.js +1 -1
  220. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -2
  221. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +0 -1
  222. package/src/sap/fe/core/helpers/FPMHelper.js +1 -2
  223. package/src/sap/fe/core/helpers/FPMHelper.ts +0 -1
  224. package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -8
  225. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +0 -7
  226. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +7 -1
  227. package/src/sap/fe/core/helpers/LoaderUtils.js +1 -1
  228. package/src/sap/fe/core/helpers/ManifestHelper.js +1 -3
  229. package/src/sap/fe/core/helpers/ManifestHelper.ts +0 -2
  230. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  231. package/src/sap/fe/core/helpers/MetaModelFunction.js +3 -8
  232. package/src/sap/fe/core/helpers/MetaModelFunction.ts +0 -5
  233. package/src/sap/fe/core/helpers/MetaPath.js +1 -7
  234. package/src/sap/fe/core/helpers/MetaPath.ts +0 -6
  235. package/src/sap/fe/core/helpers/ModelHelper.js +55 -35
  236. package/src/sap/fe/core/helpers/ModelHelper.ts +64 -38
  237. package/src/sap/fe/core/helpers/PasteHelper.js +77 -24
  238. package/src/sap/fe/core/helpers/PasteHelper.ts +105 -23
  239. package/src/sap/fe/core/helpers/PromiseKeeper.js +1 -3
  240. package/src/sap/fe/core/helpers/PromiseKeeper.ts +0 -2
  241. package/src/sap/fe/core/helpers/RecommendationHelper.js +1 -4
  242. package/src/sap/fe/core/helpers/RecommendationHelper.ts +0 -3
  243. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -3
  244. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +3 -4
  245. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -2
  246. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +0 -1
  247. package/src/sap/fe/core/helpers/SizeHelper.js +1 -2
  248. package/src/sap/fe/core/helpers/SizeHelper.ts +0 -1
  249. package/src/sap/fe/core/helpers/StableIdHelper.js +7 -17
  250. package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -17
  251. package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +1 -12
  252. package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +0 -11
  253. package/src/sap/fe/core/helpers/Synchronization.js +1 -1
  254. package/src/sap/fe/core/helpers/TitleHelper.js +1 -10
  255. package/src/sap/fe/core/helpers/TitleHelper.ts +0 -9
  256. package/src/sap/fe/core/helpers/ToES6Promise.js +1 -2
  257. package/src/sap/fe/core/helpers/ToES6Promise.ts +0 -1
  258. package/src/sap/fe/core/helpers/TypeGuards.js +1 -15
  259. package/src/sap/fe/core/helpers/TypeGuards.ts +0 -14
  260. package/src/sap/fe/core/helpers/WebSocket.js +1 -1
  261. package/src/sap/fe/core/library.js +10 -44
  262. package/src/sap/fe/core/library.support.js +1 -1
  263. package/src/sap/fe/core/library.ts +8 -45
  264. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -6
  265. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +0 -5
  266. package/src/sap/fe/core/messagebundle.properties +12 -1
  267. package/src/sap/fe/core/messagebundle_ar.properties +8 -0
  268. package/src/sap/fe/core/messagebundle_bg.properties +8 -0
  269. package/src/sap/fe/core/messagebundle_ca.properties +8 -0
  270. package/src/sap/fe/core/messagebundle_cnr.properties +8 -0
  271. package/src/sap/fe/core/messagebundle_cs.properties +9 -1
  272. package/src/sap/fe/core/messagebundle_cy.properties +8 -0
  273. package/src/sap/fe/core/messagebundle_da.properties +8 -0
  274. package/src/sap/fe/core/messagebundle_de.properties +8 -0
  275. package/src/sap/fe/core/messagebundle_el.properties +8 -0
  276. package/src/sap/fe/core/messagebundle_en.properties +8 -0
  277. package/src/sap/fe/core/messagebundle_en_GB.properties +8 -0
  278. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +144 -65
  279. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +8 -0
  280. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +273 -194
  281. package/src/sap/fe/core/messagebundle_es.properties +9 -1
  282. package/src/sap/fe/core/messagebundle_es_MX.properties +8 -0
  283. package/src/sap/fe/core/messagebundle_et.properties +8 -0
  284. package/src/sap/fe/core/messagebundle_fi.properties +8 -0
  285. package/src/sap/fe/core/messagebundle_fr.properties +8 -0
  286. package/src/sap/fe/core/messagebundle_fr_CA.properties +8 -0
  287. package/src/sap/fe/core/messagebundle_hi.properties +9 -1
  288. package/src/sap/fe/core/messagebundle_hr.properties +8 -0
  289. package/src/sap/fe/core/messagebundle_hu.properties +8 -0
  290. package/src/sap/fe/core/messagebundle_id.properties +12 -4
  291. package/src/sap/fe/core/messagebundle_it.properties +8 -0
  292. package/src/sap/fe/core/messagebundle_iw.properties +8 -0
  293. package/src/sap/fe/core/messagebundle_ja.properties +8 -0
  294. package/src/sap/fe/core/messagebundle_kk.properties +8 -0
  295. package/src/sap/fe/core/messagebundle_ko.properties +8 -0
  296. package/src/sap/fe/core/messagebundle_lt.properties +8 -0
  297. package/src/sap/fe/core/messagebundle_lv.properties +8 -0
  298. package/src/sap/fe/core/messagebundle_mk.properties +8 -0
  299. package/src/sap/fe/core/messagebundle_ms.properties +8 -0
  300. package/src/sap/fe/core/messagebundle_nl.properties +16 -8
  301. package/src/sap/fe/core/messagebundle_no.properties +8 -0
  302. package/src/sap/fe/core/messagebundle_pl.properties +8 -0
  303. package/src/sap/fe/core/messagebundle_pt.properties +8 -0
  304. package/src/sap/fe/core/messagebundle_pt_PT.properties +8 -0
  305. package/src/sap/fe/core/messagebundle_ro.properties +8 -0
  306. package/src/sap/fe/core/messagebundle_ru.properties +8 -0
  307. package/src/sap/fe/core/messagebundle_sh.properties +8 -0
  308. package/src/sap/fe/core/messagebundle_sk.properties +8 -0
  309. package/src/sap/fe/core/messagebundle_sl.properties +8 -0
  310. package/src/sap/fe/core/messagebundle_sr.properties +8 -0
  311. package/src/sap/fe/core/messagebundle_sv.properties +8 -0
  312. package/src/sap/fe/core/messagebundle_th.properties +12 -4
  313. package/src/sap/fe/core/messagebundle_tr.properties +8 -0
  314. package/src/sap/fe/core/messagebundle_uk.properties +10 -2
  315. package/src/sap/fe/core/messagebundle_vi.properties +8 -0
  316. package/src/sap/fe/core/messagebundle_zh_CN.properties +8 -0
  317. package/src/sap/fe/core/messagebundle_zh_TW.properties +8 -0
  318. package/src/sap/fe/core/operationsHelper.js +22 -7
  319. package/src/sap/fe/core/operationsHelper.ts +24 -5
  320. package/src/sap/fe/core/rootView/Fcl.controller.js +7 -27
  321. package/src/sap/fe/core/rootView/Fcl.controller.ts +0 -18
  322. package/src/sap/fe/core/rootView/NavContainer.controller.js +7 -12
  323. package/src/sap/fe/core/rootView/NavContainer.controller.ts +0 -5
  324. package/src/sap/fe/core/rootView/RootViewBaseController.js +10 -24
  325. package/src/sap/fe/core/rootView/RootViewBaseController.ts +3 -16
  326. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
  327. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +3 -3
  328. package/src/sap/fe/core/services/CollaborationManagerServiceFactory.js +4 -4
  329. package/src/sap/fe/core/services/CollaborativeToolsServiceFactory.js +3 -3
  330. package/src/sap/fe/core/services/ContextSharingServiceFactory.js +3 -4
  331. package/src/sap/fe/core/services/ContextSharingServiceFactory.ts +0 -1
  332. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +13 -20
  333. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +11 -17
  334. package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -21
  335. package/src/sap/fe/core/services/NavigationServiceFactory.ts +4 -17
  336. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
  337. package/src/sap/fe/core/services/RoutingServiceFactory.js +7 -19
  338. package/src/sap/fe/core/services/RoutingServiceFactory.ts +0 -12
  339. package/src/sap/fe/core/services/ShellServicesFactory.js +8 -44
  340. package/src/sap/fe/core/services/ShellServicesFactory.ts +1 -41
  341. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +19 -60
  342. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +14 -57
  343. package/src/sap/fe/core/services/TelemetryServiceFactory.js +6 -14
  344. package/src/sap/fe/core/services/TelemetryServiceFactory.ts +2 -10
  345. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +17 -7
  346. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +17 -3
  347. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +11 -24
  348. package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +0 -19
  349. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +3 -31
  350. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +0 -27
  351. package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.js +1 -4
  352. package/src/sap/fe/core/services/valueHelpService/HistoryOptOutProvider.ts +0 -3
  353. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +7 -7
  354. package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
  355. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
  356. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
  357. package/src/sap/fe/core/support/CommonHelper.js +4 -1
  358. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  359. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
  360. package/src/sap/fe/core/templating/ActionHelper.js +1 -2
  361. package/src/sap/fe/core/templating/ActionHelper.ts +0 -1
  362. package/src/sap/fe/core/templating/CommonFormatters.js +1 -2
  363. package/src/sap/fe/core/templating/CommonFormatters.ts +0 -1
  364. package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -6
  365. package/src/sap/fe/core/templating/CriticalityFormatters.ts +0 -5
  366. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -2
  367. package/src/sap/fe/core/templating/DataFieldFormatters.ts +0 -1
  368. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -18
  369. package/src/sap/fe/core/templating/DataModelPathHelper.ts +0 -17
  370. package/src/sap/fe/core/templating/DisplayModeFormatter.js +6 -1
  371. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -4
  372. package/src/sap/fe/core/templating/EntitySetHelper.ts +0 -3
  373. package/src/sap/fe/core/templating/EntityTypeHelper.js +4 -5
  374. package/src/sap/fe/core/templating/EntityTypeHelper.ts +3 -4
  375. package/src/sap/fe/core/templating/FieldControlHelper.js +4 -9
  376. package/src/sap/fe/core/templating/FieldControlHelper.ts +3 -9
  377. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  378. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  379. package/src/sap/fe/core/templating/PropertyHelper.js +1 -31
  380. package/src/sap/fe/core/templating/PropertyHelper.ts +0 -30
  381. package/src/sap/fe/core/templating/SemanticObjectHelper.js +1 -7
  382. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +0 -6
  383. package/src/sap/fe/core/templating/UIFormatters.js +18 -14
  384. package/src/sap/fe/core/templating/UIFormatters.ts +30 -18
  385. package/src/sap/fe/core/type/Date.js +3 -6
  386. package/src/sap/fe/core/type/Date.ts +0 -3
  387. package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -3
  388. package/src/sap/fe/core/type/EDM.js +1 -1
  389. package/src/sap/fe/core/type/Email.js +3 -3
  390. package/src/sap/fe/core/type/FiscalDate.js +3 -9
  391. package/src/sap/fe/core/type/FiscalDate.ts +0 -6
  392. package/src/sap/fe/core/type/InputMask.js +3 -7
  393. package/src/sap/fe/core/type/InputMask.ts +0 -4
@@ -11,12 +11,12 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
11
11
  var implementInterface = ClassSupport.implementInterface;
12
12
  var event = ClassSupport.event;
13
13
  var defineUI5Class = ClassSupport.defineUI5Class;
14
- function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
15
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
16
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
17
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
18
- function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
19
- function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
14
+ function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
15
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
16
+ function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
17
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
18
+ function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
19
+ function _initializerWarningHelper(r, e) { throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform."); }
20
20
  let TemplateComponent = (_dec = defineUI5Class("sap.fe.core.TemplateComponent"), _dec2 = implementInterface("sap.ui.core.IAsyncContentCreation"), _dec3 = property({
21
21
  type: "string",
22
22
  defaultValue: null
@@ -72,7 +72,37 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
72
72
  _initializerDefineProperty(_this, "workersBatchReceived", _descriptor17, _assertThisInitialized(_this));
73
73
  return _this;
74
74
  }
75
+ /**
76
+ * Name of the OData entity set
77
+ */
78
+ /**
79
+ * Context Path for rendering the template
80
+ */
81
+ /**
82
+ * The pattern for the binding context to be create based on the parameters from the navigation
83
+ * If not provided we'll default to what was passed in the URL
84
+ */
85
+ /**
86
+ * Map of used OData navigations and its routing targets
87
+ */
88
+ /**
89
+ * Enhance the i18n bundle used for this page with one or more app specific i18n resource bundles or resource models
90
+ * or a combination of both. The last resource bundle/model is given highest priority
91
+ */
92
+ /**
93
+ * Define control related configuration settings
94
+ */
95
+ /**
96
+ * Adjusts the template content
97
+ */
98
+ /**
99
+ * Whether or not you can reach this page directly through semantic bookmarks
100
+ */
101
+ /**
102
+ * Defines the context path on the component that is refreshed when the app is restored using keep alive mode
103
+ */
75
104
  var _proto = TemplateComponent.prototype;
105
+ // The id of a fragment being processed, it will take priority in the ID generation
76
106
  _proto.setContainer = function setContainer(oContainer) {
77
107
  _UIComponent.prototype.setContainer.call(this, oContainer);
78
108
  this.fireEvent("containerDefined", {
@@ -143,7 +173,6 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
143
173
 
144
174
  /**
145
175
  * Retrieves the metamodel for the given metamodel reference (ID / name or undefined for the default one).
146
- *
147
176
  * @param metaModelReference The metamodel reference
148
177
  * @returns The correct metamodel if it exits
149
178
  */;
@@ -161,7 +190,6 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
161
190
 
162
191
  /**
163
192
  * Retrieves the full context path for the given metamodel reference (ID / name or undefined for the default one).
164
- *
165
193
  * @param metaModelReference The metamodel reference
166
194
  * @returns The correct full context path
167
195
  */;
@@ -270,4 +298,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/CommonUtils", "sap/fe/co
270
298
  })), _class2)) || _class);
271
299
  return TemplateComponent;
272
300
  }, false);
273
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZUNvbXBvbmVudCIsImRlZmluZVVJNUNsYXNzIiwiaW1wbGVtZW50SW50ZXJmYWNlIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiZXZlbnQiLCJzZXRDb250YWluZXIiLCJvQ29udGFpbmVyIiwiZmlyZUV2ZW50IiwiY29udGFpbmVyIiwiaW5pdCIsIm9BcHBDb21wb25lbnQiLCJDb21tb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImdldEV4dGVuc2lvbkNvbXBvbmVudCIsInNldFJvb3RDb250cm9sbGVyIiwiY29udHJvbGxlciIsIl9yb290Q29udHJvbGxlciIsImdldFJvb3RDb250cm9sbGVyIiwicm9vdENvbnRyb2wiLCJnZXRSb290Q29udHJvbCIsInJvb3RDb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsIm9uUGFnZVJlYWR5IiwibVBhcmFtZXRlcnMiLCJnZXROYXZpZ2F0aW9uQ29uZmlndXJhdGlvbiIsInNUYXJnZXRQYXRoIiwibU5hdmlnYXRpb24iLCJuYXZpZ2F0aW9uIiwiZ2V0Vmlld0RhdGEiLCJtUHJvcGVydGllcyIsImdldE1ldGFkYXRhIiwiZ2V0QWxsUHJvcGVydGllcyIsIm9WaWV3RGF0YSIsIk9iamVjdCIsImtleXMiLCJyZWR1Y2UiLCJtVmlld0RhdGEiLCJzUHJvcGVydHlOYW1lIiwiZ2V0IiwicHJlcHJvY2Vzc29yQ29udGV4dCIsImZjbEVuYWJsZWQiLCJfaXNGY2xFbmFibGVkIiwiX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uIiwiZ2V0RXh0ZW5zaW9uQVBJIiwiZ2V0TWV0YU1vZGVsIiwibWV0YU1vZGVsUmVmZXJlbmNlIiwibW9kZWxzIiwibWV0YU1vZGVsIiwic3RhcnRzV2l0aCIsImdldE1ldGFNb2RlbEJ5SWQiLCJnZXRNb2RlbCIsImdldEZ1bGxDb250ZXh0UGF0aCIsImZ1bGxDb250ZXh0UGF0aCIsIlVJQ29tcG9uZW50Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUZW1wbGF0ZUNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbnZlcnRlZE1ldGFkYXRhIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB0eXBlIFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9QYWdlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgdHlwZSB7IE5hdmlnYXRpb25UYXJnZXRDb25maWd1cmF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgZ2V0TWV0YU1vZGVsQnlJZCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHR5cGUgeyBUaXRsZUluZm9ybWF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3Jvb3RWaWV3L1Jvb3RWaWV3QmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIENvbXBvbmVudENvbnRhaW5lciBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50Q29udGFpbmVyXCI7XG5pbXBvcnQgVUlDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL1VJQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IElBc3luY0NvbnRlbnRDcmVhdGlvbiB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQmFzZUNvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uQ29uZmlndXJhdGlvbiA9IHtcblx0ZGV0YWlsOiB7XG5cdFx0cm91dGU6IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzOiB1bmtub3duO1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdG91dGJvdW5kRGV0YWlsPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb25bXCJvdXRib3VuZERldGFpbFwiXTtcblx0fTtcblx0Y3JlYXRlOiB7XG5cdFx0cm91dGU6IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzOiB1bmtub3duO1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdG91dGJvdW5kRGV0YWlsPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb25bXCJvdXRib3VuZERldGFpbFwiXTtcblx0fTtcbn07XG5cbmV4cG9ydCB0eXBlIFhNTFByZXByb2Nlc3NvckNvbnRleHQgPSB7XG5cdGJpbmRpbmdDb250ZXh0czogUmVjb3JkPHN0cmluZywgQmFzZUNvbnRleHQgfCBudWxsPjtcblx0bW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbD47XG5cdGZ1bGxDb250ZXh0UGF0aDogc3RyaW5nO1xuXHRnZXRDb252ZXJ0ZWRNZXRhZGF0YTogKCkgPT4gQ29udmVydGVkTWV0YWRhdGE7XG5cdGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50O1xuXHR2aWV3SWQ6IHN0cmluZztcbn07XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLlRlbXBsYXRlQ29tcG9uZW50XCIpXG5jbGFzcyBUZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIFVJQ29tcG9uZW50IGltcGxlbWVudHMgSUFzeW5jQ29udGVudENyZWF0aW9uIHtcblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC51aS5jb3JlLklBc3luY0NvbnRlbnRDcmVhdGlvblwiKVxuXHRfX2ltcGxlbWVudHNfX3NhcF91aV9jb3JlX0lBc3luY0NvbnRlbnRDcmVhdGlvbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIE5hbWUgb2YgdGhlIE9EYXRhIGVudGl0eSBzZXRcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHRlbnRpdHlTZXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5cdC8qKlxuXHQgKiBDb250ZXh0IFBhdGggZm9yIHJlbmRlcmluZyB0aGUgdGVtcGxhdGVcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogbnVsbCB9KVxuXHRjb250ZXh0UGF0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRwcmVwcm9jZXNzb3JDb250ZXh0PzogWE1MUHJlcHJvY2Vzc29yQ29udGV4dDtcblxuXHQvKipcblx0ICogVGhlIHBhdHRlcm4gZm9yIHRoZSBiaW5kaW5nIGNvbnRleHQgdG8gYmUgY3JlYXRlIGJhc2VkIG9uIHRoZSBwYXJhbWV0ZXJzIGZyb20gdGhlIG5hdmlnYXRpb25cblx0ICogSWYgbm90IHByb3ZpZGVkIHdlJ2xsIGRlZmF1bHQgdG8gd2hhdCB3YXMgcGFzc2VkIGluIHRoZSBVUkxcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0YmluZGluZ0NvbnRleHRQYXR0ZXJuITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBNYXAgb2YgdXNlZCBPRGF0YSBuYXZpZ2F0aW9ucyBhbmQgaXRzIHJvdXRpbmcgdGFyZ2V0c1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRuYXZpZ2F0aW9uITogUmVjb3JkPHN0cmluZywgTmF2aWdhdGlvbkNvbmZpZ3VyYXRpb24+O1xuXG5cdC8qKlxuXHQgKiBFbmhhbmNlIHRoZSBpMThuIGJ1bmRsZSB1c2VkIGZvciB0aGlzIHBhZ2Ugd2l0aCBvbmUgb3IgbW9yZSBhcHAgc3BlY2lmaWMgaTE4biByZXNvdXJjZSBidW5kbGVzIG9yIHJlc291cmNlIG1vZGVsc1xuXHQgKiBvciBhIGNvbWJpbmF0aW9uIG9mIGJvdGguIFRoZSBsYXN0IHJlc291cmNlIGJ1bmRsZS9tb2RlbCBpcyBnaXZlbiBoaWdoZXN0IHByaW9yaXR5XG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1tdXCIgfSlcblx0ZW5oYW5jZUkxOG4hOiBzdHJpbmdbXTtcblxuXHQvKipcblx0ICogRGVmaW5lIGNvbnRyb2wgcmVsYXRlZCBjb25maWd1cmF0aW9uIHNldHRpbmdzXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcIm9iamVjdFwiIH0pXG5cdGNvbnRyb2xDb25maWd1cmF0aW9uPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cblx0LyoqXG5cdCAqIEFkanVzdHMgdGhlIHRlbXBsYXRlIGNvbnRlbnRcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0XCIgfSlcblx0Y29udGVudD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIG9yIG5vdCB5b3UgY2FuIHJlYWNoIHRoaXMgcGFnZSBkaXJlY3RseSB0aHJvdWdoIHNlbWFudGljIGJvb2ttYXJrc1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0YWxsb3dEZWVwTGlua2luZyE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIGNvbnRleHQgcGF0aCBvbiB0aGUgY29tcG9uZW50IHRoYXQgaXMgcmVmcmVzaGVkIHdoZW4gdGhlIGFwcCBpcyByZXN0b3JlZCB1c2luZyBrZWVwIGFsaXZlIG1vZGVcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0XCIgfSlcblx0cmVmcmVzaFN0cmF0ZWd5T25BcHBSZXN0b3JlOiB1bmtub3duO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmlld1R5cGUgPSBcIlhNTFwiO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmlld05hbWU/OiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRfanN4Vmlld05hbWUgPSBcIlwiO1xuXG5cdEBldmVudCgpXG5cdGNvbnRhaW5lckRlZmluZWQhOiBGdW5jdGlvbjtcblxuXHRAZXZlbnQoKVxuXHRoZXJvZXNCYXRjaFJlY2VpdmVkITogRnVuY3Rpb247XG5cblx0QGV2ZW50KClcblx0d29ya2Vyc0JhdGNoUmVjZWl2ZWQhOiBGdW5jdGlvbjtcblxuXHRwcm90ZWN0ZWQgb0FwcENvbXBvbmVudCE6IEFwcENvbXBvbmVudDtcblxuXHRwcml2YXRlIF9yb290Q29udHJvbGxlcj86IFBhZ2VDb250cm9sbGVyO1xuXG5cdC8vIFRoZSBpZCBvZiBhIGZyYWdtZW50IGJlaW5nIHByb2Nlc3NlZCwgaXQgd2lsbCB0YWtlIHByaW9yaXR5IGluIHRoZSBJRCBnZW5lcmF0aW9uXG5cdHByaXZhdGUgX3RlbXBvcmFyeUZyYWdtZW50SWQ/OiBzdHJpbmc7XG5cblx0c2V0Q29udGFpbmVyKG9Db250YWluZXI6IENvbXBvbmVudENvbnRhaW5lcik6IHRoaXMge1xuXHRcdHN1cGVyLnNldENvbnRhaW5lcihvQ29udGFpbmVyKTtcblx0XHR0aGlzLmZpcmVFdmVudChcImNvbnRhaW5lckRlZmluZWRcIiwgeyBjb250YWluZXI6IG9Db250YWluZXIgfSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRpbml0KCk6IHZvaWQge1xuXHRcdHRoaXMub0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzKTtcblx0XHRzdXBlci5pbml0KCk7XG5cdH1cblxuXHQvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgVUk1IGNvcmUgdG8gYWNjZXNzIHRvIHRoZSBjb21wb25lbnQgY29udGFpbmluZyB0aGUgY3VzdG9taXppbmcgY29uZmlndXJhdGlvbi5cblx0Ly8gYXMgY29udHJvbGxlciBleHRlbnNpb25zIGFyZSBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCBmb3IgdGhlIGFwcCBjb21wb25lbnQgYW5kIG5vdCBmb3IgdGhlXG5cdC8vIHRlbXBsYXRlIGNvbXBvbmVudCB3ZSByZXR1cm4gdGhlIGFwcCBjb21wb25lbnQuXG5cdGdldEV4dGVuc2lvbkNvbXBvbmVudCgpOiBBcHBDb21wb25lbnQge1xuXHRcdHJldHVybiB0aGlzLm9BcHBDb21wb25lbnQ7XG5cdH1cblxuXHRnZXRBcHBDb21wb25lbnQoKTogQXBwQ29tcG9uZW50IHtcblx0XHRyZXR1cm4gdGhpcy5vQXBwQ29tcG9uZW50O1xuXHR9XG5cblx0c2V0Um9vdENvbnRyb2xsZXIoY29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIpOiB2b2lkIHtcblx0XHR0aGlzLl9yb290Q29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG5cdH1cblxuXHRnZXRSb290Q29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgcm9vdENvbnRyb2w6IFZpZXcgPSB0aGlzLmdldFJvb3RDb250cm9sKCk7XG5cdFx0bGV0IHJvb3RDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZDtcblx0XHRpZiAocm9vdENvbnRyb2wgJiYgcm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcikge1xuXHRcdFx0cm9vdENvbnRyb2xsZXIgPSByb290Q29udHJvbC5nZXRDb250cm9sbGVyKCkgYXMgUGFnZUNvbnRyb2xsZXI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJvb3RDb250cm9sbGVyID0gdGhpcy5fcm9vdENvbnRyb2xsZXI7XG5cdFx0fVxuXHRcdHJldHVybiByb290Q29udHJvbGxlcjtcblx0fVxuXG5cdG9uUGFnZVJlYWR5KG1QYXJhbWV0ZXJzOiB1bmtub3duKTogdm9pZCB7XG5cdFx0Y29uc3Qgcm9vdENvbnRyb2xsZXIgPSB0aGlzLmdldFJvb3RDb250cm9sbGVyKCk7XG5cdFx0aWYgKHJvb3RDb250cm9sbGVyICYmIHJvb3RDb250cm9sbGVyLm9uUGFnZVJlYWR5KSB7XG5cdFx0XHRyb290Q29udHJvbGxlci5vblBhZ2VSZWFkeShtUGFyYW1ldGVycyk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0TmF2aWdhdGlvbkNvbmZpZ3VyYXRpb24oc1RhcmdldFBhdGg6IHN0cmluZyk6IE5hdmlnYXRpb25Db25maWd1cmF0aW9uIHtcblx0XHRjb25zdCBtTmF2aWdhdGlvbiA9IHRoaXMubmF2aWdhdGlvbjtcblx0XHRyZXR1cm4gbU5hdmlnYXRpb25bc1RhcmdldFBhdGhdO1xuXHR9XG5cblx0Z2V0Vmlld0RhdGEoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuXHRcdGNvbnN0IG1Qcm9wZXJ0aWVzID0gdGhpcy5nZXRNZXRhZGF0YSgpLmdldEFsbFByb3BlcnRpZXMoKTtcblx0XHRjb25zdCBvVmlld0RhdGEgPSBPYmplY3Qua2V5cyhtUHJvcGVydGllcykucmVkdWNlKChtVmlld0RhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBzUHJvcGVydHlOYW1lOiBzdHJpbmcpID0+IHtcblx0XHRcdG1WaWV3RGF0YVtzUHJvcGVydHlOYW1lXSA9IG1Qcm9wZXJ0aWVzW3NQcm9wZXJ0eU5hbWVdLmdldCEodGhpcyk7XG5cdFx0XHRyZXR1cm4gbVZpZXdEYXRhO1xuXHRcdH0sIHt9KTtcblx0XHRkZWxldGUgb1ZpZXdEYXRhLnByZXByb2Nlc3NvckNvbnRleHQ7XG5cdFx0Ly8gQWNjZXNzIHRoZSBpbnRlcm5hbCBfaXNGY2xFbmFibGVkIHdoaWNoIHdpbGwgYmUgdGhlcmVcblx0XHRvVmlld0RhdGEuZmNsRW5hYmxlZCA9IHRoaXMub0FwcENvbXBvbmVudC5faXNGY2xFbmFibGVkKCk7XG5cblx0XHRyZXR1cm4gb1ZpZXdEYXRhO1xuXHR9XG5cblx0X2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uKCk6IFRpdGxlSW5mb3JtYXRpb24ge1xuXHRcdGNvbnN0IHJvb3RDb250cm9sID0gdGhpcy5nZXRSb290Q29udHJvbCgpO1xuXHRcdGlmIChyb290Q29udHJvbCAmJiByb290Q29udHJvbC5nZXRDb250cm9sbGVyKCkgJiYgcm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcigpLl9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbikge1xuXHRcdFx0cmV0dXJuIHJvb3RDb250cm9sLmdldENvbnRyb2xsZXIoKS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24oKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHt9IGFzIFRpdGxlSW5mb3JtYXRpb247XG5cdFx0fVxuXHR9XG5cblx0Z2V0RXh0ZW5zaW9uQVBJKCk6IEV4dGVuc2lvbkFQSSB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0Um9vdENvbnRyb2woKS5nZXRDb250cm9sbGVyKCkuZ2V0RXh0ZW5zaW9uQVBJKCk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBtZXRhbW9kZWwgZm9yIHRoZSBnaXZlbiBtZXRhbW9kZWwgcmVmZXJlbmNlIChJRCAvIG5hbWUgb3IgdW5kZWZpbmVkIGZvciB0aGUgZGVmYXVsdCBvbmUpLlxuXHQgKlxuXHQgKiBAcGFyYW0gbWV0YU1vZGVsUmVmZXJlbmNlIFRoZSBtZXRhbW9kZWwgcmVmZXJlbmNlXG5cdCAqIEByZXR1cm5zIFRoZSBjb3JyZWN0IG1ldGFtb2RlbCBpZiBpdCBleGl0c1xuXHQgKi9cblx0Z2V0TWV0YU1vZGVsKG1ldGFNb2RlbFJlZmVyZW5jZT86IHN0cmluZyk6IE9EYXRhTWV0YU1vZGVsIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoIW1ldGFNb2RlbFJlZmVyZW5jZSkge1xuXHRcdFx0cmV0dXJuIHRoaXMucHJlcHJvY2Vzc29yQ29udGV4dD8ubW9kZWxzLm1ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbCB8IHVuZGVmaW5lZDtcblx0XHR9IGVsc2UgaWYgKG1ldGFNb2RlbFJlZmVyZW5jZS5zdGFydHNXaXRoKFwiaWQtXCIpKSB7XG5cdFx0XHRyZXR1cm4gZ2V0TWV0YU1vZGVsQnlJZChtZXRhTW9kZWxSZWZlcmVuY2UpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRNb2RlbChtZXRhTW9kZWxSZWZlcmVuY2UpPy5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCB8IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBmdWxsIGNvbnRleHQgcGF0aCBmb3IgdGhlIGdpdmVuIG1ldGFtb2RlbCByZWZlcmVuY2UgKElEIC8gbmFtZSBvciB1bmRlZmluZWQgZm9yIHRoZSBkZWZhdWx0IG9uZSkuXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXRhTW9kZWxSZWZlcmVuY2UgVGhlIG1ldGFtb2RlbCByZWZlcmVuY2Vcblx0ICogQHJldHVybnMgVGhlIGNvcnJlY3QgZnVsbCBjb250ZXh0IHBhdGhcblx0ICovXG5cdGdldEZ1bGxDb250ZXh0UGF0aChtZXRhTW9kZWxSZWZlcmVuY2U6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFtZXRhTW9kZWxSZWZlcmVuY2UpIHtcblx0XHRcdHJldHVybiB0aGlzLnByZXByb2Nlc3NvckNvbnRleHQ/LmZ1bGxDb250ZXh0UGF0aDtcblx0XHR9XG5cdH1cbn1cbmludGVyZmFjZSBUZW1wbGF0ZUNvbXBvbmVudCB7XG5cdC8vIFRPRE86IHRoaXMgc2hvdWxkIGJlIGlkZWFsbHkgYmUgaGFuZGxlZCBieSB0aGUgZWRpdGZsb3cvcm91dGluZyB3aXRob3V0IHRoZSBuZWVkIHRvIGhhdmUgdGhpcyBtZXRob2QgaW4gdGhlIG9iamVjdCBwYWdlIC0gZm9yIG5vdyBrZWVwIGl0IGhlcmVcblx0Y3JlYXRlRGVmZXJyZWRDb250ZXh0Pyhcblx0XHRzUGF0aDogc3RyaW5nLFxuXHRcdG9MaXN0QmluZGluZzogT0RhdGFMaXN0QmluZGluZyB8IHVuZGVmaW5lZCxcblx0XHRwYXJlbnRDb250ZXh0OiBDb250ZXh0IHwgdW5kZWZpbmVkLFxuXHRcdGRhdGE6IG9iamVjdCB8IHVuZGVmaW5lZCxcblx0XHRiQWN0aW9uQ3JlYXRlOiBib29sZWFuXG5cdCk6IHZvaWQ7XG5cdGlzT3BlbkluRWRpdE1vZGUoKTogYm9vbGVhbjtcblx0Z2V0Um9vdENvbnRyb2woKTogeyBnZXRDb250cm9sbGVyKCk6IFBhZ2VDb250cm9sbGVyIH0gJiBWaWV3O1xuXHRleHRlbmRQYWdlRGVmaW5pdGlvbj8ocGFnZURlZmluaXRpb246IHt9LCBjb252ZXJ0ZXJDb250ZXh0PzogQ29udmVydGVyQ29udGV4dCk6IHt9O1xuXHRnZXRNb2RlbCgpOiBPRGF0YU1vZGVsO1xuXHRnZXRNb2RlbChtb2RlbE5hbWU6IFwiX3BhZ2VNb2RlbFwiKTogSlNPTk1vZGVsO1xuXHRnZXRNb2RlbChtb2RlbE5hbWU6IHN0cmluZyk6IE1vZGVsIHwgdW5kZWZpbmVkO1xufVxuZXhwb3J0IGRlZmF1bHQgVGVtcGxhdGVDb21wb25lbnQ7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7TUErQ01BLGlCQUFpQixXQUR0QkMsY0FBYyxDQUFDLCtCQUErQixDQUFDLFVBRTlDQyxrQkFBa0IsQ0FBQyxtQ0FBbUMsQ0FBQyxVQU12REMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxRQUFRO0lBQUVDLFlBQVksRUFBRTtFQUFLLENBQUMsQ0FBQyxVQU1oREYsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxRQUFRO0lBQUVDLFlBQVksRUFBRTtFQUFLLENBQUMsQ0FBQyxVQUdoREYsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxVQU81QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxVQU01QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxVQU81QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFXLENBQUMsQ0FBQyxVQU05QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxXQU01QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxXQU01QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFVLENBQUMsQ0FBQyxXQU03QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxXQUc1QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxXQUc1QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxXQUc1QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxXQUc1QkUsS0FBSyxFQUFFLFdBR1BBLEtBQUssRUFBRSxXQUdQ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O0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtNQUFBLE9BTUYsSUFBSTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO01BQUEsT0FrRHRCLEtBQUs7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO01BQUEsT0FNRCxFQUFFO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtFQUFBLE9BeUlIdkQsaUJBQWlCO0FBQUEifQ==
301
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZUNvbXBvbmVudCIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwiaW1wbGVtZW50SW50ZXJmYWNlIiwiX2RlYzMiLCJwcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfZGVjNyIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJldmVudCIsIl9kZWMxNyIsIl9kZWMxOCIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVUlDb21wb25lbnQiLCJfaW5oZXJpdHNMb29zZSIsIl90aGlzIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfZGVzY3JpcHRvcjciLCJfZGVzY3JpcHRvcjgiLCJfZGVzY3JpcHRvcjkiLCJfZGVzY3JpcHRvcjEwIiwiX2Rlc2NyaXB0b3IxMSIsIl9kZXNjcmlwdG9yMTIiLCJfZGVzY3JpcHRvcjEzIiwiX2Rlc2NyaXB0b3IxNCIsIl9kZXNjcmlwdG9yMTUiLCJfZGVzY3JpcHRvcjE2IiwiX2Rlc2NyaXB0b3IxNyIsIl9wcm90byIsInByb3RvdHlwZSIsInNldENvbnRhaW5lciIsIm9Db250YWluZXIiLCJmaXJlRXZlbnQiLCJjb250YWluZXIiLCJpbml0Iiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0RXh0ZW5zaW9uQ29tcG9uZW50Iiwic2V0Um9vdENvbnRyb2xsZXIiLCJjb250cm9sbGVyIiwiX3Jvb3RDb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2xsZXIiLCJyb290Q29udHJvbCIsImdldFJvb3RDb250cm9sIiwicm9vdENvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib25QYWdlUmVhZHkiLCJtUGFyYW1ldGVycyIsImdldE5hdmlnYXRpb25Db25maWd1cmF0aW9uIiwic1RhcmdldFBhdGgiLCJtTmF2aWdhdGlvbiIsIm5hdmlnYXRpb24iLCJnZXRWaWV3RGF0YSIsIm1Qcm9wZXJ0aWVzIiwiZ2V0TWV0YWRhdGEiLCJnZXRBbGxQcm9wZXJ0aWVzIiwib1ZpZXdEYXRhIiwiT2JqZWN0Iiwia2V5cyIsInJlZHVjZSIsIm1WaWV3RGF0YSIsInNQcm9wZXJ0eU5hbWUiLCJnZXQiLCJwcmVwcm9jZXNzb3JDb250ZXh0IiwiZmNsRW5hYmxlZCIsIl9pc0ZjbEVuYWJsZWQiLCJfZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24iLCJnZXRFeHRlbnNpb25BUEkiLCJnZXRNZXRhTW9kZWwiLCJtZXRhTW9kZWxSZWZlcmVuY2UiLCJfdGhpcyRwcmVwcm9jZXNzb3JDb24iLCJtb2RlbHMiLCJtZXRhTW9kZWwiLCJzdGFydHNXaXRoIiwiZ2V0TWV0YU1vZGVsQnlJZCIsIl90aGlzJGdldE1vZGVsIiwiZ2V0TW9kZWwiLCJnZXRGdWxsQ29udGV4dFBhdGgiLCJfdGhpcyRwcmVwcm9jZXNzb3JDb24yIiwiZnVsbENvbnRleHRQYXRoIiwiVUlDb21wb25lbnQiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlRlbXBsYXRlQ29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29udmVydGVkTWV0YWRhdGEgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBldmVudCwgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB0eXBlIHsgTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRNZXRhTW9kZWxCeUlkIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSB7IERlZmluaXRpb25Db250ZXh0LCBEZWZpbml0aW9uUGFnZSB9IGZyb20gXCJzYXAvZmUvY29yZS9kZWZpbml0aW9uL0ZFRGVmaW5pdGlvblwiO1xuaW1wb3J0IHR5cGUgeyBUaXRsZUluZm9ybWF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3Jvb3RWaWV3L1Jvb3RWaWV3QmFzZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIENvbXBvbmVudENvbnRhaW5lciBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50Q29udGFpbmVyXCI7XG5pbXBvcnQgVUlDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL1VJQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IElBc3luY0NvbnRlbnRDcmVhdGlvbiB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IHR5cGUgQmFzZUNvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgdHlwZSBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBOYXZpZ2F0aW9uQ29uZmlndXJhdGlvbiA9IHtcblx0ZGV0YWlsOiB7XG5cdFx0cm91dGU6IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzOiB1bmtub3duO1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdG91dGJvdW5kRGV0YWlsPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb25bXCJvdXRib3VuZERldGFpbFwiXTtcblx0fTtcblx0Y3JlYXRlOiB7XG5cdFx0cm91dGU6IHN0cmluZztcblx0XHRwYXJhbWV0ZXJzOiB1bmtub3duO1xuXHRcdG91dGJvdW5kPzogc3RyaW5nO1xuXHRcdG91dGJvdW5kRGV0YWlsPzogTmF2aWdhdGlvblRhcmdldENvbmZpZ3VyYXRpb25bXCJvdXRib3VuZERldGFpbFwiXTtcblx0fTtcbn07XG5cbmV4cG9ydCB0eXBlIFhNTFByZXByb2Nlc3NvckNvbnRleHQgPSB7XG5cdGJpbmRpbmdDb250ZXh0czogUmVjb3JkPHN0cmluZywgQmFzZUNvbnRleHQgfCBudWxsPjtcblx0bW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBNb2RlbD47XG5cdGZ1bGxDb250ZXh0UGF0aDogc3RyaW5nO1xuXHRnZXRDb252ZXJ0ZWRNZXRhZGF0YTogKCkgPT4gQ29udmVydGVkTWV0YWRhdGE7XG5cdGdldERlZmluaXRpb25Db250ZXh0OiAoKSA9PiBEZWZpbml0aW9uQ29udGV4dDtcblx0Z2V0RGVmaW5pdGlvbkZvclBhZ2U6ICgpID0+IERlZmluaXRpb25QYWdlO1xuXHRhcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudDtcblx0dmlld0lkOiBzdHJpbmc7XG59O1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5UZW1wbGF0ZUNvbXBvbmVudFwiKVxuY2xhc3MgVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBVSUNvbXBvbmVudCBpbXBsZW1lbnRzIElBc3luY0NvbnRlbnRDcmVhdGlvbiB7XG5cdEBpbXBsZW1lbnRJbnRlcmZhY2UoXCJzYXAudWkuY29yZS5JQXN5bmNDb250ZW50Q3JlYXRpb25cIilcblx0X19pbXBsZW1lbnRzX19zYXBfdWlfY29yZV9JQXN5bmNDb250ZW50Q3JlYXRpb24gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBOYW1lIG9mIHRoZSBPRGF0YSBlbnRpdHkgc2V0XG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0ZW50aXR5U2V0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuXHQvKipcblx0ICogQ29udGV4dCBQYXRoIGZvciByZW5kZXJpbmcgdGhlIHRlbXBsYXRlXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCBkZWZhdWx0VmFsdWU6IG51bGwgfSlcblx0Y29udGV4dFBhdGg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0XCIgfSlcblx0cHJlcHJvY2Vzc29yQ29udGV4dD86IFhNTFByZXByb2Nlc3NvckNvbnRleHQ7XG5cblx0LyoqXG5cdCAqIFRoZSBwYXR0ZXJuIGZvciB0aGUgYmluZGluZyBjb250ZXh0IHRvIGJlIGNyZWF0ZSBiYXNlZCBvbiB0aGUgcGFyYW1ldGVycyBmcm9tIHRoZSBuYXZpZ2F0aW9uXG5cdCAqIElmIG5vdCBwcm92aWRlZCB3ZSdsbCBkZWZhdWx0IHRvIHdoYXQgd2FzIHBhc3NlZCBpbiB0aGUgVVJMXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGJpbmRpbmdDb250ZXh0UGF0dGVybiE6IHN0cmluZztcblxuXHQvKipcblx0ICogTWFwIG9mIHVzZWQgT0RhdGEgbmF2aWdhdGlvbnMgYW5kIGl0cyByb3V0aW5nIHRhcmdldHNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwib2JqZWN0XCIgfSlcblx0bmF2aWdhdGlvbiE6IFJlY29yZDxzdHJpbmcsIE5hdmlnYXRpb25Db25maWd1cmF0aW9uPjtcblxuXHQvKipcblx0ICogRW5oYW5jZSB0aGUgaTE4biBidW5kbGUgdXNlZCBmb3IgdGhpcyBwYWdlIHdpdGggb25lIG9yIG1vcmUgYXBwIHNwZWNpZmljIGkxOG4gcmVzb3VyY2UgYnVuZGxlcyBvciByZXNvdXJjZSBtb2RlbHNcblx0ICogb3IgYSBjb21iaW5hdGlvbiBvZiBib3RoLiBUaGUgbGFzdCByZXNvdXJjZSBidW5kbGUvbW9kZWwgaXMgZ2l2ZW4gaGlnaGVzdCBwcmlvcml0eVxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdbXVwiIH0pXG5cdGVuaGFuY2VJMThuITogc3RyaW5nW107XG5cblx0LyoqXG5cdCAqIERlZmluZSBjb250cm9sIHJlbGF0ZWQgY29uZmlndXJhdGlvbiBzZXR0aW5nc1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHRjb250cm9sQ29uZmlndXJhdGlvbj86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5cdC8qKlxuXHQgKiBBZGp1c3RzIHRoZSB0ZW1wbGF0ZSBjb250ZW50XG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcIm9iamVjdFwiIH0pXG5cdGNvbnRlbnQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuXHQvKipcblx0ICogV2hldGhlciBvciBub3QgeW91IGNhbiByZWFjaCB0aGlzIHBhZ2UgZGlyZWN0bHkgdGhyb3VnaCBzZW1hbnRpYyBib29rbWFya3Ncblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdGFsbG93RGVlcExpbmtpbmchOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBjb250ZXh0IHBhdGggb24gdGhlIGNvbXBvbmVudCB0aGF0IGlzIHJlZnJlc2hlZCB3aGVuIHRoZSBhcHAgaXMgcmVzdG9yZWQgdXNpbmcga2VlcCBhbGl2ZSBtb2RlXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcIm9iamVjdFwiIH0pXG5cdHJlZnJlc2hTdHJhdGVneU9uQXBwUmVzdG9yZTogdW5rbm93bjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdHZpZXdUeXBlID0gXCJYTUxcIjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdHZpZXdOYW1lPzogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0X2pzeFZpZXdOYW1lID0gXCJcIjtcblxuXHRAZXZlbnQoKVxuXHRjb250YWluZXJEZWZpbmVkITogRnVuY3Rpb247XG5cblx0QGV2ZW50KClcblx0aGVyb2VzQmF0Y2hSZWNlaXZlZCE6IEZ1bmN0aW9uO1xuXG5cdEBldmVudCgpXG5cdHdvcmtlcnNCYXRjaFJlY2VpdmVkITogRnVuY3Rpb247XG5cblx0cHJvdGVjdGVkIG9BcHBDb21wb25lbnQhOiBBcHBDb21wb25lbnQ7XG5cblx0cHJpdmF0ZSBfcm9vdENvbnRyb2xsZXI/OiBQYWdlQ29udHJvbGxlcjtcblxuXHQvLyBUaGUgaWQgb2YgYSBmcmFnbWVudCBiZWluZyBwcm9jZXNzZWQsIGl0IHdpbGwgdGFrZSBwcmlvcml0eSBpbiB0aGUgSUQgZ2VuZXJhdGlvblxuXHRwcml2YXRlIF90ZW1wb3JhcnlGcmFnbWVudElkPzogc3RyaW5nO1xuXG5cdHNldENvbnRhaW5lcihvQ29udGFpbmVyOiBDb21wb25lbnRDb250YWluZXIpOiB0aGlzIHtcblx0XHRzdXBlci5zZXRDb250YWluZXIob0NvbnRhaW5lcik7XG5cdFx0dGhpcy5maXJlRXZlbnQoXCJjb250YWluZXJEZWZpbmVkXCIsIHsgY29udGFpbmVyOiBvQ29udGFpbmVyIH0pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0aW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLm9BcHBDb21wb25lbnQgPSBDb21tb25VdGlscy5nZXRBcHBDb21wb25lbnQodGhpcyk7XG5cdFx0c3VwZXIuaW5pdCgpO1xuXHR9XG5cblx0Ly8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IFVJNSBjb3JlIHRvIGFjY2VzcyB0byB0aGUgY29tcG9uZW50IGNvbnRhaW5pbmcgdGhlIGN1c3RvbWl6aW5nIGNvbmZpZ3VyYXRpb24uXG5cdC8vIGFzIGNvbnRyb2xsZXIgZXh0ZW5zaW9ucyBhcmUgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QgZm9yIHRoZSBhcHAgY29tcG9uZW50IGFuZCBub3QgZm9yIHRoZVxuXHQvLyB0ZW1wbGF0ZSBjb21wb25lbnQgd2UgcmV0dXJuIHRoZSBhcHAgY29tcG9uZW50LlxuXHRnZXRFeHRlbnNpb25Db21wb25lbnQoKTogQXBwQ29tcG9uZW50IHtcblx0XHRyZXR1cm4gdGhpcy5vQXBwQ29tcG9uZW50O1xuXHR9XG5cblx0Z2V0QXBwQ29tcG9uZW50KCk6IEFwcENvbXBvbmVudCB7XG5cdFx0cmV0dXJuIHRoaXMub0FwcENvbXBvbmVudDtcblx0fVxuXG5cdHNldFJvb3RDb250cm9sbGVyKGNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKTogdm9pZCB7XG5cdFx0dGhpcy5fcm9vdENvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuXHR9XG5cblx0Z2V0Um9vdENvbnRyb2xsZXIoKTogUGFnZUNvbnRyb2xsZXIgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHJvb3RDb250cm9sOiBWaWV3ID0gdGhpcy5nZXRSb290Q29udHJvbCgpO1xuXHRcdGxldCByb290Q29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHJvb3RDb250cm9sICYmIHJvb3RDb250cm9sLmdldENvbnRyb2xsZXIpIHtcblx0XHRcdHJvb3RDb250cm9sbGVyID0gcm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcigpIGFzIFBhZ2VDb250cm9sbGVyO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyb290Q29udHJvbGxlciA9IHRoaXMuX3Jvb3RDb250cm9sbGVyO1xuXHRcdH1cblx0XHRyZXR1cm4gcm9vdENvbnRyb2xsZXI7XG5cdH1cblxuXHRvblBhZ2VSZWFkeShtUGFyYW1ldGVyczogdW5rbm93bik6IHZvaWQge1xuXHRcdGNvbnN0IHJvb3RDb250cm9sbGVyID0gdGhpcy5nZXRSb290Q29udHJvbGxlcigpO1xuXHRcdGlmIChyb290Q29udHJvbGxlciAmJiByb290Q29udHJvbGxlci5vblBhZ2VSZWFkeSkge1xuXHRcdFx0cm9vdENvbnRyb2xsZXIub25QYWdlUmVhZHkobVBhcmFtZXRlcnMpO1xuXHRcdH1cblx0fVxuXG5cdGdldE5hdmlnYXRpb25Db25maWd1cmF0aW9uKHNUYXJnZXRQYXRoOiBzdHJpbmcpOiBOYXZpZ2F0aW9uQ29uZmlndXJhdGlvbiB7XG5cdFx0Y29uc3QgbU5hdmlnYXRpb24gPSB0aGlzLm5hdmlnYXRpb247XG5cdFx0cmV0dXJuIG1OYXZpZ2F0aW9uW3NUYXJnZXRQYXRoXTtcblx0fVxuXG5cdGdldFZpZXdEYXRhKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcblx0XHRjb25zdCBtUHJvcGVydGllcyA9IHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRBbGxQcm9wZXJ0aWVzKCk7XG5cdFx0Y29uc3Qgb1ZpZXdEYXRhID0gT2JqZWN0LmtleXMobVByb3BlcnRpZXMpLnJlZHVjZSgobVZpZXdEYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgc1Byb3BlcnR5TmFtZTogc3RyaW5nKSA9PiB7XG5cdFx0XHRtVmlld0RhdGFbc1Byb3BlcnR5TmFtZV0gPSBtUHJvcGVydGllc1tzUHJvcGVydHlOYW1lXS5nZXQhKHRoaXMpO1xuXHRcdFx0cmV0dXJuIG1WaWV3RGF0YTtcblx0XHR9LCB7fSk7XG5cdFx0ZGVsZXRlIG9WaWV3RGF0YS5wcmVwcm9jZXNzb3JDb250ZXh0O1xuXHRcdC8vIEFjY2VzcyB0aGUgaW50ZXJuYWwgX2lzRmNsRW5hYmxlZCB3aGljaCB3aWxsIGJlIHRoZXJlXG5cdFx0b1ZpZXdEYXRhLmZjbEVuYWJsZWQgPSB0aGlzLm9BcHBDb21wb25lbnQuX2lzRmNsRW5hYmxlZCgpO1xuXG5cdFx0cmV0dXJuIG9WaWV3RGF0YTtcblx0fVxuXG5cdF9nZXRQYWdlVGl0bGVJbmZvcm1hdGlvbigpOiBUaXRsZUluZm9ybWF0aW9uIHtcblx0XHRjb25zdCByb290Q29udHJvbCA9IHRoaXMuZ2V0Um9vdENvbnRyb2woKTtcblx0XHRpZiAocm9vdENvbnRyb2wgJiYgcm9vdENvbnRyb2wuZ2V0Q29udHJvbGxlcigpICYmIHJvb3RDb250cm9sLmdldENvbnRyb2xsZXIoKS5fZ2V0UGFnZVRpdGxlSW5mb3JtYXRpb24pIHtcblx0XHRcdHJldHVybiByb290Q29udHJvbC5nZXRDb250cm9sbGVyKCkuX2dldFBhZ2VUaXRsZUluZm9ybWF0aW9uKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB7fSBhcyBUaXRsZUluZm9ybWF0aW9uO1xuXHRcdH1cblx0fVxuXG5cdGdldEV4dGVuc2lvbkFQSSgpOiBFeHRlbnNpb25BUEkge1xuXHRcdHJldHVybiB0aGlzLmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpLmdldEV4dGVuc2lvbkFQSSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgbWV0YW1vZGVsIGZvciB0aGUgZ2l2ZW4gbWV0YW1vZGVsIHJlZmVyZW5jZSAoSUQgLyBuYW1lIG9yIHVuZGVmaW5lZCBmb3IgdGhlIGRlZmF1bHQgb25lKS5cblx0ICogQHBhcmFtIG1ldGFNb2RlbFJlZmVyZW5jZSBUaGUgbWV0YW1vZGVsIHJlZmVyZW5jZVxuXHQgKiBAcmV0dXJucyBUaGUgY29ycmVjdCBtZXRhbW9kZWwgaWYgaXQgZXhpdHNcblx0ICovXG5cdGdldE1ldGFNb2RlbChtZXRhTW9kZWxSZWZlcmVuY2U/OiBzdHJpbmcpOiBPRGF0YU1ldGFNb2RlbCB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFtZXRhTW9kZWxSZWZlcmVuY2UpIHtcblx0XHRcdHJldHVybiB0aGlzLnByZXByb2Nlc3NvckNvbnRleHQ/Lm1vZGVscy5tZXRhTW9kZWwgYXMgT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIGlmIChtZXRhTW9kZWxSZWZlcmVuY2Uuc3RhcnRzV2l0aChcImlkLVwiKSkge1xuXHRcdFx0cmV0dXJuIGdldE1ldGFNb2RlbEJ5SWQobWV0YU1vZGVsUmVmZXJlbmNlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuZ2V0TW9kZWwobWV0YU1vZGVsUmVmZXJlbmNlKT8uZ2V0TWV0YU1vZGVsKCkgYXMgT0RhdGFNZXRhTW9kZWwgfCB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgZnVsbCBjb250ZXh0IHBhdGggZm9yIHRoZSBnaXZlbiBtZXRhbW9kZWwgcmVmZXJlbmNlIChJRCAvIG5hbWUgb3IgdW5kZWZpbmVkIGZvciB0aGUgZGVmYXVsdCBvbmUpLlxuXHQgKiBAcGFyYW0gbWV0YU1vZGVsUmVmZXJlbmNlIFRoZSBtZXRhbW9kZWwgcmVmZXJlbmNlXG5cdCAqIEByZXR1cm5zIFRoZSBjb3JyZWN0IGZ1bGwgY29udGV4dCBwYXRoXG5cdCAqL1xuXHRnZXRGdWxsQ29udGV4dFBhdGgobWV0YU1vZGVsUmVmZXJlbmNlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdGlmICghbWV0YU1vZGVsUmVmZXJlbmNlKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5wcmVwcm9jZXNzb3JDb250ZXh0Py5mdWxsQ29udGV4dFBhdGg7XG5cdFx0fVxuXHR9XG59XG5pbnRlcmZhY2UgVGVtcGxhdGVDb21wb25lbnQge1xuXHQvLyBUT0RPOiB0aGlzIHNob3VsZCBiZSBpZGVhbGx5IGJlIGhhbmRsZWQgYnkgdGhlIGVkaXRmbG93L3JvdXRpbmcgd2l0aG91dCB0aGUgbmVlZCB0byBoYXZlIHRoaXMgbWV0aG9kIGluIHRoZSBvYmplY3QgcGFnZSAtIGZvciBub3cga2VlcCBpdCBoZXJlXG5cdGNyZWF0ZURlZmVycmVkQ29udGV4dD8oXG5cdFx0c1BhdGg6IHN0cmluZyxcblx0XHRvTGlzdEJpbmRpbmc6IE9EYXRhTGlzdEJpbmRpbmcgfCB1bmRlZmluZWQsXG5cdFx0cGFyZW50Q29udGV4dDogQ29udGV4dCB8IHVuZGVmaW5lZCxcblx0XHRkYXRhOiBvYmplY3QgfCB1bmRlZmluZWQsXG5cdFx0YkFjdGlvbkNyZWF0ZTogYm9vbGVhblxuXHQpOiB2b2lkO1xuXHRpc09wZW5JbkVkaXRNb2RlKCk6IGJvb2xlYW47XG5cdGdldFJvb3RDb250cm9sKCk6IHsgZ2V0Q29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB9ICYgVmlldztcblx0ZXh0ZW5kUGFnZURlZmluaXRpb24/KHBhZ2VEZWZpbml0aW9uOiB7fSwgY29udmVydGVyQ29udGV4dD86IENvbnZlcnRlckNvbnRleHQpOiB7fTtcblx0Z2V0TW9kZWwoKTogT0RhdGFNb2RlbDtcblx0Z2V0TW9kZWwobW9kZWxOYW1lOiBcIl9wYWdlTW9kZWxcIik6IEpTT05Nb2RlbDtcblx0Z2V0TW9kZWwobW9kZWxOYW1lOiBzdHJpbmcpOiBNb2RlbCB8IHVuZGVmaW5lZDtcbn1cbmV4cG9ydCBkZWZhdWx0IFRlbXBsYXRlQ29tcG9uZW50O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Ba0RNQSxpQkFBaUIsSUFBQUMsSUFBQSxHQUR0QkMsY0FBYyxDQUFDLCtCQUErQixDQUFDLEVBQUFDLEtBQUEsR0FFOUNDLGtCQUFrQixDQUFDLG1DQUFtQyxDQUFDLEVBQUFDLEtBQUEsR0FNdkRDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsUUFBUTtJQUFFQyxZQUFZLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU1oREgsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxRQUFRO0lBQUVDLFlBQVksRUFBRTtFQUFLLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBR2hESixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLEVBQUFJLEtBQUEsR0FPNUJMLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQUssS0FBQSxHQU01Qk4sUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBTSxLQUFBLEdBTzVCUCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVcsQ0FBQyxDQUFDLEVBQUFPLEtBQUEsR0FNOUJSLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQVEsTUFBQSxHQU01QlQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBUyxNQUFBLEdBTTVCVixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFVLE1BQUEsR0FNN0JYLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQVcsTUFBQSxHQUc1QlosUUFBUSxDQUFD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
@@ -7,6 +7,7 @@ import type PageController from "sap/fe/core/PageController";
7
7
  import type ConverterContext from "sap/fe/core/converters/ConverterContext";
8
8
  import type { NavigationTargetConfiguration } from "sap/fe/core/converters/ManifestSettings";
9
9
  import { getMetaModelById } from "sap/fe/core/converters/MetaModelConverter";
10
+ import type { DefinitionContext, DefinitionPage } from "sap/fe/core/definition/FEDefinition";
10
11
  import type { TitleInformation } from "sap/fe/core/rootView/RootViewBaseController";
11
12
  import type ComponentContainer from "sap/ui/core/ComponentContainer";
12
13
  import UIComponent from "sap/ui/core/UIComponent";
@@ -40,6 +41,8 @@ export type XMLPreprocessorContext = {
40
41
  models: Record<string, Model>;
41
42
  fullContextPath: string;
42
43
  getConvertedMetadata: () => ConvertedMetadata;
44
+ getDefinitionContext: () => DefinitionContext;
45
+ getDefinitionForPage: () => DefinitionPage;
43
46
  appComponent: AppComponent;
44
47
  viewId: string;
45
48
  };
@@ -210,7 +213,6 @@ class TemplateComponent extends UIComponent implements IAsyncContentCreation {
210
213
 
211
214
  /**
212
215
  * Retrieves the metamodel for the given metamodel reference (ID / name or undefined for the default one).
213
- *
214
216
  * @param metaModelReference The metamodel reference
215
217
  * @returns The correct metamodel if it exits
216
218
  */
@@ -226,7 +228,6 @@ class TemplateComponent extends UIComponent implements IAsyncContentCreation {
226
228
 
227
229
  /**
228
230
  * Retrieves the full context path for the given metamodel reference (ID / name or undefined for the default one).
229
- *
230
231
  * @param metaModelReference The metamodel reference
231
232
  * @returns The correct full context path
232
233
  */
@@ -7,9 +7,10 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/base/Object", "sap/ui/model/j
7
7
 
8
8
  var _dec, _class;
9
9
  var defineUI5Class = ClassSupport.defineUI5Class;
10
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
11
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
12
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
10
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
11
+ function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
12
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
13
+ // We are overriding internal from the JSONModel so this makes sense
13
14
  let TemplateModel = (_dec = defineUI5Class("sap.fe.core.TemplateModel"), _dec(_class = /*#__PURE__*/function (_BaseObject) {
14
15
  _inheritsLoose(TemplateModel, _BaseObject);
15
16
  function TemplateModel(pageConfig, oMetaModel) {
@@ -45,7 +46,6 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/base/Object", "sap/ui/model/j
45
46
 
46
47
  /**
47
48
  * Overwrite the standard setData to keep track whether the external configuration has been loaded or not.
48
- *
49
49
  * @param dataToSet The data to set to the json model containing the configuration
50
50
  */
51
51
  var _proto = TemplateModel.prototype;
@@ -72,4 +72,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/ui/base/Object", "sap/ui/model/j
72
72
  }(BaseObject)) || _class);
73
73
  return TemplateModel;
74
74
  }, false);
75
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZU1vZGVsIiwiZGVmaW5lVUk1Q2xhc3MiLCJwYWdlQ29uZmlnIiwib01ldGFNb2RlbCIsIm9Db25maWdNb2RlbCIsIkpTT05Nb2RlbCIsInNldFNpemVMaW1pdCIsIk51bWJlciIsIk1BWF9WQUxVRSIsImJDb25maWdMb2FkZWQiLCJ0aGF0IiwiZm5HZXRPYmplY3QiLCJfZ2V0T2JqZWN0IiwiYmluZCIsInNQYXRoIiwib0NvbnRleHQiLCJzZXREYXRhIiwiZm5DcmVhdGVNZXRhQmluZGluZ0NvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImZuQ3JlYXRlQ29uZmlnQmluZGluZ0NvbnRleHQiLCJmblNldERhdGEiLCJkYXRhVG9TZXQiLCJtUGFyYW1ldGVycyIsImZuQ2FsbEJhY2siLCJvQmluZGluZ0NvbnRleHQiLCJiTm9SZXNvbHZlIiwibm9SZXNvbHZlIiwic1Jlc29sdmVkUGF0aCIsImdldE9iamVjdCIsImRlc3Ryb3kiLCJwcm90b3R5cGUiLCJhcHBseSIsIkJhc2VPYmplY3QiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlRlbXBsYXRlTW9kZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQmFzZU9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvT2JqZWN0XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5cbi8vIFdlIGFyZSBvdmVycmlkaW5nIGludGVybmFsIGZyb20gdGhlIEpTT05Nb2RlbCBzbyB0aGlzIG1ha2VzIHNlbnNlXG50eXBlIEludGVybmFsSlNPTk1vZGVsID0gSlNPTk1vZGVsICYge1xuXHRfZ2V0T2JqZWN0KHNQYXRoOiBzdHJpbmcsIG9Db250ZXh0PzogQ29udGV4dCk6IG9iamVjdDtcbn07XG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5UZW1wbGF0ZU1vZGVsXCIpXG5jbGFzcyBUZW1wbGF0ZU1vZGVsIGV4dGVuZHMgQmFzZU9iamVjdCB7XG5cdHB1YmxpYyBvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbDtcblxuXHRwdWJsaWMgb0NvbmZpZ01vZGVsOiBKU09OTW9kZWw7XG5cblx0cHVibGljIGJDb25maWdMb2FkZWQ6IGJvb2xlYW47XG5cblx0cHVibGljIGZuQ3JlYXRlTWV0YUJpbmRpbmdDb250ZXh0OiBGdW5jdGlvbjtcblxuXHRwdWJsaWMgZm5DcmVhdGVDb25maWdCaW5kaW5nQ29udGV4dDogRnVuY3Rpb247XG5cblx0cHVibGljIGZuU2V0RGF0YTogRnVuY3Rpb247XG5cblx0Y29uc3RydWN0b3IocGFnZUNvbmZpZzogRnVuY3Rpb24gfCBvYmplY3QsIG9NZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9NZXRhTW9kZWwgPSBvTWV0YU1vZGVsO1xuXHRcdHRoaXMub0NvbmZpZ01vZGVsID0gbmV3IEpTT05Nb2RlbCgpO1xuXHRcdC8vIGRvbid0IGxpbWl0IGFnZ3JlZ2F0aW9uIGJpbmRpbmdzXG5cdFx0dGhpcy5vQ29uZmlnTW9kZWwuc2V0U2l6ZUxpbWl0KE51bWJlci5NQVhfVkFMVUUpO1xuXHRcdHRoaXMuYkNvbmZpZ0xvYWRlZCA9IGZhbHNlO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuXHRcdGNvbnN0IHRoYXQgPSB0aGlzO1xuXG5cdFx0aWYgKHR5cGVvZiBwYWdlQ29uZmlnID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRcdGNvbnN0IGZuR2V0T2JqZWN0ID0gKHRoaXMub0NvbmZpZ01vZGVsIGFzIEludGVybmFsSlNPTk1vZGVsKS5fZ2V0T2JqZWN0LmJpbmQodGhpcy5vQ29uZmlnTW9kZWwpO1xuXHRcdFx0KHRoaXMub0NvbmZpZ01vZGVsIGFzIEludGVybmFsSlNPTk1vZGVsKS5fZ2V0T2JqZWN0ID0gZnVuY3Rpb24gKHNQYXRoOiBzdHJpbmcsIG9Db250ZXh0OiBDb250ZXh0KTogT2JqZWN0IHtcblx0XHRcdFx0aWYgKCF0aGF0LmJDb25maWdMb2FkZWQpIHtcblx0XHRcdFx0XHR0aGlzLnNldERhdGEocGFnZUNvbmZpZygpKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gZm5HZXRPYmplY3Qoc1BhdGgsIG9Db250ZXh0KTtcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMub0NvbmZpZ01vZGVsLnNldERhdGEocGFnZUNvbmZpZyk7XG5cdFx0fVxuXG5cdFx0dGhpcy5mbkNyZWF0ZU1ldGFCaW5kaW5nQ29udGV4dCA9IHRoaXMub01ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dC5iaW5kKHRoaXMub01ldGFNb2RlbCk7XG5cdFx0dGhpcy5mbkNyZWF0ZUNvbmZpZ0JpbmRpbmdDb250ZXh0ID0gdGhpcy5vQ29uZmlnTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQuYmluZCh0aGlzLm9Db25maWdNb2RlbCk7XG5cdFx0dGhpcy5mblNldERhdGEgPSB0aGlzLm9Db25maWdNb2RlbC5zZXREYXRhLmJpbmQodGhpcy5vQ29uZmlnTW9kZWwpO1xuXG5cdFx0dGhpcy5vQ29uZmlnTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQgPSB0aGlzLmNyZWF0ZUJpbmRpbmdDb250ZXh0LmJpbmQodGhpcyk7XG5cdFx0dGhpcy5vQ29uZmlnTW9kZWwuc2V0RGF0YSA9IHRoaXMuc2V0RGF0YS5iaW5kKHRoaXMpO1xuXHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcblx0XHQvLyBAdHMtaWdub3JlXG5cdFx0cmV0dXJuIHRoaXMub0NvbmZpZ01vZGVsO1xuXHR9XG5cblx0LyoqXG5cdCAqIE92ZXJ3cml0ZSB0aGUgc3RhbmRhcmQgc2V0RGF0YSB0byBrZWVwIHRyYWNrIHdoZXRoZXIgdGhlIGV4dGVybmFsIGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gbG9hZGVkIG9yIG5vdC5cblx0ICpcblx0ICogQHBhcmFtIGRhdGFUb1NldCBUaGUgZGF0YSB0byBzZXQgdG8gdGhlIGpzb24gbW9kZWwgY29udGFpbmluZyB0aGUgY29uZmlndXJhdGlvblxuXHQgKi9cblx0c2V0RGF0YShkYXRhVG9TZXQ6IG9iamVjdCk6IHZvaWQge1xuXHRcdHRoaXMuZm5TZXREYXRhKGRhdGFUb1NldCk7XG5cdFx0dGhpcy5iQ29uZmlnTG9hZGVkID0gdHJ1ZTtcblx0fVxuXG5cdGNyZWF0ZUJpbmRpbmdDb250ZXh0KHNQYXRoOiBzdHJpbmcsIG9Db250ZXh0PzogQ29udGV4dCwgbVBhcmFtZXRlcnM/OiB7IG5vUmVzb2x2ZT86IGJvb2xlYW4gfSwgZm5DYWxsQmFjaz86IEZ1bmN0aW9uKTogQ29udGV4dCB7XG5cdFx0bGV0IG9CaW5kaW5nQ29udGV4dDtcblx0XHRjb25zdCBiTm9SZXNvbHZlID0gbVBhcmFtZXRlcnMgJiYgbVBhcmFtZXRlcnMubm9SZXNvbHZlO1xuXG5cdFx0b0JpbmRpbmdDb250ZXh0ID0gdGhpcy5mbkNyZWF0ZUNvbmZpZ0JpbmRpbmdDb250ZXh0KHNQYXRoLCBvQ29udGV4dCwgbVBhcmFtZXRlcnMsIGZuQ2FsbEJhY2spO1xuXHRcdGNvbnN0IHNSZXNvbHZlZFBhdGggPSAhYk5vUmVzb2x2ZSAmJiBvQmluZGluZ0NvbnRleHQ/LmdldE9iamVjdCgpO1xuXHRcdGlmIChzUmVzb2x2ZWRQYXRoICYmIHR5cGVvZiBzUmVzb2x2ZWRQYXRoID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRvQmluZGluZ0NvbnRleHQgPSB0aGlzLmZuQ3JlYXRlTWV0YUJpbmRpbmdDb250ZXh0KHNSZXNvbHZlZFBhdGgsIG9Db250ZXh0LCBtUGFyYW1ldGVycywgZm5DYWxsQmFjayk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9CaW5kaW5nQ29udGV4dDtcblx0fVxuXG5cdGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5vQ29uZmlnTW9kZWwuZGVzdHJveSgpO1xuXHRcdEpTT05Nb2RlbC5wcm90b3R5cGUuZGVzdHJveS5hcHBseSh0aGlzKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBUZW1wbGF0ZU1vZGVsO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7TUFXTUEsYUFBYSxXQURsQkMsY0FBYyxDQUFDLDJCQUEyQixDQUFDO0lBQUE7SUFjM0MsdUJBQVlDLFVBQTZCLEVBQUVDLFVBQTBCLEVBQUU7TUFBQTtNQUN0RSw4QkFBTztNQUNQLE1BQUtBLFVBQVUsR0FBR0EsVUFBVTtNQUM1QixNQUFLQyxZQUFZLEdBQUcsSUFBSUMsU0FBUyxFQUFFO01BQ25DO01BQ0EsTUFBS0QsWUFBWSxDQUFDRSxZQUFZLENBQUNDLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDO01BQ2hELE1BQUtDLGFBQWEsR0FBRyxLQUFLO01BQzFCO01BQ0EsTUFBTUMsSUFBSSxnQ0FBTztNQUVqQixJQUFJLE9BQU9SLFVBQVUsS0FBSyxVQUFVLEVBQUU7UUFDckMsTUFBTVMsV0FBVyxHQUFJLE1BQUtQLFlBQVksQ0FBdUJRLFVBQVUsQ0FBQ0MsSUFBSSxDQUFDLE1BQUtULFlBQVksQ0FBQztRQUM5RixNQUFLQSxZQUFZLENBQXVCUSxVQUFVLEdBQUcsVUFBVUUsS0FBYSxFQUFFQyxRQUFpQixFQUFVO1VBQ3pHLElBQUksQ0FBQ0wsSUFBSSxDQUFDRCxhQUFhLEVBQUU7WUFDeEIsSUFBSSxDQUFDTyxPQUFPLENBQUNkLFVBQVUsRUFBRSxDQUFDO1VBQzNCO1VBQ0EsT0FBT1MsV0FBVyxDQUFDRyxLQUFLLEVBQUVDLFFBQVEsQ0FBQztRQUNwQyxDQUFDO01BQ0YsQ0FBQyxNQUFNO1FBQ04sTUFBS1gsWUFBWSxDQUFDWSxPQUFPLENBQUNkLFVBQVUsQ0FBQztNQUN0QztNQUVBLE1BQUtlLDBCQUEwQixHQUFHLE1BQUtkLFVBQVUsQ0FBQ2Usb0JBQW9CLENBQUNMLElBQUksQ0FBQyxNQUFLVixVQUFVLENBQUM7TUFDNUYsTUFBS2dCLDRCQUE0QixHQUFHLE1BQUtmLFlBQVksQ0FBQ2Msb0JBQW9CLENBQUNMLElBQUksQ0FBQyxNQUFLVCxZQUFZLENBQUM7TUFDbEcsTUFBS2dCLFNBQVMsR0FBRyxNQUFLaEIsWUFBWSxDQUFDWSxPQUFPLENBQUNILElBQUksQ0FBQyxNQUFLVCxZQUFZLENBQUM7TUFFbEUsTUFBS0EsWUFBWSxDQUFDYyxvQkFBb0IsR0FBRyxNQUFLQSxvQkFBb0IsQ0FBQ0wsSUFBSSwrQkFBTTtNQUM3RSxNQUFLVCxZQUFZLENBQUNZLE9BQU8sR0FBRyxNQUFLQSxPQUFPLENBQUNILElBQUksK0JBQU07TUFDbkQ7TUFDQTtNQUNBLE9BQU8sTUFBS1QsWUFBWTtJQUN6Qjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0lBSkM7SUFBQSxPQUtBWSxPQUFPLEdBQVAsaUJBQVFLLFNBQWlCLEVBQVE7TUFDaEMsSUFBSSxDQUFDRCxTQUFTLENBQUNDLFNBQVMsQ0FBQztNQUN6QixJQUFJLENBQUNaLGFBQWEsR0FBRyxJQUFJO0lBQzFCLENBQUM7SUFBQSxPQUVEUyxvQkFBb0IsR0FBcEIsOEJBQXFCSixLQUFhLEVBQUVDLFFBQWtCLEVBQUVPLFdBQXFDLEVBQUVDLFVBQXFCLEVBQVc7TUFBQTtNQUM5SCxJQUFJQyxlQUFlO01BQ25CLE1BQU1DLFVBQVUsR0FBR0gsV0FBVyxJQUFJQSxXQUFXLENBQUNJLFNBQVM7TUFFdkRGLGVBQWUsR0FBRyxJQUFJLENBQUNMLDRCQUE0QixDQUFDTCxLQUFLLEVBQUVDLFFBQVEsRUFBRU8sV0FBVyxFQUFFQyxVQUFVLENBQUM7TUFDN0YsTUFBTUksYUFBYSxHQUFHLENBQUNGLFVBQVUseUJBQUlELGVBQWUscURBQWYsaUJBQWlCSSxTQUFTLEVBQUU7TUFDakUsSUFBSUQsYUFBYSxJQUFJLE9BQU9BLGFBQWEsS0FBSyxRQUFRLEVBQUU7UUFDdkRILGVBQWUsR0FBRyxJQUFJLENBQUNQLDBCQUEwQixDQUFDVSxhQUFhLEVBQUVaLFFBQVEsRUFBRU8sV0FBVyxFQUFFQyxVQUFVLENBQUM7TUFDcEc7TUFFQSxPQUFPQyxlQUFlO0lBQ3ZCLENBQUM7SUFBQSxPQUVESyxPQUFPLEdBQVAsbUJBQWdCO01BQ2YsSUFBSSxDQUFDekIsWUFBWSxDQUFDeUIsT0FBTyxFQUFFO01BQzNCeEIsU0FBUyxDQUFDeUIsU0FBUyxDQUFDRCxPQUFPLENBQUNFLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUFBO0VBQUEsRUF4RTBCQyxVQUFVO0VBQUEsT0EyRXZCaEMsYUFBYTtBQUFBIn0=
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZW1wbGF0ZU1vZGVsIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2NsYXNzIiwiX0Jhc2VPYmplY3QiLCJfaW5oZXJpdHNMb29zZSIsInBhZ2VDb25maWciLCJvTWV0YU1vZGVsIiwiX3RoaXMiLCJjYWxsIiwib0NvbmZpZ01vZGVsIiwiSlNPTk1vZGVsIiwic2V0U2l6ZUxpbWl0IiwiTnVtYmVyIiwiTUFYX1ZBTFVFIiwiYkNvbmZpZ0xvYWRlZCIsInRoYXQiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiZm5HZXRPYmplY3QiLCJfZ2V0T2JqZWN0IiwiYmluZCIsInNQYXRoIiwib0NvbnRleHQiLCJzZXREYXRhIiwiZm5DcmVhdGVNZXRhQmluZGluZ0NvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsImZuQ3JlYXRlQ29uZmlnQmluZGluZ0NvbnRleHQiLCJmblNldERhdGEiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJkYXRhVG9TZXQiLCJtUGFyYW1ldGVycyIsImZuQ2FsbEJhY2siLCJfb0JpbmRpbmdDb250ZXh0Iiwib0JpbmRpbmdDb250ZXh0IiwiYk5vUmVzb2x2ZSIsIm5vUmVzb2x2ZSIsInNSZXNvbHZlZFBhdGgiLCJnZXRPYmplY3QiLCJkZXN0cm95IiwiYXBwbHkiLCJCYXNlT2JqZWN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUZW1wbGF0ZU1vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJhc2VPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL09iamVjdFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuXG4vLyBXZSBhcmUgb3ZlcnJpZGluZyBpbnRlcm5hbCBmcm9tIHRoZSBKU09OTW9kZWwgc28gdGhpcyBtYWtlcyBzZW5zZVxudHlwZSBJbnRlcm5hbEpTT05Nb2RlbCA9IEpTT05Nb2RlbCAmIHtcblx0X2dldE9iamVjdChzUGF0aDogc3RyaW5nLCBvQ29udGV4dD86IENvbnRleHQpOiBvYmplY3Q7XG59O1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuVGVtcGxhdGVNb2RlbFwiKVxuY2xhc3MgVGVtcGxhdGVNb2RlbCBleHRlbmRzIEJhc2VPYmplY3Qge1xuXHRwdWJsaWMgb01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWw7XG5cblx0cHVibGljIG9Db25maWdNb2RlbDogSlNPTk1vZGVsO1xuXG5cdHB1YmxpYyBiQ29uZmlnTG9hZGVkOiBib29sZWFuO1xuXG5cdHB1YmxpYyBmbkNyZWF0ZU1ldGFCaW5kaW5nQ29udGV4dDogRnVuY3Rpb247XG5cblx0cHVibGljIGZuQ3JlYXRlQ29uZmlnQmluZGluZ0NvbnRleHQ6IEZ1bmN0aW9uO1xuXG5cdHB1YmxpYyBmblNldERhdGE6IEZ1bmN0aW9uO1xuXG5cdGNvbnN0cnVjdG9yKHBhZ2VDb25maWc6IEZ1bmN0aW9uIHwgb2JqZWN0LCBvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vTWV0YU1vZGVsID0gb01ldGFNb2RlbDtcblx0XHR0aGlzLm9Db25maWdNb2RlbCA9IG5ldyBKU09OTW9kZWwoKTtcblx0XHQvLyBkb24ndCBsaW1pdCBhZ2dyZWdhdGlvbiBiaW5kaW5nc1xuXHRcdHRoaXMub0NvbmZpZ01vZGVsLnNldFNpemVMaW1pdChOdW1iZXIuTUFYX1ZBTFVFKTtcblx0XHR0aGlzLmJDb25maWdMb2FkZWQgPSBmYWxzZTtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcblx0XHRjb25zdCB0aGF0ID0gdGhpcztcblxuXHRcdGlmICh0eXBlb2YgcGFnZUNvbmZpZyA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0XHRjb25zdCBmbkdldE9iamVjdCA9ICh0aGlzLm9Db25maWdNb2RlbCBhcyBJbnRlcm5hbEpTT05Nb2RlbCkuX2dldE9iamVjdC5iaW5kKHRoaXMub0NvbmZpZ01vZGVsKTtcblx0XHRcdCh0aGlzLm9Db25maWdNb2RlbCBhcyBJbnRlcm5hbEpTT05Nb2RlbCkuX2dldE9iamVjdCA9IGZ1bmN0aW9uIChzUGF0aDogc3RyaW5nLCBvQ29udGV4dDogQ29udGV4dCk6IE9iamVjdCB7XG5cdFx0XHRcdGlmICghdGhhdC5iQ29uZmlnTG9hZGVkKSB7XG5cdFx0XHRcdFx0dGhpcy5zZXREYXRhKHBhZ2VDb25maWcoKSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGZuR2V0T2JqZWN0KHNQYXRoLCBvQ29udGV4dCk7XG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLm9Db25maWdNb2RlbC5zZXREYXRhKHBhZ2VDb25maWcpO1xuXHRcdH1cblxuXHRcdHRoaXMuZm5DcmVhdGVNZXRhQmluZGluZ0NvbnRleHQgPSB0aGlzLm9NZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQuYmluZCh0aGlzLm9NZXRhTW9kZWwpO1xuXHRcdHRoaXMuZm5DcmVhdGVDb25maWdCaW5kaW5nQ29udGV4dCA9IHRoaXMub0NvbmZpZ01vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0LmJpbmQodGhpcy5vQ29uZmlnTW9kZWwpO1xuXHRcdHRoaXMuZm5TZXREYXRhID0gdGhpcy5vQ29uZmlnTW9kZWwuc2V0RGF0YS5iaW5kKHRoaXMub0NvbmZpZ01vZGVsKTtcblxuXHRcdHRoaXMub0NvbmZpZ01vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0ID0gdGhpcy5jcmVhdGVCaW5kaW5nQ29udGV4dC5iaW5kKHRoaXMpO1xuXHRcdHRoaXMub0NvbmZpZ01vZGVsLnNldERhdGEgPSB0aGlzLnNldERhdGEuYmluZCh0aGlzKTtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG5cdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdHJldHVybiB0aGlzLm9Db25maWdNb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBPdmVyd3JpdGUgdGhlIHN0YW5kYXJkIHNldERhdGEgdG8ga2VlcCB0cmFjayB3aGV0aGVyIHRoZSBleHRlcm5hbCBjb25maWd1cmF0aW9uIGhhcyBiZWVuIGxvYWRlZCBvciBub3QuXG5cdCAqIEBwYXJhbSBkYXRhVG9TZXQgVGhlIGRhdGEgdG8gc2V0IHRvIHRoZSBqc29uIG1vZGVsIGNvbnRhaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb25cblx0ICovXG5cdHNldERhdGEoZGF0YVRvU2V0OiBvYmplY3QpOiB2b2lkIHtcblx0XHR0aGlzLmZuU2V0RGF0YShkYXRhVG9TZXQpO1xuXHRcdHRoaXMuYkNvbmZpZ0xvYWRlZCA9IHRydWU7XG5cdH1cblxuXHRjcmVhdGVCaW5kaW5nQ29udGV4dChzUGF0aDogc3RyaW5nLCBvQ29udGV4dD86IENvbnRleHQsIG1QYXJhbWV0ZXJzPzogeyBub1Jlc29sdmU/OiBib29sZWFuIH0sIGZuQ2FsbEJhY2s/OiBGdW5jdGlvbik6IENvbnRleHQge1xuXHRcdGxldCBvQmluZGluZ0NvbnRleHQ7XG5cdFx0Y29uc3QgYk5vUmVzb2x2ZSA9IG1QYXJhbWV0ZXJzICYmIG1QYXJhbWV0ZXJzLm5vUmVzb2x2ZTtcblxuXHRcdG9CaW5kaW5nQ29udGV4dCA9IHRoaXMuZm5DcmVhdGVDb25maWdCaW5kaW5nQ29udGV4dChzUGF0aCwgb0NvbnRleHQsIG1QYXJhbWV0ZXJzLCBmbkNhbGxCYWNrKTtcblx0XHRjb25zdCBzUmVzb2x2ZWRQYXRoID0gIWJOb1Jlc29sdmUgJiYgb0JpbmRpbmdDb250ZXh0Py5nZXRPYmplY3QoKTtcblx0XHRpZiAoc1Jlc29sdmVkUGF0aCAmJiB0eXBlb2Ygc1Jlc29sdmVkUGF0aCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0b0JpbmRpbmdDb250ZXh0ID0gdGhpcy5mbkNyZWF0ZU1ldGFCaW5kaW5nQ29udGV4dChzUmVzb2x2ZWRQYXRoLCBvQ29udGV4dCwgbVBhcmFtZXRlcnMsIGZuQ2FsbEJhY2spO1xuXHRcdH1cblxuXHRcdHJldHVybiBvQmluZGluZ0NvbnRleHQ7XG5cdH1cblxuXHRkZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMub0NvbmZpZ01vZGVsLmRlc3Ryb3koKTtcblx0XHRKU09OTW9kZWwucHJvdG90eXBlLmRlc3Ryb3kuYXBwbHkodGhpcyk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVGVtcGxhdGVNb2RlbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0VBTUE7RUFBQSxJQUtNQSxhQUFhLElBQUFDLElBQUEsR0FEbEJDLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxFQUFBRCxJQUFBLENBQUFFLE1BQUEsMEJBQUFDLFdBQUE7SUFBQUMsY0FBQSxDQUFBTCxhQUFBLEVBQUFJLFdBQUE7SUFjM0MsU0FBQUosY0FBWU0sVUFBNkIsRUFBRUMsVUFBMEIsRUFBRTtNQUFBLElBQUFDLEtBQUE7TUFDdEVBLEtBQUEsR0FBQUosV0FBQSxDQUFBSyxJQUFBLEtBQU0sQ0FBQztNQUNQRCxLQUFBLENBQUtELFVBQVUsR0FBR0EsVUFBVTtNQUM1QkMsS0FBQSxDQUFLRSxZQUFZLEdBQUcsSUFBSUMsU0FBUyxDQUFDLENBQUM7TUFDbkM7TUFDQUgsS0FBQSxDQUFLRSxZQUFZLENBQUNFLFlBQVksQ0FBQ0MsTUFBTSxDQUFDQyxTQUFTLENBQUM7TUFDaEROLEtBQUEsQ0FBS08sYUFBYSxHQUFHLEtBQUs7TUFDMUI7TUFDQSxNQUFNQyxJQUFJLEdBQUFDLHNCQUFBLENBQUFULEtBQUEsQ0FBTztNQUVqQixJQUFJLE9BQU9GLFVBQVUsS0FBSyxVQUFVLEVBQUU7UUFDckMsTUFBTVksV0FBVyxHQUFJVixLQUFB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
@@ -57,7 +57,6 @@ class TemplateModel extends BaseObject {
57
57
 
58
58
  /**
59
59
  * Overwrite the standard setData to keep track whether the external configuration has been loaded or not.
60
- *
61
60
  * @param dataToSet The data to set to the json model containing the configuration
62
61
  */
63
62
  setData(dataToSet: object): void {
@@ -20,4 +20,4 @@ sap.ui.define([], function () {
20
20
  _exports.setCoreUIFactory = setCoreUIFactory;
21
21
  return _exports;
22
22
  }, false);
23
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW50RmFjdG9yeSIsImdldENvcmVVSUZhY3RvcnkiLCJ1bmRlZmluZWQiLCJFcnJvciIsInNldENvcmVVSUZhY3RvcnkiLCJwcm92aWRlciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVUlQcm92aWRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgRXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBPRGF0YVY0Q29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgRXhpdERpYWxvZ0V2ZW50ID0gRXZlbnQ8e1xuXHRhY2NlcHQ6IGJvb2xlYW47XG59PjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZERpYWxvZyB7XG5cdG9wZW5EaWFsb2coKTogdm9pZDtcblx0Y2xvc2VEaWFsb2coKTogdm9pZDtcblx0c2V0QnVzeShidXN5OiBib29sZWFuKTogdm9pZDtcblx0YXR0YWNoRXhpdERpYWxvZyhkYXRhOiBvYmplY3QsIGhhbmRsZXI6IChlOiBFeGl0RGlhbG9nRXZlbnQpID0+IHZvaWQsIGxpc3RlbmVyPzogb2JqZWN0KTogdm9pZDtcblx0aXNPcGVuKCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29yZVVJRmFjdG9yeSB7XG5cdG5ld0NyZWF0ZURpYWxvZyhcblx0XHRjb250ZXh0VG9VcGRhdGU6IE9EYXRhVjRDb250ZXh0LFxuXHRcdGZpZWxkTmFtZXM6IHN0cmluZ1tdLFxuXHRcdGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRcdHBhcmVudENvbnRyb2w/OiBDb250cm9sXG5cdCk6IFN0YW5kYXJkRGlhbG9nO1xufVxuXG5sZXQgY3VycmVudEZhY3Rvcnk6IENvcmVVSUZhY3RvcnkgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb3JlVUlGYWN0b3J5KCk6IENvcmVVSUZhY3Rvcnkge1xuXHRpZiAoY3VycmVudEZhY3RvcnkgPT09IHVuZGVmaW5lZCkge1xuXHRcdHRocm93IG5ldyBFcnJvcihcInNhcC5mZS5jb3JlIFVJIHByb3ZpZGVyIG5vdCBkZWZpbmVkXCIpO1xuXHR9XG5cblx0cmV0dXJuIGN1cnJlbnRGYWN0b3J5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0Q29yZVVJRmFjdG9yeShwcm92aWRlcj86IENvcmVVSUZhY3RvcnkpOiB2b2lkIHtcblx0Y3VycmVudEZhY3RvcnkgPSBwcm92aWRlcjtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7RUEwQkEsSUFBSUEsY0FBeUM7RUFFdEMsU0FBU0MsZ0JBQWdCLEdBQWtCO0lBQ2pELElBQUlELGNBQWMsS0FBS0UsU0FBUyxFQUFFO01BQ2pDLE1BQU0sSUFBSUMsS0FBSyxDQUFDLHFDQUFxQyxDQUFDO0lBQ3ZEO0lBRUEsT0FBT0gsY0FBYztFQUN0QjtFQUFDO0VBRU0sU0FBU0ksZ0JBQWdCLENBQUNDLFFBQXdCLEVBQVE7SUFDaEVMLGNBQWMsR0FBR0ssUUFBUTtFQUMxQjtFQUFDO0VBQUE7QUFBQSJ9
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW50RmFjdG9yeSIsImdldENvcmVVSUZhY3RvcnkiLCJ1bmRlZmluZWQiLCJFcnJvciIsIl9leHBvcnRzIiwic2V0Q29yZVVJRmFjdG9yeSIsInByb3ZpZGVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJVSVByb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvbWVzc2FnZS9NZXNzYWdlXCI7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgQ29udGV4dCwgZGVmYXVsdCBhcyBPRGF0YVY0Q29udGV4dCB9IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBGRVZpZXcgfSBmcm9tIFwiLi9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgTWVzc2FnZUhhbmRsZXIgZnJvbSBcIi4vY29udHJvbGxlcmV4dGVuc2lvbnMvTWVzc2FnZUhhbmRsZXJcIjtcbmltcG9ydCB0eXBlIHsgU2hvd0FjdGlvbkRpYWxvZ1BhcmFtZXRlcnMgfSBmcm9tIFwiLi9jb250cm9sbGVyZXh0ZW5zaW9ucy9lZGl0Rmxvdy9vcGVyYXRpb25zL2ZhY2FkZVwiO1xuaW1wb3J0IHR5cGUgeyBTaG93TWVzc2FnZVBhcmFtZXRlcnMgfSBmcm9tIFwiLi9jb250cm9sbGVyZXh0ZW5zaW9ucy9tZXNzYWdlSGFuZGxlci9tZXNzYWdlSGFuZGxpbmdcIjtcbmltcG9ydCB0eXBlIHsgU3RyaWN0SGFuZGxpbmdVdGlsaXRpZXMgfSBmcm9tIFwiLi9vcGVyYXRpb25zSGVscGVyXCI7XG5cbmV4cG9ydCB0eXBlIEV4aXREaWFsb2dFdmVudCA9IEV2ZW50PHtcblx0YWNjZXB0OiBib29sZWFuO1xufT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmREaWFsb2cge1xuXHRvcGVuRGlhbG9nKCk6IHZvaWQ7XG5cdGNsb3NlRGlhbG9nKCk6IHZvaWQ7XG5cdHNldEJ1c3koYnVzeTogYm9vbGVhbik6IHZvaWQ7XG5cdGF0dGFjaEV4aXREaWFsb2coZGF0YTogb2JqZWN0LCBoYW5kbGVyOiAoZTogRXhpdERpYWxvZ0V2ZW50KSA9PiB2b2lkLCBsaXN0ZW5lcj86IG9iamVjdCk6IHZvaWQ7XG5cdGlzT3BlbigpOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkUGFyYW1ldGVyRGlhbG9nIHtcblx0Y3JlYXRlRGlhbG9nKCk6IFByb21pc2U8RGlhbG9nPjtcblx0b3BlbkRpYWxvZyhvd25lcjogQ29udHJvbCk6IFByb21pc2U8T0RhdGFWNENvbnRleHQgfCBQcm9taXNlU2V0dGxlZFJlc3VsdDxPRGF0YVY0Q29udGV4dCB8IHVuZGVmaW5lZD5bXSB8IHVuZGVmaW5lZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29yZVVJRmFjdG9yeSB7XG5cdG5ld0NyZWF0ZURpYWxvZyhcblx0XHRjb250ZXh0VG9VcGRhdGU6IE9EYXRhVjRDb250ZXh0LFxuXHRcdGZpZWxkTmFtZXM6IHN0cmluZ1tdLFxuXHRcdGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRcdHBhcmVudENvbnRyb2w/OiBDb250cm9sXG5cdCk6IFN0YW5kYXJkRGlhbG9nO1xuXHRuZXdQYXJhbWV0ZXJEaWFsb2coXG5cdFx0YWN0aW9uOiBBY3Rpb24sXG5cdFx0YWN0aW9uQ29udGV4dDogQ29udGV4dCxcblx0XHRwYXJhbWV0ZXJzOiBTaG93QWN0aW9uRGlhbG9nUGFyYW1ldGVycyxcblx0XHRwYXJhbWV0ZXJWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gfCB1bmRlZmluZWQsXG5cblx0XHRlbnRpdHlTZXROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0dmlldzogRkVWaWV3IHwgbnVsbCxcblx0XHRtZXNzYWdlSGFuZGxlcjogTWVzc2FnZUhhbmRsZXIsXG5cdFx0c3RyaWN0SGFuZGxpbmdVdGlsaXRpZXM6IFN0cmljdEhhbmRsaW5nVXRpbGl0aWVzLFxuXHRcdGNhbGxiYWNrczoge1xuXHRcdFx0YWN0aW9uVG9CZUV4ZWN1dGVkOiAoXG5cdFx0XHRcdGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRcdFx0XHRwYXJhbWV0ZXJzOiBTaG93QWN0aW9uRGlhbG9nUGFyYW1ldGVycyxcblx0XHRcdFx0cGFyZW50Q29udHJvbDogQ29udHJvbCxcblx0XHRcdFx0bWVzc2FnZUhhbmRsZXI6IE1lc3NhZ2VIYW5kbGVyLFxuXHRcdFx0XHRzdHJpY3RIYW5kbGluZ1V0aWxpdGllczogU3RyaWN0SGFuZGxpbmdVdGlsaXRpZXMsXG5cdFx0XHRcdGlnbm9yZUVUYWc/OiBib29sZWFuXG5cdFx0XHQpID0+IFByb21pc2U8T0RhdGFWNENvbnRleHQgfCBQcm9taXNlU2V0dGxlZFJlc3VsdDxPRGF0YVY0Q29udGV4dCB8IHVuZGVmaW5lZD5bXT47XG5cdFx0XHRiZWZvcmVTaG93aW5nTWVzc2FnZTogKFxuXHRcdFx0XHRtUGFyYW1ldGVyczogU2hvd0FjdGlvbkRpYWxvZ1BhcmFtZXRlcnMsXG5cdFx0XHRcdGFDb250ZXh0czogT0RhdGFWNENvbnRleHRbXSxcblx0XHRcdFx0b0RpYWxvZzogRGlhbG9nIHwgdW5kZWZpbmVkLFxuXHRcdFx0XHRtZXNzYWdlczogTWVzc2FnZVtdLFxuXHRcdFx0XHRzaG93TWVzc2FnZVBhcmFtZXRlcnNJbjogU2hvd01lc3NhZ2VQYXJhbWV0ZXJzLFxuXHRcdFx0XHRzaG93R2VuZXJpY0Vycm9yTWVzc2FnZUZvckNoYW5nZVNldDogYm9vbGVhblxuXHRcdFx0KSA9PiBTaG93TWVzc2FnZVBhcmFtZXRlcnM7XG5cdFx0fSxcblx0XHRpZ25vcmVFVGFnPzogYm9vbGVhblxuXHQpOiBTdGFuZGFyZFBhcmFtZXRlckRpYWxvZztcbn1cblxubGV0IGN1cnJlbnRGYWN0b3J5OiBDb3JlVUlGYWN0b3J5IHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29yZVVJRmFjdG9yeSgpOiBDb3JlVUlGYWN0b3J5IHtcblx0aWYgKGN1cnJlbnRGYWN0b3J5ID09PSB1bmRlZmluZWQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJzYXAuZmUuY29yZSBVSSBwcm92aWRlciBub3QgZGVmaW5lZFwiKTtcblx0fVxuXG5cdHJldHVybiBjdXJyZW50RmFjdG9yeTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldENvcmVVSUZhY3RvcnkocHJvdmlkZXI/OiBDb3JlVUlGYWN0b3J5KTogdm9pZCB7XG5cdGN1cnJlbnRGYWN0b3J5ID0gcHJvdmlkZXI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBcUVBLElBQUlBLGNBQXlDO0VBRXRDLFNBQVNDLGdCQUFnQkEsQ0FBQSxFQUFrQjtJQUNqRCxJQUFJRCxjQUFjLEtBQUtFLFNBQVMsRUFBRTtNQUNqQyxNQUFNLElBQUlDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQztJQUN2RDtJQUVBLE9BQU9ILGNBQWM7RUFDdEI7RUFBQ0ksUUFBQSxDQUFBSCxnQkFBQSxHQUFBQSxnQkFBQTtFQUVNLFNBQVNJLGdCQUFnQkEsQ0FBQ0MsUUFBd0IsRUFBUTtJQUNoRU4sY0FBYyxHQUFHTSxRQUFRO0VBQzFCO0VBQUNGLFFBQUEsQ0FBQUMsZ0JBQUEsR0FBQUEsZ0JBQUE7RUFBQSxPQUFBRCxRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,7 +1,15 @@
1
+ import type { Action } from "@sap-ux/vocabularies-types";
1
2
  import type AppComponent from "sap/fe/core/AppComponent";
3
+ import type Dialog from "sap/m/Dialog";
2
4
  import type Event from "sap/ui/base/Event";
3
5
  import type Control from "sap/ui/core/Control";
4
- import type ODataV4Context from "sap/ui/model/odata/v4/Context";
6
+ import type Message from "sap/ui/core/message/Message";
7
+ import type { default as Context, default as ODataV4Context } from "sap/ui/model/odata/v4/Context";
8
+ import type { FEView } from "./BaseController";
9
+ import type MessageHandler from "./controllerextensions/MessageHandler";
10
+ import type { ShowActionDialogParameters } from "./controllerextensions/editFlow/operations/facade";
11
+ import type { ShowMessageParameters } from "./controllerextensions/messageHandler/messageHandling";
12
+ import type { StrictHandlingUtilities } from "./operationsHelper";
5
13
 
6
14
  export type ExitDialogEvent = Event<{
7
15
  accept: boolean;
@@ -15,6 +23,11 @@ export interface StandardDialog {
15
23
  isOpen(): boolean;
16
24
  }
17
25
 
26
+ export interface StandardParameterDialog {
27
+ createDialog(): Promise<Dialog>;
28
+ openDialog(owner: Control): Promise<ODataV4Context | PromiseSettledResult<ODataV4Context | undefined>[] | undefined>;
29
+ }
30
+
18
31
  export interface CoreUIFactory {
19
32
  newCreateDialog(
20
33
  contextToUpdate: ODataV4Context,
@@ -22,6 +35,36 @@ export interface CoreUIFactory {
22
35
  appComponent: AppComponent,
23
36
  parentControl?: Control
24
37
  ): StandardDialog;
38
+ newParameterDialog(
39
+ action: Action,
40
+ actionContext: Context,
41
+ parameters: ShowActionDialogParameters,
42
+ parameterValues: Record<string, unknown>[] | undefined,
43
+
44
+ entitySetName: string | undefined,
45
+ view: FEView | null,
46
+ messageHandler: MessageHandler,
47
+ strictHandlingUtilities: StrictHandlingUtilities,
48
+ callbacks: {
49
+ actionToBeExecuted: (
50
+ appComponent: AppComponent,
51
+ parameters: ShowActionDialogParameters,
52
+ parentControl: Control,
53
+ messageHandler: MessageHandler,
54
+ strictHandlingUtilities: StrictHandlingUtilities,
55
+ ignoreETag?: boolean
56
+ ) => Promise<ODataV4Context | PromiseSettledResult<ODataV4Context | undefined>[]>;
57
+ beforeShowingMessage: (
58
+ mParameters: ShowActionDialogParameters,
59
+ aContexts: ODataV4Context[],
60
+ oDialog: Dialog | undefined,
61
+ messages: Message[],
62
+ showMessageParametersIn: ShowMessageParameters,
63
+ showGenericErrorMessageForChangeSet: boolean
64
+ ) => ShowMessageParameters;
65
+ },
66
+ ignoreETag?: boolean
67
+ ): StandardParameterDialog;
25
68
  }
26
69
 
27
70
  let currentFactory: CoreUIFactory | undefined;
@@ -13,16 +13,15 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/converte
13
13
  var defineUI5Class = ClassSupport.defineUI5Class;
14
14
  var association = ClassSupport.association;
15
15
  var aggregation = ClassSupport.aggregation;
16
- function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
17
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
18
- function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
19
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
20
- function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
21
- function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
16
+ function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
17
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
18
+ function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
19
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
20
+ function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
21
+ function _initializerWarningHelper(r, e) { throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform."); }
22
22
  /**
23
23
  * Defines a control that will not exist in the DOM.
24
24
  * Instead, only its child will be there and this control will forward all DOM related instruction to it.
25
- *
26
25
  * @experimental
27
26
  * @since 1.121.0
28
27
  * @public
@@ -141,7 +140,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/converte
141
140
 
142
141
  /**
143
142
  * Retrieves the context path from the owner component.
144
- *
145
143
  * @returns The context path
146
144
  */;
147
145
  _proto.getOwnerContextPath = function getOwnerContextPath() {
@@ -154,7 +152,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/converte
154
152
  * Get the data model object for the given metapath and optional contextPath.
155
153
  * @param metapath
156
154
  * @param contextPath
157
- *
158
155
  * @returns The data model object path
159
156
  */;
160
157
  _proto.getDataModelObjectForMetaPath = function getDataModelObjectForMetaPath(metapath, contextPath) {
@@ -249,7 +246,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/converte
249
246
 
250
247
  /**
251
248
  * This function (if available on the concrete control) provides the current accessibility state of the control.
252
- *
253
249
  * @returns The accessibility information for the control.
254
250
  */;
255
251
  _proto.getAccessibilityInfo = function getAccessibilityInfo() {
@@ -265,7 +261,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/converte
265
261
  * Returns the DOMNode ID to be used for the "labelFor" attribute.
266
262
  *
267
263
  * We forward the call of this method to the content control.
268
- *
269
264
  * @returns ID to be used for the <code>labelFor</code>
270
265
  */;
271
266
  _proto.getIdForLabel = function getIdForLabel() {
@@ -328,4 +323,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/converte
328
323
  const BuildingBlockBase = _BuildingBlockBase;
329
324
  return BuildingBlockBase;
330
325
  }, false);
331
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJkZWZpbmVVSTVDbGFzcyIsInByb3BlcnR5IiwidHlwZSIsImFnZ3JlZ2F0aW9uIiwibXVsdGlwbGUiLCJpc0RlZmF1bHQiLCJhc3NvY2lhdGlvbiIsInNpbmd1bGFyTmFtZSIsInNldHRpbmdzIiwib3RoZXJzIiwiaWQiLCJfb2xkRG9tUmVmIiwiX2FwcGx5aW5nU2V0dGluZ3MiLCJhcHBseVNldHRpbmdzIiwibVNldHRpbmdzIiwib1Njb3BlIiwiX2NoZWNrSWZNZXRhZGF0YVJlYWR5IiwiX2dldE93bmVyIiwiY29udHJvbCIsIm93bmVyIiwiQ29tcG9uZW50IiwiZ2V0T3duZXJDb21wb25lbnRGb3IiLCJpc0EiLCJnZXRQYXJlbnQiLCJnZXRQYWdlQ29udHJvbGxlciIsImdldFJvb3RDb250cm9sbGVyIiwiZGVzdHJveSIsInN1cHByZXNzSW52YWxpZGF0ZSIsInZpZXdTdGF0ZSIsImRlcmVnaXN0ZXJTdGF0ZUNvbnRyaWJ1dG9yIiwiZnJvbUFwcGx5U2V0dGluZ3MiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwicmVnaXN0ZXJTdGF0ZUNvbnRyaWJ1dG9yIiwiX21vZGVsQ29udGV4dENoYW5nZUV2ZW50SGFuZGxlciIsImRldGFjaEV2ZW50IiwiY29udGVudCIsIkxvZyIsIndhcm5pbmciLCJhdHRhY2hFdmVudCIsIl9vd25lckNvbXBvbmVudCIsImdldEFwcENvbXBvbmVudCIsImdldFByZXByb2Nlc3NvckNvbnRleHQiLCJhcHBDb21wb25lbnQiLCJ1bmRlZmluZWQiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0UGF0aCIsIm1ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsInRhcmdldFBhdGhUb1VzZSIsImdldEZ1bGxDb250ZXh0UGF0aCIsImdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0c0ZvclRhcmdldFBhdGgiLCJnZXRPd25lckNvbnRleHRQYXRoIiwicHJlcHJvY2Vzc29yQ29udGV4dCIsImZ1bGxDb250ZXh0UGF0aCIsImdldERhdGFNb2RlbE9iamVjdEZvck1ldGFQYXRoIiwibWV0YXBhdGgiLCJjb250ZXh0UGF0aCIsImNvbnRleHRQYXRoVG9Vc2UiLCJzdGFydHNXaXRoIiwiY2hhckF0IiwiRXJyb3IiLCJtZXRhQ29udGV4dCIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwibWV0YVBhdGhDb250ZXh0IiwiTWV0YU1vZGVsQ29udmVydGVyIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwiZ2V0TWV0YVBhdGhPYmplY3QiLCJtZXRhUGF0aCIsIk1ldGFQYXRoIiwiY29udmVydFR5cGVzIiwiZSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwiZ2V0VmlzaWJsZSIsIkludmlzaWJsZVJlbmRlcmVyIiwicmVuZGVyQ29udHJvbCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJkb21SZWYiLCJnZXREb21SZWYiLCJXZWFrUmVmIiwiYmluZFByb3BlcnR5IiwibmFtZSIsImJpbmRpbmdJbmZvIiwicHJvcGVydHlNZXRhZGF0YSIsImdldE1ldGFkYXRhIiwiZ2V0UHJvcGVydHkiLCJiaW5kYWJsZSIsImdyb3VwIiwib0NvbnRlbnQiLCJkZXJlZiIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJnZXRGb2N1c0RvbVJlZiIsImVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUiLCJfb0VsZW1lbnQiLCJtQXJpYVByb3BzIiwib1BhcmVudCIsImdldEFjY2Vzc2liaWxpdHlJbmZvIiwiYWNjZXNzaWJpbGl0eUluZm8iLCJnZXRJZEZvckxhYmVsIiwiY3JlYXRlSWQiLCJnZXRJZCIsInN0cmluZ1BhcnRzIiwiZ2VuZXJhdGUiLCJnZXRUcmFuc2xhdGVkVGV4dCIsInRleHRJRCIsInBhcmFtZXRlcnMiLCJnZXRNb2RlbCIsIm1vZGVscyIsImdldFRleHQiLCJhZGRTdHlsZUNsYXNzIiwic3R5bGVDbGFzcyIsInJlbW92ZVN0eWxlQ2xhc3MiLCJ0b29nbGVTdHlsZUNsYXNzIiwidG9nZ2xlU3R5bGVDbGFzcyIsIkNvbnRyb2wiLCJCdWlsZGluZ0Jsb2NrQmFzZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQnVpbGRpbmdCbG9ja0Jhc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgdHlwZSB7IEVuaGFuY2VXaXRoVUk1LCBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgRkVWaWV3IH0gZnJvbSBcInNhcC9mZS9jb3JlL0Jhc2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIFJlc291cmNlTW9kZWwgZnJvbSBcInNhcC9mZS9jb3JlL1Jlc291cmNlTW9kZWxcIjtcbmltcG9ydCB0eXBlIFRlbXBsYXRlQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZUNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy92aWV3U3RhdGUvSVZpZXdTdGF0ZUNvbnRyaWJ1dG9yXCI7XG5pbXBvcnQgKiBhcyBNZXRhTW9kZWxDb252ZXJ0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgeyBjb252ZXJ0VHlwZXMsIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0c0ZvclRhcmdldFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NZXRhTW9kZWxDb252ZXJ0ZXJcIjtcbmltcG9ydCBNZXRhUGF0aCBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXRhUGF0aFwiO1xuaW1wb3J0IHR5cGUgeyBBdXRob3JpemVkSWRBbm5vdGF0aW9uc1R5cGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyAkTWFuYWdlZE9iamVjdFNldHRpbmdzLCBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCBJbnZpc2libGVSZW5kZXJlciBmcm9tIFwic2FwL3VpL2NvcmUvSW52aXNpYmxlUmVuZGVyZXJcIjtcbmltcG9ydCB0eXBlIFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCB0eXBlIEFwcENvbXBvbmVudCBmcm9tIFwiLi4vQXBwQ29tcG9uZW50XCI7XG5cbi8qKlxuICogRGVmaW5lcyBhIGNvbnRyb2wgdGhhdCB3aWxsIG5vdCBleGlzdCBpbiB0aGUgRE9NLlxuICogSW5zdGVhZCwgb25seSBpdHMgY2hpbGQgd2lsbCBiZSB0aGVyZSBhbmQgdGhpcyBjb250cm9sIHdpbGwgZm9yd2FyZCBhbGwgRE9NIHJlbGF0ZWQgaW5zdHJ1Y3Rpb24gdG8gaXQuXG4gKlxuICogQGV4cGVyaW1lbnRhbFxuICogQHNpbmNlIDEuMTIxLjBcbiAqIEBwdWJsaWNcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuYnVpbGRpbmdCbG9ja3MuQnVpbGRpbmdCbG9ja0Jhc2VcIilcbmNsYXNzIF9CdWlsZGluZ0Jsb2NrQmFzZTxUIGV4dGVuZHMgVUk1RWxlbWVudD4gZXh0ZW5kcyBDb250cm9sIHtcblx0LyoqXG5cdCAqIFRoZSBtZXRhbW9kZWwgbmFtZSBvciBpZCB0byBiZSB1c2VkIGZvciB0aGlzIGJ1aWxkaW5nIGJsb2NrXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdG1ldGFNb2RlbD86IHN0cmluZztcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkVsZW1lbnRcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudD86IFQ7XG5cblx0LyoqXG5cdCAqIEFzc29jaWF0aW9uIHRvIGNvbnRyb2xzIC8gSURzIHRoYXQgbGFiZWwgdGhpcyBjb250cm9sIChzZWUgV0FJLUFSSUEgYXR0cmlidXRlIGFyaWEtbGFiZWxsZWRieSkuXG5cdCAqL1xuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUsIHNpbmd1bGFyTmFtZTogXCJhcmlhTGFiZWxsZWRCeVwiIH0pXG5cdGFyaWFMYWJlbGxlZEJ5ITogc3RyaW5nW107XG5cblx0cHJpdmF0ZSBfb2xkRG9tUmVmOiBXZWFrUmVmPEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG5cblx0cHJvdGVjdGVkIF9hcHBseWluZ1NldHRpbmdzID0gZmFsc2U7XG5cblx0cHJpdmF0ZSBfbW9kZWxDb250ZXh0Q2hhbmdlRXZlbnRIYW5kbGVyPzogRnVuY3Rpb247XG5cblx0Y29uc3RydWN0b3Ioc2V0dGluZ3M6IHN0cmluZyB8IFByb3BlcnRpZXNPZjxfQnVpbGRpbmdCbG9ja0Jhc2U8VD4+LCBvdGhlcnM/OiBQcm9wZXJ0aWVzT2Y8X0J1aWxkaW5nQmxvY2tCYXNlPFQ+Pikge1xuXHRcdGlmICh0eXBlb2Ygc2V0dGluZ3MgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdG90aGVycyA/Pz0ge307XG5cdFx0XHRvdGhlcnMuaWQgPSBzZXR0aW5ncztcblx0XHR9XG5cdFx0c3VwZXIoc2V0dGluZ3MgYXMgdW5rbm93biBhcyBzdHJpbmcsIG90aGVycyk7XG5cdH1cblxuXHRhcHBseVNldHRpbmdzKG1TZXR0aW5nczogJE1hbmFnZWRPYmplY3RTZXR0aW5ncywgb1Njb3BlPzogb2JqZWN0KTogdGhpcyB7XG5cdFx0dGhpcy5fYXBwbHlpbmdTZXR0aW5ncyA9IHRydWU7XG5cdFx0c3VwZXIuYXBwbHlTZXR0aW5ncyhtU2V0dGluZ3MsIG9TY29wZSk7XG5cdFx0dGhpcy5fYXBwbHlpbmdTZXR0aW5ncyA9IGZhbHNlO1xuXHRcdHRoaXMuX2NoZWNrSWZNZXRhZGF0YVJlYWR5KHRydWUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0X2dldE93bmVyKCk6IFRlbXBsYXRlQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcblx0XHQvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuXHRcdGxldCBjb250cm9sOiBDb250cm9sIHwgdW5kZWZpbmVkID0gdGhpcztcblx0XHRsZXQgb3duZXIgPSBDb21wb25lbnQuZ2V0T3duZXJDb21wb25lbnRGb3IoY29udHJvbCk7XG5cdFx0d2hpbGUgKCFvd25lciAmJiBjb250cm9sICYmICFjb250cm9sLmlzQTxGRVZpZXc+KFwic2FwLnVpLmNvcmUubXZjLlZpZXdcIikpIHtcblx0XHRcdGNvbnRyb2wgPSBjb250cm9sLmdldFBhcmVudCgpIGFzIENvbnRyb2wgfCB1bmRlZmluZWQ7XG5cdFx0XHRpZiAoY29udHJvbCkge1xuXHRcdFx0XHRvd25lciA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcihjb250cm9sKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKG93bmVyPy5pc0E8VGVtcGxhdGVDb21wb25lbnQ+KFwic2FwLmZlLmNvcmUuVGVtcGxhdGVDb21wb25lbnRcIikpIHtcblx0XHRcdHJldHVybiBvd25lcjtcblx0XHR9XG5cdH1cblxuXHRnZXRQYWdlQ29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX2dldE93bmVyKCk/LmdldFJvb3RDb250cm9sbGVyKCk7XG5cdH1cblxuXHRkZXN0cm95KHN1cHByZXNzSW52YWxpZGF0ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmlzQTxJVmlld1N0YXRlQ29udHJpYnV0b3I8dW5rbm93bj4gJiBNYW5hZ2VkT2JqZWN0PihcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLnZpZXdTdGF0ZS5JVmlld1N0YXRlQ29udHJpYnV0b3JcIikpIHtcblx0XHRcdHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKT8udmlld1N0YXRlPy5kZXJlZ2lzdGVyU3RhdGVDb250cmlidXRvcih0aGlzKTtcblx0XHR9XG5cdFx0c3VwZXIuZGVzdHJveShzdXBwcmVzc0ludmFsaWRhdGUpO1xuXHR9XG5cblx0X2NoZWNrSWZNZXRhZGF0YVJlYWR5KGZyb21BcHBseVNldHRpbmdzID0gZmFsc2UpOiB2b2lkIHtcblx0XHRjb25zdCBvd25lciA9IHRoaXMuX2dldE93bmVyKCk7XG5cdFx0aWYgKG93bmVyKSB7XG5cdFx0XHR0aGlzLm9uTWV0YWRhdGFBdmFpbGFibGUob3duZXIpO1xuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmlzQTxJVmlld1N0YXRlQ29udHJpYnV0b3I8dW5rbm93bj4gJiBNYW5hZ2VkT2JqZWN0PihcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLnZpZXdTdGF0ZS5JVmlld1N0YXRlQ29udHJpYnV0b3JcIilcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLmdldFBhZ2VDb250cm9sbGVyKCk/LnZpZXdTdGF0ZS5yZWdpc3RlclN0YXRlQ29udHJpYnV0b3IodGhpcyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5fbW9kZWxDb250ZXh0Q2hhbmdlRXZlbnRIYW5kbGVyKSB7XG5cdFx0XHRcdHRoaXMuZGV0YWNoRXZlbnQoXCJtb2RlbENvbnRleHRDaGFuZ2VcIiwgdGhpcy5fbW9kZWxDb250ZXh0Q2hhbmdlRXZlbnRIYW5kbGVyKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCFmcm9tQXBwbHlTZXR0aW5ncyAmJiAhdGhpcy5jb250ZW50KSB7XG5cdFx0XHRcdC8vIEluIGNhc2UgY291bGRuJ3QgY3JlYXRlIHRoZSBjb250ZW50IGR1cmluZyB0aGUgYXBwbHlTZXR0aW5ncywgdHJ5IGFnYWluXG5cdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFwiVGhlIGJ1aWxkaW5nIGJsb2NrIHdhcyBub3QgY3JlYXRlZCB3aXRoaW4gYW4gRXh0ZW5zaW9uQVBJLnJ1bldpdGhGUE1Db250ZXh0IGNhbGwsIGZvciBwZXJmb3JtYW5jZSByZWFzb24gaXQncyByZWNvbW1lbmRlZCB0byBkbyBzby5cIixcblx0XHRcdFx0XHR0aGlzIGFzIHVua25vd24gYXMgc3RyaW5nXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXRoaXMuX21vZGVsQ29udGV4dENoYW5nZUV2ZW50SGFuZGxlcikge1xuXHRcdFx0XHR0aGlzLl9tb2RlbENvbnRleHRDaGFuZ2VFdmVudEhhbmRsZXIgPSBmdW5jdGlvbiAoKTogdm9pZCB7XG5cdFx0XHRcdFx0dGhpcy5fY2hlY2tJZk1ldGFkYXRhUmVhZHkoKTtcblx0XHRcdFx0fTtcblx0XHRcdFx0dGhpcy5hdHRhY2hFdmVudChcIm1vZGVsQ29udGV4dENoYW5nZVwiLCB0aGlzLl9tb2RlbENvbnRleHRDaGFuZ2VFdmVudEhhbmRsZXIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IHZvaWQge1xuXHRcdC8vIFRvIGJlIG92ZXJyaWRlbiBieSB0aGUgY2hpbGQgY2xhc3Ncblx0fVxuXG5cdGdldEFwcENvbXBvbmVudCgpOiBBcHBDb21wb25lbnQgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKTtcblx0XHRpZiAob3duZXI/LmlzQTxFbmhhbmNlV2l0aFVJNTxUZW1wbGF0ZUNvbXBvbmVudD4+KFwic2FwLmZlLmNvcmUuVGVtcGxhdGVDb21wb25lbnRcIikpIHtcblx0XHRcdHJldHVybiBvd25lci5nZXRQcmVwcm9jZXNzb3JDb250ZXh0KCk/LmFwcENvbXBvbmVudDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRnZXREYXRhTW9kZWxPYmplY3RQYXRoPE4+KHRhcmdldFBhdGg6IHN0cmluZyk6IERhdGFNb2RlbE9iamVjdFBhdGg8Tj4gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIuZ2V0TWV0YU1vZGVsKHRoaXMubWV0YU1vZGVsKTtcblx0XHRjb25zdCB0YXJnZXRQYXRoVG9Vc2UgPSB0YXJnZXRQYXRoID8/IG93bmVyLmdldEZ1bGxDb250ZXh0UGF0aCh0aGlzLm1ldGFNb2RlbCk7XG5cdFx0cmV0dXJuIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0c0ZvclRhcmdldFBhdGgodGFyZ2V0UGF0aFRvVXNlLCBtZXRhTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgY29udGV4dCBwYXRoIGZyb20gdGhlIG93bmVyIGNvbXBvbmVudC5cblx0ICpcblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgcGF0aFxuXHQgKi9cblx0Z2V0T3duZXJDb250ZXh0UGF0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0cmV0dXJuIG93bmVyLnByZXByb2Nlc3NvckNvbnRleHQ/LmZ1bGxDb250ZXh0UGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGRhdGEgbW9kZWwgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gbWV0YXBhdGggYW5kIG9wdGlvbmFsIGNvbnRleHRQYXRoLlxuXHQgKiBAcGFyYW0gbWV0YXBhdGhcblx0ICogQHBhcmFtIGNvbnRleHRQYXRoXG5cdCAqXG5cdCAqIEByZXR1cm5zIFRoZSBkYXRhIG1vZGVsIG9iamVjdCBwYXRoXG5cdCAqL1xuXHRnZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+KFxuXHRcdG1ldGFwYXRoOiBzdHJpbmcsXG5cdFx0Y29udGV4dFBhdGg/OiBzdHJpbmdcblx0KTogRGF0YU1vZGVsT2JqZWN0UGF0aDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvd25lciA9IHRoaXMuX2dldE93bmVyKCkhO1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IG93bmVyLmdldE1ldGFNb2RlbCh0aGlzLm1ldGFNb2RlbCk7XG5cdFx0bGV0IGNvbnRleHRQYXRoVG9Vc2UgPSBjb250ZXh0UGF0aCA/PyBvd25lci5nZXRGdWxsQ29udGV4dFBhdGgodGhpcy5tZXRhTW9kZWwpO1xuXHRcdGNvbnRleHRQYXRoVG9Vc2UgPSBjb250ZXh0UGF0aFRvVXNlPy5zdGFydHNXaXRoKFwiL1wiKSA/IGNvbnRleHRQYXRoVG9Vc2UgOiB1bmRlZmluZWQ7XG5cdFx0aWYgKCFtZXRhTW9kZWwgfHwgIShjb250ZXh0UGF0aFRvVXNlIHx8IG1ldGFwYXRoLmNoYXJBdCgwKSA9PT0gXCIvXCIpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJObyBtZXRhbW9kZWwgb3IgbWV0YXBhdGggaXMgbm90IHJlYWNoYWJsZSB3aXRoIGNvbnRleHRQYXRoXCIpO1xuXHRcdH1cblx0XHRsZXQgbWV0YUNvbnRleHQgPSBjb250ZXh0UGF0aFRvVXNlID8gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KGNvbnRleHRQYXRoVG9Vc2UpIDogdW5kZWZpbmVkO1xuXHRcdG1ldGFDb250ZXh0ID0gbWV0YUNvbnRleHQgPyBtZXRhQ29udGV4dCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBtZXRhUGF0aENvbnRleHQgPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQobWV0YXBhdGgsIG1ldGFDb250ZXh0KTtcblx0XHRyZXR1cm4gbWV0YVBhdGhDb250ZXh0XG5cdFx0XHQ/IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8RXhwZWN0ZWREYXRhTW9kZWxUeXBlPihtZXRhUGF0aENvbnRleHQsIG1ldGFDb250ZXh0KVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBNZXRhUGF0aCBvYmplY3QgZm9yIHRoZSBnaXZlbiBtZXRhUGF0aCBhbmQgb3B0aW9uYWwgY29udGV4dFBhdGguXG5cdCAqIEBwYXJhbSBtZXRhUGF0aFxuXHQgKiBAcGFyYW0gY29udGV4dFBhdGhcblx0ICogQHJldHVybnMgQSBNZXRhUGF0aCBwb2ludGluZyB0byB0aGUgdGFyZ2V0IHttZXRhUGF0aCwgY29udGV4dFBhdGh9XG5cdCAqL1xuXHRnZXRNZXRhUGF0aE9iamVjdDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+KG1ldGFQYXRoOiBzdHJpbmcsIGNvbnRleHRQYXRoPzogc3RyaW5nKTogTWV0YVBhdGg8RXhwZWN0ZWREYXRhTW9kZWxUeXBlPiB8IG51bGwge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIuZ2V0TWV0YU1vZGVsKHRoaXMubWV0YU1vZGVsKTtcblx0XHRsZXQgY29udGV4dFBhdGhUb1VzZSA9IGNvbnRleHRQYXRoID8/IG93bmVyLmdldEZ1bGxDb250ZXh0UGF0aCh0aGlzLm1ldGFNb2RlbCk7XG5cdFx0Y29udGV4dFBhdGhUb1VzZSA9IGNvbnRleHRQYXRoVG9Vc2U/LnN0YXJ0c1dpdGgoXCIvXCIpID8gY29udGV4dFBhdGhUb1VzZSA6IHVuZGVmaW5lZDtcblx0XHRpZiAoIW93bmVyLnByZXByb2Nlc3NvckNvbnRleHQgfHwgIW1ldGFNb2RlbCB8fCAhKGNvbnRleHRQYXRoVG9Vc2UgfHwgbWV0YVBhdGguY2hhckF0KDApID09PSBcIi9cIikpIHtcblx0XHRcdExvZy53YXJuaW5nKGBObyBtZXRhbW9kZWwgb3IgbWV0YVBhdGggaXMgbm90IHJlYWNoYWJsZSB3aXRoICR7Y29udGV4dFBhdGh9OiR7bWV0YVBhdGh9YCk7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBuZXcgTWV0YVBhdGgoY29udmVydFR5cGVzKG1ldGFNb2RlbCksIG1ldGFQYXRoLCBjb250ZXh0UGF0aFRvVXNlISk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLndhcm5pbmcoYE5vIG1ldGFtb2RlbCBvciBtZXRhUGF0aCBpcyBub3QgcmVhY2hhYmxlIHdpdGggJHtjb250ZXh0UGF0aH06JHttZXRhUGF0aH1gKTtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyByZW5kZXI8VCBleHRlbmRzIENvbnRyb2w+KG9SbTogUmVuZGVyTWFuYWdlciwgb0NvbnRyb2w6IEJ1aWxkaW5nQmxvY2tCYXNlPFQ+KTogdm9pZCB7XG5cdFx0aWYgKCFvQ29udHJvbC5jb250ZW50IHx8IG9Db250cm9sLmdldFZpc2libGUoKSA9PT0gZmFsc2UpIHtcblx0XHRcdEludmlzaWJsZVJlbmRlcmVyLnJlbmRlcihvUm0sIG9Db250cm9sKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b1JtLnJlbmRlckNvbnRyb2wob0NvbnRyb2wuY29udGVudCk7XG5cdFx0fVxuXHR9XG5cblx0Ly9zZXQgdGhlIG9sZCBkb20gcmVmXG5cdG9uQWZ0ZXJSZW5kZXJpbmcoKTogdm9pZCB7XG5cdFx0Y29uc3QgZG9tUmVmID0gdGhpcy5nZXREb21SZWYoKTtcblx0XHRpZiAoZG9tUmVmKSB7XG5cdFx0XHR0aGlzLl9vbGREb21SZWYgPSBuZXcgV2Vha1JlZihkb21SZWYpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9vbGREb21SZWYgPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdGJpbmRQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIGJpbmRpbmdJbmZvOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogdGhpcyB7XG5cdFx0Y29uc3QgcHJvcGVydHlNZXRhZGF0YSA9IHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRQcm9wZXJ0eShuYW1lKTtcblx0XHRpZiAocHJvcGVydHlNZXRhZGF0YT8uYmluZGFibGUgPT09IGZhbHNlICYmIHByb3BlcnR5TWV0YWRhdGEuZ3JvdXAgPT09IFwiRGF0YVwiKSB7XG5cdFx0XHQodGhpcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbmFtZV0gPSBiaW5kaW5nSW5mbztcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3VwZXIuYmluZFByb3BlcnR5KG5hbWUsIGJpbmRpbmdJbmZvKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRnZXREb21SZWYoKTogRWxlbWVudCB8IG51bGwge1xuXHRcdGNvbnN0IG9Db250ZW50ID0gdGhpcy5jb250ZW50O1xuXHRcdGxldCBkb21SZWY6IEVsZW1lbnQgfCBudWxsID0gb0NvbnRlbnQ/LmdldERvbVJlZigpID8/IHN1cGVyLmdldERvbVJlZigpO1xuXHRcdGlmICghZG9tUmVmKSB7XG5cdFx0XHRkb21SZWYgPSB0aGlzLl9vbGREb21SZWY/LmRlcmVmKCkgPz8gbnVsbDtcblx0XHRcdGlmIChkb21SZWYpIHtcblx0XHRcdFx0cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRvbVJlZi5pZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBkb21SZWY7XG5cdH1cblxuXHRnZXRGb2N1c0RvbVJlZigpOiBFbGVtZW50IHwgbnVsbCB7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0cmV0dXJuIG9Db250ZW50ID8gb0NvbnRlbnQuZ2V0Rm9jdXNEb21SZWYoKSA6IHN1cGVyLmdldEZvY3VzRG9tUmVmKCk7XG5cdH1cblxuXHRlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKF9vRWxlbWVudDogb2JqZWN0LCBtQXJpYVByb3BzOiBvYmplY3QpOiBvYmplY3Qge1xuXHRcdGNvbnN0IG9QYXJlbnQgPSB0aGlzLmdldFBhcmVudCgpO1xuXG5cdFx0aWYgKG9QYXJlbnQgJiYgKG9QYXJlbnQgYXMgTWFuYWdlZE9iamVjdCAmIHsgZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZT86IEZ1bmN0aW9uIH0pLmVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUpIHtcblx0XHRcdC8vIGZvcndhcmQgIGVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUgY2FsbCB0byB0aGUgcGFyZW50XG5cdFx0XHQob1BhcmVudCBhcyBNYW5hZ2VkT2JqZWN0ICYgeyBlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlOiBGdW5jdGlvbiB9KS5lbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKF9vRWxlbWVudCwgbUFyaWFQcm9wcyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1BcmlhUHJvcHM7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiAoaWYgYXZhaWxhYmxlIG9uIHRoZSBjb25jcmV0ZSBjb250cm9sKSBwcm92aWRlcyB0aGUgY3VycmVudCBhY2Nlc3NpYmlsaXR5IHN0YXRlIG9mIHRoZSBjb250cm9sLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBUaGUgYWNjZXNzaWJpbGl0eSBpbmZvcm1hdGlvbiBmb3IgdGhlIGNvbnRyb2wuXG5cdCAqL1xuXHRnZXRBY2Nlc3NpYmlsaXR5SW5mbygpOiBPYmplY3Qge1xuXHRcdGxldCBhY2Nlc3NpYmlsaXR5SW5mbyA9IHt9O1xuXHRcdGlmICh0aGlzLmNvbnRlbnQ/LmlzQTxDb250cm9sPihcInNhcC51aS5jb3JlLkNvbnRyb2xcIikpIHtcblx0XHRcdGFjY2Vzc2liaWxpdHlJbmZvID0gdGhpcy5jb250ZW50LmdldEFjY2Vzc2liaWxpdHlJbmZvKCk7XG5cdFx0fVxuXHRcdHJldHVybiBhY2Nlc3NpYmlsaXR5SW5mbztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBET01Ob2RlIElEIHRvIGJlIHVzZWQgZm9yIHRoZSBcImxhYmVsRm9yXCIgYXR0cmlidXRlLlxuXHQgKlxuXHQgKiBXZSBmb3J3YXJkIHRoZSBjYWxsIG9mIHRoaXMgbWV0aG9kIHRvIHRoZSBjb250ZW50IGNvbnRyb2wuXG5cdCAqXG5cdCAqIEByZXR1cm5zIElEIHRvIGJlIHVzZWQgZm9yIHRoZSA8Y29kZT5sYWJlbEZvcjwvY29kZT5cblx0ICovXG5cdGdldElkRm9yTGFiZWwoKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5jb250ZW50Py5pc0E8Q29udHJvbD4oXCJzYXAudWkuY29yZS5Db250cm9sXCIpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5jb250ZW50LmdldElkRm9yTGFiZWwoKTtcblx0XHR9XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblxuXHRwcm90ZWN0ZWQgY3JlYXRlSWQoLi4uc3RyaW5nUGFydHM6IChzdHJpbmcgfCB1bmRlZmluZWQgfCBEYXRhTW9kZWxPYmplY3RQYXRoPEF1dGhvcml6ZWRJZEFubm90YXRpb25zVHlwZT4pW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdC8vIElmIHRoZSBjaGlsZCBpbnN0YW5jZSBoYXMgYW4gSUQgcHJvcGVydHkgdXNlIGl0IG90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkXG5cdFx0aWYgKHRoaXMuZ2V0SWQoKSkge1xuXHRcdFx0cmV0dXJuIGdlbmVyYXRlKFt0aGlzLmdldElkKCksIC4uLnN0cmluZ1BhcnRzXSk7XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRnZXRUcmFuc2xhdGVkVGV4dCh0ZXh0SUQ6IHN0cmluZywgcGFyYW1ldGVycz86IHVua25vd25bXSwgbWV0YVBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiAoXG5cdFx0XHQoKHRoaXMuZ2V0TW9kZWwoXCJzYXAuZmUuaTE4blwiKSA/PyB0aGlzLl9nZXRPd25lcigpPy5wcmVwcm9jZXNzb3JDb250ZXh0Py5tb2RlbHNbXCJzYXAuZmUuaTE4blwiXSkgYXMgUmVzb3VyY2VNb2RlbCk/LmdldFRleHQoXG5cdFx0XHRcdHRleHRJRCxcblx0XHRcdFx0cGFyYW1ldGVycyxcblx0XHRcdFx0bWV0YVBhdGhcblx0XHRcdCkgfHwgdGV4dElEXG5cdFx0KTtcblx0fVxuXG5cdGFkZFN0eWxlQ2xhc3Moc3R5bGVDbGFzczogc3RyaW5nKTogdGhpcyB7XG5cdFx0KHRoaXMuY29udGVudCBhcyB1bmtub3duIGFzIENvbnRyb2wpPy5hZGRTdHlsZUNsYXNzKHN0eWxlQ2xhc3MpO1xuXHRcdHN1cGVyLmFkZFN0eWxlQ2xhc3Moc3R5bGVDbGFzcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRyZW1vdmVTdHlsZUNsYXNzKHN0eWxlQ2xhc3M6IHN0cmluZyk6IHRoaXMge1xuXHRcdCh0aGlzLmNvbnRlbnQgYXMgdW5rbm93biBhcyBDb250cm9sKT8ucmVtb3ZlU3R5bGVDbGFzcyhzdHlsZUNsYXNzKTtcblx0XHRzdXBlci5yZW1vdmVTdHlsZUNsYXNzKHN0eWxlQ2xhc3MpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0dG9vZ2xlU3R5bGVDbGFzcyhzdHlsZUNsYXNzOiBzdHJpbmcpOiB0aGlzIHtcblx0XHQodGhpcy5jb250ZW50IGFzIHVua25vd24gYXMgQ29udHJvbCk/LnRvZ2dsZVN0eWxlQ2xhc3Moc3R5bGVDbGFzcyk7XG5cdFx0c3VwZXIudG9nZ2xlU3R5bGVDbGFzcyhzdHlsZUNsYXNzKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxufVxuXG50eXBlIEJ1aWxkaW5nQmxvY2tCYXNlPFQgZXh0ZW5kcyBVSTVFbGVtZW50PiA9IF9CdWlsZGluZ0Jsb2NrQmFzZTxUPiAmIFQ7XG4vLyBOb3QgcHJldHR5IGJ1dCB0aGUgYXMgYW55IGluIHRoZSBlbmQgY2Fubm90IGJlIHJlbW92ZWRcbmNvbnN0IEJ1aWxkaW5nQmxvY2tCYXNlOiBuZXcgPFQgZXh0ZW5kcyBVSTVFbGVtZW50ID0gQ29udHJvbD4oXG5cdHNldHRpbmdzPzogc3RyaW5nIHwgUHJvcGVydGllc09mPEJ1aWxkaW5nQmxvY2tCYXNlPFQ+Pixcblx0b3RoZXJzPzogUHJvcGVydGllc09mPEJ1aWxkaW5nQmxvY2tCYXNlPFQ+PlxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuKSA9PiBFbmhhbmNlV2l0aFVJNTxCdWlsZGluZ0Jsb2NrQmFzZTxUPj4gPSBfQnVpbGRpbmdCbG9ja0Jhc2UgYXMgYW55O1xuZXhwb3J0IGRlZmF1bHQgQnVpbGRpbmdCbG9ja0Jhc2U7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBUEEsSUFTTUEsa0JBQWtCLFdBRHZCQyxjQUFjLENBQUMsOENBQThDLENBQUMsVUFLN0RDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsVUFHNUJDLFdBQVcsQ0FBQztJQUFFRCxJQUFJLEVBQUUscUJBQXFCO0lBQUVFLFFBQVEsRUFBRSxLQUFLO0lBQUVDLFNBQVMsRUFBRTtFQUFLLENBQUMsQ0FBQyxVQU05RUMsV0FBVyxDQUFDO0lBQUVKLElBQUksRUFBRSxxQkFBcUI7SUFBRUUsUUFBUSxFQUFFLElBQUk7SUFBRUcsWUFBWSxFQUFF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
326
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQnVpbGRpbmdCbG9ja0Jhc2UiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsInByb3BlcnR5IiwidHlwZSIsIl9kZWMzIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsIl9kZWM0IiwiYXNzb2NpYXRpb24iLCJzaW5ndWxhck5hbWUiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0NvbnRyb2wiLCJfaW5oZXJpdHNMb29zZSIsInNldHRpbmdzIiwib3RoZXJzIiwiX3RoaXMiLCJpZCIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9vbGREb21SZWYiLCJfYXBwbHlpbmdTZXR0aW5ncyIsIl9wcm90byIsInByb3RvdHlwZSIsImFwcGx5U2V0dGluZ3MiLCJtU2V0dGluZ3MiLCJvU2NvcGUiLCJfY2hlY2tJZk1ldGFkYXRhUmVhZHkiLCJfZ2V0T3duZXIiLCJfb3duZXIiLCJjb250cm9sIiwib3duZXIiLCJDb21wb25lbnQiLCJnZXRPd25lckNvbXBvbmVudEZvciIsImlzQSIsImdldFBhcmVudCIsImdldFBhZ2VDb250cm9sbGVyIiwiX3RoaXMkX2dldE93bmVyIiwiZ2V0Um9vdENvbnRyb2xsZXIiLCJkZXN0cm95Iiwic3VwcHJlc3NJbnZhbGlkYXRlIiwiX3RoaXMkZ2V0UGFnZUNvbnRyb2xsIiwiX3RoaXMkZ2V0UGFnZUNvbnRyb2xsMiIsInZpZXdTdGF0ZSIsImRlcmVnaXN0ZXJTdGF0ZUNvbnRyaWJ1dG9yIiwiZnJvbUFwcGx5U2V0dGluZ3MiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiX3RoaXMkZ2V0UGFnZUNvbnRyb2xsMyIsInJlZ2lzdGVyU3RhdGVDb250cmlidXRvciIsIl9tb2RlbENvbnRleHRDaGFuZ2VFdmVudEhhbmRsZXIiLCJkZXRhY2hFdmVudCIsImNvbnRlbnQiLCJMb2ciLCJ3YXJuaW5nIiwiYXR0YWNoRXZlbnQiLCJfb3duZXJDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJfb3duZXIkZ2V0UHJlcHJvY2Vzc28iLCJnZXRQcmVwcm9jZXNzb3JDb250ZXh0IiwiYXBwQ29tcG9uZW50IiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldFBhdGgiLCJtZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJ0YXJnZXRQYXRoVG9Vc2UiLCJnZXRGdWxsQ29udGV4dFBhdGgiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHNGb3JUYXJnZXRQYXRoIiwiZ2V0T3duZXJDb250ZXh0UGF0aCIsIl9vd25lciRwcmVwcm9jZXNzb3JDbyIsInByZXByb2Nlc3NvckNvbnRleHQiLCJmdWxsQ29udGV4dFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aCIsIm1ldGFwYXRoIiwiY29udGV4dFBhdGgiLCJfY29udGV4dFBhdGhUb1VzZSIsImNvbnRleHRQYXRoVG9Vc2UiLCJzdGFydHNXaXRoIiwiY2hhckF0IiwiRXJyb3IiLCJtZXRhQ29udGV4dCIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwibWV0YVBhdGhDb250ZXh0IiwiTWV0YU1vZGVsQ29udmVydGVyIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwiZ2V0TWV0YVBhdGhPYmplY3QiLCJtZXRhUGF0aCIsIl9jb250ZXh0UGF0aFRvVXNlMiIsIk1ldGFQYXRoIiwiY29udmVydFR5cGVzIiwiZSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwiZ2V0VmlzaWJsZSIsIkludmlzaWJsZVJlbmRlcmVyIiwicmVuZGVyQ29udHJvbCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJkb21SZWYiLCJnZXREb21SZWYiLCJXZWFrUmVmIiwiYmluZFByb3BlcnR5IiwibmFtZSIsImJpbmRpbmdJbmZvIiwicHJvcGVydHlNZXRhZGF0YSIsImdldE1ldGFkYXRhIiwiZ2V0UHJvcGVydHkiLCJiaW5kYWJsZSIsImdyb3VwIiwib0NvbnRlbnQiLCJfdGhpcyRfb2xkRG9tUmVmIiwiZGVyZWYiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZ2V0Rm9jdXNEb21SZWYiLCJlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlIiwiX29FbGVtZW50IiwibUFyaWFQcm9wcyIsIm9QYXJlbnQiLCJnZXRBY2Nlc3NpYmlsaXR5SW5mbyIsIl90aGlzJGNvbnRlbnQiLCJhY2Nlc3NpYmlsaXR5SW5mbyIsImdldElkRm9yTGFiZWwiLCJfdGhpcyRjb250ZW50MiIsImNyZWF0ZUlkIiwiZ2V0SWQiLCJfbGVuIiwic3RyaW5nUGFydHMiLCJBcnJheSIsIl9rZXkiLCJnZW5lcmF0ZSIsImdldFRyYW5zbGF0ZWRUZXh0IiwidGV4dElEIiwicGFyYW1ldGVycyIsIl9yZWYiLCJfdGhpcyRfZ2V0T3duZXIyIiwiX3RoaXMkX2dldE93bmVyMiRwcmVwIiwiZ2V0TW9kZWwiLCJtb2RlbHMiLCJnZXRUZXh0IiwiYWRkU3R5bGVDbGFzcyIsInN0eWxlQ2xhc3MiLCJfdGhpcyRjb250ZW50MyIsInJlbW92ZVN0eWxlQ2xhc3MiLCJfdGhpcyRjb250ZW50NCIsInRvb2dsZVN0eWxlQ2xhc3MiLCJfdGhpcyRjb250ZW50NSIsInRvZ2dsZVN0eWxlQ2xhc3MiLCJDb250cm9sIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIiwiQnVpbGRpbmdCbG9ja0Jhc2UiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkJ1aWxkaW5nQmxvY2tCYXNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSBSZXNvdXJjZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9SZXNvdXJjZU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBUZW1wbGF0ZUNvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIElWaWV3U3RhdGVDb250cmlidXRvciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvdmlld1N0YXRlL0lWaWV3U3RhdGVDb250cmlidXRvclwiO1xuaW1wb3J0ICogYXMgTWV0YU1vZGVsQ29udmVydGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzLCBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHNGb3JUYXJnZXRQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgTWV0YVBhdGggZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWV0YVBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQXV0aG9yaXplZElkQW5ub3RhdGlvbnNUeXBlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB0eXBlIE1hbmFnZWRPYmplY3QgZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIHsgJE1hbmFnZWRPYmplY3RTZXR0aW5ncywgUHJvcGVydHlCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgdHlwZSBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgSW52aXNpYmxlUmVuZGVyZXIgZnJvbSBcInNhcC91aS9jb3JlL0ludmlzaWJsZVJlbmRlcmVyXCI7XG5pbXBvcnQgdHlwZSBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcIi4uL0FwcENvbXBvbmVudFwiO1xuXG4vKipcbiAqIERlZmluZXMgYSBjb250cm9sIHRoYXQgd2lsbCBub3QgZXhpc3QgaW4gdGhlIERPTS5cbiAqIEluc3RlYWQsIG9ubHkgaXRzIGNoaWxkIHdpbGwgYmUgdGhlcmUgYW5kIHRoaXMgY29udHJvbCB3aWxsIGZvcndhcmQgYWxsIERPTSByZWxhdGVkIGluc3RydWN0aW9uIHRvIGl0LlxuICogQGV4cGVyaW1lbnRhbFxuICogQHNpbmNlIDEuMTIxLjBcbiAqIEBwdWJsaWNcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuYnVpbGRpbmdCbG9ja3MuQnVpbGRpbmdCbG9ja0Jhc2VcIilcbmNsYXNzIF9CdWlsZGluZ0Jsb2NrQmFzZTxUIGV4dGVuZHMgVUk1RWxlbWVudD4gZXh0ZW5kcyBDb250cm9sIHtcblx0LyoqXG5cdCAqIFRoZSBtZXRhbW9kZWwgbmFtZSBvciBpZCB0byBiZSB1c2VkIGZvciB0aGlzIGJ1aWxkaW5nIGJsb2NrXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdG1ldGFNb2RlbD86IHN0cmluZztcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkVsZW1lbnRcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudD86IFQ7XG5cblx0LyoqXG5cdCAqIEFzc29jaWF0aW9uIHRvIGNvbnRyb2xzIC8gSURzIHRoYXQgbGFiZWwgdGhpcyBjb250cm9sIChzZWUgV0FJLUFSSUEgYXR0cmlidXRlIGFyaWEtbGFiZWxsZWRieSkuXG5cdCAqL1xuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUsIHNpbmd1bGFyTmFtZTogXCJhcmlhTGFiZWxsZWRCeVwiIH0pXG5cdGFyaWFMYWJlbGxlZEJ5ITogc3RyaW5nW107XG5cblx0cHJpdmF0ZSBfb2xkRG9tUmVmOiBXZWFrUmVmPEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG5cblx0cHJvdGVjdGVkIF9hcHBseWluZ1NldHRpbmdzID0gZmFsc2U7XG5cblx0cHJpdmF0ZSBfbW9kZWxDb250ZXh0Q2hhbmdlRXZlbnRIYW5kbGVyPzogRnVuY3Rpb247XG5cblx0Y29uc3RydWN0b3Ioc2V0dGluZ3M6IHN0cmluZyB8IFByb3BlcnRpZXNPZjxfQnVpbGRpbmdCbG9ja0Jhc2U8VD4+LCBvdGhlcnM/OiBQcm9wZXJ0aWVzT2Y8X0J1aWxkaW5nQmxvY2tCYXNlPFQ+Pikge1xuXHRcdGlmICh0eXBlb2Ygc2V0dGluZ3MgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdG90aGVycyA/Pz0ge307XG5cdFx0XHRvdGhlcnMuaWQgPSBzZXR0aW5ncztcblx0XHR9XG5cdFx0c3VwZXIoc2V0dGluZ3MgYXMgdW5rbm93biBhcyBzdHJpbmcsIG90aGVycyk7XG5cdH1cblxuXHRhcHBseVNldHRpbmdzKG1TZXR0aW5nczogJE1hbmFnZWRPYmplY3RTZXR0aW5ncywgb1Njb3BlPzogb2JqZWN0KTogdGhpcyB7XG5cdFx0dGhpcy5fYXBwbHlpbmdTZXR0aW5ncyA9IHRydWU7XG5cdFx0c3VwZXIuYXBwbHlTZXR0aW5ncyhtU2V0dGluZ3MsIG9TY29wZSk7XG5cdFx0dGhpcy5fYXBwbHlpbmdTZXR0aW5ncyA9IGZhbHNlO1xuXHRcdHRoaXMuX2NoZWNrSWZNZXRhZGF0YVJlYWR5KHRydWUpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0X2dldE93bmVyKCk6IFRlbXBsYXRlQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcblx0XHQvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuXHRcdGxldCBjb250cm9sOiBDb250cm9sIHwgdW5kZWZpbmVkID0gdGhpcztcblx0XHRsZXQgb3duZXIgPSBDb21wb25lbnQuZ2V0T3duZXJDb21wb25lbnRGb3IoY29udHJvbCk7XG5cdFx0d2hpbGUgKCFvd25lciAmJiBjb250cm9sICYmICFjb250cm9sLmlzQTxGRVZpZXc+KFwic2FwLnVpLmNvcmUubXZjLlZpZXdcIikpIHtcblx0XHRcdGNvbnRyb2wgPSBjb250cm9sLmdldFBhcmVudCgpIGFzIENvbnRyb2wgfCB1bmRlZmluZWQ7XG5cdFx0XHRpZiAoY29udHJvbCkge1xuXHRcdFx0XHRvd25lciA9IENvbXBvbmVudC5nZXRPd25lckNvbXBvbmVudEZvcihjb250cm9sKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKG93bmVyPy5pc0E8VGVtcGxhdGVDb21wb25lbnQ+KFwic2FwLmZlLmNvcmUuVGVtcGxhdGVDb21wb25lbnRcIikpIHtcblx0XHRcdHJldHVybiBvd25lcjtcblx0XHR9XG5cdH1cblxuXHRnZXRQYWdlQ29udHJvbGxlcigpOiBQYWdlQ29udHJvbGxlciB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX2dldE93bmVyKCk/LmdldFJvb3RDb250cm9sbGVyKCk7XG5cdH1cblxuXHRkZXN0cm95KHN1cHByZXNzSW52YWxpZGF0ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmlzQTxJVmlld1N0YXRlQ29udHJpYnV0b3I8dW5rbm93bj4gJiBNYW5hZ2VkT2JqZWN0PihcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLnZpZXdTdGF0ZS5JVmlld1N0YXRlQ29udHJpYnV0b3JcIikpIHtcblx0XHRcdHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKT8udmlld1N0YXRlPy5kZXJlZ2lzdGVyU3RhdGVDb250cmlidXRvcih0aGlzKTtcblx0XHR9XG5cdFx0c3VwZXIuZGVzdHJveShzdXBwcmVzc0ludmFsaWRhdGUpO1xuXHR9XG5cblx0X2NoZWNrSWZNZXRhZGF0YVJlYWR5KGZyb21BcHBseVNldHRpbmdzID0gZmFsc2UpOiB2b2lkIHtcblx0XHRjb25zdCBvd25lciA9IHRoaXMuX2dldE93bmVyKCk7XG5cdFx0aWYgKG93bmVyKSB7XG5cdFx0XHR0aGlzLm9uTWV0YWRhdGFBdmFpbGFibGUob3duZXIpO1xuXHRcdFx0aWYgKFxuXHRcdFx0XHR0aGlzLmlzQTxJVmlld1N0YXRlQ29udHJpYnV0b3I8dW5rbm93bj4gJiBNYW5hZ2VkT2JqZWN0PihcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLnZpZXdTdGF0ZS5JVmlld1N0YXRlQ29udHJpYnV0b3JcIilcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLmdldFBhZ2VDb250cm9sbGVyKCk/LnZpZXdTdGF0ZS5yZWdpc3RlclN0YXRlQ29udHJpYnV0b3IodGhpcyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5fbW9kZWxDb250ZXh0Q2hhbmdlRXZlbnRIYW5kbGVyKSB7XG5cdFx0XHRcdHRoaXMuZGV0YWNoRXZlbnQoXCJtb2RlbENvbnRleHRDaGFuZ2VcIiwgdGhpcy5fbW9kZWxDb250ZXh0Q2hhbmdlRXZlbnRIYW5kbGVyKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCFmcm9tQXBwbHlTZXR0aW5ncyAmJiAhdGhpcy5jb250ZW50KSB7XG5cdFx0XHRcdC8vIEluIGNhc2UgY291bGRuJ3QgY3JlYXRlIHRoZSBjb250ZW50IGR1cmluZyB0aGUgYXBwbHlTZXR0aW5ncywgdHJ5IGFnYWluXG5cdFx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcdFwiVGhlIGJ1aWxkaW5nIGJsb2NrIHdhcyBub3QgY3JlYXRlZCB3aXRoaW4gYW4gRXh0ZW5zaW9uQVBJLnJ1bldpdGhGUE1Db250ZXh0IGNhbGwsIGZvciBwZXJmb3JtYW5jZSByZWFzb24gaXQncyByZWNvbW1lbmRlZCB0byBkbyBzby5cIixcblx0XHRcdFx0XHR0aGlzIGFzIHVua25vd24gYXMgc3RyaW5nXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXRoaXMuX21vZGVsQ29udGV4dENoYW5nZUV2ZW50SGFuZGxlcikge1xuXHRcdFx0XHR0aGlzLl9tb2RlbENvbnRleHRDaGFuZ2VFdmVudEhhbmRsZXIgPSBmdW5jdGlvbiAoKTogdm9pZCB7XG5cdFx0XHRcdFx0dGhpcy5fY2hlY2tJZk1ldGFkYXRhUmVhZHkoKTtcblx0XHRcdFx0fTtcblx0XHRcdFx0dGhpcy5hdHRhY2hFdmVudChcIm1vZGVsQ29udGV4dENoYW5nZVwiLCB0aGlzLl9tb2RlbENvbnRleHRDaGFuZ2VFdmVudEhhbmRsZXIpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IHZvaWQge1xuXHRcdC8vIFRvIGJlIG92ZXJyaWRlbiBieSB0aGUgY2hpbGQgY2xhc3Ncblx0fVxuXG5cdGdldEFwcENvbXBvbmVudCgpOiBBcHBDb21wb25lbnQgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKTtcblx0XHRpZiAob3duZXI/LmlzQTxFbmhhbmNlV2l0aFVJNTxUZW1wbGF0ZUNvbXBvbmVudD4+KFwic2FwLmZlLmNvcmUuVGVtcGxhdGVDb21wb25lbnRcIikpIHtcblx0XHRcdHJldHVybiBvd25lci5nZXRQcmVwcm9jZXNzb3JDb250ZXh0KCk/LmFwcENvbXBvbmVudDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRnZXREYXRhTW9kZWxPYmplY3RQYXRoPE4+KHRhcmdldFBhdGg6IHN0cmluZyk6IERhdGFNb2RlbE9iamVjdFBhdGg8Tj4gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIuZ2V0TWV0YU1vZGVsKHRoaXMubWV0YU1vZGVsKTtcblx0XHRjb25zdCB0YXJnZXRQYXRoVG9Vc2UgPSB0YXJnZXRQYXRoID8/IG93bmVyLmdldEZ1bGxDb250ZXh0UGF0aCh0aGlzLm1ldGFNb2RlbCk7XG5cdFx0cmV0dXJuIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0c0ZvclRhcmdldFBhdGgodGFyZ2V0UGF0aFRvVXNlLCBtZXRhTW9kZWwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgY29udGV4dCBwYXRoIGZyb20gdGhlIG93bmVyIGNvbXBvbmVudC5cblx0ICogQHJldHVybnMgVGhlIGNvbnRleHQgcGF0aFxuXHQgKi9cblx0Z2V0T3duZXJDb250ZXh0UGF0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0cmV0dXJuIG93bmVyLnByZXByb2Nlc3NvckNvbnRleHQ/LmZ1bGxDb250ZXh0UGF0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGRhdGEgbW9kZWwgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gbWV0YXBhdGggYW5kIG9wdGlvbmFsIGNvbnRleHRQYXRoLlxuXHQgKiBAcGFyYW0gbWV0YXBhdGhcblx0ICogQHBhcmFtIGNvbnRleHRQYXRoXG5cdCAqIEByZXR1cm5zIFRoZSBkYXRhIG1vZGVsIG9iamVjdCBwYXRoXG5cdCAqL1xuXHRnZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+KFxuXHRcdG1ldGFwYXRoOiBzdHJpbmcsXG5cdFx0Y29udGV4dFBhdGg/OiBzdHJpbmdcblx0KTogRGF0YU1vZGVsT2JqZWN0UGF0aDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvd25lciA9IHRoaXMuX2dldE93bmVyKCkhO1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IG93bmVyLmdldE1ldGFNb2RlbCh0aGlzLm1ldGFNb2RlbCk7XG5cdFx0bGV0IGNvbnRleHRQYXRoVG9Vc2UgPSBjb250ZXh0UGF0aCA/PyBvd25lci5nZXRGdWxsQ29udGV4dFBhdGgodGhpcy5tZXRhTW9kZWwpO1xuXHRcdGNvbnRleHRQYXRoVG9Vc2UgPSBjb250ZXh0UGF0aFRvVXNlPy5zdGFydHNXaXRoKFwiL1wiKSA/IGNvbnRleHRQYXRoVG9Vc2UgOiB1bmRlZmluZWQ7XG5cdFx0aWYgKCFtZXRhTW9kZWwgfHwgIShjb250ZXh0UGF0aFRvVXNlIHx8IG1ldGFwYXRoLmNoYXJBdCgwKSA9PT0gXCIvXCIpKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJObyBtZXRhbW9kZWwgb3IgbWV0YXBhdGggaXMgbm90IHJlYWNoYWJsZSB3aXRoIGNvbnRleHRQYXRoXCIpO1xuXHRcdH1cblx0XHRsZXQgbWV0YUNvbnRleHQgPSBjb250ZXh0UGF0aFRvVXNlID8gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KGNvbnRleHRQYXRoVG9Vc2UpIDogdW5kZWZpbmVkO1xuXHRcdG1ldGFDb250ZXh0ID0gbWV0YUNvbnRleHQgPyBtZXRhQ29udGV4dCA6IHVuZGVmaW5lZDtcblx0XHRjb25zdCBtZXRhUGF0aENvbnRleHQgPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQobWV0YXBhdGgsIG1ldGFDb250ZXh0KTtcblx0XHRyZXR1cm4gbWV0YVBhdGhDb250ZXh0XG5cdFx0XHQ/IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8RXhwZWN0ZWREYXRhTW9kZWxUeXBlPihtZXRhUGF0aENvbnRleHQsIG1ldGFDb250ZXh0KVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBNZXRhUGF0aCBvYmplY3QgZm9yIHRoZSBnaXZlbiBtZXRhUGF0aCBhbmQgb3B0aW9uYWwgY29udGV4dFBhdGguXG5cdCAqIEBwYXJhbSBtZXRhUGF0aFxuXHQgKiBAcGFyYW0gY29udGV4dFBhdGhcblx0ICogQHJldHVybnMgQSBNZXRhUGF0aCBwb2ludGluZyB0byB0aGUgdGFyZ2V0IHttZXRhUGF0aCwgY29udGV4dFBhdGh9XG5cdCAqL1xuXHRnZXRNZXRhUGF0aE9iamVjdDxFeHBlY3RlZERhdGFNb2RlbFR5cGU+KG1ldGFQYXRoOiBzdHJpbmcsIGNvbnRleHRQYXRoPzogc3RyaW5nKTogTWV0YVBhdGg8RXhwZWN0ZWREYXRhTW9kZWxUeXBlPiB8IG51bGwge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIuZ2V0TWV0YU1vZGVsKHRoaXMubWV0YU1vZGVsKTtcblx0XHRsZXQgY29udGV4dFBhdGhUb1VzZSA9IGNvbnRleHRQYXRoID8/IG93bmVyLmdldEZ1bGxDb250ZXh0UGF0aCh0aGlzLm1ldGFNb2RlbCk7XG5cdFx0Y29udGV4dFBhdGhUb1VzZSA9IGNvbnRleHRQYXRoVG9Vc2U/LnN0YXJ0c1dpdGgoXCIvXCIpID8gY29udGV4dFBhdGhUb1VzZSA6IHVuZGVmaW5lZDtcblx0XHRpZiAoIW93bmVyLnByZXByb2Nlc3NvckNvbnRleHQgfHwgIW1ldGFNb2RlbCB8fCAhKGNvbnRleHRQYXRoVG9Vc2UgfHwgbWV0YVBhdGguY2hhckF0KDApID09PSBcIi9cIikpIHtcblx0XHRcdExvZy53YXJuaW5nKGBObyBtZXRhbW9kZWwgb3IgbWV0YVBhdGggaXMgbm90IHJlYWNoYWJsZSB3aXRoICR7Y29udGV4dFBhdGh9OiR7bWV0YVBhdGh9YCk7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiBuZXcgTWV0YVBhdGgoY29udmVydFR5cGVzKG1ldGFNb2RlbCksIG1ldGFQYXRoLCBjb250ZXh0UGF0aFRvVXNlISk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLndhcm5pbmcoYE5vIG1ldGFtb2RlbCBvciBtZXRhUGF0aCBpcyBub3QgcmVhY2hhYmxlIHdpdGggJHtjb250ZXh0UGF0aH06JHttZXRhUGF0aH1gKTtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyByZW5kZXI8VCBleHRlbmRzIENvbnRyb2w+KG9SbTogUmVuZGVyTWFuYWdlciwgb0NvbnRyb2w6IEJ1aWxkaW5nQmxvY2tCYXNlPFQ+KTogdm9pZCB7XG5cdFx0aWYgKCFvQ29udHJvbC5jb250ZW50IHx8IG9Db250cm9sLmdldFZpc2libGUoKSA9PT0gZmFsc2UpIHtcblx0XHRcdEludmlzaWJsZVJlbmRlcmVyLnJlbmRlcihvUm0sIG9Db250cm9sKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b1JtLnJlbmRlckNvbnRyb2wob0NvbnRyb2wuY29udGVudCk7XG5cdFx0fVxuXHR9XG5cblx0Ly9zZXQgdGhlIG9sZCBkb20gcmVmXG5cdG9uQWZ0ZXJSZW5kZXJpbmcoKTogdm9pZCB7XG5cdFx0Y29uc3QgZG9tUmVmID0gdGhpcy5nZXREb21SZWYoKTtcblx0XHRpZiAoZG9tUmVmKSB7XG5cdFx0XHR0aGlzLl9vbGREb21SZWYgPSBuZXcgV2Vha1JlZihkb21SZWYpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9vbGREb21SZWYgPSBudWxsO1xuXHRcdH1cblx0fVxuXG5cdGJpbmRQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIGJpbmRpbmdJbmZvOiBQcm9wZXJ0eUJpbmRpbmdJbmZvKTogdGhpcyB7XG5cdFx0Y29uc3QgcHJvcGVydHlNZXRhZGF0YSA9IHRoaXMuZ2V0TWV0YWRhdGEoKS5nZXRQcm9wZXJ0eShuYW1lKTtcblx0XHRpZiAocHJvcGVydHlNZXRhZGF0YT8uYmluZGFibGUgPT09IGZhbHNlICYmIHByb3BlcnR5TWV0YWRhdGEuZ3JvdXAgPT09IFwiRGF0YVwiKSB7XG5cdFx0XHQodGhpcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbmFtZV0gPSBiaW5kaW5nSW5mbztcblx0XHR9IGVsc2Uge1xuXHRcdFx0c3VwZXIuYmluZFByb3BlcnR5KG5hbWUsIGJpbmRpbmdJbmZvKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRnZXREb21SZWYoKTogRWxlbWVudCB8IG51bGwge1xuXHRcdGNvbnN0IG9Db250ZW50ID0gdGhpcy5jb250ZW50O1xuXHRcdGxldCBkb21SZWY6IEVsZW1lbnQgfCBudWxsID0gb0NvbnRlbnQ/LmdldERvbVJlZigpID8/IHN1cGVyLmdldERvbVJlZigpO1xuXHRcdGlmICghZG9tUmVmKSB7XG5cdFx0XHRkb21SZWYgPSB0aGlzLl9vbGREb21SZWY/LmRlcmVmKCkgPz8gbnVsbDtcblx0XHRcdGlmIChkb21SZWYpIHtcblx0XHRcdFx0cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRvbVJlZi5pZCk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBkb21SZWY7XG5cdH1cblxuXHRnZXRGb2N1c0RvbVJlZigpOiBFbGVtZW50IHwgbnVsbCB7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0cmV0dXJuIG9Db250ZW50ID8gb0NvbnRlbnQuZ2V0Rm9jdXNEb21SZWYoKSA6IHN1cGVyLmdldEZvY3VzRG9tUmVmKCk7XG5cdH1cblxuXHRlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKF9vRWxlbWVudDogb2JqZWN0LCBtQXJpYVByb3BzOiBvYmplY3QpOiBvYmplY3Qge1xuXHRcdGNvbnN0IG9QYXJlbnQgPSB0aGlzLmdldFBhcmVudCgpO1xuXG5cdFx0aWYgKG9QYXJlbnQgJiYgKG9QYXJlbnQgYXMgTWFuYWdlZE9iamVjdCAmIHsgZW5oYW5jZUFjY2Vzc2liaWxpdHlTdGF0ZT86IEZ1bmN0aW9uIH0pLmVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUpIHtcblx0XHRcdC8vIGZvcndhcmQgIGVuaGFuY2VBY2Nlc3NpYmlsaXR5U3RhdGUgY2FsbCB0byB0aGUgcGFyZW50XG5cdFx0XHQob1BhcmVudCBhcyBNYW5hZ2VkT2JqZWN0ICYgeyBlbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlOiBGdW5jdGlvbiB9KS5lbmhhbmNlQWNjZXNzaWJpbGl0eVN0YXRlKF9vRWxlbWVudCwgbUFyaWFQcm9wcyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1BcmlhUHJvcHM7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiAoaWYgYXZhaWxhYmxlIG9uIHRoZSBjb25jcmV0ZSBjb250cm9sKSBwcm92aWRlcyB0aGUgY3VycmVudCBhY2Nlc3NpYmlsaXR5IHN0YXRlIG9mIHRoZSBjb250cm9sLlxuXHQgKiBAcmV0dXJucyBUaGUgYWNjZXNzaWJpbGl0eSBpbmZvcm1hdGlvbiBmb3IgdGhlIGNvbnRyb2wuXG5cdCAqL1xuXHRnZXRBY2Nlc3NpYmlsaXR5SW5mbygpOiBPYmplY3Qge1xuXHRcdGxldCBhY2Nlc3NpYmlsaXR5SW5mbyA9IHt9O1xuXHRcdGlmICh0aGlzLmNvbnRlbnQ/LmlzQTxDb250cm9sPihcInNhcC51aS5jb3JlLkNvbnRyb2xcIikpIHtcblx0XHRcdGFjY2Vzc2liaWxpdHlJbmZvID0gdGhpcy5jb250ZW50LmdldEFjY2Vzc2liaWxpdHlJbmZvKCk7XG5cdFx0fVxuXHRcdHJldHVybiBhY2Nlc3NpYmlsaXR5SW5mbztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBET01Ob2RlIElEIHRvIGJlIHVzZWQgZm9yIHRoZSBcImxhYmVsRm9yXCIgYXR0cmlidXRlLlxuXHQgKlxuXHQgKiBXZSBmb3J3YXJkIHRoZSBjYWxsIG9mIHRoaXMgbWV0aG9kIHRvIHRoZSBjb250ZW50IGNvbnRyb2wuXG5cdCAqIEByZXR1cm5zIElEIHRvIGJlIHVzZWQgZm9yIHRoZSA8Y29kZT5sYWJlbEZvcjwvY29kZT5cblx0ICovXG5cdGdldElkRm9yTGFiZWwoKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5jb250ZW50Py5pc0E8Q29udHJvbD4oXCJzYXAudWkuY29yZS5Db250cm9sXCIpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5jb250ZW50LmdldElkRm9yTGFiZWwoKTtcblx0XHR9XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblxuXHRwcm90ZWN0ZWQgY3JlYXRlSWQoLi4uc3RyaW5nUGFydHM6IChzdHJpbmcgfCB1bmRlZmluZWQgfCBEYXRhTW9kZWxPYmplY3RQYXRoPEF1dGhvcml6ZWRJZEFubm90YXRpb25zVHlwZT4pW10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRcdC8vIElmIHRoZSBjaGlsZCBpbnN0YW5jZSBoYXMgYW4gSUQgcHJvcGVydHkgdXNlIGl0IG90aGVyd2lzZSByZXR1cm4gdW5kZWZpbmVkXG5cdFx0aWYgKHRoaXMuZ2V0SWQoKSkge1xuXHRcdFx0cmV0dXJuIGdlbmVyYXRlKFt0aGlzLmdldElkKCksIC4uLnN0cmluZ1BhcnRzXSk7XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRnZXRUcmFuc2xhdGVkVGV4dCh0ZXh0SUQ6IHN0cmluZywgcGFyYW1ldGVycz86IHVua25vd25bXSwgbWV0YVBhdGg/OiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiAoXG5cdFx0XHQoKHRoaXMuZ2V0TW9kZWwoXCJzYXAuZmUuaTE4blwiKSA/PyB0aGlzLl9nZXRPd25lcigpPy5wcmVwcm9jZXNzb3JDb250ZXh0Py5tb2RlbHNbXCJzYXAuZmUuaTE4blwiXSkgYXMgUmVzb3VyY2VNb2RlbCk/LmdldFRleHQoXG5cdFx0XHRcdHRleHRJRCxcblx0XHRcdFx0cGFyYW1ldGVycyxcblx0XHRcdFx0bWV0YVBhdGhcblx0XHRcdCkgfHwgdGV4dElEXG5cdFx0KTtcblx0fVxuXG5cdGFkZFN0eWxlQ2xhc3Moc3R5bGVDbGFzczogc3RyaW5nKTogdGhpcyB7XG5cdFx0KHRoaXMuY29udGVudCBhcyB1bmtub3duIGFzIENvbnRyb2wpPy5hZGRTdHlsZUNsYXNzKHN0eWxlQ2xhc3MpO1xuXHRcdHN1cGVyLmFkZFN0eWxlQ2xhc3Moc3R5bGVDbGFzcyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHRyZW1vdmVTdHlsZUNsYXNzKHN0eWxlQ2xhc3M6IHN0cmluZyk6IHRoaXMge1xuXHRcdCh0aGlzLmNvbnRlbnQgYXMgdW5rbm93biBhcyBDb250cm9sKT8ucmVtb3ZlU3R5bGVDbGFzcyhzdHlsZUNsYXNzKTtcblx0XHRzdXBlci5yZW1vdmVTdHlsZUNsYXNzKHN0eWxlQ2xhc3MpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0dG9vZ2xlU3R5bGVDbGFzcyhzdHlsZUNsYXNzOiBzdHJpbmcpOiB0aGlzIHtcblx0XHQodGhpcy5jb250ZW50IGFzIHVua25vd24gYXMgQ29udHJvbCk/LnRvZ2dsZVN0eWxlQ2xhc3Moc3R5bGVDbGFzcyk7XG5cdFx0c3VwZXIudG9nZ2xlU3R5bGVDbGFzcyhzdHlsZUNsYXNzKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fVxufVxuXG50eXBlIEJ1aWxkaW5nQmxvY2tCYXNlPFQgZXh0ZW5kcyBVSTVFbGVtZW50PiA9IF9CdWlsZGluZ0Jsb2NrQmFzZTxUPiAmIFQ7XG4vLyBOb3QgcHJldHR5IGJ1dCB0aGUgYXMgYW55IGluIHRoZSBlbmQgY2Fubm90IGJlIHJlbW92ZWRcbmNvbnN0IEJ1aWxkaW5nQmxvY2tCYXNlOiBuZXcgPFQgZXh0ZW5kcyBVSTVFbGVtZW50ID0gQ29udHJvbD4oXG5cdHNldHRpbmdzPzogc3RyaW5nIHwgUHJvcGVydGllc09mPEJ1aWxkaW5nQmxvY2tCYXNlPFQ+Pixcblx0b3RoZXJzPzogUHJvcGVydGllc09mPEJ1aWxkaW5nQmxvY2tCYXNlPFQ+PlxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuKSA9PiBFbmhhbmNlV2l0aFVJNTxCdWlsZGluZ0Jsb2NrQmFzZTxUPj4gPSBfQnVpbGRpbmdCbG9ja0Jhc2UgYXMgYW55O1xuZXhwb3J0IGRlZmF1bHQgQnVpbGRpbmdCbG9ja0Jhc2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQU5BLElBUU1BLGtCQUFrQixJQUFBQyxJQUFBLEdBRHZCQyxjQUFjLENBQUMsOENBQThDLENBQUMsRUFBQUMsS0FBQSxHQUs3REMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBRzVCQyxXQUFXLENBQUM7SUFBRUYsSUFBSSxFQUFFLHFCQUFxQjtJQUFFRyxRQUFRLEVBQUUsS0FBSztJQUFFQyxTQUFTLEVBQUU7RUFBSyxDQUFDLENBQUMsRUFBQUMsS0FBQSxHQU05RUMsV0FBVyxDQUFDO0lBQUVOLElBQUksRUFBRSxxQkFBcUI7SUFBRUcsUUFBUSxFQUFFLElBQUk7SUFBRUksWUFBWSxFQUFFO0VBQWlCLENBQUMsQ0FBQyxFQUFBWCxJQUFBLENBQUFZLE1BQUEsSUFBQUMsT0FBQSwwQkFBQUMsUUFBQTtJQUFBQyxjQUFBLENBQUFoQixrQkFBQSxFQUFBZSxRQUFBO0lBWjdGO0FBQ0Q7QUFDQTs7SUFPQztBQUNEO0FBQ0E7O0lBVUMsU0FBQWYsbUJBQVlpQixRQUFzRCxFQUFFQyxNQUE0QyxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUNqSCxJQUFJLE9BQU9GLFFBQVEsS0FBSyxRQUFRLEVB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