@sap/open.fe 1.96.0 → 1.97.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 (490) 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 +57 -42
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
  6. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
  7. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +2 -2
  8. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +4 -4
  9. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
  10. package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
  11. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/resources.json +4 -4
  13. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  14. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  15. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  16. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  17. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  18. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +2 -2
  19. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
  20. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +59 -274
  21. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
  22. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +52 -64
  23. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
  24. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +2 -2
  25. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
  26. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +18 -22
  27. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
  28. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +80 -4
  29. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
  30. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +42 -23
  31. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
  32. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +36 -21
  33. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  34. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +9 -3
  35. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  36. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +20 -50
  37. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  38. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +222 -102
  39. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
  40. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +33 -6
  41. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  42. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +109 -111
  43. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +1 -1
  44. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +8 -0
  45. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +5 -0
  46. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
  47. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +2 -1
  48. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  49. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
  50. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +10 -1
  51. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  52. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +9 -1
  53. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +2 -2
  54. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  55. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
  56. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +67 -40
  57. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  58. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -3
  59. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  60. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -3
  61. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +57 -18
  62. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  63. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +51 -13
  64. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -19
  65. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  66. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +139 -18
  67. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +9 -1
  68. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +1 -1
  69. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +4 -0
  70. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +18 -7
  71. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  72. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +17 -12
  73. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +2 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  75. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
  76. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +2 -2
  77. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +27 -4
  78. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  79. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
  80. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  81. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +211 -0
  82. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +5 -0
  83. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
  84. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +32 -0
  85. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +5 -0
  86. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +51 -0
  88. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  89. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +1 -1
  90. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +10 -9
  91. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +1 -1
  92. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +232 -228
  93. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
  94. package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
  95. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  96. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +15 -1
  97. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +10 -0
  98. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +10 -0
  99. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +10 -0
  100. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -0
  101. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +10 -0
  102. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +10 -0
  103. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +10 -0
  104. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +10 -0
  105. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +10 -0
  106. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +10 -0
  107. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +6 -0
  108. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +11 -1
  109. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +11 -1
  110. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +10 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +10 -0
  112. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +10 -0
  113. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +10 -0
  114. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +10 -0
  115. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +10 -0
  116. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +10 -0
  117. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +10 -0
  118. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +10 -0
  119. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +11 -1
  120. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +10 -0
  121. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +10 -0
  122. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +19 -9
  123. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +10 -0
  124. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +10 -0
  125. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +10 -0
  126. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +10 -0
  127. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +10 -0
  128. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +10 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +10 -0
  130. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +10 -0
  131. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +11 -1
  132. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +10 -0
  133. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +10 -0
  134. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +10 -0
  135. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +10 -0
  136. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +10 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +10 -0
  138. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +10 -0
  139. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +10 -0
  140. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +10 -0
  141. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +10 -0
  142. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +10 -0
  143. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +10 -0
  144. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +10 -0
  145. package/packages/sap.fe.core/src/sap/fe/core/resources.json +200 -121
  146. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +30 -19
  147. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  148. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -1
  149. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  150. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +80 -7
  151. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  152. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +42 -2
  153. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
  154. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  155. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  156. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +4 -0
  157. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +1 -0
  158. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +2 -2
  159. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +13 -10
  160. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +7 -4
  161. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +1 -2
  162. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +1 -0
  163. package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +119 -0
  164. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +285 -4
  165. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +121 -0
  166. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +79 -0
  167. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +147 -0
  168. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +96 -0
  169. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +51 -18
  170. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +109 -17
  171. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +66 -0
  172. package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelper.cds +33 -0
  173. package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelperMainEntitySortableFalse.cds +12 -0
  174. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +8 -8
  175. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +68 -0
  176. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +38 -0
  177. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +483 -0
  178. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +376 -0
  179. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.js +101 -0
  180. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.ts +105 -0
  181. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.js +103 -0
  182. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.ts +106 -0
  183. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.js +118 -0
  184. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.ts +118 -0
  185. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.js +101 -0
  186. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.ts +102 -0
  187. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +118 -1
  188. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +70 -0
  189. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.js +89 -0
  190. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.ts +73 -0
  191. package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +4 -2
  192. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +6 -0
  193. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  194. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  195. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +15 -5
  196. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  197. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +9 -5
  198. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
  199. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +30 -11
  200. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +1 -1
  201. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +3 -5
  202. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
  203. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +3 -5
  204. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +17 -3
  205. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +1 -1
  206. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +1 -1
  207. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +1 -2
  208. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +4 -4
  209. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  210. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +6 -15
  211. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +14 -12
  212. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +1 -1
  213. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  214. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +2 -1
  215. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +12 -1
  216. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  217. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +15 -8
  218. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  219. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +10 -0
  220. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
  221. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
  222. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +81 -9
  223. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  224. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +13 -3
  225. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  226. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +5 -5
  227. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  228. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +4 -4
  229. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +1 -7
  230. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -3
  231. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  232. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +1 -1
  233. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +46 -0
  234. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +6 -0
  235. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +17 -8
  236. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +26 -16
  237. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +1 -0
  238. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +4 -13
  239. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  240. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +10 -10
  241. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +5 -3
  242. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
  243. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +72 -8
  244. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  245. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  246. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +12 -11
  247. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
  248. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +93 -91
  249. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  250. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  251. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  252. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +1 -1
  253. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +1 -1
  254. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +5 -0
  255. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +2 -2
  256. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +2 -2
  257. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +2 -2
  258. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +2 -2
  259. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +2 -2
  260. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +2 -2
  261. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +2 -2
  262. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +2 -2
  263. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +1 -1
  264. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
  265. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -0
  266. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +2 -2
  267. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +2 -2
  268. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +2 -2
  269. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +2 -2
  270. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +2 -2
  271. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +2 -2
  272. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +2 -2
  273. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +2 -2
  274. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +2 -2
  275. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +2 -2
  276. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +2 -2
  277. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +2 -2
  278. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -3
  279. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +2 -2
  280. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +2 -2
  281. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +2 -2
  282. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +2 -2
  283. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +2 -2
  284. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +2 -2
  285. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +2 -2
  286. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +2 -2
  287. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +2 -2
  288. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +2 -2
  289. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +2 -2
  290. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +2 -2
  291. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +2 -2
  292. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +2 -2
  293. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +2 -2
  294. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +2 -2
  295. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +2 -2
  296. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +2 -2
  297. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +2 -2
  298. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +2 -2
  299. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +2 -2
  300. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +2 -2
  301. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +21 -11
  302. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +2 -1
  303. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +149 -110
  304. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +3 -0
  305. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +70 -29
  306. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +53 -36
  307. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  308. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +1 -1
  309. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
  310. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +3 -4
  311. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  312. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +2 -2
  313. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  314. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  315. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +844 -0
  316. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +833 -0
  317. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +495 -0
  318. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +440 -0
  319. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +469 -0
  320. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +448 -0
  321. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +94 -0
  322. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +70 -0
  323. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +12 -1
  324. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +11 -0
  325. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +61 -0
  326. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.js +46 -0
  327. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.ts +30 -0
  328. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +13 -1
  329. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +11 -0
  330. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.js +66 -0
  331. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.ts +35 -0
  332. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +48 -1
  333. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +56 -0
  334. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +68 -0
  335. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +65 -0
  336. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +82 -0
  337. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +23 -5
  338. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldHelper.spec.ts.snap +47 -0
  339. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +52 -3
  340. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormElement.spec.ts.snap +25 -0
  341. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +0 -3
  342. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +69 -0
  343. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +451 -0
  344. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldHelper.xml +68 -0
  345. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +13 -1
  346. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +152 -0
  347. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +116 -0
  348. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +115 -0
  349. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.js +86 -0
  350. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.ts +54 -0
  351. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/__snapshots__/FormElement.spec.ts.snap +33 -0
  352. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +154 -0
  353. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +128 -0
  354. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +7 -2
  355. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +23 -12
  356. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1 -1
  357. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
  358. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +1 -1
  359. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
  360. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +108 -1
  361. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  362. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  363. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  364. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  365. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
  366. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  367. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  368. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  369. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  370. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  371. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  372. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  373. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  374. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  375. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +4 -4
  376. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +1 -1
  377. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  378. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  379. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +3 -3
  380. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +1 -1
  381. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +1 -1
  382. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  383. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  384. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  385. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  386. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  387. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  388. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  389. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -2
  390. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +91 -60
  391. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  392. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  393. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +31 -5
  394. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  395. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +5 -5
  396. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +2 -2
  397. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  398. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +18 -1
  399. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  400. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +114 -85
  401. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  402. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +8 -0
  403. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
  404. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  405. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +23 -3
  406. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  407. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +15 -15
  408. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +6 -5
  409. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +1 -1
  410. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +6 -4
  411. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +26 -16
  412. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +5 -5
  413. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +63 -9
  414. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
  415. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +54 -32
  416. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
  417. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +24 -21
  418. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
  419. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +2 -1
  420. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +1 -1
  421. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +2 -0
  422. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  423. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -9
  424. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
  425. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +23 -30
  426. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  427. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  428. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
  429. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +51 -60
  430. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  431. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
  432. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  433. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  434. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +95 -0
  435. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +66 -0
  436. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +134 -0
  437. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +94 -0
  438. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +61 -0
  439. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/ObjectPageHeaderForm.spec.ts.snap +53 -0
  440. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  441. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  442. package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +0 -6
  443. package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +1 -1
  444. package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +14 -3
  445. package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +1 -1
  446. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +85 -8
  447. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
  448. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +54 -2
  449. package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +0 -11
  450. package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
  451. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +0 -38
  452. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
  453. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +0 -12
  454. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +1 -1
  455. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +22 -1
  456. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  457. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +14 -0
  458. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +21 -0
  459. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +9 -5
  460. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
  461. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +18 -5
  462. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +1 -1
  463. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +25 -5
  464. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +1 -1
  465. package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +9 -0
  466. package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +1 -1
  467. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +38 -4
  468. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +1 -1
  469. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +33 -4
  470. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +1 -1
  471. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +1 -1
  472. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  473. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +3 -3
  474. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +23 -16
  475. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
  476. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  477. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  478. package/packages/sap.fe.test/src/sap/fe/test/resources.json +36 -34
  479. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  480. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  481. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -1
  482. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  483. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.96.json +0 -49
  484. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.96.json +0 -189
  485. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldRuntime.qunit.js +0 -73
  486. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.96.json +0 -160
  487. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/relnote/changes-1.96.json +0 -17
  488. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +0 -26
  489. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +0 -6
  490. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.96.json +0 -153
@@ -0,0 +1,61 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Fragment: HeaderFacet Unsupported annotation for facet type 1`] = `
4
+ "<fe:StashableHBox xmlns:fe=\\"sap.fe.templates.ObjectPage.controls\\" id=\\"fe::HeaderFacetContainer\\" xmlns:ns1=\\"sap.ui.fl\\" ns1:flexibility=\\"sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility\\" xmlns:ns2=\\"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1\\" ns2:id=\\"headerFacetContent\\" class=\\"sapUiMediumMarginEnd sapUiSmallMarginBottom\\">
5
+ <VBox xmlns=\\"sap.m\\" width=\\"150px\\" class=\\"sapUiSmallMargin\\">
6
+ <Text text=\\"Unsupported Facet Type: ~unsupported\\" visible=\\"true\\" wrapping=\\"true\\"/>
7
+ </VBox>
8
+ </fe:StashableHBox>"
9
+ `;
10
+
11
+ exports[`Fragment: HeaderFacet type: Address 1`] = `
12
+ "<fe:StashableHBox xmlns:fe=\\"sap.fe.templates.ObjectPage.controls\\" id=\\"fe::HeaderFacetContainer\\" xmlns:ns1=\\"sap.ui.fl\\" ns1:flexibility=\\"sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility\\" xmlns:ns2=\\"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1\\" ns2:id=\\"headerFacetContent\\" class=\\"sapUiMediumMarginEnd sapUiSmallMarginBottom\\">
13
+ <VBox xmlns=\\"sap.m\\" displayInline=\\"true\\">
14
+ <Title/>
15
+ <Text ns2:id=\\"ObjectPageHeaderAddressTest\\" renderWhitespace=\\"true\\" class=\\"sapMLabel\\"/>
16
+ </VBox>
17
+ </fe:StashableHBox>"
18
+ `;
19
+
20
+ exports[`Fragment: HeaderFacet type: Chart 1`] = `
21
+ "<fe:StashableHBox xmlns:fe=\\"sap.fe.templates.ObjectPage.controls\\" id=\\"fe::HeaderFacetContainer\\" xmlns:ns1=\\"sap.ui.fl\\" ns1:flexibility=\\"sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility\\" xmlns:ns2=\\"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1\\" ns2:id=\\"headerFacetContent\\" class=\\"sapUiMediumMarginEnd sapUiSmallMarginBottom\\">
22
+ <internalMacro:MicroChart xmlns:internalMacro=\\"sap.fe.macros.internal\\" ns2:id=\\"macroMicroChart\\" id=\\"fe::HeaderFacet::MicroChart\\" batchGroupId=\\"$auto.Workers\\" metaPath=\\"/path\\" navigationType=\\"External\\" onTitlePressed=\\".handlers.navigateToSubSection($controller, '{}')\\"/>
23
+ </fe:StashableHBox>"
24
+ `;
25
+
26
+ exports[`Fragment: HeaderFacet type: Contact 1`] = `
27
+ "<fe:StashableHBox xmlns:fe=\\"sap.fe.templates.ObjectPage.controls\\" id=\\"fe::HeaderFacetContainer\\" xmlns:ns1=\\"sap.ui.fl\\" ns1:flexibility=\\"sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility\\" xmlns:ns2=\\"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1\\" ns2:id=\\"headerFacetContent\\" class=\\"sapUiMediumMarginEnd sapUiSmallMarginBottom\\">
28
+ <VBox xmlns=\\"sap.m\\" id=\\"fe::HeaderFacet::Contact\\" displayInline=\\"true\\">
29
+ <macro:Contact xmlns:macro=\\"sap.fe.macros\\" contact=\\"/path\\" visible=\\"true\\"/>
30
+ </VBox>
31
+ </fe:StashableHBox>"
32
+ `;
33
+
34
+ exports[`Fragment: HeaderFacet type: DataPoint 1`] = `
35
+ "<fe:StashableHBox xmlns:fe=\\"sap.fe.templates.ObjectPage.controls\\" id=\\"fe::HeaderFacetContainer\\" xmlns:ns1=\\"sap.ui.fl\\" ns1:flexibility=\\"sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility\\" xmlns:ns2=\\"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1\\" ns2:id=\\"headerFacetContent\\" class=\\"sapUiMediumMarginEnd sapUiSmallMarginBottom\\" binding=\\"{ path : '', parameters : { $$groupId : '$auto.Workers' } }\\">
36
+ <VBox xmlns=\\"sap.m\\" id=\\"fe::HeaderFacet\\">
37
+ <core:InvisibleText xmlns:core=\\"sap.ui.core\\" text=\\"{sap.fe.i18n&gt;T_COMMON_HEADERDP_TITLE_LINK_INPAGE_ARIA}\\" id=\\"fe::path::AriaText\\"/>
38
+ <Title level=\\"H3\\" visible=\\"false\\">
39
+ <content>
40
+ <Link ns2:id=\\"HeaderDataPointInternalLinkTest\\" id=\\"fe::HeaderDPLink::path\\" press=\\".handlers.navigateToSubSection($controller, '{}')\\" ariaDescribedBy=\\"fe::path::AriaText\\"/>
41
+ </content>
42
+ </Title>
43
+ <internalMacro:DataPoint xmlns:internalMacro=\\"sap.fe.macros.internal\\" metaPath=\\"/path\\" contextPath=\\"{entitySet&gt;}\\">
44
+ <internalMacro:formatOptions defaultDataPointStyle=\\"ObjectNumber\\" showLabels=\\"true\\" iconSize=\\"1.375rem\\"/>
45
+ </internalMacro:DataPoint>
46
+ </VBox>
47
+ </fe:StashableHBox>"
48
+ `;
49
+
50
+ exports[`Fragment: HeaderFacet type: FieldGroup 1`] = `
51
+ "<fe:StashableHBox xmlns:fe=\\"sap.fe.templates.ObjectPage.controls\\" id=\\"fe::HeaderFacetContainer\\" xmlns:ns1=\\"sap.ui.fl\\" ns1:flexibility=\\"sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility\\" xmlns:ns2=\\"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1\\" ns2:id=\\"headerFacetContent\\" class=\\"sapUiMediumMarginEnd sapUiSmallMarginBottom\\">
52
+ <VBox xmlns=\\"sap.m\\" displayInline=\\"true\\">
53
+ </VBox>
54
+ </fe:StashableHBox>"
55
+ `;
56
+
57
+ exports[`Fragment: HeaderFacet type: Identification 1`] = `
58
+ "<fe:StashableHBox xmlns:fe=\\"sap.fe.templates.ObjectPage.controls\\" id=\\"fe::HeaderFacetContainer\\" xmlns:ns1=\\"sap.ui.fl\\" ns1:flexibility=\\"sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility\\" xmlns:ns2=\\"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1\\" ns2:id=\\"headerFacetContent\\" class=\\"sapUiMediumMarginEnd sapUiSmallMarginBottom\\">
59
+ <Text xmlns=\\"sap.m\\" text=\\"Identification in header facet\\"/>
60
+ </fe:StashableHBox>"
61
+ `;
@@ -0,0 +1,53 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Fragment: ObjectPageHeaderForm Type: Annotation Just one MultiLineDataField 1`] = `
4
+ "<VBox xmlns=\\"sap.m\\" id=\\"~headerform.id\\" displayInline=\\"true\\">
5
+ <Title text=\\"~headerform.label\\" class=\\"sapUiSmallMarginBottom\\"/>
6
+ <layoutData>
7
+ <FlexItemData maxWidth=\\"300px\\"/>
8
+ </layoutData>
9
+ <Text text=\\"~formattedValue\\"/>
10
+ </VBox>"
11
+ `;
12
+
13
+ exports[`Fragment: ObjectPageHeaderForm Type: Annotation vertical-alignment of label and text in formElement 1`] = `
14
+ "<VBox xmlns=\\"sap.m\\" id=\\"~headerform.id\\" displayInline=\\"true\\">
15
+ <Title text=\\"~headerform.label\\" class=\\"sapUiSmallMarginBottom\\"/>
16
+ <HBox xmlns:ns1=\\"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1\\" ns1:id=\\"ObjectPageHeaderHBoxTest\\" class=\\"sapUiTinyMarginBottom\\">
17
+ <Label ns1:id=\\"ObjectPageHeaderLabelTest\\" id=\\"~prefix-Label\\" text=\\"undefined:\\" visible=\\"false\\" class=\\"sapUiTinyMarginEnd\\" vAlign=\\"Inherit\\"/>
18
+ <internalMacro:Field xmlns:internalMacro=\\"sap.fe.macros.internal\\" idPrefix=\\"~prefix\\" editMode=\\"Display\\" entitySet=\\"{entitySet&gt;}\\" ariaLabelledBy=\\"~prefix-Label\\">
19
+ <internalMacro:formatOptions textAlignMode=\\"Form\\" showEmptyIndicator=\\"true\\"/>
20
+ </internalMacro:Field>
21
+ </HBox>
22
+ <HBox xmlns:ns2=\\"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1\\" ns2:id=\\"ObjectPageHeaderHBoxTest\\" class=\\"sapUiTinyMarginBottom\\">
23
+ <Label ns2:id=\\"ObjectPageHeaderLabelTest\\" id=\\"~prefix-Label\\" text=\\"undefined:\\" visible=\\"false\\" class=\\"sapUiTinyMarginEnd\\" vAlign=\\"Middle\\"/>
24
+ <internalMacro:Field xmlns:internalMacro=\\"sap.fe.macros.internal\\" idPrefix=\\"~prefix\\" editMode=\\"Display\\" entitySet=\\"{entitySet&gt;}\\" ariaLabelledBy=\\"~prefix-Label\\">
25
+ <internalMacro:formatOptions textAlignMode=\\"Form\\" showEmptyIndicator=\\"true\\"/>
26
+ </internalMacro:Field>
27
+ </HBox>
28
+ </VBox>"
29
+ `;
30
+
31
+ exports[`Fragment: ObjectPageHeaderForm Type: Default 1`] = `
32
+ "<VBox xmlns=\\"sap.m\\" id=\\"~headerform.id\\" displayInline=\\"true\\">
33
+ <Title text=\\"~headerform.label\\" class=\\"sapUiSmallMarginBottom\\"/>
34
+ <l:HorizontalLayout xmlns:l=\\"sap.ui.layout\\" class=\\"sapUiTinyMarginBottom\\">
35
+ <core:Fragment xmlns:core=\\"sap.ui.core\\" xmlns:compo=\\"http://schemas.sap.com/sapui5/extension/sap.ui.core.xmlcomposite/1\\" fragmentName=\\"~template-JS\\" id=\\"~key\\" type=\\"CUSTOM\\"/>
36
+ </l:HorizontalLayout>
37
+ </VBox>"
38
+ `;
39
+
40
+ exports[`Fragment: ObjectPageHeaderForm Type: unsupported 1`] = `
41
+ "<VBox xmlns=\\"sap.m\\" id=\\"~headerform.id\\" displayInline=\\"true\\">
42
+ <Title text=\\"~headerform.label\\" class=\\"sapUiSmallMarginBottom\\"/>
43
+ <VBox width=\\"150px\\" class=\\"sapUiSmallMargin\\">
44
+ <Text text=\\"Unsupported Facet Type: ~unsupported\\" visible=\\"true\\" wrapping=\\"true\\"/>
45
+ </VBox>
46
+ </VBox>"
47
+ `;
48
+
49
+ exports[`Fragment: ObjectPageHeaderForm minimal input 1`] = `
50
+ "<VBox xmlns=\\"sap.m\\" id=\\"~headerform.id\\" displayInline=\\"true\\">
51
+ <Title text=\\"~headerform.label\\" class=\\"sapUiSmallMarginBottom\\"/>
52
+ </VBox>"
53
+ `;
@@ -6,7 +6,7 @@
6
6
  <copyright>SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.96.0</version>
9
+ <version>1.97.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.test</documentation>
12
12
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "sEntity": "Library",
3
3
  "sId": "sap/fe/test",
4
- "sVersion": "1.96.0",
4
+ "sVersion": "1.97.0",
5
5
  "bIgnore": true
6
6
  }
@@ -15,9 +15,6 @@ sap.ui.define(["sap/ui/test/OpaBuilder"], function(OpaBuilder) {
15
15
  .hasType("sap.m.OverflowToolbarButton")
16
16
  .hasProperties({ icon: "sap-icon://full-screen" })
17
17
  .description("Entering the FullScreen Button")
18
- .do(function(oButton) {
19
- oButton.fireHover();
20
- })
21
18
  .doPress()
22
19
  .execute();
23
20
  },
@@ -26,9 +23,6 @@ sap.ui.define(["sap/ui/test/OpaBuilder"], function(OpaBuilder) {
26
23
  .hasType("sap.m.OverflowToolbarButton")
27
24
  .hasProperties({ icon: "sap-icon://exit-full-screen" })
28
25
  .description("Exiting Full screen mode")
29
- .do(function(oButton) {
30
- oButton.fireHover();
31
- })
32
26
  .doPress()
33
27
  .execute();
34
28
  },
@@ -3,4 +3,4 @@
3
3
  (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
 
5
5
  */
6
- sap.ui.define(["sap/ui/test/OpaBuilder"],function(O){"use strict";return{actions:{iEnterFullScreenMode:function(){return O.create(this).hasType("sap.m.OverflowToolbarButton").hasProperties({icon:"sap-icon://full-screen"}).description("Entering the FullScreen Button").do(function(b){b.fireHover();}).doPress().execute();},iExitFullScreenMode:function(){return O.create(this).hasType("sap.m.OverflowToolbarButton").hasProperties({icon:"sap-icon://exit-full-screen"}).description("Exiting Full screen mode").do(function(b){b.fireHover();}).doPress().execute();},iCloseThisColumn:function(){return O.create(this).hasType("sap.m.OverflowToolbarButton").hasProperties({icon:"sap-icon://decline"}).doPress().description("Close FCL column for object page").execute();}},assertions:{iCheckActionButton:function(v,i,b){if(!b){b=i;}return O.create(this).hasType("sap.uxap.ObjectPageDynamicHeaderTitle").check(function(h){var H=h[0],e=H.getNavigationActions().filter(function(B){return B.getIcon&&B.getIcon()===i&&B.getVisible();});return v?e.length!==0:e.length===0;}).description((v?"Seeing":"Not seeing")+" the "+b+" Button").execute();},iCheckFullScreenButton:function(v){return this.iCheckActionButton(v,"sap-icon://full-screen","Fullscreen");},iCheckFullScreenExitButton:function(v){return this.iCheckActionButton(v,"sap-icon://exit-full-screen","Exit Fullscreen");},iCheckCloseColumnButton:function(v){return this.iCheckActionButton(v,"sap-icon://decline","Close Column");},iSeeEndColumnFullScreen:function(){return O.create(this).hasType("sap.m.OverflowToolbarButton").check(function(b){var f=b.some(function(B){return B.getProperty("icon")==="sap-icon://full-screen";});return f===false;},true).description("No FCL displayed").execute();}}};});
6
+ sap.ui.define(["sap/ui/test/OpaBuilder"],function(O){"use strict";return{actions:{iEnterFullScreenMode:function(){return O.create(this).hasType("sap.m.OverflowToolbarButton").hasProperties({icon:"sap-icon://full-screen"}).description("Entering the FullScreen Button").doPress().execute();},iExitFullScreenMode:function(){return O.create(this).hasType("sap.m.OverflowToolbarButton").hasProperties({icon:"sap-icon://exit-full-screen"}).description("Exiting Full screen mode").doPress().execute();},iCloseThisColumn:function(){return O.create(this).hasType("sap.m.OverflowToolbarButton").hasProperties({icon:"sap-icon://decline"}).doPress().description("Close FCL column for object page").execute();}},assertions:{iCheckActionButton:function(v,i,b){if(!b){b=i;}return O.create(this).hasType("sap.uxap.ObjectPageDynamicHeaderTitle").check(function(h){var H=h[0],e=H.getNavigationActions().filter(function(B){return B.getIcon&&B.getIcon()===i&&B.getVisible();});return v?e.length!==0:e.length===0;}).description((v?"Seeing":"Not seeing")+" the "+b+" Button").execute();},iCheckFullScreenButton:function(v){return this.iCheckActionButton(v,"sap-icon://full-screen","Fullscreen");},iCheckFullScreenExitButton:function(v){return this.iCheckActionButton(v,"sap-icon://exit-full-screen","Exit Fullscreen");},iCheckCloseColumnButton:function(v){return this.iCheckActionButton(v,"sap-icon://decline","Close Column");},iSeeEndColumnFullScreen:function(){return O.create(this).hasType("sap.m.OverflowToolbarButton").check(function(b){var f=b.some(function(B){return B.getProperty("icon")==="sap-icon://full-screen";});return f===false;},true).description("No FCL displayed").execute();}}};});
@@ -229,6 +229,17 @@ sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnit
229
229
  .execute();
230
230
  },
231
231
 
232
+ iExecutePopOverButtonByIcon: function(sIcon, sDescription) {
233
+ return OpaBuilder.create(this)
234
+ .viewId(null)
235
+ .hasType("sap.m.Button")
236
+ .hasProperties({ icon: "sap-icon://" + sIcon })
237
+ .isDialogElement()
238
+ .doPress()
239
+ .description(sDescription)
240
+ .execute();
241
+ },
242
+
232
243
  iExecutePopOverActionRename: function(sId) {
233
244
  return this.iExecutePopOverActionByIcon("edit", "Press rename on " + sId);
234
245
  },
@@ -262,7 +273,7 @@ sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnit
262
273
  },
263
274
 
264
275
  iSwitchToGroupViewInTheFilterBarDialog: function() {
265
- return this.iExecutePopOverActionByIcon("group-2", "Switch to grouped view in filter bar dialog");
276
+ return this.iExecutePopOverButtonByIcon("group-2", "Switch to grouped view in filter bar dialog");
266
277
  },
267
278
 
268
279
  iSelectExpandFiltersgroupInTheFilterBarDialog: function(sFiltersgroupName) {
@@ -630,11 +641,11 @@ sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnit
630
641
  },
631
642
 
632
643
  iSeeTheVariantManagementPopover: function() {
633
- return this.iSeeTheButtonByIcon("sap-icon://duplicate", "The Popover");
644
+ return this.iSeeTheMenuItemByIcon("sap-icon://duplicate", "The Popover");
634
645
  },
635
646
 
636
647
  iSeeTheRTAPopover: function() {
637
- return this.iSeeTheButtonByIcon("sap-icon://key-user-settings", "The RTAPopover");
648
+ return this.iSeeTheMenuItemByIcon("sap-icon://key-user-settings", "The RTAPopover");
638
649
  },
639
650
 
640
651
  iSeeTheRenameButton: function() {
@@ -3,4 +3,4 @@
3
3
  (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
 
5
5
  */
6
- sap.ui.define(["sap/ui/test/Opa5","sap/ui/test/OpaBuilder","sap/ui/qunit/QUnitUtils"],function(O,a,Q){"use strict";function g(f){var i=new RegExp("fe::HeaderFacetContainer::"+f+"$");return i;}function b(i){var I=new RegExp("fe::FacetSection::"+i+"-anchor$");return I;}function c(i){return new RegExp("fe::Form::(.+)"+i+"_FormElement"+"$");}function d(i,C){var h=function(o){var e=C?o.getElementInstance().getParent():o.getElementInstance(),E=e&&e.getId();return typeof i==="string"?E===i:i.test(E);};return h;}return{actions:{iExecuteById:function(i,D){return a.create(this).viewId(null).hasId(i).doPress().description(D).execute();},iExecuteMeArea:function(){return this.iExecuteById("meAreaHeaderButton","Me Area");},iExecuteAdaptUI:function(){return this.iExecuteById(/RTA_Plugin_ActionButton$/,"Adapt UI");},iExecuteAdaptation:function(){return this.iExecuteById(/adaptationSwitcherButton$/,"Adaptation");},iExecuteNavigation:function(){return this.iExecuteById(/navigationSwitcherButton$/,"Navigation");},iWaitUntilTheBusyIndicatorIsGone:function(){return a.create(this).viewId(null).hasId("mainShell").has(function(r){return r.getBusy()===false;}).timeout(180).description("Busy indicator is gone").execute();},iExecuteRightContextMenuById:function(i,D,C){var h=d(i,C);return a.create(this).viewId(null).hasType("sap.ui.dt.ElementOverlay").has(h).do(function(o){o.$().trigger("contextmenu");}).description(D).execute();},iExecuteLeftContextMenuById:function(i,D,C){var h=d(i,C);return a.create(this).viewId(null).hasType("sap.ui.dt.ElementOverlay").has(h).doPress().description(D).execute();},iExecuteRightContextMenuOnHeaderContainer:function(){return this.iExecuteRightContextMenuById(/fe::HeaderContentContainer$/,"Context menu for Header Container");},iExecuteRightContextMenuOnVariantManagement:function(){return this.iExecuteRightContextMenuById(/fe::PageVariantManagement$/,"Context menu for Variant Management");},iExecuteRightContextMenuOnTable:function(){return this.iExecuteRightContextMenuById(/fe::table::SalesOrderManage::LineItem$/,"Context menu for Table");},iExecuteRightContextMenuOnFilterBar:function(){return this.iExecuteRightContextMenuById(/fe::FilterBar::SalesOrderManage$/,"Context menu for FilterBar");},iExecuteRightContextMenuOnHeaderFacet:function(f){return this.iExecuteRightContextMenuById(g(f),"Context menu for "+f,true);},iExecuteRightContextMenuOnSection:function(i){return this.iExecuteRightContextMenuById(b(i),"Context menu for "+i,false);},iExecuteRightContextMenuOnFormContainer:function(i){return this.iExecuteRightContextMenuById(new RegExp("fe::FormContainer::"+i+"$"),"Context menu for Form Container "+i);},iExecuteRightContextMenuOnHeaderFacetFormContainer:function(i){return this.iExecuteRightContextMenuById(new RegExp("fe::HeaderFacet::FormContainer::"+i+"$"),"Context menu for HeaderFacet Form Container "+i);},iExecuteRightContextMenuOnHeaderFacetFormElement:function(i){return this.iExecuteRightContextMenuById(new RegExp("fe::HeaderFacet::FormContainer::"+i+"::FormElement"+"$"),"Context menu for HeaderFacet Form Element "+i);},iExecuteLeftContextMenuOnSection:function(i){return this.iExecuteLeftContextMenuById(b(i),"Left context menu for "+i,false);},iExecuteLeftContextMenuOnHeaderFacet:function(f){return this.iExecuteLeftContextMenuById(g(f),"Left Context menu for "+f,true);},iExecuteLeftContextMenuOnHeaderFacetFormContainer:function(i){return this.iExecuteLeftContextMenuById(new RegExp("fe::HeaderFacet::FormContainer::"+i+"$"),"Left context menu for HeaderFacet Form Container "+i);},iExecuteLeftContextMenuOnHeaderFacetFormElement:function(i){return this.iExecuteLeftContextMenuById(new RegExp("fe::HeaderFacet::FormContainer::"+i+"::FormElement"+"$"),"Left context menu for HeaderFacet Form Element "+i);},iExecuteRightContextMenuOnFieldAddedViaRTA:function(i){return this.iExecuteRightContextMenuById(c("_"+i),"Context menu for Field "+i);},iExecuteFocusOnAnchorBar:function(){return a.create(this).viewId(null).hasId(/fe::ObjectPage-anchBar$/).doPress().description("Focus on AnchorBar").execute();},iExecutePopOverActionByIcon:function(i,D){return a.create(this).viewId(null).hasType("sap.ui.unified.MenuItem").hasProperties({icon:"sap-icon://"+i}).isDialogElement().doPress().description(D).execute();},iExecutePopOverActionRename:function(i){return this.iExecutePopOverActionByIcon("edit","Press rename on "+i);},iExecutePopOverActionAdd:function(D){return this.iExecutePopOverActionByIcon("add",D);},iExecutePopOverActionRemove:function(D){return this.iExecutePopOverActionByIcon("less",D);},iExecutePopOverActionCut:function(D){return this.iExecutePopOverActionByIcon("scissors",D);},iExecutePopOverActionPaste:function(D){return this.iExecutePopOverActionByIcon("paste",D);},iExecutePopOverActionDuplicate:function(D){return this.iExecutePopOverActionByIcon("duplicate","Duplicate Variant '"+D+"'");},iExecutePopOverActionSettings:function(D){return this.iExecutePopOverActionByIcon("key-user-settings","Open "+D+" Settings");},iExecutePopOverActionEmbedContent:function(D){return this.iExecutePopOverActionByIcon("tnt/content-enricher","Open "+D+" Settings");},iSwitchToGroupViewInTheFilterBarDialog:function(){return this.iExecutePopOverActionByIcon("group-2","Switch to grouped view in filter bar dialog");},iSelectExpandFiltersgroupInTheFilterBarDialog:function(f){return a.create(this).viewId(null).hasType("sap.m.Panel").hasChildren(a.create(this).hasType("sap.m.Label").hasProperties({text:f})).doOnChildren(a.create(this).hasType("sap.m.Button").doPress()).description("Expanding filter group wiht name '"+f+"'").execute();},iSelectCheckBoxInTheFilterBarDialog:function(t){return a.create(this).viewId(null).hasType("sap.m.CustomListItem").doOnChildren(a.create(this).hasType("sap.m.CustomListItem").hasChildren(a.create(this).hasType("sap.m.Label").hasProperties({text:t})).doOnChildren(a.create(this).hasType("sap.m.CheckBox").doPress())).description("Selected Checkbox next to '"+t+"'").execute();},iChangeVisibilityFilter:function(s){return a.create(this).viewId(null).hasType("sap.m.Bar").isDialogElement().doOnChildren(a.create(this).hasType("sap.m.Select").checkNumberOfMatches(1).doEnterText(s)).description("Changed displayed fields to '"+s+"'").execute();},iEnterUrlInTheTextArea:function(u){return a.create(this).viewId(null).hasType("sap.m.TextArea").hasId("sapUiRtaAddIFrameDialog_EditUrlTA").isDialogElement().doEnterText(u).description("Added URL '"+u+"' to Text Area").execute();},iSwitchToReorderOnDialog:function(){return a.create(this).viewId(null).hasType("sap.m.Button").isDialogElement().hasProperties({text:"Reorder"}).doPress().description("Switch to reorder view").execute();},_iSelectALabelOnTheReorderDialog:function(t){return a.create(this).viewId(null).hasType("sap.m.Label").isDialogElement().hasProperties({text:t}).doPress().execute();},iReorderTableColumn:function(l,n){this._iSelectALabelOnTheReorderDialog(l);var i,I="sap-icon://";if(n===0){i="collapse-group";}else if(n===1){i="slim-arrow-up";}else if(!n===2){i="slim-arrow-down";}else if(!n===3){i="expand-group";}I+=i;return a.create(this).viewId(null).hasType("sap.m.Button").isDialogElement().hasProperties({icon:I}).doPress().description("Reorder '"+l+"'").execute();},iEnterTextInSearchfield:function(n){return a.create(this).viewId(null).hasType("sap.m.SearchField").isDialogElement().checkNumberOfMatches(1).doEnterText(n).description("Enter text: '"+n+"'").execute();},iEnterTextinFilterField:function(t){return a.create(this).hasType("sap.ui.mdc.field.FieldMultiInput").checkNumberOfMatches(1).doEnterText(t).description("Enter text: '"+t+"'").execute();},iSelectAFieldInTheDialog:function(t){return a.create(this).viewId(null).hasType("sap.m.CustomListItem").isDialogElement().has(function(l){var T=l.getTooltip();return typeof t==="string"?T===t:t.test(T);}).doPress().description("Select "+t).execute();},iExecutePopOverOk:function(){return a.create(this).viewId(null).hasType("sap.m.Button").hasProperties({text:"OK"}).isDialogElement().doPress().description("OK Button").execute();},iExecuteSaveAndExit:function(){return this.iExecuteById(/sapUiRta_exit$/,"Save&Exit");},iExecuteUndo:function(){return this.iExecuteById(/sapUiRta_undo$/,"Undo");},iEnterTextForRTAEditableField:function(n){return a.create(this).hasType("sap.ui.dt.ElementOverlay").has(function(o){if(o.$().hasClass("sapUiDtOverlaySelected")){var $=o.$().find(".sapUiRtaEditableField");var e=$.children()[0];return e;}return null;}).do(function(e){e.innerHTML=n;Q.triggerEvent("keypress",e,{which:13,keyCode:13});e.blur();}).description("Enter text: "+n).execute();},iEnterTextForTitle:function(n){return this.iEnterTextForRTAEditableField(n);},iEnterTextForViewField:function(n){return a.create(this).hasType("sap.m.Input").isDialogElement().doEnterText(n,true).description("Entering text: "+n+" as variant name").execute();}},assertions:{iSeeTheFLPToolbar:function(){return a.create(this).hasType("sap.ushell.ui.ShellHeader").hasId("shell-header").description("Seeing the FLP toolbar").execute();},iSeeTheRTAToolbar:function(){return a.create(this).hasType("sap.ui.rta.toolbar.Fiori").description("Seeing the RTA toolbar").execute();},iSeeTheHeaderFacet:function(f){return a.create(this).hasType("sap.fe.templates.ObjectPage.controls.StashableHBox").hasId(g(f)).description("Seeing the Header Facet "+f).execute();},iSeeTheFieldAddedViaRTA:function(i){return a.create(this).hasType("sap.ui.layout.form.FormElement").hasId(c("_"+i)).description("Seeing the Field "+i).execute();},iSeeTheEditableHeaderFieldAddedViaRTA:function(i){return a.create(this).hasType("sap.ui.layout.form.FormElement").hasId(new RegExp("fe::EditableHeaderForm_(.+)_"+i+"_FormElement"+"$")).description("Seeing the Editable Header Field "+i).execute();},iSeeTheEditableHeaderField:function(i){return a.create(this).hasType("sap.ui.layout.form.FormElement").hasId(new RegExp("fe::HeaderFacet::FormContainer::"+i+"::FormElement"+"$")).description("Seeing the Editable Header Field "+i).execute();},iDoNotSeeTheHeaderFacet:function(f){var i=g(f);return a.create(this).hasType("sap.fe.templates.ObjectPage.controls.StashableHBox").check(function(e){var F=e.some(function(o){return typeof i==="string"?o.getId()===i:i.test(o.getId());});return F===false;},true).description("Not seeing the Header Facet "+f).execute();},iDoNotSeeTheField:function(i){return a.create(this).hasType("sap.ui.layout.form.FormElement").check(function(e){var f=e.some(function(h){return h.getId().indexOf(i)>-1;});return f===false;},true).description("Not seeing the Field "+i).execute();},iSeeTheElementOverlayById:function(i,D,C){var h=d(i,C);return a.create(this).hasType("sap.ui.dt.ElementOverlay").has(h).description(D).execute();},iDoNotSeeTheElementOverlayById:function(i,D,C){var h=d(i,C);return a.create(this).hasType("sap.ui.dt.ElementOverlay").check(function(o){var f=o.some(h);return f===false;},true).description(D).execute();},iSeeTheElementOverlayForTheApp:function(){return this.iSeeTheElementOverlayById(/component---appRootView--appContent$/,"Seeing the ElementOverlay for the App");},iSeeThePopover:function(){return a.create(this).hasType("sap.ui.unified.Menu").description("Seeing the Popover").execute();},iSeeTheButtonByIcon:function(i,D){return a.create(this).hasType("sap.m.Button").isDialogElement().hasProperties({icon:i}).description("Seeing "+D).execute();},iSeeTheMenuItemByIcon:function(i,D){return a.create(this).hasType("sap.ui.unified.MenuItem").isDialogElement().hasProperties({icon:i}).description("Seeing "+D).execute();},iDoNotSeeTheButtonByIcon:function(i,D){return a.create(this).hasType("sap.m.Button").isDialogElement().check(function(B){var f=B.some(function(o){return o.getProperty("icon")===i;});return f===false;},true).description("Not seeing "+D).execute();},iDoNotSeeTheMenuItemByIcon:function(i,D){return a.create(this).hasType("sap.ui.unified.MenuItem").isDialogElement().check(function(B){var f=B.some(function(o){return o.getProperty("icon")===i;});return f===false;},true).description("Not seeing "+D).execute();},iSeeTheVariantManagementPopover:function(){return this.iSeeTheButtonByIcon("sap-icon://duplicate","The Popover");},iSeeTheRTAPopover:function(){return this.iSeeTheButtonByIcon("sap-icon://key-user-settings","The RTAPopover");},iSeeTheRenameButton:function(){return this.iSeeTheMenuItemByIcon("sap-icon://edit","the button 'rename'");},iSeeTheAddButton:function(){return this.iSeeTheMenuItemByIcon("sap-icon://add","the button 'add'");},iSeeTheCreateGroupButton:function(){return this.iSeeTheMenuItemByIcon("sap-icon://add-folder","the button 'create group'");},iDoNotSeeTheRenameButton:function(){return this.iDoNotSeeTheMenuItemByIcon("sap-icon://edit","the button 'rename'");},iDoNotSeeTheAddButton:function(){return this.iDoNotSeeTheMenuItemByIcon("sap-icon://add","the button 'add'");},iDoNotSeeTheRemoveButton:function(){return this.iDoNotSeeTheMenuItemByIcon("sap-icon://less","the button 'remove'");},iSeeThePopoverDialog:function(){return a.create(this).hasType("sap.m.Dialog").description("Seeing the Popover Dialog").execute();},iSeeThePopoverDialogWithId:function(i){return a.create(this).hasType("sap.m.Dialog").hasId(i).description("Seeing the Popover Dialog with Id:",i).execute();},iSeeTheHeaderFacetOverlay:function(f){return this.iSeeTheElementOverlayById(g(f),"Seeing the Header Facet: "+f,true);},iDoNotSeeTheHeaderFacetOverlay:function(f){return this.iDoNotSeeTheElementOverlayById(g(f),"Not seeing the Header Facet Overlay: "+f,true);},iSeeTheTitleOnTheUI:function(t){return a.create(this).hasType("sap.m.Title").hasProperties({text:t}).description("Seeing the Title "+t).execute();},iSeeTheLinkOnTheUI:function(t){return a.create(this).hasType("sap.m.Link").hasProperties({text:t}).checkNumberOfMatches(1).description("Seeing the Link "+t).execute();},iCheckTheHeaderFacetTitle:function(f,t){return a.create(this).hasType("sap.fe.templates.ObjectPage.controls.StashableHBox").hasId(g(f)).hasProperties({title:t}).description("The Header Facet "+f+" has title "+t).execute();},iSeeTheSectionTextById:function(i,t){var I=b(i);return a.create(this).hasId(I).hasProperties({text:t}).description("Seeing the section "+i+" with text "+t).execute();},iSeeTheSectionAtPosition:function(i,p){var I=b(i);return a.create(this).hasType("sap.m.Button").hasId(I).has(function(e){var C=e.getParent().getContent(),f=C.findIndex(function(s){return I.test(s.getId());});return f===p;}).description("Seeing the section "+i+" at position "+p).execute();},iSeeTheAddedIFrameInHeader:function(u){return a.create(this).hasType("sap.ui.dt.AggregationOverlay").hasProperties({aggregationName:"headerContent"}).doOnChildren(a.create(this).hasType("sap.ui.fl.util.IFrame")).description("Seeing the application with URL: "+u+" in iFrame in header content container").execute();},iSeeTheIFrameInSectionWithTitle:function(s){return a.create(this).hasType("sap.uxap.ObjectPageSection").hasProperties({title:s}).doOnChildren(a.create(this).hasType("sap.ui.fl.util.IFrame")).description("Seeing iFrame in section with title '"+s+"'").execute();}}};});
6
+ sap.ui.define(["sap/ui/test/Opa5","sap/ui/test/OpaBuilder","sap/ui/qunit/QUnitUtils"],function(O,a,Q){"use strict";function g(f){var i=new RegExp("fe::HeaderFacetContainer::"+f+"$");return i;}function b(i){var I=new RegExp("fe::FacetSection::"+i+"-anchor$");return I;}function c(i){return new RegExp("fe::Form::(.+)"+i+"_FormElement"+"$");}function d(i,C){var h=function(o){var e=C?o.getElementInstance().getParent():o.getElementInstance(),E=e&&e.getId();return typeof i==="string"?E===i:i.test(E);};return h;}return{actions:{iExecuteById:function(i,D){return a.create(this).viewId(null).hasId(i).doPress().description(D).execute();},iExecuteMeArea:function(){return this.iExecuteById("meAreaHeaderButton","Me Area");},iExecuteAdaptUI:function(){return this.iExecuteById(/RTA_Plugin_ActionButton$/,"Adapt UI");},iExecuteAdaptation:function(){return this.iExecuteById(/adaptationSwitcherButton$/,"Adaptation");},iExecuteNavigation:function(){return this.iExecuteById(/navigationSwitcherButton$/,"Navigation");},iWaitUntilTheBusyIndicatorIsGone:function(){return a.create(this).viewId(null).hasId("mainShell").has(function(r){return r.getBusy()===false;}).timeout(180).description("Busy indicator is gone").execute();},iExecuteRightContextMenuById:function(i,D,C){var h=d(i,C);return a.create(this).viewId(null).hasType("sap.ui.dt.ElementOverlay").has(h).do(function(o){o.$().trigger("contextmenu");}).description(D).execute();},iExecuteLeftContextMenuById:function(i,D,C){var h=d(i,C);return a.create(this).viewId(null).hasType("sap.ui.dt.ElementOverlay").has(h).doPress().description(D).execute();},iExecuteRightContextMenuOnHeaderContainer:function(){return this.iExecuteRightContextMenuById(/fe::HeaderContentContainer$/,"Context menu for Header Container");},iExecuteRightContextMenuOnVariantManagement:function(){return this.iExecuteRightContextMenuById(/fe::PageVariantManagement$/,"Context menu for Variant Management");},iExecuteRightContextMenuOnTable:function(){return this.iExecuteRightContextMenuById(/fe::table::SalesOrderManage::LineItem$/,"Context menu for Table");},iExecuteRightContextMenuOnFilterBar:function(){return this.iExecuteRightContextMenuById(/fe::FilterBar::SalesOrderManage$/,"Context menu for FilterBar");},iExecuteRightContextMenuOnHeaderFacet:function(f){return this.iExecuteRightContextMenuById(g(f),"Context menu for "+f,true);},iExecuteRightContextMenuOnSection:function(i){return this.iExecuteRightContextMenuById(b(i),"Context menu for "+i,false);},iExecuteRightContextMenuOnFormContainer:function(i){return this.iExecuteRightContextMenuById(new RegExp("fe::FormContainer::"+i+"$"),"Context menu for Form Container "+i);},iExecuteRightContextMenuOnHeaderFacetFormContainer:function(i){return this.iExecuteRightContextMenuById(new RegExp("fe::HeaderFacet::FormContainer::"+i+"$"),"Context menu for HeaderFacet Form Container "+i);},iExecuteRightContextMenuOnHeaderFacetFormElement:function(i){return this.iExecuteRightContextMenuById(new RegExp("fe::HeaderFacet::FormContainer::"+i+"::FormElement"+"$"),"Context menu for HeaderFacet Form Element "+i);},iExecuteLeftContextMenuOnSection:function(i){return this.iExecuteLeftContextMenuById(b(i),"Left context menu for "+i,false);},iExecuteLeftContextMenuOnHeaderFacet:function(f){return this.iExecuteLeftContextMenuById(g(f),"Left Context menu for "+f,true);},iExecuteLeftContextMenuOnHeaderFacetFormContainer:function(i){return this.iExecuteLeftContextMenuById(new RegExp("fe::HeaderFacet::FormContainer::"+i+"$"),"Left context menu for HeaderFacet Form Container "+i);},iExecuteLeftContextMenuOnHeaderFacetFormElement:function(i){return this.iExecuteLeftContextMenuById(new RegExp("fe::HeaderFacet::FormContainer::"+i+"::FormElement"+"$"),"Left context menu for HeaderFacet Form Element "+i);},iExecuteRightContextMenuOnFieldAddedViaRTA:function(i){return this.iExecuteRightContextMenuById(c("_"+i),"Context menu for Field "+i);},iExecuteFocusOnAnchorBar:function(){return a.create(this).viewId(null).hasId(/fe::ObjectPage-anchBar$/).doPress().description("Focus on AnchorBar").execute();},iExecutePopOverActionByIcon:function(i,D){return a.create(this).viewId(null).hasType("sap.ui.unified.MenuItem").hasProperties({icon:"sap-icon://"+i}).isDialogElement().doPress().description(D).execute();},iExecutePopOverButtonByIcon:function(i,D){return a.create(this).viewId(null).hasType("sap.m.Button").hasProperties({icon:"sap-icon://"+i}).isDialogElement().doPress().description(D).execute();},iExecutePopOverActionRename:function(i){return this.iExecutePopOverActionByIcon("edit","Press rename on "+i);},iExecutePopOverActionAdd:function(D){return this.iExecutePopOverActionByIcon("add",D);},iExecutePopOverActionRemove:function(D){return this.iExecutePopOverActionByIcon("less",D);},iExecutePopOverActionCut:function(D){return this.iExecutePopOverActionByIcon("scissors",D);},iExecutePopOverActionPaste:function(D){return this.iExecutePopOverActionByIcon("paste",D);},iExecutePopOverActionDuplicate:function(D){return this.iExecutePopOverActionByIcon("duplicate","Duplicate Variant '"+D+"'");},iExecutePopOverActionSettings:function(D){return this.iExecutePopOverActionByIcon("key-user-settings","Open "+D+" Settings");},iExecutePopOverActionEmbedContent:function(D){return this.iExecutePopOverActionByIcon("tnt/content-enricher","Open "+D+" Settings");},iSwitchToGroupViewInTheFilterBarDialog:function(){return this.iExecutePopOverButtonByIcon("group-2","Switch to grouped view in filter bar dialog");},iSelectExpandFiltersgroupInTheFilterBarDialog:function(f){return a.create(this).viewId(null).hasType("sap.m.Panel").hasChildren(a.create(this).hasType("sap.m.Label").hasProperties({text:f})).doOnChildren(a.create(this).hasType("sap.m.Button").doPress()).description("Expanding filter group wiht name '"+f+"'").execute();},iSelectCheckBoxInTheFilterBarDialog:function(t){return a.create(this).viewId(null).hasType("sap.m.CustomListItem").doOnChildren(a.create(this).hasType("sap.m.CustomListItem").hasChildren(a.create(this).hasType("sap.m.Label").hasProperties({text:t})).doOnChildren(a.create(this).hasType("sap.m.CheckBox").doPress())).description("Selected Checkbox next to '"+t+"'").execute();},iChangeVisibilityFilter:function(s){return a.create(this).viewId(null).hasType("sap.m.Bar").isDialogElement().doOnChildren(a.create(this).hasType("sap.m.Select").checkNumberOfMatches(1).doEnterText(s)).description("Changed displayed fields to '"+s+"'").execute();},iEnterUrlInTheTextArea:function(u){return a.create(this).viewId(null).hasType("sap.m.TextArea").hasId("sapUiRtaAddIFrameDialog_EditUrlTA").isDialogElement().doEnterText(u).description("Added URL '"+u+"' to Text Area").execute();},iSwitchToReorderOnDialog:function(){return a.create(this).viewId(null).hasType("sap.m.Button").isDialogElement().hasProperties({text:"Reorder"}).doPress().description("Switch to reorder view").execute();},_iSelectALabelOnTheReorderDialog:function(t){return a.create(this).viewId(null).hasType("sap.m.Label").isDialogElement().hasProperties({text:t}).doPress().execute();},iReorderTableColumn:function(l,n){this._iSelectALabelOnTheReorderDialog(l);var i,I="sap-icon://";if(n===0){i="collapse-group";}else if(n===1){i="slim-arrow-up";}else if(!n===2){i="slim-arrow-down";}else if(!n===3){i="expand-group";}I+=i;return a.create(this).viewId(null).hasType("sap.m.Button").isDialogElement().hasProperties({icon:I}).doPress().description("Reorder '"+l+"'").execute();},iEnterTextInSearchfield:function(n){return a.create(this).viewId(null).hasType("sap.m.SearchField").isDialogElement().checkNumberOfMatches(1).doEnterText(n).description("Enter text: '"+n+"'").execute();},iEnterTextinFilterField:function(t){return a.create(this).hasType("sap.ui.mdc.field.FieldMultiInput").checkNumberOfMatches(1).doEnterText(t).description("Enter text: '"+t+"'").execute();},iSelectAFieldInTheDialog:function(t){return a.create(this).viewId(null).hasType("sap.m.CustomListItem").isDialogElement().has(function(l){var T=l.getTooltip();return typeof t==="string"?T===t:t.test(T);}).doPress().description("Select "+t).execute();},iExecutePopOverOk:function(){return a.create(this).viewId(null).hasType("sap.m.Button").hasProperties({text:"OK"}).isDialogElement().doPress().description("OK Button").execute();},iExecuteSaveAndExit:function(){return this.iExecuteById(/sapUiRta_exit$/,"Save&Exit");},iExecuteUndo:function(){return this.iExecuteById(/sapUiRta_undo$/,"Undo");},iEnterTextForRTAEditableField:function(n){return a.create(this).hasType("sap.ui.dt.ElementOverlay").has(function(o){if(o.$().hasClass("sapUiDtOverlaySelected")){var $=o.$().find(".sapUiRtaEditableField");var e=$.children()[0];return e;}return null;}).do(function(e){e.innerHTML=n;Q.triggerEvent("keypress",e,{which:13,keyCode:13});e.blur();}).description("Enter text: "+n).execute();},iEnterTextForTitle:function(n){return this.iEnterTextForRTAEditableField(n);},iEnterTextForViewField:function(n){return a.create(this).hasType("sap.m.Input").isDialogElement().doEnterText(n,true).description("Entering text: "+n+" as variant name").execute();}},assertions:{iSeeTheFLPToolbar:function(){return a.create(this).hasType("sap.ushell.ui.ShellHeader").hasId("shell-header").description("Seeing the FLP toolbar").execute();},iSeeTheRTAToolbar:function(){return a.create(this).hasType("sap.ui.rta.toolbar.Fiori").description("Seeing the RTA toolbar").execute();},iSeeTheHeaderFacet:function(f){return a.create(this).hasType("sap.fe.templates.ObjectPage.controls.StashableHBox").hasId(g(f)).description("Seeing the Header Facet "+f).execute();},iSeeTheFieldAddedViaRTA:function(i){return a.create(this).hasType("sap.ui.layout.form.FormElement").hasId(c("_"+i)).description("Seeing the Field "+i).execute();},iSeeTheEditableHeaderFieldAddedViaRTA:function(i){return a.create(this).hasType("sap.ui.layout.form.FormElement").hasId(new RegExp("fe::EditableHeaderForm_(.+)_"+i+"_FormElement"+"$")).description("Seeing the Editable Header Field "+i).execute();},iSeeTheEditableHeaderField:function(i){return a.create(this).hasType("sap.ui.layout.form.FormElement").hasId(new RegExp("fe::HeaderFacet::FormContainer::"+i+"::FormElement"+"$")).description("Seeing the Editable Header Field "+i).execute();},iDoNotSeeTheHeaderFacet:function(f){var i=g(f);return a.create(this).hasType("sap.fe.templates.ObjectPage.controls.StashableHBox").check(function(e){var F=e.some(function(o){return typeof i==="string"?o.getId()===i:i.test(o.getId());});return F===false;},true).description("Not seeing the Header Facet "+f).execute();},iDoNotSeeTheField:function(i){return a.create(this).hasType("sap.ui.layout.form.FormElement").check(function(e){var f=e.some(function(h){return h.getId().indexOf(i)>-1;});return f===false;},true).description("Not seeing the Field "+i).execute();},iSeeTheElementOverlayById:function(i,D,C){var h=d(i,C);return a.create(this).hasType("sap.ui.dt.ElementOverlay").has(h).description(D).execute();},iDoNotSeeTheElementOverlayById:function(i,D,C){var h=d(i,C);return a.create(this).hasType("sap.ui.dt.ElementOverlay").check(function(o){var f=o.some(h);return f===false;},true).description(D).execute();},iSeeTheElementOverlayForTheApp:function(){return this.iSeeTheElementOverlayById(/component---appRootView--appContent$/,"Seeing the ElementOverlay for the App");},iSeeThePopover:function(){return a.create(this).hasType("sap.ui.unified.Menu").description("Seeing the Popover").execute();},iSeeTheButtonByIcon:function(i,D){return a.create(this).hasType("sap.m.Button").isDialogElement().hasProperties({icon:i}).description("Seeing "+D).execute();},iSeeTheMenuItemByIcon:function(i,D){return a.create(this).hasType("sap.ui.unified.MenuItem").isDialogElement().hasProperties({icon:i}).description("Seeing "+D).execute();},iDoNotSeeTheButtonByIcon:function(i,D){return a.create(this).hasType("sap.m.Button").isDialogElement().check(function(B){var f=B.some(function(o){return o.getProperty("icon")===i;});return f===false;},true).description("Not seeing "+D).execute();},iDoNotSeeTheMenuItemByIcon:function(i,D){return a.create(this).hasType("sap.ui.unified.MenuItem").isDialogElement().check(function(B){var f=B.some(function(o){return o.getProperty("icon")===i;});return f===false;},true).description("Not seeing "+D).execute();},iSeeTheVariantManagementPopover:function(){return this.iSeeTheMenuItemByIcon("sap-icon://duplicate","The Popover");},iSeeTheRTAPopover:function(){return this.iSeeTheMenuItemByIcon("sap-icon://key-user-settings","The RTAPopover");},iSeeTheRenameButton:function(){return this.iSeeTheMenuItemByIcon("sap-icon://edit","the button 'rename'");},iSeeTheAddButton:function(){return this.iSeeTheMenuItemByIcon("sap-icon://add","the button 'add'");},iSeeTheCreateGroupButton:function(){return this.iSeeTheMenuItemByIcon("sap-icon://add-folder","the button 'create group'");},iDoNotSeeTheRenameButton:function(){return this.iDoNotSeeTheMenuItemByIcon("sap-icon://edit","the button 'rename'");},iDoNotSeeTheAddButton:function(){return this.iDoNotSeeTheMenuItemByIcon("sap-icon://add","the button 'add'");},iDoNotSeeTheRemoveButton:function(){return this.iDoNotSeeTheMenuItemByIcon("sap-icon://less","the button 'remove'");},iSeeThePopoverDialog:function(){return a.create(this).hasType("sap.m.Dialog").description("Seeing the Popover Dialog").execute();},iSeeThePopoverDialogWithId:function(i){return a.create(this).hasType("sap.m.Dialog").hasId(i).description("Seeing the Popover Dialog with Id:",i).execute();},iSeeTheHeaderFacetOverlay:function(f){return this.iSeeTheElementOverlayById(g(f),"Seeing the Header Facet: "+f,true);},iDoNotSeeTheHeaderFacetOverlay:function(f){return this.iDoNotSeeTheElementOverlayById(g(f),"Not seeing the Header Facet Overlay: "+f,true);},iSeeTheTitleOnTheUI:function(t){return a.create(this).hasType("sap.m.Title").hasProperties({text:t}).description("Seeing the Title "+t).execute();},iSeeTheLinkOnTheUI:function(t){return a.create(this).hasType("sap.m.Link").hasProperties({text:t}).checkNumberOfMatches(1).description("Seeing the Link "+t).execute();},iCheckTheHeaderFacetTitle:function(f,t){return a.create(this).hasType("sap.fe.templates.ObjectPage.controls.StashableHBox").hasId(g(f)).hasProperties({title:t}).description("The Header Facet "+f+" has title "+t).execute();},iSeeTheSectionTextById:function(i,t){var I=b(i);return a.create(this).hasId(I).hasProperties({text:t}).description("Seeing the section "+i+" with text "+t).execute();},iSeeTheSectionAtPosition:function(i,p){var I=b(i);return a.create(this).hasType("sap.m.Button").hasId(I).has(function(e){var C=e.getParent().getContent(),f=C.findIndex(function(s){return I.test(s.getId());});return f===p;}).description("Seeing the section "+i+" at position "+p).execute();},iSeeTheAddedIFrameInHeader:function(u){return a.create(this).hasType("sap.ui.dt.AggregationOverlay").hasProperties({aggregationName:"headerContent"}).doOnChildren(a.create(this).hasType("sap.ui.fl.util.IFrame")).description("Seeing the application with URL: "+u+" in iFrame in header content container").execute();},iSeeTheIFrameInSectionWithTitle:function(s){return a.create(this).hasType("sap.uxap.ObjectPageSection").hasProperties({title:s}).doOnChildren(a.create(this).hasType("sap.ui.fl.util.IFrame")).description("Seeing iFrame in section with title '"+s+"'").execute();}}};});
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/macros/PhantomUtil", "sap/ui/model/odata/v4/lib/_MetadataRequestor", "sap/ui/model/odata/v4/ODataMetaModel", "sap/ui/core/util/XMLPreprocessor", "sap/base/Log", "xpath", "fs", "@sap/cds-compiler", "prettier", "sap/ui/base/BindingParser", "sap/ui/model/json/JSONModel", "sap/ui/core/InvisibleText", "sap/base/util/merge", "path", "sap/fe/core/converters/ConverterContext", "sap/fe/core/services/SideEffectsServiceFactory"], function (PhantomUtil, _MetadataRequestor, ODataMetaModel, XMLPreprocessor, Log, xpath, fs, cds_compiler, prettier, BindingParser, JSONModel, InvisibleText, merge, path, ConverterContext, SideEffectsFactory) {
5
+ sap.ui.define(["sap/fe/macros/PhantomUtil", "sap/ui/model/odata/v4/lib/_MetadataRequestor", "sap/ui/model/odata/v4/ODataMetaModel", "sap/ui/core/util/XMLPreprocessor", "sap/base/Log", "xpath", "fs", "@sap/cds-compiler", "prettier", "sap/ui/base/BindingParser", "sap/ui/model/json/JSONModel", "sap/ui/core/InvisibleText", "sap/base/util/merge", "path", "sap/fe/core/converters/ConverterContext", "sap/fe/core/services/SideEffectsServiceFactory", "sap/fe/core/TemplateModel"], function (PhantomUtil, _MetadataRequestor, ODataMetaModel, XMLPreprocessor, Log, xpath, fs, cds_compiler, prettier, BindingParser, JSONModel, InvisibleText, merge, path, ConverterContext, SideEffectsFactory, TemplateModel) {
6
6
  "use strict";
7
7
 
8
8
  var _exports = {};
@@ -10,6 +10,78 @@ sap.ui.define(["sap/fe/macros/PhantomUtil", "sap/ui/model/odata/v4/lib/_Metadata
10
10
  var to = cds_compiler.to;
11
11
  var compileSources = cds_compiler.compileSources;
12
12
 
13
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function () {}; return { s: F, n: function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (e) { throw e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function () { it = it.call(o); }, n: function () { var step = it.next(); normalCompletion = step.done; return step; }, e: function (e) { didErr = true; err = e; }, f: function () { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
14
+
15
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
+
17
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
18
+
19
+ /**
20
+ * Process the requested XML fragment with the provided data.
21
+ *
22
+ * @param {string} name Fully qualified name of the fragment to be tested.
23
+ * @param {object} testData Test data consisting
24
+ * @returns Tempalted fragment as string
25
+ */
26
+ var processFragment = function (name, testData) {
27
+ try {
28
+ var inputXml = "<root><core:Fragment fragmentName=\"".concat(name, "\" type=\"XML\" xmlns:core=\"sap.ui.core\" /></root>");
29
+ var parser = new window.DOMParser();
30
+ var inputDoc = parser.parseFromString(inputXml, "text/xml"); // build model and bindings for given test data
31
+
32
+ var settings = {
33
+ models: {},
34
+ bindingContexts: {}
35
+ };
36
+
37
+ for (var _model in testData) {
38
+ var jsonModel = new JSONModel();
39
+ jsonModel.setData(testData[_model]);
40
+ settings.models[_model] = jsonModel;
41
+ settings.bindingContexts[_model] = settings.models[_model].createBindingContext("/");
42
+ } // execute the pre-processor
43
+
44
+
45
+ return Promise.resolve(XMLPreprocessor.process(inputDoc.firstElementChild, {
46
+ name: name
47
+ }, settings)).then(function (resultDoc) {
48
+ // exclude nested fragments from test snapshots
49
+ var fragments = resultDoc.getElementsByTagName("core:Fragment");
50
+
51
+ if ((fragments === null || fragments === void 0 ? void 0 : fragments.length) > 0) {
52
+ var _iterator = _createForOfIteratorHelper(fragments),
53
+ _step;
54
+
55
+ try {
56
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
57
+ var fragment = _step.value;
58
+ fragment.innerHTML = "";
59
+ }
60
+ } catch (err) {
61
+ _iterator.e(err);
62
+ } finally {
63
+ _iterator.f();
64
+ }
65
+ }
66
+
67
+ return formatXml(resultDoc.innerHTML, {
68
+ filter: function (node) {
69
+ return node.type !== "Comment";
70
+ }
71
+ });
72
+ });
73
+ } catch (e) {
74
+ return Promise.reject(e);
75
+ }
76
+ };
77
+
78
+ _exports.processFragment = processFragment;
79
+
80
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
81
+ var formatXml = require("xml-formatter"); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
82
+ // @ts-ignore
83
+
84
+
13
85
  Log.setLevel(1, "sap.ui.core.util.XMLPreprocessor");
14
86
  jest.setTimeout(40000);
15
87
  var nameSpaceMap = {
@@ -257,13 +329,18 @@ sap.ui.define(["sap/fe/macros/PhantomUtil", "sap/ui/model/odata/v4/lib/_Metadata
257
329
  var xmlDoc = parser.parseFromString(templatedXml, "text/xml"); // To ensure our macro can use #setBindingContext we ensure there is a pre existing JSONModel for converterContext
258
330
  // if not already passed to teh templating
259
331
 
260
- if (!mModels.hasOwnProperty("converterContext")) {
261
- mModels = Object.assign(mModels, {
262
- "converterContext": new JSONModel({})
263
- });
264
- }
265
-
266
332
  return Promise.resolve(getMetaModel(sMetadataUrl)).then(function (oMetaModel) {
333
+ if (!mModels.hasOwnProperty("converterContext")) {
334
+ mModels = Object.assign(mModels, {
335
+ "converterContext": new TemplateModel({}, oMetaModel)
336
+ });
337
+ }
338
+
339
+ Object.keys(mModels).forEach(function (sModelName) {
340
+ if (mModels[sModelName] && mModels[sModelName].isTemplateModel) {
341
+ mModels[sModelName] = new TemplateModel(mModels[sModelName].data, oMetaModel);
342
+ }
343
+ });
267
344
  var oPreprocessorSettings = {
268
345
  models: Object.assign({
269
346
  metaModel: oMetaModel
@@ -306,4 +383,4 @@ sap.ui.define(["sap/fe/macros/PhantomUtil", "sap/ui/model/odata/v4/lib/_Metadata
306
383
  _exports.getTemplatedXML = getTemplatedXML;
307
384
  return _exports;
308
385
  }, false);
309
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkplc3RUZW1wbGF0aW5nSGVscGVyLnRzIl0sIm5hbWVzIjpbIkxvZyIsInNldExldmVsIiwiamVzdCIsInNldFRpbWVvdXQiLCJuYW1lU3BhY2VNYXAiLCJzZWxlY3QiLCJ4cGF0aCIsInVzZU5hbWVzcGFjZXMiLCJyZWdpc3Rlck1hY3JvIiwibWFjcm9NZXRhZGF0YSIsIlBoYW50b21VdGlsIiwicmVnaXN0ZXIiLCJ1bnJlZ2lzdGVyTWFjcm8iLCJYTUxQcmVwcm9jZXNzb3IiLCJwbHVnSW4iLCJuYW1lc3BhY2UiLCJuYW1lIiwicHVibGljTmFtZSIsInB1YmxpY05hbWVzcGFjZSIsInJ1blhQYXRoUXVlcnkiLCJzZWxlY3RvciIsInhtbGRvbSIsImV4cGVjdCIsImV4dGVuZCIsInRvSGF2ZUNvbnRyb2wiLCJub2RlcyIsIm1lc3NhZ2UiLCJvdXRwdXRYbWwiLCJzZXJpYWxpemVYTUwiLCJwYXNzIiwibGVuZ3RoIiwidG9Ob3RIYXZlQ29udHJvbCIsImdldENvbnRyb2xBdHRyaWJ1dGUiLCJjb250cm9sU2VsZWN0b3IiLCJhdHRyaWJ1dGVOYW1lIiwieG1sRG9tIiwic2VyaWFsaXplciIsIndpbmRvdyIsIlhNTFNlcmlhbGl6ZXIiLCJ4bWxTdHJpbmciLCJzZXJpYWxpemVUb1N0cmluZyIsInJlcGxhY2UiLCJmb3JtYXQiLCJwYXJzZXIiLCJjb21waWxlQ0RTIiwic0NEU1VybCIsImNkc1N0cmluZyIsImZzIiwicmVhZEZpbGVTeW5jIiwiY3NuIiwiY29tcGlsZVNvdXJjZXMiLCJlZG14Q29udGVudCIsInRvIiwiZWRteCIsInNlcnZpY2UiLCJkaXIiLCJwYXRoIiwicmVzb2x2ZSIsImVkbXhVcmwiLCJiYXNlbmFtZSIsImV4aXN0c1N5bmMiLCJta2RpclN5bmMiLCJ3cml0ZUZpbGVTeW5jIiwiZ2V0RmFrZVNpZGVFZmZlY3RzU2VydmljZSIsIm9NZXRhTW9kZWwiLCJvU2VydmljZUNvbnRleHQiLCJzY29wZU9iamVjdCIsInNjb3BlVHlwZSIsInNldHRpbmdzIiwiU2lkZUVmZmVjdHNGYWN0b3J5IiwiY3JlYXRlSW5zdGFuY2UiLCJ0aGVuIiwib1NlcnZpY2VJbnN0YW5jZSIsIm9KZXN0U2lkZUVmZmVjdHNTZXJ2aWNlIiwiZ2V0SW50ZXJmYWNlIiwiZ2V0Q29udGV4dCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiZ2V0RmFrZURpYWdub3N0aWNzIiwiaXNzdWVzIiwiYWRkSXNzdWUiLCJpc3N1ZUNhdGVnb3J5IiwiaXNzdWVTZXZlcml0eSIsImRldGFpbHMiLCJwdXNoIiwiZ2V0SXNzdWVzIiwiY2hlY2tJZklzc3VlRXhpc3RzIiwiZmluZCIsImlzc3VlIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvclRlc3QiLCJjb252ZXJ0ZWRUeXBlcyIsIm1hbmlmZXN0U2V0dGluZ3MiLCJlbnRpdHlTZXQiLCJlbnRpdHlTZXRzIiwiZXMiLCJkYXRhTW9kZWxQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5IiwiQ29udmVydGVyQ29udGV4dCIsIm1lcmdlIiwibWV0YU1vZGVsQ2FjaGUiLCJzTWV0YWRhdGFVcmwiLCJvUmVxdWVzdG9yIiwiX01ldGFkYXRhUmVxdWVzdG9yIiwiY3JlYXRlIiwiT0RhdGFNZXRhTW9kZWwiLCJ1bmRlZmluZWQiLCJmZXRjaEVudGl0eUNvbnRhaW5lciIsInByb3BlcnR5IiwidGFyZ2V0UGF0aCIsInN0YXJ0aW5nRW50aXR5U2V0IiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJ0YXJnZXRPYmplY3QiLCJ0YXJnZXRFbnRpdHlTZXQiLCJ0YXJnZXRFbnRpdHlUeXBlIiwiZW50aXR5VHlwZSIsImNvbnRleHRMb2NhdGlvbiIsImV2YWx1YXRlQmluZGluZyIsImJpbmRpbmdTdHJpbmciLCJiaW5kaW5nRWxlbWVudCIsIkJpbmRpbmdQYXJzZXIiLCJjb21wbGV4UGFyc2VyIiwiYXJncyIsImZvcm1hdHRlciIsImFwcGx5IiwiZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsIiwibW9kZWxDb250ZW50IiwianNvbk1vZGVsIiwiSlNPTk1vZGVsIiwidGV4dCIsIkludmlzaWJsZVRleHQiLCJiaW5kUHJvcGVydHkiLCJzZXRNb2RlbCIsInNldEJpbmRpbmdDb250ZXh0IiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJnZXRUZXh0IiwiZ2V0VGVtcGxhdGluZ1Jlc3VsdCIsInhtbElucHV0IiwibUJpbmRpbmdDb250ZXh0cyIsIm1Nb2RlbHMiLCJ0ZW1wbGF0ZWRYbWwiLCJET01QYXJzZXIiLCJ4bWxEb2MiLCJwYXJzZUZyb21TdHJpbmciLCJoYXNPd25Qcm9wZXJ0eSIsIk9iamVjdCIsImFzc2lnbiIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsIm1vZGVscyIsIm1ldGFNb2RlbCIsImJpbmRpbmdDb250ZXh0cyIsImtleXMiLCJmb3JFYWNoIiwic0tleSIsImdldE9iamVjdCIsInRvQmVEZWZpbmVkIiwib01vZGVsIiwicHJvY2VzcyIsImZpcnN0RWxlbWVudENoaWxkIiwiZ2V0VGVtcGxhdGVkWE1MIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7QUFvQkFBLEVBQUFBLEdBQUcsQ0FBQ0MsUUFBSixDQUFhLENBQWIsRUFBdUIsa0NBQXZCO0FBQ0FDLEVBQUFBLElBQUksQ0FBQ0MsVUFBTCxDQUFnQixLQUFoQjtBQUVBLE1BQU1DLFlBQVksR0FBRztBQUNwQixjQUFVLGVBRFU7QUFFcEIsYUFBUyxlQUZXO0FBR3BCLGlCQUFhLGtFQUhPO0FBSXBCLFdBQU8sa0VBSmE7QUFLcEIsZ0JBQVksMEVBTFE7QUFNcEIsZUFBVyxzQkFOUztBQU9wQixZQUFRLGFBUFk7QUFRcEIsU0FBSyxPQVJlO0FBU3BCLFNBQUssb0JBVGU7QUFVcEIsV0FBTyxZQVZhO0FBV3BCLGdCQUFZLGtCQVhRO0FBWXBCLFNBQUssZ0JBWmU7QUFhcEIsdUJBQW1CLDBCQWJDO0FBY3BCLGtCQUFjO0FBZE0sR0FBckI7QUFnQkEsTUFBTUMsTUFBTSxHQUFHQyxLQUFLLENBQUNDLGFBQU4sQ0FBb0JILFlBQXBCLENBQWY7O0FBRU8sTUFBTUks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QztBQUNBLFNBTkQsRUF0QkMsQ0E4QkQ7O0FBQ0EsWUFBSVQscUJBQXFCLENBQUNDLE1BQXRCLENBQTZCLE1BQTdCLENBQUosRUFBMEM7QUFDekNELFVBQUFBLHFCQUFxQixDQUFDRyxlQUF0QixDQUFzQyxNQUF0QyxJQUFnREgscUJBQXFCLENBQUNDLE1BQXRCLENBQTZCLE1BQTdCLEVBQXFDZCxvQkFBckMsQ0FBMEQsR0FBMUQsQ0FBaEQ7QUFDQTs7QUFFRCxlQUFPeEgsZUFBZSxDQUFDK0ksT0FBaEIsQ0FBd0JmLE1BQU0sQ0FBQ2dCLGlCQUEvQixFQUFtRDtBQUFFN0ksVUFBQUEsSUFBSSxFQUFFO0FBQVIsU0FBbkQsRUFBOEVrSSxxQkFBOUUsQ0FBUDtBQW5DQztBQW9DRCxLQXpDK0I7QUFBQTtBQUFBO0FBQUEsR0FBekI7Ozs7QUEyQ0EsTUFBTVksZUFBZSxhQUMzQnRCLFFBRDJCLEVBRTNCcEMsWUFGMkIsRUFHM0JxQyxnQkFIMkIsRUFJM0JDLE9BSjJCO0FBQUEsUUFLMUI7QUFBQSw2QkFDMEJILG1CQUFtQixDQUFDQyxRQUFELEVBQVdwQyxZQUFYLEVBQXlCcUMsZ0JBQXpCLEVBQTJDQyxPQUEzQyxDQUQ3QyxPQUVNOUcsWUFGTjtBQUdELEtBUjJCO0FBQUE7QUFBQTtBQUFBLEdBQXJCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaGFudG9tVXRpbCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zXCI7XG5pbXBvcnQgeyBfTWV0YWRhdGFSZXF1ZXN0b3IgfSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L2xpYlwiO1xuaW1wb3J0IHsgT0RhdGFNZXRhTW9kZWwgfSBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0XCI7XG5pbXBvcnQgeyBYTUxQcmVwcm9jZXNzb3IgfSBmcm9tIFwic2FwL3VpL2NvcmUvdXRpbFwiO1xuaW1wb3J0IHsgTG9nIH0gZnJvbSBcInNhcC9iYXNlXCI7XG5pbXBvcnQgeHBhdGggZnJvbSBcInhwYXRoXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IGNvbXBpbGVTb3VyY2VzLCB0byB9IGZyb20gXCJAc2FwL2Nkcy1jb21waWxlclwiO1xuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSBcInByZXR0aWVyXCI7XG5pbXBvcnQgeyBCaW5kaW5nUGFyc2VyIH0gZnJvbSBcInNhcC91aS9iYXNlXCI7XG5pbXBvcnQgeyBBbnlBbm5vdGF0aW9uLCBDb252ZXJ0ZXJPdXRwdXQsIEVudGl0eVNldCwgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC9hbm5vdGF0aW9uLWNvbnZlcnRlclwiO1xuaW1wb3J0IHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IEpTT05Nb2RlbCB9IGZyb20gXCJzYXAvdWkvbW9kZWwvanNvblwiO1xuaW1wb3J0IHsgSW52aXNpYmxlVGV4dCB9IGZyb20gXCJzYXAvdWkvY29yZVwiO1xuaW1wb3J0IHsgTGlzdFJlcG9ydE1hbmlmZXN0U2V0dGluZ3MsIE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgSXNzdWVDYXRlZ29yeSwgSXNzdWVTZXZlcml0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSXNzdWVNYW5hZ2VyXCI7XG5pbXBvcnQgeyBJRGlhZ25vc3RpY3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9UZW1wbGF0ZUNvbnZlcnRlclwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwic2FwL2Jhc2UvdXRpbFwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IFNpZGVFZmZlY3RzRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeVwiO1xuXG5Mb2cuc2V0TGV2ZWwoMSBhcyBhbnksIFwic2FwLnVpLmNvcmUudXRpbC5YTUxQcmVwcm9jZXNzb3JcIik7XG5qZXN0LnNldFRpbWVvdXQoNDAwMDApO1xuXG5jb25zdCBuYW1lU3BhY2VNYXAgPSB7XG5cdFwibWFjcm9zXCI6IFwic2FwLmZlLm1hY3Jvc1wiLFxuXHRcIm1hY3JvXCI6IFwic2FwLmZlLm1hY3Jvc1wiLFxuXHRcIm1hY3JvZGF0YVwiOiBcImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS5DdXN0b21EYXRhLzFcIixcblx0XCJsb2dcIjogXCJodHRwOi8vc2NoZW1hcy5zYXAuY29tL3NhcHVpNS9leHRlbnNpb24vc2FwLnVpLmNvcmUuQ3VzdG9tRGF0YS8xXCIsXG5cdFwidW5pdHRlc3RcIjogXCJodHRwOi8vc2NoZW1hcy5zYXAuY29tL3NhcHVpNS9wcmVwcm9jZXNzb3JleHRlbnNpb24vc2FwLmZlLnVuaXR0ZXN0aW5nLzFcIixcblx0XCJjb250cm9sXCI6IFwic2FwLmZlLmNvcmUuY29udHJvbHNcIixcblx0XCJjb3JlXCI6IFwic2FwLnVpLmNvcmVcIixcblx0XCJtXCI6IFwic2FwLm1cIixcblx0XCJmXCI6IFwic2FwLnVpLmxheW91dC5mb3JtXCIsXG5cdFwibWRjXCI6IFwic2FwLnVpLm1kY1wiLFxuXHRcIm1kY0ZpZWxkXCI6IFwic2FwLnVpLm1kYy5maWVsZFwiLFxuXHRcInVcIjogXCJzYXAudWkudW5pZmllZFwiLFxuXHRcIm1hY3JvTWljcm9DaGFydFwiOiBcInNhcC5mZS5tYWNyb3MubWljcm9jaGFydFwiLFxuXHRcIm1pY3JvQ2hhcnRcIjogXCJzYXAuc3VpdGUudWkubWljcm9jaGFydFwiXG59O1xuY29uc3Qgc2VsZWN0ID0geHBhdGgudXNlTmFtZXNwYWNlcyhuYW1lU3BhY2VNYXApO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJNYWNybyA9IGZ1bmN0aW9uKG1hY3JvTWV0YWRhdGE6IGFueSkge1xuXHRQaGFudG9tVXRpbC5yZWdpc3RlcihtYWNyb01ldGFkYXRhKTtcbn07XG5leHBvcnQgY29uc3QgdW5yZWdpc3Rlck1hY3JvID0gZnVuY3Rpb24obWFjcm9NZXRhZGF0YTogYW55KSB7XG5cdFhNTFByZXByb2Nlc3Nvci5wbHVnSW4obnVsbCwgbWFjcm9NZXRhZGF0YS5uYW1lc3BhY2UsIG1hY3JvTWV0YWRhdGEubmFtZSk7XG5cdGlmIChtYWNyb01ldGFkYXRhLnB1YmxpY05hbWUpIHtcblx0XHRYTUxQcmVwcm9jZXNzb3IucGx1Z0luKG51bGwsIG1hY3JvTWV0YWRhdGEucHVibGljTmFtZXNwYWNlLCBtYWNyb01ldGFkYXRhLnB1YmxpY05hbWUpO1xuXHR9XG59O1xuZXhwb3J0IGNvbnN0IHJ1blhQYXRoUXVlcnkgPSBmdW5jdGlvbihzZWxlY3Rvcjogc3RyaW5nLCB4bWxkb206IE5vZGUgfCB1bmRlZmluZWQpIHtcblx0cmV0dXJuIHNlbGVjdChzZWxlY3RvciwgeG1sZG9tKTtcbn07XG5cbmV4cGVjdC5leHRlbmQoe1xuXHR0b0hhdmVDb250cm9sKHhtbGRvbSwgc2VsZWN0b3IpIHtcblx0XHRjb25zdCBub2RlcyA9IHJ1blhQYXRoUXVlcnkoYC9yb290JHtzZWxlY3Rvcn1gLCB4bWxkb20pO1xuXHRcdHJldHVybiB7XG5cdFx0XHRtZXNzYWdlOiAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG91dHB1dFhtbCA9IHNlcmlhbGl6ZVhNTCh4bWxkb20pO1xuXHRcdFx0XHRyZXR1cm4gYGRpZCBub3QgZmluZCBjb250cm9scyBtYXRjaGluZyAke3NlbGVjdG9yfSBpbiBnZW5lcmF0ZWQgeG1sOlxcbiAke291dHB1dFhtbH1gO1xuXHRcdFx0fSxcblx0XHRcdHBhc3M6IG5vZGVzICYmIG5vZGVzLmxlbmd0aCA+PSAxXG5cdFx0fTtcblx0fSxcblx0dG9Ob3RIYXZlQ29udHJvbCh4bWxkb20sIHNlbGVjdG9yKSB7XG5cdFx0Y29uc3Qgbm9kZXMgPSBydW5YUGF0aFF1ZXJ5KGAvcm9vdCR7c2VsZWN0b3J9YCwgeG1sZG9tKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0bWVzc2FnZTogKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvdXRwdXRYbWwgPSBzZXJpYWxpemVYTUwoeG1sZG9tKTtcblx0XHRcdFx0cmV0dXJuIGBUaGVyZSBpcyBhIGNvbnRyb2wgbWF0Y2hpbmcgJHtzZWxlY3Rvcn0gaW4gZ2VuZXJhdGVkIHhtbDpcXG4gJHtvdXRwdXRYbWx9YDtcblx0XHRcdH0sXG5cdFx0XHRwYXNzOiBub2RlcyAmJiBub2Rlcy5sZW5ndGggPT09IDBcblx0XHR9O1xuXHR9XG59KTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnRyb2xBdHRyaWJ1dGUgPSBmdW5jdGlvbihjb250cm9sU2VsZWN0b3I6IHN0cmluZywgYXR0cmlidXRlTmFtZTogc3RyaW5nLCB4bWxEb206IE5vZGUpIHtcblx0Y29uc3Qgc2VsZWN0b3IgPSBgc3RyaW5nKC9yb290JHtjb250cm9sU2VsZWN0b3J9L0Ake2F0dHJpYnV0ZU5hbWV9KWA7XG5cdHJldHVybiBydW5YUGF0aFF1ZXJ5KHNlbGVjdG9yLCB4bWxEb20pO1xufTtcblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZVhNTCA9IGZ1bmN0aW9uKHhtbERvbTogTm9kZSkge1xuXHRjb25zdCBzZXJpYWxpemVyID0gbmV3IHdpbmRvdy5YTUxTZXJpYWxpemVyKCk7XG5cdGNvbnN0IHhtbFN0cmluZyA9IHNlcmlhbGl6ZXJcblx0XHQuc2VyaWFsaXplVG9TdHJpbmcoeG1sRG9tKVxuXHRcdC5yZXBsYWNlKC8oPzpbXFx0IF0qKD86XFxyP1xcbnxcXHIpKSsvZywgXCJcXG5cIilcblx0XHQucmVwbGFjZSgvXFxcXFwiL2csICdcIicpO1xuXHRyZXR1cm4gZm9ybWF0KHhtbFN0cmluZywgeyBwYXJzZXI6IFwiaHRtbFwiIH0pO1xufTtcblxuLyoqXG4gKiBDb21waWxlIGEgQ0RTIGZpbGUgaW50byBhbiBFRE1YIGZpbGUuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHNDRFNVcmwgVGhlIHBhdGggdG8gdGhlIGZpbGUgY29udGFpbmluZyB0aGUgQ0RTIGRlZmluaXRpb24uIFRoaXMgZmlsZSBNVVNUIGRlY2xhcmUgdGhlIG5hbWVzcGFjZVxuICogc2FwLmZlLnRlc3QgYW5kIGEgc2VydmljZSBKZXN0U2VydmljZVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIHBhdGggb2YgdGhlIGdlbmVyYXRlZCBFRE1YXG4gKi9cbmV4cG9ydCBjb25zdCBjb21waWxlQ0RTID0gZnVuY3Rpb24oc0NEU1VybDogc3RyaW5nKSB7XG5cdGNvbnN0IGNkc1N0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhzQ0RTVXJsLCBcInV0Zi04XCIpO1xuXHRjb25zdCBjc24gPSBjb21waWxlU291cmNlcyh7IFwic3RyaW5nLmNkc1wiOiBjZHNTdHJpbmcgfSwge30pO1xuXHRjb25zdCBlZG14Q29udGVudCA9IHRvLmVkbXgoY3NuLCB7IHNlcnZpY2U6IFwic2FwLmZlLnRlc3QuSmVzdFNlcnZpY2VcIiB9KTtcblx0Y29uc3QgZGlyID0gcGF0aC5yZXNvbHZlKHNDRFNVcmwsIFwiLi5cIiwgXCJnZW5cIik7XG5cdGNvbnN0IGVkbXhVcmwgPSBwYXRoLnJlc29sdmUoZGlyLCBwYXRoLmJhc2VuYW1lKHNDRFNVcmwpLnJlcGxhY2UoXCIuY2RzXCIsIFwiLnhtbFwiKSk7XG5cblx0aWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcblx0XHRmcy5ta2RpclN5bmMoZGlyKTtcblx0fVxuXG5cdGZzLndyaXRlRmlsZVN5bmMoZWRteFVybCwgZWRteENvbnRlbnQpO1xuXHRyZXR1cm4gZWRteFVybDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGYWtlU2lkZUVmZmVjdHNTZXJ2aWNlID0gYXN5bmMgZnVuY3Rpb24ob01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwpOiBQcm9taXNlPGFueT4ge1xuXHRjb25zdCBvU2VydmljZUNvbnRleHQgPSB7IHNjb3BlT2JqZWN0OiB7fSwgc2NvcGVUeXBlOiBcIlwiLCBzZXR0aW5nczoge30gfTtcblx0cmV0dXJuIG5ldyBTaWRlRWZmZWN0c0ZhY3RvcnkoKS5jcmVhdGVJbnN0YW5jZShvU2VydmljZUNvbnRleHQpLnRoZW4oZnVuY3Rpb24ob1NlcnZpY2VJbnN0YW5jZTogYW55KSB7XG5cdFx0Y29uc3Qgb0plc3RTaWRlRWZmZWN0c1NlcnZpY2UgPSBvU2VydmljZUluc3RhbmNlLmdldEludGVyZmFjZSgpO1xuXHRcdG9KZXN0U2lkZUVmZmVjdHNTZXJ2aWNlLmdldENvbnRleHQgPSBmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHNjb3BlT2JqZWN0OiB7XG5cdFx0XHRcdFx0Z2V0TW9kZWw6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0Z2V0TWV0YU1vZGVsOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gb01ldGFNb2RlbDtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fTtcblx0XHRyZXR1cm4gb0plc3RTaWRlRWZmZWN0c1NlcnZpY2U7XG5cdH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZha2VEaWFnbm9zdGljcyA9IGZ1bmN0aW9uKCk6IElEaWFnbm9zdGljcyB7XG5cdGNvbnN0IGlzc3VlczogYW55W10gPSBbXTtcblx0cmV0dXJuIHtcblx0XHRhZGRJc3N1ZShpc3N1ZUNhdGVnb3J5OiBJc3N1ZUNhdGVnb3J5LCBpc3N1ZVNldmVyaXR5OiBJc3N1ZVNldmVyaXR5LCBkZXRhaWxzOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRcdGlzc3Vlcy5wdXNoKHtcblx0XHRcdFx0aXNzdWVDYXRlZ29yeSxcblx0XHRcdFx0aXNzdWVTZXZlcml0eSxcblx0XHRcdFx0ZGV0YWlsc1xuXHRcdFx0fSk7XG5cdFx0fSxcblx0XHRnZXRJc3N1ZXMoKTogYW55W10ge1xuXHRcdFx0cmV0dXJuIGlzc3Vlcztcblx0XHR9LFxuXHRcdGNoZWNrSWZJc3N1ZUV4aXN0cyhpc3N1ZUNhdGVnb3J5OiBJc3N1ZUNhdGVnb3J5LCBpc3N1ZVNldmVyaXR5OiBJc3N1ZVNldmVyaXR5LCBkZXRhaWxzOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRcdHJldHVybiBpc3N1ZXMuZmluZChpc3N1ZSA9PiB7XG5cdFx0XHRcdGlzc3VlLmlzc3VlQ2F0ZWdvcnkgPT09IGlzc3VlQ2F0ZWdvcnkgJiYgaXNzdWUuaXNzdWVTZXZlcml0eSA9PT0gaXNzdWVTZXZlcml0eSAmJiBpc3N1ZS5kZXRhaWxzID09PSBkZXRhaWxzO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbnZlcnRlckNvbnRleHRGb3JUZXN0ID0gZnVuY3Rpb24oXG5cdGNvbnZlcnRlZFR5cGVzOiBDb252ZXJ0ZXJPdXRwdXQsXG5cdG1hbmlmZXN0U2V0dGluZ3M6IExpc3RSZXBvcnRNYW5pZmVzdFNldHRpbmdzIHwgT2JqZWN0UGFnZU1hbmlmZXN0U2V0dGluZ3Ncbikge1xuXHRjb25zdCBlbnRpdHlTZXQgPSBjb252ZXJ0ZWRUeXBlcy5lbnRpdHlTZXRzLmZpbmQoZXMgPT4gZXMubmFtZSA9PT0gbWFuaWZlc3RTZXR0aW5ncy5lbnRpdHlTZXQpO1xuXHRjb25zdCBkYXRhTW9kZWxQYXRoID0gZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5KGVudGl0eVNldCBhcyBFbnRpdHlTZXQsIGVudGl0eVNldCk7XG5cdHJldHVybiBuZXcgQ29udmVydGVyQ29udGV4dChjb252ZXJ0ZWRUeXBlcywgbWFuaWZlc3RTZXR0aW5ncywgZ2V0RmFrZURpYWdub3N0aWNzKCksIG1lcmdlLCBkYXRhTW9kZWxQYXRoKTtcbn07XG5jb25zdCBtZXRhTW9kZWxDYWNoZTogYW55ID0ge307XG5leHBvcnQgY29uc3QgZ2V0TWV0YU1vZGVsID0gYXN5bmMgZnVuY3Rpb24oc01ldGFkYXRhVXJsOiBzdHJpbmcpIHtcblx0Y29uc3Qgb1JlcXVlc3RvciA9IF9NZXRhZGF0YVJlcXVlc3Rvci5jcmVhdGUoe30sIFwiNC4wXCIsIHt9KTtcblx0aWYgKCFtZXRhTW9kZWxDYWNoZVtzTWV0YWRhdGFVcmxdKSB7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG5ldyBPRGF0YU1ldGFNb2RlbChvUmVxdWVzdG9yLCBzTWV0YWRhdGFVcmwsIHVuZGVmaW5lZCwgbnVsbCk7XG5cdFx0YXdhaXQgb01ldGFNb2RlbC5mZXRjaEVudGl0eUNvbnRhaW5lcigpO1xuXHRcdG1ldGFNb2RlbENhY2hlW3NNZXRhZGF0YVVybF0gPSBvTWV0YU1vZGVsO1xuXHR9XG5cblx0cmV0dXJuIG1ldGFNb2RlbENhY2hlW3NNZXRhZGF0YVVybF07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5ID0gZnVuY3Rpb24oXG5cdGVudGl0eVNldDogRW50aXR5U2V0LFxuXHRwcm9wZXJ0eT86IFByb3BlcnR5IHwgRW50aXR5U2V0IHwgQW55QW5ub3RhdGlvblxuKTogRGF0YU1vZGVsT2JqZWN0UGF0aCB7XG5cdGNvbnN0IHRhcmdldFBhdGg6IERhdGFNb2RlbE9iamVjdFBhdGggPSB7XG5cdFx0c3RhcnRpbmdFbnRpdHlTZXQ6IGVudGl0eVNldCxcblx0XHRuYXZpZ2F0aW9uUHJvcGVydGllczogW10sXG5cdFx0dGFyZ2V0T2JqZWN0OiBwcm9wZXJ0eSxcblx0XHR0YXJnZXRFbnRpdHlTZXQ6IGVudGl0eVNldCxcblx0XHR0YXJnZXRFbnRpdHlUeXBlOiBlbnRpdHlTZXQuZW50aXR5VHlwZVxuXHR9O1xuXHR0YXJnZXRQYXRoLmNvbnRleHRMb2NhdGlvbiA9IHRhcmdldFBhdGg7XG5cdHJldHVybiB0YXJnZXRQYXRoO1xufTtcblxuZXhwb3J0IGNvbnN0IGV2YWx1YXRlQmluZGluZyA9IGZ1bmN0aW9uKGJpbmRpbmdTdHJpbmc6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcblx0Y29uc3QgYmluZGluZ0VsZW1lbnQgPSBCaW5kaW5nUGFyc2VyLmNvbXBsZXhQYXJzZXIoYmluZGluZ1N0cmluZyk7XG5cdHJldHVybiBiaW5kaW5nRWxlbWVudC5mb3JtYXR0ZXIuYXBwbHkodW5kZWZpbmVkLCBhcmdzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBldmFsdWF0ZUJpbmRpbmdXaXRoTW9kZWwgPSBmdW5jdGlvbihiaW5kaW5nU3RyaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQsIG1vZGVsQ29udGVudDogYW55KSB7XG5cdGNvbnN0IGJpbmRpbmdFbGVtZW50ID0gQmluZGluZ1BhcnNlci5jb21wbGV4UGFyc2VyKGJpbmRpbmdTdHJpbmcpO1xuXHRjb25zdCBqc29uTW9kZWwgPSBuZXcgSlNPTk1vZGVsKG1vZGVsQ29udGVudCk7XG5cdGNvbnN0IHRleHQgPSBuZXcgSW52aXNpYmxlVGV4dCgpO1xuXHR0ZXh0LmJpbmRQcm9wZXJ0eShcInRleHRcIiwgYmluZGluZ0VsZW1lbnQpO1xuXHR0ZXh0LnNldE1vZGVsKGpzb25Nb2RlbCk7XG5cdHRleHQuc2V0QmluZGluZ0NvbnRleHQoanNvbk1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKSk7XG5cdHJldHVybiB0ZXh0LmdldFRleHQoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUZW1wbGF0aW5nUmVzdWx0ID0gYXN5bmMgZnVuY3Rpb24oXG5cdHhtbElucHV0OiBzdHJpbmcsXG5cdHNNZXRhZGF0YVVybDogc3RyaW5nLFxuXHRtQmluZGluZ0NvbnRleHRzOiB7IFt4OiBzdHJpbmddOiBhbnk7IGVudGl0eVNldD86IHN0cmluZyB9LFxuXHRtTW9kZWxzOiB7IFt4OiBzdHJpbmddOiBhbnkgfVxuKSB7XG5cdGNvbnN0IHRlbXBsYXRlZFhtbCA9IGA8cm9vdD4ke3htbElucHV0fTwvcm9vdD5gO1xuXHRjb25zdCBwYXJzZXIgPSBuZXcgd2luZG93LkRPTVBhcnNlcigpO1xuXHRjb25zdCB4bWxEb2MgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHRlbXBsYXRlZFhtbCwgXCJ0ZXh0L3htbFwiKTtcblx0Ly8gVG8gZW5zdXJlIG91ciBtYWNybyBjYW4gdXNlICNzZXRCaW5kaW5nQ29udGV4dCB3ZSBlbnN1cmUgdGhlcmUgaXMgYSBwcmUgZXhpc3RpbmcgSlNPTk1vZGVsIGZvciBjb252ZXJ0ZXJDb250ZXh0XG5cdC8vIGlmIG5vdCBhbHJlYWR5IHBhc3NlZCB0byB0ZWggdGVtcGxhdGluZ1xuXHRpZiAoIW1Nb2RlbHMuaGFzT3duUHJvcGVydHkoXCJjb252ZXJ0ZXJDb250ZXh0XCIpKSB7XG5cdFx0bU1vZGVscyA9IE9iamVjdC5hc3NpZ24obU1vZGVscywgeyBcImNvbnZlcnRlckNvbnRleHRcIjogbmV3IEpTT05Nb2RlbCh7fSkgfSk7XG5cdH1cblxuXHRjb25zdCBvTWV0YU1vZGVsID0gYXdhaXQgZ2V0TWV0YU1vZGVsKHNNZXRhZGF0YVVybCk7XG5cdGNvbnN0IG9QcmVwcm9jZXNzb3JTZXR0aW5nczogYW55ID0ge1xuXHRcdG1vZGVsczogT2JqZWN0LmFzc2lnbihcblx0XHRcdHtcblx0XHRcdFx0bWV0YU1vZGVsOiBvTWV0YU1vZGVsXG5cdFx0XHR9LFxuXHRcdFx0bU1vZGVsc1xuXHRcdCksXG5cdFx0YmluZGluZ0NvbnRleHRzOiB7fVxuXHR9O1xuXG5cdC8vSW5qZWN0IG1vZGVscyBhbmQgYmluZGluZ0NvbnRleHRzXG5cdE9iamVjdC5rZXlzKG1CaW5kaW5nQ29udGV4dHMpLmZvckVhY2goZnVuY3Rpb24oc0tleSkge1xuXHRcdC8qIEFzc2VydCB0byBtYWtlIHN1cmUgdGhlIGFubm90YXRpb25zIGFyZSBpbiB0aGUgdGVzdCBtZXRhZGF0YSAtPiBhdm9pZCBtaXNsZWFkaW5nIHRlc3RzICovXG5cdFx0ZXhwZWN0KHR5cGVvZiBvTWV0YU1vZGVsLmdldE9iamVjdChtQmluZGluZ0NvbnRleHRzW3NLZXldKSkudG9CZURlZmluZWQoKTtcblx0XHRjb25zdCBvTW9kZWwgPSBtTW9kZWxzW3NLZXldIHx8IG9NZXRhTW9kZWw7XG5cdFx0b1ByZXByb2Nlc3NvclNldHRpbmdzLmJpbmRpbmdDb250ZXh0c1tzS2V5XSA9IG9Nb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dChtQmluZGluZ0NvbnRleHRzW3NLZXldKTsgLy9WYWx1ZSBpcyBzUGF0aFxuXHRcdG9QcmVwcm9jZXNzb3JTZXR0aW5ncy5tb2RlbHNbc0tleV0gPSBvTW9kZWw7XG5cdH0pO1xuXG5cdC8vVGhpcyBjb250ZXh0IGZvciBtYWNybyB0ZXN0aW5nXG5cdGlmIChvUHJlcHJvY2Vzc29yU2V0dGluZ3MubW9kZWxzW1widGhpc1wiXSkge1xuXHRcdG9QcmVwcm9jZXNzb3JTZXR0aW5ncy5iaW5kaW5nQ29udGV4dHNbXCJ0aGlzXCJdID0gb1ByZXByb2Nlc3NvclNldHRpbmdzLm1vZGVsc1tcInRoaXNcIl0uY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpO1xuXHR9XG5cblx0cmV0dXJuIFhNTFByZXByb2Nlc3Nvci5wcm9jZXNzKHhtbERvYy5maXJzdEVsZW1lbnRDaGlsZCEsIHsgbmFtZTogXCJUZXN0IEZyYWdtZW50XCIgfSwgb1ByZXByb2Nlc3NvclNldHRpbmdzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUZW1wbGF0ZWRYTUwgPSBhc3luYyBmdW5jdGlvbihcblx0eG1sSW5wdXQ6IHN0cmluZyxcblx0c01ldGFkYXRhVXJsOiBzdHJpbmcsXG5cdG1CaW5kaW5nQ29udGV4dHM6IHsgW3g6IHN0cmluZ106IGFueTsgZW50aXR5U2V0Pzogc3RyaW5nIH0sXG5cdG1Nb2RlbHM6IHsgW3g6IHN0cmluZ106IGFueSB9XG4pIHtcblx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGluZ1Jlc3VsdCh4bWxJbnB1dCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCBtTW9kZWxzKTtcblx0cmV0dXJuIHNlcmlhbGl6ZVhNTCh0ZW1wbGF0ZWRYTUwpO1xufTtcbiJdfQ==
386
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkplc3RUZW1wbGF0aW5nSGVscGVyLnRzIl0sIm5hbWVzIjpbInByb2Nlc3NGcmFnbWVudCIsIm5hbWUiLCJ0ZXN0RGF0YSIsImlucHV0WG1sIiwicGFyc2VyIiwid2luZG93IiwiRE9NUGFyc2VyIiwiaW5wdXREb2MiLCJwYXJzZUZyb21TdHJpbmciLCJzZXR0aW5ncyIsIm1vZGVscyIsImJpbmRpbmdDb250ZXh0cyIsIm1vZGVsIiwianNvbk1vZGVsIiwiSlNPTk1vZGVsIiwic2V0RGF0YSIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwiWE1MUHJlcHJvY2Vzc29yIiwicHJvY2VzcyIsImZpcnN0RWxlbWVudENoaWxkIiwicmVzdWx0RG9jIiwiZnJhZ21lbnRzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJsZW5ndGgiLCJmcmFnbWVudCIsImlubmVySFRNTCIsImZvcm1hdFhtbCIsImZpbHRlciIsIm5vZGUiLCJ0eXBlIiwicmVxdWlyZSIsIkxvZyIsInNldExldmVsIiwiamVzdCIsInNldFRpbWVvdXQiLCJuYW1lU3BhY2VNYXAiLCJzZWxlY3QiLCJ4cGF0aCIsInVzZU5hbWVzcGFjZXMiLCJyZWdpc3Rlck1hY3JvIiwibWFjcm9NZXRhZGF0YSIsIlBoYW50b21VdGlsIiwicmVnaXN0ZXIiLCJ1bnJlZ2lzdGVyTWFjcm8iLCJwbHVnSW4iLCJuYW1lc3BhY2UiLCJwdWJsaWNOYW1lIiwicHVibGljTmFtZXNwYWNlIiwicnVuWFBhdGhRdWVyeSIsInNlbGVjdG9yIiwieG1sZG9tIiwiZXhwZWN0IiwiZXh0ZW5kIiwidG9IYXZlQ29udHJvbCIsIm5vZGVzIiwibWVzc2FnZSIsIm91dHB1dFhtbCIsInNlcmlhbGl6ZVhNTCIsInBhc3MiLCJ0b05vdEhhdmVDb250cm9sIiwiZ2V0Q29udHJvbEF0dHJpYnV0ZSIsImNvbnRyb2xTZWxlY3RvciIsImF0dHJpYnV0ZU5hbWUiLCJ4bWxEb20iLCJzZXJpYWxpemVyIiwiWE1MU2VyaWFsaXplciIsInhtbFN0cmluZyIsInNlcmlhbGl6ZVRvU3RyaW5nIiwicmVwbGFjZSIsImZvcm1hdCIsImNvbXBpbGVDRFMiLCJzQ0RTVXJsIiwiY2RzU3RyaW5nIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJjc24iLCJjb21waWxlU291cmNlcyIsImVkbXhDb250ZW50IiwidG8iLCJlZG14Iiwic2VydmljZSIsImRpciIsInBhdGgiLCJyZXNvbHZlIiwiZWRteFVybCIsImJhc2VuYW1lIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsIndyaXRlRmlsZVN5bmMiLCJnZXRGYWtlU2lkZUVmZmVjdHNTZXJ2aWNlIiwib01ldGFNb2RlbCIsIm9TZXJ2aWNlQ29udGV4dCIsInNjb3BlT2JqZWN0Iiwic2NvcGVUeXBlIiwiU2lkZUVmZmVjdHNGYWN0b3J5IiwiY3JlYXRlSW5zdGFuY2UiLCJ0aGVuIiwib1NlcnZpY2VJbnN0YW5jZSIsIm9KZXN0U2lkZUVmZmVjdHNTZXJ2aWNlIiwiZ2V0SW50ZXJmYWNlIiwiZ2V0Q29udGV4dCIsImdldE1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiZ2V0RmFrZURpYWdub3N0aWNzIiwiaXNzdWVzIiwiYWRkSXNzdWUiLCJpc3N1ZUNhdGVnb3J5IiwiaXNzdWVTZXZlcml0eSIsImRldGFpbHMiLCJwdXNoIiwiZ2V0SXNzdWVzIiwiY2hlY2tJZklzc3VlRXhpc3RzIiwiZmluZCIsImlzc3VlIiwiZ2V0Q29udmVydGVyQ29udGV4dEZvclRlc3QiLCJjb252ZXJ0ZWRUeXBlcyIsIm1hbmlmZXN0U2V0dGluZ3MiLCJlbnRpdHlTZXQiLCJlbnRpdHlTZXRzIiwiZXMiLCJkYXRhTW9kZWxQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aEZvclByb3BlcnR5IiwiQ29udmVydGVyQ29udGV4dCIsIm1lcmdlIiwibWV0YU1vZGVsQ2FjaGUiLCJzTWV0YWRhdGFVcmwiLCJvUmVxdWVzdG9yIiwiX01ldGFkYXRhUmVxdWVzdG9yIiwiY3JlYXRlIiwiT0RhdGFNZXRhTW9kZWwiLCJ1bmRlZmluZWQiLCJmZXRjaEVudGl0eUNvbnRhaW5lciIsInByb3BlcnR5IiwidGFyZ2V0UGF0aCIsInN0YXJ0aW5nRW50aXR5U2V0IiwibmF2aWdhdGlvblByb3BlcnRpZXMiLCJ0YXJnZXRPYmplY3QiLCJ0YXJnZXRFbnRpdHlTZXQiLCJ0YXJnZXRFbnRpdHlUeXBlIiwiZW50aXR5VHlwZSIsImNvbnRleHRMb2NhdGlvbiIsImV2YWx1YXRlQmluZGluZyIsImJpbmRpbmdTdHJpbmciLCJiaW5kaW5nRWxlbWVudCIsIkJpbmRpbmdQYXJzZXIiLCJjb21wbGV4UGFyc2VyIiwiYXJncyIsImZvcm1hdHRlciIsImFwcGx5IiwiZXZhbHVhdGVCaW5kaW5nV2l0aE1vZGVsIiwibW9kZWxDb250ZW50IiwidGV4dCIsIkludmlzaWJsZVRleHQiLCJiaW5kUHJvcGVydHkiLCJzZXRNb2RlbCIsInNldEJpbmRpbmdDb250ZXh0IiwiZ2V0VGV4dCIsImdldFRlbXBsYXRpbmdSZXN1bHQiLCJ4bWxJbnB1dCIsIm1CaW5kaW5nQ29udGV4dHMiLCJtTW9kZWxzIiwidGVtcGxhdGVkWG1sIiwieG1sRG9jIiwiaGFzT3duUHJvcGVydHkiLCJPYmplY3QiLCJhc3NpZ24iLCJUZW1wbGF0ZU1vZGVsIiwia2V5cyIsImZvckVhY2giLCJzTW9kZWxOYW1lIiwiaXNUZW1wbGF0ZU1vZGVsIiwiZGF0YSIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsIm1ldGFNb2RlbCIsInNLZXkiLCJnZXRPYmplY3QiLCJ0b0JlRGVmaW5lZCIsIm9Nb2RlbCIsImdldFRlbXBsYXRlZFhNTCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0FBOFFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO01BQ3NCQSxlLGFBQWdCQyxJLEVBQWNDLFE7UUFBd0Q7QUFDM0csVUFBTUMsUUFBUSxpREFBeUNGLElBQXpDLHlEQUFkO0FBQ0EsVUFBTUcsTUFBTSxHQUFHLElBQUlDLE1BQU0sQ0FBQ0MsU0FBWCxFQUFmO0FBQ0EsVUFBTUMsUUFBUSxHQUFHSCxNQUFNLENBQUNJLGVBQVAsQ0FBdUJMLFFBQXZCLEVBQWlDLFVBQWpDLENBQWpCLENBSDJHLENBSzNHOztBQUNBLFVBQU1NLFFBQVEsR0FBRztBQUNoQkMsUUFBQUEsTUFBTSxFQUFFLEVBRFE7QUFFaEJDLFFBQUFBLGVBQWUsRUFBRTtBQUZELE9BQWpCOztBQUlBLFdBQUssSUFBTUMsTUFBWCxJQUFvQlYsUUFBcEIsRUFBOEI7QUFDN0IsWUFBTVcsU0FBUyxHQUFHLElBQUlDLFNBQUosRUFBbEI7QUFDQUQsUUFBQUEsU0FBUyxDQUFDRSxPQUFWLENBQWtCYixRQUFRLENBQUNVLE1BQUQsQ0FBMUI7QUFDQUgsUUFBQUEsUUFBUSxDQUFDQyxNQUFULENBQWdCRSxNQUFoQixJQUF5QkMsU0FBekI7QUFDQUosUUFBQUEsUUFBUSxDQUFDRSxlQUFULENBQXlCQyxNQUF6QixJQUFrQ0gsUUFBUSxDQUFDQyxNQUFULENBQWdCRSxNQUFoQixFQUF1Qkksb0JBQXZCLENBQTRDLEdBQTVDLENBQWxDO0FBQ0EsT0FmMEcsQ0FpQjNHOzs7QUFqQjJHLDZCQWtCbkZDLGVBQWUsQ0FBQ0MsT0FBaEIsQ0FBd0JYLFFBQVEsQ0FBQ1ksaUJBQWpDLEVBQW9EO0FBQUVsQixRQUFBQSxJQUFJLEVBQUpBO0FBQUYsT0FBcEQsRUFBOERRLFFBQTlELENBbEJtRixpQkFrQnJHVyxTQWxCcUc7QUFvQjNHO0FBQ0EsWUFBTUMsU0FBUyxHQUFHRCxTQUFTLENBQUNFLG9CQUFWLENBQStCLGVBQS9CLENBQWxCOztBQUNBLFlBQUksQ0FBQUQsU0FBUyxTQUFULElBQUFBLFNBQVMsV0FBVCxZQUFBQSxTQUFTLENBQUVFLE1BQVgsSUFBb0IsQ0FBeEIsRUFBMkI7QUFBQSxxREFDSEYsU0FERztBQUFBOztBQUFBO0FBQzFCLGdFQUFrQztBQUFBLGtCQUF2QkcsUUFBdUI7QUFDakNBLGNBQUFBLFFBQVEsQ0FBQ0MsU0FBVCxHQUFxQixFQUFyQjtBQUNBO0FBSHlCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFJMUI7O0FBRUQsZUFBT0MsU0FBUyxDQUFDTixTQUFTLENBQUNLLFNBQVgsRUFBc0I7QUFDckNFLFVBQUFBLE1BQU0sRUFBRSxVQUFDQyxJQUFEO0FBQUEsbUJBQWVBLElBQUksQ0FBQ0MsSUFBTCxLQUFjLFNBQTdCO0FBQUE7QUFENkIsU0FBdEIsQ0FBaEI7QUE1QjJHO0FBK0IzRyxLOzs7Ozs7O0FBalNEO0FBQ0EsTUFBTUgsU0FBUyxHQUFHSSxPQUFPLENBQUMsZUFBRCxDQUF6QixDLENBQ0E7QUFDQTs7O0FBR0FDLEVBQUFBLEdBQUcsQ0FBQ0MsUUFBSixDQUFhLENBQWIsRUFBdUIsa0NBQXZCO0FBQ0FDLEVBQUFBLElBQUksQ0FBQ0MsVUFBTCxDQUFnQixLQUFoQjtBQUVBLE1BQU1DLFlBQVksR0FBRztBQUNwQixjQUFVLGVBRFU7QUFFcEIsYUFBUyxlQUZXO0FBR3BCLGlCQUFhLGtFQUhPO0FBSXBCLFdBQU8sa0VBSmE7QUFLcEIsZ0JBQVksMEVBTFE7QUFNcEIsZUFBVyxzQkFOUztBQU9wQixZQUFRLGFBUFk7QUFRcEIsU0FBSyxPQVJlO0FBU3BCLFNBQUssb0JBVGU7QUFVcEIsV0FBTyxZQVZhO0FBV3BCLGdCQUFZLGtCQVhRO0FBWXBCLFNBQUssZ0JBWmU7QUFhcEIsdUJBQW1CLDBCQWJDO0FBY3BCLGtCQUFjO0FBZE0sR0FBckI7QUFnQkEsTUFBTUMsTUFBTSxHQUFHQyxLQUFLLENBQUNDLGFBQU4sQ0FBb0JILFlBQXBCLENBQWY7O0FBRU8sTUFBTUksYUFBYSxHQUFHLFVBQVNDLGFBQVQsRUFBNkI7QUFDekRDLElBQUFBLFdBQVcsQ0FBQ0MsUUFBWixDQUFxQkYsYUFBckI7QUFDQSxHQUZNOzs7O0FBR0EsTUFBTUcsZUFBZSxHQUFHLFVBQVNILGFBQVQsRUFBNkI7QUFDM0R2QixJQUFBQSxlQUFlLENBQUMyQixNQUFoQixDQUF1QixJQUF2QixFQUE2QkosYUFBYSxDQUFDSyxTQUEzQyxFQUFzREwsYUFBYSxDQUFDdkMsSUFBcEU7O0FBQ0EsUUFBSXVDLGFBQWEsQ0FBQ00sVUFBbEIsRUFBOEI7QUFDN0I3QixNQUFBQSxlQUFlLENBQUMyQixNQUFoQixDQUF1QixJQUF2QixFQUE2QkosYUFBYSxDQUFDTyxlQUEzQyxFQUE0RFAsYUFBYSxDQUFDTSxVQUExRTtBQUNBO0FBQ0QsR0FMTTs7OztBQU1BLE1BQU1FLGFBQWEsR0FBRyxVQUFTQyxRQUFULEVBQTJCQyxNQUEzQixFQUFxRDtBQUNqRixXQUFPZCxNQUFNLENBQUNhLFFBQUQsRUFBV0MsTUFBWCxDQUFiO0FBQ0EsR0FGTTs7QUFJUEMsRUFBQUEsTUFBTSxDQUFDQyxNQUFQLENBQWM7QUFDYkMsSUFBQUEsYUFEYSxZQUNDSCxNQURELEVBQ1NELFFBRFQsRUFDbUI7QUFDL0IsVUFBTUssS0FBSyxHQUFHTixhQUFhLGdCQUFTQyxRQUFULEdBQXFCQyxNQUFyQixDQUEzQjtBQUNBLGFBQU87QUFDTkssUUFBQUEsT0FBTyxFQUFFLFlBQU07QUFDZCxjQUFNQyxTQUFTLEdBQUdDLFlBQVksQ0FBQ1AsTUFBRCxDQUE5QjtBQUNBLDBEQUF5Q0QsUUFBekMsa0NBQXlFTyxTQUF6RTtBQUNBLFNBSks7QUFLTkUsUUFBQUEsSUFBSSxFQUFFSixLQUFLLElBQUlBLEtBQUssQ0FBQy9CLE1BQU4sSUFBZ0I7QUFMekIsT0FBUDtBQU9BLEtBVlk7QUFXYm9DLElBQUFBLGdCQVhhLFlBV0lULE1BWEosRUFXWUQsUUFYWixFQVdzQjtBQUNsQyxVQUFNSyxLQUFLLEdBQUdOLGFBQWEsZ0JBQVNDLFFBQVQsR0FBcUJDLE1BQXJCLENBQTNCO0FBQ0EsYUFBTztBQUNOSyxRQUFBQSxPQUFPLEVBQUUsWUFBTTtBQUNkLGNBQU1DLFNBQVMsR0FBR0MsWUFBWSxDQUFDUCxNQUFELENBQTlCO0FBQ0EsdURBQXNDRCxRQUF0QyxrQ0FBc0VPLFNBQXRFO0FBQ0EsU0FKSztBQUtORSxRQUFBQSxJQUFJLEVBQUVKLEtBQUssSUFBSUEsS0FBSyxDQUFDL0IsTUFBTixLQUFpQjtBQUwxQixPQUFQO0FBT0E7QUFwQlksR0FBZDs7O0FBdUJPLE1BQU1xQyxtQkFBbUIsR0FBRyxVQUFTQyxlQUFULEVBQWtDQyxhQUFsQyxFQUF5REMsTUFBekQsRUFBdUU7QUFDekcsUUFBTWQsUUFBUSx5QkFBa0JZLGVBQWxCLGVBQXNDQyxhQUF0QyxNQUFkO0FBQ0EsV0FBT2QsYUFBYSxDQUFDQyxRQUFELEVBQVdjLE1BQVgsQ0FBcEI7QUFDQSxHQUhNOzs7O0FBS0EsTUFBTU4sWUFBWSxHQUFHLFVBQVNNLE1BQVQsRUFBdUI7QUFDbEQsUUFBTUMsVUFBVSxHQUFHLElBQUkzRCxNQUFNLENBQUM0RCxhQUFYLEVBQW5CO0FBQ0EsUUFBTUMsU0FBUyxHQUFHRixVQUFVLENBQzFCRyxpQkFEZ0IsQ0FDRUosTUFERixFQUVoQkssT0FGZ0IsQ0FFUiwwQkFGUSxFQUVvQixJQUZwQixFQUdoQkEsT0FIZ0IsQ0FHUixNQUhRLEVBR0EsR0FIQSxDQUFsQjtBQUlBLFdBQU9DLE1BQU0sQ0FBQ0gsU0FBRCxFQUFZO0FBQUU5RCxNQUFBQSxNQUFNLEVBQUU7QUFBVixLQUFaLENBQWI7QUFDQSxHQVBNO0FBU1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sTUFBTWtFLFVBQVUsR0FBRyxVQUFTQyxPQUFULEVBQTBCO0FBQ25ELFFBQU1DLFNBQVMsR0FBR0MsRUFBRSxDQUFDQyxZQUFILENBQWdCSCxPQUFoQixFQUF5QixPQUF6QixDQUFsQjtBQUNBLFFBQU1JLEdBQUcsR0FBR0MsY0FBYyxDQUFDO0FBQUUsb0JBQWNKO0FBQWhCLEtBQUQsRUFBOEIsRUFBOUIsQ0FBMUI7QUFDQSxRQUFNSyxXQUFXLEdBQUdDLEVBQUUsQ0FBQ0MsSUFBSCxDQUFRSixHQUFSLEVBQWE7QUFBRUssTUFBQUEsT0FBTyxFQUFFO0FBQVgsS0FBYixDQUFwQjtBQUNBLFFBQU1DLEdBQUcsR0FBR0MsSUFBSSxDQUFDQyxPQUFMLENBQWFaLE9BQWIsRUFBc0IsSUFBdEIsRUFBNEIsS0FBNUIsQ0FBWjtBQUNBLFFBQU1hLE9BQU8sR0FBR0YsSUFBSSxDQUFDQyxPQUFMLENBQWFGLEdBQWIsRUFBa0JDLElBQUksQ0FBQ0csUUFBTCxDQUFjZCxPQUFkLEVBQXVCSCxPQUF2QixDQUErQixNQUEvQixFQUF1QyxNQUF2QyxDQUFsQixDQUFoQjs7QUFFQSxRQUFJLENBQUNLLEVBQUUsQ0FBQ2EsVUFBSCxDQUFjTCxHQUFkLENBQUwsRUFBeUI7QUFDeEJSLE1BQUFBLEVBQUUsQ0FBQ2MsU0FBSCxDQUFhTixHQUFiO0FBQ0E7O0FBRURSLElBQUFBLEVBQUUsQ0FBQ2UsYUFBSCxDQUFpQkosT0FBakIsRUFBMEJQLFdBQTFCO0FBQ0EsV0FBT08sT0FBUDtBQUNBLEdBYk07Ozs7QUFlQSxNQUFNSyx5QkFBeUIsYUFBa0JDLFVBQWxCO0FBQUEsUUFBNEQ7QUFDakcsVUFBTUMsZUFBZSxHQUFHO0FBQUVDLFFBQUFBLFdBQVcsRUFBRSxFQUFmO0FBQW1CQyxRQUFBQSxTQUFTLEVBQUUsRUFBOUI7QUFBa0NwRixRQUFBQSxRQUFRLEVBQUU7QUFBNUMsT0FBeEI7QUFDQSw2QkFBTyxJQUFJcUYsa0JBQUosR0FBeUJDLGNBQXpCLENBQXdDSixlQUF4QyxFQUF5REssSUFBekQsQ0FBOEQsVUFBU0MsZ0JBQVQsRUFBZ0M7QUFDcEcsWUFBTUMsdUJBQXVCLEdBQUdELGdCQUFnQixDQUFDRSxZQUFqQixFQUFoQzs7QUFDQUQsUUFBQUEsdUJBQXVCLENBQUNFLFVBQXhCLEdBQXFDLFlBQVc7QUFDL0MsaUJBQU87QUFDTlIsWUFBQUEsV0FBVyxFQUFFO0FBQ1pTLGNBQUFBLFFBQVEsRUFBRSxZQUFXO0FBQ3BCLHVCQUFPO0FBQ05DLGtCQUFBQSxZQUFZLEVBQUUsWUFBVztBQUN4QiwyQkFBT1osVUFBUDtBQUNBO0FBSEssaUJBQVA7QUFLQTtBQVBXO0FBRFAsV0FBUDtBQVdBLFNBWkQ7O0FBYUEsZUFBT1EsdUJBQVA7QUFDQSxPQWhCTSxDQUFQO0FBaUJBLEtBbkJxQztBQUFBO0FBQUE7QUFBQSxHQUEvQjs7OztBQXFCQSxNQUFNSyxrQkFBa0IsR0FBRyxZQUF5QjtBQUMxRCxRQUFNQyxNQUFhLEdBQUcsRUFBdEI7QUFDQSxXQUFPO0FBQ05DLE1BQUFBLFFBRE0sWUFDR0MsYUFESCxFQUNpQ0MsYUFEakMsRUFDK0RDLE9BRC9ELEVBQ3NGO0FBQzNGSixRQUFBQSxNQUFNLENBQUNLLElBQVAsQ0FBWTtBQUNYSCxVQUFBQSxhQUFhLEVBQWJBLGFBRFc7QUFFWEMsVUFBQUEsYUFBYSxFQUFiQSxhQUZXO0FBR1hDLFVBQUFBLE9BQU8sRUFBUEE7QUFIVyxTQUFaO0FBS0EsT0FQSztBQVFORSxNQUFBQSxTQVJNLGNBUWE7QUFDbEIsZUFBT04sTUFBUDtBQUNBLE9BVks7QUFXTk8sTUFBQUEsa0JBWE0sWUFXYUwsYUFYYixFQVcyQ0MsYUFYM0MsRUFXeUVDLE9BWHpFLEVBV21HO0FBQ3hHLGVBQU9KLE1BQU0sQ0FBQ1EsSUFBUCxDQUFZLFVBQUFDLEtBQUssRUFBSTtBQUMzQkEsVUFBQUEsS0FBSyxDQUFDUCxhQUFOLEtBQXdCQSxhQUF4QixJQUF5Q08sS0FBSyxDQUFDTixhQUFOLEtBQXdCQSxhQUFqRSxJQUFrRk0sS0FBSyxDQUFDTCxPQUFOLEtBQWtCQSxPQUFwRztBQUNBLFNBRk0sQ0FBUDtBQUdBO0FBZkssS0FBUDtBQWlCQSxHQW5CTTs7OztBQXFCQSxNQUFNTSwwQkFBMEIsR0FBRyxVQUN6Q0MsY0FEeUMsRUFFekNDLGdCQUZ5QyxFQUd4QztBQUNELFFBQU1DLFNBQVMsR0FBR0YsY0FBYyxDQUFDRyxVQUFmLENBQTBCTixJQUExQixDQUErQixVQUFBTyxFQUFFO0FBQUEsYUFBSUEsRUFBRSxDQUFDdEgsSUFBSCxLQUFZbUgsZ0JBQWdCLENBQUNDLFNBQWpDO0FBQUEsS0FBakMsQ0FBbEI7QUFDQSxRQUFNRyxhQUFhLEdBQUdDLGlDQUFpQyxDQUFDSixTQUFELEVBQXlCQSxTQUF6QixDQUF2RDtBQUNBLFdBQU8sSUFBSUssZ0JBQUosQ0FBcUJQLGNBQXJCLEVBQXFDQyxnQkFBckMsRUFBdURiLGtCQUFrQixFQUF6RSxFQUE2RW9CLEtBQTdFLEVBQW9GSCxhQUFwRixDQUFQO0FBQ0EsR0FQTTs7O0FBUVAsTUFBTUksY0FBbUIsR0FBRyxFQUE1Qjs7QUFDTyxNQUFNdEIsWUFBWSxhQUFrQnVCLFlBQWxCO0FBQUEsUUFBd0M7QUFBQTtBQVFoRSxlQUFPRCxjQUFjLENBQUNDLFlBQUQsQ0FBckI7QUFSZ0U7O0FBQ2hFLFVBQU1DLFVBQVUsR0FBR0Msa0JBQWtCLENBQUNDLE1BQW5CLENBQTBCLEVBQTFCLEVBQThCLEtBQTlCLEVBQXFDLEVBQXJDLENBQW5COztBQURnRTtBQUFBLFlBRTVELENBQUNKLGNBQWMsQ0FBQ0MsWUFBRCxDQUY2QztBQUcvRCxjQUFNbkMsVUFBVSxHQUFHLElBQUl1QyxjQUFKLENBQW1CSCxVQUFuQixFQUErQkQsWUFBL0IsRUFBNkNLLFNBQTdDLEVBQXdELElBQXhELENBQW5CO0FBSCtELGlDQUl6RHhDLFVBQVUsQ0FBQ3lDLG9CQUFYLEVBSnlEO0FBSy9EUCxZQUFBQSxjQUFjLENBQUNDLFlBQUQsQ0FBZCxHQUErQm5DLFVBQS9CO0FBTCtEO0FBQUE7QUFBQTs7QUFBQTtBQVNoRSxLQVR3QjtBQUFBO0FBQUE7QUFBQSxHQUFsQjs7OztBQVdBLE1BQU0rQixpQ0FBaUMsR0FBRyxVQUNoREosU0FEZ0QsRUFFaERlLFFBRmdELEVBRzFCO0FBQ3RCLFFBQU1DLFVBQStCLEdBQUc7QUFDdkNDLE1BQUFBLGlCQUFpQixFQUFFakIsU0FEb0I7QUFFdkNrQixNQUFBQSxvQkFBb0IsRUFBRSxFQUZpQjtBQUd2Q0MsTUFBQUEsWUFBWSxFQUFFSixRQUh5QjtBQUl2Q0ssTUFBQUEsZUFBZSxFQUFFcEIsU0FKc0I7QUFLdkNxQixNQUFBQSxnQkFBZ0IsRUFBRXJCLFNBQVMsQ0FBQ3NCO0FBTFcsS0FBeEM7QUFPQU4sSUFBQUEsVUFBVSxDQUFDTyxlQUFYLEdBQTZCUCxVQUE3QjtBQUNBLFdBQU9BLFVBQVA7QUFDQSxHQWJNOzs7O0FBZUEsTUFBTVEsZUFBZSxHQUFHLFVBQVNDLGFBQVQsRUFBZ0Q7QUFDOUUsUUFBTUMsY0FBYyxHQUFHQyxhQUFhLENBQUNDLGFBQWQsQ0FBNEJILGFBQTVCLENBQXZCOztBQUQ4RSxzQ0FBYkksSUFBYTtBQUFiQSxNQUFBQSxJQUFhO0FBQUE7O0FBRTlFLFdBQU9ILGNBQWMsQ0FBQ0ksU0FBZixDQUF5QkMsS0FBekIsQ0FBK0JsQixTQUEvQixFQUEwQ2dCLElBQTFDLENBQVA7QUFDQSxHQUhNOzs7O0FBS0EsTUFBTUcsd0JBQXdCLEdBQUcsVUFBU1AsYUFBVCxFQUE0Q1EsWUFBNUMsRUFBK0Q7QUFDdEcsUUFBTVAsY0FBYyxHQUFHQyxhQUFhLENBQUNDLGFBQWQsQ0FBNEJILGFBQTVCLENBQXZCO0FBQ0EsUUFBTWpJLFNBQVMsR0FBRyxJQUFJQyxTQUFKLENBQWN3SSxZQUFkLENBQWxCO0FBQ0EsUUFBTUMsSUFBSSxHQUFHLElBQUlDLGFBQUosRUFBYjtBQUNBRCxJQUFBQSxJQUFJLENBQUNFLFlBQUwsQ0FBa0IsTUFBbEIsRUFBMEJWLGNBQTFCO0FBQ0FRLElBQUFBLElBQUksQ0FBQ0csUUFBTCxDQUFjN0ksU0FBZDtBQUNBMEksSUFBQUEsSUFBSSxDQUFDSSxpQkFBTCxDQUF1QjlJLFNBQVMsQ0FBQ0csb0JBQVYsQ0FBK0IsR0FBL0IsQ0FBdkI7QUFDQSxXQUFPdUksSUFBSSxDQUFDSyxPQUFMLEVBQVA7QUFDQSxHQVJNOzs7O0FBVUEsTUFBTUMsbUJBQW1CLGFBQy9CQyxRQUQrQixFQUUvQmpDLFlBRitCLEVBRy9Ca0MsZ0JBSCtCLEVBSS9CQyxPQUorQjtBQUFBLFFBSzlCO0FBQ0QsVUFBTUMsWUFBWSxtQkFBWUgsUUFBWixZQUFsQjtBQUNBLFVBQU0xSixNQUFNLEdBQUcsSUFBSUMsTUFBTSxDQUFDQyxTQUFYLEVBQWY7QUFDQSxVQUFNNEosTUFBTSxHQUFHOUosTUFBTSxDQUFDSSxlQUFQLENBQXVCeUosWUFBdkIsRUFBcUMsVUFBckMsQ0FBZixDQUhDLENBSUQ7QUFDQTs7QUFMQyw2QkFPd0IzRCxZQUFZLENBQUN1QixZQUFELENBUHBDLGlCQU9LbkMsVUFQTDtBQVFELFlBQUksQ0FBQ3NFLE9BQU8sQ0FBQ0csY0FBUixDQUF1QixrQkFBdkIsQ0FBTCxFQUFpRDtBQUNoREgsVUFBQUEsT0FBTyxHQUFHSSxNQUFNLENBQUNDLE1BQVAsQ0FBY0wsT0FBZCxFQUF1QjtBQUFFLGdDQUFvQixJQUFJTSxhQUFKLENBQWtCLEVBQWxCLEVBQXNCNUUsVUFBdEI7QUFBdEIsV0FBdkIsQ0FBVjtBQUNBOztBQUVEMEUsUUFBQUEsTUFBTSxDQUFDRyxJQUFQLENBQVlQLE9BQVosRUFBcUJRLE9BQXJCLENBQTZCLFVBQVNDLFVBQVQsRUFBcUI7QUFDakQsY0FBSVQsT0FBTyxDQUFDUyxVQUFELENBQVAsSUFBdUJULE9BQU8sQ0FBQ1MsVUFBRCxDQUFQLENBQW9CQyxlQUEvQyxFQUFnRTtBQUMvRFYsWUFBQUEsT0FBTyxDQUFDUyxVQUFELENBQVAsR0FBc0IsSUFBSUgsYUFBSixDQUFrQk4sT0FBTyxDQUFDUyxVQUFELENBQVAsQ0FBb0JFLElBQXRDLEVBQTRDakYsVUFBNUMsQ0FBdEI7QUFDQTtBQUNELFNBSkQ7QUFNQSxZQUFNa0YscUJBQTBCLEdBQUc7QUFDbENsSyxVQUFBQSxNQUFNLEVBQUUwSixNQUFNLENBQUNDLE1BQVAsQ0FDUDtBQUNDUSxZQUFBQSxTQUFTLEVBQUVuRjtBQURaLFdBRE8sRUFJUHNFLE9BSk8sQ0FEMEI7QUFPbENySixVQUFBQSxlQUFlLEVBQUU7QUFQaUIsU0FBbkMsQ0FsQkMsQ0E0QkQ7O0FBQ0F5SixRQUFBQSxNQUFNLENBQUNHLElBQVAsQ0FBWVIsZ0JBQVosRUFBOEJTLE9BQTlCLENBQXNDLFVBQVNNLElBQVQsRUFBZTtBQUNwRDtBQUNBM0gsVUFBQUEsTUFBTSxDQUFDLE9BQU91QyxVQUFVLENBQUNxRixTQUFYLENBQXFCaEIsZ0JBQWdCLENBQUNlLElBQUQsQ0FBckMsQ0FBUixDQUFOLENBQTRERSxXQUE1RDtBQUNBLGNBQU1DLE1BQU0sR0FBR2pCLE9BQU8sQ0FBQ2MsSUFBRCxDQUFQLElBQWlCcEYsVUFBaEM7QUFDQWtGLFVBQUFBLHFCQUFxQixDQUFDakssZUFBdEIsQ0FBc0NtSyxJQUF0QyxJQUE4Q0csTUFBTSxDQUFDakssb0JBQVAsQ0FBNEIrSSxnQkFBZ0IsQ0FBQ2UsSUFBRCxDQUE1QyxDQUE5QyxDQUpvRCxDQUkrQzs7QUFDbkdGLFVBQUFBLHFCQUFxQixDQUFDbEssTUFBdEIsQ0FBNkJvSyxJQUE3QixJQUFxQ0csTUFBckM7QUFDQSxTQU5ELEVBN0JDLENBcUNEOztBQUNBLFlBQUlMLHFCQUFxQixDQUFDbEssTUFBdEIsQ0FBNkIsTUFBN0IsQ0FBSixFQUEwQztBQUN6Q2tLLFVBQUFBLHFCQUFxQixDQUFDakssZUFBdEIsQ0FBc0MsTUFBdEMsSUFBZ0RpSyxxQkFBcUIsQ0FBQ2xLLE1BQXRCLENBQTZCLE1BQTdCLEVBQXFDTSxvQkFBckMsQ0FBMEQsR0FBMUQsQ0FBaEQ7QUFDQTs7QUFFRCxlQUFPQyxlQUFlLENBQUNDLE9BQWhCLENBQXdCZ0osTUFBTSxDQUFDL0ksaUJBQS9CLEVBQW1EO0FBQUVsQixVQUFBQSxJQUFJLEVBQUU7QUFBUixTQUFuRCxFQUE4RTJLLHFCQUE5RSxDQUFQO0FBMUNDO0FBMkNELEtBaEQrQjtBQUFBO0FBQUE7QUFBQSxHQUF6Qjs7OztBQWtEQSxNQUFNTSxlQUFlLGFBQzNCcEIsUUFEMkIsRUFFM0JqQyxZQUYyQixFQUczQmtDLGdCQUgyQixFQUkzQkMsT0FKMkI7QUFBQSxRQUsxQjtBQUFBLDZCQUMwQkgsbUJBQW1CLENBQUNDLFFBQUQsRUFBV2pDLFlBQVgsRUFBeUJrQyxnQkFBekIsRUFBMkNDLE9BQTNDLENBRDdDLE9BRU12RyxZQUZOO0FBR0QsS0FSMkI7QUFBQTtBQUFBO0FBQUEsR0FBckIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBoYW50b21VdGlsIH0gZnJvbSBcInNhcC9mZS9tYWNyb3NcIjtcbmltcG9ydCB7IF9NZXRhZGF0YVJlcXVlc3RvciB9IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvbGliXCI7XG5pbXBvcnQgeyBPRGF0YU1ldGFNb2RlbCB9IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjRcIjtcbmltcG9ydCB7IFhNTFByZXByb2Nlc3NvciB9IGZyb20gXCJzYXAvdWkvY29yZS91dGlsXCI7XG5pbXBvcnQgeyBMb2cgfSBmcm9tIFwic2FwL2Jhc2VcIjtcbmltcG9ydCB4cGF0aCBmcm9tIFwieHBhdGhcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgY29tcGlsZVNvdXJjZXMsIHRvIH0gZnJvbSBcIkBzYXAvY2RzLWNvbXBpbGVyXCI7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tIFwicHJldHRpZXJcIjtcbmltcG9ydCB7IEJpbmRpbmdQYXJzZXIgfSBmcm9tIFwic2FwL3VpL2Jhc2VcIjtcbmltcG9ydCB7IEFueUFubm90YXRpb24sIENvbnZlcnRlck91dHB1dCwgRW50aXR5U2V0LCBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L2Fubm90YXRpb24tY29udmVydGVyXCI7XG5pbXBvcnQgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgSlNPTk1vZGVsIH0gZnJvbSBcInNhcC91aS9tb2RlbC9qc29uXCI7XG5pbXBvcnQgeyBJbnZpc2libGVUZXh0IH0gZnJvbSBcInNhcC91aS9jb3JlXCI7XG5pbXBvcnQgeyBMaXN0UmVwb3J0TWFuaWZlc3RTZXR0aW5ncywgT2JqZWN0UGFnZU1hbmlmZXN0U2V0dGluZ3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBJc3N1ZUNhdGVnb3J5LCBJc3N1ZVNldmVyaXR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmltcG9ydCB7IElEaWFnbm9zdGljcyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL1RlbXBsYXRlQ29udmVydGVyXCI7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gXCJzYXAvYmFzZS91dGlsXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgU2lkZUVmZmVjdHNGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9TaWRlRWZmZWN0c1NlcnZpY2VGYWN0b3J5XCI7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuY29uc3QgZm9ybWF0WG1sID0gcmVxdWlyZShcInhtbC1mb3JtYXR0ZXJcIik7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyBUZW1wbGF0ZU1vZGVsIGZyb20gXCJzYXAvZmUvY29yZS9UZW1wbGF0ZU1vZGVsXCI7XG5cbkxvZy5zZXRMZXZlbCgxIGFzIGFueSwgXCJzYXAudWkuY29yZS51dGlsLlhNTFByZXByb2Nlc3NvclwiKTtcbmplc3Quc2V0VGltZW91dCg0MDAwMCk7XG5cbmNvbnN0IG5hbWVTcGFjZU1hcCA9IHtcblx0XCJtYWNyb3NcIjogXCJzYXAuZmUubWFjcm9zXCIsXG5cdFwibWFjcm9cIjogXCJzYXAuZmUubWFjcm9zXCIsXG5cdFwibWFjcm9kYXRhXCI6IFwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiLFxuXHRcImxvZ1wiOiBcImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS5DdXN0b21EYXRhLzFcIixcblx0XCJ1bml0dGVzdFwiOiBcImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L3ByZXByb2Nlc3NvcmV4dGVuc2lvbi9zYXAuZmUudW5pdHRlc3RpbmcvMVwiLFxuXHRcImNvbnRyb2xcIjogXCJzYXAuZmUuY29yZS5jb250cm9sc1wiLFxuXHRcImNvcmVcIjogXCJzYXAudWkuY29yZVwiLFxuXHRcIm1cIjogXCJzYXAubVwiLFxuXHRcImZcIjogXCJzYXAudWkubGF5b3V0LmZvcm1cIixcblx0XCJtZGNcIjogXCJzYXAudWkubWRjXCIsXG5cdFwibWRjRmllbGRcIjogXCJzYXAudWkubWRjLmZpZWxkXCIsXG5cdFwidVwiOiBcInNhcC51aS51bmlmaWVkXCIsXG5cdFwibWFjcm9NaWNyb0NoYXJ0XCI6IFwic2FwLmZlLm1hY3Jvcy5taWNyb2NoYXJ0XCIsXG5cdFwibWljcm9DaGFydFwiOiBcInNhcC5zdWl0ZS51aS5taWNyb2NoYXJ0XCJcbn07XG5jb25zdCBzZWxlY3QgPSB4cGF0aC51c2VOYW1lc3BhY2VzKG5hbWVTcGFjZU1hcCk7XG5cbmV4cG9ydCBjb25zdCByZWdpc3Rlck1hY3JvID0gZnVuY3Rpb24obWFjcm9NZXRhZGF0YTogYW55KSB7XG5cdFBoYW50b21VdGlsLnJlZ2lzdGVyKG1hY3JvTWV0YWRhdGEpO1xufTtcbmV4cG9ydCBjb25zdCB1bnJlZ2lzdGVyTWFjcm8gPSBmdW5jdGlvbihtYWNyb01ldGFkYXRhOiBhbnkpIHtcblx0WE1MUHJlcHJvY2Vzc29yLnBsdWdJbihudWxsLCBtYWNyb01ldGFkYXRhLm5hbWVzcGFjZSwgbWFjcm9NZXRhZGF0YS5uYW1lKTtcblx0aWYgKG1hY3JvTWV0YWRhdGEucHVibGljTmFtZSkge1xuXHRcdFhNTFByZXByb2Nlc3Nvci5wbHVnSW4obnVsbCwgbWFjcm9NZXRhZGF0YS5wdWJsaWNOYW1lc3BhY2UsIG1hY3JvTWV0YWRhdGEucHVibGljTmFtZSk7XG5cdH1cbn07XG5leHBvcnQgY29uc3QgcnVuWFBhdGhRdWVyeSA9IGZ1bmN0aW9uKHNlbGVjdG9yOiBzdHJpbmcsIHhtbGRvbTogTm9kZSB8IHVuZGVmaW5lZCkge1xuXHRyZXR1cm4gc2VsZWN0KHNlbGVjdG9yLCB4bWxkb20pO1xufTtcblxuZXhwZWN0LmV4dGVuZCh7XG5cdHRvSGF2ZUNvbnRyb2woeG1sZG9tLCBzZWxlY3Rvcikge1xuXHRcdGNvbnN0IG5vZGVzID0gcnVuWFBhdGhRdWVyeShgL3Jvb3Qke3NlbGVjdG9yfWAsIHhtbGRvbSk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG1lc3NhZ2U6ICgpID0+IHtcblx0XHRcdFx0Y29uc3Qgb3V0cHV0WG1sID0gc2VyaWFsaXplWE1MKHhtbGRvbSk7XG5cdFx0XHRcdHJldHVybiBgZGlkIG5vdCBmaW5kIGNvbnRyb2xzIG1hdGNoaW5nICR7c2VsZWN0b3J9IGluIGdlbmVyYXRlZCB4bWw6XFxuICR7b3V0cHV0WG1sfWA7XG5cdFx0XHR9LFxuXHRcdFx0cGFzczogbm9kZXMgJiYgbm9kZXMubGVuZ3RoID49IDFcblx0XHR9O1xuXHR9LFxuXHR0b05vdEhhdmVDb250cm9sKHhtbGRvbSwgc2VsZWN0b3IpIHtcblx0XHRjb25zdCBub2RlcyA9IHJ1blhQYXRoUXVlcnkoYC9yb290JHtzZWxlY3Rvcn1gLCB4bWxkb20pO1xuXHRcdHJldHVybiB7XG5cdFx0XHRtZXNzYWdlOiAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG91dHB1dFhtbCA9IHNlcmlhbGl6ZVhNTCh4bWxkb20pO1xuXHRcdFx0XHRyZXR1cm4gYFRoZXJlIGlzIGEgY29udHJvbCBtYXRjaGluZyAke3NlbGVjdG9yfSBpbiBnZW5lcmF0ZWQgeG1sOlxcbiAke291dHB1dFhtbH1gO1xuXHRcdFx0fSxcblx0XHRcdHBhc3M6IG5vZGVzICYmIG5vZGVzLmxlbmd0aCA9PT0gMFxuXHRcdH07XG5cdH1cbn0pO1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udHJvbEF0dHJpYnV0ZSA9IGZ1bmN0aW9uKGNvbnRyb2xTZWxlY3Rvcjogc3RyaW5nLCBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcsIHhtbERvbTogTm9kZSkge1xuXHRjb25zdCBzZWxlY3RvciA9IGBzdHJpbmcoL3Jvb3Qke2NvbnRyb2xTZWxlY3Rvcn0vQCR7YXR0cmlidXRlTmFtZX0pYDtcblx0cmV0dXJuIHJ1blhQYXRoUXVlcnkoc2VsZWN0b3IsIHhtbERvbSk7XG59O1xuXG5leHBvcnQgY29uc3Qgc2VyaWFsaXplWE1MID0gZnVuY3Rpb24oeG1sRG9tOiBOb2RlKSB7XG5cdGNvbnN0IHNlcmlhbGl6ZXIgPSBuZXcgd2luZG93LlhNTFNlcmlhbGl6ZXIoKTtcblx0Y29uc3QgeG1sU3RyaW5nID0gc2VyaWFsaXplclxuXHRcdC5zZXJpYWxpemVUb1N0cmluZyh4bWxEb20pXG5cdFx0LnJlcGxhY2UoLyg/OltcXHQgXSooPzpcXHI/XFxufFxccikpKy9nLCBcIlxcblwiKVxuXHRcdC5yZXBsYWNlKC9cXFxcXCIvZywgJ1wiJyk7XG5cdHJldHVybiBmb3JtYXQoeG1sU3RyaW5nLCB7IHBhcnNlcjogXCJodG1sXCIgfSk7XG59O1xuXG4vKipcbiAqIENvbXBpbGUgYSBDRFMgZmlsZSBpbnRvIGFuIEVETVggZmlsZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc0NEU1VybCBUaGUgcGF0aCB0byB0aGUgZmlsZSBjb250YWluaW5nIHRoZSBDRFMgZGVmaW5pdGlvbi4gVGhpcyBmaWxlIE1VU1QgZGVjbGFyZSB0aGUgbmFtZXNwYWNlXG4gKiBzYXAuZmUudGVzdCBhbmQgYSBzZXJ2aWNlIEplc3RTZXJ2aWNlXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgcGF0aCBvZiB0aGUgZ2VuZXJhdGVkIEVETVhcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbXBpbGVDRFMgPSBmdW5jdGlvbihzQ0RTVXJsOiBzdHJpbmcpIHtcblx0Y29uc3QgY2RzU3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHNDRFNVcmwsIFwidXRmLThcIik7XG5cdGNvbnN0IGNzbiA9IGNvbXBpbGVTb3VyY2VzKHsgXCJzdHJpbmcuY2RzXCI6IGNkc1N0cmluZyB9LCB7fSk7XG5cdGNvbnN0IGVkbXhDb250ZW50ID0gdG8uZWRteChjc24sIHsgc2VydmljZTogXCJzYXAuZmUudGVzdC5KZXN0U2VydmljZVwiIH0pO1xuXHRjb25zdCBkaXIgPSBwYXRoLnJlc29sdmUoc0NEU1VybCwgXCIuLlwiLCBcImdlblwiKTtcblx0Y29uc3QgZWRteFVybCA9IHBhdGgucmVzb2x2ZShkaXIsIHBhdGguYmFzZW5hbWUoc0NEU1VybCkucmVwbGFjZShcIi5jZHNcIiwgXCIueG1sXCIpKTtcblxuXHRpZiAoIWZzLmV4aXN0c1N5bmMoZGlyKSkge1xuXHRcdGZzLm1rZGlyU3luYyhkaXIpO1xuXHR9XG5cblx0ZnMud3JpdGVGaWxlU3luYyhlZG14VXJsLCBlZG14Q29udGVudCk7XG5cdHJldHVybiBlZG14VXJsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZha2VTaWRlRWZmZWN0c1NlcnZpY2UgPSBhc3luYyBmdW5jdGlvbihvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCk6IFByb21pc2U8YW55PiB7XG5cdGNvbnN0IG9TZXJ2aWNlQ29udGV4dCA9IHsgc2NvcGVPYmplY3Q6IHt9LCBzY29wZVR5cGU6IFwiXCIsIHNldHRpbmdzOiB7fSB9O1xuXHRyZXR1cm4gbmV3IFNpZGVFZmZlY3RzRmFjdG9yeSgpLmNyZWF0ZUluc3RhbmNlKG9TZXJ2aWNlQ29udGV4dCkudGhlbihmdW5jdGlvbihvU2VydmljZUluc3RhbmNlOiBhbnkpIHtcblx0XHRjb25zdCBvSmVzdFNpZGVFZmZlY3RzU2VydmljZSA9IG9TZXJ2aWNlSW5zdGFuY2UuZ2V0SW50ZXJmYWNlKCk7XG5cdFx0b0plc3RTaWRlRWZmZWN0c1NlcnZpY2UuZ2V0Q29udGV4dCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0c2NvcGVPYmplY3Q6IHtcblx0XHRcdFx0XHRnZXRNb2RlbDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0XHRnZXRNZXRhTW9kZWw6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBvTWV0YU1vZGVsO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9O1xuXHRcdHJldHVybiBvSmVzdFNpZGVFZmZlY3RzU2VydmljZTtcblx0fSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmFrZURpYWdub3N0aWNzID0gZnVuY3Rpb24oKTogSURpYWdub3N0aWNzIHtcblx0Y29uc3QgaXNzdWVzOiBhbnlbXSA9IFtdO1xuXHRyZXR1cm4ge1xuXHRcdGFkZElzc3VlKGlzc3VlQ2F0ZWdvcnk6IElzc3VlQ2F0ZWdvcnksIGlzc3VlU2V2ZXJpdHk6IElzc3VlU2V2ZXJpdHksIGRldGFpbHM6IHN0cmluZyk6IHZvaWQge1xuXHRcdFx0aXNzdWVzLnB1c2goe1xuXHRcdFx0XHRpc3N1ZUNhdGVnb3J5LFxuXHRcdFx0XHRpc3N1ZVNldmVyaXR5LFxuXHRcdFx0XHRkZXRhaWxzXG5cdFx0XHR9KTtcblx0XHR9LFxuXHRcdGdldElzc3VlcygpOiBhbnlbXSB7XG5cdFx0XHRyZXR1cm4gaXNzdWVzO1xuXHRcdH0sXG5cdFx0Y2hlY2tJZklzc3VlRXhpc3RzKGlzc3VlQ2F0ZWdvcnk6IElzc3VlQ2F0ZWdvcnksIGlzc3VlU2V2ZXJpdHk6IElzc3VlU2V2ZXJpdHksIGRldGFpbHM6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIGlzc3Vlcy5maW5kKGlzc3VlID0+IHtcblx0XHRcdFx0aXNzdWUuaXNzdWVDYXRlZ29yeSA9PT0gaXNzdWVDYXRlZ29yeSAmJiBpc3N1ZS5pc3N1ZVNldmVyaXR5ID09PSBpc3N1ZVNldmVyaXR5ICYmIGlzc3VlLmRldGFpbHMgPT09IGRldGFpbHM7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udmVydGVyQ29udGV4dEZvclRlc3QgPSBmdW5jdGlvbihcblx0Y29udmVydGVkVHlwZXM6IENvbnZlcnRlck91dHB1dCxcblx0bWFuaWZlc3RTZXR0aW5nczogTGlzdFJlcG9ydE1hbmlmZXN0U2V0dGluZ3MgfCBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5nc1xuKSB7XG5cdGNvbnN0IGVudGl0eVNldCA9IGNvbnZlcnRlZFR5cGVzLmVudGl0eVNldHMuZmluZChlcyA9PiBlcy5uYW1lID09PSBtYW5pZmVzdFNldHRpbmdzLmVudGl0eVNldCk7XG5cdGNvbnN0IGRhdGFNb2RlbFBhdGggPSBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkoZW50aXR5U2V0IGFzIEVudGl0eVNldCwgZW50aXR5U2V0KTtcblx0cmV0dXJuIG5ldyBDb252ZXJ0ZXJDb250ZXh0KGNvbnZlcnRlZFR5cGVzLCBtYW5pZmVzdFNldHRpbmdzLCBnZXRGYWtlRGlhZ25vc3RpY3MoKSwgbWVyZ2UsIGRhdGFNb2RlbFBhdGgpO1xufTtcbmNvbnN0IG1ldGFNb2RlbENhY2hlOiBhbnkgPSB7fTtcbmV4cG9ydCBjb25zdCBnZXRNZXRhTW9kZWwgPSBhc3luYyBmdW5jdGlvbihzTWV0YWRhdGFVcmw6IHN0cmluZykge1xuXHRjb25zdCBvUmVxdWVzdG9yID0gX01ldGFkYXRhUmVxdWVzdG9yLmNyZWF0ZSh7fSwgXCI0LjBcIiwge30pO1xuXHRpZiAoIW1ldGFNb2RlbENhY2hlW3NNZXRhZGF0YVVybF0pIHtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gbmV3IE9EYXRhTWV0YU1vZGVsKG9SZXF1ZXN0b3IsIHNNZXRhZGF0YVVybCwgdW5kZWZpbmVkLCBudWxsKTtcblx0XHRhd2FpdCBvTWV0YU1vZGVsLmZldGNoRW50aXR5Q29udGFpbmVyKCk7XG5cdFx0bWV0YU1vZGVsQ2FjaGVbc01ldGFkYXRhVXJsXSA9IG9NZXRhTW9kZWw7XG5cdH1cblxuXHRyZXR1cm4gbWV0YU1vZGVsQ2FjaGVbc01ldGFkYXRhVXJsXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREYXRhTW9kZWxPYmplY3RQYXRoRm9yUHJvcGVydHkgPSBmdW5jdGlvbihcblx0ZW50aXR5U2V0OiBFbnRpdHlTZXQsXG5cdHByb3BlcnR5PzogUHJvcGVydHkgfCBFbnRpdHlTZXQgfCBBbnlBbm5vdGF0aW9uXG4pOiBEYXRhTW9kZWxPYmplY3RQYXRoIHtcblx0Y29uc3QgdGFyZ2V0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aCA9IHtcblx0XHRzdGFydGluZ0VudGl0eVNldDogZW50aXR5U2V0LFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzOiBbXSxcblx0XHR0YXJnZXRPYmplY3Q6IHByb3BlcnR5LFxuXHRcdHRhcmdldEVudGl0eVNldDogZW50aXR5U2V0LFxuXHRcdHRhcmdldEVudGl0eVR5cGU6IGVudGl0eVNldC5lbnRpdHlUeXBlXG5cdH07XG5cdHRhcmdldFBhdGguY29udGV4dExvY2F0aW9uID0gdGFyZ2V0UGF0aDtcblx0cmV0dXJuIHRhcmdldFBhdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZXZhbHVhdGVCaW5kaW5nID0gZnVuY3Rpb24oYmluZGluZ1N0cmluZzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuXHRjb25zdCBiaW5kaW5nRWxlbWVudCA9IEJpbmRpbmdQYXJzZXIuY29tcGxleFBhcnNlcihiaW5kaW5nU3RyaW5nKTtcblx0cmV0dXJuIGJpbmRpbmdFbGVtZW50LmZvcm1hdHRlci5hcHBseSh1bmRlZmluZWQsIGFyZ3MpO1xufTtcblxuZXhwb3J0IGNvbnN0IGV2YWx1YXRlQmluZGluZ1dpdGhNb2RlbCA9IGZ1bmN0aW9uKGJpbmRpbmdTdHJpbmc6IHN0cmluZyB8IHVuZGVmaW5lZCwgbW9kZWxDb250ZW50OiBhbnkpIHtcblx0Y29uc3QgYmluZGluZ0VsZW1lbnQgPSBCaW5kaW5nUGFyc2VyLmNvbXBsZXhQYXJzZXIoYmluZGluZ1N0cmluZyk7XG5cdGNvbnN0IGpzb25Nb2RlbCA9IG5ldyBKU09OTW9kZWwobW9kZWxDb250ZW50KTtcblx0Y29uc3QgdGV4dCA9IG5ldyBJbnZpc2libGVUZXh0KCk7XG5cdHRleHQuYmluZFByb3BlcnR5KFwidGV4dFwiLCBiaW5kaW5nRWxlbWVudCk7XG5cdHRleHQuc2V0TW9kZWwoanNvbk1vZGVsKTtcblx0dGV4dC5zZXRCaW5kaW5nQ29udGV4dChqc29uTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpKTtcblx0cmV0dXJuIHRleHQuZ2V0VGV4dCgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRlbXBsYXRpbmdSZXN1bHQgPSBhc3luYyBmdW5jdGlvbihcblx0eG1sSW5wdXQ6IHN0cmluZyxcblx0c01ldGFkYXRhVXJsOiBzdHJpbmcsXG5cdG1CaW5kaW5nQ29udGV4dHM6IHsgW3g6IHN0cmluZ106IGFueTsgZW50aXR5U2V0Pzogc3RyaW5nIH0sXG5cdG1Nb2RlbHM6IHsgW3g6IHN0cmluZ106IGFueSB9XG4pIHtcblx0Y29uc3QgdGVtcGxhdGVkWG1sID0gYDxyb290PiR7eG1sSW5wdXR9PC9yb290PmA7XG5cdGNvbnN0IHBhcnNlciA9IG5ldyB3aW5kb3cuRE9NUGFyc2VyKCk7XG5cdGNvbnN0IHhtbERvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcodGVtcGxhdGVkWG1sLCBcInRleHQveG1sXCIpO1xuXHQvLyBUbyBlbnN1cmUgb3VyIG1hY3JvIGNhbiB1c2UgI3NldEJpbmRpbmdDb250ZXh0IHdlIGVuc3VyZSB0aGVyZSBpcyBhIHByZSBleGlzdGluZyBKU09OTW9kZWwgZm9yIGNvbnZlcnRlckNvbnRleHRcblx0Ly8gaWYgbm90IGFscmVhZHkgcGFzc2VkIHRvIHRlaCB0ZW1wbGF0aW5nXG5cblx0Y29uc3Qgb01ldGFNb2RlbCA9IGF3YWl0IGdldE1ldGFNb2RlbChzTWV0YWRhdGFVcmwpO1xuXHRpZiAoIW1Nb2RlbHMuaGFzT3duUHJvcGVydHkoXCJjb252ZXJ0ZXJDb250ZXh0XCIpKSB7XG5cdFx0bU1vZGVscyA9IE9iamVjdC5hc3NpZ24obU1vZGVscywgeyBcImNvbnZlcnRlckNvbnRleHRcIjogbmV3IFRlbXBsYXRlTW9kZWwoe30sIG9NZXRhTW9kZWwpIH0pO1xuXHR9XG5cblx0T2JqZWN0LmtleXMobU1vZGVscykuZm9yRWFjaChmdW5jdGlvbihzTW9kZWxOYW1lKSB7XG5cdFx0aWYgKG1Nb2RlbHNbc01vZGVsTmFtZV0gJiYgbU1vZGVsc1tzTW9kZWxOYW1lXS5pc1RlbXBsYXRlTW9kZWwpIHtcblx0XHRcdG1Nb2RlbHNbc01vZGVsTmFtZV0gPSBuZXcgVGVtcGxhdGVNb2RlbChtTW9kZWxzW3NNb2RlbE5hbWVdLmRhdGEsIG9NZXRhTW9kZWwpO1xuXHRcdH1cblx0fSk7XG5cblx0Y29uc3Qgb1ByZXByb2Nlc3NvclNldHRpbmdzOiBhbnkgPSB7XG5cdFx0bW9kZWxzOiBPYmplY3QuYXNzaWduKFxuXHRcdFx0e1xuXHRcdFx0XHRtZXRhTW9kZWw6IG9NZXRhTW9kZWxcblx0XHRcdH0sXG5cdFx0XHRtTW9kZWxzXG5cdFx0KSxcblx0XHRiaW5kaW5nQ29udGV4dHM6IHt9XG5cdH07XG5cblx0Ly9JbmplY3QgbW9kZWxzIGFuZCBiaW5kaW5nQ29udGV4dHNcblx0T2JqZWN0LmtleXMobUJpbmRpbmdDb250ZXh0cykuZm9yRWFjaChmdW5jdGlvbihzS2V5KSB7XG5cdFx0LyogQXNzZXJ0IHRvIG1ha2Ugc3VyZSB0aGUgYW5ub3RhdGlvbnMgYXJlIGluIHRoZSB0ZXN0IG1ldGFkYXRhIC0+IGF2b2lkIG1pc2xlYWRpbmcgdGVzdHMgKi9cblx0XHRleHBlY3QodHlwZW9mIG9NZXRhTW9kZWwuZ2V0T2JqZWN0KG1CaW5kaW5nQ29udGV4dHNbc0tleV0pKS50b0JlRGVmaW5lZCgpO1xuXHRcdGNvbnN0IG9Nb2RlbCA9IG1Nb2RlbHNbc0tleV0gfHwgb01ldGFNb2RlbDtcblx0XHRvUHJlcHJvY2Vzc29yU2V0dGluZ3MuYmluZGluZ0NvbnRleHRzW3NLZXldID0gb01vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KG1CaW5kaW5nQ29udGV4dHNbc0tleV0pOyAvL1ZhbHVlIGlzIHNQYXRoXG5cdFx0b1ByZXByb2Nlc3NvclNldHRpbmdzLm1vZGVsc1tzS2V5XSA9IG9Nb2RlbDtcblx0fSk7XG5cblx0Ly9UaGlzIGNvbnRleHQgZm9yIG1hY3JvIHRlc3Rpbmdcblx0aWYgKG9QcmVwcm9jZXNzb3JTZXR0aW5ncy5tb2RlbHNbXCJ0aGlzXCJdKSB7XG5cdFx0b1ByZXByb2Nlc3NvclNldHRpbmdzLmJpbmRpbmdDb250ZXh0c1tcInRoaXNcIl0gPSBvUHJlcHJvY2Vzc29yU2V0dGluZ3MubW9kZWxzW1widGhpc1wiXS5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIik7XG5cdH1cblxuXHRyZXR1cm4gWE1MUHJlcHJvY2Vzc29yLnByb2Nlc3MoeG1sRG9jLmZpcnN0RWxlbWVudENoaWxkISwgeyBuYW1lOiBcIlRlc3QgRnJhZ21lbnRcIiB9LCBvUHJlcHJvY2Vzc29yU2V0dGluZ3MpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRlbXBsYXRlZFhNTCA9IGFzeW5jIGZ1bmN0aW9uKFxuXHR4bWxJbnB1dDogc3RyaW5nLFxuXHRzTWV0YWRhdGFVcmw6IHN0cmluZyxcblx0bUJpbmRpbmdDb250ZXh0czogeyBbeDogc3RyaW5nXTogYW55OyBlbnRpdHlTZXQ/OiBzdHJpbmcgfSxcblx0bU1vZGVsczogeyBbeDogc3RyaW5nXTogYW55IH1cbikge1xuXHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0aW5nUmVzdWx0KHhtbElucHV0LCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIG1Nb2RlbHMpO1xuXHRyZXR1cm4gc2VyaWFsaXplWE1MKHRlbXBsYXRlZFhNTCk7XG59O1xuXG4vKipcbiAqIFByb2Nlc3MgdGhlIHJlcXVlc3RlZCBYTUwgZnJhZ21lbnQgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBGdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgZnJhZ21lbnQgdG8gYmUgdGVzdGVkLlxuICogQHBhcmFtIHtvYmplY3R9IHRlc3REYXRhIFRlc3QgZGF0YSBjb25zaXN0aW5nXG4gKiBAcmV0dXJucyBUZW1wYWx0ZWQgZnJhZ21lbnQgYXMgc3RyaW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9jZXNzRnJhZ21lbnQobmFtZTogc3RyaW5nLCB0ZXN0RGF0YTogeyBbbW9kZWw6IHN0cmluZ106IG9iamVjdCB9KTogUHJvbWlzZTxzdHJpbmc+IHtcblx0Y29uc3QgaW5wdXRYbWwgPSBgPHJvb3Q+PGNvcmU6RnJhZ21lbnQgZnJhZ21lbnROYW1lPVwiJHtuYW1lfVwiIHR5cGU9XCJYTUxcIiB4bWxuczpjb3JlPVwic2FwLnVpLmNvcmVcIiAvPjwvcm9vdD5gO1xuXHRjb25zdCBwYXJzZXIgPSBuZXcgd2luZG93LkRPTVBhcnNlcigpO1xuXHRjb25zdCBpbnB1dERvYyA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoaW5wdXRYbWwsIFwidGV4dC94bWxcIik7XG5cblx0Ly8gYnVpbGQgbW9kZWwgYW5kIGJpbmRpbmdzIGZvciBnaXZlbiB0ZXN0IGRhdGFcblx0Y29uc3Qgc2V0dGluZ3MgPSB7XG5cdFx0bW9kZWxzOiB7fSBhcyB7IFtuYW1lOiBzdHJpbmddOiBKU09OTW9kZWw8b2JqZWN0PiB9LFxuXHRcdGJpbmRpbmdDb250ZXh0czoge30gYXMgeyBbbmFtZTogc3RyaW5nXTogb2JqZWN0IH1cblx0fTtcblx0Zm9yIChjb25zdCBtb2RlbCBpbiB0ZXN0RGF0YSkge1xuXHRcdGNvbnN0IGpzb25Nb2RlbCA9IG5ldyBKU09OTW9kZWw8b2JqZWN0PigpO1xuXHRcdGpzb25Nb2RlbC5zZXREYXRhKHRlc3REYXRhW21vZGVsXSk7XG5cdFx0c2V0dGluZ3MubW9kZWxzW21vZGVsXSA9IGpzb25Nb2RlbDtcblx0XHRzZXR0aW5ncy5iaW5kaW5nQ29udGV4dHNbbW9kZWxdID0gc2V0dGluZ3MubW9kZWxzW21vZGVsXS5jcmVhdGVCaW5kaW5nQ29udGV4dChcIi9cIik7XG5cdH1cblxuXHQvLyBleGVjdXRlIHRoZSBwcmUtcHJvY2Vzc29yXG5cdGNvbnN0IHJlc3VsdERvYyA9IGF3YWl0IFhNTFByZXByb2Nlc3Nvci5wcm9jZXNzKGlucHV0RG9jLmZpcnN0RWxlbWVudENoaWxkLCB7IG5hbWUgfSwgc2V0dGluZ3MpO1xuXG5cdC8vIGV4Y2x1ZGUgbmVzdGVkIGZyYWdtZW50cyBmcm9tIHRlc3Qgc25hcHNob3RzXG5cdGNvbnN0IGZyYWdtZW50cyA9IHJlc3VsdERvYy5nZXRFbGVtZW50c0J5VGFnTmFtZShcImNvcmU6RnJhZ21lbnRcIik7XG5cdGlmIChmcmFnbWVudHM/Lmxlbmd0aCA+IDApIHtcblx0XHRmb3IgKGNvbnN0IGZyYWdtZW50IG9mIGZyYWdtZW50cykge1xuXHRcdFx0ZnJhZ21lbnQuaW5uZXJIVE1MID0gXCJcIjtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZm9ybWF0WG1sKHJlc3VsdERvYy5pbm5lckhUTUwsIHtcblx0XHRmaWx0ZXI6IChub2RlOiBhbnkpID0+IG5vZGUudHlwZSAhPT0gXCJDb21tZW50XCJcblx0fSk7XG59XG4iXX0=
@@ -2,4 +2,4 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/macros/PhantomUtil","sap/ui/model/odata/v4/lib/_MetadataRequestor","sap/ui/model/odata/v4/ODataMetaModel","sap/ui/core/util/XMLPreprocessor","sap/base/Log","xpath","fs","@sap/cds-compiler","prettier","sap/ui/base/BindingParser","sap/ui/model/json/JSONModel","sap/ui/core/InvisibleText","sap/base/util/merge","path","sap/fe/core/converters/ConverterContext","sap/fe/core/services/SideEffectsServiceFactory"],function(P,_,O,X,L,x,f,c,p,B,J,I,m,a,C,S){"use strict";var b={};var d=p.format;var t=c.to;var g=c.compileSources;L.setLevel(1,"sap.ui.core.util.XMLPreprocessor");jest.setTimeout(40000);var n={"macros":"sap.fe.macros","macro":"sap.fe.macros","macrodata":"http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1","log":"http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1","unittest":"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1","control":"sap.fe.core.controls","core":"sap.ui.core","m":"sap.m","f":"sap.ui.layout.form","mdc":"sap.ui.mdc","mdcField":"sap.ui.mdc.field","u":"sap.ui.unified","macroMicroChart":"sap.fe.macros.microchart","microChart":"sap.suite.ui.microchart"};var s=x.useNamespaces(n);var r=function(e){P.register(e);};b.registerMacro=r;var u=function(e){X.plugIn(null,e.namespace,e.name);if(e.publicName){X.plugIn(null,e.publicNamespace,e.publicName);}};b.unregisterMacro=u;var h=function(e,F){return s(e,F);};expect.extend({toHaveControl:function(e,F){var G=h("/root".concat(F),e);return{message:function(){var H=j(e);return"did not find controls matching ".concat(F," in generated xml:\n ").concat(H);},pass:G&&G.length>=1};},toNotHaveControl:function(e,F){var G=h("/root".concat(F),e);return{message:function(){var H=j(e);return"There is a control matching ".concat(F," in generated xml:\n ").concat(H);},pass:G&&G.length===0};}});b.runXPathQuery=h;var i=function(e,F,G){var H="string(/root".concat(e,"/@").concat(F,")");return h(H,G);};b.getControlAttribute=i;var j=function(e){var F=new window.XMLSerializer();var G=F.serializeToString(e).replace(/(?:[\t ]*(?:\r?\n|\r))+/g,"\n").replace(/\\"/g,'"');return d(G,{parser:"html"});};b.serializeXML=j;var k=function(e){var F=f.readFileSync(e,"utf-8");var G=g({"string.cds":F},{});var H=t.edmx(G,{service:"sap.fe.test.JestService"});var K=a.resolve(e,"..","gen");var M=a.resolve(K,a.basename(e).replace(".cds",".xml"));if(!f.existsSync(K)){f.mkdirSync(K);}f.writeFileSync(M,H);return M;};b.compileCDS=k;var l=function(M){try{var F={scopeObject:{},scopeType:"",settings:{}};return Promise.resolve(new S().createInstance(F).then(function(G){var H=G.getInterface();H.getContext=function(){return{scopeObject:{getModel:function(){return{getMetaModel:function(){return M;}};}}};};return H;}));}catch(e){return Promise.reject(e);}};b.getFakeSideEffectsService=l;var o=function(){var e=[];return{addIssue:function(F,G,H){e.push({issueCategory:F,issueSeverity:G,details:H});},getIssues:function(){return e;},checkIfIssueExists:function(F,G,H){return e.find(function(K){K.issueCategory===F&&K.issueSeverity===G&&K.details===H;});}};};b.getFakeDiagnostics=o;var q=function(e,F){var G=e.entitySets.find(function(K){return K.name===F.entitySet;});var H=y(G,G);return new C(e,F,o(),m,H);};b.getConverterContextForTest=q;var v={};var w=function(M){try{function F(){return v[M];};var R=_.create({},"4.0",{});var G=function(){if(!v[M]){var H=new O(R,M,undefined,null);return Promise.resolve(H.fetchEntityContainer()).then(function(){v[M]=H;});}}();return Promise.resolve(G&&G.then?G.then(F):F(G));}catch(e){return Promise.reject(e);}};b.getMetaModel=w;var y=function(e,F){var G={startingEntitySet:e,navigationProperties:[],targetObject:F,targetEntitySet:e,targetEntityType:e.entityType};G.contextLocation=G;return G;};b.getDataModelObjectPathForProperty=y;var z=function(e){var F=B.complexParser(e);for(var G=arguments.length,H=new Array(G>1?G-1:0),K=1;K<G;K++){H[K-1]=arguments[K];}return F.formatter.apply(undefined,H);};b.evaluateBinding=z;var A=function(e,F){var G=B.complexParser(e);var H=new J(F);var K=new I();K.bindProperty("text",G);K.setModel(H);K.setBindingContext(H.createBindingContext("/"));return K.getText();};b.evaluateBindingWithModel=A;var D=function(F,M,G,H){try{var K="<root>".concat(F,"</root>");var N=new window.DOMParser();var Q=N.parseFromString(K,"text/xml");if(!H.hasOwnProperty("converterContext")){H=Object.assign(H,{"converterContext":new J({})});}return Promise.resolve(w(M)).then(function(R){var T={models:Object.assign({metaModel:R},H),bindingContexts:{}};Object.keys(G).forEach(function(U){expect(typeof R.getObject(G[U])).toBeDefined();var V=H[U]||R;T.bindingContexts[U]=V.createBindingContext(G[U]);T.models[U]=V;});if(T.models["this"]){T.bindingContexts["this"]=T.models["this"].createBindingContext("/");}return X.process(Q.firstElementChild,{name:"Test Fragment"},T);});}catch(e){return Promise.reject(e);}};b.getTemplatingResult=D;var E=function(F,M,G,H){try{return Promise.resolve(D(F,M,G,H)).then(j);}catch(e){return Promise.reject(e);}};b.getTemplatedXML=E;return b;},false);
5
+ sap.ui.define(["sap/fe/macros/PhantomUtil","sap/ui/model/odata/v4/lib/_MetadataRequestor","sap/ui/model/odata/v4/ODataMetaModel","sap/ui/core/util/XMLPreprocessor","sap/base/Log","xpath","fs","@sap/cds-compiler","prettier","sap/ui/base/BindingParser","sap/ui/model/json/JSONModel","sap/ui/core/InvisibleText","sap/base/util/merge","path","sap/fe/core/converters/ConverterContext","sap/fe/core/services/SideEffectsServiceFactory","sap/fe/core/TemplateModel"],function(P,_,O,X,L,x,f,c,p,B,J,I,m,a,C,S,T){"use strict";var b={};var d=p.format;var t=c.to;var g=c.compileSources;function h(o,n){var V=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!V){if(Array.isArray(o)||(V=j(o))||n&&o&&typeof o.length==="number"){if(V)o=V;var i=0;var F=function(){};return{s:F,n:function(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function(e){throw e;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var W=true,Y=false,Z;return{s:function(){V=V.call(o);},n:function(){var e=V.next();W=e.done;return e;},e:function(e){Y=true;Z=e;},f:function(){try{if(!W&&V.return!=null)V.return();}finally{if(Y)throw Z;}}};}function j(o,e){if(!o)return;if(typeof o==="string")return k(o,e);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return k(o,e);}function k(e,n){if(n==null||n>e.length)n=e.length;for(var i=0,o=new Array(n);i<n;i++){o[i]=e[i];}return o;}var l=function(n,i){try{var o="<root><core:Fragment fragmentName=\"".concat(n,"\" type=\"XML\" xmlns:core=\"sap.ui.core\" /></root>");var F=new window.DOMParser();var V=F.parseFromString(o,"text/xml");var W={models:{},bindingContexts:{}};for(var Y in i){var Z=new J();Z.setData(i[Y]);W.models[Y]=Z;W.bindingContexts[Y]=W.models[Y].createBindingContext("/");}return Promise.resolve(X.process(V.firstElementChild,{name:n},W)).then(function($){var a1=$.getElementsByTagName("core:Fragment");if((a1===null||a1===void 0?void 0:a1.length)>0){var b1=h(a1),c1;try{for(b1.s();!(c1=b1.n()).done;){var d1=c1.value;d1.innerHTML="";}}catch(e1){b1.e(e1);}finally{b1.f();}}return q($.innerHTML,{filter:function(f1){return f1.type!=="Comment";}});});}catch(e){return Promise.reject(e);}};b.processFragment=l;var q=require("xml-formatter");L.setLevel(1,"sap.ui.core.util.XMLPreprocessor");jest.setTimeout(40000);var r={"macros":"sap.fe.macros","macro":"sap.fe.macros","macrodata":"http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1","log":"http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1","unittest":"http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1","control":"sap.fe.core.controls","core":"sap.ui.core","m":"sap.m","f":"sap.ui.layout.form","mdc":"sap.ui.mdc","mdcField":"sap.ui.mdc.field","u":"sap.ui.unified","macroMicroChart":"sap.fe.macros.microchart","microChart":"sap.suite.ui.microchart"};var s=x.useNamespaces(r);var u=function(e){P.register(e);};b.registerMacro=u;var v=function(e){X.plugIn(null,e.namespace,e.name);if(e.publicName){X.plugIn(null,e.publicNamespace,e.publicName);}};b.unregisterMacro=v;var w=function(e,i){return s(e,i);};expect.extend({toHaveControl:function(e,i){var n=w("/root".concat(i),e);return{message:function(){var o=z(e);return"did not find controls matching ".concat(i," in generated xml:\n ").concat(o);},pass:n&&n.length>=1};},toNotHaveControl:function(e,i){var n=w("/root".concat(i),e);return{message:function(){var o=z(e);return"There is a control matching ".concat(i," in generated xml:\n ").concat(o);},pass:n&&n.length===0};}});b.runXPathQuery=w;var y=function(e,i,n){var o="string(/root".concat(e,"/@").concat(i,")");return w(o,n);};b.getControlAttribute=y;var z=function(e){var i=new window.XMLSerializer();var n=i.serializeToString(e).replace(/(?:[\t ]*(?:\r?\n|\r))+/g,"\n").replace(/\\"/g,'"');return d(n,{parser:"html"});};b.serializeXML=z;var A=function(e){var i=f.readFileSync(e,"utf-8");var n=g({"string.cds":i},{});var o=t.edmx(n,{service:"sap.fe.test.JestService"});var F=a.resolve(e,"..","gen");var V=a.resolve(F,a.basename(e).replace(".cds",".xml"));if(!f.existsSync(F)){f.mkdirSync(F);}f.writeFileSync(V,o);return V;};b.compileCDS=A;var D=function(o){try{var i={scopeObject:{},scopeType:"",settings:{}};return Promise.resolve(new S().createInstance(i).then(function(n){var F=n.getInterface();F.getContext=function(){return{scopeObject:{getModel:function(){return{getMetaModel:function(){return o;}};}}};};return F;}));}catch(e){return Promise.reject(e);}};b.getFakeSideEffectsService=D;var E=function(){var i=[];return{addIssue:function(e,n,o){i.push({issueCategory:e,issueSeverity:n,details:o});},getIssues:function(){return i;},checkIfIssueExists:function(e,n,o){return i.find(function(F){F.issueCategory===e&&F.issueSeverity===n&&F.details===o;});}};};b.getFakeDiagnostics=E;var G=function(e,i){var n=e.entitySets.find(function(F){return F.name===i.entitySet;});var o=M(n,n);return new C(e,i,E(),m,o);};b.getConverterContextForTest=G;var H={};var K=function(i){try{function n(){return H[i];};var o=_.create({},"4.0",{});var F=function(){if(!H[i]){var V=new O(o,i,undefined,null);return Promise.resolve(V.fetchEntityContainer()).then(function(){H[i]=V;});}}();return Promise.resolve(F&&F.then?F.then(n):n(F));}catch(e){return Promise.reject(e);}};b.getMetaModel=K;var M=function(e,i){var n={startingEntitySet:e,navigationProperties:[],targetObject:i,targetEntitySet:e,targetEntityType:e.entityType};n.contextLocation=n;return n;};b.getDataModelObjectPathForProperty=M;var N=function(e){var i=B.complexParser(e);for(var n=arguments.length,o=new Array(n>1?n-1:0),F=1;F<n;F++){o[F-1]=arguments[F];}return i.formatter.apply(undefined,o);};b.evaluateBinding=N;var Q=function(e,i){var n=B.complexParser(e);var o=new J(i);var F=new I();F.bindProperty("text",n);F.setModel(o);F.setBindingContext(o.createBindingContext("/"));return F.getText();};b.evaluateBindingWithModel=Q;var R=function(i,n,o,F){try{var V="<root>".concat(i,"</root>");var W=new window.DOMParser();var Y=W.parseFromString(V,"text/xml");return Promise.resolve(K(n)).then(function(Z){if(!F.hasOwnProperty("converterContext")){F=Object.assign(F,{"converterContext":new T({},Z)});}Object.keys(F).forEach(function(a1){if(F[a1]&&F[a1].isTemplateModel){F[a1]=new T(F[a1].data,Z);}});var $={models:Object.assign({metaModel:Z},F),bindingContexts:{}};Object.keys(o).forEach(function(a1){expect(typeof Z.getObject(o[a1])).toBeDefined();var b1=F[a1]||Z;$.bindingContexts[a1]=b1.createBindingContext(o[a1]);$.models[a1]=b1;});if($.models["this"]){$.bindingContexts["this"]=$.models["this"].createBindingContext("/");}return X.process(Y.firstElementChild,{name:"Test Fragment"},$);});}catch(e){return Promise.reject(e);}};b.getTemplatingResult=R;var U=function(i,n,o,F){try{return Promise.resolve(R(i,n,o,F)).then(z);}catch(e){return Promise.reject(e);}};b.getTemplatedXML=U;return b;},false);