@sap/open.fe 1.97.0 → 1.98.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 (873) hide show
  1. package/package.json +1 -1
  2. package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
  3. package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
  4. package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +275 -62
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
  6. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +1 -0
  7. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +1 -1
  8. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
  9. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +3 -3
  10. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +51 -46
  11. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
  13. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  14. package/packages/sap.fe.common/src/sap/fe/common/resources.json +16 -8
  15. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  16. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  17. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  18. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.98.json +18 -0
  19. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  20. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  21. package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +3 -1
  22. package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +1 -1
  23. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +1 -1
  24. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +1 -1
  25. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +35 -15
  26. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
  27. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +13 -5
  28. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +1 -1
  29. package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +8 -2
  30. package/packages/sap.fe.core/src/sap/fe/core/PageController.js +1 -1
  31. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +26 -10
  32. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
  33. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +13 -4
  34. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
  35. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +124 -39
  36. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
  37. package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +49 -22
  38. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +1 -1
  39. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +11 -8
  40. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
  41. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +12 -8
  42. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
  43. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +196 -70
  44. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  45. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +9 -2
  46. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +1 -1
  47. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +19 -17
  48. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  49. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +39 -8
  50. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  51. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +114 -25
  52. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
  53. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +112 -24
  54. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +80 -0
  55. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +6 -0
  56. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +5 -1
  57. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
  58. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +1 -1
  59. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  60. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +34 -7
  61. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +1 -1
  62. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +5 -2
  63. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +1 -1
  64. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +16 -1
  65. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +1 -1
  66. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +19 -6
  67. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +1 -1
  68. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +7 -7
  69. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  70. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +6 -5
  71. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -1
  72. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +6 -3
  73. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +9 -3
  75. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +1 -1
  76. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +0 -5
  77. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  78. package/packages/sap.fe.core/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -1
  79. package/packages/{sap.fe.macros/src/sap/fe/macros/massedit → sap.fe.core/src/sap/fe/core/controls/massEdit}/MassEditDialog.fragment.xml +6 -6
  80. package/packages/{sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js → sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js} +2 -2
  81. package/packages/{sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js → sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.js} +0 -0
  82. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +13 -1
  83. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
  84. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +10 -0
  85. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  86. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +3 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +18 -7
  88. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  89. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +15 -6
  90. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +62 -4
  91. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  92. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +60 -4
  93. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +3 -3
  94. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  95. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
  96. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +18 -10
  97. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  98. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +10 -1
  99. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  100. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -0
  101. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +17 -9
  102. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  103. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +9 -3
  104. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +69 -4
  105. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  106. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +72 -0
  107. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +172 -284
  108. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  109. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +228 -348
  110. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +468 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -0
  112. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +609 -0
  113. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +30 -13
  114. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  115. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +31 -12
  116. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +2 -2
  117. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  118. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
  119. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +14 -6
  120. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  121. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +26 -5
  122. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +8 -1
  123. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  124. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.ts +9 -1
  125. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +4 -1
  126. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  127. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
  128. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +8 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  130. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
  131. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +3 -3
  132. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter-dbg.js +30 -5
  133. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  134. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.ts +25 -3
  135. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  136. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +359 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +5 -0
  138. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +388 -0
  139. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +199 -111
  140. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
  141. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +193 -102
  142. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +2 -2
  143. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
  144. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +1 -1
  145. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +679 -0
  146. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +6 -0
  147. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +27 -1
  148. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +23 -14
  149. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +2 -2
  150. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +477 -411
  151. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
  152. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +47 -3
  153. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +3 -3
  154. package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
  155. package/packages/sap.fe.core/src/sap/fe/core/library.support.js +9 -3
  156. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  157. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +62 -0
  158. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -0
  159. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +68 -0
  160. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +40 -5
  161. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +24 -2
  162. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +24 -2
  163. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +24 -2
  164. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +25 -3
  165. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +24 -2
  166. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +24 -2
  167. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +24 -2
  168. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +24 -2
  169. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +23 -1
  170. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +23 -1
  171. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -1
  172. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +24 -2
  173. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +24 -2
  174. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +24 -2
  175. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +24 -2
  176. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +24 -2
  177. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +25 -3
  178. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +25 -3
  179. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +24 -2
  180. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +24 -2
  181. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +24 -2
  182. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +25 -3
  183. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +26 -4
  184. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +24 -2
  185. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +24 -2
  186. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +24 -2
  187. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +24 -2
  188. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +24 -2
  189. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +24 -2
  190. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +24 -2
  191. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +24 -2
  192. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +24 -2
  193. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +24 -2
  194. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +24 -2
  195. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +25 -3
  196. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +24 -2
  197. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +24 -2
  198. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +24 -2
  199. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +24 -2
  200. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +24 -2
  201. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +24 -2
  202. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +25 -3
  203. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +24 -2
  204. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +24 -2
  205. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +24 -2
  206. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +24 -2
  207. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +24 -2
  208. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +24 -2
  209. package/packages/sap.fe.core/src/sap/fe/core/resources.json +483 -235
  210. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  211. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  212. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +4 -3
  213. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  214. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -0
  215. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +93 -346
  216. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  217. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +31 -2
  218. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  219. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +30 -1
  220. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +8 -5
  221. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  222. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +11 -6
  223. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +12 -3
  224. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  225. package/packages/sap.fe.core/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
  226. package/packages/sap.fe.core/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
  227. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +10 -48
  228. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  229. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +14 -46
  230. package/packages/sap.fe.core/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +114 -0
  231. package/packages/sap.fe.core/src/sap/fe/core/templating/DisplayModeFormatter.js +5 -0
  232. package/packages/sap.fe.core/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
  233. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +10 -7
  234. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
  235. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +8 -6
  236. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +2 -2
  237. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
  238. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +15 -110
  239. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
  240. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +6 -73
  241. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
  242. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  243. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -1
  244. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -1
  245. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  246. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/ControllerExtensionNavigationModel.js +5 -0
  247. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/CustomElementNavigationModel.js +105 -7
  248. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +176 -0
  249. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/myViewTest.controller.js +2 -2
  250. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.controller.js +2 -2
  251. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +0 -1
  252. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/ChartQualifier.controller.js +2 -2
  253. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/ChartSelectionMode.controller.js +2 -2
  254. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/FieldEdit.controller.js +3 -2
  255. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/FieldEvents.controller.js +3 -2
  256. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.controller.js +3 -2
  257. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/FieldNavProp.controller.js +3 -2
  258. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/Component.js +36 -0
  259. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/FilterBarAnnotationDefaults.controller.js +35 -0
  260. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/FilterBarAnnotationDefaults.view.xml +58 -0
  261. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/localService/RootEntity.json +102 -0
  262. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/localService/ValueHelpEntity.js +11 -0
  263. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/localService/service.cds +97 -0
  264. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/manifest.json +72 -0
  265. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/Component.js +36 -0
  266. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomFilter.js +36 -0
  267. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomRatingFilter.fragment.xml +8 -0
  268. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomRatingFilterOperator.fragment.xml +17 -0
  269. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomRatingRangeFilter.fragment.xml +8 -0
  270. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/FilterBarCustoms.controller.js +42 -0
  271. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/FilterBarCustoms.view.xml +70 -0
  272. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/localService/RootEntity.json +107 -0
  273. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/localService/ValueHelpEntity.js +11 -0
  274. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/localService/service.cds +152 -0
  275. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/manifest.json +72 -0
  276. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.controller.js +13 -6
  277. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.view.xml +1 -1
  278. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/ChildEntity.json +15 -674
  279. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/MultiChildEntity.json +92 -0
  280. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/RootEntity.json +10 -5
  281. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/service.cds +72 -19
  282. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/Component.js +36 -0
  283. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.controller.js +35 -0
  284. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.view.xml +58 -0
  285. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/RootEntity.json +102 -0
  286. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/ValueHelpEntity.js +11 -0
  287. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/service.cds +115 -0
  288. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/manifest.json +72 -0
  289. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarAnnotationDefaults.html +37 -0
  290. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarCustoms.html +37 -0
  291. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarSVandAnnotationDefaults.html +37 -0
  292. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/Component.js +35 -0
  293. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/DetailPage.controller.js +5 -0
  294. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/DetailPage.view.xml +15 -0
  295. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.controller.js +43 -0
  296. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.view.xml +79 -0
  297. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/ChildEntity.json +23 -0
  298. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/RootEntity.json +41 -0
  299. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/ValueHelpCurrencyEntity.json +5 -0
  300. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/ValueHelpEntity.js +11 -0
  301. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/service.cds +144 -0
  302. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/manifest.json +96 -0
  303. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/template/Component.js +9 -0
  304. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/template/EntryPage.controller.js +5 -0
  305. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/template/EntryPage.view.xml +14 -0
  306. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidanceFreestyle.html +69 -0
  307. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/i18n/i18n.properties +3 -0
  308. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/MicroChartDefault.controller.js +2 -2
  309. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/MicroChartDynamicSize.controller.js +2 -2
  310. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/MicroChartHideOnNoData.controller.js +2 -2
  311. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/MicroChartShowOnlyChart.controller.js +2 -2
  312. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +4 -3
  313. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +36 -30
  314. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/TableDefault.controller.js +2 -2
  315. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.controller.js +3 -2
  316. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.view.xml +30 -24
  317. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/Component.js +3 -0
  318. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/OPExtend.controller.js +17 -2
  319. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/ChildEntity.json +9 -0
  320. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/service.cds +46 -0
  321. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/manifest.json +24 -1
  322. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility.html +2 -2
  323. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +1 -1
  324. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnBuildingBlockField.fragment.xml +3 -0
  325. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +2 -2
  326. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +2 -2
  327. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +7 -0
  328. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customElementsOverview.md +4 -0
  329. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/Component.js +35 -0
  330. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/CustomFormElement1.fragment.xml +3 -0
  331. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/CustomFormElement2.fragment.xml +3 -0
  332. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/localService/RootEntity.json +9 -0
  333. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/localService/service.cds +136 -0
  334. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/manifest.json +90 -0
  335. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElementContent.html +36 -0
  336. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/{CustomHeaderFacetFormElement.fragment.xml → CustomHeaderFacetBuildingBlockFormElement.fragment.xml} +0 -0
  337. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/{CustomHeaderFacetFormElementEdit.fragment.xml → CustomHeaderFacetBuildingBlockFormElementEdit.fragment.xml} +1 -1
  338. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetBuildingBlockMicroChart.fragment.xml +10 -0
  339. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetBuildingBlockMicroChartEdit.fragment.xml +5 -0
  340. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetDataPointEdit.fragment.xml +2 -2
  341. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetMicroChartEdit.fragment.xml +2 -2
  342. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/RootEntity.json +6 -1
  343. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/service.cds +30 -2
  344. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/manifest.json +13 -3
  345. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomPage.view.xml +1 -2
  346. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSection.fragment.xml +1 -7
  347. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionFormElementAndTable.fragment.xml +0 -1
  348. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionNavigation.fragment.xml +1 -7
  349. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSectionContent.html +60 -27
  350. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/Component.js +35 -0
  351. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/CustomSubSection1.fragment.xml +3 -0
  352. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/CustomSubSection2.fragment.xml +3 -0
  353. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/CustomSubSection3.fragment.xml +11 -0
  354. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/localService/ChildEntity.json +42 -0
  355. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/localService/RootEntity.json +9 -0
  356. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/localService/service.cds +139 -0
  357. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/manifest.json +104 -0
  358. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSectionContent.html +36 -0
  359. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/i18n/i18n.properties +3 -0
  360. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.js +20 -6
  361. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.ts +22 -6
  362. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.js +71 -23
  363. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.ts +97 -24
  364. package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +624 -0
  365. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +449 -140
  366. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +435 -0
  367. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +385 -0
  368. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +229 -2
  369. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.ts +227 -0
  370. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +235 -63
  371. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +162 -40
  372. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.js +115 -0
  373. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.ts +95 -0
  374. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -2
  375. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +0 -1
  376. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +2 -2
  377. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +2 -2
  378. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +11 -1
  379. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +9 -0
  380. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.js +18 -1
  381. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.ts +25 -1
  382. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPI.spec.js +64 -1
  383. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPI.spec.ts +66 -0
  384. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +261 -20
  385. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +329 -19
  386. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +79 -8
  387. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +128 -8
  388. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.js +7 -7
  389. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.ts +6 -6
  390. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.js +22 -1
  391. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.ts +26 -1
  392. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +136 -244
  393. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +156 -376
  394. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +1267 -0
  395. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +2150 -0
  396. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/KPI.spec.ts.snap +306 -0
  397. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +57 -0
  398. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Table.spec.ts.snap +1 -1
  399. package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService.cds +137 -5
  400. package/packages/sap.fe.core/test/sap/fe/core/jest/data/BindingExpression-AnnotationExpression.xml +13 -0
  401. package/packages/sap.fe.core/test/sap/fe/core/jest/data/HeaderFacets.cds +28 -0
  402. package/packages/sap.fe.core/test/sap/fe/core/jest/data/KPI.cds +191 -0
  403. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MetaModelConverterContext.cds +20 -0
  404. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ObjectPageConverter.cds +69 -1
  405. package/packages/sap.fe.core/test/sap/fe/core/jest/data/RoutingServiceFactory.cds +35 -0
  406. package/packages/sap.fe.core/test/sap/fe/core/jest/data/SideEffects.cds +26 -1
  407. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +98 -0
  408. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionOperationAvailableSticky.cds +22 -0
  409. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableTooltips.cds +43 -0
  410. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.js +10 -1
  411. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.ts +20 -0
  412. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +912 -0
  413. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +981 -0
  414. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/AppStartupHelper.spec.ts.snap +358 -0
  415. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.js +242 -0
  416. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.ts +297 -0
  417. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/__snapshots__/ChangePageConfiguration.spec.ts.snap +289 -0
  418. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +292 -366
  419. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.ts +247 -0
  420. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +14 -1
  421. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +19 -0
  422. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -12
  423. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.98.json +363 -0
  424. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  425. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  426. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.fragment.xml +5 -5
  427. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +0 -2
  428. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
  429. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +1 -1
  430. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
  431. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +4 -4
  432. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  433. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +26 -24
  434. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
  435. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +1 -1
  436. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
  437. package/packages/sap.fe.macros/src/sap/fe/macros/FieldBaseDelegate-dbg.js +90 -0
  438. package/packages/sap.fe.macros/src/sap/fe/macros/FieldBaseDelegate.js +6 -0
  439. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +7 -6
  440. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +63 -8
  441. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +1 -1
  442. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +42 -4
  443. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +1 -1
  444. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +76 -1
  445. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +49 -6
  446. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  447. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField-dbg.designtime.js +1 -1
  448. package/packages/sap.fe.macros/src/sap/fe/macros/Form.fragment.xml +21 -17
  449. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +8 -0
  450. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
  451. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +2 -2
  452. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
  453. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +2 -2
  454. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +1 -1
  455. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +8 -3
  456. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  457. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata-dbg.js +2 -1
  458. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata.js +1 -1
  459. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata-dbg.js +11 -8
  460. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata.js +1 -1
  461. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper-dbg.js +168 -35
  462. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper.js +1 -1
  463. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +107 -109
  464. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +51 -65
  465. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  466. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +9 -4
  467. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  468. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +5 -2
  469. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
  470. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
  471. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils-dbg.js +2 -1
  472. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils.js +1 -1
  473. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +101 -16
  474. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  475. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +273 -71
  476. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  477. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +128 -32
  478. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  479. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +110 -16
  480. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +11 -4
  481. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +65 -84
  482. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  483. package/packages/sap.fe.macros/src/sap/fe/macros/filter/CustomFilter.fragment.xml +5 -0
  484. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +2 -2
  485. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
  486. package/packages/sap.fe.macros/src/sap/fe/macros/form/DataFieldCollection.fragment.xml +2 -2
  487. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFormElement.fragment.xml +5 -1
  488. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +72 -12
  489. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
  490. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +43 -14
  491. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +13 -2
  492. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +55 -8
  493. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
  494. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -3
  495. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +38 -65
  496. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +1 -1
  497. package/packages/sap.fe.macros/src/sap/fe/macros/{FilterField.fragment.xml → internal/FilterField.fragment.xml} +2 -2
  498. package/packages/sap.fe.macros/src/sap/fe/macros/{FilterField.metadata-dbg.js → internal/FilterField.metadata-dbg.js} +5 -5
  499. package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.metadata.js +6 -0
  500. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +96 -0
  501. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.js +5 -0
  502. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +116 -0
  503. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate-dbg.js +7 -15
  504. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate.js +1 -1
  505. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +4 -5
  506. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/AmountWithCurrency.fragment.xml +5 -1
  507. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +5 -1
  508. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +1 -0
  509. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/File.fragment.xml +2 -2
  510. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +5 -3
  511. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +11 -3
  512. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +1 -0
  513. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +5 -4
  514. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/MdcFieldWithValueHelp.fragment.xml +48 -0
  515. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +140 -18
  516. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectStatus.fragment.xml +1 -0
  517. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +1 -1
  518. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +6 -3
  519. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/CheckBox.fragment.xml +1 -1
  520. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +1 -1
  521. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +1 -1
  522. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +14 -4
  523. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +1 -1
  524. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +3 -3
  525. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +2 -2
  526. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TextArea.fragment.xml +1 -1
  527. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +1 -1
  528. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +25 -9
  529. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  530. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +30 -16
  531. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter-dbg.js +154 -0
  532. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.js +5 -0
  533. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.ts +146 -0
  534. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +204 -0
  535. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +5 -0
  536. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +215 -0
  537. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +29 -8
  538. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
  539. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp-dbg.designtime.js +1 -1
  540. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpContent.fragment.xml +0 -10
  541. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +2 -2
  542. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +151 -131
  543. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  544. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  545. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +24 -23
  546. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
  547. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +209 -188
  548. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  549. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  550. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary-dbg.js +7 -4
  551. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary.js +1 -1
  552. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  553. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +36 -10
  554. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +12 -0
  555. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +12 -0
  556. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +12 -0
  557. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +12 -0
  558. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +12 -0
  559. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +12 -0
  560. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +12 -0
  561. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +13 -1
  562. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +12 -0
  563. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +12 -0
  564. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +12 -0
  565. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +12 -0
  566. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +12 -0
  567. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +12 -0
  568. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +12 -0
  569. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +12 -0
  570. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +12 -0
  571. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +12 -0
  572. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -0
  573. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +12 -0
  574. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +12 -0
  575. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +12 -0
  576. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +14 -2
  577. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +12 -0
  578. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +12 -0
  579. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +12 -0
  580. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +12 -0
  581. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +12 -0
  582. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +12 -0
  583. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +12 -0
  584. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +12 -0
  585. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +12 -0
  586. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +12 -0
  587. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +12 -0
  588. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +13 -1
  589. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -0
  590. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +12 -0
  591. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +12 -0
  592. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +12 -0
  593. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +12 -0
  594. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +12 -0
  595. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +13 -1
  596. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +12 -0
  597. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +12 -0
  598. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +12 -0
  599. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +12 -0
  600. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +13 -1
  601. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -0
  602. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +496 -354
  603. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +53 -57
  604. package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +1 -0
  605. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +38 -32
  606. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer-dbg.js +12 -3
  607. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer.js +1 -1
  608. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +17 -91
  609. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  610. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime-dbg.js +4 -1
  611. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime.js +1 -1
  612. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +9 -4
  613. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
  614. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin-dbg.js +3 -3
  615. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin.js +1 -1
  616. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +198 -71
  617. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  618. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.fragment.xml +4 -4
  619. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +58 -15
  620. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  621. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -1
  622. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  623. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +1 -1
  624. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +1 -2
  625. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +1 -1
  626. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +0 -2
  627. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.js +1 -1
  628. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.ts +0 -2
  629. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +1 -1
  630. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +0 -2
  631. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.js +21 -1
  632. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.ts +20 -0
  633. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +1 -1
  634. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +1 -1
  635. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +19 -1
  636. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +12 -0
  637. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +2 -2
  638. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldBaseDelegate.spec.js +111 -0
  639. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.js +67 -3
  640. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.ts +81 -1
  641. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarDelegate.spec.js +4 -6
  642. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.js +52 -6
  643. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.ts +64 -7
  644. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.js +34 -4
  645. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.ts +46 -3
  646. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.js +43 -4
  647. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.ts +62 -3
  648. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.js +31 -5
  649. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.ts +25 -3
  650. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +11 -1
  651. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +9 -0
  652. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +40 -0
  653. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +35 -0
  654. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartMacro.spec.ts.snap +42 -42
  655. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/CollectionField.spec.ts.snap +49 -7
  656. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +27 -11
  657. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +50 -44
  658. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithSemanticKey.spec.ts.snap +146 -56
  659. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithValueHelp.spec.ts.snap +16 -16
  660. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +774 -11
  661. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +70 -2
  662. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/MicroChart.spec.ts.snap +1 -1
  663. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/PhantomUtil.spec.ts.snap +70 -165
  664. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +39 -0
  665. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +287 -170
  666. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +369 -213
  667. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/CollectionField.cds +11 -3
  668. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +5 -0
  669. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroWithSemanticKey.cds +17 -12
  670. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterBarMacro.cds +18 -1
  671. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterBarMacroWithDefaultAnnotation.cds +155 -0
  672. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterBarMacroWithSVandAnnotation.cds +155 -0
  673. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterFieldMacro.cds +13 -1
  674. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +36 -11
  675. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +22 -1
  676. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/simpleFieldMacro.cds +8 -3
  677. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +252 -61
  678. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +277 -67
  679. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.cds +93 -1
  680. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +118 -16
  681. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +143 -16
  682. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/__snapshots__/FieldTemplating.spec.ts.snap +31 -0
  683. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestFragment.xml +3 -0
  684. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestSubFragment.xml +10 -0
  685. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +14 -2
  686. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +13 -1
  687. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +131 -0
  688. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +264 -0
  689. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +244 -0
  690. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +238 -0
  691. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +33 -6
  692. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +40 -2
  693. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/ValueHelpTableDelegate.spec.js +61 -0
  694. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/ValueHelpTableDelegate.spec.ts +64 -0
  695. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1287 -32
  696. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/data/tabledelegate.cds +1 -1
  697. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
  698. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/CommonHelper.qunit.js +284 -159
  699. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +9 -9
  700. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +2 -2
  701. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormContainerTemplating.qunit.js +1 -0
  702. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
  703. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplating.qunit.js +10 -5
  704. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +2 -2
  705. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +5 -5
  706. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartContainer.qunit.js +29 -0
  707. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +6 -26
  708. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelperTemplate.qunit.js +3 -8
  709. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +402 -18
  710. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacro.fragment.xml +1 -1
  711. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacroMissingID.fragment.xml +1 -1
  712. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/TableMacro.fragment.xml +0 -2
  713. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.98.json +210 -0
  714. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  715. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  716. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler-dbg.js +70 -29
  717. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler.js +1 -1
  718. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  719. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  720. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +6 -5
  721. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +3 -3
  722. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  723. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  724. package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +5 -5
  725. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  726. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  727. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  728. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/NavigationHandlerTest.qunit.js +4 -12
  729. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  730. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  731. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  732. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  733. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +2 -2
  734. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  735. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  736. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  737. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  738. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  739. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  740. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate-dbg.js +2 -2
  741. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +1 -1
  742. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  743. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +2 -2
  744. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  745. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  746. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +1 -1
  747. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
  748. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -1
  749. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +85 -85
  750. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  751. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  752. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation-dbg.js +6 -2
  753. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  754. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit-dbg.js +96 -0
  755. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit.js +6 -0
  756. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +36 -21
  757. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share.js +1 -1
  758. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +53 -31
  759. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  760. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +20 -11
  761. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +20 -0
  762. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  763. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +16 -14
  764. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  765. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +15 -0
  766. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
  767. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +103 -88
  768. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +99 -72
  769. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  770. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  771. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Paginator-dbg.js +12 -0
  772. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  773. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share-dbg.js +47 -43
  774. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share.js +1 -1
  775. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +0 -20
  776. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  777. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +24 -24
  778. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +1 -1
  779. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +24 -5
  780. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +1 -4
  781. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +181 -0
  782. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
  783. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
  784. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +133 -123
  785. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
  786. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +1 -1
  787. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  788. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -7
  789. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
  790. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +34 -32
  791. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  792. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  793. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
  794. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle.properties +24 -1
  795. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +1 -1
  796. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +1 -1
  797. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +1 -1
  798. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +8 -8
  799. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +1 -1
  800. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +1 -1
  801. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +1 -1
  802. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +126 -66
  803. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  804. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
  805. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  806. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -1
  807. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  808. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +262 -0
  809. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +2 -1
  810. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +1 -0
  811. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Sections.spec.js +132 -0
  812. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Sections.spec.ts +131 -0
  813. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +1 -0
  814. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/Sections.spec.ts.snap +52 -0
  815. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +229 -0
  816. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +157 -0
  817. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/__snapshots__/RootContainerBaseController.spec.ts.snap +218 -0
  818. package/packages/sap.fe.templates/test/sap/fe/templates/jest/data/RootContainerBaseController.cds +64 -0
  819. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.98.json +201 -0
  820. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  821. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  822. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner-dbg.js +8 -3
  823. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner.js +1 -1
  824. package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +8 -3
  825. package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
  826. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +19 -11
  827. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
  828. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils-dbg.js +1 -1
  829. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils.js +1 -1
  830. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +211 -45
  831. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  832. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +103 -8
  833. package/packages/sap.fe.test/src/sap/fe/test/Utils-dbg.js +0 -12
  834. package/packages/sap.fe.test/src/sap/fe/test/Utils.js +1 -1
  835. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +1 -7
  836. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI.js +1 -1
  837. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions-dbg.js +4 -4
  838. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions.js +1 -1
  839. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardActions-dbg.js +43 -0
  840. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardActions.js +6 -0
  841. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardAssertions-dbg.js +19 -15
  842. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardAssertions.js +1 -1
  843. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions-dbg.js +11 -0
  844. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions.js +1 -1
  845. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder-dbg.js +11 -2
  846. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder.js +1 -1
  847. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder-dbg.js +22 -0
  848. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder.js +1 -1
  849. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  850. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +5 -4
  851. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +1 -1
  852. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +37 -23
  853. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +4 -4
  854. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  855. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  856. package/packages/sap.fe.test/src/sap/fe/test/resources.json +59 -34
  857. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  858. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  859. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  860. package/packages/sap.fe.test/test/sap/fe/test/mockserver/MockServer.js +98965 -71474
  861. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +0 -8
  862. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +0 -5
  863. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
  864. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/CreditLimitDetails.json +0 -154
  865. package/packages/sap.fe.core/test/sap/fe/core/qunit/TransactionHelper.qunit.js +0 -77
  866. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper-dbg.js +0 -48
  867. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper.js +0 -6
  868. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.metadata.js +0 -6
  869. package/packages/sap.fe.macros/src/sap/fe/macros/FormWrapper.fragment.xml +0 -26
  870. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler-dbg.js +0 -718
  871. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler.js +0 -6
  872. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterBarHelper.qunit.js +0 -223
  873. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderImage.fragment.xml +0 -24
@@ -29,7 +29,7 @@ sap.ui.define(["sap/ui/core/service/ServiceFactory", "sap/ui/core/service/Servic
29
29
 
30
30
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
31
31
 
32
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
32
+ function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
33
33
 
34
34
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
35
35
 
@@ -197,6 +197,11 @@ sap.ui.define(["sap/ui/core/service/ServiceFactory", "sap/ui/core/service/Servic
197
197
  return "";
198
198
  }
199
199
  }
200
+ }, {
201
+ key: "getPrimaryIntent",
202
+ value: function getPrimaryIntent(sSemanticObject, mParameters) {
203
+ return Promise.resolve();
204
+ }
200
205
  }]);
201
206
 
202
207
  return ShellServiceMock;
@@ -765,6 +770,30 @@ sap.ui.define(["sap/ui/core/service/ServiceFactory", "sap/ui/core/service/Servic
765
770
  value: function getContentDensity() {
766
771
  return this.oShellContainer.getUser().getContentDensity();
767
772
  }
773
+ /**
774
+ * For a given semantic object, this method considers all actions associated with the semantic object and
775
+ * returns the one tagged as a "primaryAction". If no inbound tagged as "primaryAction" exists, then it returns
776
+ * the intent of the first inbound (after sorting has been applied) matching the action "displayFactSheet".
777
+ *
778
+ * @private
779
+ * @ui5-restricted
780
+ * @param {string} sSemanticObject Semantic object.
781
+ * @param {object} mParameters See #CrossApplicationNavigation#getLinks for description.
782
+ * @returns {Promise} Promise which will be resolved with an object containing the intent if it exists.
783
+ */
784
+
785
+ }, {
786
+ key: "getPrimaryIntent",
787
+ value: function getPrimaryIntent(sSemanticObject, mParameters) {
788
+ var _this5 = this;
789
+
790
+ return new Promise(function (resolve, reject) {
791
+ // eslint-disable-next-line promise/catch-or-return
792
+ _this5.crossAppNavService.getPrimaryIntent(sSemanticObject, mParameters).fail(function (oError) {
793
+ reject(new Error(oError + " sap.fe.core.services.NavigationServiceFactory.getPrimaryIntent"));
794
+ }).then(resolve);
795
+ });
796
+ }
768
797
  }]);
769
798
 
770
799
  return ShellServices;
@@ -816,4 +845,4 @@ sap.ui.define(["sap/ui/core/service/ServiceFactory", "sap/ui/core/service/Servic
816
845
 
817
846
  return ShellServicesFactory;
818
847
  }, false);
819
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNoZWxsU2VydmljZXNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbIlNoZWxsU2VydmljZU1vY2siLCJpbml0UHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiaW5zdGFuY2VUeXBlIiwib0FyZ3MiLCJvTmF2QXJndW1lbnRzQXJyIiwib0NvbXBvbmVudCIsImJBc3luYyIsInNBcHBTdGF0ZUtleSIsInNIYXNoRnJhZ21lbnQiLCJzSGFzaCIsIm9OZXdTaGVsbEhhc2giLCJiRGlydHkiLCJmbkRpcnR5U3RhdGVQcm92aWRlciIsImZuTmF2RmlsdGVyIiwiZm5DYWxsQmFjayIsImFIaWVyYXJjaHlMZXZlbHMiLCJzVGl0bGUiLCJkb2N1bWVudCIsImJvZHkiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsIlNlcnZpY2UiLCJ3cmFwSlF1ZXJ5UHJvbWlzZSIsImpxdWVyeVByb21pc2UiLCJyZWplY3QiLCJkb25lIiwiZmFpbCIsIlNoZWxsU2VydmljZXMiLCJvQ29udGV4dCIsImdldENvbnRleHQiLCJzY29wZU9iamVjdCIsIm9TaGVsbENvbnRhaW5lciIsInNldHRpbmdzIiwic2hlbGxDb250YWluZXIiLCJsaW5rc0NhY2hlIiwiZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZSIsIl9vQXJncyIsImFDYWNoZWRTZW1hbnRpY09iamVjdHMiLCJhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzIiwiaSIsImxlbmd0aCIsInNlbWFudGljT2JqZWN0IiwicHVzaCIsImxpbmtzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsIm9sZEFyZ3MiLCJuZXdBcmdzIiwiY2FjaGVkTGlua3MiLCJyZXNvbHZlRm4iLCJyZWplY3RGbiIsIm9Dcm9zc0FwcE5hdlNlcnZpY2VQcm9taXNlIiwiZ2V0U2VydmljZUFzeW5jIiwib1VybFBhcnNpbmdTZXJ2aWNlUHJvbWlzZSIsIm9TaGVsbE5hdmlnYXRpb25TZXJ2aWNlUHJvbWlzZSIsIm9TaGVsbFVJU2VydmljZVByb21pc2UiLCJnZXRTZXJ2aWNlIiwiYWxsIiwidGhlbiIsIm9Dcm9zc0FwcE5hdlNlcnZpY2UiLCJvVXJsUGFyc2luZ1NlcnZpY2UiLCJvU2hlbGxOYXZpZ2F0aW9uIiwib1NoZWxsVUlTZXJ2aWNlIiwiY3Jvc3NBcHBOYXZTZXJ2aWNlIiwidXJsUGFyc2luZ1NlcnZpY2UiLCJzaGVsbE5hdmlnYXRpb24iLCJzaGVsbFVJU2VydmljZSIsImNhdGNoIiwiZ2V0TGlua3MiLCJvRXJyb3IiLCJFcnJvciIsImFMaW5rcyIsIm9DYWNoZVJlc3VsdHMiLCJvU2VtYW50aWNPYmplY3RzTGlua3MiLCJ1bmRlZmluZWQiLCJhc3NpZ24iLCJhTWVyZ2VkTGlua3MiLCJqIiwiayIsInRvRXh0ZXJuYWwiLCJnZXRTdGFydHVwQXBwU3RhdGUiLCJiYWNrVG9QcmV2aW91c0FwcCIsImhyZWZGb3JFeHRlcm5hbCIsImdldEFwcFN0YXRlIiwiY3JlYXRlRW1wdHlBcHBTdGF0ZSIsImlzTmF2aWdhdGlvblN1cHBvcnRlZCIsImlzSW5pdGlhbE5hdmlnYXRpb24iLCJleHBhbmRDb21wYWN0SGFzaCIsInBhcnNlU2hlbGxIYXNoIiwic3BsaXRIYXNoIiwiY29uc3RydWN0U2hlbGxIYXNoIiwic2V0RGlydHlGbGFnIiwicmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIiLCJkZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyIiwiY3JlYXRlUmVuZGVyZXIiLCJnZXRVc2VyIiwicmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyIiwidW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIiLCJzZXRCYWNrTmF2aWdhdGlvbiIsInNldEhpZXJhcmNoeSIsInNldFRpdGxlIiwiZ2V0Q29udGVudERlbnNpdHkiLCJTaGVsbFNlcnZpY2VzRmFjdG9yeSIsIm9TZXJ2aWNlQ29udGV4dCIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsIm9TaGVsbFNlcnZpY2UiLCJnZXRTaGVsbFNlcnZpY2VzIiwiU2VydmljZUZhY3RvcnkiXSwibWFwcGluZ3MiOiI7QUFB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a0MsUUFBcEIsQ0FBNkJyRixNQUE3QjtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTs7OzthQUNDLDZCQUE0QjtBQUMzQixlQUFRLEtBQUtlLGVBQUwsQ0FBcUJpRSxPQUFyQixFQUFELENBQXdDTSxpQkFBeEMsRUFBUDtBQUNBOzs7O0lBdGQwQmpGLE87QUF5ZDVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztNQUNNa0Ysb0I7Ozs7Ozs7Ozs7Ozs7O0FBQ0w7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQyw4QkFBZUMsZUFBZixFQUFnRztBQUMvRkEsUUFBQUEsZUFBZSxDQUFDeEUsUUFBaEIsQ0FBeUJDLGNBQXpCLEdBQTBDd0UsR0FBRyxDQUFDQyxNQUFKLElBQWVELEdBQUcsQ0FBQ0MsTUFBSixDQUFXQyxTQUFwRTtBQUNBLFlBQU1DLGFBQWEsR0FBR0osZUFBZSxDQUFDeEUsUUFBaEIsQ0FBeUJDLGNBQXpCLEdBQ25CLElBQUlOLGFBQUosQ0FBa0I2RSxlQUFsQixDQURtQixHQUVuQixJQUFJMUcsZ0JBQUosQ0FBcUIwRyxlQUFyQixDQUZIO0FBR0EsZUFBT0ksYUFBYSxDQUFDN0csV0FBZCxDQUEwQjRELElBQTFCLENBQStCLFlBQU07QUFDM0M7QUFDQzZDLFVBQUFBLGVBQWUsQ0FBQzFFLFdBQWpCLENBQXFDK0UsZ0JBQXJDLEdBQXdEO0FBQUEsbUJBQU1ELGFBQU47QUFBQSxXQUF4RDs7QUFDQSxpQkFBT0EsYUFBUDtBQUNBLFNBSk0sQ0FBUDtBQUtBOzs7O0lBbEJpQ0UsYzs7U0FxQnBCUCxvQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5cbmltcG9ydCB7IFNlcnZpY2VGYWN0b3J5LCBTZXJ2aWNlLCBTZXJ2aWNlQ29udGV4dCB9IGZyb20gXCJzYXAvdWkvY29yZS9zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDb250YWluZXIsIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uLCBTaGVsbE5hdmlnYXRpb24sIFVSTFBhcnNpbmcgfSBmcm9tIFwic2FwL3VzaGVsbC9zZXJ2aWNlc1wiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInNhcC91aS9jb3JlXCI7XG5cbi8qKlxuICogQGludGVyZmFjZSBJU2hlbGxTZXJ2aWNlc1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJU2hlbGxTZXJ2aWNlcyB7XG5cdGluaXRQcm9taXNlOiBQcm9taXNlPElTaGVsbFNlcnZpY2VzPjtcblxuXHRnZXRMaW5rcyhvQXJnczogb2JqZWN0KTogUHJvbWlzZTxhbnk+O1xuXG5cdHRvRXh0ZXJuYWwob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KTogdm9pZDtcblxuXHRnZXRTdGFydHVwQXBwU3RhdGUob0FyZ3M6IG9iamVjdCk6IFByb21pc2U8YW55PjtcblxuXHRiYWNrVG9QcmV2aW91c0FwcCgpOiB2b2lkO1xuXG5cdGhyZWZGb3JFeHRlcm5hbChvQXJncz86IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCwgYkFzeW5jPzogYm9vbGVhbik6IHN0cmluZztcblxuXHRnZXRBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQsIHNBcHBTdGF0ZUtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuXG5cdGNyZWF0ZUVtcHR5QXBwU3RhdGUob0NvbXBvbmVudDogQ29tcG9uZW50KTogb2JqZWN0O1xuXG5cdGlzTmF2aWdhdGlvblN1cHBvcnRlZChvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50OiBvYmplY3QpOiBQcm9taXNlPGFueT47XG5cblx0aXNJbml0aWFsTmF2aWdhdGlvbigpOiBib29sZWFuO1xuXG5cdGV4cGFuZENvbXBhY3RIYXNoKHNIYXNoRnJhZ21lbnQ6IHN0cmluZyk6IG9iamVjdDtcblxuXHRwYXJzZVNoZWxsSGFzaChzSGFzaDogc3RyaW5nKTogb2JqZWN0O1xuXG5cdHNwbGl0SGFzaChzSGFzaDogc3RyaW5nKTogb2JqZWN0O1xuXG5cdGNvbnN0cnVjdFNoZWxsSGFzaChvTmV3U2hlbGxIYXNoOiBvYmplY3QpOiBzdHJpbmc7XG5cblx0c2V0RGlydHlGbGFnKGJEaXJ0eTogYm9vbGVhbik6IHZvaWQ7XG5cblx0cmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXI6IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRkZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyOiBGdW5jdGlvbik6IHZvaWQ7XG5cblx0Y3JlYXRlUmVuZGVyZXIoKTogb2JqZWN0O1xuXG5cdGdldFVzZXIoKTogb2JqZWN0O1xuXG5cdGhhc1VTaGVsbCgpOiBib29sZWFuO1xuXG5cdHJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlcihmbk5hdkZpbHRlcjogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdHVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbik6IHZvaWQ7XG5cblx0c2V0QmFja05hdmlnYXRpb24oZm5DYWxsQmFjaz86IEZ1bmN0aW9uKTogdm9pZDtcblxuXHRzZXRIaWVyYXJjaHkoYUhpZXJhcmNoeUxldmVsczogQXJyYXk8b2JqZWN0Pik6IHZvaWQ7XG5cblx0c2V0VGl0bGUoc1RpdGxlOiBzdHJpbmcpOiB2b2lkO1xuXG5cdGdldENvbnRlbnREZW5zaXR5KCk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBNb2NrIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTaGVsbFNlcnZpY2UgZm9yIE9wZW5GRVxuICpcbiAqIEBpbXBsZW1lbnRzIHtJU2hlbGxTZXJ2aWNlc31cbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIFNoZWxsU2VydmljZU1vY2sgZXh0ZW5kcyBTZXJ2aWNlPFNoZWxsU2VydmljZXNTZXR0aW5ncz4gaW1wbGVtZW50cyBJU2hlbGxTZXJ2aWNlcyB7XG5cdGluaXRQcm9taXNlITogUHJvbWlzZTxhbnk+O1xuXHRpbnN0YW5jZVR5cGUhOiBzdHJpbmc7XG5cblx0aW5pdCgpIHtcblx0XHR0aGlzLmluaXRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHRoaXMpO1xuXHRcdHRoaXMuaW5zdGFuY2VUeXBlID0gXCJtb2NrXCI7XG5cdH1cblxuXHRnZXRMaW5rcyhvQXJnczogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG5cdH1cblxuXHRnZXRMaW5rc1dpdGhDYWNoZShvQXJnczogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG5cdH1cblxuXHR0b0V4dGVybmFsKG9OYXZBcmd1bWVudHNBcnI6IEFycmF5PG9iamVjdD4sIG9Db21wb25lbnQ6IG9iamVjdCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGdldFN0YXJ0dXBBcHBTdGF0ZShvQXJnczogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcblx0fVxuXG5cdGJhY2tUb1ByZXZpb3VzQXBwKCkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGhyZWZGb3JFeHRlcm5hbChvQXJncz86IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCwgYkFzeW5jPzogYm9vbGVhbikge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cblx0Z2V0QXBwU3RhdGUob0NvbXBvbmVudDogb2JqZWN0LCBzQXBwU3RhdGVLZXk6IHN0cmluZykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0Y3JlYXRlRW1wdHlBcHBTdGF0ZShvQ29tcG9uZW50OiBvYmplY3QpIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGlzTmF2aWdhdGlvblN1cHBvcnRlZChvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50OiBvYmplY3QpIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGlzSW5pdGlhbE5hdmlnYXRpb24oKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0ZXhwYW5kQ29tcGFjdEhhc2goc0hhc2hGcmFnbWVudDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRwYXJzZVNoZWxsSGFzaChzSGFzaDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG5cblx0c3BsaXRIYXNoKHNIYXNoOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGNvbnN0cnVjdFNoZWxsSGFzaChvTmV3U2hlbGxIYXNoOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdHNldERpcnR5RmxhZyhiRGlydHk6IGJvb2xlYW4pIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRkZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyOiBGdW5jdGlvbikge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGNyZWF0ZVJlbmRlcmVyKCkge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdGdldFVzZXIoKSB7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG5cblx0aGFzVVNoZWxsKCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdHJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlcihmbk5hdkZpbHRlcjogRnVuY3Rpb24pOiB2b2lkIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHR1bnJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlcihmbk5hdkZpbHRlcjogRnVuY3Rpb24pOiB2b2lkIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRzZXRCYWNrTmF2aWdhdGlvbihmbkNhbGxCYWNrPzogRnVuY3Rpb24pOiB2b2lkIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRzZXRIaWVyYXJjaHkoYUhpZXJhcmNoeUxldmVsczogQXJyYXk8b2JqZWN0Pik6IHZvaWQge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdHNldFRpdGxlKHNUaXRsZTogc3RyaW5nKTogdm9pZCB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nIHtcblx0XHQvLyBpbiBjYXNlIHRoZXJlIGlzIG5vIHNoZWxsIHdlIHByb2JhYmx5IG5lZWQgdG8gbG9vayBhdCB0aGUgY2xhc3NlcyBiZWluZyBkZWZpbmVkIG9uIHRoZSBib2R5XG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2FwVWlTaXplQ296eVwiKSkge1xuXHRcdFx0cmV0dXJuIFwiY296eVwiO1xuXHRcdH0gZWxzZSBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoXCJzYXBVaVNpemVDb21wYWN0XCIpKSB7XG5cdFx0XHRyZXR1cm4gXCJjb21wYWN0XCI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBcIlwiO1xuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEB0eXBlZGVmIFNoZWxsU2VydmljZXNTZXR0aW5nc1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IHR5cGUgU2hlbGxTZXJ2aWNlc1NldHRpbmdzID0ge1xuXHRzaGVsbENvbnRhaW5lcj86IENvbnRhaW5lcjtcbn07XG5cbi8qKlxuICogV3JhcCBhIEpRdWVyeSBQcm9taXNlIHdpdGhpbiBhIG5hdGl2ZSB7UHJvbWlzZX0uXG4gKlxuICogQHRlbXBsYXRlIHtvYmplY3R9IFRcbiAqIEBwYXJhbSB7alF1ZXJ5LlByb21pc2U8VD59IGpxdWVyeVByb21pc2UgVGhlIG9yaWdpbmFsIGpxdWVyeSBwcm9taXNlXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxUPn0gQSBuYXRpdmUgcHJvbWlzZSB3cmFwcGluZyB0aGUgc2FtZSBvYmplY3RcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHdyYXBKUXVlcnlQcm9taXNlPFQ+KGpxdWVyeVByb21pc2U6IGpRdWVyeS5Qcm9taXNlKTogUHJvbWlzZTxUPiB7XG5cdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0anF1ZXJ5UHJvbWlzZS5kb25lKHJlc29sdmUgYXMgYW55KS5mYWlsKHJlamVjdCk7XG5cdH0pO1xufVxuXG4vKipcbiAqIEJhc2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNoZWxsU2VydmljZXNcbiAqXG4gKiBAaW1wbGVtZW50cyB7SVNoZWxsU2VydmljZXN9XG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VzIGV4dGVuZHMgU2VydmljZTxSZXF1aXJlZDxTaGVsbFNlcnZpY2VzU2V0dGluZ3M+PiBpbXBsZW1lbnRzIElTaGVsbFNlcnZpY2VzIHtcblx0cmVzb2x2ZUZuOiBhbnk7XG5cdHJlamVjdEZuOiBhbnk7XG5cdGluaXRQcm9taXNlITogUHJvbWlzZTxhbnk+O1xuXHQvLyAhOiBtZWFucyB0aGF0IHdlIGtub3cgaXQgd2lsbCBiZSBhc3NpZ25lZCBiZWZvcmUgdXNhZ2Vcblx0Y3Jvc3NBcHBOYXZTZXJ2aWNlITogQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb247XG5cdHVybFBhcnNpbmdTZXJ2aWNlITogVVJMUGFyc2luZztcblx0c2hlbGxOYXZpZ2F0aW9uITogU2hlbGxOYXZpZ2F0aW9uO1xuXHRvU2hlbGxDb250YWluZXIhOiBDb250YWluZXI7XG5cdHNoZWxsVUlTZXJ2aWNlITogYW55O1xuXHRpbnN0YW5jZVR5cGUhOiBzdHJpbmc7XG5cdGxpbmtzQ2FjaGUhOiBhbnk7XG5cdGZuRmluZFNlbWFudGljT2JqZWN0c0luQ2FjaGU6IGFueTtcblxuXHRpbml0KCkge1xuXHRcdGNvbnN0IG9Db250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cdFx0Y29uc3Qgb0NvbXBvbmVudCA9IG9Db250ZXh0LnNjb3BlT2JqZWN0IGFzIGFueTtcblx0XHR0aGlzLm9TaGVsbENvbnRhaW5lciA9IG9Db250ZXh0LnNldHRpbmdzLnNoZWxsQ29udGFpbmVyO1xuXHRcdHRoaXMuaW5zdGFuY2VUeXBlID0gXCJyZWFsXCI7XG5cdFx0dGhpcy5saW5rc0NhY2hlID0ge307XG5cdFx0dGhpcy5mbkZpbmRTZW1hbnRpY09iamVjdHNJbkNhY2hlID0gZnVuY3Rpb24ob0FyZ3M6IGFueSk6IG9iamVjdCB7XG5cdFx0XHRjb25zdCBfb0FyZ3M6IGFueSA9IG9BcmdzO1xuXHRcdFx0Y29uc3QgYUNhY2hlZFNlbWFudGljT2JqZWN0cyA9IFtdO1xuXHRcdFx0Y29uc3QgYU5vbkNhY2hlZFNlbWFudGljT2JqZWN0cyA9IFtdO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBfb0FyZ3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0aWYgKCEhX29BcmdzW2ldWzBdICYmICEhX29BcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0KSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMubGlua3NDYWNoZVtfb0FyZ3NbaV1bMF0uc2VtYW50aWNPYmplY3RdKSB7XG5cdFx0XHRcdFx0XHRhQ2FjaGVkU2VtYW50aWNPYmplY3RzLnB1c2godGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0ubGlua3MpO1xuXHRcdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG9BcmdzW2ldWzBdLCBcImxpbmtzXCIsIHtcblx0XHRcdFx0XHRcdFx0dmFsdWU6IHRoaXMubGlua3NDYWNoZVtfb0FyZ3NbaV1bMF0uc2VtYW50aWNPYmplY3RdLmxpbmtzXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0YU5vbkNhY2hlZFNlbWFudGljT2JqZWN0cy5wdXNoKF9vQXJnc1tpXSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4geyBvbGRBcmdzOiBvQXJncywgbmV3QXJnczogYU5vbkNhY2hlZFNlbWFudGljT2JqZWN0cywgY2FjaGVkTGlua3M6IGFDYWNoZWRTZW1hbnRpY09iamVjdHMgfTtcblx0XHR9O1xuXHRcdHRoaXMuaW5pdFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHR0aGlzLnJlc29sdmVGbiA9IHJlc29sdmU7XG5cdFx0XHR0aGlzLnJlamVjdEZuID0gcmVqZWN0O1xuXHRcdH0pO1xuXHRcdGNvbnN0IG9Dcm9zc0FwcE5hdlNlcnZpY2VQcm9taXNlID0gdGhpcy5vU2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cIik7XG5cdFx0Y29uc3Qgb1VybFBhcnNpbmdTZXJ2aWNlUHJvbWlzZSA9IHRoaXMub1NoZWxsQ29udGFpbmVyLmdldFNlcnZpY2VBc3luYyhcIlVSTFBhcnNpbmdcIik7XG5cdFx0Y29uc3Qgb1NoZWxsTmF2aWdhdGlvblNlcnZpY2VQcm9taXNlID0gdGhpcy5vU2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiU2hlbGxOYXZpZ2F0aW9uXCIpO1xuXHRcdGNvbnN0IG9TaGVsbFVJU2VydmljZVByb21pc2UgPSBvQ29tcG9uZW50LmdldFNlcnZpY2UoXCJTaGVsbFVJU2VydmljZVwiKTtcblx0XHRQcm9taXNlLmFsbChbb0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UsIG9VcmxQYXJzaW5nU2VydmljZVByb21pc2UsIG9TaGVsbE5hdmlnYXRpb25TZXJ2aWNlUHJvbWlzZSwgb1NoZWxsVUlTZXJ2aWNlUHJvbWlzZV0pXG5cdFx0XHQudGhlbigoW29Dcm9zc0FwcE5hdlNlcnZpY2UsIG9VcmxQYXJzaW5nU2VydmljZSwgb1NoZWxsTmF2aWdhdGlvbiwgb1NoZWxsVUlTZXJ2aWNlXSkgPT4ge1xuXHRcdFx0XHR0aGlzLmNyb3NzQXBwTmF2U2VydmljZSA9IG9Dcm9zc0FwcE5hdlNlcnZpY2U7XG5cdFx0XHRcdHRoaXMudXJsUGFyc2luZ1NlcnZpY2UgPSBvVXJsUGFyc2luZ1NlcnZpY2U7XG5cdFx0XHRcdHRoaXMuc2hlbGxOYXZpZ2F0aW9uID0gb1NoZWxsTmF2aWdhdGlvbjtcblx0XHRcdFx0dGhpcy5zaGVsbFVJU2VydmljZSA9IG9TaGVsbFVJU2VydmljZTtcblx0XHRcdFx0dGhpcy5yZXNvbHZlRm4oKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2godGhpcy5yZWplY3RGbik7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb25cblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gdGFyZ2V0IGxpbmtzIGFycmF5XG5cdCAqL1xuXHRnZXRMaW5rcyhvQXJnczogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2Vcblx0XHRcdFx0LmdldExpbmtzKG9BcmdzKVxuXHRcdFx0XHQuZmFpbCgob0Vycm9yOiBhbnkpID0+IHtcblx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKG9FcnJvciArIFwiIHNhcC5mZS5jb3JlLnNlcnZpY2VzLk5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeS5nZXRMaW5rc1wiKSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKHJlc29sdmUpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyB0aGUgdGFyZ2V0IGxpbmtzIGNvbmZpZ3VyZWQgZm9yIGEgZ2l2ZW4gc2VtYW50aWMgb2JqZWN0ICYgYWN0aW9uIGluIGNhY2hlXG5cdCAqIFdpbGwgcmV0cmlldmUgdGhlIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uXG5cdCAqIHNlcnZpY2UgcmVmZXJlbmNlIGNhbGwgdGhlIGdldExpbmtzIG1ldGhvZC4gSW4gY2FzZSBzZXJ2aWNlIGlzIG5vdCBhdmFpbGFibGUgb3IgYW55IGV4Y2VwdGlvblxuXHQgKiBtZXRob2QgdGhyb3dzIGV4Y2VwdGlvbiBlcnJvciBpbiBjb25zb2xlLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHtvYmplY3R9IG9BcmdzIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmdldExpbmtzIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyB7UHJvbWlzZX0gUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHRhcmdldCBsaW5rcyBhcnJheVxuXHQgKi9cblx0Z2V0TGlua3NXaXRoQ2FjaGUob0FyZ3M6IG9iamVjdCkge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9jYXRjaC1vci1yZXR1cm5cblx0XHRcdGlmICgob0FyZ3MgYXMgT2JqZWN0W10pLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRyZXNvbHZlKFtdKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGxldCBhTGlua3M7XG5cdFx0XHRcdGNvbnN0IG9DYWNoZVJlc3VsdHMgPSB0aGlzLmZuRmluZFNlbWFudGljT2JqZWN0c0luQ2FjaGUob0FyZ3MpO1xuXG5cdFx0XHRcdGlmIChvQ2FjaGVSZXN1bHRzLm5ld0FyZ3MubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdFx0cmVzb2x2ZShvQ2FjaGVSZXN1bHRzLmNhY2hlZExpbmtzKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9jYXRjaC1vci1yZXR1cm5cblx0XHRcdFx0XHR0aGlzLmNyb3NzQXBwTmF2U2VydmljZVxuXHRcdFx0XHRcdFx0LmdldExpbmtzKG9DYWNoZVJlc3VsdHMubmV3QXJncylcblx0XHRcdFx0XHRcdC5mYWlsKChvRXJyb3I6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKG9FcnJvciArIFwiIHNhcC5mZS5jb3JlLnNlcnZpY2VzLk5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeS5nZXRMaW5rc1dpdGhDYWNoZVwiKSk7XG5cdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0LnRoZW4oKGFMaW5rczogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmIChhTGlua3MubGVuZ3RoICE9PSAwKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgb1NlbWFudGljT2JqZWN0c0xpbmtzOiBhbnkgPSB7fTtcblxuXHRcdFx0XHRcdFx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUxpbmtzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoYUxpbmtzW2ldLmxlbmd0aCA+IDAgJiYgb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2ldWzBdLmxpbmtzID09PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0b1NlbWFudGljT2JqZWN0c0xpbmtzW29DYWNoZVJlc3VsdHMubmV3QXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0gPSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bGlua3M6IGFMaW5rc1tpXVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmxpbmtzQ2FjaGUgPSBPYmplY3QuYXNzaWduKHRoaXMubGlua3NDYWNoZSwgb1NlbWFudGljT2JqZWN0c0xpbmtzKTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRpZiAob0NhY2hlUmVzdWx0cy5jYWNoZWRMaW5rcy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGFMaW5rcyk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgYU1lcmdlZExpbmtzID0gW107XG5cdFx0XHRcdFx0XHRcdFx0bGV0IGogPSAwO1xuXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgayA9IDA7IGsgPCBvQ2FjaGVSZXN1bHRzLm9sZEFyZ3MubGVuZ3RoOyBrKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChqIDwgYUxpbmtzLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YUxpbmtzW2pdLmxlbmd0aCA+IDAgJiZcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvQ2FjaGVSZXN1bHRzLm9sZEFyZ3Nba11bMF0uc2VtYW50aWNPYmplY3QgPT09IG9DYWNoZVJlc3VsdHMubmV3QXJnc1tqXVswXS5zZW1hbnRpY09iamVjdFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhTWVyZ2VkTGlua3MucHVzaChhTGlua3Nbal0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGorKztcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhTWVyZ2VkTGlua3MucHVzaChvQ2FjaGVSZXN1bHRzLm9sZEFyZ3Nba11bMF0ubGlua3MpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRhTWVyZ2VkTGlua3MucHVzaChvQ2FjaGVSZXN1bHRzLm9sZEFyZ3Nba11bMF0ubGlua3MpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGFNZXJnZWRMaW5rcyk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgU2hlbGxDb250YWluZXIuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBzYXAudXNoZWxsLmNvbnRhaW5lclxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fSBPYmplY3Qgd2l0aCBwcmVkZWZpbmVkIHNoZWxsQ29udGFpbmVyIG1ldGhvZHNcblx0ICovXG5cdGdldFNoZWxsQ29udGFpbmVyKCkge1xuXHRcdHJldHVybiB0aGlzLm9TaGVsbENvbnRhaW5lcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgdG9FeHRlcm5hbCBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIE5hdmlnYXRpb24gQXJndW1lbnRzIGFuZCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHtBcnJheX0gb05hdkFyZ3VtZW50c0FyciBBbmRcblx0ICogQHBhcmFtIHtvYmplY3R9IG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+dG9FeHRlcm5hbCBhcmd1bWVudHNcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqL1xuXHR0b0V4dGVybmFsKG9OYXZBcmd1bWVudHNBcnI6IEFycmF5PG9iamVjdD4sIG9Db21wb25lbnQ6IG9iamVjdCk6IHZvaWQge1xuXHRcdHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLnRvRXh0ZXJuYWwob05hdkFyZ3VtZW50c0Fyciwgb0NvbXBvbmVudCk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgc3RhcnR1cEFwcFN0YXRlXG5cdCAqIFdpbGwgY2hlY2sgdGhlIGV4aXN0YW5jZSBvZiB0aGUgU2hlbGxDb250YWluZXIgYW5kIHJldHJpZXZlIHRoZSBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblxuXHQgKiBzZXJ2aWNlIHJlZmVyZW5jZSBjYWxsIHRoZSBnZXRTdGFydHVwQXBwU3RhdGUgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0U3RhcnR1cEFwcFN0YXRlIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyB7UHJvbWlzZX0gUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIE9iamVjdFxuXHQgKi9cblx0Z2V0U3RhcnR1cEFwcFN0YXRlKG9BcmdzOiBDb21wb25lbnQpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gSlF1ZXJ5IFByb21pc2UgYmVoYXZlcyBkaWZmZXJlbnRseVxuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHR0aGlzLmNyb3NzQXBwTmF2U2VydmljZVxuXHRcdFx0XHQuZ2V0U3RhcnR1cEFwcFN0YXRlKG9BcmdzKVxuXHRcdFx0XHQuZmFpbCgob0Vycm9yOiBhbnkpID0+IHtcblx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKG9FcnJvciArIFwiIHNhcC5mZS5jb3JlLnNlcnZpY2VzLk5hdmlnYXRpb25TZXJ2aWNlRmFjdG9yeS5nZXRTdGFydHVwQXBwU3RhdGVcIikpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQudGhlbihyZXNvbHZlKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgYmFja1RvUHJldmlvdXNBcHAgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHt2b2lkfVxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdGJhY2tUb1ByZXZpb3VzQXBwKCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5iYWNrVG9QcmV2aW91c0FwcCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBocmVmRm9yRXh0ZXJuYWwgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogQHBhcmFtIHtvYmplY3R9IG9Db21wb25lbnQgVGhlIGFwcENvbXBvbmVudFxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJBc3luYyBXaGV0aGVyIHRoaXMgY2FsbCBzaG91bGQgYmUgYXN5bmMgb3Igbm90XG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmhyZWZGb3JFeHRlcm5hbCBhcmd1bWVudHNcblx0ICogQHJldHVybnMge3N0cmluZ30gUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIHN0cmluZ1xuXHQgKi9cblx0aHJlZkZvckV4dGVybmFsKG9BcmdzOiBvYmplY3QsIG9Db21wb25lbnQ/OiBvYmplY3QsIGJBc3luYz86IGJvb2xlYW4pIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuaHJlZkZvckV4dGVybmFsKG9BcmdzLCBvQ29tcG9uZW50IGFzIG9iamVjdCwgISFiQXN5bmMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBnZXRBcHBTdGF0ZSBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIG9Db21wb25lbnQgYW5kIG9BcHBTdGF0ZUtleS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvQ29tcG9uZW50XG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzQXBwU3RhdGVLZXkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0QXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRnZXRBcHBTdGF0ZShvQ29tcG9uZW50OiBDb21wb25lbnQsIHNBcHBTdGF0ZUtleTogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHdyYXBKUXVlcnlQcm9taXNlKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmdldEFwcFN0YXRlKG9Db21wb25lbnQsIHNBcHBTdGF0ZUtleSkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBjcmVhdGVFbXB0eUFwcFN0YXRlIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggb0NvbXBvbmVudC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvQ29tcG9uZW50IENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb249PmNyZWF0ZUVtcHR5QXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRjcmVhdGVFbXB0eUFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5jcmVhdGVFbXB0eUFwcFN0YXRlKG9Db21wb25lbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBpc05hdmlnYXRpb25TdXBwb3J0ZWQgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2Ugd2l0aCBOYXZpZ2F0aW9uIEFyZ3VtZW50cyBhbmQgb0NvbXBvbmVudC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7QXJyYXl9IG9OYXZBcmd1bWVudHNBcnJcblx0ICogQHBhcmFtIHtvYmplY3R9IG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+aXNOYXZpZ2F0aW9uU3VwcG9ydGVkIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyB7UHJvbWlzZX0gUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIG9iamVjdFxuXHQgKi9cblx0aXNOYXZpZ2F0aW9uU3VwcG9ydGVkKG9OYXZBcmd1bWVudHNBcnI6IEFycmF5PG9iamVjdD4sIG9Db21wb25lbnQ6IG9iamVjdCkge1xuXHRcdHJldHVybiB3cmFwSlF1ZXJ5UHJvbWlzZSh0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5pc05hdmlnYXRpb25TdXBwb3J0ZWQob05hdkFyZ3VtZW50c0Fyciwgb0NvbXBvbmVudCkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBpc0luaXRpYWxOYXZpZ2F0aW9uIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHJldHVybnMge1Byb21pc2V9IFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBib29sZWFuXG5cdCAqL1xuXHRpc0luaXRpYWxOYXZpZ2F0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5pc0luaXRpYWxOYXZpZ2F0aW9uKCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGV4cGFuZENvbXBhY3RIYXNoIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc0hhc2hGcmFnbWVudCBBbiAoaW50ZXJuYWwgZm9ybWF0KSBzaGVsbCBoYXNoXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBBIHByb21pc2UgdGhlIHN1Y2Nlc3MgaGFuZGxlciBvZiB0aGUgcmVzb2x2ZSBwcm9taXNlIGdldCBhbiBleHBhbmRlZCBzaGVsbCBoYXNoIGFzIGZpcnN0IGFyZ3VtZW50XG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0ZXhwYW5kQ29tcGFjdEhhc2goc0hhc2hGcmFnbWVudDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmV4cGFuZENvbXBhY3RIYXNoKHNIYXNoRnJhZ21lbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBwYXJzZVNoZWxsSGFzaCBtZXRob2Qgb2YgVVJMUGFyc2luZyBzZXJ2aWNlIHdpdGggZ2l2ZW4gc0hhc2guXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc0hhc2ggQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5VUkxQYXJzaW5nPT5wYXJzZVNoZWxsSGFzaCBhcmd1bWVudHNcblx0ICogQHJldHVybnMge29iamVjdH1cblx0ICovXG5cdHBhcnNlU2hlbGxIYXNoKHNIYXNoOiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gdGhpcy51cmxQYXJzaW5nU2VydmljZS5wYXJzZVNoZWxsSGFzaChzSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNwbGl0SGFzaCBtZXRob2Qgb2YgVVJMUGFyc2luZyBzZXJ2aWNlIHdpdGggZ2l2ZW4gc0hhc2guXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc0hhc2ggQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5VUkxQYXJzaW5nPT5zcGxpdEhhc2ggYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRzcGxpdEhhc2goc0hhc2g6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLnVybFBhcnNpbmdTZXJ2aWNlLnNwbGl0SGFzaChzSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNvbnN0cnVjdFNoZWxsSGFzaCBtZXRob2Qgb2YgVVJMUGFyc2luZyBzZXJ2aWNlIHdpdGggZ2l2ZW4gc0hhc2guXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge29iamVjdH0gb05ld1NoZWxsSGFzaCBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLlVSTFBhcnNpbmc9PmNvbnN0cnVjdFNoZWxsSGFzaCBhcmd1bWVudHNcblx0ICogQHJldHVybnMge3N0cmluZ30gU2hlbGwgSGFzaCBzdHJpbmdcblx0ICovXG5cdGNvbnN0cnVjdFNoZWxsSGFzaChvTmV3U2hlbGxIYXNoOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gdGhpcy51cmxQYXJzaW5nU2VydmljZS5jb25zdHJ1Y3RTaGVsbEhhc2gob05ld1NoZWxsSGFzaCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldERpcnR5RmxhZyBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYkRpcnR5IENoZWNrIHRoZSBkZWZpbml0aW9uIG9mIHNhcC51c2hlbGwuQ29udGFpbmVyLnNldERpcnR5RmxhZyBhcmd1bWVudHNcblx0ICovXG5cdHNldERpcnR5RmxhZyhiRGlydHk6IGJvb2xlYW4pIHtcblx0XHR0aGlzLm9TaGVsbENvbnRhaW5lci5zZXREaXJ0eUZsYWcoYkRpcnR5KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgbWV0aG9kIHdpdGggZ2l2ZW4gZGlydHkgc3RhdGUgcHJvdmlkZXIgY2FsbGJhY2sgbWV0aG9kLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gZm5EaXJ0eVN0YXRlUHJvdmlkZXIgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIucmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgYXJndW1lbnRzXG5cdCAqL1xuXHRyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pIHtcblx0XHR0aGlzLm9TaGVsbENvbnRhaW5lci5yZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcik7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIgbWV0aG9kIHdpdGggZ2l2ZW4gZGlydHkgc3RhdGUgcHJvdmlkZXIgY2FsbGJhY2sgbWV0aG9kLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gZm5EaXJ0eVN0YXRlUHJvdmlkZXIgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIuZGVyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciBhcmd1bWVudHNcblx0ICovXG5cdGRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXI6IEZ1bmN0aW9uKSB7XG5cdFx0dGhpcy5vU2hlbGxDb250YWluZXIuZGVyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcik7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNyZWF0ZVJlbmRlcmVyIG1ldGhvZCBvZiB1c2hlbGwgY29udGFpbmVyLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHJldHVybnMge29iamVjdH0gUmV0dXJucyByZW5kZXJlciBvYmplY3Rcblx0ICovXG5cdGNyZWF0ZVJlbmRlcmVyKCkge1xuXHRcdHJldHVybiB0aGlzLm9TaGVsbENvbnRhaW5lci5jcmVhdGVSZW5kZXJlcigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBnZXRVc2VyIG1ldGhvZCBvZiB1c2hlbGwgY29udGFpbmVyLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHJldHVybnMge29iamVjdH0gUmV0dXJucyBVc2VyIG9iamVjdFxuXHQgKi9cblx0Z2V0VXNlcigpIHtcblx0XHRyZXR1cm4gdGhpcy5vU2hlbGxDb250YWluZXIuZ2V0VXNlcigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2hlY2sgaWYgdXNoZWxsIGNvbnRhaW5lciBpcyBhdmFpbGFibGUgb3Igbm90LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgdHJ1ZVxuXHQgKi9cblx0aGFzVVNoZWxsKCkge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gZm5OYXZGaWx0ZXIgVGhlIGZpbHRlciBmdW5jdGlvbiB0byByZWdpc3RlclxuXHQgKiBAcmV0dXJucyB7dm9pZH1cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKSB7XG5cdFx0dGhpcy5zaGVsbE5hdmlnYXRpb24ucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgdW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIgbWV0aG9kIG9mIHNoZWxsTmF2aWdhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gZm5OYXZGaWx0ZXIgVGhlIGZpbHRlciBmdW5jdGlvbiB0byB1bnJlZ2lzdGVyXG5cdCAqIEByZXR1cm5zIHt2b2lkfVxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyOiBGdW5jdGlvbikge1xuXHRcdHRoaXMuc2hlbGxOYXZpZ2F0aW9uLnVucmVnaXN0ZXJOYXZpZ2F0aW9uRmlsdGVyKGZuTmF2RmlsdGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgc2V0QmFja05hdmlnYXRpb24gbWV0aG9kIG9mIFNoZWxsVUlTZXJ2aWNlXG5cdCAqIHRoYXQgZGlzcGxheXMgdGhlIGJhY2sgYnV0dG9uIGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IFtmbkNhbGxCYWNrXSBBIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZCBpbiB0aGUgVUkuXG5cdCAqIEByZXR1cm5zIHt2b2lkfVxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHNldEJhY2tOYXZpZ2F0aW9uKGZuQ2FsbEJhY2s/OiBGdW5jdGlvbik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0QmFja05hdmlnYXRpb24oZm5DYWxsQmFjayk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldEhpZXJhcmNoeSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gaGllcmFyY2h5IGluIHRoZSBzaGVsbCBoZWFkZXIuXG5cdCAqXG5cdCAqIEBwYXJhbSB7b2JqZWN0W119IFthSGllcmFyY2h5TGV2ZWxzXSBBbiBhcnJheSByZXByZXNlbnRpbmcgaGllcmFyY2hpZXMgb2YgdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgYXBwLlxuXHQgKiBAcmV0dXJucyB7dm9pZH1cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRIaWVyYXJjaHkoYUhpZXJhcmNoeUxldmVsczogQXJyYXk8b2JqZWN0Pik6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0SGllcmFyY2h5KGFIaWVyYXJjaHlMZXZlbHMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzZXRUaXRsZSBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgZ2l2ZW4gdGl0bGUgaW4gdGhlIHNoZWxsIGhlYWRlci5cblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmd9IFtzVGl0bGVdIFRoZSBuZXcgdGl0bGUuIFRoZSBkZWZhdWx0IHRpdGxlIGlzIHNldCBpZiB0aGlzIGFyZ3VtZW50IGlzIG5vdCBnaXZlbi5cblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0c2V0VGl0bGUoc1RpdGxlOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLnNoZWxsVUlTZXJ2aWNlLnNldFRpdGxlKHNUaXRsZSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSBjdXJyZW50bHkgZGVmaW5lZCBjb250ZW50IGRlbnNpdHkuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb250ZW50IGRlbnNpdHkgdmFsdWVcblx0ICovXG5cdGdldENvbnRlbnREZW5zaXR5KCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuICh0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRVc2VyKCkgYXMgYW55KS5nZXRDb250ZW50RGVuc2l0eSgpO1xuXHR9XG59XG5cbi8qKlxuICogU2VydmljZSBGYWN0b3J5IGZvciB0aGUgU2hlbGxTZXJ2aWNlc1xuICpcbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIFNoZWxsU2VydmljZXNGYWN0b3J5IGV4dGVuZHMgU2VydmljZUZhY3Rvcnk8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPiB7XG5cdC8qKlxuXHQgKiBDcmVhdGVzIGVpdGhlciBhIHN0YW5kYXJkIG9yIGEgbW9jayBTaGVsbCBzZXJ2aWNlIGRlcGVuZGluZyBvbiB0aGUgY29uZmlndXJhdGlvbi5cblx0ICpcblx0ICogQHBhcmFtIHtTZXJ2aWNlQ29udGV4dDxTaGVsbFNlcnZpY2VzU2V0dGluZ3M+fSBvU2VydmljZUNvbnRleHQgVGhlIHNoZWxsc2VydmljZSBjb250ZXh0XG5cdCAqIEByZXR1cm5zIHtQcm9taXNlPElTaGVsbFNlcnZpY2VzPn0gQSBwcm9taXNlIGZvciBhIHNoZWxsIHNlcnZpY2UgaW1wbGVtZW50YXRpb25cblx0ICogQHNlZSBTZXJ2aWNlRmFjdG9yeSNjcmVhdGVJbnN0YW5jZVxuXHQgKi9cblx0Y3JlYXRlSW5zdGFuY2Uob1NlcnZpY2VDb250ZXh0OiBTZXJ2aWNlQ29udGV4dDxTaGVsbFNlcnZpY2VzU2V0dGluZ3M+KTogUHJvbWlzZTxJU2hlbGxTZXJ2aWNlcz4ge1xuXHRcdG9TZXJ2aWNlQ29udGV4dC5zZXR0aW5ncy5zaGVsbENvbnRhaW5lciA9IHNhcC51c2hlbGwgJiYgKHNhcC51c2hlbGwuQ29udGFpbmVyIGFzIENvbnRhaW5lcik7XG5cdFx0Y29uc3Qgb1NoZWxsU2VydmljZSA9IG9TZXJ2aWNlQ29udGV4dC5zZXR0aW5ncy5zaGVsbENvbnRhaW5lclxuXHRcdFx0PyBuZXcgU2hlbGxTZXJ2aWNlcyhvU2VydmljZUNvbnRleHQgYXMgU2VydmljZUNvbnRleHQ8UmVxdWlyZWQ8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPj4pXG5cdFx0XHQ6IG5ldyBTaGVsbFNlcnZpY2VNb2NrKG9TZXJ2aWNlQ29udGV4dCk7XG5cdFx0cmV0dXJuIG9TaGVsbFNlcnZpY2UuaW5pdFByb21pc2UudGhlbigoKSA9PiB7XG5cdFx0XHQvLyBFbnJpY2ggdGhlIGFwcENvbXBvbmVudCB3aXRoIHRoaXMgbWV0aG9kXG5cdFx0XHQob1NlcnZpY2VDb250ZXh0LnNjb3BlT2JqZWN0IGFzIGFueSkuZ2V0U2hlbGxTZXJ2aWNlcyA9ICgpID0+IG9TaGVsbFNlcnZpY2U7XG5cdFx0XHRyZXR1cm4gb1NoZWxsU2VydmljZTtcblx0XHR9KTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBTaGVsbFNlcnZpY2VzRmFjdG9yeTtcbiJdfQ==
848
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNoZWxsU2VydmljZXNGYWN0b3J5LnRzIl0sIm5hbWVzIjpbIlNoZWxsU2VydmljZU1vY2siLCJpbml0UHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiaW5zdGFuY2VUeXBlIiwib0FyZ3MiLCJvTmF2QXJndW1lbnRzQXJyIiwib0NvbXBvbmVudCIsImJBc3luYyIsInNBcHBTdGF0ZUtleSIsInNIYXNoRnJhZ21lbnQiLCJzSGFzaCIsIm9OZXdTaGVsbEhhc2giLCJiRGlydHkiLCJmbkRpcnR5U3RhdGVQcm92aWRlciIsImZuTmF2RmlsdGVyIiwiZm5DYWxsQmFjayIsImFIaWVyYXJjaHlMZXZlbHMiLCJzVGl0bGUiLCJkb2N1bWVudCIsImJvZHkiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsInNTZW1hbnRpY09iamVjdCIsIm1QYXJhbWV0ZXJzIiwiU2VydmljZSIsIndyYXBKUXVlcnlQcm9taXNlIiwianF1ZXJ5UHJvbWlzZSIsInJlamVjdCIsImRvbmUiLCJmYWlsIiwiU2hlbGxTZXJ2aWNlcyIsIm9Db250ZXh0IiwiZ2V0Q29udGV4dCIsInNjb3BlT2JqZWN0Iiwib1NoZWxsQ29udGFpbmVyIiwic2V0dGluZ3MiLCJzaGVsbENvbnRhaW5lciIsImxpbmtzQ2FjaGUiLCJmbkZpbmRTZW1hbnRpY09iamVjdHNJbkNhY2hlIiwiX29BcmdzIiwiYUNhY2hlZFNlbWFudGljT2JqZWN0cyIsImFOb25DYWNoZWRTZW1hbnRpY09iamVjdHMiLCJpIiwibGVuZ3RoIiwic2VtYW50aWNPYmplY3QiLCJwdXNoIiwibGlua3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwib2xkQXJncyIsIm5ld0FyZ3MiLCJjYWNoZWRMaW5rcyIsInJlc29sdmVGbiIsInJlamVjdEZuIiwib0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UiLCJnZXRTZXJ2aWNlQXN5bmMiLCJvVXJsUGFyc2luZ1NlcnZpY2VQcm9taXNlIiwib1NoZWxsTmF2aWdhdGlvblNlcnZpY2VQcm9taXNlIiwib1NoZWxsVUlTZXJ2aWNlUHJvbWlzZSIsImdldFNlcnZpY2UiLCJhbGwiLCJ0aGVuIiwib0Nyb3NzQXBwTmF2U2VydmljZSIsIm9VcmxQYXJzaW5nU2VydmljZSIsIm9TaGVsbE5hdmlnYXRpb24iLCJvU2hlbGxVSVNlcnZpY2UiLCJjcm9zc0FwcE5hdlNlcnZpY2UiLCJ1cmxQYXJzaW5nU2VydmljZSIsInNoZWxsTmF2aWdhdGlvbiIsInNoZWxsVUlTZXJ2aWNlIiwiY2F0Y2giLCJnZXRMaW5rcyIsIm9FcnJvciIsIkVycm9yIiwiYUxpbmtzIiwib0NhY2hlUmVzdWx0cyIsIm9TZW1hbnRpY09iamVjdHNMaW5rcyIsInVuZGVmaW5lZCIsImFzc2lnbiIsImFNZXJnZWRMaW5rcyIsImoiLCJrIiwidG9FeHRlcm5hbCIsImdldFN0YXJ0dXBBcHBTdGF0ZSIsImJhY2tUb1ByZXZpb3VzQXBwIiwiaHJlZkZvckV4dGVybmFsIiwiZ2V0QXBwU3RhdGUiLCJjcmVhdGVFbXB0eUFwcFN0YXRlIiwiaXNOYXZpZ2F0aW9uU3VwcG9ydGVkIiwiaXNJbml0aWFsTmF2aWdhdGlvbiIsImV4cGFuZENvbXBhY3RIYXNoIiwicGFyc2VTaGVsbEhhc2giLCJzcGxpdEhhc2giLCJjb25zdHJ1Y3RTaGVsbEhhc2giLCJzZXREaXJ0eUZsYWciLCJyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciIsImRlcmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIiLCJjcmVhdGVSZW5kZXJlciIsImdldFVzZXIiLCJyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIiLCJ1bnJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlciIsInNldEJhY2tOYXZpZ2F0aW9uIiwic2V0SGllcmFyY2h5Iiwic2V0VGl0bGUiLCJnZXRDb250ZW50RGVuc2l0eSIsImdldFByaW1hcnlJbnRlbnQiLCJTaGVsbFNlcnZpY2VzRmFjdG9yeSIsIm9TZXJ2aWNlQ29udGV4dCIsInNhcCIsInVzaGVsbCIsIkNvbnRhaW5lciIsIm9TaGVsbFNlcnZpY2UiLCJn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QUdKLGVBQWUsQ0FBQ3pFLFFBQWhCLENBQXlCQyxjQUF6QixHQUNuQixJQUFJTixhQUFKLENBQWtCOEUsZUFBbEIsQ0FEbUIsR0FFbkIsSUFBSTdHLGdCQUFKLENBQXFCNkcsZUFBckIsQ0FGSDtBQUdBLGVBQU9JLGFBQWEsQ0FBQ2hILFdBQWQsQ0FBMEI4RCxJQUExQixDQUErQixZQUFNO0FBQzNDO0FBQ0M4QyxVQUFBQSxlQUFlLENBQUMzRSxXQUFqQixDQUFxQ2dGLGdCQUFyQyxHQUF3RDtBQUFBLG1CQUFNRCxhQUFOO0FBQUEsV0FBeEQ7O0FBQ0EsaUJBQU9BLGFBQVA7QUFDQSxTQUpNLENBQVA7QUFLQTs7OztJQWxCaUNFLGM7O1NBcUJwQlAsb0IiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuXG5pbXBvcnQgeyBTZXJ2aWNlRmFjdG9yeSwgU2VydmljZSwgU2VydmljZUNvbnRleHQgfSBmcm9tIFwic2FwL3VpL2NvcmUvc2VydmljZVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyLCBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiwgU2hlbGxOYXZpZ2F0aW9uLCBVUkxQYXJzaW5nIH0gZnJvbSBcInNhcC91c2hlbGwvc2VydmljZXNcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJzYXAvdWkvY29yZVwiO1xuXG4vKipcbiAqIEBpbnRlcmZhY2UgSVNoZWxsU2VydmljZXNcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVNoZWxsU2VydmljZXMge1xuXHRpbml0UHJvbWlzZTogUHJvbWlzZTxJU2hlbGxTZXJ2aWNlcz47XG5cblx0Z2V0TGlua3Mob0FyZ3M6IG9iamVjdCk6IFByb21pc2U8YW55PjtcblxuXHR0b0V4dGVybmFsKG9OYXZBcmd1bWVudHNBcnI6IEFycmF5PG9iamVjdD4sIG9Db21wb25lbnQ6IG9iamVjdCk6IHZvaWQ7XG5cblx0Z2V0U3RhcnR1cEFwcFN0YXRlKG9BcmdzOiBvYmplY3QpOiBQcm9taXNlPGFueT47XG5cblx0YmFja1RvUHJldmlvdXNBcHAoKTogdm9pZDtcblxuXHRocmVmRm9yRXh0ZXJuYWwob0FyZ3M/OiBvYmplY3QsIG9Db21wb25lbnQ/OiBvYmplY3QsIGJBc3luYz86IGJvb2xlYW4pOiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XG5cblx0Z2V0QXBwU3RhdGUob0NvbXBvbmVudDogQ29tcG9uZW50LCBzQXBwU3RhdGVLZXk6IHN0cmluZyk6IFByb21pc2U8YW55PjtcblxuXHRjcmVhdGVFbXB0eUFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCk6IG9iamVjdDtcblxuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KTogUHJvbWlzZTxhbnk+O1xuXG5cdGlzSW5pdGlhbE5hdmlnYXRpb24oKTogYm9vbGVhbjtcblxuXHRleHBhbmRDb21wYWN0SGFzaChzSGFzaEZyYWdtZW50OiBzdHJpbmcpOiBvYmplY3Q7XG5cblx0cGFyc2VTaGVsbEhhc2goc0hhc2g6IHN0cmluZyk6IG9iamVjdDtcblxuXHRzcGxpdEhhc2goc0hhc2g6IHN0cmluZyk6IG9iamVjdDtcblxuXHRjb25zdHJ1Y3RTaGVsbEhhc2gob05ld1NoZWxsSGFzaDogb2JqZWN0KTogc3RyaW5nO1xuXG5cdHNldERpcnR5RmxhZyhiRGlydHk6IGJvb2xlYW4pOiB2b2lkO1xuXG5cdHJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyOiBGdW5jdGlvbik6IHZvaWQ7XG5cblx0ZGVyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdGNyZWF0ZVJlbmRlcmVyKCk6IG9iamVjdDtcblxuXHRnZXRVc2VyKCk6IG9iamVjdDtcblxuXHRoYXNVU2hlbGwoKTogYm9vbGVhbjtcblxuXHRyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKTogdm9pZDtcblxuXHR1bnJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlcihmbk5hdkZpbHRlcjogRnVuY3Rpb24pOiB2b2lkO1xuXG5cdHNldEJhY2tOYXZpZ2F0aW9uKGZuQ2FsbEJhY2s/OiBGdW5jdGlvbik6IHZvaWQ7XG5cblx0c2V0SGllcmFyY2h5KGFIaWVyYXJjaHlMZXZlbHM6IEFycmF5PG9iamVjdD4pOiB2b2lkO1xuXG5cdHNldFRpdGxlKHNUaXRsZTogc3RyaW5nKTogdm9pZDtcblxuXHRnZXRDb250ZW50RGVuc2l0eSgpOiBzdHJpbmc7XG5cblx0Z2V0UHJpbWFyeUludGVudChzU2VtYW50aWNPYmplY3Q6IHN0cmluZywgbVBhcmFtZXRlcnM/OiBvYmplY3QpOiBQcm9taXNlPGFueT47XG59XG5cbi8qKlxuICogTW9jayBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2hlbGxTZXJ2aWNlIGZvciBPcGVuRkVcbiAqXG4gKiBAaW1wbGVtZW50cyB7SVNoZWxsU2VydmljZXN9XG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VNb2NrIGV4dGVuZHMgU2VydmljZTxTaGVsbFNlcnZpY2VzU2V0dGluZ3M+IGltcGxlbWVudHMgSVNoZWxsU2VydmljZXMge1xuXHRpbml0UHJvbWlzZSE6IFByb21pc2U8YW55Pjtcblx0aW5zdGFuY2VUeXBlITogc3RyaW5nO1xuXG5cdGluaXQoKSB7XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcblx0XHR0aGlzLmluc3RhbmNlVHlwZSA9IFwibW9ja1wiO1xuXHR9XG5cblx0Z2V0TGlua3Mob0FyZ3M6IG9iamVjdCkge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuXHR9XG5cblx0Z2V0TGlua3NXaXRoQ2FjaGUob0FyZ3M6IG9iamVjdCkge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuXHR9XG5cblx0dG9FeHRlcm5hbChvTmF2QXJndW1lbnRzQXJyOiBBcnJheTxvYmplY3Q+LCBvQ29tcG9uZW50OiBvYmplY3QpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRnZXRTdGFydHVwQXBwU3RhdGUob0FyZ3M6IG9iamVjdCkge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG5cdH1cblxuXHRiYWNrVG9QcmV2aW91c0FwcCgpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRocmVmRm9yRXh0ZXJuYWwob0FyZ3M/OiBvYmplY3QsIG9Db21wb25lbnQ/OiBvYmplY3QsIGJBc3luYz86IGJvb2xlYW4pIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXG5cdGdldEFwcFN0YXRlKG9Db21wb25lbnQ6IG9iamVjdCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcblx0fVxuXG5cdGNyZWF0ZUVtcHR5QXBwU3RhdGUob0NvbXBvbmVudDogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRpc0luaXRpYWxOYXZpZ2F0aW9uKCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdGV4cGFuZENvbXBhY3RIYXNoKHNIYXNoRnJhZ21lbnQ6IHN0cmluZykge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuXHR9XG5cblx0cGFyc2VTaGVsbEhhc2goc0hhc2g6IHN0cmluZykge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdHNwbGl0SGFzaChzSGFzaDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG5cdH1cblxuXHRjb25zdHJ1Y3RTaGVsbEhhc2gob05ld1NoZWxsSGFzaDogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblxuXHRzZXREaXJ0eUZsYWcoYkRpcnR5OiBib29sZWFuKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0cmVnaXN0ZXJEaXJ0eVN0YXRlUHJvdmlkZXIoZm5EaXJ0eVN0YXRlUHJvdmlkZXI6IEZ1bmN0aW9uKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0ZGVyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjcmVhdGVSZW5kZXJlcigpIHtcblx0XHRyZXR1cm4ge307XG5cdH1cblxuXHRnZXRVc2VyKCkge1xuXHRcdHJldHVybiB7fTtcblx0fVxuXG5cdGhhc1VTaGVsbCgpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRyZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKTogdm9pZCB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0dW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKTogdm9pZCB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0c2V0QmFja05hdmlnYXRpb24oZm5DYWxsQmFjaz86IEZ1bmN0aW9uKTogdm9pZCB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0c2V0SGllcmFyY2h5KGFIaWVyYXJjaHlMZXZlbHM6IEFycmF5PG9iamVjdD4pOiB2b2lkIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRzZXRUaXRsZShzVGl0bGU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGdldENvbnRlbnREZW5zaXR5KCk6IHN0cmluZyB7XG5cdFx0Ly8gaW4gY2FzZSB0aGVyZSBpcyBubyBzaGVsbCB3ZSBwcm9iYWJseSBuZWVkIHRvIGxvb2sgYXQgdGhlIGNsYXNzZXMgYmVpbmcgZGVmaW5lZCBvbiB0aGUgYm9keVxuXHRcdGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5jb250YWlucyhcInNhcFVpU2l6ZUNvenlcIikpIHtcblx0XHRcdHJldHVybiBcImNvenlcIjtcblx0XHR9IGVsc2UgaWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2FwVWlTaXplQ29tcGFjdFwiKSkge1xuXHRcdFx0cmV0dXJuIFwiY29tcGFjdFwiO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gXCJcIjtcblx0XHR9XG5cdH1cblxuXHRnZXRQcmltYXJ5SW50ZW50KHNTZW1hbnRpY09iamVjdDogc3RyaW5nLCBtUGFyYW1ldGVycz86IG9iamVjdCk6IFByb21pc2U8YW55PiB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHR9XG59XG5cbi8qKlxuICogQHR5cGVkZWYgU2hlbGxTZXJ2aWNlc1NldHRpbmdzXG4gKiBAcHJpdmF0ZVxuICovXG5leHBvcnQgdHlwZSBTaGVsbFNlcnZpY2VzU2V0dGluZ3MgPSB7XG5cdHNoZWxsQ29udGFpbmVyPzogQ29udGFpbmVyO1xufTtcblxuLyoqXG4gKiBXcmFwIGEgSlF1ZXJ5IFByb21pc2Ugd2l0aGluIGEgbmF0aXZlIHtQcm9taXNlfS5cbiAqXG4gKiBAdGVtcGxhdGUge29iamVjdH0gVFxuICogQHBhcmFtIHtqUXVlcnkuUHJvbWlzZTxUPn0ganF1ZXJ5UHJvbWlzZSBUaGUgb3JpZ2luYWwganF1ZXJ5IHByb21pc2VcbiAqIEByZXR1cm5zIHtQcm9taXNlPFQ+fSBBIG5hdGl2ZSBwcm9taXNlIHdyYXBwaW5nIHRoZSBzYW1lIG9iamVjdFxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gd3JhcEpRdWVyeVByb21pc2U8VD4oanF1ZXJ5UHJvbWlzZTogalF1ZXJ5LlByb21pc2UpOiBQcm9taXNlPFQ+IHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9jYXRjaC1vci1yZXR1cm5cblx0XHRqcXVlcnlQcm9taXNlLmRvbmUocmVzb2x2ZSBhcyBhbnkpLmZhaWwocmVqZWN0KTtcblx0fSk7XG59XG5cbi8qKlxuICogQmFzZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2hlbGxTZXJ2aWNlc1xuICpcbiAqIEBpbXBsZW1lbnRzIHtJU2hlbGxTZXJ2aWNlc31cbiAqIEBwcml2YXRlXG4gKi9cbmNsYXNzIFNoZWxsU2VydmljZXMgZXh0ZW5kcyBTZXJ2aWNlPFJlcXVpcmVkPFNoZWxsU2VydmljZXNTZXR0aW5ncz4+IGltcGxlbWVudHMgSVNoZWxsU2VydmljZXMge1xuXHRyZXNvbHZlRm46IGFueTtcblx0cmVqZWN0Rm46IGFueTtcblx0aW5pdFByb21pc2UhOiBQcm9taXNlPGFueT47XG5cdC8vICE6IG1lYW5zIHRoYXQgd2Uga25vdyBpdCB3aWxsIGJlIGFzc2lnbmVkIGJlZm9yZSB1c2FnZVxuXHRjcm9zc0FwcE5hdlNlcnZpY2UhOiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbjtcblx0dXJsUGFyc2luZ1NlcnZpY2UhOiBVUkxQYXJzaW5nO1xuXHRzaGVsbE5hdmlnYXRpb24hOiBTaGVsbE5hdmlnYXRpb247XG5cdG9TaGVsbENvbnRhaW5lciE6IENvbnRhaW5lcjtcblx0c2hlbGxVSVNlcnZpY2UhOiBhbnk7XG5cdGluc3RhbmNlVHlwZSE6IHN0cmluZztcblx0bGlua3NDYWNoZSE6IGFueTtcblx0Zm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZTogYW55O1xuXG5cdGluaXQoKSB7XG5cdFx0Y29uc3Qgb0NvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblx0XHRjb25zdCBvQ29tcG9uZW50ID0gb0NvbnRleHQuc2NvcGVPYmplY3QgYXMgYW55O1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyID0gb0NvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXI7XG5cdFx0dGhpcy5pbnN0YW5jZVR5cGUgPSBcInJlYWxcIjtcblx0XHR0aGlzLmxpbmtzQ2FjaGUgPSB7fTtcblx0XHR0aGlzLmZuRmluZFNlbWFudGljT2JqZWN0c0luQ2FjaGUgPSBmdW5jdGlvbihvQXJnczogYW55KTogb2JqZWN0IHtcblx0XHRcdGNvbnN0IF9vQXJnczogYW55ID0gb0FyZ3M7XG5cdFx0XHRjb25zdCBhQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRjb25zdCBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzID0gW107XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IF9vQXJncy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoISFfb0FyZ3NbaV1bMF0gJiYgISFfb0FyZ3NbaV1bMF0uc2VtYW50aWNPYmplY3QpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0pIHtcblx0XHRcdFx0XHRcdGFDYWNoZWRTZW1hbnRpY09iamVjdHMucHVzaCh0aGlzLmxpbmtzQ2FjaGVbX29BcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XS5saW5rcyk7XG5cdFx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkob0FyZ3NbaV1bMF0sIFwibGlua3NcIiwge1xuXHRcdFx0XHRcdFx0XHR2YWx1ZTogdGhpcy5saW5rc0NhY2hlW19vQXJnc1tpXVswXS5zZW1hbnRpY09iamVjdF0ubGlua3Ncblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLnB1c2goX29BcmdzW2ldKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB7IG9sZEFyZ3M6IG9BcmdzLCBuZXdBcmdzOiBhTm9uQ2FjaGVkU2VtYW50aWNPYmplY3RzLCBjYWNoZWRMaW5rczogYUNhY2hlZFNlbWFudGljT2JqZWN0cyB9O1xuXHRcdH07XG5cdFx0dGhpcy5pbml0UHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdHRoaXMucmVzb2x2ZUZuID0gcmVzb2x2ZTtcblx0XHRcdHRoaXMucmVqZWN0Rm4gPSByZWplY3Q7XG5cdFx0fSk7XG5cdFx0Y29uc3Qgb0Nyb3NzQXBwTmF2U2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblwiKTtcblx0XHRjb25zdCBvVXJsUGFyc2luZ1NlcnZpY2VQcm9taXNlID0gdGhpcy5vU2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiVVJMUGFyc2luZ1wiKTtcblx0XHRjb25zdCBvU2hlbGxOYXZpZ2F0aW9uU2VydmljZVByb21pc2UgPSB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJTaGVsbE5hdmlnYXRpb25cIik7XG5cdFx0Y29uc3Qgb1NoZWxsVUlTZXJ2aWNlUHJvbWlzZSA9IG9Db21wb25lbnQuZ2V0U2VydmljZShcIlNoZWxsVUlTZXJ2aWNlXCIpO1xuXHRcdFByb21pc2UuYWxsKFtvQ3Jvc3NBcHBOYXZTZXJ2aWNlUHJvbWlzZSwgb1VybFBhcnNpbmdTZXJ2aWNlUHJvbWlzZSwgb1NoZWxsTmF2aWdhdGlvblNlcnZpY2VQcm9taXNlLCBvU2hlbGxVSVNlcnZpY2VQcm9taXNlXSlcblx0XHRcdC50aGVuKChbb0Nyb3NzQXBwTmF2U2VydmljZSwgb1VybFBhcnNpbmdTZXJ2aWNlLCBvU2hlbGxOYXZpZ2F0aW9uLCBvU2hlbGxVSVNlcnZpY2VdKSA9PiB7XG5cdFx0XHRcdHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlID0gb0Nyb3NzQXBwTmF2U2VydmljZTtcblx0XHRcdFx0dGhpcy51cmxQYXJzaW5nU2VydmljZSA9IG9VcmxQYXJzaW5nU2VydmljZTtcblx0XHRcdFx0dGhpcy5zaGVsbE5hdmlnYXRpb24gPSBvU2hlbGxOYXZpZ2F0aW9uO1xuXHRcdFx0XHR0aGlzLnNoZWxsVUlTZXJ2aWNlID0gb1NoZWxsVUlTZXJ2aWNlO1xuXHRcdFx0XHR0aGlzLnJlc29sdmVGbigpO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaCh0aGlzLnJlamVjdEZuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHRhcmdldCBsaW5rcyBjb25maWd1cmVkIGZvciBhIGdpdmVuIHNlbWFudGljIG9iamVjdCAmIGFjdGlvblxuXHQgKiBXaWxsIHJldHJpZXZlIHRoZSBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvblxuXHQgKiBzZXJ2aWNlIHJlZmVyZW5jZSBjYWxsIHRoZSBnZXRMaW5rcyBtZXRob2QuIEluIGNhc2Ugc2VydmljZSBpcyBub3QgYXZhaWxhYmxlIG9yIGFueSBleGNlcHRpb25cblx0ICogbWV0aG9kIHRocm93cyBleGNlcHRpb24gZXJyb3IgaW4gY29uc29sZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvQXJncyBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5nZXRMaW5rcyBhcmd1bWVudHNcblx0ICogQHJldHVybnMge1Byb21pc2V9IFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byB0YXJnZXQgbGlua3MgYXJyYXlcblx0ICovXG5cdGdldExpbmtzKG9BcmdzOiBvYmplY3QpIHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvY2F0Y2gtb3ItcmV0dXJuXG5cdFx0XHR0aGlzLmNyb3NzQXBwTmF2U2VydmljZVxuXHRcdFx0XHQuZ2V0TGlua3Mob0FyZ3MpXG5cdFx0XHRcdC5mYWlsKChvRXJyb3I6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3Iob0Vycm9yICsgXCIgc2FwLmZlLmNvcmUuc2VydmljZXMuTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LmdldExpbmtzXCIpKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4ocmVzb2x2ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0cmlldmVzIHRoZSB0YXJnZXQgbGlua3MgY29uZmlndXJlZCBmb3IgYSBnaXZlbiBzZW1hbnRpYyBvYmplY3QgJiBhY3Rpb24gaW4gY2FjaGVcblx0ICogV2lsbCByZXRyaWV2ZSB0aGUgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb25cblx0ICogc2VydmljZSByZWZlcmVuY2UgY2FsbCB0aGUgZ2V0TGlua3MgbWV0aG9kLiBJbiBjYXNlIHNlcnZpY2UgaXMgbm90IGF2YWlsYWJsZSBvciBhbnkgZXhjZXB0aW9uXG5cdCAqIG1ldGhvZCB0aHJvd3MgZXhjZXB0aW9uIGVycm9yIGluIGNvbnNvbGUuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0FyZ3MgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Z2V0TGlua3MgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gdGFyZ2V0IGxpbmtzIGFycmF5XG5cdCAqL1xuXHRnZXRMaW5rc1dpdGhDYWNoZShvQXJnczogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0aWYgKChvQXJncyBhcyBPYmplY3RbXSkubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHJlc29sdmUoW10pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bGV0IGFMaW5rcztcblx0XHRcdFx0Y29uc3Qgb0NhY2hlUmVzdWx0cyA9IHRoaXMuZm5GaW5kU2VtYW50aWNPYmplY3RzSW5DYWNoZShvQXJncyk7XG5cblx0XHRcdFx0aWYgKG9DYWNoZVJlc3VsdHMubmV3QXJncy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRyZXNvbHZlKG9DYWNoZVJlc3VsdHMuY2FjaGVkTGlua3MpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9taXNlL2NhdGNoLW9yLXJldHVyblxuXHRcdFx0XHRcdHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlXG5cdFx0XHRcdFx0XHQuZ2V0TGlua3Mob0NhY2hlUmVzdWx0cy5uZXdBcmdzKVxuXHRcdFx0XHRcdFx0LmZhaWwoKG9FcnJvcjogYW55KSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3Iob0Vycm9yICsgXCIgc2FwLmZlLmNvcmUuc2VydmljZXMuTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LmdldExpbmtzV2l0aENhY2hlXCIpKTtcblx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHQudGhlbigoYUxpbmtzOiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKGFMaW5rcy5sZW5ndGggIT09IDApIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBvU2VtYW50aWNPYmplY3RzTGlua3M6IGFueSA9IHt9O1xuXG5cdFx0XHRcdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhTGlua3MubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChhTGlua3NbaV0ubGVuZ3RoID4gMCAmJiBvQ2FjaGVSZXN1bHRzLm5ld0FyZ3NbaV1bMF0ubGlua3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRvU2VtYW50aWNPYmplY3RzTGlua3Nbb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2ldWzBdLnNlbWFudGljT2JqZWN0XSA9IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRsaW5rczogYUxpbmtzW2ldXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubGlua3NDYWNoZSA9IE9iamVjdC5hc3NpZ24odGhpcy5saW5rc0NhY2hlLCBvU2VtYW50aWNPYmplY3RzTGlua3MpO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdGlmIChvQ2FjaGVSZXN1bHRzLmNhY2hlZExpbmtzLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYUxpbmtzKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBhTWVyZ2VkTGlua3MgPSBbXTtcblx0XHRcdFx0XHRcdFx0XHRsZXQgaiA9IDA7XG5cblx0XHRcdFx0XHRcdFx0XHRmb3IgKGxldCBrID0gMDsgayA8IG9DYWNoZVJlc3VsdHMub2xkQXJncy5sZW5ndGg7IGsrKykge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGogPCBhTGlua3MubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhTGlua3Nbal0ubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5zZW1hbnRpY09iamVjdCA9PT0gb0NhY2hlUmVzdWx0cy5uZXdBcmdzW2pdWzBdLnNlbWFudGljT2JqZWN0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKGFMaW5rc1tqXSk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aisrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGFNZXJnZWRMaW5rcy5wdXNoKG9DYWNoZVJlc3VsdHMub2xkQXJnc1trXVswXS5saW5rcyk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoYU1lcmdlZExpbmtzKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIHJldHJpZXZlIHRoZSBTaGVsbENvbnRhaW5lci5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIHNhcC51c2hlbGwuY29udGFpbmVyXG5cdCAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCB3aXRoIHByZWRlZmluZWQgc2hlbGxDb250YWluZXIgbWV0aG9kc1xuXHQgKi9cblx0Z2V0U2hlbGxDb250YWluZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMub1NoZWxsQ29udGFpbmVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCB0b0V4dGVybmFsIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggTmF2aWdhdGlvbiBBcmd1bWVudHMgYW5kIG9Db21wb25lbnQuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge0FycmF5fSBvTmF2QXJndW1lbnRzQXJyIEFuZFxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0NvbXBvbmVudCBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT50b0V4dGVybmFsIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyB7dm9pZH1cblx0ICovXG5cdHRvRXh0ZXJuYWwob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KTogdm9pZCB7XG5cdFx0dGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UudG9FeHRlcm5hbChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIHRhcmdldCBzdGFydHVwQXBwU3RhdGVcblx0ICogV2lsbCBjaGVjayB0aGUgZXhpc3RhbmNlIG9mIHRoZSBTaGVsbENvbnRhaW5lciBhbmQgcmV0cmlldmUgdGhlIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uXG5cdCAqIHNlcnZpY2UgcmVmZXJlbmNlIGNhbGwgdGhlIGdldFN0YXJ0dXBBcHBTdGF0ZSBtZXRob2QuIEluIGNhc2Ugc2VydmljZSBpcyBub3QgYXZhaWxhYmxlIG9yIGFueSBleGNlcHRpb25cblx0ICogbWV0aG9kIHRocm93cyBleGNlcHRpb24gZXJyb3IgaW4gY29uc29sZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvQXJncyBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5nZXRTdGFydHVwQXBwU3RhdGUgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gT2JqZWN0XG5cdCAqL1xuXHRnZXRTdGFydHVwQXBwU3RhdGUob0FyZ3M6IENvbXBvbmVudCkge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHQvLyBKUXVlcnkgUHJvbWlzZSBiZWhhdmVzIGRpZmZlcmVudGx5XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9jYXRjaC1vci1yZXR1cm5cblx0XHRcdHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlXG5cdFx0XHRcdC5nZXRTdGFydHVwQXBwU3RhdGUob0FyZ3MpXG5cdFx0XHRcdC5mYWlsKChvRXJyb3I6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3Iob0Vycm9yICsgXCIgc2FwLmZlLmNvcmUuc2VydmljZXMuTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LmdldFN0YXJ0dXBBcHBTdGF0ZVwiKSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKHJlc29sdmUpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBiYWNrVG9QcmV2aW91c0FwcCBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZS5cblx0ICpcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0YmFja1RvUHJldmlvdXNBcHAoKSB7XG5cdFx0cmV0dXJuIHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmJhY2tUb1ByZXZpb3VzQXBwKCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGhyZWZGb3JFeHRlcm5hbCBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZS5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvQXJncyBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0NvbXBvbmVudCBUaGUgYXBwQ29tcG9uZW50XG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYkFzeW5jIFdoZXRoZXIgdGhpcyBjYWxsIHNob3VsZCBiZSBhc3luYyBvciBub3Rcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+aHJlZkZvckV4dGVybmFsIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gc3RyaW5nXG5cdCAqL1xuXHRocmVmRm9yRXh0ZXJuYWwob0FyZ3M6IG9iamVjdCwgb0NvbXBvbmVudD86IG9iamVjdCwgYkFzeW5jPzogYm9vbGVhbikge1xuXHRcdHJldHVybiB0aGlzLmNyb3NzQXBwTmF2U2VydmljZS5ocmVmRm9yRXh0ZXJuYWwob0FyZ3MsIG9Db21wb25lbnQgYXMgb2JqZWN0LCAhIWJBc3luYyk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGdldEFwcFN0YXRlIG1ldGhvZCBvZiBDcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbiBzZXJ2aWNlIHdpdGggb0NvbXBvbmVudCBhbmQgb0FwcFN0YXRlS2V5LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHtvYmplY3R9IG9Db21wb25lbnRcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNBcHBTdGF0ZUtleSBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5nZXRBcHBTdGF0ZSBhcmd1bWVudHNcblx0ICogQHJldHVybnMge1Byb21pc2V9IFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBvYmplY3Rcblx0ICovXG5cdGdldEFwcFN0YXRlKG9Db21wb25lbnQ6IENvbXBvbmVudCwgc0FwcFN0YXRlS2V5OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gd3JhcEpRdWVyeVByb21pc2UodGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuZ2V0QXBwU3RhdGUob0NvbXBvbmVudCwgc0FwcFN0YXRlS2V5KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGNyZWF0ZUVtcHR5QXBwU3RhdGUgbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2Ugd2l0aCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHtvYmplY3R9IG9Db21wb25lbnQgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Zcblx0ICogc2FwLnVzaGVsbC5zZXJ2aWNlcy5Dcm9zc0FwcGxpY2F0aW9uTmF2aWdhdGlvbj0+Y3JlYXRlRW1wdHlBcHBTdGF0ZSBhcmd1bWVudHNcblx0ICogQHJldHVybnMge1Byb21pc2V9IFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBvYmplY3Rcblx0ICovXG5cdGNyZWF0ZUVtcHR5QXBwU3RhdGUob0NvbXBvbmVudDogQ29tcG9uZW50KSB7XG5cdFx0cmV0dXJuIHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmNyZWF0ZUVtcHR5QXBwU3RhdGUob0NvbXBvbmVudCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzTmF2aWdhdGlvblN1cHBvcnRlZCBtZXRob2Qgb2YgQ3Jvc3NBcHBsaWNhdGlvbk5hdmlnYXRpb24gc2VydmljZSB3aXRoIE5hdmlnYXRpb24gQXJndW1lbnRzIGFuZCBvQ29tcG9uZW50LlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHtBcnJheX0gb05hdkFyZ3VtZW50c0FyclxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0NvbXBvbmVudCBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLkNyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uPT5pc05hdmlnYXRpb25TdXBwb3J0ZWQgYXJndW1lbnRzXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlfSBQcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqL1xuXHRpc05hdmlnYXRpb25TdXBwb3J0ZWQob05hdkFyZ3VtZW50c0FycjogQXJyYXk8b2JqZWN0Piwgb0NvbXBvbmVudDogb2JqZWN0KSB7XG5cdFx0cmV0dXJuIHdyYXBKUXVlcnlQcm9taXNlKHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmlzTmF2aWdhdGlvblN1cHBvcnRlZChvTmF2QXJndW1lbnRzQXJyLCBvQ29tcG9uZW50KSk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGlzSW5pdGlhbE5hdmlnYXRpb24gbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZX0gUHJvbWlzZSB3aGljaCB3aWxsIGJlIHJlc29sdmVkIHRvIGJvb2xlYW5cblx0ICovXG5cdGlzSW5pdGlhbE5hdmlnYXRpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlLmlzSW5pdGlhbE5hdmlnYXRpb24oKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZXhwYW5kQ29tcGFjdEhhc2ggbWV0aG9kIG9mIENyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uIHNlcnZpY2UuXG5cdCAqXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzSGFzaEZyYWdtZW50IEFuIChpbnRlcm5hbCBmb3JtYXQpIHNoZWxsIGhhc2hcblx0ICogQHJldHVybnMge1Byb21pc2V9IEEgcHJvbWlzZSB0aGUgc3VjY2VzcyBoYW5kbGVyIG9mIHRoZSByZXNvbHZlIHByb21pc2UgZ2V0IGFuIGV4cGFuZGVkIHNoZWxsIGhhc2ggYXMgZmlyc3QgYXJndW1lbnRcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRleHBhbmRDb21wYWN0SGFzaChzSGFzaEZyYWdtZW50OiBzdHJpbmcpIHtcblx0XHRyZXR1cm4gdGhpcy5jcm9zc0FwcE5hdlNlcnZpY2UuZXhwYW5kQ29tcGFjdEhhc2goc0hhc2hGcmFnbWVudCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHBhcnNlU2hlbGxIYXNoIG1ldGhvZCBvZiBVUkxQYXJzaW5nIHNlcnZpY2Ugd2l0aCBnaXZlbiBzSGFzaC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzSGFzaCBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLlVSTFBhcnNpbmc9PnBhcnNlU2hlbGxIYXNoIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyB7b2JqZWN0fVxuXHQgKi9cblx0cGFyc2VTaGVsbEhhc2goc0hhc2g6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLnVybFBhcnNpbmdTZXJ2aWNlLnBhcnNlU2hlbGxIYXNoKHNIYXNoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgc3BsaXRIYXNoIG1ldGhvZCBvZiBVUkxQYXJzaW5nIHNlcnZpY2Ugd2l0aCBnaXZlbiBzSGFzaC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzSGFzaCBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZlxuXHQgKiBzYXAudXNoZWxsLnNlcnZpY2VzLlVSTFBhcnNpbmc9PnNwbGl0SGFzaCBhcmd1bWVudHNcblx0ICogQHJldHVybnMge1Byb21pc2V9IFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBvYmplY3Rcblx0ICovXG5cdHNwbGl0SGFzaChzSGFzaDogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIHRoaXMudXJsUGFyc2luZ1NlcnZpY2Uuc3BsaXRIYXNoKHNIYXNoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgY29uc3RydWN0U2hlbGxIYXNoIG1ldGhvZCBvZiBVUkxQYXJzaW5nIHNlcnZpY2Ugd2l0aCBnaXZlbiBzSGFzaC5cblx0ICpcblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvTmV3U2hlbGxIYXNoIENoZWNrIHRoZSBkZWZpbml0aW9uIG9mXG5cdCAqIHNhcC51c2hlbGwuc2VydmljZXMuVVJMUGFyc2luZz0+Y29uc3RydWN0U2hlbGxIYXNoIGFyZ3VtZW50c1xuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBTaGVsbCBIYXNoIHN0cmluZ1xuXHQgKi9cblx0Y29uc3RydWN0U2hlbGxIYXNoKG9OZXdTaGVsbEhhc2g6IG9iamVjdCkge1xuXHRcdHJldHVybiB0aGlzLnVybFBhcnNpbmdTZXJ2aWNlLmNvbnN0cnVjdFNoZWxsSGFzaChvTmV3U2hlbGxIYXNoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgc2V0RGlydHlGbGFnIG1ldGhvZCB3aXRoIGdpdmVuIGRpcnR5IHN0YXRlLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHtib29sZWFufSBiRGlydHkgQ2hlY2sgdGhlIGRlZmluaXRpb24gb2Ygc2FwLnVzaGVsbC5Db250YWluZXIuc2V0RGlydHlGbGFnIGFyZ3VtZW50c1xuXHQgKi9cblx0c2V0RGlydHlGbGFnKGJEaXJ0eTogYm9vbGVhbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLnNldERpcnR5RmxhZyhiRGlydHkpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCByZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZSBwcm92aWRlciBjYWxsYmFjayBtZXRob2QuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbkRpcnR5U3RhdGVQcm92aWRlciBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBzYXAudXNoZWxsLkNvbnRhaW5lci5yZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciBhcmd1bWVudHNcblx0ICovXG5cdHJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyOiBGdW5jdGlvbikge1xuXHRcdHRoaXMub1NoZWxsQ29udGFpbmVyLnJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgZGVyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlciBtZXRob2Qgd2l0aCBnaXZlbiBkaXJ0eSBzdGF0ZSBwcm92aWRlciBjYWxsYmFjayBtZXRob2QuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbkRpcnR5U3RhdGVQcm92aWRlciBDaGVjayB0aGUgZGVmaW5pdGlvbiBvZiBzYXAudXNoZWxsLkNvbnRhaW5lci5kZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyIGFyZ3VtZW50c1xuXHQgKi9cblx0ZGVyZWdpc3RlckRpcnR5U3RhdGVQcm92aWRlcihmbkRpcnR5U3RhdGVQcm92aWRlcjogRnVuY3Rpb24pIHtcblx0XHR0aGlzLm9TaGVsbENvbnRhaW5lci5kZXJlZ2lzdGVyRGlydHlTdGF0ZVByb3ZpZGVyKGZuRGlydHlTdGF0ZVByb3ZpZGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgY3JlYXRlUmVuZGVyZXIgbWV0aG9kIG9mIHVzaGVsbCBjb250YWluZXIuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fSBSZXR1cm5zIHJlbmRlcmVyIG9iamVjdFxuXHQgKi9cblx0Y3JlYXRlUmVuZGVyZXIoKSB7XG5cdFx0cmV0dXJuIHRoaXMub1NoZWxsQ29udGFpbmVyLmNyZWF0ZVJlbmRlcmVyKCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIGdldFVzZXIgbWV0aG9kIG9mIHVzaGVsbCBjb250YWluZXIuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyB7b2JqZWN0fSBSZXR1cm5zIFVzZXIgb2JqZWN0XG5cdCAqL1xuXHRnZXRVc2VyKCkge1xuXHRcdHJldHVybiB0aGlzLm9TaGVsbENvbnRhaW5lci5nZXRVc2VyKCk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjaGVjayBpZiB1c2hlbGwgY29udGFpbmVyIGlzIGF2YWlsYWJsZSBvciBub3QuXG5cdCAqXG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyB0cnVlXG5cdCAqL1xuXHRoYXNVU2hlbGwoKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlciBtZXRob2Qgb2Ygc2hlbGxOYXZpZ2F0aW9uLlxuXHQgKlxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbk5hdkZpbHRlciBUaGUgZmlsdGVyIGZ1bmN0aW9uIHRvIHJlZ2lzdGVyXG5cdCAqIEByZXR1cm5zIHt2b2lkfVxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlcihmbk5hdkZpbHRlcjogRnVuY3Rpb24pIHtcblx0XHR0aGlzLnNoZWxsTmF2aWdhdGlvbi5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCB1bnJlZ2lzdGVyTmF2aWdhdGlvbkZpbHRlciBtZXRob2Qgb2Ygc2hlbGxOYXZpZ2F0aW9uLlxuXHQgKlxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbk5hdkZpbHRlciBUaGUgZmlsdGVyIGZ1bmN0aW9uIHRvIHVucmVnaXN0ZXJcblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0dW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXI6IEZ1bmN0aW9uKSB7XG5cdFx0dGhpcy5zaGVsbE5hdmlnYXRpb24udW5yZWdpc3Rlck5hdmlnYXRpb25GaWx0ZXIoZm5OYXZGaWx0ZXIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFdpbGwgY2FsbCBzZXRCYWNrTmF2aWdhdGlvbiBtZXRob2Qgb2YgU2hlbGxVSVNlcnZpY2Vcblx0ICogdGhhdCBkaXNwbGF5cyB0aGUgYmFjayBidXR0b24gaW4gdGhlIHNoZWxsIGhlYWRlci5cblx0ICpcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gW2ZuQ2FsbEJhY2tdIEEgY2FsbGJhY2sgZnVuY3Rpb24gY2FsbGVkIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIGluIHRoZSBVSS5cblx0ICogQHJldHVybnMge3ZvaWR9XG5cdCAqIEBwcml2YXRlXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0c2V0QmFja05hdmlnYXRpb24oZm5DYWxsQmFjaz86IEZ1bmN0aW9uKTogdm9pZCB7XG5cdFx0dGhpcy5zaGVsbFVJU2VydmljZS5zZXRCYWNrTmF2aWdhdGlvbihmbkNhbGxCYWNrKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBXaWxsIGNhbGwgc2V0SGllcmFyY2h5IG1ldGhvZCBvZiBTaGVsbFVJU2VydmljZVxuXHQgKiB0aGF0IGRpc3BsYXlzIHRoZSBnaXZlbiBoaWVyYXJjaHkgaW4gdGhlIHNoZWxsIGhlYWRlci5cblx0ICpcblx0ICogQHBhcmFtIHtvYmplY3RbXX0gW2FIaWVyYXJjaHlMZXZlbHNdIEFuIGFycmF5IHJlcHJlc2VudGluZyBoaWVyYXJjaGllcyBvZiB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBhcHAuXG5cdCAqIEByZXR1cm5zIHt2b2lkfVxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICovXG5cdHNldEhpZXJhcmNoeShhSGllcmFyY2h5TGV2ZWxzOiBBcnJheTxvYmplY3Q+KTogdm9pZCB7XG5cdFx0dGhpcy5zaGVsbFVJU2VydmljZS5zZXRIaWVyYXJjaHkoYUhpZXJhcmNoeUxldmVscyk7XG5cdH1cblxuXHQvKipcblx0ICogV2lsbCBjYWxsIHNldFRpdGxlIG1ldGhvZCBvZiBTaGVsbFVJU2VydmljZVxuXHQgKiB0aGF0IGRpc3BsYXlzIHRoZSBnaXZlbiB0aXRsZSBpbiB0aGUgc2hlbGwgaGVhZGVyLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gW3NUaXRsZV0gVGhlIG5ldyB0aXRsZS4gVGhlIGRlZmF1bHQgdGl0bGUgaXMgc2V0IGlmIHRoaXMgYXJndW1lbnQgaXMgbm90IGdpdmVuLlxuXHQgKiBAcmV0dXJucyB7dm9pZH1cblx0ICogQHByaXZhdGVcblx0ICogQHVpNS1yZXN0cmljdGVkXG5cdCAqL1xuXHRzZXRUaXRsZShzVGl0bGU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMuc2hlbGxVSVNlcnZpY2Uuc2V0VGl0bGUoc1RpdGxlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnRseSBkZWZpbmVkIGNvbnRlbnQgZGVuc2l0eS5cblx0ICpcblx0ICogQHJldHVybnMge3N0cmluZ30gVGhlIGNvbnRlbnQgZGVuc2l0eSB2YWx1ZVxuXHQgKi9cblx0Z2V0Q29udGVudERlbnNpdHkoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gKHRoaXMub1NoZWxsQ29udGFpbmVyLmdldFVzZXIoKSBhcyBhbnkpLmdldENvbnRlbnREZW5zaXR5KCk7XG5cdH1cblxuXHQvKipcblx0ICogRm9yIGEgZ2l2ZW4gc2VtYW50aWMgb2JqZWN0LCB0aGlzIG1ldGhvZCBjb25zaWRlcnMgYWxsIGFjdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZW1hbnRpYyBvYmplY3QgYW5kXG5cdCAqIHJldHVybnMgdGhlIG9uZSB0YWdnZWQgYXMgYSBcInByaW1hcnlBY3Rpb25cIi4gSWYgbm8gaW5ib3VuZCB0YWdnZWQgYXMgXCJwcmltYXJ5QWN0aW9uXCIgZXhpc3RzLCB0aGVuIGl0IHJldHVybnNcblx0ICogdGhlIGludGVudCBvZiB0aGUgZmlyc3QgaW5ib3VuZCAoYWZ0ZXIgc29ydGluZyBoYXMgYmVlbiBhcHBsaWVkKSBtYXRjaGluZyB0aGUgYWN0aW9uIFwiZGlzcGxheUZhY3RTaGVldFwiLlxuXHQgKlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAdWk1LXJlc3RyaWN0ZWRcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNTZW1hbnRpY09iamVjdCBTZW1hbnRpYyBvYmplY3QuXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBtUGFyYW1ldGVycyBTZWUgI0Nyb3NzQXBwbGljYXRpb25OYXZpZ2F0aW9uI2dldExpbmtzIGZvciBkZXNjcmlwdGlvbi5cblx0ICogQHJldHVybnMge1Byb21pc2V9IFByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSBpbnRlbnQgaWYgaXQgZXhpc3RzLlxuXHQgKi9cblx0Z2V0UHJpbWFyeUludGVudChzU2VtYW50aWNPYmplY3Q6IHN0cmluZywgbVBhcmFtZXRlcnM/OiBvYmplY3QpOiBQcm9taXNlPGFueT4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvbWlzZS9jYXRjaC1vci1yZXR1cm5cblx0XHRcdHRoaXMuY3Jvc3NBcHBOYXZTZXJ2aWNlXG5cdFx0XHRcdC5nZXRQcmltYXJ5SW50ZW50KHNTZW1hbnRpY09iamVjdCwgbVBhcmFtZXRlcnMpXG5cdFx0XHRcdC5mYWlsKChvRXJyb3I6IGFueSkgPT4ge1xuXHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3Iob0Vycm9yICsgXCIgc2FwLmZlLmNvcmUuc2VydmljZXMuTmF2aWdhdGlvblNlcnZpY2VGYWN0b3J5LmdldFByaW1hcnlJbnRlbnRcIikpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQudGhlbihyZXNvbHZlKTtcblx0XHR9KTtcblx0fVxufVxuXG4vKipcbiAqIFNlcnZpY2UgRmFjdG9yeSBmb3IgdGhlIFNoZWxsU2VydmljZXNcbiAqXG4gKiBAcHJpdmF0ZVxuICovXG5jbGFzcyBTaGVsbFNlcnZpY2VzRmFjdG9yeSBleHRlbmRzIFNlcnZpY2VGYWN0b3J5PFNoZWxsU2VydmljZXNTZXR0aW5ncz4ge1xuXHQvKipcblx0ICogQ3JlYXRlcyBlaXRoZXIgYSBzdGFuZGFyZCBvciBhIG1vY2sgU2hlbGwgc2VydmljZSBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb24uXG5cdCAqXG5cdCAqIEBwYXJhbSB7U2VydmljZUNvbnRleHQ8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPn0gb1NlcnZpY2VDb250ZXh0IFRoZSBzaGVsbHNlcnZpY2UgY29udGV4dFxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxJU2hlbGxTZXJ2aWNlcz59IEEgcHJvbWlzZSBmb3IgYSBzaGVsbCBzZXJ2aWNlIGltcGxlbWVudGF0aW9uXG5cdCAqIEBzZWUgU2VydmljZUZhY3RvcnkjY3JlYXRlSW5zdGFuY2Vcblx0ICovXG5cdGNyZWF0ZUluc3RhbmNlKG9TZXJ2aWNlQ29udGV4dDogU2VydmljZUNvbnRleHQ8U2hlbGxTZXJ2aWNlc1NldHRpbmdzPik6IFByb21pc2U8SVNoZWxsU2VydmljZXM+IHtcblx0XHRvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIChzYXAudXNoZWxsLkNvbnRhaW5lciBhcyBDb250YWluZXIpO1xuXHRcdGNvbnN0IG9TaGVsbFNlcnZpY2UgPSBvU2VydmljZUNvbnRleHQuc2V0dGluZ3Muc2hlbGxDb250YWluZXJcblx0XHRcdD8gbmV3IFNoZWxsU2VydmljZXMob1NlcnZpY2VDb250ZXh0IGFzIFNlcnZpY2VDb250ZXh0PFJlcXVpcmVkPFNoZWxsU2VydmljZXNTZXR0aW5ncz4+KVxuXHRcdFx0OiBuZXcgU2hlbGxTZXJ2aWNlTW9jayhvU2VydmljZUNvbnRleHQpO1xuXHRcdHJldHVybiBvU2hlbGxTZXJ2aWNlLmluaXRQcm9taXNlLnRoZW4oKCkgPT4ge1xuXHRcdFx0Ly8gRW5yaWNoIHRoZSBhcHBDb21wb25lbnQgd2l0aCB0aGlzIG1ldGhvZFxuXHRcdFx0KG9TZXJ2aWNlQ29udGV4dC5zY29wZU9iamVjdCBhcyBhbnkpLmdldFNoZWxsU2VydmljZXMgPSAoKSA9PiBvU2hlbGxTZXJ2aWNlO1xuXHRcdFx0cmV0dXJuIG9TaGVsbFNlcnZpY2U7XG5cdFx0fSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2hlbGxTZXJ2aWNlc0ZhY3Rvcnk7XG4iXX0=
@@ -2,4 +2,4 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/ui/core/service/ServiceFactory","sap/ui/core/service/Service"],function(S,a){"use strict";function _(e,i){return g(e)||f(e,i)||c(e,i)||b();}function b(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function c(o,e){if(!o)return;if(typeof o==="string")return d(o,e);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(o,e);}function d(e,j){if(j==null||j>e.length)j=e.length;for(var i=0,k=new Array(j);i<j;i++){k[i]=e[i];}return k;}function f(e,i){var j=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(j==null)return;var k=[];var n=true;var o=false;var p,B;try{for(j=j.call(e);!(n=(p=j.next()).done);n=true){k.push(p.value);if(i&&k.length===i)break;}}catch(C){o=true;B=C;}finally{try{if(!n&&j["return"]!=null)j["return"]();}finally{if(o)throw B;}}return k;}function g(e){if(Array.isArray(e))return e;}function h(i,C){if(!(i instanceof C)){throw new TypeError("Cannot call a class as a function");}}function l(e,p){for(var i=0;i<p.length;i++){var j=p[i];j.enumerable=j.enumerable||false;j.configurable=true;if("value"in j)j.writable=true;Object.defineProperty(e,j.key,j);}}function m(C,p,e){if(p)l(C.prototype,p);if(e)l(C,e);return C;}function q(e,i){if(typeof i!=="function"&&i!==null){throw new TypeError("Super expression must either be null or a function");}e.prototype=Object.create(i&&i.prototype,{constructor:{value:e,writable:true,configurable:true}});if(i)r(e,i);}function r(o,p){r=Object.setPrototypeOf||function r(o,p){o.__proto__=p;return o;};return r(o,p);}function s(D){var e=v();return function k(){var i=w(D),j;if(e){var N=w(this).constructor;j=Reflect.construct(i,arguments,N);}else{j=i.apply(this,arguments);}return t(this,j);};}function t(e,i){if(i&&(typeof i==="object"||typeof i==="function")){return i;}return u(e);}function u(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return e;}function v(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function w(o){w=Object.setPrototypeOf?Object.getPrototypeOf:function w(o){return o.__proto__||Object.getPrototypeOf(o);};return w(o);}var x=function(e){q(x,e);var i=s(x);function x(){h(this,x);return i.apply(this,arguments);}m(x,[{key:"init",value:function j(){this.initPromise=Promise.resolve(this);this.instanceType="mock";}},{key:"getLinks",value:function j(o){return Promise.resolve([]);}},{key:"getLinksWithCache",value:function j(o){return Promise.resolve([]);}},{key:"toExternal",value:function j(n,C){return;}},{key:"getStartupAppState",value:function j(o){return Promise.resolve(null);}},{key:"backToPreviousApp",value:function j(){return;}},{key:"hrefForExternal",value:function k(o,C,j){return"";}},{key:"getAppState",value:function k(C,j){return Promise.resolve({});}},{key:"createEmptyAppState",value:function j(C){return Promise.resolve({});}},{key:"isNavigationSupported",value:function j(n,C){return Promise.resolve({});}},{key:"isInitialNavigation",value:function j(){return false;}},{key:"expandCompactHash",value:function j(H){return Promise.resolve({});}},{key:"parseShellHash",value:function p(H){return{};}},{key:"splitHash",value:function j(H){return Promise.resolve({});}},{key:"constructShellHash",value:function j(n){return"";}},{key:"setDirtyFlag",value:function j(D){return;}},{key:"registerDirtyStateProvider",value:function j(D){return;}},{key:"deregisterDirtyStateProvider",value:function j(D){return;}},{key:"createRenderer",value:function j(){return{};}},{key:"getUser",value:function j(){return{};}},{key:"hasUShell",value:function j(){return false;}},{key:"registerNavigationFilter",value:function j(n){return;}},{key:"unregisterNavigationFilter",value:function j(n){return;}},{key:"setBackNavigation",value:function j(C){return;}},{key:"setHierarchy",value:function j(H){return;}},{key:"setTitle",value:function j(T){return;}},{key:"getContentDensity",value:function j(){if(document.body.classList.contains("sapUiSizeCozy")){return"cozy";}else if(document.body.classList.contains("sapUiSizeCompact")){return"compact";}else{return"";}}}]);return x;}(a);function y(j){return new Promise(function(e,i){j.done(e).fail(i);});}var z=function(e){q(z,e);var n=s(z);function z(){h(this,z);return n.apply(this,arguments);}m(z,[{key:"init",value:function D(){var j=this;var C=this.getContext();var o=C.scopeObject;this.oShellContainer=C.settings.shellContainer;this.instanceType="real";this.linksCache={};this.fnFindSemanticObjectsInCache=function(E){var F=E;var G=[];var N=[];for(var i=0;i<F.length;i++){if(!!F[i][0]&&!!F[i][0].semanticObject){if(this.linksCache[F[i][0].semanticObject]){G.push(this.linksCache[F[i][0].semanticObject].links);Object.defineProperty(E[i][0],"links",{value:this.linksCache[F[i][0].semanticObject].links});}else{N.push(F[i]);}}}return{oldArgs:E,newArgs:N,cachedLinks:G};};this.initPromise=new Promise(function(i,E){j.resolveFn=i;j.rejectFn=E;});var k=this.oShellContainer.getServiceAsync("CrossApplicationNavigation");var U=this.oShellContainer.getServiceAsync("URLParsing");var p=this.oShellContainer.getServiceAsync("ShellNavigation");var B=o.getService("ShellUIService");Promise.all([k,U,p,B]).then(function(i){var E=_(i,4),F=E[0],G=E[1],H=E[2],I=E[3];j.crossAppNavService=F;j.urlParsingService=G;j.shellNavigation=H;j.shellUIService=I;j.resolveFn();}).catch(this.rejectFn);}},{key:"getLinks",value:function j(o){var i=this;return new Promise(function(k,p){i.crossAppNavService.getLinks(o).fail(function(E){p(new Error(E+" sap.fe.core.services.NavigationServiceFactory.getLinks"));}).then(k);});}},{key:"getLinksWithCache",value:function B(o){var p=this;return new Promise(function(C,D){if(o.length===0){C([]);}else{var L;var E=p.fnFindSemanticObjectsInCache(o);if(E.newArgs.length===0){C(E.cachedLinks);}else{p.crossAppNavService.getLinks(E.newArgs).fail(function(i){D(new Error(i+" sap.fe.core.services.NavigationServiceFactory.getLinksWithCache"));}).then(function(L){if(L.length!==0){var F={};for(var i=0;i<L.length;i++){if(L[i].length>0&&E.newArgs[i][0].links===undefined){F[E.newArgs[i][0].semanticObject]={links:L[i]};p.linksCache=Object.assign(p.linksCache,F);}}}if(E.cachedLinks.length===0){C(L);}else{var M=[];var j=0;for(var k=0;k<E.oldArgs.length;k++){if(j<L.length){if(L[j].length>0&&E.oldArgs[k][0].semanticObject===E.newArgs[j][0].semanticObject){M.push(L[j]);j++;}else{M.push(E.oldArgs[k][0].links);}}else{M.push(E.oldArgs[k][0].links);}}C(M);}});}}});}},{key:"getShellContainer",value:function i(){return this.oShellContainer;}},{key:"toExternal",value:function i(N,C){this.crossAppNavService.toExternal(N,C);}},{key:"getStartupAppState",value:function j(o){var i=this;return new Promise(function(k,p){i.crossAppNavService.getStartupAppState(o).fail(function(E){p(new Error(E+" sap.fe.core.services.NavigationServiceFactory.getStartupAppState"));}).then(k);});}},{key:"backToPreviousApp",value:function i(){return this.crossAppNavService.backToPreviousApp();}},{key:"hrefForExternal",value:function j(o,C,i){return this.crossAppNavService.hrefForExternal(o,C,!!i);}},{key:"getAppState",value:function j(C,i){return y(this.crossAppNavService.getAppState(C,i));}},{key:"createEmptyAppState",value:function i(C){return this.crossAppNavService.createEmptyAppState(C);}},{key:"isNavigationSupported",value:function i(N,C){return y(this.crossAppNavService.isNavigationSupported(N,C));}},{key:"isInitialNavigation",value:function i(){return this.crossAppNavService.isInitialNavigation();}},{key:"expandCompactHash",value:function i(H){return this.crossAppNavService.expandCompactHash(H);}},{key:"parseShellHash",value:function p(H){return this.urlParsingService.parseShellHash(H);}},{key:"splitHash",value:function i(H){return this.urlParsingService.splitHash(H);}},{key:"constructShellHash",value:function i(N){return this.urlParsingService.constructShellHash(N);}},{key:"setDirtyFlag",value:function i(D){this.oShellContainer.setDirtyFlag(D);}},{key:"registerDirtyStateProvider",value:function i(D){this.oShellContainer.registerDirtyStateProvider(D);}},{key:"deregisterDirtyStateProvider",value:function i(D){this.oShellContainer.deregisterDirtyStateProvider(D);}},{key:"createRenderer",value:function i(){return this.oShellContainer.createRenderer();}},{key:"getUser",value:function i(){return this.oShellContainer.getUser();}},{key:"hasUShell",value:function i(){return true;}},{key:"registerNavigationFilter",value:function i(N){this.shellNavigation.registerNavigationFilter(N);}},{key:"unregisterNavigationFilter",value:function i(N){this.shellNavigation.unregisterNavigationFilter(N);}},{key:"setBackNavigation",value:function i(C){this.shellUIService.setBackNavigation(C);}},{key:"setHierarchy",value:function i(H){this.shellUIService.setHierarchy(H);}},{key:"setTitle",value:function i(T){this.shellUIService.setTitle(T);}},{key:"getContentDensity",value:function i(){return this.oShellContainer.getUser().getContentDensity();}}]);return z;}(a);var A=function(e){q(A,e);var i=s(A);function A(){h(this,A);return i.apply(this,arguments);}m(A,[{key:"createInstance",value:function k(o){o.settings.shellContainer=sap.ushell&&sap.ushell.Container;var j=o.settings.shellContainer?new z(o):new x(o);return j.initPromise.then(function(){o.scopeObject.getShellServices=function(){return j;};return j;});}}]);return A;}(S);return A;},false);
5
+ sap.ui.define(["sap/ui/core/service/ServiceFactory","sap/ui/core/service/Service"],function(S,a){"use strict";function _(e,i){return g(e)||f(e,i)||c(e,i)||b();}function b(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function c(o,e){if(!o)return;if(typeof o==="string")return d(o,e);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(o,e);}function d(e,j){if(j==null||j>e.length)j=e.length;for(var i=0,k=new Array(j);i<j;i++){k[i]=e[i];}return k;}function f(e,i){var j=e==null?null:typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(j==null)return;var k=[];var n=true;var o=false;var p,B;try{for(j=j.call(e);!(n=(p=j.next()).done);n=true){k.push(p.value);if(i&&k.length===i)break;}}catch(C){o=true;B=C;}finally{try{if(!n&&j["return"]!=null)j["return"]();}finally{if(o)throw B;}}return k;}function g(e){if(Array.isArray(e))return e;}function h(i,C){if(!(i instanceof C)){throw new TypeError("Cannot call a class as a function");}}function l(e,p){for(var i=0;i<p.length;i++){var j=p[i];j.enumerable=j.enumerable||false;j.configurable=true;if("value"in j)j.writable=true;Object.defineProperty(e,j.key,j);}}function m(C,p,e){if(p)l(C.prototype,p);if(e)l(C,e);return C;}function q(e,i){if(typeof i!=="function"&&i!==null){throw new TypeError("Super expression must either be null or a function");}e.prototype=Object.create(i&&i.prototype,{constructor:{value:e,writable:true,configurable:true}});if(i)r(e,i);}function r(o,p){r=Object.setPrototypeOf||function r(o,p){o.__proto__=p;return o;};return r(o,p);}function s(D){var e=v();return function k(){var i=w(D),j;if(e){var N=w(this).constructor;j=Reflect.construct(i,arguments,N);}else{j=i.apply(this,arguments);}return t(this,j);};}function t(e,i){if(i&&(typeof i==="object"||typeof i==="function")){return i;}else if(i!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}return u(e);}function u(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return e;}function v(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function w(o){w=Object.setPrototypeOf?Object.getPrototypeOf:function w(o){return o.__proto__||Object.getPrototypeOf(o);};return w(o);}var x=function(e){q(x,e);var i=s(x);function x(){h(this,x);return i.apply(this,arguments);}m(x,[{key:"init",value:function j(){this.initPromise=Promise.resolve(this);this.instanceType="mock";}},{key:"getLinks",value:function j(o){return Promise.resolve([]);}},{key:"getLinksWithCache",value:function j(o){return Promise.resolve([]);}},{key:"toExternal",value:function j(n,C){return;}},{key:"getStartupAppState",value:function j(o){return Promise.resolve(null);}},{key:"backToPreviousApp",value:function j(){return;}},{key:"hrefForExternal",value:function k(o,C,j){return"";}},{key:"getAppState",value:function k(C,j){return Promise.resolve({});}},{key:"createEmptyAppState",value:function j(C){return Promise.resolve({});}},{key:"isNavigationSupported",value:function j(n,C){return Promise.resolve({});}},{key:"isInitialNavigation",value:function j(){return false;}},{key:"expandCompactHash",value:function j(H){return Promise.resolve({});}},{key:"parseShellHash",value:function p(H){return{};}},{key:"splitHash",value:function j(H){return Promise.resolve({});}},{key:"constructShellHash",value:function j(n){return"";}},{key:"setDirtyFlag",value:function j(D){return;}},{key:"registerDirtyStateProvider",value:function j(D){return;}},{key:"deregisterDirtyStateProvider",value:function j(D){return;}},{key:"createRenderer",value:function j(){return{};}},{key:"getUser",value:function j(){return{};}},{key:"hasUShell",value:function j(){return false;}},{key:"registerNavigationFilter",value:function j(n){return;}},{key:"unregisterNavigationFilter",value:function j(n){return;}},{key:"setBackNavigation",value:function j(C){return;}},{key:"setHierarchy",value:function j(H){return;}},{key:"setTitle",value:function j(T){return;}},{key:"getContentDensity",value:function j(){if(document.body.classList.contains("sapUiSizeCozy")){return"cozy";}else if(document.body.classList.contains("sapUiSizeCompact")){return"compact";}else{return"";}}},{key:"getPrimaryIntent",value:function k(j,p){return Promise.resolve();}}]);return x;}(a);function y(j){return new Promise(function(e,i){j.done(e).fail(i);});}var z=function(e){q(z,e);var n=s(z);function z(){h(this,z);return n.apply(this,arguments);}m(z,[{key:"init",value:function D(){var j=this;var C=this.getContext();var o=C.scopeObject;this.oShellContainer=C.settings.shellContainer;this.instanceType="real";this.linksCache={};this.fnFindSemanticObjectsInCache=function(E){var F=E;var G=[];var N=[];for(var i=0;i<F.length;i++){if(!!F[i][0]&&!!F[i][0].semanticObject){if(this.linksCache[F[i][0].semanticObject]){G.push(this.linksCache[F[i][0].semanticObject].links);Object.defineProperty(E[i][0],"links",{value:this.linksCache[F[i][0].semanticObject].links});}else{N.push(F[i]);}}}return{oldArgs:E,newArgs:N,cachedLinks:G};};this.initPromise=new Promise(function(i,E){j.resolveFn=i;j.rejectFn=E;});var k=this.oShellContainer.getServiceAsync("CrossApplicationNavigation");var U=this.oShellContainer.getServiceAsync("URLParsing");var p=this.oShellContainer.getServiceAsync("ShellNavigation");var B=o.getService("ShellUIService");Promise.all([k,U,p,B]).then(function(i){var E=_(i,4),F=E[0],G=E[1],H=E[2],I=E[3];j.crossAppNavService=F;j.urlParsingService=G;j.shellNavigation=H;j.shellUIService=I;j.resolveFn();}).catch(this.rejectFn);}},{key:"getLinks",value:function j(o){var i=this;return new Promise(function(k,p){i.crossAppNavService.getLinks(o).fail(function(E){p(new Error(E+" sap.fe.core.services.NavigationServiceFactory.getLinks"));}).then(k);});}},{key:"getLinksWithCache",value:function B(o){var p=this;return new Promise(function(C,D){if(o.length===0){C([]);}else{var L;var E=p.fnFindSemanticObjectsInCache(o);if(E.newArgs.length===0){C(E.cachedLinks);}else{p.crossAppNavService.getLinks(E.newArgs).fail(function(i){D(new Error(i+" sap.fe.core.services.NavigationServiceFactory.getLinksWithCache"));}).then(function(L){if(L.length!==0){var F={};for(var i=0;i<L.length;i++){if(L[i].length>0&&E.newArgs[i][0].links===undefined){F[E.newArgs[i][0].semanticObject]={links:L[i]};p.linksCache=Object.assign(p.linksCache,F);}}}if(E.cachedLinks.length===0){C(L);}else{var M=[];var j=0;for(var k=0;k<E.oldArgs.length;k++){if(j<L.length){if(L[j].length>0&&E.oldArgs[k][0].semanticObject===E.newArgs[j][0].semanticObject){M.push(L[j]);j++;}else{M.push(E.oldArgs[k][0].links);}}else{M.push(E.oldArgs[k][0].links);}}C(M);}});}}});}},{key:"getShellContainer",value:function i(){return this.oShellContainer;}},{key:"toExternal",value:function i(N,C){this.crossAppNavService.toExternal(N,C);}},{key:"getStartupAppState",value:function j(o){var i=this;return new Promise(function(k,p){i.crossAppNavService.getStartupAppState(o).fail(function(E){p(new Error(E+" sap.fe.core.services.NavigationServiceFactory.getStartupAppState"));}).then(k);});}},{key:"backToPreviousApp",value:function i(){return this.crossAppNavService.backToPreviousApp();}},{key:"hrefForExternal",value:function j(o,C,i){return this.crossAppNavService.hrefForExternal(o,C,!!i);}},{key:"getAppState",value:function j(C,i){return y(this.crossAppNavService.getAppState(C,i));}},{key:"createEmptyAppState",value:function i(C){return this.crossAppNavService.createEmptyAppState(C);}},{key:"isNavigationSupported",value:function i(N,C){return y(this.crossAppNavService.isNavigationSupported(N,C));}},{key:"isInitialNavigation",value:function i(){return this.crossAppNavService.isInitialNavigation();}},{key:"expandCompactHash",value:function i(H){return this.crossAppNavService.expandCompactHash(H);}},{key:"parseShellHash",value:function p(H){return this.urlParsingService.parseShellHash(H);}},{key:"splitHash",value:function i(H){return this.urlParsingService.splitHash(H);}},{key:"constructShellHash",value:function i(N){return this.urlParsingService.constructShellHash(N);}},{key:"setDirtyFlag",value:function i(D){this.oShellContainer.setDirtyFlag(D);}},{key:"registerDirtyStateProvider",value:function i(D){this.oShellContainer.registerDirtyStateProvider(D);}},{key:"deregisterDirtyStateProvider",value:function i(D){this.oShellContainer.deregisterDirtyStateProvider(D);}},{key:"createRenderer",value:function i(){return this.oShellContainer.createRenderer();}},{key:"getUser",value:function i(){return this.oShellContainer.getUser();}},{key:"hasUShell",value:function i(){return true;}},{key:"registerNavigationFilter",value:function i(N){this.shellNavigation.registerNavigationFilter(N);}},{key:"unregisterNavigationFilter",value:function i(N){this.shellNavigation.unregisterNavigationFilter(N);}},{key:"setBackNavigation",value:function i(C){this.shellUIService.setBackNavigation(C);}},{key:"setHierarchy",value:function i(H){this.shellUIService.setHierarchy(H);}},{key:"setTitle",value:function i(T){this.shellUIService.setTitle(T);}},{key:"getContentDensity",value:function i(){return this.oShellContainer.getUser().getContentDensity();}},{key:"getPrimaryIntent",value:function k(i,p){var j=this;return new Promise(function(o,B){j.crossAppNavService.getPrimaryIntent(i,p).fail(function(E){B(new Error(E+" sap.fe.core.services.NavigationServiceFactory.getPrimaryIntent"));}).then(o);});}}]);return z;}(a);var A=function(e){q(A,e);var i=s(A);function A(){h(this,A);return i.apply(this,arguments);}m(A,[{key:"createInstance",value:function k(o){o.settings.shellContainer=sap.ushell&&sap.ushell.Container;var j=o.settings.shellContainer?new z(o):new x(o);return j.initPromise.then(function(){o.scopeObject.getShellServices=function(){return j;};return j;});}}]);return A;}(S);return A;},false);
@@ -19,7 +19,7 @@ export interface IShellServices {
19
19
 
20
20
  backToPreviousApp(): void;
21
21
 
22
- hrefForExternal(oArgs?: object, oComponent?: object, bAsync?: boolean): string;
22
+ hrefForExternal(oArgs?: object, oComponent?: object, bAsync?: boolean): string | Promise<string>;
23
23
 
24
24
  getAppState(oComponent: Component, sAppStateKey: string): Promise<any>;
25
25
 
@@ -60,6 +60,8 @@ export interface IShellServices {
60
60
  setTitle(sTitle: string): void;
61
61
 
62
62
  getContentDensity(): string;
63
+
64
+ getPrimaryIntent(sSemanticObject: string, mParameters?: object): Promise<any>;
63
65
  }
64
66
 
65
67
  /**
@@ -187,6 +189,10 @@ class ShellServiceMock extends Service<ShellServicesSettings> implements IShellS
187
189
  return "";
188
190
  }
189
191
  }
192
+
193
+ getPrimaryIntent(sSemanticObject: string, mParameters?: object): Promise<any> {
194
+ return Promise.resolve();
195
+ }
190
196
  }
191
197
 
192
198
  /**
@@ -689,6 +695,29 @@ class ShellServices extends Service<Required<ShellServicesSettings>> implements
689
695
  getContentDensity(): string {
690
696
  return (this.oShellContainer.getUser() as any).getContentDensity();
691
697
  }
698
+
699
+ /**
700
+ * For a given semantic object, this method considers all actions associated with the semantic object and
701
+ * returns the one tagged as a "primaryAction". If no inbound tagged as "primaryAction" exists, then it returns
702
+ * the intent of the first inbound (after sorting has been applied) matching the action "displayFactSheet".
703
+ *
704
+ * @private
705
+ * @ui5-restricted
706
+ * @param {string} sSemanticObject Semantic object.
707
+ * @param {object} mParameters See #CrossApplicationNavigation#getLinks for description.
708
+ * @returns {Promise} Promise which will be resolved with an object containing the intent if it exists.
709
+ */
710
+ getPrimaryIntent(sSemanticObject: string, mParameters?: object): Promise<any> {
711
+ return new Promise((resolve, reject) => {
712
+ // eslint-disable-next-line promise/catch-or-return
713
+ this.crossAppNavService
714
+ .getPrimaryIntent(sSemanticObject, mParameters)
715
+ .fail((oError: any) => {
716
+ reject(new Error(oError + " sap.fe.core.services.NavigationServiceFactory.getPrimaryIntent"));
717
+ })
718
+ .then(resolve);
719
+ });
720
+ }
692
721
  }
693
722
 
694
723
  /**