@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
@@ -33,6 +33,7 @@ sap.ui.define(["sap/fe/test/JestTemplatingHelper", "sap/fe/macros/internal/DataP
33
33
  dataPointCV: "/Items/$Type/@com.sap.vocabularies.UI.v1.DataPoint#criticalityValue",
34
34
  dataPointP: "/Items/$Type/@com.sap.vocabularies.UI.v1.DataPoint#percent",
35
35
  dataPointUnit: "/Items/$Type/@com.sap.vocabularies.UI.v1.DataPoint#unit",
36
+ dataPointDateTimeOffset: "/Items/$Type/@com.sap.vocabularies.UI.v1.DataPoint#DateTimeOffset",
36
37
  dataPointONwC_NavPInFacetTarget: "/Items/$Type/@com.sap.vocabularies.UI.v1.HeaderFacets/0/Target/$AnnotationPath",
37
38
  dataPointON_NavPInFacetTarget: "/Items/$Type/@com.sap.vocabularies.UI.v1.HeaderFacets/1/Target/$AnnotationPath",
38
39
  dataPointR_NavPInFacetTarget: "/Items/$Type/@com.sap.vocabularies.UI.v1.HeaderFacets/2/Target/$AnnotationPath",
@@ -298,6 +299,16 @@ sap.ui.define(["sap/fe/test/JestTemplatingHelper", "sap/fe/macros/internal/DataP
298
299
  return Promise.reject(e);
299
300
  }
300
301
  });
302
+ it("Header: DataPoint macro with ObjectNumber ( type DateTimeOffset )", function () {
303
+ try {
304
+ var xmlField = "<internalMacro:DataPoint xmlns:internalMacro=\"sap.fe.macros.internal\"\n metaPath=\"{dataPointDateTimeOffset>}\"\n\t\t\t\t\t\t\t\tcontextPath=\"{entitySet>}\">\n\t\t\t\t\t\t\t\t<internalMacro:formatOptions\n\t\t\t\t\t\t\t\t\tdefaultDataPointStyle=\"ObjectNumber\" />\n\t\t\t\t\t\t\t</internalMacro:DataPoint>";
305
+ return Promise.resolve(getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
306
+ expect(templatedXML).toMatchSnapshot();
307
+ });
308
+ } catch (e) {
309
+ return Promise.reject(e);
310
+ }
311
+ });
301
312
  });
302
313
  }, false);
303
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFwb2ludE1hY3JvLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJiZWZvcmVBbGwiLCJyZWdpc3Rlck1hY3JvIiwiRGF0YVBvaW50TWV0YWRhdGEiLCJhZnRlckFsbCIsInVucmVnaXN0ZXJNYWNybyIsInNNZXRhZGF0YVVybCIsImNvbXBpbGVDRFMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsIm1CaW5kaW5nQ29udGV4dHMiLCJkYXRhUG9pbnRWRiIsImRhdGFQb2ludFBJIiwiZGF0YVBvaW50UElVIiwiZGF0YVBvaW50UElQVSIsImRhdGFQb2ludFIiLCJkYXRhUG9pbnRSc3MiLCJkYXRhUG9pbnRSRCIsImRhdGFQb2ludE4iLCJkYXRhUG9pbnREUyIsImRhdGFQb2ludFNWVCIsImRhdGFQb2ludENQIiwiZGF0YVBvaW50Q1YiLCJkYXRhUG9pbnRQIiwiZGF0YVBvaW50VW5pdCIsImRhdGFQb2ludE9Od0NfTmF2UEluRmFjZXRUYXJnZXQiLCJkYXRhUG9pbnRPTl9OYXZQSW5GYWNldFRhcmdldCIsImRhdGFQb2ludFJfTmF2UEluRmFjZXRUYXJnZXQiLCJkYXRhUG9pbnRQSV9OYXZQSW5GYWNldFRhcmdldCIsImRhdGFQb2ludE9OX05hdlBpblRhcmdldCIsImVudGl0eVNldCIsIml0IiwieG1sRmllbGQiLCJnZXRUZW1wbGF0ZWRYTUwiLCJ0ZW1wbGF0ZWRYTUwiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7OztBQUdBQSxFQUFBQSxRQUFRLENBQUMsdUJBQUQsRUFBMEIsWUFBTTtBQUN2Q0MsSUFBQUEsU0FBUyxDQUFDLFlBQU07QUFDZkMsTUFBQUEsYUFBYSxDQUFDQyxpQkFBRCxDQUFiO0FBQ0EsS0FGUSxDQUFUO0FBR0FDLElBQUFBLFFBQVEsQ0FBQyxZQUFNO0FBQ2RDLE1BQUFBLGVBQWUsQ0FBQ0YsaUJBQUQsQ0FBZjtBQUNBLEtBRk8sQ0FBUjtBQUdBLFFB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QSxNQUFNLENBQUNELFlBQUQsQ0FBTixDQUFxQkUsZUFBckI7QUFUeUY7QUFVekYsT0FWQztBQUFBO0FBQUE7QUFBQSxNQUFGO0FBV0FMLElBQUFBLEVBQUUsQ0FBQyx5RUFBRDtBQUFBLFVBQXdGO0FBQ3pGLFlBQU1DLFFBQVEsK1VBQWQ7QUFEeUYsK0JBTzlEQyxlQUFlLENBQUNELFFBQUQsRUFBVzNCLFlBQVgsRUFBeUJLLGdCQUF6QixFQUEyQyxFQUEzQyxDQVArQyxpQkFPbkZ3QixZQVBtRjtBQVF6RkMsVUFBQUEsTUFBTSxDQUFDRCxZQUFELENBQU4sQ0FBcUJFLGVBQXJCO0FBUnlGO0FBU3pGLE9BVEM7QUFBQTtBQUFBO0FBQUEsTUFBRjtBQVVBLEdBblJPLENBQVIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBpbGVDRFMsIGdldFRlbXBsYXRlZFhNTCwgcmVnaXN0ZXJNYWNybywgdW5yZWdpc3Rlck1hY3JvIH0gZnJvbSBcInNhcC9mZS90ZXN0L0plc3RUZW1wbGF0aW5nSGVscGVyXCI7XG5pbXBvcnQgRGF0YVBvaW50TWV0YWRhdGEgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvRGF0YVBvaW50Lm1ldGFkYXRhXCI7XG5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuZGVzY3JpYmUoXCJEYXRhUG9pbnQgbWFjcm8gdGVzdHNcIiwgKCkgPT4ge1xuXHRiZWZvcmVBbGwoKCkgPT4ge1xuXHRcdHJlZ2lzdGVyTWFjcm8oRGF0YVBvaW50TWV0YWRhdGEpO1xuXHR9KTtcblx0YWZ0ZXJBbGwoKCkgPT4ge1xuXHRcdHVucmVnaXN0ZXJNYWNybyhEYXRhUG9pbnRNZXRhZGF0YSk7XG5cdH0pO1xuXHRjb25zdCBzTWV0YWRhdGFVcmwgPSBjb21waWxlQ0RTKHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi9kYXRhL0ZpZWxkTWFjcm9EYXRhRmllbGRUeXBlcy5jZHNcIikpO1xuXHRjb25zdCBtQmluZGluZ0NvbnRleHRzID0ge1xuXHRcdGRhdGFQb2ludFZGOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I3dpdGhWYWx1ZUZvcm1hdFwiLFxuXHRcdGRhdGFQb2ludFBJOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1Byb2dyZXNzXCIsXG5cdFx0ZGF0YVBvaW50UElVOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1Byb2dyZXNzV2l0aFVuaXRcIixcblx0XHRkYXRhUG9pbnRQSVBVOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1Byb2dyZXNzV2l0aFBlcmNlbnRhZ2VVbml0XCIsXG5cdFx0ZGF0YVBvaW50UjogXCIvSXRlbXMvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNSYXRpbmdcIixcblx0XHRkYXRhUG9pbnRSc3M6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnQjUmF0aW5nU2FtcGxlU2l6ZVwiLFxuXHRcdGRhdGFQb2ludFJEOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1JhdGluZ0R5bmFtaWNcIixcblx0XHRkYXRhUG9pbnROOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I251bWJlclwiLFxuXHRcdGRhdGFQb2ludERTOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I2Rlc2NyaXB0aW9uYW5kc3RyaW5nXCIsXG5cdFx0ZGF0YVBvaW50U1ZUOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1N0YXRpY3ZhbHVldGFyZ2V0XCIsXG5cdFx0ZGF0YVBvaW50Q1A6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnQjY3JpdGljYWxpdHlQcm9wZXJ0eVwiLFxuXHRcdGRhdGFQb2ludENWOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I2NyaXRpY2FsaXR5VmFsdWVcIixcblx0XHRkYXRhUG9pbnRQOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I3BlcmNlbnRcIixcblx0XHRkYXRhUG9pbnRVbml0OiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I3VuaXRcIixcblx0XHRkYXRhUG9pbnRPTndDX05hdlBJbkZhY2V0VGFyZ2V0OiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVyRmFjZXRzLzAvVGFyZ2V0LyRBbm5vdGF0aW9uUGF0aFwiLFxuXHRcdGRhdGFQb2ludE9OX05hdlBJbkZhY2V0VGFyZ2V0OiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVyRmFjZXRzLzEvVGFyZ2V0LyRBbm5vdGF0aW9uUGF0aFwiLFxuXHRcdGRhdGFQb2ludFJfTmF2UEluRmFjZXRUYXJnZXQ6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHMvMi9UYXJnZXQvJEFubm90YXRpb25QYXRoXCIsXG5cdFx0ZGF0YVBvaW50UElfTmF2UEluRmFjZXRUYXJnZXQ6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHMvMy9UYXJnZXQvJEFubm90YXRpb25QYXRoXCIsXG5cdFx0ZGF0YVBvaW50T05fTmF2UGluVGFyZ2V0OiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSGVhZGVyRmFjZXRzLzQvVGFyZ2V0LyRBbm5vdGF0aW9uUGF0aFwiLFxuXHRcdGVudGl0eVNldDogXCIvSXRlbXNcIlxuXHR9O1xuXG5cdC8qKlxuXHQgKiBUZXN0IGZvciB0aGUgRGF0YVBvaW50IGZyYWdtZW50IGFzIGEgbWFjcm9cblx0ICovXG5cblx0aXQoXCJEYXRhcG9pbnQgd2l0aCB2YWx1ZSBmb3JtYXQsIGRlZmF1bHREYXRhUG9pbnRTdHlsZVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50VkY+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIi8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFJhdGluZ0luZGljYXRvclwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50Uj59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiIC8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCB3aXRoIE5hdiBQcm9wIGluIGl0cyB0YXJnZXRcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludE9OX05hdlBpblRhcmdldD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHREYXRhUG9pbnRTdHlsZT1cIk9iamVjdE51bWJlclwiIC8+XG5cdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFByb2dyZXNzSW5kaWNhdG9yXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRQST59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiIC8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFByb2dyZXNzSW5kaWNhdG9yV2l0aFVuaXRcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludFBJVT59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiIC8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFByb2dyZXNzSW5kaWNhdG9yV2l0aFBlcmNlbnRhZ2VVbml0XCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRQSVBVPn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCIgLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggTnVtYmVyLCBkZWZhdWx0RGF0YVBvaW50U3R5bGVcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludE4+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIiAvPmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJEYXRhUG9pbnQgZnJvbSBhIEhlYWRlciBGYWNldCByZWFjaGVkIHZpYSBhIG5hdmlnYXRpb24gcHJvcGVydHksIGZvcm1hdE9wdGlvbnMgZGVmYXVsdERhdGFQb2ludFN0eWxlPU9iamVjdE51bWJlciAod2l0aCBjdXJyZW5jeSlcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludE9Od0NfTmF2UEluRmFjZXRUYXJnZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0RGF0YVBvaW50U3R5bGU9XCJPYmplY3ROdW1iZXJcIiAvPlxuXHRcdFx0XHRcdFx0XHQ8L2ludGVybmFsTWFjcm86RGF0YVBvaW50PmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJEYXRhUG9pbnQgZnJvbSBhIEhlYWRlciBGYWNldCByZWFjaGVkIHZpYSBhIG5hdmlnYXRpb24gcHJvcGVydHksIGZvcm1hdE9wdGlvbnMgZGVmYXVsdERhdGFQb2ludFN0eWxlPU9iamVjdE51bWJlclwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50T05fTmF2UEluRmFjZXRUYXJnZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0RGF0YVBvaW50U3R5bGU9XCJPYmplY3ROdW1iZXJcIiAvPlxuXHRcdFx0XHRcdFx0XHQ8L2ludGVybmFsTWFjcm86RGF0YVBvaW50PmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJEYXRhUG9pbnQgbWFjcm8gd2l0aCBSYXRpbmdJbmRpY2F0b3IgZnJvbSBhIEhlYWRlciBGYWNldCByZWFjaGVkIHZpYSBhIG5hdmlnYXRpb24gcHJvcGVydHlcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludFJfTmF2UEluRmFjZXRUYXJnZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIiAvPmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJEYXRhUG9pbnQgbWFjcm8gd2l0aCBQcm9ncmVzc0luZGljYXRvciBmcm9tIGEgSGVhZGVyIEZhY2V0IHJlYWNoZWQgdmlhIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50UElfTmF2UEluRmFjZXRUYXJnZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIiAvPmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJEYXRhUG9pbnQgbWFjcm8gd2l0aCBUZXh0IGRlc2NyaXB0aW9uIGFuZCBjcml0aWNhbGl0eSAsIGZvcm1hdE9wdGlvbnMgZGlzcGxheU1vZGU9VmFsdWVEZXNjcmlwdGlvblwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50RFM+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5TW9kZT1cIlZhbHVlRGVzY3JpcHRpb25cIi8+XG5cdFx0XHRcdFx0XHRcdFx0PC9pbnRlcm5hbE1hY3JvOkRhdGFQb2ludD5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggVGV4dCBkZXNjcmlwdGlvbiAsIHN0YXRpYyB2YWx1ZSAmIHRhcmdldCwgZm9ybWF0T3B0aW9ucyBkaXNwbGF5TW9kZT1WYWx1ZURlc2NyaXB0aW9uXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRTVlQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIi8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFRleHQgZGVzY3JpcHRpb24gLCBmb3JtYXRPcHRpb25zIGRpc3BsYXlNb2RlPURlc2NyaXB0aW9uVmFsdWVcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludERTPn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGludGVybmFsTWFjcm86Zm9ybWF0T3B0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGlzcGxheU1vZGU9XCJEZXNjcmlwdGlvblZhbHVlXCIvPlxuXHRcdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFRleHQgZGVzY3JpcHRpb24gLCBVbml0ID0gJVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50UD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIENyaXRpY2FsaXR5IChwYXRoKVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50Q1A+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIi8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIENyaXRpY2FsaXR5IChlbnVtKVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50Q1Y+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIi8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFJhdGluZ0luZGljYXRvciwgd2l0aCBzYW1wbGUgc2l6ZVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdG1ldGFQYXRoPVwie2RhdGFQb2ludFJzcz59XCJcblx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCIgPlxuXHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0c2hvd0xhYmVscz1cInRydWVcIi8+XG5cdFx0XHQ8L2ludGVybmFsTWFjcm86RGF0YVBvaW50PmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0LyoqXG5cdCAqIFRlc3QgZm9yIERhdGFQb2ludCBmcmFnbWVudCBmcm9tIGhlYWRlckNvbnRlbnRcblx0ICovXG5cblx0aXQoXCJIZWFkZXI6IERhdGFQb2ludCBtYWNybyB3aXRoIFJhdGluZ0luZGljYXRvclwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50Uj59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdHNob3dMYWJlbHM9XCJ0cnVlXCIvPlxuXHRcdFx0XHRcdFx0XHQ8L2ludGVybmFsTWFjcm86RGF0YVBvaW50PmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJEYXRhUG9pbnQgbWFjcm8gd2l0aCBSYXRpbmdJbmRpY2F0b3Igd2l0aCBEeW5hbWljIFZhbHVlXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRtZXRhUGF0aD1cIntkYXRhUG9pbnRSRD59XCJcblx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIiA+XG5cdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRzaG93TGFiZWxzPVwidHJ1ZVwiLz5cblx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkhlYWRlcjogRGF0YVBvaW50IG1hY3JvIHdpdGggUHJvZ3Jlc3NJbmRpY2F0b3JcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludFBJPn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGludGVybmFsTWFjcm86Zm9ybWF0T3B0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0c2hvd0xhYmVscz1cInRydWVcIi8+XG5cdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblx0aXQoXCJIZWFkZXI6IERhdGFQb2ludCBtYWNybyB3aXRoIFNhbGVzT3JkZXJUeXBlQmlzXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnROPn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGludGVybmFsTWFjcm86Zm9ybWF0T3B0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVmYXVsdERhdGFQb2ludFN0eWxlPVwiT2JqZWN0TnVtYmVyXCIgLz5cblx0XHRcdFx0XHRcdFx0PC9pbnRlcm5hbE1hY3JvOkRhdGFQb2ludD5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiSGVhZGVyOiBEYXRhUG9pbnQgbWFjcm8gd2l0aCBPYmplY3ROdW1iZXIgKCBtZWFzdXJlRGlzcGxheU1vZGU6IFJlYWRPbmx5KVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50VW5pdD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdG1lYXN1cmVEaXNwbGF5TW9kZT1cIlJlYWRPbmx5XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHREYXRhUG9pbnRTdHlsZT1cIk9iamVjdE51bWJlclwiIC8+XG5cdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblx0aXQoXCJIZWFkZXI6IERhdGFQb2ludCBtYWNybyB3aXRoIE9iamVjdE51bWJlciAoIG1lYXN1cmVEaXNwbGF5TW9kZTogSGlkZGVuKVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50VW5pdD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdG1lYXN1cmVEaXNwbGF5TW9kZT1cIkhpZGRlblwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0RGF0YVBvaW50U3R5bGU9XCJPYmplY3ROdW1iZXJcIiAvPlxuXHRcdFx0XHRcdFx0XHQ8L2ludGVybmFsTWFjcm86RGF0YVBvaW50PmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cdGl0KFwiSGVhZGVyOiBEYXRhUG9pbnQgbWFjcm8gd2l0aCBPYmplY3ROdW1iZXIgKCBtZWFzdXJlRGlzcGxheU1vZGUgbm90IHNldClcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludFVuaXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0RGF0YVBvaW50U3R5bGU9XCJPYmplY3ROdW1iZXJcIiAvPlxuXHRcdFx0XHRcdFx0XHQ8L2ludGVybmFsTWFjcm86RGF0YVBvaW50PmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG59KTtcbiJdfQ==
314
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFwb2ludE1hY3JvLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJiZWZvcmVBbGwiLCJyZWdpc3Rlck1hY3JvIiwiRGF0YVBvaW50TWV0YWRhdGEiLCJhZnRlckFsbCIsInVucmVnaXN0ZXJNYWNybyIsInNNZXRhZGF0YVVybCIsImNvbXBpbGVDRFMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsIm1CaW5kaW5nQ29udGV4dHMiLCJkYXRhUG9pbnRWRiIsImRhdGFQb2ludFBJIiwiZGF0YVBvaW50UElVIiwiZGF0YVBvaW50UElQVSIsImRhdGFQb2ludFIiLCJkYXRhUG9pbnRSc3MiLCJkYXRhUG9pbnRSRCIsImRhdGFQb2ludE4iLCJkYXRhUG9pbnREUyIsImRhdGFQb2ludFNWVCIsImRhdGFQb2ludENQIiwiZGF0YVBvaW50Q1YiLCJkYXRhUG9pbnRQIiwiZGF0YVBvaW50VW5pdCIsImRhdGFQb2ludERhdGVUaW1lT2Zmc2V0IiwiZGF0YVBvaW50T053Q19OYXZQSW5GYWNldFRhcmdldCIsImRhdGFQb2ludE9OX05hdlBJbkZhY2V0VGFyZ2V0IiwiZGF0YVBvaW50Ul9OYXZQSW5GYWNldFRhcmdldCIsImRhdGFQb2ludFBJX05hdlBJbkZhY2V0VGFyZ2V0IiwiZGF0YVBvaW50T05fTmF2UGluVGFyZ2V0IiwiZW50aXR5U2V0IiwiaXQiLCJ4bWxGaWVsZCIsImdldFRlbXBsYXRlZFhNTCIsInRlbXBsYXRlZFhNTCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7O0FBR0FBLEVBQUFBLFFBQVEsQ0FBQyx1QkFBRCxFQUEwQixZQUFNO0FBQ3ZDQyxJQUFBQSxTQUFTLENBQUMsWUFBTTtBQUNmQyxNQUFBQSxhQUFhLENBQUNDLGlCQUFELENBQWI7QUFDQSxLQUZRLENBQVQ7QUFHQUMsSUFBQUEsUUFBUSxDQUFDLFlBQU07QUFDZEMsTUFBQUEsZUFBZSxDQUFDRixpQkFBRCxD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LEVBQXlCSyxnQkFBekIsRUFBMkMsRUFBM0MsQ0FSK0MsaUJBUW5GeUIsWUFSbUY7QUFTekZDLFVBQUFBLE1BQU0sQ0FBQ0QsWUFBRCxDQUFOLENBQXFCRSxlQUFyQjtBQVR5RjtBQVV6RixPQVZDO0FBQUE7QUFBQTtBQUFBLE1BQUY7QUFXQUwsSUFBQUEsRUFBRSxDQUFDLHlFQUFEO0FBQUEsVUFBd0Y7QUFDekYsWUFBTUMsUUFBUSwrVUFBZDtBQUR5RiwrQkFPOURDLGVBQWUsQ0FBQ0QsUUFBRCxFQUFXNUIsWUFBWCxFQUF5QkssZ0JBQXpCLEVBQTJDLEVBQTNDLENBUCtDLGlCQU9uRnlCLFlBUG1GO0FBUXpGQyxVQUFBQSxNQUFNLENBQUNELFlBQUQsQ0FBTixDQUFxQkUsZUFBckI7QUFSeUY7QUFTekYsT0FUQztBQUFBO0FBQUE7QUFBQSxNQUFGO0FBVUFMLElBQUFBLEVBQUUsQ0FBQyxtRUFBRDtBQUFBLFVBQWtGO0FBQ25GLFlBQU1DLFFBQVEseVZBQWQ7QUFEbUYsK0JBT3hEQyxlQUFlLENBQUNELFFBQUQsRUFBVzVCLFlBQVgsRUFBeUJLLGdCQUF6QixFQUEyQyxFQUEzQyxDQVB5QyxpQkFPN0V5QixZQVA2RTtBQVFuRkMsVUFBQUEsTUFBTSxDQUFDRCxZQUFELENBQU4sQ0FBcUJFLGVBQXJCO0FBUm1GO0FBU25GLE9BVEM7QUFBQTtBQUFBO0FBQUEsTUFBRjtBQVVBLEdBOVJPLENBQVIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBpbGVDRFMsIGdldFRlbXBsYXRlZFhNTCwgcmVnaXN0ZXJNYWNybywgdW5yZWdpc3Rlck1hY3JvIH0gZnJvbSBcInNhcC9mZS90ZXN0L0plc3RUZW1wbGF0aW5nSGVscGVyXCI7XG5pbXBvcnQgRGF0YVBvaW50TWV0YWRhdGEgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvRGF0YVBvaW50Lm1ldGFkYXRhXCI7XG5cbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuZGVzY3JpYmUoXCJEYXRhUG9pbnQgbWFjcm8gdGVzdHNcIiwgKCkgPT4ge1xuXHRiZWZvcmVBbGwoKCkgPT4ge1xuXHRcdHJlZ2lzdGVyTWFjcm8oRGF0YVBvaW50TWV0YWRhdGEpO1xuXHR9KTtcblx0YWZ0ZXJBbGwoKCkgPT4ge1xuXHRcdHVucmVnaXN0ZXJNYWNybyhEYXRhUG9pbnRNZXRhZGF0YSk7XG5cdH0pO1xuXHRjb25zdCBzTWV0YWRhdGFVcmwgPSBjb21waWxlQ0RTKHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi9kYXRhL0ZpZWxkTWFjcm9EYXRhRmllbGRUeXBlcy5jZHNcIikpO1xuXHRjb25zdCBtQmluZGluZ0NvbnRleHRzID0ge1xuXHRcdGRhdGFQb2ludFZGOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I3dpdGhWYWx1ZUZvcm1hdFwiLFxuXHRcdGRhdGFQb2ludFBJOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1Byb2dyZXNzXCIsXG5cdFx0ZGF0YVBvaW50UElVOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1Byb2dyZXNzV2l0aFVuaXRcIixcblx0XHRkYXRhUG9pbnRQSVBVOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1Byb2dyZXNzV2l0aFBlcmNlbnRhZ2VVbml0XCIsXG5cdFx0ZGF0YVBvaW50UjogXCIvSXRlbXMvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNSYXRpbmdcIixcblx0XHRkYXRhUG9pbnRSc3M6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnQjUmF0aW5nU2FtcGxlU2l6ZVwiLFxuXHRcdGRhdGFQb2ludFJEOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1JhdGluZ0R5bmFtaWNcIixcblx0XHRkYXRhUG9pbnROOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I251bWJlclwiLFxuXHRcdGRhdGFQb2ludERTOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I2Rlc2NyaXB0aW9uYW5kc3RyaW5nXCIsXG5cdFx0ZGF0YVBvaW50U1ZUOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1N0YXRpY3ZhbHVldGFyZ2V0XCIsXG5cdFx0ZGF0YVBvaW50Q1A6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnQjY3JpdGljYWxpdHlQcm9wZXJ0eVwiLFxuXHRcdGRhdGFQb2ludENWOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I2NyaXRpY2FsaXR5VmFsdWVcIixcblx0XHRkYXRhUG9pbnRQOiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I3BlcmNlbnRcIixcblx0XHRkYXRhUG9pbnRVbml0OiBcIi9JdGVtcy8kVHlwZS9AY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I3VuaXRcIixcblx0XHRkYXRhUG9pbnREYXRlVGltZU9mZnNldDogXCIvSXRlbXMvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNEYXRlVGltZU9mZnNldFwiLFxuXHRcdGRhdGFQb2ludE9Od0NfTmF2UEluRmFjZXRUYXJnZXQ6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHMvMC9UYXJnZXQvJEFubm90YXRpb25QYXRoXCIsXG5cdFx0ZGF0YVBvaW50T05fTmF2UEluRmFjZXRUYXJnZXQ6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHMvMS9UYXJnZXQvJEFubm90YXRpb25QYXRoXCIsXG5cdFx0ZGF0YVBvaW50Ul9OYXZQSW5GYWNldFRhcmdldDogXCIvSXRlbXMvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0cy8yL1RhcmdldC8kQW5ub3RhdGlvblBhdGhcIixcblx0XHRkYXRhUG9pbnRQSV9OYXZQSW5GYWNldFRhcmdldDogXCIvSXRlbXMvJFR5cGUvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0cy8zL1RhcmdldC8kQW5ub3RhdGlvblBhdGhcIixcblx0XHRkYXRhUG9pbnRPTl9OYXZQaW5UYXJnZXQ6IFwiL0l0ZW1zLyRUeXBlL0Bjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5IZWFkZXJGYWNldHMvNC9UYXJnZXQvJEFubm90YXRpb25QYXRoXCIsXG5cdFx0ZW50aXR5U2V0OiBcIi9JdGVtc1wiXG5cdH07XG5cblx0LyoqXG5cdCAqIFRlc3QgZm9yIHRoZSBEYXRhUG9pbnQgZnJhZ21lbnQgYXMgYSBtYWNyb1xuXHQgKi9cblxuXHRpdChcIkRhdGFwb2ludCB3aXRoIHZhbHVlIGZvcm1hdCwgZGVmYXVsdERhdGFQb2ludFN0eWxlXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRWRj59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggUmF0aW5nSW5kaWNhdG9yXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRSPn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCIgLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IHdpdGggTmF2IFByb3AgaW4gaXRzIHRhcmdldFwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50T05fTmF2UGluVGFyZ2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGludGVybmFsTWFjcm86Zm9ybWF0T3B0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0ZGVmYXVsdERhdGFQb2ludFN0eWxlPVwiT2JqZWN0TnVtYmVyXCIgLz5cblx0XHRcdFx0XHRcdFx0PC9pbnRlcm5hbE1hY3JvOkRhdGFQb2ludD5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggUHJvZ3Jlc3NJbmRpY2F0b3JcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludFBJPn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCIgLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggUHJvZ3Jlc3NJbmRpY2F0b3JXaXRoVW5pdFwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50UElVPn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCIgLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggUHJvZ3Jlc3NJbmRpY2F0b3JXaXRoUGVyY2VudGFnZVVuaXRcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludFBJUFU+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIiAvPmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJEYXRhUG9pbnQgbWFjcm8gd2l0aCBOdW1iZXIsIGRlZmF1bHREYXRhUG9pbnRTdHlsZVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50Tj59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiIC8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBmcm9tIGEgSGVhZGVyIEZhY2V0IHJlYWNoZWQgdmlhIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eSwgZm9ybWF0T3B0aW9ucyBkZWZhdWx0RGF0YVBvaW50U3R5bGU9T2JqZWN0TnVtYmVyICh3aXRoIGN1cnJlbmN5KVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50T053Q19OYXZQSW5GYWNldFRhcmdldD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHREYXRhUG9pbnRTdHlsZT1cIk9iamVjdE51bWJlclwiIC8+XG5cdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBmcm9tIGEgSGVhZGVyIEZhY2V0IHJlYWNoZWQgdmlhIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eSwgZm9ybWF0T3B0aW9ucyBkZWZhdWx0RGF0YVBvaW50U3R5bGU9T2JqZWN0TnVtYmVyXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRPTl9OYXZQSW5GYWNldFRhcmdldD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHREYXRhUG9pbnRTdHlsZT1cIk9iamVjdE51bWJlclwiIC8+XG5cdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFJhdGluZ0luZGljYXRvciBmcm9tIGEgSGVhZGVyIEZhY2V0IHJlYWNoZWQgdmlhIGEgbmF2aWdhdGlvbiBwcm9wZXJ0eVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50Ul9OYXZQSW5GYWNldFRhcmdldD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiIC8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFByb2dyZXNzSW5kaWNhdG9yIGZyb20gYSBIZWFkZXIgRmFjZXQgcmVhY2hlZCB2aWEgYSBuYXZpZ2F0aW9uIHByb3BlcnR5XCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRQSV9OYXZQSW5GYWNldFRhcmdldD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiIC8+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFRleHQgZGVzY3JpcHRpb24gYW5kIGNyaXRpY2FsaXR5ICwgZm9ybWF0T3B0aW9ucyBkaXNwbGF5TW9kZT1WYWx1ZURlc2NyaXB0aW9uXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnREUz59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdGRpc3BsYXlNb2RlPVwiVmFsdWVEZXNjcmlwdGlvblwiLz5cblx0XHRcdFx0XHRcdFx0XHQ8L2ludGVybmFsTWFjcm86RGF0YVBvaW50PmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJEYXRhUG9pbnQgbWFjcm8gd2l0aCBUZXh0IGRlc2NyaXB0aW9uICwgc3RhdGljIHZhbHVlICYgdGFyZ2V0LCBmb3JtYXRPcHRpb25zIGRpc3BsYXlNb2RlPVZhbHVlRGVzY3JpcHRpb25cIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludFNWVD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggVGV4dCBkZXNjcmlwdGlvbiAsIGZvcm1hdE9wdGlvbnMgZGlzcGxheU1vZGU9RGVzY3JpcHRpb25WYWx1ZVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50RFM+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRkaXNwbGF5TW9kZT1cIkRlc2NyaXB0aW9uVmFsdWVcIi8+XG5cdFx0XHRcdFx0XHRcdFx0PC9pbnRlcm5hbE1hY3JvOkRhdGFQb2ludD5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggVGV4dCBkZXNjcmlwdGlvbiAsIFVuaXQgPSAlXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRQPn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCIvPmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggQ3JpdGljYWxpdHkgKHBhdGgpXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRDUD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggQ3JpdGljYWxpdHkgKGVudW0pXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRDVj59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiLz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRGF0YVBvaW50IG1hY3JvIHdpdGggUmF0aW5nSW5kaWNhdG9yLCB3aXRoIHNhbXBsZSBzaXplXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0bWV0YVBhdGg9XCJ7ZGF0YVBvaW50UnNzPn1cIlxuXHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIiA+XG5cdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRzaG93TGFiZWxzPVwidHJ1ZVwiLz5cblx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHQvKipcblx0ICogVGVzdCBmb3IgRGF0YVBvaW50IGZyYWdtZW50IGZyb20gaGVhZGVyQ29udGVudFxuXHQgKi9cblxuXHRpdChcIkhlYWRlcjogRGF0YVBvaW50IG1hY3JvIHdpdGggUmF0aW5nSW5kaWNhdG9yXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRSPn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGludGVybmFsTWFjcm86Zm9ybWF0T3B0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0c2hvd0xhYmVscz1cInRydWVcIi8+XG5cdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIkRhdGFQb2ludCBtYWNybyB3aXRoIFJhdGluZ0luZGljYXRvciB3aXRoIER5bmFtaWMgVmFsdWVcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdG1ldGFQYXRoPVwie2RhdGFQb2ludFJEPn1cIlxuXHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiID5cblx0XHRcdFx0PGludGVybmFsTWFjcm86Zm9ybWF0T3B0aW9uc1xuXHRcdFx0XHRcdHNob3dMYWJlbHM9XCJ0cnVlXCIvPlxuXHRcdFx0PC9pbnRlcm5hbE1hY3JvOkRhdGFQb2ludD5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiSGVhZGVyOiBEYXRhUG9pbnQgbWFjcm8gd2l0aCBQcm9ncmVzc0luZGljYXRvclwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50UEk+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRzaG93TGFiZWxzPVwidHJ1ZVwiLz5cblx0XHRcdFx0XHRcdFx0PC9pbnRlcm5hbE1hY3JvOkRhdGFQb2ludD5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXHRpdChcIkhlYWRlcjogRGF0YVBvaW50IG1hY3JvIHdpdGggU2FsZXNPcmRlclR5cGVCaXNcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkRhdGFQb2ludCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFQYXRoPVwie2RhdGFQb2ludE4+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0RGF0YVBvaW50U3R5bGU9XCJPYmplY3ROdW1iZXJcIiAvPlxuXHRcdFx0XHRcdFx0XHQ8L2ludGVybmFsTWFjcm86RGF0YVBvaW50PmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG5cblx0aXQoXCJIZWFkZXI6IERhdGFQb2ludCBtYWNybyB3aXRoIE9iamVjdE51bWJlciAoIG1lYXN1cmVEaXNwbGF5TW9kZTogUmVhZE9ubHkpXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRVbml0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGludGVybmFsTWFjcm86Zm9ybWF0T3B0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0bWVhc3VyZURpc3BsYXlNb2RlPVwiUmVhZE9ubHlcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVmYXVsdERhdGFQb2ludFN0eWxlPVwiT2JqZWN0TnVtYmVyXCIgLz5cblx0XHRcdFx0XHRcdFx0PC9pbnRlcm5hbE1hY3JvOkRhdGFQb2ludD5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXHRpdChcIkhlYWRlcjogRGF0YVBvaW50IG1hY3JvIHdpdGggT2JqZWN0TnVtYmVyICggbWVhc3VyZURpc3BsYXlNb2RlOiBIaWRkZW4pXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpEYXRhUG9pbnQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhUGF0aD1cIntkYXRhUG9pbnRVbml0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPVwie2VudGl0eVNldD59XCI+XG5cdFx0XHRcdFx0XHRcdFx0PGludGVybmFsTWFjcm86Zm9ybWF0T3B0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdFx0bWVhc3VyZURpc3BsYXlNb2RlPVwiSGlkZGVuXCJcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHREYXRhUG9pbnRTdHlsZT1cIk9iamVjdE51bWJlclwiIC8+XG5cdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblx0aXQoXCJIZWFkZXI6IERhdGFQb2ludCBtYWNybyB3aXRoIE9iamVjdE51bWJlciAoIG1lYXN1cmVEaXNwbGF5TW9kZSBub3Qgc2V0KVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50VW5pdD59XCJcblx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD1cIntlbnRpdHlTZXQ+fVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0XHRcdFx0XHRcdGRlZmF1bHREYXRhUG9pbnRTdHlsZT1cIk9iamVjdE51bWJlclwiIC8+XG5cdFx0XHRcdFx0XHRcdDwvaW50ZXJuYWxNYWNybzpEYXRhUG9pbnQ+YDtcblx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblx0aXQoXCJIZWFkZXI6IERhdGFQb2ludCBtYWNybyB3aXRoIE9iamVjdE51bWJlciAoIHR5cGUgRGF0ZVRpbWVPZmZzZXQgKVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RGF0YVBvaW50IHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YVBhdGg9XCJ7ZGF0YVBvaW50RGF0ZVRpbWVPZmZzZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9XCJ7ZW50aXR5U2V0Pn1cIj5cblx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0RGF0YVBvaW50U3R5bGU9XCJPYmplY3ROdW1iZXJcIiAvPlxuXHRcdFx0XHRcdFx0XHQ8L2ludGVybmFsTWFjcm86RGF0YVBvaW50PmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG59KTtcbiJdfQ==
@@ -26,6 +26,7 @@ describe("DataPoint macro tests", () => {
26
26
  dataPointCV: "/Items/$Type/@com.sap.vocabularies.UI.v1.DataPoint#criticalityValue",
27
27
  dataPointP: "/Items/$Type/@com.sap.vocabularies.UI.v1.DataPoint#percent",
28
28
  dataPointUnit: "/Items/$Type/@com.sap.vocabularies.UI.v1.DataPoint#unit",
29
+ dataPointDateTimeOffset: "/Items/$Type/@com.sap.vocabularies.UI.v1.DataPoint#DateTimeOffset",
29
30
  dataPointONwC_NavPInFacetTarget: "/Items/$Type/@com.sap.vocabularies.UI.v1.HeaderFacets/0/Target/$AnnotationPath",
30
31
  dataPointON_NavPInFacetTarget: "/Items/$Type/@com.sap.vocabularies.UI.v1.HeaderFacets/1/Target/$AnnotationPath",
31
32
  dataPointR_NavPInFacetTarget: "/Items/$Type/@com.sap.vocabularies.UI.v1.HeaderFacets/2/Target/$AnnotationPath",
@@ -278,4 +279,14 @@ describe("DataPoint macro tests", () => {
278
279
  const templatedXML = await getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {});
279
280
  expect(templatedXML).toMatchSnapshot();
280
281
  });
282
+ it("Header: DataPoint macro with ObjectNumber ( type DateTimeOffset )", async () => {
283
+ const xmlField = `<internalMacro:DataPoint xmlns:internalMacro="sap.fe.macros.internal"
284
+ metaPath="{dataPointDateTimeOffset>}"
285
+ contextPath="{entitySet>}">
286
+ <internalMacro:formatOptions
287
+ defaultDataPointStyle="ObjectNumber" />
288
+ </internalMacro:DataPoint>`;
289
+ const templatedXML = await getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {});
290
+ expect(templatedXML).toMatchSnapshot();
291
+ });
281
292
  });
@@ -0,0 +1,61 @@
1
+ sap.ui.define(["sap/fe/macros/DelegateUtil", "sap/fe/test/JestTemplatingHelper", "sap/fe/macros/field/FieldHelper"], function(
2
+ DelegateUtil,
3
+ JestTemplatingHelper,
4
+ FieldHelper
5
+ ) {
6
+ "use strict";
7
+ describe("DelegateUtil isValueHelpRequired()", function() {
8
+ let oMetaModel, oMockValueHelpProperty, oMockGetCustomData, sMetadataUrl, oParameters;
9
+ const path = require("path");
10
+
11
+ beforeAll(function() {
12
+ sMetadataUrl = JestTemplatingHelper.compileCDS(path.join(__dirname, "./data/ValueHelpMacro.cds"));
13
+ oMockValueHelpProperty = jest.spyOn(FieldHelper, "valueHelpProperty");
14
+ oMockValueHelpProperty.mockReturnValue("/Items/quantityUnit");
15
+ oMockGetCustomData = jest.spyOn(DelegateUtil, "getCustomData");
16
+ return new Promise(function(resolve) {
17
+ JestTemplatingHelper.getMetaModel(sMetadataUrl).then(function(oServiceMetaModel) {
18
+ oMetaModel = oServiceMetaModel;
19
+ oParameters = {
20
+ sPropertyName: "quantityUnit",
21
+ oMetaModel: oMetaModel,
22
+ sBindingPath: "/Items"
23
+ };
24
+ resolve();
25
+ });
26
+ });
27
+ });
28
+
29
+ it("is a read-only table", async function() {
30
+ // Table's custom data holds displayModePropertyBinding : true (Read only)
31
+ oMockGetCustomData.mockReturnValue(Promise.resolve("true"));
32
+ DelegateUtil.isValueHelpRequired(oParameters, false).then(function(bActual) {
33
+ // Table is read only. Value help not required.
34
+ expect(bActual).toBe(false);
35
+ });
36
+ });
37
+
38
+ it("is an editable table 1", async function() {
39
+ // Table's custom data holds displayModePropertyBinding : undefined (Editable)
40
+ oMockGetCustomData.mockReturnValue(Promise.resolve(undefined));
41
+ DelegateUtil.isValueHelpRequired(oParameters, false).then(function(bActual) {
42
+ // Table is editable. Value help required.
43
+ expect(bActual).toBe(true);
44
+ });
45
+ });
46
+
47
+ it("is an editable table 2", async function() {
48
+ // Table's custom data holds displayModePropertyBinding : false (Editable)
49
+ oMockGetCustomData.mockReturnValue(Promise.resolve("false"));
50
+ DelegateUtil.isValueHelpRequired(oParameters, false).then(function(bActual) {
51
+ // Table is editable. Value help required.
52
+ expect(bActual).toBe(true);
53
+ });
54
+ });
55
+
56
+ afterAll(function() {
57
+ oMockValueHelpProperty.restore();
58
+ oMockGetCustomData.restore();
59
+ });
60
+ });
61
+ });
@@ -0,0 +1,46 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/test/JestTemplatingHelper", "path", "sap/fe/macros/internal/Field.metadata"], function (JestTemplatingHelper, path, FieldMetadata) {
6
+ "use strict";
7
+
8
+ var registerMacro = JestTemplatingHelper.registerMacro;
9
+ var getTemplatedXML = JestTemplatingHelper.getTemplatedXML;
10
+
11
+ describe("FieldHelper - ", function () {
12
+ var sMetadataUrl = path.join(__dirname, "./data/FieldHelper.xml");
13
+ var mBindingContexts = {
14
+ "entitySet": "/MainEntity"
15
+ };
16
+ beforeAll(function () {
17
+ try {
18
+ registerMacro(FieldMetadata);
19
+ return Promise.resolve();
20
+ } catch (e) {
21
+ return Promise.reject(e);
22
+ }
23
+ });
24
+ it("getPressEventForDataFieldActionButton - normal string", function () {
25
+ try {
26
+ var xmlField = "<internalMacro:Field xmlns:internalMacro=\"sap.fe.macros.internal\"\n\t\t\t\t\t\t\t\t\tentitySet=\"{entitySet>}\"\n\t\t\t\t\t\t\t\t\tdataField=\"@com.sap.vocabularies.UI.v1.LineItem/0\"\n\t\t\t\t\t\t\t\t\t/>";
27
+ return Promise.resolve(getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
28
+ expect(templatedXML).toMatchSnapshot();
29
+ });
30
+ } catch (e) {
31
+ return Promise.reject(e);
32
+ }
33
+ });
34
+ it("getPressEventForDataFieldActionButton - with single quote string", function () {
35
+ try {
36
+ var xmlField = "<internalMacro:Field xmlns:internalMacro=\"sap.fe.macros.internal\"\n\t\t\t\t\t\t\t\t\tentitySet=\"{entitySet>}\"\n\t\t\t\t\t\t\t\t\tdataField=\"@com.sap.vocabularies.UI.v1.LineItem/1\"\n\t\t\t\t\t\t\t\t\t/>";
37
+ return Promise.resolve(getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
38
+ expect(templatedXML).toMatchSnapshot();
39
+ });
40
+ } catch (e) {
41
+ return Promise.reject(e);
42
+ }
43
+ });
44
+ });
45
+ }, false);
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkSGVscGVyLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJzTWV0YWRhdGFVcmwiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsIm1CaW5kaW5nQ29udGV4dHMiLCJiZWZvcmVBbGwiLCJyZWdpc3Rlck1hY3JvIiwiRmllbGRNZXRhZGF0YSIsIml0IiwieG1sRmllbGQiLCJnZXRUZW1wbGF0ZWRYTUwiLCJ0ZW1wbGF0ZWRYTUwiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7Ozs7QUFFQUEsRUFBQUEsUUFBUSxDQUFDLGdCQUFELEVBQW1CLFlBQU07QUFDaEMsUUFBTUMsWUFBWSxHQUFHQyxJQUFJLENBQUNDLElBQUwsQ0FBVUMsU0FBVixFQUFxQix3QkFBckIsQ0FBckI7QUFDQSxRQUFNQyxnQkFBZ0IsR0FBRztBQUN4QixtQkFBYTtBQURXLEtBQXpCO0FBSUFDLElBQUFBLFNBQVM7QUFBQSxVQUFhO0FBQ3JCQyxRQUFBQSxhQUFhLENBQUNDLGFBQUQsQ0FBYjtBQURxQjtBQUVyQixPQUZRO0FBQUE7QUFBQTtBQUFBLE1BQVQ7QUFHQUMsSUFBQUEsRUFBRSxDQUFDLHVEQUFEO0FBQUEsVUFBc0U7QUFDdkUsWUFBTUMsUUFBUSxvTkFBZDtBQUR1RSwrQkFLNUNDLGVBQWUsQ0FBQ0QsUUFBRCxFQUFXVCxZQUFYLEVBQXlCSSxnQkFBekIsRUFBMkMsRUFBM0MsQ0FMNkIsaUJBS2pFTyxZQUxpRTtBQU12RUMsVUFBQUEsTUFBTSxDQUFDRCxZQUFELENBQU4sQ0FBcUJFLGVBQXJCO0FBTnVFO0FBT3ZFLE9BUEM7QUFBQTtBQUFBO0FBQUEsTUFBRjtBQVFBTCxJQUFBQSxFQUFFLENBQUMsa0VBQUQ7QUFBQSxVQUFpRjtBQUNsRixZQUFNQyxRQUFRLG9OQUFkO0FBRGtGLCtCQUt2REMsZUFBZSxDQUFDRCxRQUFELEVBQVdULFlBQVgsRUFBeUJJLGdCQUF6QixFQUEyQyxFQUEzQyxDQUx3QyxpQkFLNUVPLFlBTDRFO0FBTWxGQyxVQUFBQSxNQUFNLENBQUNELFlBQUQsQ0FBTixDQUFxQkUsZUFBckI7QUFOa0Y7QUFPbEYsT0FQQztBQUFBO0FBQUE7QUFBQSxNQUFGO0FBUUEsR0F6Qk8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VGVtcGxhdGVkWE1MLCByZWdpc3Rlck1hY3JvIH0gZnJvbSBcInNhcC9mZS90ZXN0L0plc3RUZW1wbGF0aW5nSGVscGVyXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IEZpZWxkTWV0YWRhdGEgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvRmllbGQubWV0YWRhdGFcIjtcblxuZGVzY3JpYmUoXCJGaWVsZEhlbHBlciAtIFwiLCAoKSA9PiB7XG5cdGNvbnN0IHNNZXRhZGF0YVVybCA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi9kYXRhL0ZpZWxkSGVscGVyLnhtbFwiKTtcblx0Y29uc3QgbUJpbmRpbmdDb250ZXh0cyA9IHtcblx0XHRcImVudGl0eVNldFwiOiBcIi9NYWluRW50aXR5XCJcblx0fTtcblxuXHRiZWZvcmVBbGwoYXN5bmMgKCkgPT4ge1xuXHRcdHJlZ2lzdGVyTWFjcm8oRmllbGRNZXRhZGF0YSk7XG5cdH0pO1xuXHRpdChcImdldFByZXNzRXZlbnRGb3JEYXRhRmllbGRBY3Rpb25CdXR0b24gLSBub3JtYWwgc3RyaW5nXCIsIGFzeW5jICgpID0+IHtcblx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtLzBcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXHRpdChcImdldFByZXNzRXZlbnRGb3JEYXRhRmllbGRBY3Rpb25CdXR0b24gLSB3aXRoIHNpbmdsZSBxdW90ZSBzdHJpbmdcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0vMVwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPmA7XG5cdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0fSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { getTemplatedXML, registerMacro } from "sap/fe/test/JestTemplatingHelper";
2
+ import path from "path";
3
+ import FieldMetadata from "sap/fe/macros/internal/Field.metadata";
4
+
5
+ describe("FieldHelper - ", () => {
6
+ const sMetadataUrl = path.join(__dirname, "./data/FieldHelper.xml");
7
+ const mBindingContexts = {
8
+ "entitySet": "/MainEntity"
9
+ };
10
+
11
+ beforeAll(async () => {
12
+ registerMacro(FieldMetadata);
13
+ });
14
+ it("getPressEventForDataFieldActionButton - normal string", async () => {
15
+ const xmlField = `<internalMacro:Field xmlns:internalMacro="sap.fe.macros.internal"
16
+ entitySet="{entitySet>}"
17
+ dataField="@com.sap.vocabularies.UI.v1.LineItem/0"
18
+ />`;
19
+ const templatedXML = await getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {});
20
+ expect(templatedXML).toMatchSnapshot();
21
+ });
22
+ it("getPressEventForDataFieldActionButton - with single quote string", async () => {
23
+ const xmlField = `<internalMacro:Field xmlns:internalMacro="sap.fe.macros.internal"
24
+ entitySet="{entitySet>}"
25
+ dataField="@com.sap.vocabularies.UI.v1.LineItem/1"
26
+ />`;
27
+ const templatedXML = await getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {});
28
+ expect(templatedXML).toMatchSnapshot();
29
+ });
30
+ });
@@ -103,6 +103,18 @@ sap.ui.define(["sap/fe/test/JestTemplatingHelper", "sap/fe/macros/Contact.metada
103
103
  }
104
104
  });
105
105
  });
106
+ describe("DataFieldGroup - ", function () {
107
+ it("Rating Indicator", function () {
108
+ try {
109
+ var xmlField = "<internalMacro:Field xmlns:internalMacro=\"sap.fe.macros.internal\"\n\t\t\t\t\t\t\t\t\tentitySet=\"{entitySet>}\"\n\t\t\t\t\t\t\t\t\tdataField=\"@com.sap.vocabularies.UI.v1.LineItem#DataPoint/2\"\n\t\t\t\t\t\t\t\t\t/>";
110
+ return Promise.resolve(getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {})).then(function (templatedXML) {
111
+ expect(templatedXML).toMatchSnapshot();
112
+ });
113
+ } catch (e) {
114
+ return Promise.reject(e);
115
+ }
116
+ });
117
+ });
106
118
  describe("DataField - InputWithvalueHelp ", function () {
107
119
  it("Datapoint visualization Integer - no measureDisplayMode", function () {
108
120
  try {
@@ -245,4 +257,4 @@ sap.ui.define(["sap/fe/test/JestTemplatingHelper", "sap/fe/macros/Contact.metada
245
257
  });
246
258
  });
247
259
  }, false);
248
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkTWFjcm9EYXRhRmllbGRUeXBlcy5zcGVjLnRzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwicmVnaXN0ZXJNYWNybyIsIkNvbnRhY3RNZXRhZGF0YSIsIkZpZWxkTWV0YWRhdGEiLCJEYXRhUG9pbnQiLCJhZnRlckFsbCIsInVucmVnaXN0ZXJNYWNybyIsInNNZXRhZGF0YVVybCIsImNvbXBpbGVDRFMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsIm1CaW5kaW5nQ29udGV4dHMiLCJpdCIsInhtbEZpZWxkIiwiZ2V0VGVtcGxhdGVkWE1MIiwidGVtcGxhdGVkWE1MIiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7QUFJQUEsRUFBQUEsUUFBUSxDQUFDLGlDQUFELEVBQW9DLFlBQU07QUFDakRDLElBQUFBLFNBQVMsQ0FBQyxZQUFNO0FBQ2ZDLE1BQUFBLGFBQWEsQ0FBQ0MsZUFBRCxDQUFiO0FBQ0FELE1BQUFBLGFBQWEsQ0FBQ0UsYUFBRCxDQUFiO0FBQ0FGLE1BQUFBLGFBQWEsQ0FBQ0csU0FBRCxDQUFiO0FBQ0EsS0FKUSxDQUFUO0FBS0FDLElBQUFBLFFBQVEsQ0FBQyxZQUFNO0FBQ2RDLE1BQUFBLGVBQWUsQ0FBQ0osZUFBRCxDQUFmO0FBQ0FJLE1BQUFBLGVBQWUsQ0FBQ0gsYUFBRCxDQUFmO0FBQ0FHLE1BQUFBLGVBQWUsQ0FBQ0YsU0FBRCxDQUFmO0FBQ0EsS0FKTyxDQUFSO0FBTUEsUUFBTUcsWUFBWSxHQUFHQyxVQUFVLENBQUNDLElBQUksQ0FBQ0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLHFDQUFyQixDQUFELENBQS9CO0FBQ0EsUUFBTUMsZ0JBQWdCLEdBQUc7QUFDeEIsbUJBQWE7QUFEVyxLQUF6QjtBQUdBYixJQUFBQSxRQUFRLENBQUMsMkJBQUQsRUFBOEIsWUFBTTtBQUMzQ2MsTUFBQUEsRUFBRSxDQUFDLGtCQUFEO0FBQUEsWUFBaUM7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QU5XO0FBT1gsU0FqQkE7QUFBQTtBQUFBO0FBQUEsUUFBRjtBQW1CQSxLQTFJTyxDQUFSO0FBMklBLEdBalFPLENBQVIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBpbGVDRFMsIGdldFRlbXBsYXRlZFhNTCwgcmVnaXN0ZXJNYWNybywgdW5yZWdpc3Rlck1hY3JvIH0gZnJvbSBcInNhcC9mZS90ZXN0L0plc3RUZW1wbGF0aW5nSGVscGVyXCI7XG5pbXBvcnQgQ29udGFjdE1ldGFkYXRhIGZyb20gXCJzYXAvZmUvbWFjcm9zL0NvbnRhY3QubWV0YWRhdGFcIjtcbmltcG9ydCBGaWVsZE1ldGFkYXRhIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL0ZpZWxkLm1ldGFkYXRhXCI7XG5pbXBvcnQgRGF0YVBvaW50IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL0RhdGFQb2ludC5tZXRhZGF0YVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5kZXNjcmliZShcIk1hY3JvRmllbGQgLSBEYXRhRmllbGQgVHlwZXMgLSBcIiwgKCkgPT4ge1xuXHRiZWZvcmVBbGwoKCkgPT4ge1xuXHRcdHJlZ2lzdGVyTWFjcm8oQ29udGFjdE1ldGFkYXRhKTtcblx0XHRyZWdpc3Rlck1hY3JvKEZpZWxkTWV0YWRhdGEpO1xuXHRcdHJlZ2lzdGVyTWFjcm8oRGF0YVBvaW50KTtcblx0fSk7XG5cdGFmdGVyQWxsKCgpID0+IHtcblx0XHR1bnJlZ2lzdGVyTWFjcm8oQ29udGFjdE1ldGFkYXRhKTtcblx0XHR1bnJlZ2lzdGVyTWFjcm8oRmllbGRNZXRhZGF0YSk7XG5cdFx0dW5yZWdpc3Rlck1hY3JvKERhdGFQb2ludCk7XG5cdH0pO1xuXG5cdGNvbnN0IHNNZXRhZGF0YVVybCA9IGNvbXBpbGVDRFMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuL2RhdGEvRmllbGRNYWNyb0RhdGFGaWVsZFR5cGVzLmNkc1wiKSk7XG5cdGNvbnN0IG1CaW5kaW5nQ29udGV4dHMgPSB7XG5cdFx0XCJlbnRpdHlTZXRcIjogXCIvSXRlbXNcIlxuXHR9O1xuXHRkZXNjcmliZShcIkRhdGFGaWVsZEZvckFubm90YXRpb24gLSBcIiwgKCkgPT4ge1xuXHRcdGl0KFwiUmF0aW5nIEluZGljYXRvclwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtI0RhdGFQb2ludC8yXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiQW5hbHl0aWNhbCBEYXRhUG9pbnRcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RmllbGQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0PVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFGaWVsZD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbSNEYXRhUG9pbnQvNFwiXG5cdFx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW50ZXJuYWxNYWNybzpmb3JtYXRPcHRpb25zIGlzQW5hbHl0aWNzPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ludGVybmFsTWFjcm86RmllbGQ+YDtcblx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiSW5zdGFudGlhdGUgbWFjcm8gRGF0YVBvaW50IGluIHRoZSBGaWVsZFdyYXBwZXJcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RmllbGQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0PVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFGaWVsZD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbSNEYXRhUG9pbnQvMFwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPmA7XG5cdFx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cdFx0aXQoXCJDb250YWN0XCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0jQ29udGFjdC8wXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHR9KTtcblx0fSk7XG5cdGRlc2NyaWJlKFwiRGF0YUZpZWxkRm9yQWN0aW9uIC0gXCIsICgpID0+IHtcblx0XHRpdChcIkR1bW15IGRhdGFGaWVsZEZvckFjdGlvblwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtI0FjdGlvbi8wXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJEYXRhRmllbGRXaXRoTmF2aWdhdGlvblBhdGggLSBcIiwgKCkgPT4ge1xuXHRcdGl0KFwic2ltcGxlIG9uZVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtI05hdmlnYXRpb25QYXRoLzBcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcIkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiAtIFwiLCAoKSA9PiB7XG5cdFx0aXQoXCJzaW1wbGUgb25lXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0jSW50ZW50QmFzZWROYXYvMFwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPmA7XG5cdFx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiRGF0YUZpZWxkIC0gSW5wdXRXaXRodmFsdWVIZWxwICBcIiwgKCkgPT4ge1xuXHRcdGl0KFwiRGF0YXBvaW50IHZpc3VhbGl6YXRpb24gSW50ZWdlciAtIG5vIG1lYXN1cmVEaXNwbGF5TW9kZVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNJbnB1dFdpdGhWYWx1ZUhlbHBOdW1iZXJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdH0pO1xuXHRcdGl0KFxuXHRcdFx0XCJEYXRhcG9pbnQgdmlzdWFsaXphdGlvbiBJbnRlZ2VyIC0gbWVhc3VyZURpc3BsYXlNb2RlIEhpZGRlblwiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0yMTY1MFwiIC8vQWRkZWQgd2l0aCB0aGlzIG9uZSwgYnV0IG9ubHkgYW4gZW5oYW5jZW1lbnQgb2YgbWlzc2luZyB0ZXN0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNJbnB1dFdpdGhWYWx1ZUhlbHBOdW1iZXJIaWRkZW5cIlxuXHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0PGludGVybmFsTWFjcm86Zm9ybWF0T3B0aW9ucyBtZWFzdXJlRGlzcGxheU1vZGU9XCJIaWRkZW5cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pbnRlcm5hbE1hY3JvOkZpZWxkPmA7XG5cdFx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdH0pO1xuXHRkZXNjcmliZShcIkRhdGFGaWVsZCAtIENoZWNraW5nIEVkaXQgYW5kIERpc3BsYXkgbW9kZSBkaWZmZXJlbnQgb3V0cHV0IC0gXCIsICgpID0+IHtcblx0XHRpdChcblx0XHRcdFwiQ2hlY2tib3hcIixcblx0XHRcdHtcblx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFx0XHRcIklEXCI6IFwiRklPUklURUNIUDEtMjE2NTBcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSxcblx0XHRcdGFzeW5jICgpID0+IHtcblx0XHRcdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RmllbGQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0PVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFGaWVsZD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnQjQm9vbGVhblwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPmA7XG5cdFx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdFx0fVxuXHRcdCk7XG5cblx0XHRpdChcblx0XHRcdFwiQ2hlY2tib3ggd2l0aCB2YWx1ZSBoZWxwXCIsXG5cdFx0XHR7XG5cdFx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XCJ0eXBlXCI6IFwiSklSQVwiLFxuXHRcdFx0XHRcdFx0XCJJRFwiOiBcIkZJT1JJVEVDSFAxLTIxNjUwXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0sXG5cdFx0XHRhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I0Jvb2xlYW5XaXRoVmFsdWVIZWxwTnVtYmVyXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0XHR9XG5cdFx0KTtcblxuXHRcdGl0KFxuXHRcdFx0XCJGaWxlIC0gTWVkaWFUeXBlIGlzIGEganBnXCIsXG5cdFx0XHR7XG5cdFx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XCJ0eXBlXCI6IFwiSklSQVwiLFxuXHRcdFx0XHRcdFx0XCJJRFwiOiBcIkZJT1JJVEVDSFAxLTIxNjUwXCIgLy9BZGRlZCB3aXRoIHRoaXMgb25lLCBidXQgb25seSBhbiBlbmhhbmNlbWVudCBvZiBtaXNzaW5nIHRlc3Rcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0sXG5cdFx0XHRhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I0ZpbGVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdFx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRcdH1cblx0XHQpO1xuXG5cdFx0aXQoXG5cdFx0XHRcIlRleHRBcmVhXCIsXG5cdFx0XHR7XG5cdFx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XCJ0eXBlXCI6IFwiSklSQVwiLFxuXHRcdFx0XHRcdFx0XCJJRFwiOiBcIkZJT1JJVEVDSFAxLTIxNjUwXCIgLy9BZGRlZCB3aXRoIHRoaXMgb25lLCBidXQgb25seSBhbiBlbmhhbmNlbWVudCBvZiBtaXNzaW5nIHRlc3Rcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0sXG5cdFx0XHRhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I1RleHRBcmVhXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0XHR9XG5cdFx0KTtcblx0XHRpdChcblx0XHRcdFwiRGF0ZVwiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0yMTY1MFwiIC8vQWRkZWQgd2l0aCB0aGlzIG9uZSwgYnV0IG9ubHkgYW4gZW5oYW5jZW1lbnQgb2YgbWlzc2luZyB0ZXN0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNEYXRlT25lXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0XHR9XG5cdFx0KTtcblx0XHRpdChcblx0XHRcdFwiVGltZSAoVGltZU9mRGF5KVwiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0yMTY1MFwiIC8vQWRkZWQgd2l0aCB0aGlzIG9uZSwgYnV0IG9ubHkgYW4gZW5oYW5jZW1lbnQgb2YgbWlzc2luZyB0ZXN0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNUaW1lT2ZEYXlcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdFx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRcdH1cblx0XHQpO1xuXG5cdFx0aXQoXG5cdFx0XHRcIlRpbWVzdGFtcCAoRGF0ZVRpbWVPZmZzZXQpXCIsXG5cdFx0XHR7XG5cdFx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XCJ0eXBlXCI6IFwiSklSQVwiLFxuXHRcdFx0XHRcdFx0XCJJRFwiOiBcIkZJT1JJVEVDSFAxLTIxNjUwXCIgLy9BZGRlZCB3aXRoIHRoaXMgb25lLCBidXQgb25seSBhbiBlbmhhbmNlbWVudCBvZiBtaXNzaW5nIHRlc3Rcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0sXG5cdFx0XHRhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I0RhdGVUaW1lT2Zmc2V0XCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0XHR9XG5cdFx0KTtcblx0fSk7XG59KTtcbiJdfQ==
260
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZpZWxkTWFjcm9EYXRhRmllbGRUeXBlcy5zcGVjLnRzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiYmVmb3JlQWxsIiwicmVnaXN0ZXJNYWNybyIsIkNvbnRhY3RNZXRhZGF0YSIsIkZpZWxkTWV0YWRhdGEiLCJEYXRhUG9pbnQiLCJhZnRlckFsbCIsInVucmVnaXN0ZXJNYWNybyIsInNNZXRhZGF0YVVybCIsImNvbXBpbGVDRFMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsIm1CaW5kaW5nQ29udGV4dHMiLCJpdCIsInhtbEZpZWxkIiwiZ2V0VGVtcGxhdGVkWE1MIiwidGVtcGxhdGVkWE1MIiwiZXhwZWN0IiwidG9NYXRjaFNuYXBzaG90Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7QUFJQUEsRUFBQUEsUUFBUSxDQUFDLGlDQUFELEVBQW9DLFlBQU07QUFDakRDLElBQUFBLFNBQVMsQ0FBQyxZQUFNO0FBQ2ZDLE1BQUFBLGFBQWEsQ0FBQ0MsZUFBRCxDQUFiO0FBQ0FELE1BQUFBLGFBQWEsQ0FBQ0UsYUFBRCxDQUFiO0FBQ0FGLE1BQUFBLGFBQWEsQ0FBQ0csU0FBRCxDQUFiO0FBQ0EsS0FKUSxDQUFUO0FBS0FDLElBQUFBLFFBQVEsQ0FBQyxZQUFNO0FBQ2RDLE1BQUFBLGVBQWUsQ0FBQ0osZUFBRCxDQUFmO0FBQ0FJLE1BQUFBLGVBQWUsQ0FBQ0gsYUFBRCxDQUFmO0FBQ0FHLE1BQUFBLGVBQWUsQ0FBQ0YsU0FBRCxDQUFmO0FBQ0EsS0FKTyxDQUFSO0FBTUEsUUFBTUcsWUFBWSxHQUFHQyxVQUFVLENBQUNDLElBQUksQ0FBQ0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLHFDQUFyQixDQUFELENBQS9CO0FBQ0EsUUFBTUMsZ0JBQWdCLEdBQUc7QUFDeEIsbUJBQWE7QUFEVyxLQUF6QjtBQUdBYixJQUFBQSxRQUFRLENBQUMsMkJBQUQsRUFBOEIsWUFBTTtBQUMzQ2MsTUFBQUEsRUFBRSxDQUFDLGtCQUFEO0FBQUEsWUFBaUM7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QUE7QUFBQSxRQUFGO0FBb0JBTCxNQUFBQSxFQUFFLENBQ0QsNEJBREMsRUFFRDtBQUNDLHNCQUFjLENBQ2I7QUFDQyxrQkFBUSxNQURUO0FBRUMsZ0JBQU0sbUJBRlAsQ0FFMkI7O0FBRjNCLFNBRGE7QUFEZixPQUZDO0FBQUEsWUFVVztBQUNYLGNBQU1DLFFBQVEsa09BQWQ7QUFEVyxpQ0FLZ0JDLGVBQWUsQ0FBQ0QsUUFBRCxFQUFXUCxZQUFYLEVBQXlCSyxnQkFBekIsRUFBMkMsRUFBM0MsQ0FML0IsaUJBS0xJLFlBTEs7QUFNWEMsWUFBQUEsTUFBTSxDQUFDRCxZQUFELENBQU4sQ0FBcUJFLGVBQXJCO0FBTlc7QUFPWCxTQWpCQTtBQUFBO0FBQUE7QUFBQSxRQUFGO0FBbUJBLEtBMUlPLENBQVI7QUEySUEsR0E1UU8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGlsZUNEUywgZ2V0VGVtcGxhdGVkWE1MLCByZWdpc3Rlck1hY3JvLCB1bnJlZ2lzdGVyTWFjcm8gfSBmcm9tIFwic2FwL2ZlL3Rlc3QvSmVzdFRlbXBsYXRpbmdIZWxwZXJcIjtcbmltcG9ydCBDb250YWN0TWV0YWRhdGEgZnJvbSBcInNhcC9mZS9tYWNyb3MvQ29udGFjdC5tZXRhZGF0YVwiO1xuaW1wb3J0IEZpZWxkTWV0YWRhdGEgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvRmllbGQubWV0YWRhdGFcIjtcbmltcG9ydCBEYXRhUG9pbnQgZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvRGF0YVBvaW50Lm1ldGFkYXRhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmRlc2NyaWJlKFwiTWFjcm9GaWVsZCAtIERhdGFGaWVsZCBUeXBlcyAtIFwiLCAoKSA9PiB7XG5cdGJlZm9yZUFsbCgoKSA9PiB7XG5cdFx0cmVnaXN0ZXJNYWNybyhDb250YWN0TWV0YWRhdGEpO1xuXHRcdHJlZ2lzdGVyTWFjcm8oRmllbGRNZXRhZGF0YSk7XG5cdFx0cmVnaXN0ZXJNYWNybyhEYXRhUG9pbnQpO1xuXHR9KTtcblx0YWZ0ZXJBbGwoKCkgPT4ge1xuXHRcdHVucmVnaXN0ZXJNYWNybyhDb250YWN0TWV0YWRhdGEpO1xuXHRcdHVucmVnaXN0ZXJNYWNybyhGaWVsZE1ldGFkYXRhKTtcblx0XHR1bnJlZ2lzdGVyTWFjcm8oRGF0YVBvaW50KTtcblx0fSk7XG5cblx0Y29uc3Qgc01ldGFkYXRhVXJsID0gY29tcGlsZUNEUyhwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4vZGF0YS9GaWVsZE1hY3JvRGF0YUZpZWxkVHlwZXMuY2RzXCIpKTtcblx0Y29uc3QgbUJpbmRpbmdDb250ZXh0cyA9IHtcblx0XHRcImVudGl0eVNldFwiOiBcIi9JdGVtc1wiXG5cdH07XG5cdGRlc2NyaWJlKFwiRGF0YUZpZWxkRm9yQW5ub3RhdGlvbiAtIFwiLCAoKSA9PiB7XG5cdFx0aXQoXCJSYXRpbmcgSW5kaWNhdG9yXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0jRGF0YVBvaW50LzJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJBbmFseXRpY2FsIERhdGFQb2ludFwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtI0RhdGFQb2ludC80XCJcblx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnMgaXNBbmFseXRpY3M9XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW50ZXJuYWxNYWNybzpGaWVsZD5gO1xuXHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJJbnN0YW50aWF0ZSBtYWNybyBEYXRhUG9pbnQgaW4gdGhlIEZpZWxkV3JhcHBlclwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtI0RhdGFQb2ludC8wXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHR9KTtcblx0XHRpdChcIkNvbnRhY3RcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RmllbGQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0PVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFGaWVsZD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbSNDb250YWN0LzBcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdH0pO1xuXHR9KTtcblx0ZGVzY3JpYmUoXCJEYXRhRmllbGRGb3JBY3Rpb24gLSBcIiwgKCkgPT4ge1xuXHRcdGl0KFwiRHVtbXkgZGF0YUZpZWxkRm9yQWN0aW9uXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0jQWN0aW9uLzBcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcIkRhdGFGaWVsZFdpdGhOYXZpZ2F0aW9uUGF0aCAtIFwiLCAoKSA9PiB7XG5cdFx0aXQoXCJzaW1wbGUgb25lXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0jTmF2aWdhdGlvblBhdGgvMFwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPmA7XG5cdFx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIC0gXCIsICgpID0+IHtcblx0XHRpdChcInNpbXBsZSBvbmVcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RmllbGQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0PVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFGaWVsZD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbSNJbnRlbnRCYXNlZE5hdi8wXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJEYXRhRmllbGRHcm91cCAtIFwiLCAoKSA9PiB7XG5cdFx0aXQoXCJSYXRpbmcgSW5kaWNhdG9yXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuTGluZUl0ZW0jRGF0YVBvaW50LzJcIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcIkRhdGFGaWVsZCAtIElucHV0V2l0aHZhbHVlSGVscCAgXCIsICgpID0+IHtcblx0XHRpdChcIkRhdGFwb2ludCB2aXN1YWxpemF0aW9uIEludGVnZXIgLSBubyBtZWFzdXJlRGlzcGxheU1vZGVcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RmllbGQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0PVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFGaWVsZD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnQjSW5wdXRXaXRoVmFsdWVIZWxwTnVtYmVyXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHR9KTtcblx0XHRpdChcblx0XHRcdFwiRGF0YXBvaW50IHZpc3VhbGl6YXRpb24gSW50ZWdlciAtIG1lYXN1cmVEaXNwbGF5TW9kZSBIaWRkZW5cIixcblx0XHRcdHtcblx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFx0XHRcIklEXCI6IFwiRklPUklURUNIUDEtMjE2NTBcIiAvL0FkZGVkIHdpdGggdGhpcyBvbmUsIGJ1dCBvbmx5IGFuIGVuaGFuY2VtZW50IG9mIG1pc3NpbmcgdGVzdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSxcblx0XHRcdGFzeW5jICgpID0+IHtcblx0XHRcdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RmllbGQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0PVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFGaWVsZD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnQjSW5wdXRXaXRoVmFsdWVIZWxwTnVtYmVySGlkZGVuXCJcblx0XHRcdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHRcdDxpbnRlcm5hbE1hY3JvOmZvcm1hdE9wdGlvbnMgbWVhc3VyZURpc3BsYXlNb2RlPVwiSGlkZGVuXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW50ZXJuYWxNYWNybzpGaWVsZD5gO1xuXHRcdFx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRcdH1cblx0XHQpO1xuXHR9KTtcblx0ZGVzY3JpYmUoXCJEYXRhRmllbGQgLSBDaGVja2luZyBFZGl0IGFuZCBEaXNwbGF5IG1vZGUgZGlmZmVyZW50IG91dHB1dCAtIFwiLCAoKSA9PiB7XG5cdFx0aXQoXG5cdFx0XHRcIkNoZWNrYm94XCIsXG5cdFx0XHR7XG5cdFx0XHRcdFwicmVmZXJlbmNlc1wiOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XCJ0eXBlXCI6IFwiSklSQVwiLFxuXHRcdFx0XHRcdFx0XCJJRFwiOiBcIkZJT1JJVEVDSFAxLTIxNjUwXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0sXG5cdFx0XHRhc3luYyAoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHhtbEZpZWxkID0gYDxpbnRlcm5hbE1hY3JvOkZpZWxkIHhtbG5zOmludGVybmFsTWFjcm89XCJzYXAuZmUubWFjcm9zLmludGVybmFsXCJcblx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eVNldD1cIntlbnRpdHlTZXQ+fVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhRmllbGQ9XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YVBvaW50I0Jvb2xlYW5cIlxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5gO1xuXHRcdFx0XHRjb25zdCB0ZW1wbGF0ZWRYTUwgPSBhd2FpdCBnZXRUZW1wbGF0ZWRYTUwoeG1sRmllbGQsIHNNZXRhZGF0YVVybCwgbUJpbmRpbmdDb250ZXh0cywge30pO1xuXHRcdFx0XHRleHBlY3QodGVtcGxhdGVkWE1MKS50b01hdGNoU25hcHNob3QoKTtcblx0XHRcdH1cblx0XHQpO1xuXG5cdFx0aXQoXG5cdFx0XHRcIkNoZWNrYm94IHdpdGggdmFsdWUgaGVscFwiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0yMTY1MFwiXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNCb29sZWFuV2l0aFZhbHVlSGVscE51bWJlclwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPmA7XG5cdFx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdFx0fVxuXHRcdCk7XG5cblx0XHRpdChcblx0XHRcdFwiRmlsZSAtIE1lZGlhVHlwZSBpcyBhIGpwZ1wiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0yMTY1MFwiIC8vQWRkZWQgd2l0aCB0aGlzIG9uZSwgYnV0IG9ubHkgYW4gZW5oYW5jZW1lbnQgb2YgbWlzc2luZyB0ZXN0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNGaWxlXCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0XHR9XG5cdFx0KTtcblxuXHRcdGl0KFxuXHRcdFx0XCJUZXh0QXJlYVwiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0yMTY1MFwiIC8vQWRkZWQgd2l0aCB0aGlzIG9uZSwgYnV0IG9ubHkgYW4gZW5oYW5jZW1lbnQgb2YgbWlzc2luZyB0ZXN0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNUZXh0QXJlYVwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPmA7XG5cdFx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdFx0aXQoXG5cdFx0XHRcIkRhdGVcIixcblx0XHRcdHtcblx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFx0XHRcIklEXCI6IFwiRklPUklURUNIUDEtMjE2NTBcIiAvL0FkZGVkIHdpdGggdGhpcyBvbmUsIGJ1dCBvbmx5IGFuIGVuaGFuY2VtZW50IG9mIG1pc3NpbmcgdGVzdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSxcblx0XHRcdGFzeW5jICgpID0+IHtcblx0XHRcdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RmllbGQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0PVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFGaWVsZD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnQjRGF0ZU9uZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPmA7XG5cdFx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdFx0aXQoXG5cdFx0XHRcIlRpbWUgKFRpbWVPZkRheSlcIixcblx0XHRcdHtcblx0XHRcdFx0XCJyZWZlcmVuY2VzXCI6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcInR5cGVcIjogXCJKSVJBXCIsXG5cdFx0XHRcdFx0XHRcIklEXCI6IFwiRklPUklURUNIUDEtMjE2NTBcIiAvL0FkZGVkIHdpdGggdGhpcyBvbmUsIGJ1dCBvbmx5IGFuIGVuaGFuY2VtZW50IG9mIG1pc3NpbmcgdGVzdFxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSxcblx0XHRcdGFzeW5jICgpID0+IHtcblx0XHRcdFx0Y29uc3QgeG1sRmllbGQgPSBgPGludGVybmFsTWFjcm86RmllbGQgeG1sbnM6aW50ZXJuYWxNYWNybz1cInNhcC5mZS5tYWNyb3MuaW50ZXJuYWxcIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5U2V0PVwie2VudGl0eVNldD59XCJcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFGaWVsZD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhUG9pbnQjVGltZU9mRGF5XCJcblx0XHRcdFx0XHRcdFx0XHRcdC8+YDtcblx0XHRcdFx0Y29uc3QgdGVtcGxhdGVkWE1MID0gYXdhaXQgZ2V0VGVtcGxhdGVkWE1MKHhtbEZpZWxkLCBzTWV0YWRhdGFVcmwsIG1CaW5kaW5nQ29udGV4dHMsIHt9KTtcblx0XHRcdFx0ZXhwZWN0KHRlbXBsYXRlZFhNTCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdFx0XHR9XG5cdFx0KTtcblxuXHRcdGl0KFxuXHRcdFx0XCJUaW1lc3RhbXAgKERhdGVUaW1lT2Zmc2V0KVwiLFxuXHRcdFx0e1xuXHRcdFx0XHRcInJlZmVyZW5jZXNcIjogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFwidHlwZVwiOiBcIkpJUkFcIixcblx0XHRcdFx0XHRcdFwiSURcIjogXCJGSU9SSVRFQ0hQMS0yMTY1MFwiIC8vQWRkZWQgd2l0aCB0aGlzIG9uZSwgYnV0IG9ubHkgYW4gZW5oYW5jZW1lbnQgb2YgbWlzc2luZyB0ZXN0XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9LFxuXHRcdFx0YXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB4bWxGaWVsZCA9IGA8aW50ZXJuYWxNYWNybzpGaWVsZCB4bWxuczppbnRlcm5hbE1hY3JvPVwic2FwLmZlLm1hY3Jvcy5pbnRlcm5hbFwiXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHlTZXQ9XCJ7ZW50aXR5U2V0Pn1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YUZpZWxkPVwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFQb2ludCNEYXRlVGltZU9mZnNldFwiXG5cdFx0XHRcdFx0XHRcdFx0XHQvPmA7XG5cdFx0XHRcdGNvbnN0IHRlbXBsYXRlZFhNTCA9IGF3YWl0IGdldFRlbXBsYXRlZFhNTCh4bWxGaWVsZCwgc01ldGFkYXRhVXJsLCBtQmluZGluZ0NvbnRleHRzLCB7fSk7XG5cdFx0XHRcdGV4cGVjdCh0ZW1wbGF0ZWRYTUwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHRcdFx0fVxuXHRcdCk7XG5cdH0pO1xufSk7XG4iXX0=
@@ -91,6 +91,17 @@ describe("MacroField - DataField Types - ", () => {
91
91
  });
92
92
  });
93
93
 
94
+ describe("DataFieldGroup - ", () => {
95
+ it("Rating Indicator", async () => {
96
+ const xmlField = `<internalMacro:Field xmlns:internalMacro="sap.fe.macros.internal"
97
+ entitySet="{entitySet>}"
98
+ dataField="@com.sap.vocabularies.UI.v1.LineItem#DataPoint/2"
99
+ />`;
100
+ const templatedXML = await getTemplatedXML(xmlField, sMetadataUrl, mBindingContexts, {});
101
+ expect(templatedXML).toMatchSnapshot();
102
+ });
103
+ });
104
+
94
105
  describe("DataField - InputWithvalueHelp ", () => {
95
106
  it("Datapoint visualization Integer - no measureDisplayMode", async () => {
96
107
  const xmlField = `<internalMacro:Field xmlns:internalMacro="sap.fe.macros.internal"
@@ -0,0 +1,66 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/test/JestTemplatingHelper"], function (JestTemplatingHelper) {
6
+ "use strict";
7
+
8
+ var processFragment = JestTemplatingHelper.processFragment;
9
+
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
+
12
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
+
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+
16
+ describe("Fragment: FormElement", function () {
17
+ var thisRef = {
18
+ id: "~id",
19
+ label: "~label",
20
+ visible: true,
21
+ fieldsAvailable: false
22
+ };
23
+ var metaPath = {};
24
+ it("Field with standard properties", function () {
25
+ try {
26
+ return Promise.resolve(processFragment("sap.fe.macros.FormElement", {
27
+ this: thisRef,
28
+ metaPath: metaPath
29
+ })).then(function (xml) {
30
+ expect(xml).toMatchSnapshot();
31
+ });
32
+ } catch (e) {
33
+ return Promise.reject(e);
34
+ }
35
+ });
36
+ it("Field not visible", function () {
37
+ try {
38
+ return Promise.resolve(processFragment("sap.fe.macros.FormElement", {
39
+ this: _objectSpread(_objectSpread({}, thisRef), {}, {
40
+ visible: false
41
+ }),
42
+ metaPath: metaPath
43
+ })).then(function (xml) {
44
+ expect(xml).toMatchSnapshot();
45
+ });
46
+ } catch (e) {
47
+ return Promise.reject(e);
48
+ }
49
+ });
50
+ it("No field but add a slot", function () {
51
+ try {
52
+ return Promise.resolve(processFragment("sap.fe.macros.FormElement", {
53
+ this: _objectSpread(_objectSpread({}, thisRef), {}, {
54
+ fieldsAvailable: true
55
+ }),
56
+ metaPath: metaPath
57
+ })).then(function (xml) {
58
+ expect(xml).toMatchSnapshot();
59
+ });
60
+ } catch (e) {
61
+ return Promise.reject(e);
62
+ }
63
+ });
64
+ });
65
+ }, false);
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm1FbGVtZW50LnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJ0aGlzUmVmIiwiaWQiLCJsYWJlbCIsInZpc2libGUiLCJmaWVsZHNBdmFpbGFibGUiLCJtZXRhUGF0aCIsIml0IiwicHJvY2Vzc0ZyYWdtZW50IiwidGhpcyIsInhtbCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUFBLFFBQVEsQ0FBQyx1QkFBRCxFQUEwQixZQUFXO0FBQzVDLFFBQU1DLE9BQU8sR0FBRztBQUNmQyxNQUFBQSxFQUFFLEVBQUUsS0FEVztBQUVmQyxNQUFBQSxLQUFLLEVBQUUsUUFGUTtBQUdmQyxNQUFBQSxPQUFPLEVBQUUsSUFITTtBQUlmQyxNQUFBQSxlQUFlLEVBQUU7QUFKRixLQUFoQjtBQU1BLFFBQU1DLFFBQVEsR0FBRyxFQUFqQjtBQUVBQyxJQUFBQSxFQUFFLENBQUMsZ0NBQUQ7QUFBQSxVQUFvRDtBQUFBLCtCQUNuQ0MsZUFBZSxDQUFDLDJCQUFELEVBQThCO0FBQzlEQyxVQUFBQSxJQUFJLEVBQUVSLE9BRHdEO0FBRTlESyxVQUFBQSxRQUFRLEVBQVJBO0FBRjhELFNBQTlCLENBRG9CLGlCQUMvQ0ksR0FEK0M7QUFLckRDLFVBQUFBLE1BQU0sQ0FBQ0QsR0FBRCxDQUFOLENBQVlFLGVBQVo7QUFMcUQ7QUFNckQsT0FOQztBQUFBO0FBQUE7QUFBQSxNQUFGO0FBUUFMLElBQUFBLEVBQUUsQ0FBQyxtQkFBRDtBQUFBLFVBQXVDO0FBQUEsK0JBQ3RCQyxlQUFlLENBQUMsMkJBQUQsRUFBOEI7QUFDOURDLFVBQUFBLElBQUksa0NBQU9SLE9BQVA7QUFBZ0JHLFlBQUFBLE9BQU8sRUFBRTtBQUF6QixZQUQwRDtBQUU5REUsVUFBQUEsUUFBUSxFQUFSQTtBQUY4RCxTQUE5QixDQURPLGlCQUNsQ0ksR0FEa0M7QUFLeENDLFVBQUFBLE1BQU0sQ0FBQ0QsR0FBRCxDQUFOLENBQVlFLGVBQVo7QUFMd0M7QUFNeEMsT0FOQztBQUFBO0FBQUE7QUFBQSxNQUFGO0FBUUFMLElBQUFBLEVBQUUsQ0FBQyx5QkFBRDtBQUFBLFVBQTZDO0FBQUEsK0JBQzVCQyxlQUFlLENBQUMsMkJBQUQsRUFBOEI7QUFDOURDLFVBQUFBLElBQUksa0NBQU9SLE9BQVA7QUFBZ0JJLFlBQUFBLGVBQWUsRUFBRTtBQUFqQyxZQUQwRDtBQUU5REMsVUFBQUEsUUFBUSxFQUFSQTtBQUY4RCxTQUE5QixDQURhLGlCQUN4Q0ksR0FEd0M7QUFLOUNDLFVBQUFBLE1BQU0sQ0FBQ0QsR0FBRCxDQUFOLENBQVlFLGVBQVo7QUFMOEM7QUFNOUMsT0FOQztBQUFBO0FBQUE7QUFBQSxNQUFGO0FBT0EsR0FoQ08sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvY2Vzc0ZyYWdtZW50IH0gZnJvbSBcInNhcC9mZS90ZXN0L0plc3RUZW1wbGF0aW5nSGVscGVyXCI7XG5cbmRlc2NyaWJlKFwiRnJhZ21lbnQ6IEZvcm1FbGVtZW50XCIsIGZ1bmN0aW9uKCkge1xuXHRjb25zdCB0aGlzUmVmID0ge1xuXHRcdGlkOiBcIn5pZFwiLFxuXHRcdGxhYmVsOiBcIn5sYWJlbFwiLFxuXHRcdHZpc2libGU6IHRydWUsXG5cdFx0ZmllbGRzQXZhaWxhYmxlOiBmYWxzZVxuXHR9O1xuXHRjb25zdCBtZXRhUGF0aCA9IHt9O1xuXG5cdGl0KFwiRmllbGQgd2l0aCBzdGFuZGFyZCBwcm9wZXJ0aWVzXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdGNvbnN0IHhtbCA9IGF3YWl0IHByb2Nlc3NGcmFnbWVudChcInNhcC5mZS5tYWNyb3MuRm9ybUVsZW1lbnRcIiwge1xuXHRcdFx0dGhpczogdGhpc1JlZixcblx0XHRcdG1ldGFQYXRoXG5cdFx0fSk7XG5cdFx0ZXhwZWN0KHhtbCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xuXG5cdGl0KFwiRmllbGQgbm90IHZpc2libGVcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0Y29uc3QgeG1sID0gYXdhaXQgcHJvY2Vzc0ZyYWdtZW50KFwic2FwLmZlLm1hY3Jvcy5Gb3JtRWxlbWVudFwiLCB7XG5cdFx0XHR0aGlzOiB7IC4uLnRoaXNSZWYsIHZpc2libGU6IGZhbHNlIH0sXG5cdFx0XHRtZXRhUGF0aFxuXHRcdH0pO1xuXHRcdGV4cGVjdCh4bWwpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuXHR9KTtcblxuXHRpdChcIk5vIGZpZWxkIGJ1dCBhZGQgYSBzbG90XCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdGNvbnN0IHhtbCA9IGF3YWl0IHByb2Nlc3NGcmFnbWVudChcInNhcC5mZS5tYWNyb3MuRm9ybUVsZW1lbnRcIiwge1xuXHRcdFx0dGhpczogeyAuLi50aGlzUmVmLCBmaWVsZHNBdmFpbGFibGU6IHRydWUgfSxcblx0XHRcdG1ldGFQYXRoXG5cdFx0fSk7XG5cdFx0ZXhwZWN0KHhtbCkudG9NYXRjaFNuYXBzaG90KCk7XG5cdH0pO1xufSk7XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { processFragment } from "sap/fe/test/JestTemplatingHelper";
2
+
3
+ describe("Fragment: FormElement", function() {
4
+ const thisRef = {
5
+ id: "~id",
6
+ label: "~label",
7
+ visible: true,
8
+ fieldsAvailable: false
9
+ };
10
+ const metaPath = {};
11
+
12
+ it("Field with standard properties", async function() {
13
+ const xml = await processFragment("sap.fe.macros.FormElement", {
14
+ this: thisRef,
15
+ metaPath
16
+ });
17
+ expect(xml).toMatchSnapshot();
18
+ });
19
+
20
+ it("Field not visible", async function() {
21
+ const xml = await processFragment("sap.fe.macros.FormElement", {
22
+ this: { ...thisRef, visible: false },
23
+ metaPath
24
+ });
25
+ expect(xml).toMatchSnapshot();
26
+ });
27
+
28
+ it("No field but add a slot", async function() {
29
+ const xml = await processFragment("sap.fe.macros.FormElement", {
30
+ this: { ...thisRef, fieldsAvailable: true },
31
+ metaPath
32
+ });
33
+ expect(xml).toMatchSnapshot();
34
+ });
35
+ });