@sap/open.fe 1.96.0 → 1.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/package.json +1 -1
  2. package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
  3. package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
  4. package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +57 -42
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
  6. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
  7. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +2 -2
  8. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +4 -4
  9. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
  10. package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
  11. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/resources.json +4 -4
  13. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  14. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  15. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  16. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  17. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  18. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +2 -2
  19. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
  20. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +59 -274
  21. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
  22. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +52 -64
  23. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
  24. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +2 -2
  25. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
  26. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +18 -22
  27. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
  28. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +80 -4
  29. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
  30. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +42 -23
  31. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
  32. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +36 -21
  33. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  34. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +9 -3
  35. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  36. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +20 -50
  37. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  38. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +222 -102
  39. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
  40. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +33 -6
  41. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  42. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +109 -111
  43. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +1 -1
  44. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +8 -0
  45. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +5 -0
  46. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
  47. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +2 -1
  48. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  49. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
  50. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +10 -1
  51. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  52. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +9 -1
  53. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +2 -2
  54. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  55. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
  56. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +67 -40
  57. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  58. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -3
  59. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  60. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -3
  61. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +57 -18
  62. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  63. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +51 -13
  64. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -19
  65. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  66. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +139 -18
  67. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +9 -1
  68. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +1 -1
  69. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +4 -0
  70. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +18 -7
  71. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  72. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +17 -12
  73. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +2 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  75. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
  76. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +2 -2
  77. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +27 -4
  78. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  79. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
  80. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  81. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +211 -0
  82. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +5 -0
  83. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
  84. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +32 -0
  85. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +5 -0
  86. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +51 -0
  88. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  89. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +1 -1
  90. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +10 -9
  91. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +1 -1
  92. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +232 -228
  93. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
  94. package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
  95. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  96. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +15 -1
  97. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +10 -0
  98. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +10 -0
  99. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +10 -0
  100. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -0
  101. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +10 -0
  102. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +10 -0
  103. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +10 -0
  104. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +10 -0
  105. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +10 -0
  106. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +10 -0
  107. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +6 -0
  108. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +11 -1
  109. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +11 -1
  110. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +10 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +10 -0
  112. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +10 -0
  113. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +10 -0
  114. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +10 -0
  115. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +10 -0
  116. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +10 -0
  117. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +10 -0
  118. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +10 -0
  119. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +11 -1
  120. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +10 -0
  121. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +10 -0
  122. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +19 -9
  123. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +10 -0
  124. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +10 -0
  125. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +10 -0
  126. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +10 -0
  127. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +10 -0
  128. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +10 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +10 -0
  130. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +10 -0
  131. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +11 -1
  132. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +10 -0
  133. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +10 -0
  134. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +10 -0
  135. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +10 -0
  136. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +10 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +10 -0
  138. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +10 -0
  139. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +10 -0
  140. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +10 -0
  141. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +10 -0
  142. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +10 -0
  143. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +10 -0
  144. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +10 -0
  145. package/packages/sap.fe.core/src/sap/fe/core/resources.json +200 -121
  146. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +30 -19
  147. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  148. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -1
  149. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  150. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +80 -7
  151. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  152. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +42 -2
  153. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
  154. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  155. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  156. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +4 -0
  157. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +1 -0
  158. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +2 -2
  159. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +13 -10
  160. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +7 -4
  161. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +1 -2
  162. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +1 -0
  163. package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +119 -0
  164. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +285 -4
  165. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +121 -0
  166. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +79 -0
  167. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +147 -0
  168. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +96 -0
  169. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +51 -18
  170. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +109 -17
  171. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +66 -0
  172. package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelper.cds +33 -0
  173. package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelperMainEntitySortableFalse.cds +12 -0
  174. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +8 -8
  175. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +68 -0
  176. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +38 -0
  177. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +483 -0
  178. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +376 -0
  179. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.js +101 -0
  180. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.ts +105 -0
  181. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.js +103 -0
  182. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.ts +106 -0
  183. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.js +118 -0
  184. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.ts +118 -0
  185. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.js +101 -0
  186. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.ts +102 -0
  187. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +118 -1
  188. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +70 -0
  189. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.js +89 -0
  190. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.ts +73 -0
  191. package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +4 -2
  192. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +6 -0
  193. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  194. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  195. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +15 -5
  196. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  197. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +9 -5
  198. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
  199. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +30 -11
  200. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +1 -1
  201. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +3 -5
  202. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
  203. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +3 -5
  204. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +17 -3
  205. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +1 -1
  206. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +1 -1
  207. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +1 -2
  208. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +4 -4
  209. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  210. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +6 -15
  211. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +14 -12
  212. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +1 -1
  213. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  214. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +2 -1
  215. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +12 -1
  216. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  217. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +15 -8
  218. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  219. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +10 -0
  220. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
  221. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
  222. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +81 -9
  223. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  224. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +13 -3
  225. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  226. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +5 -5
  227. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  228. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +4 -4
  229. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +1 -7
  230. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -3
  231. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  232. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +1 -1
  233. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +46 -0
  234. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +6 -0
  235. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +17 -8
  236. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +26 -16
  237. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +1 -0
  238. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +4 -13
  239. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  240. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +10 -10
  241. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +5 -3
  242. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
  243. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +72 -8
  244. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  245. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  246. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +12 -11
  247. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
  248. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +93 -91
  249. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  250. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  251. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  252. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +1 -1
  253. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +1 -1
  254. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +5 -0
  255. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +2 -2
  256. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +2 -2
  257. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +2 -2
  258. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +2 -2
  259. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +2 -2
  260. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +2 -2
  261. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +2 -2
  262. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +2 -2
  263. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +1 -1
  264. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
  265. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -0
  266. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +2 -2
  267. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +2 -2
  268. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +2 -2
  269. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +2 -2
  270. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +2 -2
  271. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +2 -2
  272. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +2 -2
  273. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +2 -2
  274. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +2 -2
  275. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +2 -2
  276. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +2 -2
  277. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +2 -2
  278. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -3
  279. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +2 -2
  280. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +2 -2
  281. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +2 -2
  282. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +2 -2
  283. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +2 -2
  284. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +2 -2
  285. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +2 -2
  286. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +2 -2
  287. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +2 -2
  288. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +2 -2
  289. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +2 -2
  290. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +2 -2
  291. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +2 -2
  292. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +2 -2
  293. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +2 -2
  294. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +2 -2
  295. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +2 -2
  296. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +2 -2
  297. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +2 -2
  298. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +2 -2
  299. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +2 -2
  300. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +2 -2
  301. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +21 -11
  302. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +2 -1
  303. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +149 -110
  304. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +3 -0
  305. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +70 -29
  306. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +53 -36
  307. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  308. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +1 -1
  309. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
  310. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +3 -4
  311. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  312. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +2 -2
  313. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  314. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  315. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +844 -0
  316. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +833 -0
  317. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +495 -0
  318. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +440 -0
  319. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +469 -0
  320. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +448 -0
  321. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +94 -0
  322. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +70 -0
  323. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +12 -1
  324. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +11 -0
  325. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +61 -0
  326. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.js +46 -0
  327. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.ts +30 -0
  328. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +13 -1
  329. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +11 -0
  330. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.js +66 -0
  331. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.ts +35 -0
  332. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +48 -1
  333. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +56 -0
  334. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +68 -0
  335. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +65 -0
  336. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +82 -0
  337. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +23 -5
  338. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldHelper.spec.ts.snap +47 -0
  339. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +52 -3
  340. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormElement.spec.ts.snap +25 -0
  341. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +0 -3
  342. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +69 -0
  343. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +451 -0
  344. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldHelper.xml +68 -0
  345. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +13 -1
  346. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +152 -0
  347. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +116 -0
  348. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +115 -0
  349. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.js +86 -0
  350. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.ts +54 -0
  351. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/__snapshots__/FormElement.spec.ts.snap +33 -0
  352. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +154 -0
  353. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +128 -0
  354. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +7 -2
  355. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +23 -12
  356. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1 -1
  357. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
  358. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +1 -1
  359. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
  360. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +108 -1
  361. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  362. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  363. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  364. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  365. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
  366. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  367. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  368. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  369. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  370. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  371. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  372. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  373. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  374. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  375. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +4 -4
  376. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +1 -1
  377. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  378. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  379. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +3 -3
  380. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +1 -1
  381. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +1 -1
  382. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  383. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  384. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  385. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  386. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  387. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  388. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  389. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -2
  390. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +91 -60
  391. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  392. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  393. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +31 -5
  394. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  395. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +5 -5
  396. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +2 -2
  397. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  398. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +18 -1
  399. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  400. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +114 -85
  401. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  402. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +8 -0
  403. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
  404. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  405. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +23 -3
  406. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  407. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +15 -15
  408. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +6 -5
  409. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +1 -1
  410. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +6 -4
  411. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +26 -16
  412. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +5 -5
  413. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +63 -9
  414. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
  415. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +54 -32
  416. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
  417. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +24 -21
  418. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
  419. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +2 -1
  420. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +1 -1
  421. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +2 -0
  422. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  423. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -9
  424. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
  425. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +23 -30
  426. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  427. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  428. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
  429. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +51 -60
  430. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  431. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
  432. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  433. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  434. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +95 -0
  435. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +66 -0
  436. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +134 -0
  437. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +94 -0
  438. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +61 -0
  439. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/ObjectPageHeaderForm.spec.ts.snap +53 -0
  440. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  441. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  442. package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +0 -6
  443. package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +1 -1
  444. package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +14 -3
  445. package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +1 -1
  446. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +85 -8
  447. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
  448. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +54 -2
  449. package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +0 -11
  450. package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
  451. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +0 -38
  452. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
  453. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +0 -12
  454. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +1 -1
  455. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +22 -1
  456. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  457. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +14 -0
  458. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +21 -0
  459. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +9 -5
  460. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
  461. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +18 -5
  462. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +1 -1
  463. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +25 -5
  464. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +1 -1
  465. package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +9 -0
  466. package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +1 -1
  467. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +38 -4
  468. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +1 -1
  469. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +33 -4
  470. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +1 -1
  471. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +1 -1
  472. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  473. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +3 -3
  474. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +23 -16
  475. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
  476. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  477. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  478. package/packages/sap.fe.test/src/sap/fe/test/resources.json +36 -34
  479. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  480. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  481. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -1
  482. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  483. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.96.json +0 -49
  484. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.96.json +0 -189
  485. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldRuntime.qunit.js +0 -73
  486. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.96.json +0 -160
  487. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/relnote/changes-1.96.json +0 -17
  488. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +0 -26
  489. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +0 -6
  490. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.96.json +0 -153
@@ -0,0 +1,469 @@
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/macros/chart/ChartUtils", "sap/fe/macros/filter/FilterUtils"], function (ChartUtils, FilterUtils) {
6
+ "use strict";
7
+
8
+ describe("ChartUtils", function () {
9
+ var mockMdcChart = {
10
+ _getVizFrame: jest.fn(),
11
+ getBindingContext: jest.fn(),
12
+ getSelectedDataPoints: jest.fn(),
13
+ getDrillStack: jest.fn(),
14
+ getControlDelegate: jest.fn(),
15
+ getFilter: jest.fn(function () {
16
+ return "SalesOrderAggregate::SalesOrderManageList--fe::FilterBar::SalesOrderManage";
17
+ }),
18
+ getSelectionBehavior: jest.fn(),
19
+ data: jest.fn(function (sProp) {
20
+ if (sProp === "entityType") {
21
+ return "/SalesOrderManage/";
22
+ }
23
+ })
24
+ };
25
+ var mockBindingContext = {
26
+ getObject: jest.fn(),
27
+ setProperty: jest.fn()
28
+ };
29
+ var mockVizFrame = {
30
+ vizSelection: jest.fn()
31
+ };
32
+ var mockControlDelegate = {
33
+ _getChart: jest.fn()
34
+ };
35
+ describe("getChartModel", function () {
36
+ it("check selected chart model", function () {
37
+ try {
38
+ mockBindingContext.getObject.mockReturnValue([{
39
+ bAnd: true,
40
+ _bMultiFilter: true,
41
+ aFilters: [{
42
+ oValue1: "1710",
43
+ sOperator: "EQ",
44
+ sPath: "SalesOrganization",
45
+ _bMultiFilter: false
46
+ }]
47
+ }]);
48
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
49
+ expect(ChartUtils.getChartModel(mockMdcChart, "", {})).toEqual([{
50
+ bAnd: true,
51
+ _bMultiFilter: true,
52
+ aFilters: [{
53
+ oValue1: "1710",
54
+ sOperator: "EQ",
55
+ sPath: "SalesOrganization",
56
+ _bMultiFilter: false
57
+ }]
58
+ }]);
59
+ return Promise.resolve();
60
+ } catch (e) {
61
+ return Promise.reject(e);
62
+ }
63
+ });
64
+ it("no selected chart model", function () {
65
+ try {
66
+ mockBindingContext.getObject.mockReturnValue(undefined);
67
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
68
+ expect(ChartUtils.getChartModel(mockMdcChart, "", {})).toEqual(undefined);
69
+ return Promise.resolve();
70
+ } catch (e) {
71
+ return Promise.reject(e);
72
+ }
73
+ });
74
+ });
75
+ describe("getChartSelections", function () {
76
+ it("check Chart Selections", function () {
77
+ try {
78
+ mockBindingContext.getObject.mockReturnValue([{
79
+ bAnd: true,
80
+ _bMultiFilter: true,
81
+ aFilters: [{
82
+ oValue1: "1710",
83
+ sOperator: "EQ",
84
+ sPath: "SalesOrganization",
85
+ _bMultiFilter: false
86
+ }]
87
+ }]);
88
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
89
+ expect(ChartUtils.getChartSelections(mockMdcChart, false)).toEqual([{
90
+ bAnd: true,
91
+ _bMultiFilter: true,
92
+ aFilters: [{
93
+ oValue1: "1710",
94
+ sOperator: "EQ",
95
+ sPath: "SalesOrganization",
96
+ _bMultiFilter: false
97
+ }]
98
+ }]);
99
+ return Promise.resolve();
100
+ } catch (e) {
101
+ return Promise.reject(e);
102
+ }
103
+ });
104
+ it("no Chart Selections", function () {
105
+ try {
106
+ mockBindingContext.getObject.mockReturnValue(undefined);
107
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
108
+ expect(ChartUtils.getChartSelections(mockMdcChart, false)).toEqual([]);
109
+ return Promise.resolve();
110
+ } catch (e) {
111
+ return Promise.reject(e);
112
+ }
113
+ });
114
+ });
115
+ describe("getFilterBarFilterInfo", function () {
116
+ it("no filter-bar filters selected", function () {
117
+ try {
118
+ mockBindingContext.getObject.mockReturnValue(undefined);
119
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
120
+ expect(ChartUtils.getFilterBarFilterInfo(mockMdcChart)).toEqual({
121
+ filters: [],
122
+ search: undefined,
123
+ bindingPath: undefined
124
+ });
125
+ return Promise.resolve();
126
+ } catch (e) {
127
+ return Promise.reject(e);
128
+ }
129
+ });
130
+ it("check selected filter-bar filters", function () {
131
+ try {
132
+ mockBindingContext.getObject.mockReturnValue(undefined);
133
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
134
+ jest.spyOn(FilterUtils, "getFilterInfo").mockReturnValueOnce({
135
+ filters: [{
136
+ oValue1: "02",
137
+ sOperator: "EQ",
138
+ sPath: "ShippingCondition",
139
+ _bMultiFilter: false
140
+ }, {
141
+ oValue1: "69406910",
142
+ sOperator: "EQ",
143
+ sPath: "SoldToParty",
144
+ _bMultiFilter: false
145
+ }]
146
+ });
147
+ expect(ChartUtils.getFilterBarFilterInfo(mockMdcChart)).toEqual({
148
+ filters: [{
149
+ oValue1: "02",
150
+ sOperator: "EQ",
151
+ sPath: "ShippingCondition",
152
+ _bMultiFilter: false
153
+ }, {
154
+ oValue1: "69406910",
155
+ sOperator: "EQ",
156
+ sPath: "SoldToParty",
157
+ _bMultiFilter: false
158
+ }],
159
+ search: undefined,
160
+ bindingPath: undefined
161
+ });
162
+ return Promise.resolve();
163
+ } catch (e) {
164
+ return Promise.reject(e);
165
+ }
166
+ });
167
+ });
168
+ describe("getChartFilters", function () {
169
+ it("no Chart filters selected", function () {
170
+ try {
171
+ mockBindingContext.getObject.mockReturnValue(undefined);
172
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
173
+ expect(ChartUtils.getChartFilters(mockMdcChart)).toEqual({
174
+ aFilters: [],
175
+ _bMultiFilter: true
176
+ });
177
+ return Promise.resolve();
178
+ } catch (e) {
179
+ return Promise.reject(e);
180
+ }
181
+ });
182
+ it("check Chart filters selected", function () {
183
+ try {
184
+ mockBindingContext.getObject.mockReturnValue([{
185
+ bAnd: true,
186
+ _bMultiFilter: true,
187
+ aFilters: [{
188
+ oValue1: "1710",
189
+ sOperator: "EQ",
190
+ sPath: "SalesOrganization",
191
+ _bMultiFilter: false
192
+ }]
193
+ }]);
194
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
195
+ expect(ChartUtils.getChartFilters(mockMdcChart)).toEqual({
196
+ _bMultiFilter: true,
197
+ aFilters: [{
198
+ aFilters: [{
199
+ oValue1: "1710",
200
+ sOperator: "EQ",
201
+ sPath: "SalesOrganization",
202
+ _bMultiFilter: false
203
+ }],
204
+ bAnd: true,
205
+ _bMultiFilter: true
206
+ }]
207
+ });
208
+ return Promise.resolve();
209
+ } catch (e) {
210
+ return Promise.reject(e);
211
+ }
212
+ });
213
+ });
214
+ describe("getAllFilterInfo", function () {
215
+ it("no filters selected", function () {
216
+ try {
217
+ mockBindingContext.getObject.mockReturnValue(undefined);
218
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
219
+ expect(ChartUtils.getAllFilterInfo(mockMdcChart)).toEqual({
220
+ filters: [],
221
+ search: undefined,
222
+ bindingPath: undefined
223
+ });
224
+ return Promise.resolve();
225
+ } catch (e) {
226
+ return Promise.reject(e);
227
+ }
228
+ });
229
+ it("check Chart filters selected", function () {
230
+ try {
231
+ mockBindingContext.getObject.mockReturnValue([{
232
+ bAnd: true,
233
+ _bMultiFilter: true,
234
+ aFilters: [{
235
+ oValue1: "1710",
236
+ sOperator: "EQ",
237
+ sPath: "SalesOrganization",
238
+ _bMultiFilter: false
239
+ }]
240
+ }]);
241
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
242
+ expect(ChartUtils.getAllFilterInfo(mockMdcChart)).toEqual({
243
+ filters: [{
244
+ _bMultiFilter: true,
245
+ aFilters: [{
246
+ bAnd: true,
247
+ _bMultiFilter: true,
248
+ aFilters: [{
249
+ oValue1: "1710",
250
+ sOperator: "EQ",
251
+ sPath: "SalesOrganization",
252
+ _bMultiFilter: false
253
+ }]
254
+ }]
255
+ }]
256
+ });
257
+ return Promise.resolve();
258
+ } catch (e) {
259
+ return Promise.reject(e);
260
+ }
261
+ });
262
+ it("check Chart filters and filter-bar filter selected", function () {
263
+ try {
264
+ mockBindingContext.getObject.mockReturnValue([{
265
+ bAnd: true,
266
+ _bMultiFilter: true,
267
+ aFilters: [{
268
+ oValue1: "1710",
269
+ sOperator: "EQ",
270
+ sPath: "SalesOrganization",
271
+ _bMultiFilter: false
272
+ }]
273
+ }]);
274
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
275
+ jest.spyOn(FilterUtils, "getFilterInfo").mockReturnValueOnce({
276
+ filters: [{
277
+ oValue1: "2919431",
278
+ sOperator: "EQ",
279
+ sPath: "SalesOrder",
280
+ _bMultiFilter: false
281
+ }]
282
+ });
283
+ expect(ChartUtils.getAllFilterInfo(mockMdcChart)).toEqual({
284
+ filters: [{
285
+ oValue1: "2919431",
286
+ sOperator: "EQ",
287
+ sPath: "SalesOrder",
288
+ _bMultiFilter: false
289
+ }, {
290
+ _bMultiFilter: true,
291
+ aFilters: [{
292
+ bAnd: true,
293
+ _bMultiFilter: true,
294
+ aFilters: [{
295
+ oValue1: "1710",
296
+ sOperator: "EQ",
297
+ sPath: "SalesOrganization",
298
+ _bMultiFilter: false
299
+ }]
300
+ }]
301
+ }]
302
+ });
303
+ return Promise.resolve();
304
+ } catch (e) {
305
+ return Promise.reject(e);
306
+ }
307
+ });
308
+ });
309
+ describe("getVizSelection", function () {
310
+ it("check Viz selected", function () {
311
+ try {
312
+ mockVizFrame.vizSelection.mockReturnValue([{
313
+ data: {
314
+ SalesOrganization: "1710",
315
+ "SalesOrganizzation.d": "Food Sales Org",
316
+ totalPricing: 110000,
317
+ _context_row_number: 5
318
+ }
319
+ }, {
320
+ data: {
321
+ SalesOrganization: "AFR",
322
+ "SalesOrganizzation.d": "MySalesOrg",
323
+ totalPricing: 200000,
324
+ _context_row_number: 9
325
+ }
326
+ }]);
327
+
328
+ mockMdcChart._getVizFrame.mockReturnValue(mockVizFrame);
329
+
330
+ mockMdcChart.getBindingContext.mockReturnValue(mockVizFrame);
331
+ expect(ChartUtils.getVizSelection(mockMdcChart)).toEqual([{
332
+ data: {
333
+ SalesOrganization: "1710",
334
+ "SalesOrganizzation.d": "Food Sales Org",
335
+ totalPricing: 110000,
336
+ _context_row_number: 5
337
+ }
338
+ }, {
339
+ data: {
340
+ SalesOrganization: "AFR",
341
+ "SalesOrganizzation.d": "MySalesOrg",
342
+ totalPricing: 200000,
343
+ _context_row_number: 9
344
+ }
345
+ }]);
346
+ return Promise.resolve();
347
+ } catch (e) {
348
+ return Promise.reject(e);
349
+ }
350
+ });
351
+ it("no Viz selected", function () {
352
+ try {
353
+ mockVizFrame.vizSelection.mockReturnValue([]);
354
+ mockMdcChart.getBindingContext.mockReturnValue(mockVizFrame);
355
+ expect(ChartUtils.getVizSelection(mockMdcChart)).toEqual([]);
356
+ return Promise.resolve();
357
+ } catch (e) {
358
+ return Promise.reject(e);
359
+ }
360
+ });
361
+ });
362
+ describe("getChartSelectedData", function () {
363
+ mockMdcChart.getSelectionBehavior.mockReturnValue("DATAPOINT");
364
+ it("check selected Datapoint", function () {
365
+ try {
366
+ mockMdcChart.getSelectedDataPoints.mockReturnValue({
367
+ count: 1,
368
+ dataPoints: [{
369
+ index: 5,
370
+ measures: ["totalPricing"],
371
+ context: {}
372
+ }]
373
+ });
374
+ expect(ChartUtils.getChartSelectedData(mockMdcChart)).toEqual([{
375
+ index: 5,
376
+ measures: ["totalPricing"],
377
+ context: {}
378
+ }]);
379
+ return Promise.resolve();
380
+ } catch (e) {
381
+ return Promise.reject(e);
382
+ }
383
+ });
384
+ it("no selected Datapoints", function () {
385
+ try {
386
+ mockMdcChart.getSelectedDataPoints.mockReturnValue({
387
+ count: 0,
388
+ dataPoints: []
389
+ });
390
+ expect(ChartUtils.getChartSelectedData(mockMdcChart)).toEqual([]);
391
+ return Promise.resolve();
392
+ } catch (e) {
393
+ return Promise.reject(e);
394
+ }
395
+ });
396
+ });
397
+ describe("getDimensionsFromDrillStack", function () {
398
+ it("check drill stack", function () {
399
+ try {
400
+ mockMdcChart.getDrillStack.mockReturnValue([{
401
+ dimension: [],
402
+ hierarchylevel: {},
403
+ measure: ["totalPricing"]
404
+ }, {
405
+ dimension: ["SalesOrganization"],
406
+ hierarchylevel: {},
407
+ measure: ["totalPricing"]
408
+ }, {
409
+ dimension: ["SalesOrganization", "SalesOrderType"],
410
+ hierarchylevel: {},
411
+ measure: ["totalPricing"]
412
+ }]);
413
+ expect(ChartUtils.getDimensionsFromDrillStack(mockMdcChart)).toEqual(["SalesOrganization", "SalesOrderType"]);
414
+ return Promise.resolve();
415
+ } catch (e) {
416
+ return Promise.reject(e);
417
+ }
418
+ });
419
+ });
420
+ describe("getChartSelectionsExist", function () {
421
+ it("no selections exist", function () {
422
+ try {
423
+ mockControlDelegate._getChart.mockReturnValue(null);
424
+
425
+ mockMdcChart.getControlDelegate.mockReturnValue(mockControlDelegate);
426
+ expect(ChartUtils.getChartSelectionsExist(mockMdcChart, mockMdcChart)).toBe(false);
427
+ return Promise.resolve();
428
+ } catch (e) {
429
+ return Promise.reject(e);
430
+ }
431
+ });
432
+ it("check existing selections", function () {
433
+ try {
434
+ mockControlDelegate._getChart.mockReturnValue({
435
+ getDrillStack: function () {
436
+ return [{
437
+ dimension: [],
438
+ hierarchylevel: {},
439
+ measure: ["totalPricing"]
440
+ }, {
441
+ dimension: ["SalesOrganization", "SalesOrderType"],
442
+ hierarchylevel: {},
443
+ measure: ["totalPricing"]
444
+ }];
445
+ }
446
+ });
447
+
448
+ mockMdcChart.getControlDelegate.mockReturnValue(mockControlDelegate);
449
+ mockBindingContext.getObject.mockReturnValue([{
450
+ bAnd: true,
451
+ _bMultiFilter: true,
452
+ aFilters: [{
453
+ oValue1: "1710",
454
+ sOperator: "EQ",
455
+ sPath: "SalesOrganization",
456
+ _bMultiFilter: false
457
+ }]
458
+ }]);
459
+ mockMdcChart.getBindingContext.mockReturnValue(mockBindingContext);
460
+ expect(ChartUtils.getChartSelectionsExist(mockMdcChart, mockMdcChart)).toBe(true);
461
+ return Promise.resolve();
462
+ } catch (e) {
463
+ return Promise.reject(e);
464
+ }
465
+ });
466
+ });
467
+ });
468
+ }, false);
469
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXJ0VXRpbHMuc3BlYy50cyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsIm1vY2tNZGNDaGFydCIsIl9nZXRWaXpGcmFtZSIsImplc3QiLCJmbiIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0U2VsZWN0ZWREYXRhUG9pbnRzIiwiZ2V0RHJpbGxTdGFjayIsImdldENvbnRyb2xEZWxlZ2F0ZSIsImdldEZpbHRlciIsImdldFNlbGVjdGlvbkJlaGF2aW9yIiwiZGF0YSIsInNQcm9wIiwibW9ja0JpbmRpbmdDb250ZXh0IiwiZ2V0T2JqZWN0Iiwic2V0UHJvcGVydHkiLCJtb2NrVml6RnJhbWUiLCJ2aXpTZWxlY3Rpb24iLCJtb2NrQ29udHJvbERlbGVnYXRlIiwiX2dldENoYXJ0IiwiaXQiLCJtb2NrUmV0dXJuVmFsdWUiLCJiQW5kIiwiX2JNdWx0aUZpbHRlciIsImFGaWx0ZXJzIiwib1ZhbHVlMSIsInNPcGVyYXRvciIsInNQYXRoIiwiZXhwZWN0IiwiQ2hhcnRVdGlscyIsImdldENoYXJ0TW9kZWwiLCJ0b0VxdWFsIiwidW5kZWZpbmVkIiwiZ2V0Q2hhcnRTZWxlY3Rpb25zIiwiZ2V0RmlsdGVyQmFyRmlsdGVySW5mbyIsImZpbHRlcnMiLCJzZWFyY2giLCJiaW5kaW5nUGF0aCIsInNweU9uIiwiRmlsdGVyVXRpbHMiLCJtb2NrUmV0dXJuVmFsdWVPbmNlIiwiZ2V0Q2hhcnRGaWx0ZXJzIiwiZ2V0QWxsRmlsdGVySW5mbyIsIlNhbGVzT3JnYW5pemF0aW9uIiwidG90YWxQcmljaW5nIiwiX2NvbnRleHRfcm93X251bWJlciIsImdldFZpelNlbGVjdGlvbiIsImNvdW50IiwiZGF0YVBvaW50cyIsImluZGV4IiwibWVhc3VyZXMiLCJjb250ZXh0IiwiZ2V0Q2hhcnRTZWxlY3RlZERhdGEiLCJkaW1lbnNpb24iLCJoaWVyYXJjaHlsZXZlbCIsIm1lYXN1cmUiLCJnZXREaW1lbnNpb25zRnJvbURyaWxsU3RhY2siLCJnZXRDaGFydFNlbGVjdGlvbnNFeGlzdCIs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WUFBQUEsUUFBUSxFQUFFLENBQ1Q7QUFDQ0MsY0FBQUEsT0FBTyxFQUFFLE1BRFY7QUFFQ0MsY0FBQUEsU0FBUyxFQUFFLElBRlo7QUFHQ0MsY0FBQUEsS0FBSyxFQUFFLG1CQUhSO0FBSUNKLGNBQUFBLGFBQWEsRUFBRTtBQUpoQixhQURTO0FBSFgsV0FENEMsQ0FBN0M7QUFjQXRCLFVBQUFBLFlBQVksQ0FBQ0ksaUJBQWIsQ0FBK0JnQixlQUEvQixDQUErQ1Isa0JBQS9DO0FBQ0FlLFVBQUFBLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDNEIsdUJBQVgsQ0FBbUN4RCxZQUFuQyxFQUFpREEsWUFBakQsQ0FBRCxDQUFOLENBQXVFeUQsSUFBdkUsQ0FBNEUsSUFBNUU7QUFqQ2dEO0FBa0NoRCxTQWxDQztBQUFBO0FBQUE7QUFBQSxRQUFGO0FBbUNBLEtBMUNPLENBQVI7QUEyQ0EsR0ExYk8sQ0FBUiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLy9AdHMtaWdub3JlXG5pbXBvcnQgeyBDaGFydFV0aWxzIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvY2hhcnRcIjtcbi8vQHRzLWlnbm9yZVxuaW1wb3J0IHsgRmlsdGVyVXRpbHMgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJcIjtcblxuZGVzY3JpYmUoXCJDaGFydFV0aWxzXCIsIGZ1bmN0aW9uKCkge1xuXHRjb25zdCBtb2NrTWRjQ2hhcnQgPSB7XG5cdFx0X2dldFZpekZyYW1lOiBqZXN0LmZuKCksXG5cdFx0Z2V0QmluZGluZ0NvbnRleHQ6IGplc3QuZm4oKSxcblx0XHRnZXRTZWxlY3RlZERhdGFQb2ludHM6IGplc3QuZm4oKSxcblx0XHRnZXREcmlsbFN0YWNrOiBqZXN0LmZuKCksXG5cdFx0Z2V0Q29udHJvbERlbGVnYXRlOiBqZXN0LmZuKCksXG5cdFx0Z2V0RmlsdGVyOiBqZXN0LmZuKCgpID0+IHtcblx0XHRcdHJldHVybiBcIlNhbGVzT3JkZXJBZ2dyZWdhdGU6OlNhbGVzT3JkZXJNYW5hZ2VMaXN0LS1mZTo6RmlsdGVyQmFyOjpTYWxlc09yZGVyTWFuYWdlXCI7XG5cdFx0fSksXG5cdFx0Z2V0U2VsZWN0aW9uQmVoYXZpb3I6IGplc3QuZm4oKSxcblx0XHRkYXRhOiBqZXN0LmZuKChzUHJvcDogU3RyaW5nKSA9PiB7XG5cdFx0XHRpZiAoc1Byb3AgPT09IFwiZW50aXR5VHlwZVwiKSB7XG5cdFx0XHRcdHJldHVybiBcIi9TYWxlc09yZGVyTWFuYWdlL1wiO1xuXHRcdFx0fVxuXHRcdH0pXG5cdH07XG5cdGNvbnN0IG1vY2tCaW5kaW5nQ29udGV4dCA9IHtcblx0XHRnZXRPYmplY3Q6IGplc3QuZm4oKSxcblx0XHRzZXRQcm9wZXJ0eTogamVzdC5mbigpXG5cdH07XG5cdGNvbnN0IG1vY2tWaXpGcmFtZSA9IHsgdml6U2VsZWN0aW9uOiBqZXN0LmZuKCkgfTtcblx0Y29uc3QgbW9ja0NvbnRyb2xEZWxlZ2F0ZSA9IHsgX2dldENoYXJ0OiBqZXN0LmZuKCkgfTtcblx0ZGVzY3JpYmUoXCJnZXRDaGFydE1vZGVsXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGl0KFwiY2hlY2sgc2VsZWN0ZWQgY2hhcnQgbW9kZWxcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRtb2NrQmluZGluZ0NvbnRleHQuZ2V0T2JqZWN0Lm1vY2tSZXR1cm5WYWx1ZShbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRiQW5kOiB0cnVlLFxuXHRcdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IHRydWUsXG5cdFx0XHRcdFx0YUZpbHRlcnM6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0b1ZhbHVlMTogXCIxNzEwXCIsXG5cdFx0XHRcdFx0XHRcdHNPcGVyYXRvcjogXCJFUVwiLFxuXHRcdFx0XHRcdFx0XHRzUGF0aDogXCJTYWxlc09yZ2FuaXphdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiBmYWxzZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fVxuXHRcdFx0XSk7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQubW9ja1JldHVyblZhbHVlKG1vY2tCaW5kaW5nQ29udGV4dCk7XG5cdFx0XHRleHBlY3QoQ2hhcnRVdGlscy5nZXRDaGFydE1vZGVsKG1vY2tNZGNDaGFydCwgXCJcIiwge30pKS50b0VxdWFsKFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGJBbmQ6IHRydWUsXG5cdFx0XHRcdFx0X2JNdWx0aUZpbHRlcjogdHJ1ZSxcblx0XHRcdFx0XHRhRmlsdGVyczogW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRvVmFsdWUxOiBcIjE3MTBcIixcblx0XHRcdFx0XHRcdFx0c09wZXJhdG9yOiBcIkVRXCIsXG5cdFx0XHRcdFx0XHRcdHNQYXRoOiBcIlNhbGVzT3JnYW5pemF0aW9uXCIsXG5cdFx0XHRcdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IGZhbHNlXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XVxuXHRcdFx0XHR9XG5cdFx0XHRdKTtcblx0XHR9KTtcblxuXHRcdGl0KFwibm8gc2VsZWN0ZWQgY2hhcnQgbW9kZWxcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRtb2NrQmluZGluZ0NvbnRleHQuZ2V0T2JqZWN0Lm1vY2tSZXR1cm5WYWx1ZSh1bmRlZmluZWQpO1xuXHRcdFx0bW9ja01kY0NoYXJ0LmdldEJpbmRpbmdDb250ZXh0Lm1vY2tSZXR1cm5WYWx1ZShtb2NrQmluZGluZ0NvbnRleHQpO1xuXHRcdFx0ZXhwZWN0KENoYXJ0VXRpbHMuZ2V0Q2hhcnRNb2RlbChtb2NrTWRjQ2hhcnQsIFwiXCIsIHt9KSkudG9FcXVhbCh1bmRlZmluZWQpO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcImdldENoYXJ0U2VsZWN0aW9uc1wiLCBmdW5jdGlvbigpIHtcblx0XHRpdChcImNoZWNrIENoYXJ0IFNlbGVjdGlvbnNcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRtb2NrQmluZGluZ0NvbnRleHQuZ2V0T2JqZWN0Lm1vY2tSZXR1cm5WYWx1ZShbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRiQW5kOiB0cnVlLFxuXHRcdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IHRydWUsXG5cdFx0XHRcdFx0YUZpbHRlcnM6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0b1ZhbHVlMTogXCIxNzEwXCIsXG5cdFx0XHRcdFx0XHRcdHNPcGVyYXRvcjogXCJFUVwiLFxuXHRcdFx0XHRcdFx0XHRzUGF0aDogXCJTYWxlc09yZ2FuaXphdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiBmYWxzZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fVxuXHRcdFx0XSk7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQubW9ja1JldHVyblZhbHVlKG1vY2tCaW5kaW5nQ29udGV4dCk7XG5cdFx0XHRleHBlY3QoQ2hhcnRVdGlscy5nZXRDaGFydFNlbGVjdGlvbnMobW9ja01kY0NoYXJ0LCBmYWxzZSkpLnRvRXF1YWwoW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YkFuZDogdHJ1ZSxcblx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiB0cnVlLFxuXHRcdFx0XHRcdGFGaWx0ZXJzOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdG9WYWx1ZTE6IFwiMTcxMFwiLFxuXHRcdFx0XHRcdFx0XHRzT3BlcmF0b3I6IFwiRVFcIixcblx0XHRcdFx0XHRcdFx0c1BhdGg6IFwiU2FsZXNPcmdhbml6YXRpb25cIixcblx0XHRcdFx0XHRcdFx0X2JNdWx0aUZpbHRlcjogZmFsc2Vcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH1cblx0XHRcdF0pO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJubyBDaGFydCBTZWxlY3Rpb25zXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0bW9ja0JpbmRpbmdDb250ZXh0LmdldE9iamVjdC5tb2NrUmV0dXJuVmFsdWUodW5kZWZpbmVkKTtcblx0XHRcdG1vY2tNZGNDaGFydC5nZXRCaW5kaW5nQ29udGV4dC5tb2NrUmV0dXJuVmFsdWUobW9ja0JpbmRpbmdDb250ZXh0KTtcblx0XHRcdGV4cGVjdChDaGFydFV0aWxzLmdldENoYXJ0U2VsZWN0aW9ucyhtb2NrTWRjQ2hhcnQsIGZhbHNlKSkudG9FcXVhbChbXSk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiZ2V0RmlsdGVyQmFyRmlsdGVySW5mb1wiLCBmdW5jdGlvbigpIHtcblx0XHRpdChcIm5vIGZpbHRlci1iYXIgZmlsdGVycyBzZWxlY3RlZFwiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG1vY2tCaW5kaW5nQ29udGV4dC5nZXRPYmplY3QubW9ja1JldHVyblZhbHVlKHVuZGVmaW5lZCk7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQubW9ja1JldHVyblZhbHVlKG1vY2tCaW5kaW5nQ29udGV4dCk7XG5cdFx0XHRleHBlY3QoQ2hhcnRVdGlscy5nZXRGaWx0ZXJCYXJGaWx0ZXJJbmZvKG1vY2tNZGNDaGFydCkpLnRvRXF1YWwoeyBmaWx0ZXJzOiBbXSwgc2VhcmNoOiB1bmRlZmluZWQsIGJpbmRpbmdQYXRoOiB1bmRlZmluZWQgfSk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIHNlbGVjdGVkIGZpbHRlci1iYXIgZmlsdGVyc1wiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG1vY2tCaW5kaW5nQ29udGV4dC5nZXRPYmplY3QubW9ja1JldHVyblZhbHVlKHVuZGVmaW5lZCk7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQubW9ja1JldHVyblZhbHVlKG1vY2tCaW5kaW5nQ29udGV4dCk7XG5cdFx0XHRqZXN0LnNweU9uKEZpbHRlclV0aWxzLCBcImdldEZpbHRlckluZm9cIikubW9ja1JldHVyblZhbHVlT25jZSh7XG5cdFx0XHRcdGZpbHRlcnM6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRvVmFsdWUxOiBcIjAyXCIsXG5cdFx0XHRcdFx0XHRzT3BlcmF0b3I6IFwiRVFcIixcblx0XHRcdFx0XHRcdHNQYXRoOiBcIlNoaXBwaW5nQ29uZGl0aW9uXCIsXG5cdFx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiBmYWxzZVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0b1ZhbHVlMTogXCI2OTQwNjkxMFwiLFxuXHRcdFx0XHRcdFx0c09wZXJhdG9yOiBcIkVRXCIsXG5cdFx0XHRcdFx0XHRzUGF0aDogXCJTb2xkVG9QYXJ0eVwiLFxuXHRcdFx0XHRcdFx0X2JNdWx0aUZpbHRlcjogZmFsc2Vcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0pO1xuXHRcdFx0ZXhwZWN0KENoYXJ0VXRpbHMuZ2V0RmlsdGVyQmFyRmlsdGVySW5mbyhtb2NrTWRjQ2hhcnQpKS50b0VxdWFsKHtcblx0XHRcdFx0ZmlsdGVyczogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdG9WYWx1ZTE6IFwiMDJcIixcblx0XHRcdFx0XHRcdHNPcGVyYXRvcjogXCJFUVwiLFxuXHRcdFx0XHRcdFx0c1BhdGg6IFwiU2hpcHBpbmdDb25kaXRpb25cIixcblx0XHRcdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IGZhbHNlXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRvVmFsdWUxOiBcIjY5NDA2OTEwXCIsXG5cdFx0XHRcdFx0XHRzT3BlcmF0b3I6IFwiRVFcIixcblx0XHRcdFx0XHRcdHNQYXRoOiBcIlNvbGRUb1BhcnR5XCIsXG5cdFx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiBmYWxzZVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XSxcblx0XHRcdFx0c2VhcmNoOiB1bmRlZmluZWQsXG5cdFx0XHRcdGJpbmRpbmdQYXRoOiB1bmRlZmluZWRcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcImdldENoYXJ0RmlsdGVyc1wiLCBmdW5jdGlvbigpIHtcblx0XHRpdChcIm5vIENoYXJ0IGZpbHRlcnMgc2VsZWN0ZWRcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRtb2NrQmluZGluZ0NvbnRleHQuZ2V0T2JqZWN0Lm1vY2tSZXR1cm5WYWx1ZSh1bmRlZmluZWQpO1xuXHRcdFx0bW9ja01kY0NoYXJ0LmdldEJpbmRpbmdDb250ZXh0Lm1vY2tSZXR1cm5WYWx1ZShtb2NrQmluZGluZ0NvbnRleHQpO1xuXHRcdFx0ZXhwZWN0KENoYXJ0VXRpbHMuZ2V0Q2hhcnRGaWx0ZXJzKG1vY2tNZGNDaGFydCkpLnRvRXF1YWwoeyBhRmlsdGVyczogW10sIF9iTXVsdGlGaWx0ZXI6IHRydWUgfSk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIENoYXJ0IGZpbHRlcnMgc2VsZWN0ZWRcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRtb2NrQmluZGluZ0NvbnRleHQuZ2V0T2JqZWN0Lm1vY2tSZXR1cm5WYWx1ZShbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRiQW5kOiB0cnVlLFxuXHRcdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IHRydWUsXG5cdFx0XHRcdFx0YUZpbHRlcnM6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0b1ZhbHVlMTogXCIxNzEwXCIsXG5cdFx0XHRcdFx0XHRcdHNPcGVyYXRvcjogXCJFUVwiLFxuXHRcdFx0XHRcdFx0XHRzUGF0aDogXCJTYWxlc09yZ2FuaXphdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiBmYWxzZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fVxuXHRcdFx0XSk7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQubW9ja1JldHVyblZhbHVlKG1vY2tCaW5kaW5nQ29udGV4dCk7XG5cdFx0XHRleHBlY3QoQ2hhcnRVdGlscy5nZXRDaGFydEZpbHRlcnMobW9ja01kY0NoYXJ0KSkudG9FcXVhbCh7XG5cdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IHRydWUsXG5cdFx0XHRcdGFGaWx0ZXJzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0YUZpbHRlcnM6IFtcblx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdG9WYWx1ZTE6IFwiMTcxMFwiLFxuXHRcdFx0XHRcdFx0XHRcdHNPcGVyYXRvcjogXCJFUVwiLFxuXHRcdFx0XHRcdFx0XHRcdHNQYXRoOiBcIlNhbGVzT3JnYW5pemF0aW9uXCIsXG5cdFx0XHRcdFx0XHRcdFx0X2JNdWx0aUZpbHRlcjogZmFsc2Vcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XSxcblx0XHRcdFx0XHRcdGJBbmQ6IHRydWUsXG5cdFx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiB0cnVlXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fSk7XG5cblx0ZGVzY3JpYmUoXCJnZXRBbGxGaWx0ZXJJbmZvXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGl0KFwibm8gZmlsdGVycyBzZWxlY3RlZFwiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG1vY2tCaW5kaW5nQ29udGV4dC5nZXRPYmplY3QubW9ja1JldHVyblZhbHVlKHVuZGVmaW5lZCk7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQubW9ja1JldHVyblZhbHVlKG1vY2tCaW5kaW5nQ29udGV4dCk7XG5cdFx0XHRleHBlY3QoQ2hhcnRVdGlscy5nZXRBbGxGaWx0ZXJJbmZvKG1vY2tNZGNDaGFydCkpLnRvRXF1YWwoeyBmaWx0ZXJzOiBbXSwgc2VhcmNoOiB1bmRlZmluZWQsIGJpbmRpbmdQYXRoOiB1bmRlZmluZWQgfSk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIENoYXJ0IGZpbHRlcnMgc2VsZWN0ZWRcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRtb2NrQmluZGluZ0NvbnRleHQuZ2V0T2JqZWN0Lm1vY2tSZXR1cm5WYWx1ZShbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRiQW5kOiB0cnVlLFxuXHRcdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IHRydWUsXG5cdFx0XHRcdFx0YUZpbHRlcnM6IFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0b1ZhbHVlMTogXCIxNzEwXCIsXG5cdFx0XHRcdFx0XHRcdHNPcGVyYXRvcjogXCJFUVwiLFxuXHRcdFx0XHRcdFx0XHRzUGF0aDogXCJTYWxlc09yZ2FuaXphdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiBmYWxzZVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdF1cblx0XHRcdFx0fVxuXHRcdFx0XSk7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQubW9ja1JldHVyblZhbHVlKG1vY2tCaW5kaW5nQ29udGV4dCk7XG5cdFx0XHRleHBlY3QoQ2hhcnRVdGlscy5nZXRBbGxGaWx0ZXJJbmZvKG1vY2tNZGNDaGFydCkpLnRvRXF1YWwoe1xuXHRcdFx0XHRmaWx0ZXJzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0X2JNdWx0aUZpbHRlcjogdHJ1ZSxcblx0XHRcdFx0XHRcdGFGaWx0ZXJzOiBbXG5cdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRiQW5kOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IHRydWUsXG5cdFx0XHRcdFx0XHRcdFx0YUZpbHRlcnM6IFtcblx0XHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0b1ZhbHVlMTogXCIxNzEwXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNPcGVyYXRvcjogXCJFUVwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzUGF0aDogXCJTYWxlc09yZ2FuaXphdGlvblwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiBmYWxzZVxuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpdChcImNoZWNrIENoYXJ0IGZpbHRlcnMgYW5kIGZpbHRlci1iYXIgZmlsdGVyIHNlbGVjdGVkXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0bW9ja0JpbmRpbmdDb250ZXh0LmdldE9iamVjdC5tb2NrUmV0dXJuVmFsdWUoW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YkFuZDogdHJ1ZSxcblx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiB0cnVlLFxuXHRcdFx0XHRcdGFGaWx0ZXJzOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdG9WYWx1ZTE6IFwiMTcxMFwiLFxuXHRcdFx0XHRcdFx0XHRzT3BlcmF0b3I6IFwiRVFcIixcblx0XHRcdFx0XHRcdFx0c1BhdGg6IFwiU2FsZXNPcmdhbml6YXRpb25cIixcblx0XHRcdFx0XHRcdFx0X2JNdWx0aUZpbHRlcjogZmFsc2Vcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH1cblx0XHRcdF0pO1xuXHRcdFx0bW9ja01kY0NoYXJ0LmdldEJpbmRpbmdDb250ZXh0Lm1vY2tSZXR1cm5WYWx1ZShtb2NrQmluZGluZ0NvbnRleHQpO1xuXHRcdFx0amVzdC5zcHlPbihGaWx0ZXJVdGlscywgXCJnZXRGaWx0ZXJJbmZvXCIpLm1vY2tSZXR1cm5WYWx1ZU9uY2Uoe1xuXHRcdFx0XHRmaWx0ZXJzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0b1ZhbHVlMTogXCIyOTE5NDMxXCIsXG5cdFx0XHRcdFx0XHRzT3BlcmF0b3I6IFwiRVFcIixcblx0XHRcdFx0XHRcdHNQYXRoOiBcIlNhbGVzT3JkZXJcIixcblx0XHRcdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IGZhbHNlXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRdXG5cdFx0XHR9KTtcblx0XHRcdGV4cGVjdChDaGFydFV0aWxzLmdldEFsbEZpbHRlckluZm8obW9ja01kY0NoYXJ0KSkudG9FcXVhbCh7XG5cdFx0XHRcdGZpbHRlcnM6IFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRvVmFsdWUxOiBcIjI5MTk0MzFcIixcblx0XHRcdFx0XHRcdHNPcGVyYXRvcjogXCJFUVwiLFxuXHRcdFx0XHRcdFx0c1BhdGg6IFwiU2FsZXNPcmRlclwiLFxuXHRcdFx0XHRcdFx0X2JNdWx0aUZpbHRlcjogZmFsc2Vcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdF9iTXVsdGlGaWx0ZXI6IHRydWUsXG5cdFx0XHRcdFx0XHRhRmlsdGVyczogW1xuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0YkFuZDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiB0cnVlLFxuXHRcdFx0XHRcdFx0XHRcdGFGaWx0ZXJzOiBbXG5cdFx0XHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdG9WYWx1ZTE6IFwiMTcxMFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzT3BlcmF0b3I6IFwiRVFcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0c1BhdGg6IFwiU2FsZXNPcmdhbml6YXRpb25cIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0X2JNdWx0aUZpbHRlcjogZmFsc2Vcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRdXG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcImdldFZpelNlbGVjdGlvblwiLCBmdW5jdGlvbigpIHtcblx0XHRpdChcImNoZWNrIFZpeiBzZWxlY3RlZFwiLCBhc3luYyBmdW5jdGlvbigpIHtcblx0XHRcdG1vY2tWaXpGcmFtZS52aXpTZWxlY3Rpb24ubW9ja1JldHVyblZhbHVlKFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRcdFNhbGVzT3JnYW5pemF0aW9uOiBcIjE3MTBcIixcblx0XHRcdFx0XHRcdFwiU2FsZXNPcmdhbml6emF0aW9uLmRcIjogXCJGb29kIFNhbGVzIE9yZ1wiLFxuXHRcdFx0XHRcdFx0dG90YWxQcmljaW5nOiAxMTAwMDAsXG5cdFx0XHRcdFx0XHRfY29udGV4dF9yb3dfbnVtYmVyOiA1XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdFx0U2FsZXNPcmdhbml6YXRpb246IFwiQUZSXCIsXG5cdFx0XHRcdFx0XHRcIlNhbGVzT3JnYW5penphdGlvbi5kXCI6IFwiTXlTYWxlc09yZ1wiLFxuXHRcdFx0XHRcdFx0dG90YWxQcmljaW5nOiAyMDAwMDAsXG5cdFx0XHRcdFx0XHRfY29udGV4dF9yb3dfbnVtYmVyOiA5XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRdKTtcblx0XHRcdG1vY2tNZGNDaGFydC5fZ2V0Vml6RnJhbWUubW9ja1JldHVyblZhbHVlKG1vY2tWaXpGcmFtZSk7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0QmluZGluZ0NvbnRleHQubW9ja1JldHVyblZhbHVlKG1vY2tWaXpGcmFtZSk7XG5cblx0XHRcdGV4cGVjdChDaGFydFV0aWxzLmdldFZpelNlbGVjdGlvbihtb2NrTWRjQ2hhcnQpKS50b0VxdWFsKFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGRhdGE6IHtcblx0XHRcdFx0XHRcdFNhbGVzT3JnYW5pemF0aW9uOiBcIjE3MTBcIixcblx0XHRcdFx0XHRcdFwiU2FsZXNPcmdhbml6emF0aW9uLmRcIjogXCJGb29kIFNhbGVzIE9yZ1wiLFxuXHRcdFx0XHRcdFx0dG90YWxQcmljaW5nOiAxMTAwMDAsXG5cdFx0XHRcdFx0XHRfY29udGV4dF9yb3dfbnVtYmVyOiA1XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0ZGF0YToge1xuXHRcdFx0XHRcdFx0U2FsZXNPcmdhbml6YXRpb246IFwiQUZSXCIsXG5cdFx0XHRcdFx0XHRcIlNhbGVzT3JnYW5penphdGlvbi5kXCI6IFwiTXlTYWxlc09yZ1wiLFxuXHRcdFx0XHRcdFx0dG90YWxQcmljaW5nOiAyMDAwMDAsXG5cdFx0XHRcdFx0XHRfY29udGV4dF9yb3dfbnVtYmVyOiA5XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRdKTtcblx0XHR9KTtcblxuXHRcdGl0KFwibm8gVml6IHNlbGVjdGVkXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0bW9ja1ZpekZyYW1lLnZpelNlbGVjdGlvbi5tb2NrUmV0dXJuVmFsdWUoW10pO1xuXHRcdFx0bW9ja01kY0NoYXJ0LmdldEJpbmRpbmdDb250ZXh0Lm1vY2tSZXR1cm5WYWx1ZShtb2NrVml6RnJhbWUpO1xuXHRcdFx0ZXhwZWN0KENoYXJ0VXRpbHMuZ2V0Vml6U2VsZWN0aW9uKG1vY2tNZGNDaGFydCkpLnRvRXF1YWwoW10pO1xuXHRcdH0pO1xuXHR9KTtcblxuXHRkZXNjcmliZShcImdldENoYXJ0U2VsZWN0ZWREYXRhXCIsIGZ1bmN0aW9uKCkge1xuXHRcdG1vY2tNZGNDaGFydC5nZXRTZWxlY3Rpb25CZWhhdmlvci5tb2NrUmV0dXJuVmFsdWUoXCJEQVRBUE9JTlRcIik7XG5cdFx0aXQoXCJjaGVjayBzZWxlY3RlZCBEYXRhcG9pbnRcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0U2VsZWN0ZWREYXRhUG9pbnRzLm1vY2tSZXR1cm5WYWx1ZSh7XG5cdFx0XHRcdGNvdW50OiAxLFxuXHRcdFx0XHRkYXRhUG9pbnRzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0aW5kZXg6IDUsXG5cdFx0XHRcdFx0XHRtZWFzdXJlczogW1widG90YWxQcmljaW5nXCJdLFxuXHRcdFx0XHRcdFx0Y29udGV4dDoge31cblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0pO1xuXHRcdFx0ZXhwZWN0KENoYXJ0VXRpbHMuZ2V0Q2hhcnRTZWxlY3RlZERhdGEobW9ja01kY0NoYXJ0KSkudG9FcXVhbChbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRpbmRleDogNSxcblx0XHRcdFx0XHRtZWFzdXJlczogW1widG90YWxQcmljaW5nXCJdLFxuXHRcdFx0XHRcdGNvbnRleHQ6IHt9XG5cdFx0XHRcdH1cblx0XHRcdF0pO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJubyBzZWxlY3RlZCBEYXRhcG9pbnRzXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0bW9ja01kY0NoYXJ0LmdldFNlbGVjdGVkRGF0YVBvaW50cy5tb2NrUmV0dXJuVmFsdWUoe1xuXHRcdFx0XHRjb3VudDogMCxcblx0XHRcdFx0ZGF0YVBvaW50czogW11cblx0XHRcdH0pO1xuXHRcdFx0ZXhwZWN0KENoYXJ0VXRpbHMuZ2V0Q2hhcnRTZWxlY3RlZERhdGEobW9ja01kY0NoYXJ0KSkudG9FcXVhbChbXSk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiZ2V0RGltZW5zaW9uc0Zyb21EcmlsbFN0YWNrXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGl0KFwiY2hlY2sgZHJpbGwgc3RhY2tcIiwgYXN5bmMgZnVuY3Rpb24oKSB7XG5cdFx0XHRtb2NrTWRjQ2hhcnQuZ2V0RHJpbGxTdGFjay5tb2NrUmV0dXJuVmFsdWUoW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0ZGltZW5zaW9uOiBbXSxcblx0XHRcdFx0XHRoaWVyYXJjaHlsZXZlbDoge30sXG5cdFx0XHRcdFx0bWVhc3VyZTogW1widG90YWxQcmljaW5nXCJdXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRkaW1lbnNpb246IFtcIlNhbGVzT3JnYW5pemF0aW9uXCJdLFxuXHRcdFx0XHRcdGhpZXJhcmNoeWxldmVsOiB7fSxcblx0XHRcdFx0XHRtZWFzdXJlOiBbXCJ0b3RhbFByaWNpbmdcIl1cblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGRpbWVuc2lvbjogW1wiU2FsZXNPcmdhbml6YXRpb25cIiwgXCJTYWxlc09yZGVyVHlwZVwiXSxcblx0XHRcdFx0XHRoaWVyYXJjaHlsZXZlbDoge30sXG5cdFx0XHRcdFx0bWVhc3VyZTogW1widG90YWxQcmljaW5nXCJdXG5cdFx0XHRcdH1cblx0XHRcdF0pO1xuXHRcdFx0ZXhwZWN0KENoYXJ0VXRpbHMuZ2V0RGltZW5zaW9uc0Zyb21EcmlsbFN0YWNrKG1vY2tNZGNDaGFydCkpLnRvRXF1YWwoW1wiU2FsZXNPcmdhbml6YXRpb25cIiwgXCJTYWxlc09yZGVyVHlwZVwiXSk7XG5cdFx0fSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwiZ2V0Q2hhcnRTZWxlY3Rpb25zRXhpc3RcIiwgZnVuY3Rpb24oKSB7XG5cdFx0aXQoXCJubyBzZWxlY3Rpb25zIGV4aXN0XCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0bW9ja0NvbnRyb2xEZWxlZ2F0ZS5fZ2V0Q2hhcnQubW9ja1JldHVyblZhbHVlKG51bGwpO1xuXHRcdFx0bW9ja01kY0NoYXJ0LmdldENvbnRyb2xEZWxlZ2F0ZS5tb2NrUmV0dXJuVmFsdWUobW9ja0NvbnRyb2xEZWxlZ2F0ZSk7XG5cdFx0XHRleHBlY3QoQ2hhcnRVdGlscy5nZXRDaGFydFNlbGVjdGlvbnNFeGlzdChtb2NrTWRjQ2hhcnQsIG1vY2tNZGNDaGFydCkpLnRvQmUoZmFsc2UpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJjaGVjayBleGlzdGluZyBzZWxlY3Rpb25zXCIsIGFzeW5jIGZ1bmN0aW9uKCkge1xuXHRcdFx0bW9ja0NvbnRyb2xEZWxlZ2F0ZS5fZ2V0Q2hhcnQubW9ja1JldHVyblZhbHVlKHtcblx0XHRcdFx0Z2V0RHJpbGxTdGFjazogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0ZGltZW5zaW9uOiBbXSxcblx0XHRcdFx0XHRcdFx0aGllcmFyY2h5bGV2ZWw6IHt9LFxuXHRcdFx0XHRcdFx0XHRtZWFzdXJlOiBbXCJ0b3RhbFByaWNpbmdcIl1cblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdGRpbWVuc2lvbjogW1wiU2FsZXNPcmdhbml6YXRpb25cIiwgXCJTYWxlc09yZGVyVHlwZVwiXSxcblx0XHRcdFx0XHRcdFx0aGllcmFyY2h5bGV2ZWw6IHt9LFxuXHRcdFx0XHRcdFx0XHRtZWFzdXJlOiBbXCJ0b3RhbFByaWNpbmdcIl1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdG1vY2tNZGNDaGFydC5nZXRDb250cm9sRGVsZWdhdGUubW9ja1JldHVyblZhbHVlKG1vY2tDb250cm9sRGVsZWdhdGUpO1xuXHRcdFx0bW9ja0JpbmRpbmdDb250ZXh0LmdldE9iamVjdC5tb2NrUmV0dXJuVmFsdWUoW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0YkFuZDogdHJ1ZSxcblx0XHRcdFx0XHRfYk11bHRpRmlsdGVyOiB0cnVlLFxuXHRcdFx0XHRcdGFGaWx0ZXJzOiBbXG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdG9WYWx1ZTE6IFwiMTcxMFwiLFxuXHRcdFx0XHRcdFx0XHRzT3BlcmF0b3I6IFwiRVFcIixcblx0XHRcdFx0XHRcdFx0c1BhdGg6IFwiU2FsZXNPcmdhbml6YXRpb25cIixcblx0XHRcdFx0XHRcdFx0X2JNdWx0aUZpbHRlcjogZmFsc2Vcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRdXG5cdFx0XHRcdH1cblx0XHRcdF0pO1xuXHRcdFx0bW9ja01kY0NoYXJ0LmdldEJpbmRpbmdDb250ZXh0Lm1vY2tSZXR1cm5WYWx1ZShtb2NrQmluZGluZ0NvbnRleHQpO1xuXHRcdFx0ZXhwZWN0KENoYXJ0VXRpbHMuZ2V0Q2hhcnRTZWxlY3Rpb25zRXhpc3QobW9ja01kY0NoYXJ0LCBtb2NrTWRjQ2hhcnQpKS50b0JlKHRydWUpO1xuXHRcdH0pO1xuXHR9KTtcbn0pO1xuIl19