@sap/open.fe 1.97.0 → 1.98.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (873) hide show
  1. package/package.json +1 -1
  2. package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
  3. package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
  4. package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +275 -62
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
  6. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +1 -0
  7. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +1 -1
  8. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
  9. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +3 -3
  10. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +51 -46
  11. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
  13. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  14. package/packages/sap.fe.common/src/sap/fe/common/resources.json +16 -8
  15. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  16. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  17. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  18. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.98.json +18 -0
  19. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  20. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  21. package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +3 -1
  22. package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +1 -1
  23. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +1 -1
  24. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +1 -1
  25. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +35 -15
  26. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
  27. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +13 -5
  28. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +1 -1
  29. package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +8 -2
  30. package/packages/sap.fe.core/src/sap/fe/core/PageController.js +1 -1
  31. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +26 -10
  32. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
  33. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +13 -4
  34. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
  35. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +124 -39
  36. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
  37. package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +49 -22
  38. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +1 -1
  39. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +11 -8
  40. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
  41. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +12 -8
  42. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
  43. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +196 -70
  44. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  45. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +9 -2
  46. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +1 -1
  47. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +19 -17
  48. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  49. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +39 -8
  50. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  51. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +114 -25
  52. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
  53. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +112 -24
  54. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +80 -0
  55. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +6 -0
  56. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +5 -1
  57. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
  58. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +1 -1
  59. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  60. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +34 -7
  61. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +1 -1
  62. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +5 -2
  63. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +1 -1
  64. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +16 -1
  65. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +1 -1
  66. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +19 -6
  67. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +1 -1
  68. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +7 -7
  69. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  70. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +6 -5
  71. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -1
  72. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +6 -3
  73. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +9 -3
  75. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +1 -1
  76. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +0 -5
  77. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  78. package/packages/sap.fe.core/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -1
  79. package/packages/{sap.fe.macros/src/sap/fe/macros/massedit → sap.fe.core/src/sap/fe/core/controls/massEdit}/MassEditDialog.fragment.xml +6 -6
  80. package/packages/{sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js → sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js} +2 -2
  81. package/packages/{sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js → sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.js} +0 -0
  82. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +13 -1
  83. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
  84. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +10 -0
  85. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  86. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +3 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +18 -7
  88. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  89. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +15 -6
  90. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +62 -4
  91. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  92. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +60 -4
  93. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +3 -3
  94. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  95. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
  96. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +18 -10
  97. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  98. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +10 -1
  99. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  100. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -0
  101. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +17 -9
  102. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  103. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +9 -3
  104. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +69 -4
  105. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  106. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +72 -0
  107. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +172 -284
  108. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  109. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +228 -348
  110. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +468 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +5 -0
  112. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +609 -0
  113. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +30 -13
  114. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  115. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +31 -12
  116. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +2 -2
  117. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  118. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
  119. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +14 -6
  120. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  121. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +26 -5
  122. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +8 -1
  123. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  124. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.ts +9 -1
  125. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +4 -1
  126. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  127. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.ts +3 -0
  128. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +8 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  130. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
  131. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +3 -3
  132. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter-dbg.js +30 -5
  133. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  134. package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.ts +25 -3
  135. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  136. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +359 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +5 -0
  138. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +388 -0
  139. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +199 -111
  140. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
  141. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +193 -102
  142. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +2 -2
  143. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
  144. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +1 -1
  145. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +679 -0
  146. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +6 -0
  147. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +27 -1
  148. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +23 -14
  149. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +2 -2
  150. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +477 -411
  151. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
  152. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +47 -3
  153. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +3 -3
  154. package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
  155. package/packages/sap.fe.core/src/sap/fe/core/library.support.js +9 -3
  156. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  157. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +62 -0
  158. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -0
  159. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +68 -0
  160. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +40 -5
  161. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +24 -2
  162. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +24 -2
  163. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +24 -2
  164. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +25 -3
  165. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +24 -2
  166. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +24 -2
  167. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +24 -2
  168. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +24 -2
  169. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +23 -1
  170. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +23 -1
  171. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -1
  172. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +24 -2
  173. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +24 -2
  174. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +24 -2
  175. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +24 -2
  176. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +24 -2
  177. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +25 -3
  178. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +25 -3
  179. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +24 -2
  180. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +24 -2
  181. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +24 -2
  182. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +25 -3
  183. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +26 -4
  184. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +24 -2
  185. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +24 -2
  186. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +24 -2
  187. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +24 -2
  188. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +24 -2
  189. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +24 -2
  190. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +24 -2
  191. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +24 -2
  192. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +24 -2
  193. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +24 -2
  194. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +24 -2
  195. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +25 -3
  196. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +24 -2
  197. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +24 -2
  198. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +24 -2
  199. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +24 -2
  200. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +24 -2
  201. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +24 -2
  202. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +25 -3
  203. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +24 -2
  204. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +24 -2
  205. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +24 -2
  206. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +24 -2
  207. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +24 -2
  208. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +24 -2
  209. package/packages/sap.fe.core/src/sap/fe/core/resources.json +483 -235
  210. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  211. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  212. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +4 -3
  213. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  214. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -0
  215. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +93 -346
  216. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  217. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +31 -2
  218. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  219. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +30 -1
  220. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +8 -5
  221. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  222. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +11 -6
  223. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +12 -3
  224. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  225. package/packages/sap.fe.core/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
  226. package/packages/sap.fe.core/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
  227. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +10 -48
  228. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  229. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +14 -46
  230. package/packages/sap.fe.core/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +114 -0
  231. package/packages/sap.fe.core/src/sap/fe/core/templating/DisplayModeFormatter.js +5 -0
  232. package/packages/sap.fe.core/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
  233. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +10 -7
  234. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
  235. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +8 -6
  236. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +2 -2
  237. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
  238. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +15 -110
  239. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
  240. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +6 -73
  241. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
  242. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  243. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -1
  244. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -1
  245. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  246. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/ControllerExtensionNavigationModel.js +5 -0
  247. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/CustomElementNavigationModel.js +105 -7
  248. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +176 -0
  249. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/myViewTest.controller.js +2 -2
  250. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.controller.js +2 -2
  251. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +0 -1
  252. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/ChartQualifier.controller.js +2 -2
  253. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/ChartSelectionMode.controller.js +2 -2
  254. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/FieldEdit.controller.js +3 -2
  255. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/FieldEvents.controller.js +3 -2
  256. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.controller.js +3 -2
  257. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/FieldNavProp.controller.js +3 -2
  258. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/Component.js +36 -0
  259. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/FilterBarAnnotationDefaults.controller.js +35 -0
  260. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/FilterBarAnnotationDefaults.view.xml +58 -0
  261. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/localService/RootEntity.json +102 -0
  262. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/localService/ValueHelpEntity.js +11 -0
  263. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/localService/service.cds +97 -0
  264. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarAnnotationDefaults/manifest.json +72 -0
  265. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/Component.js +36 -0
  266. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomFilter.js +36 -0
  267. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomRatingFilter.fragment.xml +8 -0
  268. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomRatingFilterOperator.fragment.xml +17 -0
  269. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/CustomRatingRangeFilter.fragment.xml +8 -0
  270. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/FilterBarCustoms.controller.js +42 -0
  271. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/FilterBarCustoms.view.xml +70 -0
  272. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/localService/RootEntity.json +107 -0
  273. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/localService/ValueHelpEntity.js +11 -0
  274. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/localService/service.cds +152 -0
  275. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarCustoms/manifest.json +72 -0
  276. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.controller.js +13 -6
  277. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.view.xml +1 -1
  278. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/ChildEntity.json +15 -674
  279. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/MultiChildEntity.json +92 -0
  280. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/RootEntity.json +10 -5
  281. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/service.cds +72 -19
  282. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/Component.js +36 -0
  283. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.controller.js +35 -0
  284. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.view.xml +58 -0
  285. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/RootEntity.json +102 -0
  286. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/ValueHelpEntity.js +11 -0
  287. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/localService/service.cds +115 -0
  288. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/manifest.json +72 -0
  289. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarAnnotationDefaults.html +37 -0
  290. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarCustoms.html +37 -0
  291. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarSVandAnnotationDefaults.html +37 -0
  292. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/Component.js +35 -0
  293. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/DetailPage.controller.js +5 -0
  294. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/DetailPage.view.xml +15 -0
  295. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.controller.js +43 -0
  296. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/EntryPage.view.xml +79 -0
  297. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/ChildEntity.json +23 -0
  298. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/RootEntity.json +41 -0
  299. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/ValueHelpCurrencyEntity.json +5 -0
  300. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/ValueHelpEntity.js +11 -0
  301. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/localService/service.cds +144 -0
  302. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/manifest.json +96 -0
  303. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/template/Component.js +9 -0
  304. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/template/EntryPage.controller.js +5 -0
  305. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidance/guidanceFreestyle/template/EntryPage.view.xml +14 -0
  306. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/guidanceFreestyle.html +69 -0
  307. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/i18n/i18n.properties +3 -0
  308. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/MicroChartDefault.controller.js +2 -2
  309. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/MicroChartDynamicSize.controller.js +2 -2
  310. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/MicroChartHideOnNoData.controller.js +2 -2
  311. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/MicroChartShowOnlyChart.controller.js +2 -2
  312. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +4 -3
  313. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +36 -30
  314. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/TableDefault.controller.js +2 -2
  315. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.controller.js +3 -2
  316. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.view.xml +30 -24
  317. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/Component.js +3 -0
  318. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/OPExtend.controller.js +17 -2
  319. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/ChildEntity.json +9 -0
  320. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/service.cds +46 -0
  321. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/manifest.json +24 -1
  322. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility.html +2 -2
  323. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +1 -1
  324. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnBuildingBlockField.fragment.xml +3 -0
  325. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +2 -2
  326. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +2 -2
  327. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +7 -0
  328. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customElementsOverview.md +4 -0
  329. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/Component.js +35 -0
  330. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/CustomFormElement1.fragment.xml +3 -0
  331. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/CustomFormElement2.fragment.xml +3 -0
  332. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/localService/RootEntity.json +9 -0
  333. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/localService/service.cds +136 -0
  334. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElement/customFormElementContent/manifest.json +90 -0
  335. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFormElementContent.html +36 -0
  336. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/{CustomHeaderFacetFormElement.fragment.xml → CustomHeaderFacetBuildingBlockFormElement.fragment.xml} +0 -0
  337. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/{CustomHeaderFacetFormElementEdit.fragment.xml → CustomHeaderFacetBuildingBlockFormElementEdit.fragment.xml} +1 -1
  338. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetBuildingBlockMicroChart.fragment.xml +10 -0
  339. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetBuildingBlockMicroChartEdit.fragment.xml +5 -0
  340. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetDataPointEdit.fragment.xml +2 -2
  341. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetMicroChartEdit.fragment.xml +2 -2
  342. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/RootEntity.json +6 -1
  343. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/service.cds +30 -2
  344. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/manifest.json +13 -3
  345. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomPage.view.xml +1 -2
  346. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSection.fragment.xml +1 -7
  347. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionFormElementAndTable.fragment.xml +0 -1
  348. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionNavigation.fragment.xml +1 -7
  349. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSectionContent.html +60 -27
  350. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/Component.js +35 -0
  351. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/CustomSubSection1.fragment.xml +3 -0
  352. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/CustomSubSection2.fragment.xml +3 -0
  353. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/CustomSubSection3.fragment.xml +11 -0
  354. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/localService/ChildEntity.json +42 -0
  355. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/localService/RootEntity.json +9 -0
  356. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/localService/service.cds +139 -0
  357. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSection/customSubSectionContent/manifest.json +104 -0
  358. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSubSectionContent.html +36 -0
  359. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/i18n/i18n.properties +3 -0
  360. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.js +20 -6
  361. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.ts +22 -6
  362. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.js +71 -23
  363. package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.ts +97 -24
  364. package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +624 -0
  365. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +449 -140
  366. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +435 -0
  367. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +385 -0
  368. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +229 -2
  369. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.ts +227 -0
  370. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +235 -63
  371. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +162 -40
  372. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.js +115 -0
  373. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandling.spec.ts +95 -0
  374. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -2
  375. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +0 -1
  376. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +2 -2
  377. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +2 -2
  378. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +11 -1
  379. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +9 -0
  380. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.js +18 -1
  381. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.ts +25 -1
  382. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPI.spec.js +64 -1
  383. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPI.spec.ts +66 -0
  384. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +261 -20
  385. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +329 -19
  386. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +79 -8
  387. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +128 -8
  388. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.js +7 -7
  389. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.ts +6 -6
  390. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.js +22 -1
  391. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/SubSection.spec.ts +26 -1
  392. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +136 -244
  393. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +156 -376
  394. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +1267 -0
  395. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +2150 -0
  396. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/KPI.spec.ts.snap +306 -0
  397. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +57 -0
  398. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Table.spec.ts.snap +1 -1
  399. package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService.cds +137 -5
  400. package/packages/sap.fe.core/test/sap/fe/core/jest/data/BindingExpression-AnnotationExpression.xml +13 -0
  401. package/packages/sap.fe.core/test/sap/fe/core/jest/data/HeaderFacets.cds +28 -0
  402. package/packages/sap.fe.core/test/sap/fe/core/jest/data/KPI.cds +191 -0
  403. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MetaModelConverterContext.cds +20 -0
  404. package/packages/sap.fe.core/test/sap/fe/core/jest/data/ObjectPageConverter.cds +69 -1
  405. package/packages/sap.fe.core/test/sap/fe/core/jest/data/RoutingServiceFactory.cds +35 -0
  406. package/packages/sap.fe.core/test/sap/fe/core/jest/data/SideEffects.cds +26 -1
  407. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +98 -0
  408. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionOperationAvailableSticky.cds +22 -0
  409. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableTooltips.cds +43 -0
  410. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.js +10 -1
  411. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.ts +20 -0
  412. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +912 -0
  413. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +981 -0
  414. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/AppStartupHelper.spec.ts.snap +358 -0
  415. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.js +242 -0
  416. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.ts +297 -0
  417. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/__snapshots__/ChangePageConfiguration.spec.ts.snap +289 -0
  418. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +292 -366
  419. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.ts +247 -0
  420. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +14 -1
  421. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +19 -0
  422. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -12
  423. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.98.json +363 -0
  424. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  425. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  426. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.fragment.xml +5 -5
  427. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +0 -2
  428. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
  429. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +1 -1
  430. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
  431. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +4 -4
  432. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  433. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +26 -24
  434. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
  435. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +1 -1
  436. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
  437. package/packages/sap.fe.macros/src/sap/fe/macros/FieldBaseDelegate-dbg.js +90 -0
  438. package/packages/sap.fe.macros/src/sap/fe/macros/FieldBaseDelegate.js +6 -0
  439. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +7 -6
  440. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +63 -8
  441. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +1 -1
  442. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +42 -4
  443. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +1 -1
  444. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +76 -1
  445. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +49 -6
  446. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  447. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField-dbg.designtime.js +1 -1
  448. package/packages/sap.fe.macros/src/sap/fe/macros/Form.fragment.xml +21 -17
  449. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +8 -0
  450. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
  451. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +2 -2
  452. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
  453. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +2 -2
  454. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +1 -1
  455. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +8 -3
  456. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  457. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata-dbg.js +2 -1
  458. package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata.js +1 -1
  459. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata-dbg.js +11 -8
  460. package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata.js +1 -1
  461. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper-dbg.js +168 -35
  462. package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper.js +1 -1
  463. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +107 -109
  464. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +51 -65
  465. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  466. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +9 -4
  467. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  468. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +5 -2
  469. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
  470. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
  471. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils-dbg.js +2 -1
  472. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils.js +1 -1
  473. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +101 -16
  474. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  475. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +273 -71
  476. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  477. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +128 -32
  478. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  479. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +110 -16
  480. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +11 -4
  481. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +65 -84
  482. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  483. package/packages/sap.fe.macros/src/sap/fe/macros/filter/CustomFilter.fragment.xml +5 -0
  484. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +2 -2
  485. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
  486. package/packages/sap.fe.macros/src/sap/fe/macros/form/DataFieldCollection.fragment.xml +2 -2
  487. package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFormElement.fragment.xml +5 -1
  488. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +72 -12
  489. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
  490. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +43 -14
  491. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +13 -2
  492. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +55 -8
  493. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
  494. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -3
  495. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +38 -65
  496. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +1 -1
  497. package/packages/sap.fe.macros/src/sap/fe/macros/{FilterField.fragment.xml → internal/FilterField.fragment.xml} +2 -2
  498. package/packages/sap.fe.macros/src/sap/fe/macros/{FilterField.metadata-dbg.js → internal/FilterField.metadata-dbg.js} +5 -5
  499. package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.metadata.js +6 -0
  500. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +96 -0
  501. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.js +5 -0
  502. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +116 -0
  503. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate-dbg.js +7 -15
  504. package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate.js +1 -1
  505. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +4 -5
  506. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/AmountWithCurrency.fragment.xml +5 -1
  507. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +5 -1
  508. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +1 -0
  509. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/File.fragment.xml +2 -2
  510. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +5 -3
  511. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +11 -3
  512. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +1 -0
  513. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +5 -4
  514. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/MdcFieldWithValueHelp.fragment.xml +48 -0
  515. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +140 -18
  516. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectStatus.fragment.xml +1 -0
  517. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +1 -1
  518. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +6 -3
  519. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/CheckBox.fragment.xml +1 -1
  520. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +1 -1
  521. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +1 -1
  522. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +14 -4
  523. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +1 -1
  524. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +3 -3
  525. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +2 -2
  526. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TextArea.fragment.xml +1 -1
  527. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +1 -1
  528. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +25 -9
  529. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  530. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +30 -16
  531. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter-dbg.js +154 -0
  532. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.js +5 -0
  533. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Formatter.ts +146 -0
  534. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +204 -0
  535. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +5 -0
  536. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +215 -0
  537. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +29 -8
  538. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
  539. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp-dbg.designtime.js +1 -1
  540. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpContent.fragment.xml +0 -10
  541. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +2 -2
  542. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +151 -131
  543. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  544. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  545. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +24 -23
  546. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
  547. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +209 -188
  548. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  549. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  550. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary-dbg.js +7 -4
  551. package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary.js +1 -1
  552. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  553. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +36 -10
  554. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +12 -0
  555. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +12 -0
  556. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +12 -0
  557. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +12 -0
  558. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +12 -0
  559. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +12 -0
  560. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +12 -0
  561. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +13 -1
  562. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +12 -0
  563. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +12 -0
  564. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +12 -0
  565. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +12 -0
  566. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +12 -0
  567. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +12 -0
  568. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +12 -0
  569. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +12 -0
  570. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +12 -0
  571. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +12 -0
  572. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -0
  573. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +12 -0
  574. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +12 -0
  575. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +12 -0
  576. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +14 -2
  577. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +12 -0
  578. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +12 -0
  579. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +12 -0
  580. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +12 -0
  581. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +12 -0
  582. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +12 -0
  583. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +12 -0
  584. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +12 -0
  585. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +12 -0
  586. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +12 -0
  587. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +12 -0
  588. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +13 -1
  589. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -0
  590. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +12 -0
  591. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +12 -0
  592. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +12 -0
  593. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +12 -0
  594. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +12 -0
  595. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +13 -1
  596. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +12 -0
  597. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +12 -0
  598. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +12 -0
  599. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +12 -0
  600. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +13 -1
  601. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -0
  602. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +496 -354
  603. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +53 -57
  604. package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +1 -0
  605. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +38 -32
  606. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer-dbg.js +12 -3
  607. package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer.js +1 -1
  608. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +17 -91
  609. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  610. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime-dbg.js +4 -1
  611. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime.js +1 -1
  612. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +9 -4
  613. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
  614. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin-dbg.js +3 -3
  615. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin.js +1 -1
  616. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +198 -71
  617. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  618. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.fragment.xml +4 -4
  619. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +58 -15
  620. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  621. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -1
  622. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  623. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +1 -1
  624. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +1 -2
  625. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +1 -1
  626. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +0 -2
  627. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.js +1 -1
  628. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartMacro.spec.ts +0 -2
  629. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +1 -1
  630. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +0 -2
  631. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.js +21 -1
  632. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.ts +20 -0
  633. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +1 -1
  634. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +1 -1
  635. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +19 -1
  636. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +12 -0
  637. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +2 -2
  638. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldBaseDelegate.spec.js +111 -0
  639. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.js +67 -3
  640. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.ts +81 -1
  641. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarDelegate.spec.js +4 -6
  642. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.js +52 -6
  643. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.ts +64 -7
  644. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.js +34 -4
  645. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.ts +46 -3
  646. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.js +43 -4
  647. package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.ts +62 -3
  648. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.js +31 -5
  649. package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.ts +25 -3
  650. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +11 -1
  651. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +9 -0
  652. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +40 -0
  653. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +35 -0
  654. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartMacro.spec.ts.snap +42 -42
  655. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/CollectionField.spec.ts.snap +49 -7
  656. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +27 -11
  657. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +50 -44
  658. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithSemanticKey.spec.ts.snap +146 -56
  659. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithValueHelp.spec.ts.snap +16 -16
  660. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +774 -11
  661. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +70 -2
  662. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/MicroChart.spec.ts.snap +1 -1
  663. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/PhantomUtil.spec.ts.snap +70 -165
  664. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +39 -0
  665. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +287 -170
  666. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +369 -213
  667. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/CollectionField.cds +11 -3
  668. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +5 -0
  669. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroWithSemanticKey.cds +17 -12
  670. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterBarMacro.cds +18 -1
  671. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterBarMacroWithDefaultAnnotation.cds +155 -0
  672. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterBarMacroWithSVandAnnotation.cds +155 -0
  673. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterFieldMacro.cds +13 -1
  674. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +36 -11
  675. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +22 -1
  676. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/simpleFieldMacro.cds +8 -3
  677. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +252 -61
  678. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +277 -67
  679. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.cds +93 -1
  680. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +118 -16
  681. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +143 -16
  682. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/__snapshots__/FieldTemplating.spec.ts.snap +31 -0
  683. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestFragment.xml +3 -0
  684. package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestSubFragment.xml +10 -0
  685. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +14 -2
  686. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +13 -1
  687. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +131 -0
  688. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +264 -0
  689. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +244 -0
  690. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +238 -0
  691. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +33 -6
  692. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +40 -2
  693. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/ValueHelpTableDelegate.spec.js +61 -0
  694. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/ValueHelpTableDelegate.spec.ts +64 -0
  695. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1287 -32
  696. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/data/tabledelegate.cds +1 -1
  697. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
  698. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/CommonHelper.qunit.js +284 -159
  699. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +9 -9
  700. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +2 -2
  701. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormContainerTemplating.qunit.js +1 -0
  702. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
  703. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplating.qunit.js +10 -5
  704. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +2 -2
  705. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +5 -5
  706. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartContainer.qunit.js +29 -0
  707. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +6 -26
  708. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelperTemplate.qunit.js +3 -8
  709. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +402 -18
  710. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacro.fragment.xml +1 -1
  711. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacroMissingID.fragment.xml +1 -1
  712. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/TableMacro.fragment.xml +0 -2
  713. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.98.json +210 -0
  714. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  715. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  716. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler-dbg.js +70 -29
  717. package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler.js +1 -1
  718. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  719. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  720. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +6 -5
  721. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +3 -3
  722. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  723. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  724. package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +5 -5
  725. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  726. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  727. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  728. package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/NavigationHandlerTest.qunit.js +4 -12
  729. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  730. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  731. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  732. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  733. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +2 -2
  734. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  735. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  736. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  737. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  738. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  739. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  740. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate-dbg.js +2 -2
  741. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +1 -1
  742. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  743. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +2 -2
  744. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  745. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  746. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +1 -1
  747. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI.js +1 -1
  748. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -1
  749. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +85 -85
  750. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  751. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  752. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation-dbg.js +6 -2
  753. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  754. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit-dbg.js +96 -0
  755. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/MassEdit.js +6 -0
  756. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +36 -21
  757. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share.js +1 -1
  758. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +53 -31
  759. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  760. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +20 -11
  761. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +20 -0
  762. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  763. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +16 -14
  764. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  765. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +15 -0
  766. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
  767. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +103 -88
  768. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +99 -72
  769. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  770. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  771. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Paginator-dbg.js +12 -0
  772. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  773. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share-dbg.js +47 -43
  774. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share.js +1 -1
  775. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +0 -20
  776. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  777. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +24 -24
  778. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +1 -1
  779. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +24 -5
  780. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +1 -4
  781. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +181 -0
  782. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
  783. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
  784. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +133 -123
  785. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
  786. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +1 -1
  787. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  788. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -7
  789. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
  790. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +34 -32
  791. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  792. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  793. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
  794. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle.properties +24 -1
  795. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +1 -1
  796. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +1 -1
  797. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +1 -1
  798. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +8 -8
  799. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +1 -1
  800. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +1 -1
  801. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +1 -1
  802. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +126 -66
  803. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  804. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
  805. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  806. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -1
  807. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  808. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +262 -0
  809. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +2 -1
  810. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +1 -0
  811. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Sections.spec.js +132 -0
  812. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/Sections.spec.ts +131 -0
  813. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +1 -0
  814. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/Sections.spec.ts.snap +52 -0
  815. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +229 -0
  816. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +157 -0
  817. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/__snapshots__/RootContainerBaseController.spec.ts.snap +218 -0
  818. package/packages/sap.fe.templates/test/sap/fe/templates/jest/data/RootContainerBaseController.cds +64 -0
  819. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.98.json +201 -0
  820. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  821. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  822. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner-dbg.js +8 -3
  823. package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner.js +1 -1
  824. package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +8 -3
  825. package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
  826. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +19 -11
  827. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
  828. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils-dbg.js +1 -1
  829. package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils.js +1 -1
  830. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +211 -45
  831. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  832. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +103 -8
  833. package/packages/sap.fe.test/src/sap/fe/test/Utils-dbg.js +0 -12
  834. package/packages/sap.fe.test/src/sap/fe/test/Utils.js +1 -1
  835. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +1 -7
  836. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI.js +1 -1
  837. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions-dbg.js +4 -4
  838. package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions.js +1 -1
  839. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardActions-dbg.js +43 -0
  840. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardActions.js +6 -0
  841. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardAssertions-dbg.js +19 -15
  842. package/packages/sap.fe.test/src/sap/fe/test/api/KPICardAssertions.js +1 -1
  843. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions-dbg.js +11 -0
  844. package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions.js +1 -1
  845. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder-dbg.js +11 -2
  846. package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder.js +1 -1
  847. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder-dbg.js +22 -0
  848. package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder.js +1 -1
  849. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  850. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +5 -4
  851. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +1 -1
  852. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +37 -23
  853. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +4 -4
  854. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  855. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  856. package/packages/sap.fe.test/src/sap/fe/test/resources.json +59 -34
  857. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  858. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  859. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  860. package/packages/sap.fe.test/test/sap/fe/test/mockserver/MockServer.js +98965 -71474
  861. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +0 -8
  862. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +0 -5
  863. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
  864. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/CreditLimitDetails.json +0 -154
  865. package/packages/sap.fe.core/test/sap/fe/core/qunit/TransactionHelper.qunit.js +0 -77
  866. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper-dbg.js +0 -48
  867. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper.js +0 -6
  868. package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.metadata.js +0 -6
  869. package/packages/sap.fe.macros/src/sap/fe/macros/FormWrapper.fragment.xml +0 -26
  870. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler-dbg.js +0 -718
  871. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler.js +0 -6
  872. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterBarHelper.qunit.js +0 -223
  873. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderImage.fragment.xml +0 -24
@@ -24,6 +24,10 @@ class KPIManagementForTest extends KPIManagementControllerExtension {
24
24
  public initCardManifestPublic(kpiDefinition: KPIDefinition, oKPIModel: JSONModel<any>) {
25
25
  return this.initCardManifest(kpiDefinition, oKPIModel);
26
26
  }
27
+
28
+ public initNavigationInfoPublic(kpiDefinition: KPIDefinition, oKPIModel: JSONModel<any>, oShellService: any): Promise<void> {
29
+ return this.initNavigationInfo(kpiDefinition, oKPIModel, oShellService);
30
+ }
27
31
  }
28
32
 
29
33
  let kpiExtension: KPIManagementForTest;
@@ -221,6 +225,229 @@ describe("KPIManagement - #initKPIManifest", function() {
221
225
  });
222
226
  });
223
227
 
228
+ describe("KPIManagement - #initNavigationInfo", function() {
229
+ const mockShellService = {
230
+ getLinks: jest.fn(),
231
+ getPrimaryIntent: jest.fn(),
232
+ parseShellHash: jest.fn()
233
+ };
234
+ const kpiModel = new JSONModel();
235
+
236
+ beforeAll(async function() {
237
+ kpiExtension = new KPIManagementForTest();
238
+ });
239
+ beforeEach(async function() {
240
+ // Clean JSON and mocks
241
+ kpiModel.setProperty("/1", { manifest: { "sap.card": { header: {} } } });
242
+
243
+ mockShellService.getLinks.mockReset();
244
+ mockShellService.getPrimaryIntent.mockReset();
245
+ mockShellService.parseShellHash.mockReset();
246
+ });
247
+
248
+ it("builds navigation info from a semantic object and an action", () => {
249
+ const kpiDefinition: KPIDefinition = {
250
+ id: "1",
251
+ entitySet: "unused",
252
+ datapoint: {
253
+ annotationPath: "unused",
254
+ propertyPath: "kpiProperty"
255
+ },
256
+ chart: {
257
+ chartType: "Line",
258
+ dimensions: [],
259
+ measures: []
260
+ },
261
+ navigation: {
262
+ semanticObject: "SemObject",
263
+ action: "theAction"
264
+ }
265
+ };
266
+
267
+ mockShellService.getLinks.mockReturnValue(Promise.resolve([true]));
268
+
269
+ return kpiExtension.initNavigationInfoPublic(kpiDefinition, kpiModel, mockShellService).then(() => {
270
+ expect(mockShellService.getLinks.mock.calls.length).toBe(1);
271
+ expect(mockShellService.getLinks.mock.calls[0][0]).toStrictEqual({
272
+ semanticObject: "SemObject",
273
+ action: "theAction"
274
+ });
275
+ expect(mockShellService.getPrimaryIntent.mock.calls.length).toBe(0);
276
+ expect(mockShellService.parseShellHash.mock.calls.length).toBe(0);
277
+ expect(kpiModel.getProperty("/1/manifest/sap.card/header/actions")).toStrictEqual([
278
+ {
279
+ type: "Navigation",
280
+ parameters: {
281
+ semanticObject: "SemObject",
282
+ action: "theAction"
283
+ }
284
+ }
285
+ ]);
286
+ });
287
+ });
288
+
289
+ it("doesn't build navigation info from a semantic object and an action not available in the Shell", () => {
290
+ const kpiDefinition: KPIDefinition = {
291
+ id: "1",
292
+ entitySet: "unused",
293
+ datapoint: {
294
+ annotationPath: "unused",
295
+ propertyPath: "kpiProperty"
296
+ },
297
+ chart: {
298
+ chartType: "Line",
299
+ dimensions: [],
300
+ measures: []
301
+ },
302
+ navigation: {
303
+ semanticObject: "SemObject",
304
+ action: "theAction"
305
+ }
306
+ };
307
+
308
+ mockShellService.getLinks.mockReturnValue(Promise.resolve([]));
309
+
310
+ return kpiExtension.initNavigationInfoPublic(kpiDefinition, kpiModel, mockShellService).then(() => {
311
+ expect(mockShellService.getLinks.mock.calls.length).toBe(1);
312
+ expect(mockShellService.getLinks.mock.calls[0][0]).toStrictEqual({
313
+ semanticObject: "SemObject",
314
+ action: "theAction"
315
+ });
316
+ expect(mockShellService.getPrimaryIntent.mock.calls.length).toBe(0);
317
+ expect(mockShellService.parseShellHash.mock.calls.length).toBe(0);
318
+ expect(kpiModel.getProperty("/1/manifest/sap.card/header/actions")).toBeUndefined();
319
+ });
320
+ });
321
+
322
+ it("builds navigation info from a semantic object only (primary intent)", () => {
323
+ const kpiDefinition: KPIDefinition = {
324
+ id: "1",
325
+ entitySet: "unused",
326
+ datapoint: {
327
+ annotationPath: "unused",
328
+ propertyPath: "kpiProperty"
329
+ },
330
+ chart: {
331
+ chartType: "Line",
332
+ dimensions: [],
333
+ measures: []
334
+ },
335
+ navigation: {
336
+ semanticObject: "SemObject"
337
+ }
338
+ };
339
+
340
+ mockShellService.getPrimaryIntent.mockReturnValue(Promise.resolve({ intent: "/SemObject-primaryAction" }));
341
+ mockShellService.parseShellHash.mockReturnValue({ semanticObject: "SemObject", action: "primaryAction" });
342
+
343
+ return kpiExtension.initNavigationInfoPublic(kpiDefinition, kpiModel, mockShellService).then(() => {
344
+ expect(mockShellService.getPrimaryIntent.mock.calls.length).toBe(1);
345
+ expect(mockShellService.getPrimaryIntent.mock.calls[0][0]).toBe("SemObject");
346
+ expect(mockShellService.parseShellHash.mock.calls.length).toBe(1);
347
+ expect(mockShellService.parseShellHash.mock.calls[0][0]).toBe("/SemObject-primaryAction");
348
+
349
+ expect(kpiModel.getProperty("/1/manifest/sap.card/header/actions")).toStrictEqual([
350
+ {
351
+ type: "Navigation",
352
+ parameters: {
353
+ semanticObject: "SemObject",
354
+ action: "primaryAction"
355
+ }
356
+ }
357
+ ]);
358
+ });
359
+ });
360
+
361
+ it("doesn't build navigation info from a semantic object only if it has no primary intent", () => {
362
+ const kpiDefinition: KPIDefinition = {
363
+ id: "1",
364
+ entitySet: "unused",
365
+ datapoint: {
366
+ annotationPath: "unused",
367
+ propertyPath: "kpiProperty"
368
+ },
369
+ chart: {
370
+ chartType: "Line",
371
+ dimensions: [],
372
+ measures: []
373
+ },
374
+ navigation: {
375
+ semanticObject: "SemObject"
376
+ }
377
+ };
378
+
379
+ mockShellService.getPrimaryIntent.mockReturnValue(Promise.resolve());
380
+
381
+ return kpiExtension.initNavigationInfoPublic(kpiDefinition, kpiModel, mockShellService).then(() => {
382
+ expect(mockShellService.getPrimaryIntent.mock.calls.length).toBe(1);
383
+ expect(mockShellService.getPrimaryIntent.mock.calls[0][0]).toBe("SemObject");
384
+ expect(mockShellService.parseShellHash.mock.calls.length).toBe(0);
385
+ expect(kpiModel.getProperty("/1/manifest/sap.card/header/actions")).toBeUndefined();
386
+ });
387
+ });
388
+
389
+ it("doesn't build navigation info from a semantic object only if the primary intent is unavailable", () => {
390
+ const kpiDefinition: KPIDefinition = {
391
+ id: "1",
392
+ entitySet: "unused",
393
+ datapoint: {
394
+ annotationPath: "unused",
395
+ propertyPath: "kpiProperty"
396
+ },
397
+ chart: {
398
+ chartType: "Line",
399
+ dimensions: [],
400
+ measures: []
401
+ },
402
+ navigation: {
403
+ semanticObject: "SemObject",
404
+ unavailableActions: ["action1", "primaryAction"]
405
+ }
406
+ };
407
+
408
+ mockShellService.getPrimaryIntent.mockReturnValue(Promise.resolve({ intent: "/SemObject-primaryAction" }));
409
+ mockShellService.parseShellHash.mockReturnValue({ semanticObject: "SemObject", action: "primaryAction" });
410
+
411
+ return kpiExtension.initNavigationInfoPublic(kpiDefinition, kpiModel, mockShellService).then(() => {
412
+ expect(mockShellService.getPrimaryIntent.mock.calls.length).toBe(1);
413
+ expect(mockShellService.getPrimaryIntent.mock.calls[0][0]).toBe("SemObject");
414
+ expect(mockShellService.parseShellHash.mock.calls.length).toBe(1);
415
+ expect(mockShellService.parseShellHash.mock.calls[0][0]).toBe("/SemObject-primaryAction");
416
+ expect(kpiModel.getProperty("/1/manifest/sap.card/header/actions")).toBeUndefined();
417
+ });
418
+ });
419
+
420
+ it("builds navigation info from the manifest (outbound)", () => {
421
+ const kpiDefinition: KPIDefinition = {
422
+ id: "1",
423
+ entitySet: "unused",
424
+ datapoint: {
425
+ annotationPath: "unused",
426
+ propertyPath: "kpiProperty"
427
+ },
428
+ chart: {
429
+ chartType: "Line",
430
+ dimensions: [],
431
+ measures: []
432
+ },
433
+ navigation: {
434
+ outboundNavigation: "outboundNav"
435
+ }
436
+ };
437
+
438
+ return kpiExtension.initNavigationInfoPublic(kpiDefinition, kpiModel, mockShellService).then(() => {
439
+ expect(kpiModel.getProperty("/1/manifest/sap.card/header/actions")).toStrictEqual([
440
+ {
441
+ type: "Navigation",
442
+ parameters: {
443
+ outbound: "outboundNav"
444
+ }
445
+ }
446
+ ]);
447
+ });
448
+ });
449
+ });
450
+
224
451
  describe("KPIManagement - #loadKPITagData (query creation)", function() {
225
452
  beforeAll(async function() {
226
453
  kpiExtension = new KPIManagementForTest();
@@ -2,9 +2,11 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/fe/core/controllerextensions/MessageHandler", "sap/fe/core/actions/messageHandling"], function (MessageHandler, messageHandling) {
5
+ sap.ui.define(["sap/fe/core/controllerextensions/MessageHandler", "sap/fe/core/actions/messageHandling", "console", "sap/fe/core/CommonUtils"], function (MessageHandler, messageHandling, console, CommonUtils) {
6
6
  "use strict";
7
7
 
8
+ var error = console.error;
9
+
8
10
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
11
 
10
12
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
@@ -13,7 +15,7 @@ sap.ui.define(["sap/fe/core/controllerextensions/MessageHandler", "sap/fe/core/a
13
15
 
14
16
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
15
17
 
16
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
18
+ function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
17
19
 
18
20
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
19
21
 
@@ -23,34 +25,47 @@ sap.ui.define(["sap/fe/core/controllerextensions/MessageHandler", "sap/fe/core/a
23
25
 
24
26
  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; }
25
27
 
26
- var TestableMessageHandler = /*#__PURE__*/function (_MessageHandler) {
27
- _inherits(TestableMessageHandler, _MessageHandler);
28
+ describe("ShowMessages and ShowMessagesInDialog", function () {
29
+ var TestableMessageHandler = /*#__PURE__*/function (_MessageHandler) {
30
+ _inherits(TestableMessageHandler, _MessageHandler);
28
31
 
29
- var _super = _createSuper(TestableMessageHandler);
32
+ var _super = _createSuper(TestableMessageHandler);
30
33
 
31
- function TestableMessageHandler() {
32
- var _this;
34
+ function TestableMessageHandler() {
35
+ var _this;
33
36
 
34
- _classCallCheck(this, TestableMessageHandler);
37
+ _classCallCheck(this, TestableMessageHandler);
35
38
 
36
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
37
- args[_key] = arguments[_key];
38
- }
39
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
40
+ args[_key] = arguments[_key];
41
+ }
42
+
43
+ _this = _super.call.apply(_super, [this].concat(args));
44
+
45
+ _defineProperty(_assertThisInitialized(_this), "getShowBoundMessagesInMessageDialog", jest.fn());
39
46
 
40
- _this = _super.call.apply(_super, [this].concat(args));
47
+ _defineProperty(_assertThisInitialized(_this), "_checkNavigationToMessagePage", jest.fn());
41
48
 
42
- _defineProperty(_assertThisInitialized(_this), "getShowBoundMessagesInMessageDialog", jest.fn());
49
+ _defineProperty(_assertThisInitialized(_this), "removeTransitionMessages", jest.fn());
43
50
 
44
- return _this;
45
- }
51
+ _defineProperty(_assertThisInitialized(_this), "_getSecondsBeforeRetryAfter", jest.fn());
46
52
 
47
- return TestableMessageHandler;
48
- }(MessageHandler);
53
+ return _this;
54
+ }
55
+
56
+ return TestableMessageHandler;
57
+ }(MessageHandler);
49
58
 
50
- describe("showMessageDialog", function () {
59
+ var oMockAppComponent = {
60
+ _isFclEnabled: jest.fn()
61
+ };
51
62
  var oMockGetShowBoundMessagesInMessageDialog;
52
63
  var oMockShowUnboundMessages;
53
64
  var MessageHandlerExt = new TestableMessageHandler();
65
+ var oCheckFclEnabled; // let oMockGetMessages: any;
66
+ // let oMockIsSticky: any;
67
+ // let oMockGetSecondsBeforeRetryAfter: any;
68
+
54
69
  beforeAll(function () {
55
70
  MessageHandlerExt.base = {
56
71
  getView: function () {
@@ -63,59 +78,216 @@ sap.ui.define(["sap/fe/core/controllerextensions/MessageHandler", "sap/fe/core/a
63
78
  };
64
79
  }
65
80
  };
81
+ },
82
+ _routing: {
83
+ navigateToMessagePage: jest.fn()
66
84
  }
67
85
  };
68
86
  oMockGetShowBoundMessagesInMessageDialog = jest.spyOn(MessageHandlerExt, "getShowBoundMessagesInMessageDialog");
69
87
  oMockGetShowBoundMessagesInMessageDialog.mockReturnValue(true);
70
88
  oMockShowUnboundMessages = jest.spyOn(messageHandling, "showUnboundMessages");
89
+ oCheckFclEnabled = jest.spyOn(CommonUtils, "getAppComponent"); // oMockGetMessages = jest.spyOn(messageHandling, "getMessages");
71
90
  });
72
- beforeEach(function () {
73
- oMockGetShowBoundMessagesInMessageDialog.mockReset();
74
- oMockShowUnboundMessages.mockReset();
91
+ afterEach(function () {
92
+ jest.resetAllMocks();
75
93
  });
76
- it("ensures that basic flow of showMessageDialog is correct", function () {
77
- try {
78
- oMockShowUnboundMessages.mockImplementationOnce(function () {
79
- return Promise.resolve(true);
80
- });
81
- return Promise.resolve(MessageHandlerExt.showMessageDialog()).then(function (bResponse) {
82
- expect(bResponse).toEqual(true); // check that getShowBoundMessagesInMessageDialog is called before showUnboundMessages
83
-
84
- expect(oMockShowUnboundMessages.mock.invocationCallOrder[0]).toBeGreaterThan(oMockGetShowBoundMessagesInMessageDialog.mock.invocationCallOrder[0]); // check that getShowBoundMessagesInDialog is only called once
85
-
86
- expect(oMockGetShowBoundMessagesInMessageDialog).toHaveBeenCalledTimes(1); // check that showUnboundMessages is only called once
87
-
88
- expect(oMockShowUnboundMessages).toHaveBeenCalledTimes(1);
89
- });
90
- } catch (e) {
91
- return Promise.reject(e);
92
- }
94
+ describe("showMessageDialog", function () {
95
+ it("ensures that basic flow of showMessageDialog is correct", function () {
96
+ try {
97
+ oMockShowUnboundMessages.mockImplementationOnce(function () {
98
+ return Promise.resolve(true);
99
+ });
100
+ return Promise.resolve(MessageHandlerExt.showMessageDialog()).then(function (bResponse) {
101
+ expect(bResponse).toEqual(true); // check that getShowBoundMessagesInMessageDialog is called before showUnboundMessages
102
+
103
+ expect(oMockShowUnboundMessages.mock.invocationCallOrder[0]).toBeGreaterThan(oMockGetShowBoundMessagesInMessageDialog.mock.invocationCallOrder[0]); // check that getShowBoundMessagesInDialog is only called once
104
+
105
+ expect(oMockGetShowBoundMessagesInMessageDialog).toHaveBeenCalledTimes(1); // check that showUnboundMessages is only called once
106
+
107
+ expect(oMockShowUnboundMessages).toHaveBeenCalledTimes(1);
108
+ });
109
+ } catch (e) {
110
+ return Promise.reject(e);
111
+ }
112
+ });
113
+ it("rejects the promise if promise returned by messageHandling.showUnboundMessages is rejected", function () {
114
+ try {
115
+ oMockShowUnboundMessages.mockImplementationOnce(function () {
116
+ return Promise.reject(function () {
117
+ throw error;
118
+ });
119
+ });
120
+ return Promise.resolve(expect(MessageHandlerExt.showMessageDialog()).rejects.toThrowError()).then(function () {
121
+ expect(oMockShowUnboundMessages.mock.invocationCallOrder[0]).toBeGreaterThan(oMockGetShowBoundMessagesInMessageDialog.mock.invocationCallOrder[0]);
122
+ expect(oMockGetShowBoundMessagesInMessageDialog).toHaveBeenCalledTimes(1);
123
+ expect(oMockShowUnboundMessages).toHaveBeenCalledTimes(1);
124
+ });
125
+ } catch (e) {
126
+ return Promise.reject(e);
127
+ }
128
+ });
129
+ it("resolves the promise if promise returned by messageHandling.showUnboundMessages is resolved", function () {
130
+ try {
131
+ oMockShowUnboundMessages.mockImplementationOnce(function () {
132
+ return Promise.resolve("Resolved");
133
+ });
134
+ return Promise.resolve(expect(MessageHandlerExt.showMessageDialog()).resolves.toEqual("Resolved")).then(function () {
135
+ expect(oMockShowUnboundMessages.mock.invocationCallOrder[0]).toBeGreaterThan(oMockGetShowBoundMessagesInMessageDialog.mock.invocationCallOrder[0]);
136
+ expect(oMockGetShowBoundMessagesInMessageDialog).toHaveBeenCalledTimes(1);
137
+ expect(oMockShowUnboundMessages).toHaveBeenCalledTimes(1);
138
+ });
139
+ } catch (e) {
140
+ return Promise.reject(e);
141
+ }
142
+ });
143
+ it("resolves with true when messageHandling.showUnboundMessages resolve with true", function () {
144
+ try {
145
+ oMockShowUnboundMessages.mockImplementationOnce(function () {
146
+ return Promise.resolve(true);
147
+ });
148
+ return Promise.resolve(expect(MessageHandlerExt.showMessageDialog()).resolves.toBe(true)).then(function () {});
149
+ } catch (e) {
150
+ return Promise.reject(e);
151
+ }
152
+ }); // test('returns a promise when there are messages to be shown ', () => {
153
+ // //expect(false).toBeFalsy();
154
+ // });
93
155
  });
94
- it("resolves with true when messageHandling.showUnboundMessages resolve with true", function () {
95
- try {
96
- oMockShowUnboundMessages.mockImplementationOnce(function () {
97
- return Promise.resolve(true);
98
- });
99
- return Promise.resolve(MessageHandlerExt.showMessageDialog()).then(function (bResponse) {
100
- expect(bResponse).toEqual(true);
101
- });
102
- } catch (e) {
103
- return Promise.reject(e);
104
- }
156
+ describe("showMessages", function () {
157
+ beforeEach(function () {
158
+ oCheckFclEnabled.mockReturnValue(oMockAppComponent);
159
+
160
+ oMockAppComponent._isFclEnabled.mockReturnValue(false);
161
+ });
162
+ it("ensures that basic flow of showMessages (dialog)", function () {
163
+ try {
164
+ oMockShowUnboundMessages.mockImplementationOnce(function () {
165
+ return Promise.resolve(true);
166
+ });
167
+ return Promise.resolve(MessageHandlerExt.showMessages()).then(function (bResponse) {
168
+ expect(bResponse).toEqual(true);
169
+ expect(MessageHandlerExt._checkNavigationToMessagePage).toBeCalledTimes(1);
170
+ expect(MessageHandlerExt._checkNavigationToMessagePage.mock.invocationCallOrder[0]).toBeLessThan(oMockGetShowBoundMessagesInMessageDialog.mock.invocationCallOrder[0]);
171
+ expect(oMockShowUnboundMessages.mock.invocationCallOrder[0]).toBeGreaterThan(oMockGetShowBoundMessagesInMessageDialog.mock.invocationCallOrder[0]); // check that getShowBoundMessagesInDialog is only called once
172
+
173
+ expect(oMockGetShowBoundMessagesInMessageDialog).toHaveBeenCalledTimes(1); // check that showUnboundMessages is only called once
174
+
175
+ expect(oMockShowUnboundMessages).toHaveBeenCalledTimes(1);
176
+ expect(MessageHandlerExt._checkNavigationToMessagePage).toHaveBeenCalledTimes(1);
177
+ expect(MessageHandlerExt._checkNavigationToMessagePage).toHaveBeenCalledTimes(1);
178
+ });
179
+ } catch (e) {
180
+ return Promise.reject(e);
181
+ }
182
+ });
183
+ it("rejects the promise of showMessages (dialog) if showUnboundMessages throws error", function () {
184
+ try {
185
+ oMockShowUnboundMessages.mockImplementationOnce(function () {
186
+ return Promise.reject(function () {
187
+ throw error;
188
+ });
189
+ });
190
+ return Promise.resolve(expect(MessageHandlerExt.showMessages()).rejects.toThrowError()).then(function () {
191
+ expect(MessageHandlerExt._checkNavigationToMessagePage).toBeCalledTimes(1);
192
+ expect(MessageHandlerExt._checkNavigationToMessagePage.mock.invocationCallOrder[0]).toBeLessThan(oMockGetShowBoundMessagesInMessageDialog.mock.invocationCallOrder[0]);
193
+ expect(oMockShowUnboundMessages.mock.invocationCallOrder[0]).toBeGreaterThan(oMockGetShowBoundMessagesInMessageDialog.mock.invocationCallOrder[0]); // check that getShowBoundMessagesInDialog is only called once
194
+
195
+ expect(oMockGetShowBoundMessagesInMessageDialog).toHaveBeenCalledTimes(1); // check that showUnboundMessages is only called once
196
+
197
+ expect(oMockShowUnboundMessages).toHaveBeenCalledTimes(1);
198
+ expect(MessageHandlerExt._checkNavigationToMessagePage).toHaveBeenCalledTimes(1);
199
+ });
200
+ } catch (e) {
201
+ return Promise.reject(e);
202
+ }
203
+ });
204
+ it("ensures the basic flow of showMessages (page)", function () {
205
+ try {
206
+ MessageHandlerExt.base._routing.navigateToMessagePage.mockImplementationOnce(function () {
207
+ try {
208
+ return Promise.resolve(true);
209
+ } catch (e) {
210
+ return Promise.reject(e);
211
+ }
212
+ });
213
+
214
+ MessageHandlerExt._checkNavigationToMessagePage.mockReturnValueOnce({
215
+ handleShellBack: false
216
+ });
217
+
218
+ return Promise.resolve(MessageHandlerExt.showMessages()).then(function (bResponse) {
219
+ expect(bResponse).toEqual(true);
220
+ expect(MessageHandlerExt._checkNavigationToMessagePage).toHaveBeenCalledTimes(1);
221
+ expect(MessageHandlerExt.base._routing.navigateToMessagePage).toHaveBeenCalledTimes(1);
222
+ });
223
+ } catch (e) {
224
+ return Promise.reject(e);
225
+ }
226
+ });
227
+ it("rejects the promise of showMessages (page) if navigateToMessagePage throws error", function () {
228
+ try {
229
+ MessageHandlerExt.base._routing.navigateToMessagePage.mockImplementationOnce(function () {
230
+ try {
231
+ return Promise.reject(function () {
232
+ throw error;
233
+ });
234
+ } catch (e) {
235
+ return Promise.reject(e);
236
+ }
237
+ });
238
+
239
+ MessageHandlerExt._checkNavigationToMessagePage.mockReturnValueOnce({
240
+ handleShellBack: false
241
+ });
242
+
243
+ return Promise.resolve(expect(MessageHandlerExt.showMessages()).rejects.toThrowError()).then(function () {
244
+ expect(MessageHandlerExt._checkNavigationToMessagePage).toHaveBeenCalledTimes(1);
245
+ expect(MessageHandlerExt.base._routing.navigateToMessagePage).toHaveBeenCalledTimes(1);
246
+ });
247
+ } catch (e) {
248
+ return Promise.reject(e);
249
+ }
250
+ });
251
+ it("resolves the promise of showMessages (page) if navigateToMessagePage resolves", function () {
252
+ try {
253
+ MessageHandlerExt.base._routing.navigateToMessagePage.mockImplementationOnce(function () {
254
+ try {
255
+ return Promise.resolve(function () {
256
+ return true;
257
+ });
258
+ } catch (e) {
259
+ return Promise.reject(e);
260
+ }
261
+ });
262
+
263
+ MessageHandlerExt._checkNavigationToMessagePage.mockReturnValueOnce({
264
+ handleShellBack: false
265
+ });
266
+
267
+ return Promise.resolve(expect(MessageHandlerExt.showMessages()).resolves.toBeTruthy()).then(function () {
268
+ expect(MessageHandlerExt._checkNavigationToMessagePage).toHaveBeenCalledTimes(1);
269
+ expect(MessageHandlerExt.base._routing.navigateToMessagePage).toHaveBeenCalledTimes(1);
270
+ });
271
+ } catch (e) {
272
+ return Promise.reject(e);
273
+ }
274
+ });
275
+ it("Does not check navigation to error page if it is an FCL enabled App", function () {
276
+ try {
277
+ oMockAppComponent._isFclEnabled.mockReturnValue(true);
278
+
279
+ oMockShowUnboundMessages.mockImplementationOnce(function () {
280
+ return Promise.resolve(true);
281
+ });
282
+ return Promise.resolve(MessageHandlerExt.showMessages()).then(function (bResponse) {
283
+ expect(bResponse).toEqual(true);
284
+ expect(MessageHandlerExt._checkNavigationToMessagePage).toBeCalledTimes(0);
285
+ });
286
+ } catch (e) {
287
+ return Promise.reject(e);
288
+ }
289
+ });
105
290
  });
106
- /*it('returns a promise incase showUnboundMessage throws an error')
107
- test('returns a promise when there are messages to be shown ', () => {
108
- expect(false).toBeFalsy();
109
- });
110
- it ('calls getShowBoundMessagesInMessageDialog once', () => {
111
- expect(false).toBeFalsy();
112
- });
113
- it ('resolves the promise if promise returned by messageHandling.getUnboundMessages is resolved', () => {
114
- expect(false).toBeFalsy();
115
- });
116
- it ('rejects the promise if promise returned by messageHandling.getUnboundMessages is rejected', () => {
117
- expect(false).toBeFalsy();
118
- }); */
119
291
  });
120
292
  }, false);
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1lc3NhZ2VIYW5kbGVyLnNwZWMudHMiXSwibmFtZXMiOlsiVGVzdGFibGVNZXNzYWdlSGFuZGxlciIsImplc3QiLCJmbiIsIk1lc3NhZ2VIYW5kbGVyIiwiZGVzY3JpYmUiLCJvTW9ja0dldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nIiwib01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzIiwiTWVzc2FnZUhhbmRsZXJFeHQiLCJiZWZvcmVBbGwiLCJiYXNlIiwiZ2V0VmlldyIsImdldEJpbmRpbmdDb250ZXh0Iiwic2V0UHJvcGVydHkiLCJzcHlPbiIsIm1vY2tSZXR1cm5WYWx1ZSIsIm1lc3NhZ2VIYW5kbGluZyIsImJlZm9yZUVhY2giLCJtb2NrUmVzZXQiLCJpdCIsIm1vY2tJbXBsZW1lbnRhdGlvbk9uY2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNob3dNZXNzYWdlRGlhbG9nIiwiYlJlc3BvbnNlIiwiZXhwZWN0IiwidG9FcXVhbCIsIm1vY2siLCJpbnZvY2F0aW9uQ2FsbE9yZGVyIiwidG9CZUdyZWF0ZXJUaGFuIiwidG9IYXZlQmVlbkNhbGxlZFRpbWVzIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BQ01BLHNCOzs7Ozs7Ozs7Ozs7Ozs7OzRGQUNpQ0MsSUFBSSxDQUFDQyxFQUFMLEU7Ozs7OztJQURGQyxjOztBQUlyQ0MsRUFBQUEsUUFBUSxDQUFDLG1CQUFELEVBQXNCLFlBQU07QUFDbkMsUUFBSUMsd0NBQUo7QUFDQSxRQUFJQyx3QkFBSjtBQUNBLFFBQUlDLGlCQUFpQixHQUFHLElBQUlQLHNCQUFKLEVBQXhCO0FBQ0FRLElBQUFBLFNBQVMsQ0FBQyxZQUFNO0FBQ2RELE1BQUFBLGlCQUFELENBQTJCRSxJQUEzQixHQUFrQztBQUNqQ0MsUUFBQUEsT0FBTyxFQUFFLFlBQU07QUFDZCxpQkFBTztBQUNOQyxZQUFBQSxpQkFBaUIsRUFBRSxZQUFNO0FBQ3hCLHFCQUFPO0FBQ05DLGdCQUFBQSxXQUFXLEVBQUUsWUFBTTtBQUNsQix5QkFBTyxJQUFQO0FBQ0E7QUFISyxlQUFQO0FBS0E7QUFQSyxXQUFQO0FBU0E7QUFYZ0MsT0FBbEM7QUFhQVAsTUFBQUEsd0NBQXdDLEdBQUdKLElBQUksQ0FBQ1ksS0FBTCxDQUFXTixpQkFBWCxFQUE4QixxQ0FBOUIsQ0FBM0M7QUFDQUYsTUFBQUEsd0NBQXdDLENBQUNTLGVBQXpDLENBQXlELElBQXpEO0FBRUFSLE1BQUFBLHdCQUF3QixHQUFHTCxJQUFJLENBQUNZLEtBQUwsQ0FBV0UsZUFBWCxFQUE0QixxQkFBNUIsQ0FBM0I7QUFDQSxLQWxCUSxDQUFUO0FBb0JBQyxJQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNoQlgsTUFBQUEsd0NBQXdDLENBQUNZLFNBQXpDO0FBQ0FYLE1BQUFBLHdCQUF3QixDQUFDVyxTQUF6QjtBQUNBLEtBSFMsQ0FBVjtBQUtBQyxJQUFBQSxFQUFFLENBQUMseURBQUQ7QUFBQSxVQUF3RTtBQUN6RVosUUFBQUEsd0JBQXdCLENBQUNhLHNCQUF6QixDQUFnRCxZQUFNO0FBQ3JELGlCQUFPQyxPQUFPLENBQUNDLE9BQVIsQ0FBZ0IsSUFBaEIsQ0FBUDtBQUNBLFNBRkQ7QUFEeUUsK0JBSWpEZCxpQkFBaUIsQ0FBQ2UsaUJBQWxCLEVBSmlELGlCQUluRUMsU0FKbUU7QUFLekVDLFVBQUFBLE1BQU0sQ0FBQ0QsU0FBRCxDQUFOLENBQWtCRSxPQUFsQixDQUEwQixJQUExQixFQUx5RSxDQU16RTs7QUFDQUQsVUFBQUEsTUFBTSxDQUFDbEIsd0JBQXdCLENBQUNvQixJQUF6QixDQUE4QkMsbUJBQTlCLENBQWtELENBQWxELENBQUQsQ0FBTixDQUE2REMsZUFBN0QsQ0FDQ3ZCLHdDQUF3QyxDQUFDcUIsSUFBekMsQ0FBOENDLG1CQUE5QyxDQUFrRSxDQUFsRSxDQURELEVBUHlFLENBVXpFOztBQUNBSCxVQUFBQSxNQUFNLENBQUNuQix3Q0FBRCxDQUFOLENBQWlEd0IscUJBQWpELENBQXVFLENBQXZFLEVBWHlFLENBWXpFOztBQUNBTCxVQUFBQSxNQUFNLENBQUNsQix3QkFBRCxDQUFOLENBQWlDdUIscUJBQWpDLENBQXVELENBQXZEO0FBYnlFO0FBY3pFLE9BZEM7QUFBQTtBQUFBO0FBQUEsTUFBRjtBQWdCQVgsSUFBQUEsRUFBRSxDQUFDLCtFQUFEO0FBQUEsVUFBOEY7QUFDL0ZaLFFBQUFBLHdCQUF3QixDQUFDYSxzQkFBekIsQ0FBZ0QsWUFBTTtBQUNyRCxpQkFBT0MsT0FBTyxDQUFDQyxPQUFSLENBQWdCLElBQWhCLENBQVA7QUFDQSxTQUZEO0FBRCtGLCtCQUl2RWQsaUJBQWlCLENBQUNlLGlCQUFsQixFQUp1RSxpQkFJekZDLFNBSnlGO0FBSy9GQyxVQUFBQSxNQUFNLENBQUNELFNBQUQsQ0FBTixDQUFrQkUsT0FBbEIsQ0FBMEIsSUFBMUI7QUFMK0Y7QUFNL0YsT0FOQztBQUFBO0FBQUE7QUFBQSxNQUFGO0FBT0E7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQyxHQXZFTyxDQUFSIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlSGFuZGxlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9uc1wiO1xuaW1wb3J0IHsgbWVzc2FnZUhhbmRsaW5nIH0gZnJvbSBcInNhcC9mZS9jb3JlL2FjdGlvbnNcIjtcblxuY2xhc3MgVGVzdGFibGVNZXNzYWdlSGFuZGxlciBleHRlbmRzIE1lc3NhZ2VIYW5kbGVyIHtcblx0Z2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cgPSBqZXN0LmZuKCk7XG59XG5cbmRlc2NyaWJlKFwic2hvd01lc3NhZ2VEaWFsb2dcIiwgKCkgPT4ge1xuXHRsZXQgb01vY2tHZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZzogYW55O1xuXHRsZXQgb01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzOiBhbnk7XG5cdGxldCBNZXNzYWdlSGFuZGxlckV4dCA9IG5ldyBUZXN0YWJsZU1lc3NhZ2VIYW5kbGVyKCk7XG5cdGJlZm9yZUFsbCgoKSA9PiB7XG5cdFx0KE1lc3NhZ2VIYW5kbGVyRXh0IGFzIGFueSkuYmFzZSA9IHtcblx0XHRcdGdldFZpZXc6ICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRnZXRCaW5kaW5nQ29udGV4dDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0c2V0UHJvcGVydHk6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRvTW9ja0dldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nID0gamVzdC5zcHlPbihNZXNzYWdlSGFuZGxlckV4dCwgXCJnZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZ1wiKTtcblx0XHRvTW9ja0dldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nLm1vY2tSZXR1cm5WYWx1ZSh0cnVlKTtcblxuXHRcdG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcyA9IGplc3Quc3B5T24obWVzc2FnZUhhbmRsaW5nLCBcInNob3dVbmJvdW5kTWVzc2FnZXNcIik7XG5cdH0pO1xuXG5cdGJlZm9yZUVhY2goKCkgPT4ge1xuXHRcdG9Nb2NrR2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cubW9ja1Jlc2V0KCk7XG5cdFx0b01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzLm1vY2tSZXNldCgpO1xuXHR9KTtcblxuXHRpdChcImVuc3VyZXMgdGhhdCBiYXNpYyBmbG93IG9mIHNob3dNZXNzYWdlRGlhbG9nIGlzIGNvcnJlY3RcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcy5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG5cdFx0fSk7XG5cdFx0Y29uc3QgYlJlc3BvbnNlID0gYXdhaXQgTWVzc2FnZUhhbmRsZXJFeHQuc2hvd01lc3NhZ2VEaWFsb2coKTtcblx0XHRleHBlY3QoYlJlc3BvbnNlKS50b0VxdWFsKHRydWUpO1xuXHRcdC8vIGNoZWNrIHRoYXQgZ2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cgaXMgY2FsbGVkIGJlZm9yZSBzaG93VW5ib3VuZE1lc3NhZ2VzXG5cdFx0ZXhwZWN0KG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcy5tb2NrLmludm9jYXRpb25DYWxsT3JkZXJbMF0pLnRvQmVHcmVhdGVyVGhhbihcblx0XHRcdG9Nb2NrR2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cubW9jay5pbnZvY2F0aW9uQ2FsbE9yZGVyWzBdXG5cdFx0KTtcblx0XHQvLyBjaGVjayB0aGF0IGdldFNob3dCb3VuZE1lc3NhZ2VzSW5EaWFsb2cgaXMgb25seSBjYWxsZWQgb25jZVxuXHRcdGV4cGVjdChvTW9ja0dldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG5cdFx0Ly8gY2hlY2sgdGhhdCBzaG93VW5ib3VuZE1lc3NhZ2VzIGlzIG9ubHkgY2FsbGVkIG9uY2Vcblx0XHRleHBlY3Qob01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG5cdH0pO1xuXG5cdGl0KFwicmVzb2x2ZXMgd2l0aCB0cnVlIHdoZW4gbWVzc2FnZUhhbmRsaW5nLnNob3dVbmJvdW5kTWVzc2FnZXMgcmVzb2x2ZSB3aXRoIHRydWVcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcy5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG5cdFx0fSk7XG5cdFx0Y29uc3QgYlJlc3BvbnNlID0gYXdhaXQgTWVzc2FnZUhhbmRsZXJFeHQuc2hvd01lc3NhZ2VEaWFsb2coKTtcblx0XHRleHBlY3QoYlJlc3BvbnNlKS50b0VxdWFsKHRydWUpO1xuXHR9KTtcblx0LyppdCgncmV0dXJucyBhIHByb21pc2UgaW5jYXNlIHNob3dVbmJvdW5kTWVzc2FnZSB0aHJvd3MgYW4gZXJyb3InKVxuICAgIHRlc3QoJ3JldHVybnMgYSBwcm9taXNlIHdoZW4gdGhlcmUgYXJlIG1lc3NhZ2VzIHRvIGJlIHNob3duICcsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KGZhbHNlKS50b0JlRmFsc3koKTtcbiAgICB9KTtcblxuICAgIGl0ICgnY2FsbHMgZ2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cgb25jZScsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KGZhbHNlKS50b0JlRmFsc3koKTtcblxuICAgIH0pOyAgICBcblxuICAgIGl0ICgncmVzb2x2ZXMgdGhlIHByb21pc2UgaWYgcHJvbWlzZSByZXR1cm5lZCBieSBtZXNzYWdlSGFuZGxpbmcuZ2V0VW5ib3VuZE1lc3NhZ2VzIGlzIHJlc29sdmVkJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QoZmFsc2UpLnRvQmVGYWxzeSgpO1xuXG4gICAgfSk7XG5cbiAgICBpdCAoJ3JlamVjdHMgdGhlIHByb21pc2UgaWYgcHJvbWlzZSByZXR1cm5lZCBieSBtZXNzYWdlSGFuZGxpbmcuZ2V0VW5ib3VuZE1lc3NhZ2VzIGlzIHJlamVjdGVkJywgKCkgPT4ge1xuICAgICAgICBleHBlY3QoZmFsc2UpLnRvQmVGYWxzeSgpO1xuXG4gICAgfSk7ICAqL1xufSk7XG4iXX0=
293
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1lc3NhZ2VIYW5kbGVyLnNwZWMudHMiXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJUZXN0YWJsZU1lc3NhZ2VIYW5kbGVyIiwiamVzdCIsImZuIiwiTWVzc2FnZUhhbmRsZXIiLCJvTW9ja0FwcENvbXBvbmVudCIsIl9pc0ZjbEVuYWJsZWQiLCJvTW9ja0dldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nIiwib01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzIiwiTWVzc2FnZUhhbmRsZXJFeHQiLCJvQ2hlY2tGY2xFbmFibGVkIiwiYmVmb3JlQWxsIiwiYmFzZSIsImdldFZpZXciLCJnZXRCaW5kaW5nQ29udGV4dCIsInNldFByb3BlcnR5IiwiX3JvdXRpbmciLCJuYXZpZ2F0ZVRvTWVzc2FnZVBhZ2UiLCJzcHlPbiIsIm1vY2tSZXR1cm5WYWx1ZSIsIm1lc3NhZ2VIYW5kbGluZyIsIkNvbW1vblV0aWxzIiwiYWZ0ZXJFYWNoIiwicmVzZXRBbGxNb2NrcyIsIml0IiwibW9ja0ltcGxlbWVudGF0aW9uT25jZSIsIlByb21pc2UiLCJyZXNvbHZlIiwic2hvd01lc3NhZ2VEaWFsb2ciLCJiUmVzcG9uc2UiLCJleHBlY3QiLCJ0b0VxdWFsIiwibW9jayIsImludm9jYXRpb25DYWxsT3JkZXIiLCJ0b0JlR3JlYXRlclRoYW4iLCJ0b0hhdmVCZWVuQ2FsbGVkVGltZXMiLCJyZWplY3QiLCJlcnJvciIsInJlamVjdHMiLCJ0b1Rocm93RXJyb3IiLCJyZXNvbHZlcyIsInRvQmUiLCJiZWZvcmVFYWNoIiwic2hvd01lc3NhZ2VzIiwiX2NoZWNrTmF2aWdhdGlvblRvTWVzc2FnZVBhZ2UiLCJ0b0JlQ2FsbGVkVGltZXMiLCJ0b0JlTGVzc1RoYW4iLCJtb2NrUmV0dXJuVmFsdWVPbmNlIiwiaGFuZGxlU2hlbGxCYWNrIiwidG9CZVRydXRoeSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0FBLEVBQUFBLFFBQVEs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QUNyRm5CLFVBQUFBLGlCQUFpQixDQUFDQyxhQUFsQixDQUFnQ2EsZUFBaEMsQ0FBZ0QsSUFBaEQ7O0FBQ0FYLFVBQUFBLHdCQUF3QixDQUFDaUIsc0JBQXpCLENBQWdELFlBQU07QUFDckQsbUJBQU9DLE9BQU8sQ0FBQ0MsT0FBUixDQUFnQixJQUFoQixDQUFQO0FBQ0EsV0FGRDtBQUZxRixpQ0FLN0RsQixpQkFBaUIsQ0FBQ2tDLFlBQWxCLEVBTDZELGlCQUsvRWQsU0FMK0U7QUFNckZDLFlBQUFBLE1BQU0sQ0FBQ0QsU0FBRCxDQUFOLENBQWtCRSxPQUFsQixDQUEwQixJQUExQjtBQUNBRCxZQUFBQSxNQUFNLENBQUNyQixpQkFBaUIsQ0FBQ21DLDZCQUFuQixDQUFOLENBQXdEQyxlQUF4RCxDQUF3RSxDQUF4RTtBQVBxRjtBQVFyRixTQVJDO0FBQUE7QUFBQTtBQUFBLFFBQUY7QUFTQSxLQTVGTyxDQUFSO0FBNkZBLEdBbk1PLENBQVIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lc3NhZ2VIYW5kbGVyIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zXCI7XG5pbXBvcnQgeyBtZXNzYWdlSGFuZGxpbmcgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYWN0aW9uc1wiO1xuaW1wb3J0IHsgZXJyb3IgfSBmcm9tIFwiY29uc29sZVwiO1xuaW1wb3J0IHsgQ29tbW9uVXRpbHMgfSBmcm9tIFwic2FwL2ZlL2NvcmVcIjtcblxuZGVzY3JpYmUoXCJTaG93TWVzc2FnZXMgYW5kIFNob3dNZXNzYWdlc0luRGlhbG9nXCIsICgpID0+IHtcblx0Y2xhc3MgVGVzdGFibGVNZXNzYWdlSGFuZGxlciBleHRlbmRzIE1lc3NhZ2VIYW5kbGVyIHtcblx0XHRnZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZyA9IGplc3QuZm4oKTtcblx0XHRfY2hlY2tOYXZpZ2F0aW9uVG9NZXNzYWdlUGFnZSA9IGplc3QuZm4oKTtcblx0XHRyZW1vdmVUcmFuc2l0aW9uTWVzc2FnZXMgPSBqZXN0LmZuKCk7XG5cdFx0X2dldFNlY29uZHNCZWZvcmVSZXRyeUFmdGVyID0gamVzdC5mbigpO1xuXHR9XG5cdGxldCBvTW9ja0FwcENvbXBvbmVudCA9IHtcblx0XHRfaXNGY2xFbmFibGVkOiBqZXN0LmZuKClcblx0fTtcblx0bGV0IG9Nb2NrR2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2c6IGFueTtcblx0bGV0IG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlczogYW55O1xuXHRsZXQgTWVzc2FnZUhhbmRsZXJFeHQgPSBuZXcgVGVzdGFibGVNZXNzYWdlSGFuZGxlcigpO1xuXHRsZXQgb0NoZWNrRmNsRW5hYmxlZDogYW55O1xuXHQvLyBsZXQgb01vY2tHZXRNZXNzYWdlczogYW55O1xuXHQvLyBsZXQgb01vY2tJc1N0aWNreTogYW55O1xuXHQvLyBsZXQgb01vY2tHZXRTZWNvbmRzQmVmb3JlUmV0cnlBZnRlcjogYW55O1xuXG5cdGJlZm9yZUFsbCgoKSA9PiB7XG5cdFx0KE1lc3NhZ2VIYW5kbGVyRXh0IGFzIGFueSkuYmFzZSA9IHtcblx0XHRcdGdldFZpZXc6ICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRnZXRCaW5kaW5nQ29udGV4dDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0XHRcdFx0c2V0UHJvcGVydHk6ICgpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0XHR9LFxuXHRcdFx0X3JvdXRpbmc6IHtcblx0XHRcdFx0bmF2aWdhdGVUb01lc3NhZ2VQYWdlOiBqZXN0LmZuKClcblx0XHRcdH1cblx0XHR9O1xuXHRcdG9Nb2NrR2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cgPSBqZXN0LnNweU9uKE1lc3NhZ2VIYW5kbGVyRXh0LCBcImdldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nXCIpO1xuXHRcdG9Nb2NrR2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cubW9ja1JldHVyblZhbHVlKHRydWUpO1xuXG5cdFx0b01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzID0gamVzdC5zcHlPbihtZXNzYWdlSGFuZGxpbmcsIFwic2hvd1VuYm91bmRNZXNzYWdlc1wiKTtcblx0XHRvQ2hlY2tGY2xFbmFibGVkID0gamVzdC5zcHlPbihDb21tb25VdGlscywgXCJnZXRBcHBDb21wb25lbnRcIik7XG5cdFx0Ly8gb01vY2tHZXRNZXNzYWdlcyA9IGplc3Quc3B5T24obWVzc2FnZUhhbmRsaW5nLCBcImdldE1lc3NhZ2VzXCIpO1xuXHR9KTtcblxuXHRhZnRlckVhY2goKCkgPT4ge1xuXHRcdGplc3QucmVzZXRBbGxNb2NrcygpO1xuXHR9KTtcblxuXHRkZXNjcmliZShcInNob3dNZXNzYWdlRGlhbG9nXCIsICgpID0+IHtcblx0XHRpdChcImVuc3VyZXMgdGhhdCBiYXNpYyBmbG93IG9mIHNob3dNZXNzYWdlRGlhbG9nIGlzIGNvcnJlY3RcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0b01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzLm1vY2tJbXBsZW1lbnRhdGlvbk9uY2UoKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXHRcdFx0fSk7XG5cdFx0XHRjb25zdCBiUmVzcG9uc2UgPSBhd2FpdCBNZXNzYWdlSGFuZGxlckV4dC5zaG93TWVzc2FnZURpYWxvZygpO1xuXHRcdFx0ZXhwZWN0KGJSZXNwb25zZSkudG9FcXVhbCh0cnVlKTtcblx0XHRcdC8vIGNoZWNrIHRoYXQgZ2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cgaXMgY2FsbGVkIGJlZm9yZSBzaG93VW5ib3VuZE1lc3NhZ2VzXG5cdFx0XHRleHBlY3Qob01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzLm1vY2suaW52b2NhdGlvbkNhbGxPcmRlclswXSkudG9CZUdyZWF0ZXJUaGFuKFxuXHRcdFx0XHRvTW9ja0dldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nLm1vY2suaW52b2NhdGlvbkNhbGxPcmRlclswXVxuXHRcdFx0KTtcblx0XHRcdC8vIGNoZWNrIHRoYXQgZ2V0U2hvd0JvdW5kTWVzc2FnZXNJbkRpYWxvZyBpcyBvbmx5IGNhbGxlZCBvbmNlXG5cdFx0XHRleHBlY3Qob01vY2tHZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0Ly8gY2hlY2sgdGhhdCBzaG93VW5ib3VuZE1lc3NhZ2VzIGlzIG9ubHkgY2FsbGVkIG9uY2Vcblx0XHRcdGV4cGVjdChvTW9ja1Nob3dVbmJvdW5kTWVzc2FnZXMpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHR9KTtcblxuXHRcdGl0KFwicmVqZWN0cyB0aGUgcHJvbWlzZSBpZiBwcm9taXNlIHJldHVybmVkIGJ5IG1lc3NhZ2VIYW5kbGluZy5zaG93VW5ib3VuZE1lc3NhZ2VzIGlzIHJlamVjdGVkXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcy5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVqZWN0KCgpID0+IHtcblx0XHRcdFx0XHR0aHJvdyBlcnJvcjtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdGF3YWl0IGV4cGVjdChNZXNzYWdlSGFuZGxlckV4dC5zaG93TWVzc2FnZURpYWxvZygpKS5yZWplY3RzLnRvVGhyb3dFcnJvcigpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcy5tb2NrLmludm9jYXRpb25DYWxsT3JkZXJbMF0pLnRvQmVHcmVhdGVyVGhhbihcblx0XHRcdFx0b01vY2tHZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZy5tb2NrLmludm9jYXRpb25DYWxsT3JkZXJbMF1cblx0XHRcdCk7XG5cdFx0XHRleHBlY3Qob01vY2tHZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJyZXNvbHZlcyB0aGUgcHJvbWlzZSBpZiBwcm9taXNlIHJldHVybmVkIGJ5IG1lc3NhZ2VIYW5kbGluZy5zaG93VW5ib3VuZE1lc3NhZ2VzIGlzIHJlc29sdmVkXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcy5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShcIlJlc29sdmVkXCIpO1xuXHRcdFx0fSk7XG5cdFx0XHRhd2FpdCBleHBlY3QoTWVzc2FnZUhhbmRsZXJFeHQuc2hvd01lc3NhZ2VEaWFsb2coKSkucmVzb2x2ZXMudG9FcXVhbChcIlJlc29sdmVkXCIpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcy5tb2NrLmludm9jYXRpb25DYWxsT3JkZXJbMF0pLnRvQmVHcmVhdGVyVGhhbihcblx0XHRcdFx0b01vY2tHZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZy5tb2NrLmludm9jYXRpb25DYWxsT3JkZXJbMF1cblx0XHRcdCk7XG5cdFx0XHRleHBlY3Qob01vY2tHZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJyZXNvbHZlcyB3aXRoIHRydWUgd2hlbiBtZXNzYWdlSGFuZGxpbmcuc2hvd1VuYm91bmRNZXNzYWdlcyByZXNvbHZlIHdpdGggdHJ1ZVwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRvTW9ja1Nob3dVbmJvdW5kTWVzc2FnZXMubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0YXdhaXQgZXhwZWN0KE1lc3NhZ2VIYW5kbGVyRXh0LnNob3dNZXNzYWdlRGlhbG9nKCkpLnJlc29sdmVzLnRvQmUodHJ1ZSk7XG5cdFx0fSk7XG5cdFx0Ly8gdGVzdCgncmV0dXJucyBhIHByb21pc2Ugd2hlbiB0aGVyZSBhcmUgbWVzc2FnZXMgdG8gYmUgc2hvd24gJywgKCkgPT4ge1xuXHRcdC8vICAgICAvL2V4cGVjdChmYWxzZSkudG9CZUZhbHN5KCk7XG5cdFx0Ly8gfSk7XG5cdH0pO1xuXG5cdGRlc2NyaWJlKFwic2hvd01lc3NhZ2VzXCIsICgpID0+IHtcblx0XHRiZWZvcmVFYWNoKCgpID0+IHtcblx0XHRcdG9DaGVja0ZjbEVuYWJsZWQubW9ja1JldHVyblZhbHVlKG9Nb2NrQXBwQ29tcG9uZW50KTtcblx0XHRcdG9Nb2NrQXBwQ29tcG9uZW50Ll9pc0ZjbEVuYWJsZWQubW9ja1JldHVyblZhbHVlKGZhbHNlKTtcblx0XHR9KTtcblxuXHRcdGl0KFwiZW5zdXJlcyB0aGF0IGJhc2ljIGZsb3cgb2Ygc2hvd01lc3NhZ2VzIChkaWFsb2cpXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcy5tb2NrSW1wbGVtZW50YXRpb25PbmNlKCgpID0+IHtcblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3QgYlJlc3BvbnNlID0gYXdhaXQgTWVzc2FnZUhhbmRsZXJFeHQuc2hvd01lc3NhZ2VzKCk7XG5cdFx0XHRleHBlY3QoYlJlc3BvbnNlKS50b0VxdWFsKHRydWUpO1xuXHRcdFx0ZXhwZWN0KE1lc3NhZ2VIYW5kbGVyRXh0Ll9jaGVja05hdmlnYXRpb25Ub01lc3NhZ2VQYWdlKS50b0JlQ2FsbGVkVGltZXMoMSk7XG5cdFx0XHRleHBlY3QoTWVzc2FnZUhhbmRsZXJFeHQuX2NoZWNrTmF2aWdhdGlvblRvTWVzc2FnZVBhZ2UubW9jay5pbnZvY2F0aW9uQ2FsbE9yZGVyWzBdKS50b0JlTGVzc1RoYW4oXG5cdFx0XHRcdG9Nb2NrR2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cubW9jay5pbnZvY2F0aW9uQ2FsbE9yZGVyWzBdXG5cdFx0XHQpO1xuXHRcdFx0ZXhwZWN0KG9Nb2NrU2hvd1VuYm91bmRNZXNzYWdlcy5tb2NrLmludm9jYXRpb25DYWxsT3JkZXJbMF0pLnRvQmVHcmVhdGVyVGhhbihcblx0XHRcdFx0b01vY2tHZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZy5tb2NrLmludm9jYXRpb25DYWxsT3JkZXJbMF1cblx0XHRcdCk7XG5cdFx0XHQvLyBjaGVjayB0aGF0IGdldFNob3dCb3VuZE1lc3NhZ2VzSW5EaWFsb2cgaXMgb25seSBjYWxsZWQgb25jZVxuXHRcdFx0ZXhwZWN0KG9Nb2NrR2V0U2hvd0JvdW5kTWVzc2FnZXNJbk1lc3NhZ2VEaWFsb2cpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdC8vIGNoZWNrIHRoYXQgc2hvd1VuYm91bmRNZXNzYWdlcyBpcyBvbmx5IGNhbGxlZCBvbmNlXG5cdFx0XHRleHBlY3Qob01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG5cdFx0XHRleHBlY3QoTWVzc2FnZUhhbmRsZXJFeHQuX2NoZWNrTmF2aWdhdGlvblRvTWVzc2FnZVBhZ2UpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdGV4cGVjdChNZXNzYWdlSGFuZGxlckV4dC5fY2hlY2tOYXZpZ2F0aW9uVG9NZXNzYWdlUGFnZSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJyZWplY3RzIHRoZSBwcm9taXNlIG9mIHNob3dNZXNzYWdlcyAoZGlhbG9nKSBpZiBzaG93VW5ib3VuZE1lc3NhZ2VzIHRocm93cyBlcnJvclwiLCBhc3luYyAoKSA9PiB7XG5cdFx0XHRvTW9ja1Nob3dVbmJvdW5kTWVzc2FnZXMubW9ja0ltcGxlbWVudGF0aW9uT25jZSgoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdCgoKSA9PiB7XG5cdFx0XHRcdFx0dGhyb3cgZXJyb3I7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0XHRhd2FpdCBleHBlY3QoTWVzc2FnZUhhbmRsZXJFeHQuc2hvd01lc3NhZ2VzKCkpLnJlamVjdHMudG9UaHJvd0Vycm9yKCk7XG5cdFx0XHRleHBlY3QoTWVzc2FnZUhhbmRsZXJFeHQuX2NoZWNrTmF2aWdhdGlvblRvTWVzc2FnZVBhZ2UpLnRvQmVDYWxsZWRUaW1lcygxKTtcblx0XHRcdGV4cGVjdChNZXNzYWdlSGFuZGxlckV4dC5fY2hlY2tOYXZpZ2F0aW9uVG9NZXNzYWdlUGFnZS5tb2NrLmludm9jYXRpb25DYWxsT3JkZXJbMF0pLnRvQmVMZXNzVGhhbihcblx0XHRcdFx0b01vY2tHZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZy5tb2NrLmludm9jYXRpb25DYWxsT3JkZXJbMF1cblx0XHRcdCk7XG5cdFx0XHRleHBlY3Qob01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzLm1vY2suaW52b2NhdGlvbkNhbGxPcmRlclswXSkudG9CZUdyZWF0ZXJUaGFuKFxuXHRcdFx0XHRvTW9ja0dldFNob3dCb3VuZE1lc3NhZ2VzSW5NZXNzYWdlRGlhbG9nLm1vY2suaW52b2NhdGlvbkNhbGxPcmRlclswXVxuXHRcdFx0KTtcblx0XHRcdC8vIGNoZWNrIHRoYXQgZ2V0U2hvd0JvdW5kTWVzc2FnZXNJbkRpYWxvZyBpcyBvbmx5IGNhbGxlZCBvbmNlXG5cdFx0XHRleHBlY3Qob01vY2tHZXRTaG93Qm91bmRNZXNzYWdlc0luTWVzc2FnZURpYWxvZykudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0Ly8gY2hlY2sgdGhhdCBzaG93VW5ib3VuZE1lc3NhZ2VzIGlzIG9ubHkgY2FsbGVkIG9uY2Vcblx0XHRcdGV4cGVjdChvTW9ja1Nob3dVbmJvdW5kTWVzc2FnZXMpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdGV4cGVjdChNZXNzYWdlSGFuZGxlckV4dC5fY2hlY2tOYXZpZ2F0aW9uVG9NZXNzYWdlUGFnZSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJlbnN1cmVzIHRoZSBiYXNpYyBmbG93IG9mIHNob3dNZXNzYWdlcyAocGFnZSlcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0KE1lc3NhZ2VIYW5kbGVyRXh0IGFzIGFueSkuYmFzZS5fcm91dGluZy5uYXZpZ2F0ZVRvTWVzc2FnZVBhZ2UubW9ja0ltcGxlbWVudGF0aW9uT25jZShhc3luYyAoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG5cdFx0XHR9KTtcblx0XHRcdE1lc3NhZ2VIYW5kbGVyRXh0Ll9jaGVja05hdmlnYXRpb25Ub01lc3NhZ2VQYWdlLm1vY2tSZXR1cm5WYWx1ZU9uY2UoeyBoYW5kbGVTaGVsbEJhY2s6IGZhbHNlIH0pO1xuXHRcdFx0Y29uc3QgYlJlc3BvbnNlID0gYXdhaXQgTWVzc2FnZUhhbmRsZXJFeHQuc2hvd01lc3NhZ2VzKCk7XG5cdFx0XHRleHBlY3QoYlJlc3BvbnNlKS50b0VxdWFsKHRydWUpO1xuXHRcdFx0ZXhwZWN0KE1lc3NhZ2VIYW5kbGVyRXh0Ll9jaGVja05hdmlnYXRpb25Ub01lc3NhZ2VQYWdlKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG5cdFx0XHRleHBlY3QoKE1lc3NhZ2VIYW5kbGVyRXh0IGFzIGFueSkuYmFzZS5fcm91dGluZy5uYXZpZ2F0ZVRvTWVzc2FnZVBhZ2UpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHR9KTtcblxuXHRcdGl0KFwicmVqZWN0cyB0aGUgcHJvbWlzZSBvZiBzaG93TWVzc2FnZXMgKHBhZ2UpIGlmIG5hdmlnYXRlVG9NZXNzYWdlUGFnZSB0aHJvd3MgZXJyb3JcIiwgYXN5bmMgKCkgPT4ge1xuXHRcdFx0KE1lc3NhZ2VIYW5kbGVyRXh0IGFzIGFueSkuYmFzZS5fcm91dGluZy5uYXZpZ2F0ZVRvTWVzc2FnZVBhZ2UubW9ja0ltcGxlbWVudGF0aW9uT25jZShhc3luYyAoKSA9PiB7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdCgoKSA9PiB7XG5cdFx0XHRcdFx0dGhyb3cgZXJyb3I7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0XHRNZXNzYWdlSGFuZGxlckV4dC5fY2hlY2tOYXZpZ2F0aW9uVG9NZXNzYWdlUGFnZS5tb2NrUmV0dXJuVmFsdWVPbmNlKHsgaGFuZGxlU2hlbGxCYWNrOiBmYWxzZSB9KTtcblx0XHRcdGF3YWl0IGV4cGVjdChNZXNzYWdlSGFuZGxlckV4dC5zaG93TWVzc2FnZXMoKSkucmVqZWN0cy50b1Rocm93RXJyb3IoKTtcblx0XHRcdGV4cGVjdChNZXNzYWdlSGFuZGxlckV4dC5fY2hlY2tOYXZpZ2F0aW9uVG9NZXNzYWdlUGFnZSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdFx0ZXhwZWN0KChNZXNzYWdlSGFuZGxlckV4dCBhcyBhbnkpLmJhc2UuX3JvdXRpbmcubmF2aWdhdGVUb01lc3NhZ2VQYWdlKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG5cdFx0fSk7XG5cblx0XHRpdChcInJlc29sdmVzIHRoZSBwcm9taXNlIG9mIHNob3dNZXNzYWdlcyAocGFnZSkgaWYgbmF2aWdhdGVUb01lc3NhZ2VQYWdlIHJlc29sdmVzXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdChNZXNzYWdlSGFuZGxlckV4dCBhcyBhbnkpLmJhc2UuX3JvdXRpbmcubmF2aWdhdGVUb01lc3NhZ2VQYWdlLm1vY2tJbXBsZW1lbnRhdGlvbk9uY2UoYXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdE1lc3NhZ2VIYW5kbGVyRXh0Ll9jaGVja05hdmlnYXRpb25Ub01lc3NhZ2VQYWdlLm1vY2tSZXR1cm5WYWx1ZU9uY2UoeyBoYW5kbGVTaGVsbEJhY2s6IGZhbHNlIH0pO1xuXHRcdFx0YXdhaXQgZXhwZWN0KE1lc3NhZ2VIYW5kbGVyRXh0LnNob3dNZXNzYWdlcygpKS5yZXNvbHZlcy50b0JlVHJ1dGh5KCk7XG5cdFx0XHRleHBlY3QoTWVzc2FnZUhhbmRsZXJFeHQuX2NoZWNrTmF2aWdhdGlvblRvTWVzc2FnZVBhZ2UpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcblx0XHRcdGV4cGVjdCgoTWVzc2FnZUhhbmRsZXJFeHQgYXMgYW55KS5iYXNlLl9yb3V0aW5nLm5hdmlnYXRlVG9NZXNzYWdlUGFnZSkudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuXHRcdH0pO1xuXG5cdFx0aXQoXCJEb2VzIG5vdCBjaGVjayBuYXZpZ2F0aW9uIHRvIGVycm9yIHBhZ2UgaWYgaXQgaXMgYW4gRkNMIGVuYWJsZWQgQXBwXCIsIGFzeW5jICgpID0+IHtcblx0XHRcdG9Nb2NrQXBwQ29tcG9uZW50Ll9pc0ZjbEVuYWJsZWQubW9ja1JldHVyblZhbHVlKHRydWUpO1xuXHRcdFx0b01vY2tTaG93VW5ib3VuZE1lc3NhZ2VzLm1vY2tJbXBsZW1lbnRhdGlvbk9uY2UoKCkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXHRcdFx0fSk7XG5cdFx0XHRjb25zdCBiUmVzcG9uc2UgPSBhd2FpdCBNZXNzYWdlSGFuZGxlckV4dC5zaG93TWVzc2FnZXMoKTtcblx0XHRcdGV4cGVjdChiUmVzcG9uc2UpLnRvRXF1YWwodHJ1ZSk7XG5cdFx0XHRleHBlY3QoTWVzc2FnZUhhbmRsZXJFeHQuX2NoZWNrTmF2aWdhdGlvblRvTWVzc2FnZVBhZ2UpLnRvQmVDYWxsZWRUaW1lcygwKTtcblx0XHR9KTtcblx0fSk7XG59KTtcbiJdfQ==