@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
@@ -8,12 +8,18 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
8
8
  var ifElse = BindingExpression.ifElse;
9
9
  var compileBinding = BindingExpression.compileBinding;
10
10
  var bindingExpression = BindingExpression.bindingExpression;
11
+ var getInvolvedDataModelObjects = MetaModelConverter.getInvolvedDataModelObjects;
11
12
  var convertTypes = MetaModelConverter.convertTypes;
12
13
  var evaluateBindingWithModel = JestTemplatingHelper.evaluateBindingWithModel;
13
14
  var getDataModelObjectPathForProperty = JestTemplatingHelper.getDataModelObjectPathForProperty;
14
15
  var getMetaModel = JestTemplatingHelper.getMetaModel;
15
16
  var compileCDS = JestTemplatingHelper.compileCDS;
16
17
  var formatWithTypeInformation = UIFormatters.formatWithTypeInformation;
18
+ var isUsedInNavigationWithQuickViewFacets = FieldTemplating.isUsedInNavigationWithQuickViewFacets;
19
+ var getSemanticObjects = FieldTemplating.getSemanticObjects;
20
+ var getSemanticObjectExpressionToResolve = FieldTemplating.getSemanticObjectExpressionToResolve;
21
+ var getDataPointStyle = FieldTemplating.getDataPointStyle;
22
+ var getDisplayStyle = FieldTemplating.getDisplayStyle;
17
23
  var getValueBinding = FieldTemplating.getValueBinding;
18
24
  var getVisibleExpression = FieldTemplating.getVisibleExpression;
19
25
  var addTextArrangementToBindingExpression = FieldTemplating.addTextArrangementToBindingExpression;
@@ -21,13 +27,15 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
21
27
 
22
28
  describe("Field Templating Testing", function () {
23
29
  var convertedTypes;
30
+ var metaModel;
24
31
  var entitySet;
25
32
  var entityType;
26
33
  var properties = {};
27
34
  beforeAll(function () {
28
35
  try {
29
36
  var sMetadataUrl = compileCDS(path.join(__dirname, "./FieldTemplating.cds"));
30
- return Promise.resolve(getMetaModel(sMetadataUrl)).then(function (metaModel) {
37
+ return Promise.resolve(getMetaModel(sMetadataUrl)).then(function (_getMetaModel) {
38
+ metaModel = _getMetaModel;
31
39
  convertedTypes = convertTypes(metaModel);
32
40
  var maybeEntitySet = convertedTypes.entitySets.find(function (et) {
33
41
  return et.name === "MainEntity";
@@ -47,6 +55,9 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
47
55
  return Promise.reject(e);
48
56
  }
49
57
  });
58
+ beforeEach(function () {
59
+ jest.clearAllMocks();
60
+ });
50
61
  it("#getValueBinding", {
51
62
  "references": [{
52
63
  "type": "BCP",
@@ -54,7 +65,7 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
54
65
  }]
55
66
  }, function () {
56
67
  var textSimpleBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["textBinding"]), {});
57
- expect(textSimpleBinding).toEqual("{path:'textBinding', type: 'sap.ui.model.odata.type.String', formatOptions: {parseKeepsEmptyString: true}}");
68
+ expect(textSimpleBinding).toEqual("{path: 'textBinding', type: 'sap.ui.model.odata.type.String', formatOptions: {parseKeepsEmptyString: true}}");
58
69
  var textDeleteFormatterBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["textBinding"]), {
59
70
  textMaxLines: "10"
60
71
  }, true, //ignoreUnit, it doesn't have unit, so doesn't matter. Tested a few lines later.
@@ -65,18 +76,40 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
65
76
  }, true, true, {
66
77
  $$noPatch: true
67
78
  });
68
- expect(textBindingParametter).toEqual("{path:'textBinding', parameters: {$$noPatch: true}}");
79
+ expect(textBindingParametter).toEqual("{path: 'textBinding', parameters: {$$noPatch: true}}");
69
80
  var textTypeAny = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["textBinding"]), {}, false, false, undefined, true);
70
- expect(textTypeAny).toEqual("{path:'textBinding', type: 'sap.ui.model.odata.type.String', formatOptions: {parseKeepsEmptyString: true}, targetType: 'any'}");
81
+ expect(textTypeAny).toEqual("{path: 'textBinding', type: 'sap.ui.model.odata.type.String', targetType: 'any', formatOptions: {parseKeepsEmptyString: true}}");
71
82
  var emailSimpleBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["emailBinding"]), {});
72
- expect(emailSimpleBinding).toEqual("{path:'emailBinding', type: 'sap.fe.core.type.Email'}");
83
+ expect(emailSimpleBinding).toEqual("{path: 'emailBinding', type: 'sap.fe.core.type.Email'}");
73
84
  var unitWithCurrencyBindingSimpleBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["UnitWithCurrencyBinding"]), {});
74
85
  expect(unitWithCurrencyBindingSimpleBinding).toEqual("{mode:'TwoWay', parts:[{path:'UnitWithCurrencyBinding', type : 'sap.ui.model.odata.type.Int32', formatOptions: {parseAsString: false, emptyString: ''}},{path:'currency', type : 'sap.ui.model.odata.type.String', formatOptions: {parseKeepsEmptyString: true}},{mode:'OneTime',path:'/##@@requestCurrencyCodes',targetType:'any'}],type:'sap.ui.model.odata.type.Currency', formatOptions: {parseAsString: false, emptyString: '', showMeasure: false}}");
75
86
  var unitWithCurrencyBindingIgnoreUnit = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["UnitWithCurrencyBinding"]), {}, true);
76
- expect(unitWithCurrencyBindingIgnoreUnit).toEqual("{path:'UnitWithCurrencyBinding', type: 'sap.ui.model.odata.type.Int32', formatOptions: {parseAsString: false, emptyString: ''}}");
87
+ expect(unitWithCurrencyBindingIgnoreUnit).toEqual("{path: 'UnitWithCurrencyBinding', type: 'sap.ui.model.odata.type.Int32', formatOptions: {parseAsString: false, emptyString: ''}}");
77
88
  var unitWithCurrencyDescriptionBinding = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["UnitWithCurrencyBinding"]), {}, false, false, undefined, true, true);
78
89
  expect(unitWithCurrencyDescriptionBinding).toEqual("{mode:'TwoWay', parts:[{path:'UnitWithCurrencyBinding', type : 'sap.ui.model.odata.type.Int32', formatOptions: {parseAsString: false, emptyString: ''}},{path:'currency', type : 'sap.ui.model.odata.type.String', formatOptions: {parseKeepsEmptyString: true}},{mode:'OneTime',path:'/##@@requestCurrencyCodes',targetType:'any'}],type:'sap.ui.model.odata.type.Currency', formatOptions: {parseAsString: false, emptyString: '', showNumber: false}}");
79
90
  });
91
+ it("#getDisplayStyle", {
92
+ "references": [{
93
+ "type": "JIRA",
94
+ "ID": "FIORITECHP1-21176"
95
+ }]
96
+ }, function () {
97
+ var _entitySet$entityType;
98
+
99
+ var entitySetLineItem = (_entitySet$entityType = entitySet.entityType.annotations.UI) === null || _entitySet$entityType === void 0 ? void 0 : _entitySet$entityType.LineItem;
100
+ var dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[1]);
101
+ var semanticObject = "";
102
+ var formatOptions = {
103
+ valueFormat: "DescriptionValue",
104
+ textAlignMode: "Form",
105
+ retrieveTextFromValueList: true
106
+ };
107
+ var dataFieldConverted = getValueBinding(getDataModelObjectPathForProperty(entitySet, properties["propertyNoTextWithVH"]), {});
108
+ var displayStyle = getDisplayStyle(properties["propertyNoTextWithVH"], dataFieldConverted, dataModelObjectPathForProperty, formatOptions, semanticObject); // Fallback feature for retrieve the text annotation from the value lists:
109
+ // Property has value help, no Text annotation, has display format, used in Form and manifest-switch retrieveTextFromValueList is on
110
+
111
+ expect(displayStyle).toEqual("MdcFieldWithValueHelp");
112
+ });
80
113
  it("#getBindingWithTextArrangement", function () {
81
114
  // Cases to consider
82
115
  // TextOnly
@@ -145,7 +178,7 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
145
178
  _type: "Property",
146
179
  type: "Edm.Int32"
147
180
  };
148
- return expect(compileBinding(formatWithTypeInformation(oPropertyType, bindingExpression("value")))).toEqual("{path:'value', type: 'sap.ui.model.odata.type.Int32', formatOptions: {parseAsString: false, emptyString: ''}}");
181
+ return expect(compileBinding(formatWithTypeInformation(oPropertyType, bindingExpression("value")))).toEqual("{path: 'value', type: 'sap.ui.model.odata.type.Int32', formatOptions: {parseAsString: false, emptyString: ''}}");
149
182
  });
150
183
  it("formatted Double type call", {
151
184
  "references": [{
@@ -157,12 +190,12 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
157
190
  _type: "Property",
158
191
  type: "Edm.Double"
159
192
  };
160
- return expect(compileBinding(formatWithTypeInformation(oPropertyType, bindingExpression("value")))).toEqual("{path:'value', type: 'sap.ui.model.odata.type.Double', formatOptions: {parseAsString: false, emptyString: ''}}");
193
+ return expect(compileBinding(formatWithTypeInformation(oPropertyType, bindingExpression("value")))).toEqual("{path: 'value', type: 'sap.ui.model.odata.type.Double', formatOptions: {parseAsString: false, emptyString: ''}}");
161
194
  });
162
195
  it("can evaluate the visible parameter based on UI.Hidden", function () {
163
- var _entitySet$entityType;
196
+ var _entitySet$entityType2;
164
197
 
165
- var entitySetLineItem = (_entitySet$entityType = entitySet.entityType.annotations.UI) === null || _entitySet$entityType === void 0 ? void 0 : _entitySet$entityType.LineItem;
198
+ var entitySetLineItem = (_entitySet$entityType2 = entitySet.entityType.annotations.UI) === null || _entitySet$entityType2 === void 0 ? void 0 : _entitySet$entityType2.LineItem;
166
199
  var dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[1] // staticHiddenProp
167
200
  );
168
201
  expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("false");
@@ -177,16 +210,16 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
177
210
  expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden} !== true}");
178
211
  dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[5] // dynamicHiddenProp2 with dynamic datafield hidden
179
212
  );
180
- expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= (%{isHidden2} !== true && %{isHidden} !== true)}");
213
+ expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden2} !== true && %{isHidden} !== true}");
181
214
  expect(getVisibleExpression(dataModelObjectPathForProperty, {
182
215
  isAnalytics: true
183
- })).toEqual("{= (%{isHidden2} !== true && %{isHidden} !== true && (%{@$ui5.node.isExpanded} !== true || %{@$ui5.node.level} === 0))}");
216
+ })).toEqual("{= %{isHidden2} !== true && %{isHidden} !== true && (%{@$ui5.node.isExpanded} !== true || %{@$ui5.node.level} === 0)}");
184
217
  dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[6] // hiddenWith11Nav with dynamic datafield hidden
185
218
  );
186
- expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= (%{isHidden2} !== true && %{SpecialChild/isHidden} !== true)}");
219
+ expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden2} !== true && %{SpecialChild/isHidden} !== true}");
187
220
  dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[7] // hiddenWith1NNav with dynamic datafield hidden -> Doesn't make sense and model will complain but heh :(
188
221
  );
189
- expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= (%{isHidden2} !== true && %{_Elements/isHidden} !== true)}");
222
+ expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden2} !== true && %{_Elements/isHidden} !== true}");
190
223
  dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[8] // Data Field For Action
191
224
  );
192
225
  expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("true");
@@ -195,7 +228,7 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
195
228
  expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("true");
196
229
  expect(getVisibleExpression(dataModelObjectPathForProperty, {
197
230
  isAnalytics: true
198
- })).toEqual("{= (%{@$ui5.node.isExpanded} !== true || %{@$ui5.node.level} === 0)}");
231
+ })).toEqual("{= %{@$ui5.node.isExpanded} !== true || %{@$ui5.node.level} === 0}");
199
232
  dataModelObjectPathForProperty = getDataModelObjectPathForProperty(entitySet, entitySetLineItem[10] // DataFieldForAnnotation -> data point dynamic visible
200
233
  );
201
234
  expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("{= %{isHidden} !== true}");
@@ -206,6 +239,75 @@ sap.ui.define(["sap/fe/macros/field/FieldTemplating", "sap/fe/core/templating/UI
206
239
  );
207
240
  expect(getVisibleExpression(dataModelObjectPathForProperty)).toEqual("true");
208
241
  });
242
+ it("getDataPointStyle with datapoint having Visualization", function () {
243
+ var oContextPath = metaModel.createBindingContext("/MainEntity");
244
+ var oMetaPath = metaModel.createBindingContext("/MainEntity/@com.sap.vocabularies.UI.v1.HeaderFacets/0/Target/$AnnotationPath/");
245
+ var oDataModelPath = getInvolvedDataModelObjects(oMetaPath, oContextPath);
246
+ expect(getDataPointStyle(oDataModelPath)).toEqual(undefined);
247
+ });
248
+ it("getDataPointStyle with datapoint having QuickViewFacets", function () {
249
+ var oContextPath = metaModel.createBindingContext("/MainEntity");
250
+ var oMetaPath = metaModel.createBindingContext("/MainEntity/@com.sap.vocabularies.UI.v1.HeaderFacets/2/Target/$AnnotationPath/");
251
+ var oDataModelPath = getInvolvedDataModelObjects(oMetaPath, oContextPath);
252
+ expect(getDataPointStyle(oDataModelPath)).toEqual("LinkWithQuickViewForm");
253
+ });
254
+ it("getDataPointStyle with datapoint having SemanticObjects", function () {
255
+ var oContextPath = metaModel.createBindingContext("/MainEntity");
256
+ var oMetaPath = metaModel.createBindingContext("/MainEntity/@com.sap.vocabularies.UI.v1.HeaderFacets/1/Target/$AnnotationPath/");
257
+ var oDataModelPath = getInvolvedDataModelObjects(oMetaPath, oContextPath);
258
+ expect(getDataPointStyle(oDataModelPath)).toEqual("LinkWrapper");
259
+ });
260
+ it("getDataPointStyle with datapoint not having Visualization, Quick View Facets, SemanticObjects", function () {
261
+ var oContextPath = metaModel.createBindingContext("/MainEntity");
262
+ var oMetaPath = metaModel.createBindingContext("/MainEntity/@com.sap.vocabularies.UI.v1.HeaderFacets/3/Target/$AnnotationPath/");
263
+ var oDataModelPath = getInvolvedDataModelObjects(oMetaPath, oContextPath);
264
+ expect(getDataPointStyle(oDataModelPath)).toEqual(undefined);
265
+ });
266
+ it("getSemanticObjectExpressionToResolve with annotations", function () {
267
+ var oAnnotations = {
268
+ Label: "Semantic Object Property",
269
+ SemanticObject: "v4-Freestyle"
270
+ };
271
+ expect(getSemanticObjectExpressionToResolve(oAnnotations)).toMatchSnapshot();
272
+ });
273
+ it("getSemanticObjectExpressionToResolve with annotations and semantic object qualifier", function () {
274
+ var oAnnotations = {
275
+ "Label": "Semantic Object Property",
276
+ "SemanticObject#Qualifier": "v4-Freestyle"
277
+ };
278
+ expect(getSemanticObjectExpressionToResolve(oAnnotations)).toMatchSnapshot();
279
+ });
280
+ it("getSemanticObjectExpressionToResolve without annotations", function () {
281
+ var oAnnotations = {};
282
+ expect(getSemanticObjectExpressionToResolve(oAnnotations)).toMatchSnapshot();
283
+ });
284
+ it("getSemanticObjects with aSemObjExprToResolve", function () {
285
+ var aSemObjExprToResolve = [{
286
+ key: "v4-Freestyle",
287
+ value: "v4-Freestyle"
288
+ }];
289
+ var oSemanticObjectContext = getSemanticObjects(aSemObjExprToResolve);
290
+ expect(oSemanticObjectContext.getObject()).toMatchSnapshot();
291
+ });
292
+ it("getSemanticObjects without aSemObjExprToResolve", function () {
293
+ var aSemObjExprToResolve = [];
294
+ var oSemanticObjectContext = getSemanticObjects(aSemObjExprToResolve);
295
+ expect(oSemanticObjectContext.getObject()).toMatchSnapshot();
296
+ });
297
+ it("isUsedInNavigationWithQuickViewFacets with datapoint having QuickViewFacets", function () {
298
+ var oContextPath = metaModel.createBindingContext("/MainEntity");
299
+ var oMetaPath = metaModel.createBindingContext("/MainEntity/@com.sap.vocabularies.UI.v1.HeaderFacets/2/Target/$AnnotationPath/");
300
+ var oDataModelPath = getInvolvedDataModelObjects(oMetaPath, oContextPath);
301
+ var oProperty = oDataModelPath === null || oDataModelPath === void 0 ? void 0 : oDataModelPath.targetObject.Value.$target;
302
+ expect(isUsedInNavigationWithQuickViewFacets(oDataModelPath, oProperty)).toEqual(true);
303
+ });
304
+ it("isUsedInNavigationWithQuickViewFacets with datapoint not having Quick View Facets", function () {
305
+ var oContextPath = metaModel.createBindingContext("/MainEntity");
306
+ var oMetaPath = metaModel.createBindingContext("/MainEntity/@com.sap.vocabularies.UI.v1.HeaderFacets/3/Target/$AnnotationPath/");
307
+ var oDataModelPath = getInvolvedDataModelObjects(oMetaPath, oContextPath);
308
+ var oProperty = oDataModelPath === null || oDataModelPath === void 0 ? void 0 : oDataModelPath.targetObject.Value.$target;
309
+ expect(isUsedInNavigationWithQuickViewFacets(oDataModelPath, oProperty)).toEqual(false);
310
+ });
209
311
  });
210
312
  }, false);
211
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkVGVtcGxhdGluZy5zcGVjLnRzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiY29udmVydGVkVHlwZXMiLCJlbnRpdHlTZXQiLCJlbnRpdHlUeXBlIiwicHJvcGVydGllcyIsImJlZm9yZUFsbCIsInNNZXRhZGF0YVVybCIsImNvbXBpbGVDRFMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImdldE1ldGFNb2RlbCIsIm1ldGFNb2RlbCIsImNvbnZlcnRUeXBlcyIsIm1heWJlRW50aXR5U2V0IiwiZW50aXR5U2V0cyIsImZpbmQiLCJldCIsIm5hbWUiLCJlbnRpdHlQcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3AiLCJFcnJvciIsIml0IiwidGV4dFNpbXBsZUJpbmRpbmciLCJnZXRWYWx1ZUJpbmRpbmciLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkiLCJleHBlY3QiLCJ0b0VxdWFsIiwidGV4dERlbGV0ZUZvcm1hdHRlckJpbmRpbmciLCJ0ZXh0TWF4TGluZXMiLCJ0ZXh0QmluZGluZ1BhcmFtZXR0ZXIiLCIkJG5vUGF0Y2giLCJ0ZXh0VHlwZUFueSIsInVuZGVmaW5lZCIsImVtYWlsU2ltcGxlQmluZGluZyIsInVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nU2ltcGxlQmluZGluZyIsInVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nSWdub3JlVW5pdCIsInVuaXRXaXRoQ3VycmVuY3lEZXNjcmlwdGlvbkJpbmRpbmciLCJ0ZXh0T25seUJpbmRpbmciLCJnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCIsImJpbmRpbmdFeHByZXNzaW9uIiwidG9NYXRjaFNuYXBzaG90IiwiY29tcGlsZUJpbmRpbmciLCJ0b0NvbnRhaW4iLCJldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwiLCJ0YXJnZXRUZXh0Iiwibm9UZXh0QmluZGluZyIsIm5vVGV4dCIsInRleHRGaXJzdEJpbmRpbmciLCJ0ZXh0Rmlyc3QiLCJ0ZXh0TGFzdEJpbmRpbmciLCJ0ZXh0TGFzdCIsImZ1bGxDb250ZXh0Iiwib3RoZXJNb2RlbEJpbmRpbmciLCJhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uIiwibm90IiwiYWRkVGV4dExhc3RCaW5kaW5nIiwiY29tcGxleFRleHRCaW5kaW5nIiwiaWZFbHNlIiwibW9kZWxDb250ZW50IiwidGVzdFByb3AiLCJvUHJvcGVydHlUeXBlIiwiX3R5cGUiLCJ0eXBlIiwiZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbiIsImVudGl0eVNldExpbmVJdGVtIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkxpbmVJdGVtIiwiZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5IiwiZ2V0VmlzaWJsZUV4cHJlc3Npb24iLCJpc0FuYWx5dGljcyJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYUFBLEVBQUFBLFFBQVEsQ0FBQywwQkFBRCxFQUE2QixZQUFNO0FBQzFDLFFBQUlDLGNBQUo7QUFDQSxRQUFJQyxTQUFKO0FBQ0EsUUFBSUMsVUFBSjtBQUNBLFFBQU1DLFVBQW9DLEdBQUcsRUFBN0M7QUFDQUMsSUFBQUEsU0FBUztBQUFBLFVBQWE7QUFDckIsWUFBTUMsWUFBWSxHQUFHQyxVQUFVLENBQUNDLElBQUksQ0FBQ0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLHVCQUFyQixDQUFELENBQS9CO0FBRHFCLCtCQUVHQyxZQUFZLENBQUNMLFlBQUQsQ0FGZixpQkFFZk0sU0FGZTtBQUdyQlgsVUFBQUEsY0FBYyxHQUFHWSxZQUFZLENBQUNELFNBQUQsQ0FBN0I7QUFDQSxjQUFNRSxjQUFjLEdBQUdiLGNBQWMsQ0FBQ2MsVUFBZixDQUEwQkMsSUFBMUIsQ0FBK0IsVUFBQUMsRUFBRTtBQUFBLG1CQUFJQSxFQUFFLENBQUNDLElBQUgsS0FBWSxZQUFoQjtBQUFBLFdBQWpDLENBQXZCOztBQUpxQixjQUtqQkosY0FMaUI7QUFNcEJaLFlBQUFBLFNBQVMsR0FBR1ksY0FBWjtBQUNBWCxZQUFBQSxVQUFVLEdB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O0FBSUF2QyxNQUFBQSxNQUFNLENBQUM0QyxvQkFBb0IsQ0FBQ0QsOEJBQUQsQ0FBckIsQ0FBTixDQUE2RDFDLE9BQTdELENBQXFFLDBCQUFyRTtBQUNBMEMsTUFBQUEsOEJBQThCLEdBQUc1QyxpQ0FBaUMsQ0FDakV4QixTQURpRSxFQUVqRWdFLGlCQUFpQixDQUFDLEVBQUQsQ0FGZ0QsQ0FFMUI7QUFGMEIsT0FBbEU7QUFJQXZDLE1BQUFBLE1BQU0sQ0FBQzRDLG9CQUFvQixDQUFDRCw4QkFBRCxDQUFyQixDQUFOLENBQTZEMUMsT0FBN0QsQ0FBcUUsTUFBckU7QUFDQTBDLE1BQUFBLDhCQUE4QixHQUFHNUMsaUNBQWlDLENBQ2pFeEIsU0FEaUUsRUFFakVnRSxpQkFBaUIsQ0FBQyxFQUFELENBRmdELENBRTFCO0FBRjBCLE9BQWxFO0FBSUF2QyxNQUFBQSxNQUFNLENBQUM0QyxvQkFBb0IsQ0FBQ0QsOEJBQUQsQ0FBckIsQ0FBTixDQUE2RDFDLE9BQTdELENBQXFFLE1BQXJFO0FBQ0EsS0F4RUMsQ0FBRjtBQXlFQSxHQXhSTyxDQUFSIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCxcblx0YWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbixcblx0Z2V0VmlzaWJsZUV4cHJlc3Npb24sXG5cdEZpZWxkRm9ybWF0T3B0aW9ucyxcblx0Z2V0VmFsdWVCaW5kaW5nXG59IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpZWxkL0ZpZWxkVGVtcGxhdGluZ1wiO1xuaW1wb3J0IHsgZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1VJRm9ybWF0dGVyc1wiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGNvbXBpbGVDRFMsIGdldE1ldGFNb2RlbCwgZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5LCBldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwgfSBmcm9tIFwic2FwL2ZlL3Rlc3QvSmVzdFRlbXBsYXRpbmdIZWxwZXJcIjtcbmltcG9ydCB7IGNvbnZlcnRUeXBlcyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgQW55QW5ub3RhdGlvbiwgRW50aXR5U2V0LCBFbnRpdHlUeXBlLCBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L2Fubm90YXRpb24tY29udmVydGVyXCI7XG5pbXBvcnQgeyBiaW5kaW5nRXhwcmVzc2lvbiwgY29tcGlsZUJpbmRpbmcsIGlmRWxzZSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBMaW5lSXRlbSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuXG5kZXNjcmliZShcIkZpZWxkIFRlbXBsYXRpbmcgVGVzdGluZ1wiLCAoKSA9PiB7XG5cdGxldCBjb252ZXJ0ZWRUeXBlcztcblx0bGV0IGVudGl0eVNldDogRW50aXR5U2V0O1xuXHRsZXQgZW50aXR5VHlwZTogRW50aXR5VHlwZTtcblx0Y29uc3QgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgUHJvcGVydHk+ID0ge307XG5cdGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3Qgc01ldGFkYXRhVXJsID0gY29tcGlsZUNEUyhwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4vRmllbGRUZW1wbGF0aW5nLmNkc1wiKSk7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gYXdhaXQgZ2V0TWV0YU1vZGVsKHNNZXRhZGF0YVVybCk7XG5cdFx0Y29udmVydGVkVHlwZXMgPSBjb252ZXJ0VHlwZXMobWV0YU1vZGVsKTtcblx0XHRjb25zdCBtYXliZUVudGl0eVNldCA9IGNvbnZlcnRlZFR5cGVzLmVudGl0eVNldHMuZmluZChldCA9PiBldC5uYW1lID09PSBcIk1haW5FbnRpdHlcIik7XG5cdFx0aWYgKG1heWJlRW50aXR5U2V0KSB7XG5cdFx0XHRlbnRpdHlTZXQgPSBtYXliZUVudGl0eVNldDtcblx0XHRcdGVudGl0eVR5cGUgPSBtYXliZUVudGl0eVNldC5lbnRpdHlUeXBlO1xuXHRcdFx0ZW50aXR5VHlwZS5lbnRpdHlQcm9wZXJ0aWVzLmZvckVhY2gocHJvcCA9PiB7XG5cdFx0XHRcdHByb3BlcnRpZXNbcHJvcC5uYW1lXSA9IHByb3A7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiRXJyb3IgaW4gdGVzdCBzZXR1cFwiKTtcblx0XHR9XG5cdH0pO1xuXG5cdGl0KFxuXHRcdFwiI2dldFZhbHVlQmluZGluZ1wiLFxuXHRcdHtcblx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRcInR5cGVcIjogXCJCQ1BcIixcblx0XHRcdFx0XHRcIklEXCI6IFwiMjE3MDIzNzE2NVwiXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdCgpID0+IHtcblx0XHRcdGNvbnN0IHRleHRTaW1wbGVCaW5kaW5nID0gZ2V0VmFsdWVCaW5kaW5nKGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJ0ZXh0QmluZGluZ1wiXSksIHt9KTtcblx0XHRcdGV4cGVjdCh0ZXh0U2ltcGxlQmluZGluZykudG9FcXVhbChcblx0XHRcdFx0XCJ7cGF0aDondGV4dEJpbmRpbmcnLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nJywgZm9ybWF0T3B0aW9uczoge3BhcnNlS2VlcHNFbXB0eVN0cmluZzogdHJ1ZX19XCJcblx0XHRcdCk7XG5cblx0XHRcdGNvbnN0IHRleHREZWxldGVGb3JtYXR0ZXJCaW5kaW5nID0gZ2V0VmFsdWVCaW5kaW5nKFxuXHRcdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1widGV4dEJpbmRpbmdcIl0pLFxuXHRcdFx0XHR7IHRleHRNYXhMaW5lczogXCIxMFwiIH0sXG5cdFx0XHRcdHRydWUsIC8vaWdub3JlVW5pdCwgaXQgZG9lc24ndCBoYXZlIHVuaXQsIHNvIGRvZXNuJ3QgbWF0dGVyLiBUZXN0ZWQgYSBmZXcgbGluZXMgbGF0ZXIuXG5cdFx0XHRcdHRydWVcblx0XHRcdCk7XG5cdFx0XHRleHBlY3QodGV4dERlbGV0ZUZvcm1hdHRlckJpbmRpbmcpLnRvRXF1YWwoXCJ7dGV4dEJpbmRpbmd9XCIpO1xuXG5cdFx0XHRjb25zdCB0ZXh0QmluZGluZ1BhcmFtZXR0ZXIgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJ0ZXh0QmluZGluZ1wiXSksXG5cdFx0XHRcdHsgdGV4dE1heExpbmVzOiBcIjEwXCIgfSxcblx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0eyAkJG5vUGF0Y2g6IHRydWUgfVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh0ZXh0QmluZGluZ1BhcmFtZXR0ZXIpLnRvRXF1YWwoXCJ7cGF0aDondGV4dEJpbmRpbmcnLCBwYXJhbWV0ZXJzOiB7JCRub1BhdGNoOiB0cnVlfX1cIik7XG5cblx0XHRcdGNvbnN0IHRleHRUeXBlQW55ID0gZ2V0VmFsdWVCaW5kaW5nKFxuXHRcdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1widGV4dEJpbmRpbmdcIl0pLFxuXHRcdFx0XHR7fSxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdGZhbHNlLFxuXHRcdFx0XHR1bmRlZmluZWQsXG5cdFx0XHRcdHRydWVcblx0XHRcdCk7XG5cdFx0XHRleHBlY3QodGV4dFR5cGVBbnkpLnRvRXF1YWwoXG5cdFx0XHRcdFwie3BhdGg6J3RleHRCaW5kaW5nJywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZycsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHRydWV9LCB0YXJnZXRUeXBlOiAnYW55J31cIlxuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3QgZW1haWxTaW1wbGVCaW5kaW5nID0gZ2V0VmFsdWVCaW5kaW5nKGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJlbWFpbEJpbmRpbmdcIl0pLCB7fSk7XG5cdFx0XHRleHBlY3QoZW1haWxTaW1wbGVCaW5kaW5nKS50b0VxdWFsKFwie3BhdGg6J2VtYWlsQmluZGluZycsIHR5cGU6ICdzYXAuZmUuY29yZS50eXBlLkVtYWlsJ31cIik7XG5cblx0XHRcdGNvbnN0IHVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nU2ltcGxlQmluZGluZyA9IGdldFZhbHVlQmluZGluZyhcblx0XHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcIlVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nXCJdKSxcblx0XHRcdFx0e31cblx0XHRcdCk7XG5cdFx0XHRleHBlY3QodW5pdFdpdGhDdXJyZW5jeUJpbmRpbmdTaW1wbGVCaW5kaW5nKS50b0VxdWFsKFxuXHRcdFx0XHRcInttb2RlOidUd29XYXknLCBwYXJ0czpbe3BhdGg6J1VuaXRXaXRoQ3VycmVuY3lCaW5kaW5nJywgdHlwZSA6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnQzMicsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnfX0se3BhdGg6J2N1cnJlbmN5JywgdHlwZSA6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmcnLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VLZWVwc0VtcHR5U3RyaW5nOiB0cnVlfX0se21vZGU6J09uZVRpbWUnLHBhdGg6Jy8jI0BAcmVxdWVzdEN1cnJlbmN5Q29kZXMnLHRhcmdldFR5cGU6J2FueSd9XSx0eXBlOidzYXAudWkubW9kZWwub2RhdGEudHlwZS5DdXJyZW5jeScsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnLCBzaG93TWVhc3VyZTogZmFsc2V9fVwiXG5cdFx0XHQpO1xuXG5cdFx0XHRjb25zdCB1bml0V2l0aEN1cnJlbmN5QmluZGluZ0lnbm9yZVVuaXQgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJVbml0V2l0aEN1cnJlbmN5QmluZGluZ1wiXSksXG5cdFx0XHRcdHt9LFxuXHRcdFx0XHR0cnVlXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nSWdub3JlVW5pdCkudG9FcXVhbChcblx0XHRcdFx0XCJ7cGF0aDonVW5pdFdpdGhDdXJyZW5jeUJpbmRpbmcnLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuSW50MzInLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VBc1N0cmluZzogZmFsc2UsIGVtcHR5U3RyaW5nOiAnJ319XCJcblx0XHRcdCk7XG5cblx0XHRcdGNvbnN0IHVuaXRXaXRoQ3VycmVuY3lEZXNjcmlwdGlvbkJpbmRpbmcgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJVbml0V2l0aEN1cnJlbmN5QmluZGluZ1wiXSksXG5cdFx0XHRcdHt9LFxuXHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh1bml0V2l0aEN1cnJlbmN5RGVzY3JpcHRpb25CaW5kaW5nKS50b0VxdWFsKFxuXHRcdFx0XHRcInttb2RlOidUd29XYXknLCBwYXJ0czpbe3BhdGg6J1VuaXRXaXRoQ3VycmVuY3lCaW5kaW5nJywgdHlwZSA6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnQzMicsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnfX0se3BhdGg6J2N1cnJlbmN5JywgdHlwZSA6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5TdHJpbmcnLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VLZWVwc0VtcHR5U3RyaW5nOiB0cnVlfX0se21vZGU6J09uZVRpbWUnLHBhdGg6Jy8jI0BAcmVxdWVzdEN1cnJlbmN5Q29kZXMnLHRhcmdldFR5cGU6J2FueSd9XSx0eXBlOidzYXAudWkubW9kZWwub2RhdGEudHlwZS5DdXJyZW5jeScsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnLCBzaG93TnVtYmVyOiBmYWxzZX19XCJcblx0XHRcdCk7XG5cdFx0fVxuXHQpO1xuXG5cdGl0KFwiI2dldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50XCIsICgpID0+IHtcblx0XHQvLyBDYXNlcyB0byBjb25zaWRlclxuXG5cdFx0Ly8gVGV4dE9ubHlcblx0XHRjb25zdCB0ZXh0T25seUJpbmRpbmcgPSBnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChcblx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJ0ZXh0T25seVwiXSksXG5cdFx0XHRiaW5kaW5nRXhwcmVzc2lvbihcInRleHRPbmx5XCIpXG5cdFx0KTtcblx0XHRleHBlY3QodGV4dE9ubHlCaW5kaW5nKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodGV4dE9ubHlCaW5kaW5nKSkudG9Db250YWluKFwidGFyZ2V0VGV4dFwiKTtcblx0XHRleHBlY3QoZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsKGNvbXBpbGVCaW5kaW5nKHRleHRPbmx5QmluZGluZyksIHsgdGFyZ2V0VGV4dDogXCJZb2xvXCIgfSkpLnRvRXF1YWwoXCJZb2xvXCIpO1xuXG5cdFx0Ly8gTm8gdGV4dCBhcnJhbmdlbWVudFxuXHRcdGNvbnN0IG5vVGV4dEJpbmRpbmcgPSBnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChcblx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJub1RleHRcIl0pLFxuXHRcdFx0YmluZGluZ0V4cHJlc3Npb24oXCJub1RleHRcIilcblx0XHQpO1xuXHRcdGV4cGVjdChub1RleHRCaW5kaW5nKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcobm9UZXh0QmluZGluZykpLnRvQ29udGFpbihcIm5vVGV4dFwiKTtcblx0XHRleHBlY3QoZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsKGNvbXBpbGVCaW5kaW5nKG5vVGV4dEJpbmRpbmcpLCB7IG5vVGV4dDogXCJZb2xvXCIgfSkpLnRvRXF1YWwoXCJZb2xvXCIpO1xuXG5cdFx0Ly8gVGV4dEZpcnN0XG5cdFx0Y29uc3QgdGV4dEZpcnN0QmluZGluZyA9IGdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50KFxuXHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcInRleHRGaXJzdFwiXSksXG5cdFx0XHRiaW5kaW5nRXhwcmVzc2lvbihcInRleHRGaXJzdFwiKVxuXHRcdCk7XG5cdFx0ZXhwZWN0KHRleHRGaXJzdEJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0ZXh0Rmlyc3RCaW5kaW5nKSkudG9Db250YWluKFwidGV4dEZpcnN0XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0ZXh0Rmlyc3RCaW5kaW5nKSkudG9Db250YWluKFwidGFyZ2V0VGV4dFwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoY29tcGlsZUJpbmRpbmcodGV4dEZpcnN0QmluZGluZyksIHsgdGV4dEZpcnN0OiBcIllvbG8gTGFzdFwiLCB0YXJnZXRUZXh0OiBcIllvbG8gRGVzY3JpcHRpb25cIiB9KVxuXHRcdCkudG9FcXVhbChcIllvbG8gRGVzY3JpcHRpb24gKFlvbG8gTGFzdClcIik7XG5cblx0XHQvLyBUZXh0TGFzdFxuXHRcdGNvbnN0IHRleHRMYXN0QmluZGluZyA9IGdldEJpbmRpbmdXaXRoVGV4dEFycmFuZ2VtZW50KFxuXHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcInRleHRMYXN0XCJdKSxcblx0XHRcdGJpbmRpbmdFeHByZXNzaW9uKFwidGV4dExhc3RcIilcblx0XHQpO1xuXHRcdGV4cGVjdCh0ZXh0TGFzdEJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyh0ZXh0TGFzdEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0ZXh0TGFzdFwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodGV4dExhc3RCaW5kaW5nKSkudG9Db250YWluKFwidGFyZ2V0VGV4dFwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoY29tcGlsZUJpbmRpbmcodGV4dExhc3RCaW5kaW5nKSwgeyB0ZXh0TGFzdDogXCJZb2xvIEZpcnN0XCIsIHRhcmdldFRleHQ6IFwiWW9sbyBEZXNjcmlwdGlvblwiIH0pXG5cdFx0KS50b0VxdWFsKFwiWW9sbyBGaXJzdCAoWW9sbyBEZXNjcmlwdGlvbilcIik7XG5cdH0pO1xuXG5cdGl0KFwiI2FkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb25cIiwgKCkgPT4ge1xuXHRcdGNvbnN0IGZ1bGxDb250ZXh0ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCk7XG5cblx0XHRjb25zdCBvdGhlck1vZGVsQmluZGluZyA9IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24oYmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0TGFzdFwiLCBcIm90aGVyTW9kZWxcIiksIGZ1bGxDb250ZXh0KTtcblx0XHRleHBlY3Qob3RoZXJNb2RlbEJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvdGhlck1vZGVsQmluZGluZykpLnRvQ29udGFpbihcInRleHRMYXN0XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhvdGhlck1vZGVsQmluZGluZykpLm5vdC50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXG5cdFx0Y29uc3QgYWRkVGV4dExhc3RCaW5kaW5nID0gYWRkVGV4dEFycmFuZ2VtZW50VG9CaW5kaW5nRXhwcmVzc2lvbihiaW5kaW5nRXhwcmVzc2lvbihcInRleHRMYXN0XCIpLCBmdWxsQ29udGV4dCk7XG5cdFx0ZXhwZWN0KGFkZFRleHRMYXN0QmluZGluZykudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGFkZFRleHRMYXN0QmluZGluZykpLnRvQ29udGFpbihcInRleHRMYXN0XCIpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhhZGRUZXh0TGFzdEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0YXJnZXRUZXh0XCIpO1xuXHRcdGV4cGVjdChcblx0XHRcdGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyhhZGRUZXh0TGFzdEJpbmRpbmcpLCB7IHRleHRMYXN0OiBcIllvbG8gRmlyc3RcIiwgdGFyZ2V0VGV4dDogXCJZb2xvIERlc2NyaXB0aW9uXCIgfSlcblx0XHQpLnRvRXF1YWwoXCJZb2xvIEZpcnN0IChZb2xvIERlc2NyaXB0aW9uKVwiKTtcblxuXHRcdGNvbnN0IGNvbXBsZXhUZXh0QmluZGluZyA9IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24oXG5cdFx0XHRpZkVsc2UoYmluZGluZ0V4cHJlc3Npb24oXCJ0ZXN0UHJvcFwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0TGFzdFwiKSwgYmluZGluZ0V4cHJlc3Npb24oXCJub1RleHRcIikpLFxuXHRcdFx0ZnVsbENvbnRleHRcblx0XHQpO1xuXHRcdGV4cGVjdChjb21wbGV4VGV4dEJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhjb21wbGV4VGV4dEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0ZXh0TGFzdFwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29tcGxleFRleHRCaW5kaW5nKSkudG9Db250YWluKFwidGFyZ2V0VGV4dFwiKTtcblx0XHRjb25zdCBtb2RlbENvbnRlbnQgPSB7XG5cdFx0XHR0ZXN0UHJvcDogdHJ1ZSxcblx0XHRcdHRleHRMYXN0OiBcIllvbG8gRmlyc3RcIixcblx0XHRcdHRhcmdldFRleHQ6IFwiWW9sbyBEZXNjcmlwdGlvblwiLFxuXHRcdFx0bm9UZXh0OiBcIk5vdCBZb2xvXCJcblx0XHR9O1xuXHRcdGV4cGVjdChldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoY29tcGlsZUJpbmRpbmcoY29tcGxleFRleHRCaW5kaW5nKSwgbW9kZWxDb250ZW50KSkudG9FcXVhbChcIllvbG8gRmlyc3QgKFlvbG8gRGVzY3JpcHRpb24pXCIpO1xuXG5cdFx0bW9kZWxDb250ZW50LnRlc3RQcm9wID0gZmFsc2U7XG5cdFx0ZXhwZWN0KGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyhjb21wbGV4VGV4dEJpbmRpbmcpLCBtb2RlbENvbnRlbnQpKS50b0VxdWFsKFwiTm90IFlvbG9cIik7XG5cdH0pO1xuXG5cdGl0KFwiZm9ybWF0dGVkIEludGVnZXIgdHlwZSBjYWxsXCIsICgpID0+IHtcblx0XHRjb25zdCBvUHJvcGVydHlUeXBlID0geyBfdHlwZTogXCJQcm9wZXJ0eVwiLCB0eXBlOiBcIkVkbS5JbnQzMlwiIH0gYXMgUHJvcGVydHk7XG5cdFx0cmV0dXJuIGV4cGVjdChjb21waWxlQmluZGluZyhmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uKG9Qcm9wZXJ0eVR5cGUsIGJpbmRpbmdFeHByZXNzaW9uKFwidmFsdWVcIikpKSkudG9FcXVhbChcblx0XHRcdFwie3BhdGg6J3ZhbHVlJywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludDMyJywgZm9ybWF0T3B0aW9uczoge3BhcnNlQXNTdHJpbmc6IGZhbHNlLCBlbXB0eVN0cmluZzogJyd9fVwiXG5cdFx0KTtcblx0fSk7XG5cblx0aXQoXG5cdFx0XCJmb3JtYXR0ZWQgRG91YmxlIHR5cGUgY2FsbFwiLFxuXHRcdHtcblx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRcInR5cGVcIjogXCJCQ1BcIixcblx0XHRcdFx0XHRcIklEXCI6IFwiMjE4MDIxMjE0OFwiXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdCgpID0+IHtcblx0XHRcdGNvbnN0IG9Qcm9wZXJ0eVR5cGUgPSB7IF90eXBlOiBcIlByb3BlcnR5XCIsIHR5cGU6IFwiRWRtLkRvdWJsZVwiIH0gYXMgUHJvcGVydHk7XG5cdFx0XHRyZXR1cm4gZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGZvcm1hdFdpdGhUeXBlSW5mb3JtYXRpb24ob1Byb3BlcnR5VHlwZSwgYmluZGluZ0V4cHJlc3Npb24oXCJ2YWx1ZVwiKSkpKS50b0VxdWFsKFxuXHRcdFx0XHRcIntwYXRoOid2YWx1ZScsIHR5cGU6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5Eb3VibGUnLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VBc1N0cmluZzogZmFsc2UsIGVtcHR5U3RyaW5nOiAnJ319XCJcblx0XHRcdCk7XG5cdFx0fVxuXHQpO1xuXG5cdGl0KFwiY2FuIGV2YWx1YXRlIHRoZSB2aXNpYmxlIHBhcmFtZXRlciBiYXNlZCBvbiBVSS5IaWRkZW5cIiwgKCkgPT4ge1xuXHRcdGNvbnN0IGVudGl0eVNldExpbmVJdGVtID0gZW50aXR5U2V0LmVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkxpbmVJdGVtIGFzIExpbmVJdGVtO1xuXHRcdGxldCBkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVsxXSBhcyBBbnlBbm5vdGF0aW9uIC8vIHN0YXRpY0hpZGRlblByb3Bcblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMl0gYXMgQW55QW5ub3RhdGlvbiAvLyBkeW5hbWljSGlkZGVuUHJvcFxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ7PSAle2lzSGlkZGVufSAhPT0gdHJ1ZX1cIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bM10gYXMgQW55QW5ub3RhdGlvbiAvLyB0ZXh0Rmlyc3Qgd2l0aCBkYXRhRmllbGQgc3RhdGljYWxseSBoaWRkZW5cblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bNF0gYXMgQW55QW5ub3RhdGlvbiAvLyB0ZXh0T25seSB3aXRoIGRhdGFGaWVsZCBkeW5hbWljYWxseSBoaWRkZW5cblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwiez0gJXtpc0hpZGRlbn0gIT09IHRydWV9XCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzVdIGFzIEFueUFubm90YXRpb24gLy8gZHluYW1pY0hpZGRlblByb3AyIHdpdGggZHluYW1pYyBkYXRhZmllbGQgaGlkZGVuXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcIns9ICgle2lzSGlkZGVuMn0gIT09IHRydWUgJiYgJXtpc0hpZGRlbn0gIT09IHRydWUpfVwiKTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5LCB7IGlzQW5hbHl0aWNzOiB0cnVlIH0gYXMgRmllbGRGb3JtYXRPcHRpb25zKSkudG9FcXVhbChcblx0XHRcdFwiez0gKCV7aXNIaWRkZW4yfSAhPT0gdHJ1ZSAmJiAle2lzSGlkZGVufSAhPT0gdHJ1ZSAmJiAoJXtAJHVpNS5ub2RlLmlzRXhwYW5kZWR9ICE9PSB0cnVlIHx8ICV7QCR1aTUubm9kZS5sZXZlbH0gPT09IDApKX1cIlxuXHRcdCk7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bNl0gYXMgQW55QW5ub3RhdGlvbiAvLyBoaWRkZW5XaXRoMTFOYXYgd2l0aCBkeW5hbWljIGRhdGFmaWVsZCBoaWRkZW5cblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAoJXtpc0hpZGRlbjJ9ICE9PSB0cnVlICYmICV7U3BlY2lhbENoaWxkL2lzSGlkZGVufSAhPT0gdHJ1ZSl9XCJcblx0XHQpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzddIGFzIEFueUFubm90YXRpb24gLy8gaGlkZGVuV2l0aDFOTmF2IHdpdGggZHluYW1pYyBkYXRhZmllbGQgaGlkZGVuIC0+IERvZXNuJ3QgbWFrZSBzZW5zZSBhbmQgbW9kZWwgd2lsbCBjb21wbGFpbiBidXQgaGVoIDooXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcblx0XHRcdFwiez0gKCV7aXNIaWRkZW4yfSAhPT0gdHJ1ZSAmJiAle19FbGVtZW50cy9pc0hpZGRlbn0gIT09IHRydWUpfVwiXG5cdFx0KTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVs4XSBhcyBBbnlBbm5vdGF0aW9uIC8vIERhdGEgRmllbGQgRm9yIEFjdGlvblxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzldIGFzIEFueUFubm90YXRpb24gLy8gRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiAtPiBkYXRhIHBvaW50IHZpc2libGVcblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5LCB7IGlzQW5hbHl0aWNzOiB0cnVlIH0gYXMgRmllbGRGb3JtYXRPcHRpb25zKSkudG9FcXVhbChcblx0XHRcdFwiez0gKCV7QCR1aTUubm9kZS5pc0V4cGFuZGVkfSAhPT0gdHJ1ZSB8fCAle0AkdWk1Lm5vZGUubGV2ZWx9ID09PSAwKX1cIlxuXHRcdCk7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMTBdIGFzIEFueUFubm90YXRpb24gLy8gRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiAtPiBkYXRhIHBvaW50IGR5bmFtaWMgdmlzaWJsZVxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ7PSAle2lzSGlkZGVufSAhPT0gdHJ1ZX1cIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMTFdIGFzIEFueUFubm90YXRpb24gLy8gbm9IaWRkZW5Qcm9wXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMTJdIGFzIEFueUFubm90YXRpb24gLy8gRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiAtPiBGaWVsZEdyb3VwIC0+IERhdGFcblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0fSk7XG59KTtcbiJdfQ==
313
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkVGVtcGxhdGluZy5zcGVjLnRzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiY29udmVydGVkVHlwZXMiLCJtZXRhTW9kZWwiLCJlbnRpdHlTZXQiLCJlbnRpdHlUeXBlIiwicHJvcGVydGllcyIsImJlZm9yZUFsbCIsInNNZXRhZGF0YVVybCIsImNvbXBpbGVDRFMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImdldE1ldGFNb2RlbCIsImNvbnZlcnRUeXBlcyIsIm1heWJlRW50aXR5U2V0IiwiZW50aXR5U2V0cyIsImZpbmQiLCJldCIsIm5hbWUiLCJlbnRpdHlQcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3AiLCJFcnJvciIsImJlZm9yZUVhY2giLCJqZXN0IiwiY2xlYXJBbGxNb2NrcyIsIml0IiwidGV4dFNpbXBsZUJpbmRpbmciLCJnZXRWYWx1ZUJpbmRpbmciLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkiLCJleHBlY3QiLCJ0b0VxdWFsIiwidGV4dERlbGV0ZUZvcm1hdHRlckJpbmRpbmciLCJ0ZXh0TWF4TGluZXMiLCJ0ZXh0QmluZGluZ1BhcmFtZXR0ZXIiLCIkJG5vUGF0Y2giLCJ0ZXh0VHlwZUFueSIsInVuZGVmaW5lZCIsImVtYWlsU2ltcGxlQmluZGluZyIsInVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nU2ltcGxlQmluZGluZyIsInVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nSWdub3JlVW5pdCIsInVuaXRXaXRoQ3VycmVuY3lEZXNjcmlwdGlvbkJpbmRpbmciLCJlbnRpdHlTZXRMaW5lSXRlbSIsImFubm90YXRpb25zIiwiVUkiLCJMaW5lSXRlbSIsImRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSIsInNlbWFudGljT2JqZWN0IiwiZm9ybWF0T3B0aW9ucyIsInZhbHVlRm9ybWF0IiwidGV4dEFsaWduTW9kZSIsInJldHJpZXZlVGV4dEZyb21WYWx1ZUxpc3QiLCJkYXRhRmllbGRDb252ZXJ0ZWQiLCJkaXNwbGF5U3R5bGUiLCJnZXREaXNwbGF5U3R5bGUiLCJ0ZXh0T25seUJpbmRpbmciLCJnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudCIsImJpbmRpbmdFeHByZXNzaW9uIiwidG9NYXRjaFNuYXBzaG90IiwiY29tcGlsZUJpbmRpbmciLCJ0b0NvbnRhaW4iLCJldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwiLCJ0YXJnZXRUZXh0Iiwibm9UZXh0QmluZGluZyIsIm5vVGV4dCIsInRleHRGaXJzdEJpbmRpbmciLCJ0ZXh0Rmlyc3QiLCJ0ZXh0TGFzdEJpbmRpbmciLCJ0ZXh0TGFzdCIsImZ1bGxDb250ZXh0Iiwib3RoZXJNb2RlbEJpbmRpbmciLCJhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uIiwibm90IiwiYWRkVGV4dExhc3RCaW5kaW5nIiwiY29tcGxleFRleHRCaW5kaW5nIiwiaWZFbHNlIiwibW9kZWxDb250ZW50IiwidGVzdFByb3AiLCJvUHJvcGVydHlUeXBlIiwiX3R5cGUiLCJ0eXBlIiwiZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbiIsImdldFZpc2libGVFeHByZXNzaW9uIiwiaXNBbmFseXRpY3MiLCJvQ29udGV4dFBhdGgiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsIm9NZXRhUGF0aCIsIm9EYXRhTW9kZWxQYXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwiZ2V0RGF0YVBvaW50U3R5bGUiLCJvQW5ub3RhdGlvbnMiLCJMYWJlbCIsIlNlbWFudGljT2JqZWN0IiwiZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlIiwiYVNlbU9iakV4cHJUb1Jlc29sdmUiLCJrZXkiLCJ2YWx1ZSIsIm9TZW1hbnRpY09iamVjdENvbnRleHQiLCJnZXRTZW1hbnRpY09iamVjdHMiLCJnZXRPYmplY3QiLCJvUHJvcGVydHkiLCJ0YXJnZXRPYmplY3QiLCJWYWx1ZSIsIiR0YXJnZXQiLCJpc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzIl0s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QXRDLENBQU4sQ0FBNEdyRSxPQUE1RyxDQUFvSCxJQUFwSDtBQUNBLEtBTkMsQ0FBRjtBQVFBTCxJQUFBQSxFQUFFLENBQUMsbUZBQUQsRUFBc0YsWUFBTTtBQUM3RixVQUFNMEQsWUFBWSxHQUFHbEYsU0FBUyxDQUFDbUYsb0JBQVYsQ0FBK0IsYUFBL0IsQ0FBckI7QUFDQSxVQUFNQyxTQUFTLEdBQUdwRixTQUFTLENBQUNtRixvQkFBVixDQUErQixnRkFBL0IsQ0FBbEI7QUFDQSxVQUFNRSxjQUFjLEdBQUdDLDJCQUEyQixDQUFDRixTQUFELEVBQVlGLFlBQVosQ0FBbEQ7QUFDQSxVQUFNZ0IsU0FBbUIsR0FBR2IsY0FBSCxhQUFHQSxjQUFILHVCQUFHQSxjQUFjLENBQUVjLFlBQWhCLENBQTZCQyxLQUE3QixDQUFtQ0MsT0FBL0Q7QUFDQXpFLE1BQUFBLE1BQU0sQ0FBQzBFLHFDQUFxQyxDQUFDakIsY0FBRCxFQUF3Q2EsU0FBeEMsQ0FBdEMsQ0FBTixDQUE0R3JFLE9BQTVHLENBQW9ILEtBQXBIO0FBQ0EsS0FOQyxDQUFGO0FBT0EsR0FoWk8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Z2V0QmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQsXG5cdGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24sXG5cdGdldFZpc2libGVFeHByZXNzaW9uLFxuXHRGaWVsZEZvcm1hdE9wdGlvbnMsXG5cdGdldFZhbHVlQmluZGluZyxcblx0Z2V0RGlzcGxheVN0eWxlLFxuXHRnZXREYXRhUG9pbnRTdHlsZSxcblx0Z2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlLFxuXHRnZXRTZW1hbnRpY09iamVjdHMsXG5cdGlzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHNcbn0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmllbGQvRmllbGRUZW1wbGF0aW5nXCI7XG5pbXBvcnQgeyBmb3JtYXRXaXRoVHlwZUluZm9ybWF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgY29tcGlsZUNEUywgZ2V0TWV0YU1vZGVsLCBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHksIGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbCB9IGZyb20gXCJzYXAvZmUvdGVzdC9KZXN0VGVtcGxhdGluZ0hlbHBlclwiO1xuaW1wb3J0IHsgY29udmVydFR5cGVzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgeyBBbnlBbm5vdGF0aW9uLCBFbnRpdHlTZXQsIEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IGJpbmRpbmdFeHByZXNzaW9uLCBjb21waWxlQmluZGluZywgaWZFbHNlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IExpbmVJdGVtIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5cbmRlc2NyaWJlKFwiRmllbGQgVGVtcGxhdGluZyBUZXN0aW5nXCIsICgpID0+IHtcblx0bGV0IGNvbnZlcnRlZFR5cGVzO1xuXHRsZXQgbWV0YU1vZGVsOiBhbnk7XG5cdGxldCBlbnRpdHlTZXQ6IEVudGl0eVNldDtcblx0bGV0IGVudGl0eVR5cGU6IEVudGl0eVR5cGU7XG5cdGNvbnN0IHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIFByb3BlcnR5PiA9IHt9O1xuXHRiZWZvcmVBbGwoYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHNNZXRhZGF0YVVybCA9IGNvbXBpbGVDRFMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuL0ZpZWxkVGVtcGxhdGluZy5jZHNcIikpO1xuXHRcdG1ldGFNb2RlbCA9IGF3YWl0IGdldE1ldGFNb2RlbChzTWV0YWRhdGFVcmwpO1xuXHRcdGNvbnZlcnRlZFR5cGVzID0gY29udmVydFR5cGVzKG1ldGFNb2RlbCk7XG5cdFx0Y29uc3QgbWF5YmVFbnRpdHlTZXQgPSBjb252ZXJ0ZWRUeXBlcy5lbnRpdHlTZXRzLmZpbmQoZXQgPT4gZXQubmFtZSA9PT0gXCJNYWluRW50aXR5XCIpO1xuXHRcdGlmIChtYXliZUVudGl0eVNldCkge1xuXHRcdFx0ZW50aXR5U2V0ID0gbWF5YmVFbnRpdHlTZXQ7XG5cdFx0XHRlbnRpdHlUeXBlID0gbWF5YmVFbnRpdHlTZXQuZW50aXR5VHlwZTtcblx0XHRcdGVudGl0eVR5cGUuZW50aXR5UHJvcGVydGllcy5mb3JFYWNoKHByb3AgPT4ge1xuXHRcdFx0XHRwcm9wZXJ0aWVzW3Byb3AubmFtZV0gPSBwcm9wO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkVycm9yIGluIHRlc3Qgc2V0dXBcIik7XG5cdFx0fVxuXHR9KTtcblx0YmVmb3JlRWFjaCgoKSA9PiB7XG5cdFx0amVzdC5jbGVhckFsbE1vY2tzKCk7XG5cdH0pO1xuXG5cdGl0KFxuXHRcdFwiI2dldFZhbHVlQmluZGluZ1wiLFxuXHRcdHtcblx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRcInR5cGVcIjogXCJCQ1BcIixcblx0XHRcdFx0XHRcIklEXCI6IFwiMjE3MDIzNzE2NVwiXG5cdFx0XHRcdH1cblx0XHRcdF1cblx0XHR9LFxuXHRcdCgpID0+IHtcblx0XHRcdGNvbnN0IHRleHRTaW1wbGVCaW5kaW5nID0gZ2V0VmFsdWVCaW5kaW5nKGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJ0ZXh0QmluZGluZ1wiXSksIHt9KTtcblx0XHRcdGV4cGVjdCh0ZXh0U2ltcGxlQmluZGluZykudG9FcXVhbChcblx0XHRcdFx0XCJ7cGF0aDogJ3RleHRCaW5kaW5nJywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZycsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHRydWV9fVwiXG5cdFx0XHQpO1xuXG5cdFx0XHRjb25zdCB0ZXh0RGVsZXRlRm9ybWF0dGVyQmluZGluZyA9IGdldFZhbHVlQmluZGluZyhcblx0XHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcInRleHRCaW5kaW5nXCJdKSxcblx0XHRcdFx0eyB0ZXh0TWF4TGluZXM6IFwiMTBcIiB9LFxuXHRcdFx0XHR0cnVlLCAvL2lnbm9yZVVuaXQsIGl0IGRvZXNuJ3QgaGF2ZSB1bml0LCBzbyBkb2Vzbid0IG1hdHRlci4gVGVzdGVkIGEgZmV3IGxpbmVzIGxhdGVyLlxuXHRcdFx0XHR0cnVlXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHRleHREZWxldGVGb3JtYXR0ZXJCaW5kaW5nKS50b0VxdWFsKFwie3RleHRCaW5kaW5nfVwiKTtcblxuXHRcdFx0Y29uc3QgdGV4dEJpbmRpbmdQYXJhbWV0dGVyID0gZ2V0VmFsdWVCaW5kaW5nKFxuXHRcdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1widGV4dEJpbmRpbmdcIl0pLFxuXHRcdFx0XHR7IHRleHRNYXhMaW5lczogXCIxMFwiIH0sXG5cdFx0XHRcdHRydWUsXG5cdFx0XHRcdHRydWUsXG5cdFx0XHRcdHsgJCRub1BhdGNoOiB0cnVlIH1cblx0XHRcdCk7XG5cdFx0XHRleHBlY3QodGV4dEJpbmRpbmdQYXJhbWV0dGVyKS50b0VxdWFsKFwie3BhdGg6ICd0ZXh0QmluZGluZycsIHBhcmFtZXRlcnM6IHskJG5vUGF0Y2g6IHRydWV9fVwiKTtcblxuXHRcdFx0Y29uc3QgdGV4dFR5cGVBbnkgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJ0ZXh0QmluZGluZ1wiXSksXG5cdFx0XHRcdHt9LFxuXHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0ZmFsc2UsXG5cdFx0XHRcdHVuZGVmaW5lZCxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh0ZXh0VHlwZUFueSkudG9FcXVhbChcblx0XHRcdFx0XCJ7cGF0aDogJ3RleHRCaW5kaW5nJywgdHlwZTogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZycsIHRhcmdldFR5cGU6ICdhbnknLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VLZWVwc0VtcHR5U3RyaW5nOiB0cnVlfX1cIlxuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3QgZW1haWxTaW1wbGVCaW5kaW5nID0gZ2V0VmFsdWVCaW5kaW5nKGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJlbWFpbEJpbmRpbmdcIl0pLCB7fSk7XG5cdFx0XHRleHBlY3QoZW1haWxTaW1wbGVCaW5kaW5nKS50b0VxdWFsKFwie3BhdGg6ICdlbWFpbEJpbmRpbmcnLCB0eXBlOiAnc2FwLmZlLmNvcmUudHlwZS5FbWFpbCd9XCIpO1xuXG5cdFx0XHRjb25zdCB1bml0V2l0aEN1cnJlbmN5QmluZGluZ1NpbXBsZUJpbmRpbmcgPSBnZXRWYWx1ZUJpbmRpbmcoXG5cdFx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJVbml0V2l0aEN1cnJlbmN5QmluZGluZ1wiXSksXG5cdFx0XHRcdHt9XG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nU2ltcGxlQmluZGluZykudG9FcXVhbChcblx0XHRcdFx0XCJ7bW9kZTonVHdvV2F5JywgcGFydHM6W3twYXRoOidVbml0V2l0aEN1cnJlbmN5QmluZGluZycsIHR5cGUgOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuSW50MzInLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VBc1N0cmluZzogZmFsc2UsIGVtcHR5U3RyaW5nOiAnJ319LHtwYXRoOidjdXJyZW5jeScsIHR5cGUgOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuU3RyaW5nJywgZm9ybWF0T3B0aW9uczoge3BhcnNlS2VlcHNFbXB0eVN0cmluZzogdHJ1ZX19LHttb2RlOidPbmVUaW1lJyxwYXRoOicvIyNAQHJlcXVlc3RDdXJyZW5jeUNvZGVzJyx0YXJnZXRUeXBlOidhbnknfV0sdHlwZTonc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuQ3VycmVuY3knLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VBc1N0cmluZzogZmFsc2UsIGVtcHR5U3RyaW5nOiAnJywgc2hvd01lYXN1cmU6IGZhbHNlfX1cIlxuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3QgdW5pdFdpdGhDdXJyZW5jeUJpbmRpbmdJZ25vcmVVbml0ID0gZ2V0VmFsdWVCaW5kaW5nKFxuXHRcdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1wiVW5pdFdpdGhDdXJyZW5jeUJpbmRpbmdcIl0pLFxuXHRcdFx0XHR7fSxcblx0XHRcdFx0dHJ1ZVxuXHRcdFx0KTtcblx0XHRcdGV4cGVjdCh1bml0V2l0aEN1cnJlbmN5QmluZGluZ0lnbm9yZVVuaXQpLnRvRXF1YWwoXG5cdFx0XHRcdFwie3BhdGg6ICdVbml0V2l0aEN1cnJlbmN5QmluZGluZycsIHR5cGU6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5JbnQzMicsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUFzU3RyaW5nOiBmYWxzZSwgZW1wdHlTdHJpbmc6ICcnfX1cIlxuXHRcdFx0KTtcblxuXHRcdFx0Y29uc3QgdW5pdFdpdGhDdXJyZW5jeURlc2NyaXB0aW9uQmluZGluZyA9IGdldFZhbHVlQmluZGluZyhcblx0XHRcdFx0Z2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCwgcHJvcGVydGllc1tcIlVuaXRXaXRoQ3VycmVuY3lCaW5kaW5nXCJdKSxcblx0XHRcdFx0e30sXG5cdFx0XHRcdGZhbHNlLFxuXHRcdFx0XHRmYWxzZSxcblx0XHRcdFx0dW5kZWZpbmVkLFxuXHRcdFx0XHR0cnVlLFxuXHRcdFx0XHR0cnVlXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KHVuaXRXaXRoQ3VycmVuY3lEZXNjcmlwdGlvbkJpbmRpbmcpLnRvRXF1YWwoXG5cdFx0XHRcdFwie21vZGU6J1R3b1dheScsIHBhcnRzOlt7cGF0aDonVW5pdFdpdGhDdXJyZW5jeUJpbmRpbmcnLCB0eXBlIDogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLkludDMyJywgZm9ybWF0T3B0aW9uczoge3BhcnNlQXNTdHJpbmc6IGZhbHNlLCBlbXB0eVN0cmluZzogJyd9fSx7cGF0aDonY3VycmVuY3knLCB0eXBlIDogJ3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLlN0cmluZycsIGZvcm1hdE9wdGlvbnM6IHtwYXJzZUtlZXBzRW1wdHlTdHJpbmc6IHRydWV9fSx7bW9kZTonT25lVGltZScscGF0aDonLyMjQEByZXF1ZXN0Q3VycmVuY3lDb2RlcycsdGFyZ2V0VHlwZTonYW55J31dLHR5cGU6J3NhcC51aS5tb2RlbC5vZGF0YS50eXBlLkN1cnJlbmN5JywgZm9ybWF0T3B0aW9uczoge3BhcnNlQXNTdHJpbmc6IGZhbHNlLCBlbXB0eVN0cmluZzogJycsIHNob3dOdW1iZXI6IGZhbHNlfX1cIlxuXHRcdFx0KTtcblx0XHR9XG5cdCk7XG5cblx0aXQoXG5cdFx0XCIjZ2V0RGlzcGxheVN0eWxlXCIsXG5cdFx0e1xuXHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcIklEXCI6IFwiRklPUklURUNIUDEtMjExNzZcIlxuXHRcdFx0XHR9XG5cdFx0XHRdXG5cdFx0fSxcblx0XHQoKSA9PiB7XG5cdFx0XHRjb25zdCBlbnRpdHlTZXRMaW5lSXRlbSA9IGVudGl0eVNldC5lbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5MaW5lSXRlbSBhcyBMaW5lSXRlbTtcblx0XHRcdGNvbnN0IGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIGVudGl0eVNldExpbmVJdGVtWzFdIGFzIEFueUFubm90YXRpb24pO1xuXHRcdFx0Y29uc3Qgc2VtYW50aWNPYmplY3Q6IHN0cmluZyA9IFwiXCI7XG5cdFx0XHRjb25zdCBmb3JtYXRPcHRpb25zID0ge1xuXHRcdFx0XHR2YWx1ZUZvcm1hdDogXCJEZXNjcmlwdGlvblZhbHVlXCIsXG5cdFx0XHRcdHRleHRBbGlnbk1vZGU6IFwiRm9ybVwiLFxuXHRcdFx0XHRyZXRyaWV2ZVRleHRGcm9tVmFsdWVMaXN0OiB0cnVlXG5cdFx0XHR9IGFzIEZpZWxkRm9ybWF0T3B0aW9ucztcblxuXHRcdFx0Y29uc3QgZGF0YUZpZWxkQ29udmVydGVkID0gZ2V0VmFsdWVCaW5kaW5nKFxuXHRcdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1wicHJvcGVydHlOb1RleHRXaXRoVkhcIl0pLFxuXHRcdFx0XHR7fVxuXHRcdFx0KTtcblx0XHRcdGNvbnN0IGRpc3BsYXlTdHlsZSA9IGdldERpc3BsYXlTdHlsZShcblx0XHRcdFx0cHJvcGVydGllc1tcInByb3BlcnR5Tm9UZXh0V2l0aFZIXCJdLFxuXHRcdFx0XHRkYXRhRmllbGRDb252ZXJ0ZWQsXG5cdFx0XHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSxcblx0XHRcdFx0Zm9ybWF0T3B0aW9ucyxcblx0XHRcdFx0c2VtYW50aWNPYmplY3Rcblx0XHRcdCk7XG5cdFx0XHQvLyBGYWxsYmFjayBmZWF0dXJlIGZvciByZXRyaWV2ZSB0aGUgdGV4dCBhbm5vdGF0aW9uIGZyb20gdGhlIHZhbHVlIGxpc3RzOlxuXHRcdFx0Ly8gUHJvcGVydHkgaGFzIHZhbHVlIGhlbHAsIG5vIFRleHQgYW5ub3RhdGlvbiwgaGFzIGRpc3BsYXkgZm9ybWF0LCB1c2VkIGluIEZvcm0gYW5kIG1hbmlmZXN0LXN3aXRjaCByZXRyaWV2ZVRleHRGcm9tVmFsdWVMaXN0IGlzIG9uXG5cdFx0XHRleHBlY3QoZGlzcGxheVN0eWxlKS50b0VxdWFsKFwiTWRjRmllbGRXaXRoVmFsdWVIZWxwXCIpO1xuXHRcdH1cblx0KTtcblxuXHRpdChcIiNnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudFwiLCAoKSA9PiB7XG5cdFx0Ly8gQ2FzZXMgdG8gY29uc2lkZXJcblxuXHRcdC8vIFRleHRPbmx5XG5cdFx0Y29uc3QgdGV4dE9ubHlCaW5kaW5nID0gZ2V0QmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQoXG5cdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1widGV4dE9ubHlcIl0pLFxuXHRcdFx0YmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0T25seVwiKVxuXHRcdCk7XG5cdFx0ZXhwZWN0KHRleHRPbmx5QmluZGluZykudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHRleHRPbmx5QmluZGluZykpLnRvQ29udGFpbihcInRhcmdldFRleHRcIik7XG5cdFx0ZXhwZWN0KGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyh0ZXh0T25seUJpbmRpbmcpLCB7IHRhcmdldFRleHQ6IFwiWW9sb1wiIH0pKS50b0VxdWFsKFwiWW9sb1wiKTtcblxuXHRcdC8vIE5vIHRleHQgYXJyYW5nZW1lbnRcblx0XHRjb25zdCBub1RleHRCaW5kaW5nID0gZ2V0QmluZGluZ1dpdGhUZXh0QXJyYW5nZW1lbnQoXG5cdFx0XHRnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0LCBwcm9wZXJ0aWVzW1wibm9UZXh0XCJdKSxcblx0XHRcdGJpbmRpbmdFeHByZXNzaW9uKFwibm9UZXh0XCIpXG5cdFx0KTtcblx0XHRleHBlY3Qobm9UZXh0QmluZGluZykudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKG5vVGV4dEJpbmRpbmcpKS50b0NvbnRhaW4oXCJub1RleHRcIik7XG5cdFx0ZXhwZWN0KGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbChjb21waWxlQmluZGluZyhub1RleHRCaW5kaW5nKSwgeyBub1RleHQ6IFwiWW9sb1wiIH0pKS50b0VxdWFsKFwiWW9sb1wiKTtcblxuXHRcdC8vIFRleHRGaXJzdFxuXHRcdGNvbnN0IHRleHRGaXJzdEJpbmRpbmcgPSBnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChcblx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJ0ZXh0Rmlyc3RcIl0pLFxuXHRcdFx0YmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0Rmlyc3RcIilcblx0XHQpO1xuXHRcdGV4cGVjdCh0ZXh0Rmlyc3RCaW5kaW5nKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodGV4dEZpcnN0QmluZGluZykpLnRvQ29udGFpbihcInRleHRGaXJzdFwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodGV4dEZpcnN0QmluZGluZykpLnRvQ29udGFpbihcInRhcmdldFRleHRcIik7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0ZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsKGNvbXBpbGVCaW5kaW5nKHRleHRGaXJzdEJpbmRpbmcpLCB7IHRleHRGaXJzdDogXCJZb2xvIExhc3RcIiwgdGFyZ2V0VGV4dDogXCJZb2xvIERlc2NyaXB0aW9uXCIgfSlcblx0XHQpLnRvRXF1YWwoXCJZb2xvIERlc2NyaXB0aW9uIChZb2xvIExhc3QpXCIpO1xuXG5cdFx0Ly8gVGV4dExhc3Rcblx0XHRjb25zdCB0ZXh0TGFzdEJpbmRpbmcgPSBnZXRCaW5kaW5nV2l0aFRleHRBcnJhbmdlbWVudChcblx0XHRcdGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQsIHByb3BlcnRpZXNbXCJ0ZXh0TGFzdFwiXSksXG5cdFx0XHRiaW5kaW5nRXhwcmVzc2lvbihcInRleHRMYXN0XCIpXG5cdFx0KTtcblx0XHRleHBlY3QodGV4dExhc3RCaW5kaW5nKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcodGV4dExhc3RCaW5kaW5nKSkudG9Db250YWluKFwidGV4dExhc3RcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKHRleHRMYXN0QmluZGluZykpLnRvQ29udGFpbihcInRhcmdldFRleHRcIik7XG5cdFx0ZXhwZWN0KFxuXHRcdFx0ZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsKGNvbXBpbGVCaW5kaW5nKHRleHRMYXN0QmluZGluZyksIHsgdGV4dExhc3Q6IFwiWW9sbyBGaXJzdFwiLCB0YXJnZXRUZXh0OiBcIllvbG8gRGVzY3JpcHRpb25cIiB9KVxuXHRcdCkudG9FcXVhbChcIllvbG8gRmlyc3QgKFlvbG8gRGVzY3JpcHRpb24pXCIpO1xuXHR9KTtcblxuXHRpdChcIiNhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uXCIsICgpID0+IHtcblx0XHRjb25zdCBmdWxsQ29udGV4dCA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShlbnRpdHlTZXQpO1xuXG5cdFx0Y29uc3Qgb3RoZXJNb2RlbEJpbmRpbmcgPSBhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uKGJpbmRpbmdFeHByZXNzaW9uKFwidGV4dExhc3RcIiwgXCJvdGhlck1vZGVsXCIpLCBmdWxsQ29udGV4dCk7XG5cdFx0ZXhwZWN0KG90aGVyTW9kZWxCaW5kaW5nKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcob3RoZXJNb2RlbEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0ZXh0TGFzdFwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcob3RoZXJNb2RlbEJpbmRpbmcpKS5ub3QudG9Db250YWluKFwidGFyZ2V0VGV4dFwiKTtcblxuXHRcdGNvbnN0IGFkZFRleHRMYXN0QmluZGluZyA9IGFkZFRleHRBcnJhbmdlbWVudFRvQmluZGluZ0V4cHJlc3Npb24oYmluZGluZ0V4cHJlc3Npb24oXCJ0ZXh0TGFzdFwiKSwgZnVsbENvbnRleHQpO1xuXHRcdGV4cGVjdChhZGRUZXh0TGFzdEJpbmRpbmcpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdGV4cGVjdChjb21waWxlQmluZGluZyhhZGRUZXh0TGFzdEJpbmRpbmcpKS50b0NvbnRhaW4oXCJ0ZXh0TGFzdFwiKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoYWRkVGV4dExhc3RCaW5kaW5nKSkudG9Db250YWluKFwidGFyZ2V0VGV4dFwiKTtcblx0XHRleHBlY3QoXG5cdFx0XHRldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoY29tcGlsZUJpbmRpbmcoYWRkVGV4dExhc3RCaW5kaW5nKSwgeyB0ZXh0TGFzdDogXCJZb2xvIEZpcnN0XCIsIHRhcmdldFRleHQ6IFwiWW9sbyBEZXNjcmlwdGlvblwiIH0pXG5cdFx0KS50b0VxdWFsKFwiWW9sbyBGaXJzdCAoWW9sbyBEZXNjcmlwdGlvbilcIik7XG5cblx0XHRjb25zdCBjb21wbGV4VGV4dEJpbmRpbmcgPSBhZGRUZXh0QXJyYW5nZW1lbnRUb0JpbmRpbmdFeHByZXNzaW9uKFxuXHRcdFx0aWZFbHNlKGJpbmRpbmdFeHByZXNzaW9uKFwidGVzdFByb3BcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwidGV4dExhc3RcIiksIGJpbmRpbmdFeHByZXNzaW9uKFwibm9UZXh0XCIpKSxcblx0XHRcdGZ1bGxDb250ZXh0XG5cdFx0KTtcblx0XHRleHBlY3QoY29tcGxleFRleHRCaW5kaW5nKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRleHBlY3QoY29tcGlsZUJpbmRpbmcoY29tcGxleFRleHRCaW5kaW5nKSkudG9Db250YWluKFwidGV4dExhc3RcIik7XG5cdFx0ZXhwZWN0KGNvbXBpbGVCaW5kaW5nKGNvbXBsZXhUZXh0QmluZGluZykpLnRvQ29udGFpbihcInRhcmdldFRleHRcIik7XG5cdFx0Y29uc3QgbW9kZWxDb250ZW50ID0ge1xuXHRcdFx0dGVzdFByb3A6IHRydWUsXG5cdFx0XHR0ZXh0TGFzdDogXCJZb2xvIEZpcnN0XCIsXG5cdFx0XHR0YXJnZXRUZXh0OiBcIllvbG8gRGVzY3JpcHRpb25cIixcblx0XHRcdG5vVGV4dDogXCJOb3QgWW9sb1wiXG5cdFx0fTtcblx0XHRleHBlY3QoZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsKGNvbXBpbGVCaW5kaW5nKGNvbXBsZXhUZXh0QmluZGluZyksIG1vZGVsQ29udGVudCkpLnRvRXF1YWwoXCJZb2xvIEZpcnN0IChZb2xvIERlc2NyaXB0aW9uKVwiKTtcblxuXHRcdG1vZGVsQ29udGVudC50ZXN0UHJvcCA9IGZhbHNlO1xuXHRcdGV4cGVjdChldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwoY29tcGlsZUJpbmRpbmcoY29tcGxleFRleHRCaW5kaW5nKSwgbW9kZWxDb250ZW50KSkudG9FcXVhbChcIk5vdCBZb2xvXCIpO1xuXHR9KTtcblxuXHRpdChcImZvcm1hdHRlZCBJbnRlZ2VyIHR5cGUgY2FsbFwiLCAoKSA9PiB7XG5cdFx0Y29uc3Qgb1Byb3BlcnR5VHlwZSA9IHsgX3R5cGU6IFwiUHJvcGVydHlcIiwgdHlwZTogXCJFZG0uSW50MzJcIiB9IGFzIFByb3BlcnR5O1xuXHRcdHJldHVybiBleHBlY3QoY29tcGlsZUJpbmRpbmcoZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihvUHJvcGVydHlUeXBlLCBiaW5kaW5nRXhwcmVzc2lvbihcInZhbHVlXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcIntwYXRoOiAndmFsdWUnLCB0eXBlOiAnc2FwLnVpLm1vZGVsLm9kYXRhLnR5cGUuSW50MzInLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VBc1N0cmluZzogZmFsc2UsIGVtcHR5U3RyaW5nOiAnJ319XCJcblx0XHQpO1xuXHR9KTtcblxuXHRpdChcblx0XHRcImZvcm1hdHRlZCBEb3VibGUgdHlwZSBjYWxsXCIsXG5cdFx0e1xuXHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdFwidHlwZVwiOiBcIkJDUFwiLFxuXHRcdFx0XHRcdFwiSURcIjogXCIyMTgwMjEyMTQ4XCJcblx0XHRcdFx0fVxuXHRcdFx0XVxuXHRcdH0sXG5cdFx0KCkgPT4ge1xuXHRcdFx0Y29uc3Qgb1Byb3BlcnR5VHlwZSA9IHsgX3R5cGU6IFwiUHJvcGVydHlcIiwgdHlwZTogXCJFZG0uRG91YmxlXCIgfSBhcyBQcm9wZXJ0eTtcblx0XHRcdHJldHVybiBleHBlY3QoY29tcGlsZUJpbmRpbmcoZm9ybWF0V2l0aFR5cGVJbmZvcm1hdGlvbihvUHJvcGVydHlUeXBlLCBiaW5kaW5nRXhwcmVzc2lvbihcInZhbHVlXCIpKSkpLnRvRXF1YWwoXG5cdFx0XHRcdFwie3BhdGg6ICd2YWx1ZScsIHR5cGU6ICdzYXAudWkubW9kZWwub2RhdGEudHlwZS5Eb3VibGUnLCBmb3JtYXRPcHRpb25zOiB7cGFyc2VBc1N0cmluZzogZmFsc2UsIGVtcHR5U3RyaW5nOiAnJ319XCJcblx0XHRcdCk7XG5cdFx0fVxuXHQpO1xuXG5cdGl0KFwiY2FuIGV2YWx1YXRlIHRoZSB2aXNpYmxlIHBhcmFtZXRlciBiYXNlZCBvbiBVSS5IaWRkZW5cIiwgKCkgPT4ge1xuXHRcdGNvbnN0IGVudGl0eVNldExpbmVJdGVtID0gZW50aXR5U2V0LmVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkxpbmVJdGVtIGFzIExpbmVJdGVtO1xuXHRcdGxldCBkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVsxXSBhcyBBbnlBbm5vdGF0aW9uIC8vIHN0YXRpY0hpZGRlblByb3Bcblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMl0gYXMgQW55QW5ub3RhdGlvbiAvLyBkeW5hbWljSGlkZGVuUHJvcFxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ7PSAle2lzSGlkZGVufSAhPT0gdHJ1ZX1cIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bM10gYXMgQW55QW5ub3RhdGlvbiAvLyB0ZXh0Rmlyc3Qgd2l0aCBkYXRhRmllbGQgc3RhdGljYWxseSBoaWRkZW5cblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwiZmFsc2VcIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bNF0gYXMgQW55QW5ub3RhdGlvbiAvLyB0ZXh0T25seSB3aXRoIGRhdGFGaWVsZCBkeW5hbWljYWxseSBoaWRkZW5cblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwiez0gJXtpc0hpZGRlbn0gIT09IHRydWV9XCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzVdIGFzIEFueUFubm90YXRpb24gLy8gZHluYW1pY0hpZGRlblByb3AyIHdpdGggZHluYW1pYyBkYXRhZmllbGQgaGlkZGVuXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcIns9ICV7aXNIaWRkZW4yfSAhPT0gdHJ1ZSAmJiAle2lzSGlkZGVufSAhPT0gdHJ1ZX1cIik7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSwgeyBpc0FuYWx5dGljczogdHJ1ZSB9IGFzIEZpZWxkRm9ybWF0T3B0aW9ucykpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7aXNIaWRkZW4yfSAhPT0gdHJ1ZSAmJiAle2lzSGlkZGVufSAhPT0gdHJ1ZSAmJiAoJXtAJHVpNS5ub2RlLmlzRXhwYW5kZWR9ICE9PSB0cnVlIHx8ICV7QCR1aTUubm9kZS5sZXZlbH0gPT09IDApfVwiXG5cdFx0KTtcblx0XHRkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoXG5cdFx0XHRlbnRpdHlTZXQsXG5cdFx0XHRlbnRpdHlTZXRMaW5lSXRlbVs2XSBhcyBBbnlBbm5vdGF0aW9uIC8vIGhpZGRlbldpdGgxMU5hdiB3aXRoIGR5bmFtaWMgZGF0YWZpZWxkIGhpZGRlblxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXG5cdFx0XHRcIns9ICV7aXNIaWRkZW4yfSAhPT0gdHJ1ZSAmJiAle1NwZWNpYWxDaGlsZC9pc0hpZGRlbn0gIT09IHRydWV9XCJcblx0XHQpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzddIGFzIEFueUFubm90YXRpb24gLy8gaGlkZGVuV2l0aDFOTmF2IHdpdGggZHluYW1pYyBkYXRhZmllbGQgaGlkZGVuIC0+IERvZXNuJ3QgbWFrZSBzZW5zZSBhbmQgbW9kZWwgd2lsbCBjb21wbGFpbiBidXQgaGVoIDooXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcIns9ICV7aXNIaWRkZW4yfSAhPT0gdHJ1ZSAmJiAle19FbGVtZW50cy9pc0hpZGRlbn0gIT09IHRydWV9XCIpO1xuXHRcdGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSA9IGdldERhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eShcblx0XHRcdGVudGl0eVNldCxcblx0XHRcdGVudGl0eVNldExpbmVJdGVtWzhdIGFzIEFueUFubm90YXRpb24gLy8gRGF0YSBGaWVsZCBGb3IgQWN0aW9uXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bOV0gYXMgQW55QW5ub3RhdGlvbiAvLyBEYXRhRmllbGRGb3JBbm5vdGF0aW9uIC0+IGRhdGEgcG9pbnQgdmlzaWJsZVxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ0cnVlXCIpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHksIHsgaXNBbmFseXRpY3M6IHRydWUgfSBhcyBGaWVsZEZvcm1hdE9wdGlvbnMpKS50b0VxdWFsKFxuXHRcdFx0XCJ7PSAle0AkdWk1Lm5vZGUuaXNFeHBhbmRlZH0gIT09IHRydWUgfHwgJXtAJHVpNS5ub2RlLmxldmVsfSA9PT0gMH1cIlxuXHRcdCk7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMTBdIGFzIEFueUFubm90YXRpb24gLy8gRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiAtPiBkYXRhIHBvaW50IGR5bmFtaWMgdmlzaWJsZVxuXHRcdCk7XG5cdFx0ZXhwZWN0KGdldFZpc2libGVFeHByZXNzaW9uKGRhdGFNb2RlbE9iamVjdFBhdGhGb3JQcm9wZXJ0eSkpLnRvRXF1YWwoXCJ7PSAle2lzSGlkZGVufSAhPT0gdHJ1ZX1cIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMTFdIGFzIEFueUFubm90YXRpb24gLy8gbm9IaWRkZW5Qcm9wXG5cdFx0KTtcblx0XHRleHBlY3QoZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KSkudG9FcXVhbChcInRydWVcIik7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KFxuXHRcdFx0ZW50aXR5U2V0LFxuXHRcdFx0ZW50aXR5U2V0TGluZUl0ZW1bMTJdIGFzIEFueUFubm90YXRpb24gLy8gRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiAtPiBGaWVsZEdyb3VwIC0+IERhdGFcblx0XHQpO1xuXHRcdGV4cGVjdChnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkpKS50b0VxdWFsKFwidHJ1ZVwiKTtcblx0fSk7XG5cblx0aXQoXCJnZXREYXRhUG9pbnRTdHlsZSB3aXRoIGRhdGFwb2ludCBoYXZpbmcgVmlzdWFsaXphdGlvblwiLCAoKSA9PiB7XG5cdFx0Y29uc3Qgb0NvbnRleHRQYXRoID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL01haW5FbnRpdHlcIik7XG5cdFx0Y29uc3Qgb01ldGFQYXRoID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL01haW5FbnRpdHkvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0cy8wL1RhcmdldC8kQW5ub3RhdGlvblBhdGgvXCIpO1xuXHRcdGNvbnN0IG9EYXRhTW9kZWxQYXRoID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKG9NZXRhUGF0aCwgb0NvbnRleHRQYXRoKTtcblx0XHRleHBlY3QoZ2V0RGF0YVBvaW50U3R5bGUob0RhdGFNb2RlbFBhdGgpKS50b0VxdWFsKHVuZGVmaW5lZCk7XG5cdH0pO1xuXHRpdChcImdldERhdGFQb2ludFN0eWxlIHdpdGggZGF0YXBvaW50IGhhdmluZyBRdWlja1ZpZXdGYWNldHNcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IG9Db250ZXh0UGF0aCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9NYWluRW50aXR5XCIpO1xuXHRcdGNvbnN0IG9NZXRhUGF0aCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9NYWluRW50aXR5L0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHMvMi9UYXJnZXQvJEFubm90YXRpb25QYXRoL1wiKTtcblx0XHRjb25zdCBvRGF0YU1vZGVsUGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyhvTWV0YVBhdGgsIG9Db250ZXh0UGF0aCk7XG5cdFx0ZXhwZWN0KGdldERhdGFQb2ludFN0eWxlKG9EYXRhTW9kZWxQYXRoIGFzIERhdGFNb2RlbE9iamVjdFBhdGgpKS50b0VxdWFsKFwiTGlua1dpdGhRdWlja1ZpZXdGb3JtXCIpO1xuXHR9KTtcblxuXHRpdChcImdldERhdGFQb2ludFN0eWxlIHdpdGggZGF0YXBvaW50IGhhdmluZyBTZW1hbnRpY09iamVjdHNcIiwgKCkgPT4ge1xuXHRcdGNvbnN0IG9Db250ZXh0UGF0aCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9NYWluRW50aXR5XCIpO1xuXHRcdGNvbnN0IG9NZXRhUGF0aCA9IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9NYWluRW50aXR5L0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHMvMS9UYXJnZXQvJEFubm90YXRpb25QYXRoL1wiKTtcblx0XHRjb25zdCBvRGF0YU1vZGVsUGF0aCA9IGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0cyhvTWV0YVBhdGgsIG9Db250ZXh0UGF0aCk7XG5cdFx0ZXhwZWN0KGdldERhdGFQb2ludFN0eWxlKG9EYXRhTW9kZWxQYXRoIGFzIERhdGFNb2RlbE9iamVjdFBhdGgpKS50b0VxdWFsKFwiTGlua1dyYXBwZXJcIik7XG5cdH0pO1xuXG5cdGl0KFwiZ2V0RGF0YVBvaW50U3R5bGUgd2l0aCBkYXRhcG9pbnQgbm90IGhhdmluZyBWaXN1YWxpemF0aW9uLCBRdWljayBWaWV3IEZhY2V0cywgU2VtYW50aWNPYmplY3RzXCIsICgpID0+IHtcblx0XHRjb25zdCBvQ29udGV4dFBhdGggPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvTWFpbkVudGl0eVwiKTtcblx0XHRjb25zdCBvTWV0YVBhdGggPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvTWFpbkVudGl0eS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVyRmFjZXRzLzMvVGFyZ2V0LyRBbm5vdGF0aW9uUGF0aC9cIik7XG5cdFx0Y29uc3Qgb0RhdGFNb2RlbFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMob01ldGFQYXRoLCBvQ29udGV4dFBhdGgpO1xuXHRcdGV4cGVjdChnZXREYXRhUG9pbnRTdHlsZShvRGF0YU1vZGVsUGF0aCBhcyBEYXRhTW9kZWxPYmplY3RQYXRoKSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0RXhwcmVzc2lvblRvUmVzb2x2ZSB3aXRoIGFubm90YXRpb25zXCIsICgpID0+IHtcblx0XHRjb25zdCBvQW5ub3RhdGlvbnMgPSB7XG5cdFx0XHRMYWJlbDogXCJTZW1hbnRpYyBPYmplY3QgUHJvcGVydHlcIixcblx0XHRcdFNlbWFudGljT2JqZWN0OiBcInY0LUZyZWVzdHlsZVwiXG5cdFx0fTtcblx0XHRleHBlY3QoZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlKG9Bbm5vdGF0aW9ucykpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0RXhwcmVzc2lvblRvUmVzb2x2ZSB3aXRoIGFubm90YXRpb25zIGFuZCBzZW1hbnRpYyBvYmplY3QgcXVhbGlmaWVyXCIsICgpID0+IHtcblx0XHRjb25zdCBvQW5ub3RhdGlvbnMgPSB7XG5cdFx0XHRcIkxhYmVsXCI6IFwiU2VtYW50aWMgT2JqZWN0IFByb3BlcnR5XCIsXG5cdFx0XHRcIlNlbWFudGljT2JqZWN0I1F1YWxpZmllclwiOiBcInY0LUZyZWVzdHlsZVwiXG5cdFx0fTtcblx0XHRleHBlY3QoZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlKG9Bbm5vdGF0aW9ucykpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0RXhwcmVzc2lvblRvUmVzb2x2ZSB3aXRob3V0IGFubm90YXRpb25zXCIsICgpID0+IHtcblx0XHRjb25zdCBvQW5ub3RhdGlvbnMgPSB7fTtcblx0XHRleHBlY3QoZ2V0U2VtYW50aWNPYmplY3RFeHByZXNzaW9uVG9SZXNvbHZlKG9Bbm5vdGF0aW9ucykpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0cyB3aXRoIGFTZW1PYmpFeHByVG9SZXNvbHZlXCIsICgpID0+IHtcblx0XHRjb25zdCBhU2VtT2JqRXhwclRvUmVzb2x2ZSA9IFtcblx0XHRcdHtcblx0XHRcdFx0a2V5OiBcInY0LUZyZWVzdHlsZVwiLFxuXHRcdFx0XHR2YWx1ZTogXCJ2NC1GcmVlc3R5bGVcIlxuXHRcdFx0fVxuXHRcdF07XG5cdFx0Y29uc3Qgb1NlbWFudGljT2JqZWN0Q29udGV4dCA9IGdldFNlbWFudGljT2JqZWN0cyhhU2VtT2JqRXhwclRvUmVzb2x2ZSk7XG5cdFx0ZXhwZWN0KG9TZW1hbnRpY09iamVjdENvbnRleHQuZ2V0T2JqZWN0KCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImdldFNlbWFudGljT2JqZWN0cyB3aXRob3V0IGFTZW1PYmpFeHByVG9SZXNvbHZlXCIsICgpID0+IHtcblx0XHRjb25zdCBhU2VtT2JqRXhwclRvUmVzb2x2ZTogYW55ID0gW107XG5cdFx0Y29uc3Qgb1NlbWFudGljT2JqZWN0Q29udGV4dCA9IGdldFNlbWFudGljT2JqZWN0cyhhU2VtT2JqRXhwclRvUmVzb2x2ZSk7XG5cdFx0ZXhwZWN0KG9TZW1hbnRpY09iamVjdENvbnRleHQuZ2V0T2JqZWN0KCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcImlzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHMgd2l0aCBkYXRhcG9pbnQgaGF2aW5nIFF1aWNrVmlld0ZhY2V0c1wiLCAoKSA9PiB7XG5cdFx0Y29uc3Qgb0NvbnRleHRQYXRoID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL01haW5FbnRpdHlcIik7XG5cdFx0Y29uc3Qgb01ldGFQYXRoID0gbWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL01haW5FbnRpdHkvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0cy8yL1RhcmdldC8kQW5ub3RhdGlvblBhdGgvXCIpO1xuXHRcdGNvbnN0IG9EYXRhTW9kZWxQYXRoID0gZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKG9NZXRhUGF0aCwgb0NvbnRleHRQYXRoKTtcblx0XHRjb25zdCBvUHJvcGVydHk6IFByb3BlcnR5ID0gb0RhdGFNb2RlbFBhdGg/LnRhcmdldE9iamVjdC5WYWx1ZS4kdGFyZ2V0O1xuXHRcdGV4cGVjdChpc1VzZWRJbk5hdmlnYXRpb25XaXRoUXVpY2tWaWV3RmFjZXRzKG9EYXRhTW9kZWxQYXRoIGFzIERhdGFNb2RlbE9iamVjdFBhdGgsIG9Qcm9wZXJ0eSBhcyBQcm9wZXJ0eSkpLnRvRXF1YWwodHJ1ZSk7XG5cdH0pO1xuXG5cdGl0KFwiaXNVc2VkSW5OYXZpZ2F0aW9uV2l0aFF1aWNrVmlld0ZhY2V0cyB3aXRoIGRhdGFwb2ludCBub3QgaGF2aW5nIFF1aWNrIFZpZXcgRmFjZXRzXCIsICgpID0+IHtcblx0XHRjb25zdCBvQ29udGV4dFBhdGggPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvTWFpbkVudGl0eVwiKTtcblx0XHRjb25zdCBvTWV0YVBhdGggPSBtZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvTWFpbkVudGl0eS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVyRmFjZXRzLzMvVGFyZ2V0LyRBbm5vdGF0aW9uUGF0aC9cIik7XG5cdFx0Y29uc3Qgb0RhdGFNb2RlbFBhdGggPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMob01ldGFQYXRoLCBvQ29udGV4dFBhdGgpO1xuXHRcdGNvbnN0IG9Qcm9wZXJ0eTogUHJvcGVydHkgPSBvRGF0YU1vZGVsUGF0aD8udGFyZ2V0T2JqZWN0LlZhbHVlLiR0YXJnZXQ7XG5cdFx0ZXhwZWN0KGlzVXNlZEluTmF2aWdhdGlvbldpdGhRdWlja1ZpZXdGYWNldHMob0RhdGFNb2RlbFBhdGggYXMgRGF0YU1vZGVsT2JqZWN0UGF0aCwgb1Byb3BlcnR5IGFzIFByb3BlcnR5KSkudG9FcXVhbChmYWxzZSk7XG5cdH0pO1xufSk7XG4iXX0=