@sap/open.fe 1.96.0 → 1.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/package.json +1 -1
  2. package/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
  3. package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
  4. package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +57 -42
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
  6. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
  7. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +2 -2
  8. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +4 -4
  9. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
  10. package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
  11. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/resources.json +4 -4
  13. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  14. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  15. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  16. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  17. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  18. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +2 -2
  19. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
  20. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +59 -274
  21. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
  22. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +52 -64
  23. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
  24. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +2 -2
  25. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
  26. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +18 -22
  27. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
  28. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +80 -4
  29. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
  30. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +42 -23
  31. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
  32. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +36 -21
  33. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  34. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +9 -3
  35. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  36. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +20 -50
  37. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  38. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +222 -102
  39. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
  40. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +33 -6
  41. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  42. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +109 -111
  43. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +1 -1
  44. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +8 -0
  45. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +5 -0
  46. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
  47. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +2 -1
  48. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  49. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
  50. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +10 -1
  51. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  52. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +9 -1
  53. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +2 -2
  54. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  55. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
  56. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +67 -40
  57. package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  58. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -3
  59. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  60. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -3
  61. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +57 -18
  62. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  63. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +51 -13
  64. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -19
  65. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  66. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +139 -18
  67. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +9 -1
  68. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +1 -1
  69. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +4 -0
  70. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +18 -7
  71. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  72. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +17 -12
  73. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +2 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
  75. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
  76. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +2 -2
  77. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +27 -4
  78. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  79. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
  80. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  81. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +211 -0
  82. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +5 -0
  83. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
  84. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +32 -0
  85. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +5 -0
  86. package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +51 -0
  88. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  89. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +1 -1
  90. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +10 -9
  91. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +1 -1
  92. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +232 -228
  93. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
  94. package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
  95. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  96. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +15 -1
  97. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +10 -0
  98. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +10 -0
  99. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +10 -0
  100. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -0
  101. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +10 -0
  102. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +10 -0
  103. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +10 -0
  104. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +10 -0
  105. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +10 -0
  106. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +10 -0
  107. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +6 -0
  108. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +11 -1
  109. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +11 -1
  110. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +10 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +10 -0
  112. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +10 -0
  113. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +10 -0
  114. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +10 -0
  115. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +10 -0
  116. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +10 -0
  117. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +10 -0
  118. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +10 -0
  119. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +11 -1
  120. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +10 -0
  121. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +10 -0
  122. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +19 -9
  123. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +10 -0
  124. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +10 -0
  125. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +10 -0
  126. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +10 -0
  127. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +10 -0
  128. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +10 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +10 -0
  130. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +10 -0
  131. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +11 -1
  132. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +10 -0
  133. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +10 -0
  134. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +10 -0
  135. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +10 -0
  136. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +10 -0
  137. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +10 -0
  138. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +10 -0
  139. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +10 -0
  140. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +10 -0
  141. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +10 -0
  142. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +10 -0
  143. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +10 -0
  144. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +10 -0
  145. package/packages/sap.fe.core/src/sap/fe/core/resources.json +200 -121
  146. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +30 -19
  147. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  148. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -1
  149. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  150. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +80 -7
  151. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  152. package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +42 -2
  153. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
  154. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  155. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  156. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +4 -0
  157. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +1 -0
  158. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +2 -2
  159. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +13 -10
  160. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +7 -4
  161. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +1 -2
  162. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +1 -0
  163. package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +119 -0
  164. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +285 -4
  165. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +121 -0
  166. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +79 -0
  167. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +147 -0
  168. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +96 -0
  169. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +51 -18
  170. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +109 -17
  171. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +66 -0
  172. package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelper.cds +33 -0
  173. package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelperMainEntitySortableFalse.cds +12 -0
  174. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +8 -8
  175. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +68 -0
  176. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +38 -0
  177. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +483 -0
  178. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +376 -0
  179. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.js +101 -0
  180. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.ts +105 -0
  181. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.js +103 -0
  182. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.ts +106 -0
  183. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.js +118 -0
  184. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.ts +118 -0
  185. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.js +101 -0
  186. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.ts +102 -0
  187. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +118 -1
  188. package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +70 -0
  189. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.js +89 -0
  190. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.ts +73 -0
  191. package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +4 -2
  192. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +6 -0
  193. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  194. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  195. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +15 -5
  196. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  197. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +9 -5
  198. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
  199. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +30 -11
  200. package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +1 -1
  201. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +3 -5
  202. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
  203. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +3 -5
  204. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +17 -3
  205. package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +1 -1
  206. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +1 -1
  207. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +1 -2
  208. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +4 -4
  209. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  210. package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +6 -15
  211. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +14 -12
  212. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +1 -1
  213. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  214. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +2 -1
  215. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +12 -1
  216. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  217. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +15 -8
  218. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  219. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +10 -0
  220. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
  221. package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
  222. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +81 -9
  223. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  224. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +13 -3
  225. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  226. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +5 -5
  227. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  228. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +4 -4
  229. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +1 -7
  230. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -3
  231. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  232. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +1 -1
  233. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +46 -0
  234. package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +6 -0
  235. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +17 -8
  236. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +26 -16
  237. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +1 -0
  238. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +4 -13
  239. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  240. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +10 -10
  241. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +5 -3
  242. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
  243. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +72 -8
  244. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  245. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  246. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +12 -11
  247. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
  248. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +93 -91
  249. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  250. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  251. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  252. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +1 -1
  253. package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +1 -1
  254. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +5 -0
  255. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +2 -2
  256. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +2 -2
  257. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +2 -2
  258. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +2 -2
  259. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +2 -2
  260. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +2 -2
  261. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +2 -2
  262. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +2 -2
  263. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +1 -1
  264. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
  265. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -0
  266. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +2 -2
  267. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +2 -2
  268. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +2 -2
  269. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +2 -2
  270. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +2 -2
  271. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +2 -2
  272. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +2 -2
  273. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +2 -2
  274. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +2 -2
  275. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +2 -2
  276. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +2 -2
  277. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +2 -2
  278. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -3
  279. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +2 -2
  280. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +2 -2
  281. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +2 -2
  282. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +2 -2
  283. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +2 -2
  284. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +2 -2
  285. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +2 -2
  286. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +2 -2
  287. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +2 -2
  288. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +2 -2
  289. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +2 -2
  290. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +2 -2
  291. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +2 -2
  292. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +2 -2
  293. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +2 -2
  294. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +2 -2
  295. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +2 -2
  296. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +2 -2
  297. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +2 -2
  298. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +2 -2
  299. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +2 -2
  300. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +2 -2
  301. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +21 -11
  302. package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +2 -1
  303. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +149 -110
  304. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +3 -0
  305. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +70 -29
  306. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +53 -36
  307. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  308. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +1 -1
  309. package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
  310. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +3 -4
  311. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  312. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +2 -2
  313. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  314. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  315. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +844 -0
  316. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +833 -0
  317. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +495 -0
  318. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +440 -0
  319. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +469 -0
  320. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +448 -0
  321. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +94 -0
  322. package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +70 -0
  323. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +12 -1
  324. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +11 -0
  325. package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +61 -0
  326. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.js +46 -0
  327. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.ts +30 -0
  328. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +13 -1
  329. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +11 -0
  330. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.js +66 -0
  331. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.ts +35 -0
  332. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +48 -1
  333. package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +56 -0
  334. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +68 -0
  335. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +65 -0
  336. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +82 -0
  337. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +23 -5
  338. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldHelper.spec.ts.snap +47 -0
  339. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +52 -3
  340. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormElement.spec.ts.snap +25 -0
  341. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +0 -3
  342. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +69 -0
  343. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +451 -0
  344. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldHelper.xml +68 -0
  345. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +13 -1
  346. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +152 -0
  347. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +116 -0
  348. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +115 -0
  349. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.js +86 -0
  350. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.ts +54 -0
  351. package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/__snapshots__/FormElement.spec.ts.snap +33 -0
  352. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +154 -0
  353. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +128 -0
  354. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +7 -2
  355. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +23 -12
  356. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1 -1
  357. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
  358. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +1 -1
  359. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
  360. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +108 -1
  361. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  362. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  363. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  364. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  365. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
  366. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  367. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  368. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  369. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  370. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  371. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  372. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  373. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  374. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  375. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +4 -4
  376. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +1 -1
  377. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  378. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  379. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +3 -3
  380. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +1 -1
  381. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +1 -1
  382. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  383. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  384. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  385. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  386. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  387. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  388. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  389. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -2
  390. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +91 -60
  391. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  392. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  393. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +31 -5
  394. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  395. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +5 -5
  396. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +2 -2
  397. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  398. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +18 -1
  399. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  400. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +114 -85
  401. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  402. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +8 -0
  403. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
  404. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  405. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +23 -3
  406. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
  407. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +15 -15
  408. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +6 -5
  409. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +1 -1
  410. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +6 -4
  411. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +26 -16
  412. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +5 -5
  413. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +63 -9
  414. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
  415. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +54 -32
  416. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
  417. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +24 -21
  418. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
  419. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +2 -1
  420. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +1 -1
  421. package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +2 -0
  422. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  423. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -9
  424. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
  425. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +23 -30
  426. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  427. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  428. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
  429. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +51 -60
  430. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  431. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
  432. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  433. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  434. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +95 -0
  435. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +66 -0
  436. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +134 -0
  437. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +94 -0
  438. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +61 -0
  439. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/ObjectPageHeaderForm.spec.ts.snap +53 -0
  440. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  441. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  442. package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +0 -6
  443. package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +1 -1
  444. package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +14 -3
  445. package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +1 -1
  446. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +85 -8
  447. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
  448. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +54 -2
  449. package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +0 -11
  450. package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
  451. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +0 -38
  452. package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
  453. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +0 -12
  454. package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +1 -1
  455. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +22 -1
  456. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  457. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +14 -0
  458. package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +21 -0
  459. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +9 -5
  460. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
  461. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +18 -5
  462. package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +1 -1
  463. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +25 -5
  464. package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +1 -1
  465. package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +9 -0
  466. package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +1 -1
  467. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +38 -4
  468. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +1 -1
  469. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +33 -4
  470. package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +1 -1
  471. package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +1 -1
  472. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  473. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +3 -3
  474. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +23 -16
  475. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
  476. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  477. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  478. package/packages/sap.fe.test/src/sap/fe/test/resources.json +36 -34
  479. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  480. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  481. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -1
  482. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  483. package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.96.json +0 -49
  484. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.96.json +0 -189
  485. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldRuntime.qunit.js +0 -73
  486. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.96.json +0 -160
  487. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/relnote/changes-1.96.json +0 -17
  488. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +0 -26
  489. package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +0 -6
  490. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.96.json +0 -153
@@ -0,0 +1,833 @@
1
+ //@ts-ignore
2
+ import { ChartDelegate, CommonHelper, ODataMetaModelUtil } from "sap/fe/macros";
3
+ import { MockContext, MockMetaModel, MockModel } from "sap/fe/test/UI5MockHelper";
4
+ import { Log } from "sap/base";
5
+ const spyRequests = jest.fn();
6
+ describe("ChartDelegate", function() {
7
+ const mockModel = new MockModel();
8
+ const oValues = {
9
+ "/SalesOrderManage/$Key": {
10
+ $kind: "Key"
11
+ },
12
+ "/SalesOrderManage/NetPricing": {
13
+ $kind: "Property"
14
+ },
15
+ "/SalesOrderManage/SalesOrder": {
16
+ $kind: "Property"
17
+ },
18
+ "/SalesOrderManage/SoldToParty": {
19
+ $kind: "Property"
20
+ },
21
+ "/SalesOrderManage/NetPricing@sapui.name": "NetPricing",
22
+ "/SalesOrderManage/SalesOrder@sapui.name": "SalesOrder",
23
+ "/SalesOrderManage/SoldToParty@sapui.name": "SoldToParty",
24
+ "/SalesOrderManage/NetPricing@": {
25
+ "@com.sap.vocabularies.Common.v1.Label": "Net Pricing"
26
+ },
27
+ "/SalesOrderManage/SalesOrder@": {
28
+ "@com.sap.vocabularies.Common.v1.Text": {
29
+ "$Path": "SalesOrderText"
30
+ },
31
+ "@com.sap.vocabularies.Common.v1.Label": "Sales Order"
32
+ },
33
+ "/SalesOrderManage/SoldToParty@": {
34
+ "@com.sap.vocabularies.Common.v1.Label": "SoldToParty"
35
+ },
36
+ "@sapui.name": "NetPricing",
37
+ "/SalesOrderManage/_Item/$kind": "NavigationProperty",
38
+ "/SalesOrderManage/$kind": "EntitySet"
39
+ };
40
+ const mockMetaModel = new MockMetaModel(oValues);
41
+ let sEntitySet = "",
42
+ sTargetCollectionPath = "";
43
+ mockModel.setMetaModel(mockMetaModel);
44
+ const mockMdcChart = {
45
+ getDelegate: jest.fn(),
46
+ getItems: jest.fn(),
47
+ getModel: jest.fn(() => mockModel),
48
+ attachModelContextChange: jest.fn(),
49
+ data: jest.fn(sProp => {
50
+ if (sProp === "entitySet") {
51
+ return sEntitySet;
52
+ } else if (sProp === "customAgg") {
53
+ return "CustomAggregates";
54
+ } else if (sProp === "transAgg") {
55
+ return "TransAgg";
56
+ } else if (sProp === "targetCollectionPath") {
57
+ return sTargetCollectionPath;
58
+ } else {
59
+ return "ApplySupported";
60
+ }
61
+ })
62
+ };
63
+ ChartDelegate._getLayoutOptionsForType = jest.fn(sProp => {
64
+ if (sProp === "groupable") {
65
+ return [
66
+ { "key": "category", "text": "Category" },
67
+ { "key": "category2", "text": "Category 2" },
68
+ { "key": "series", "text": "Series" }
69
+ ];
70
+ } else {
71
+ [
72
+ { "key": "axis1", "text": "Axis 1" },
73
+ { "key": "axis2", "text": "Axis 2" },
74
+ { "key": "axis3", "text": "Axis 3" }
75
+ ];
76
+ }
77
+ });
78
+ describe("_getBindingInfo", function() {
79
+ beforeEach(() => {
80
+ jest.clearAllMocks();
81
+ const oMockBindingInfoFromState = jest.spyOn(ChartDelegate, "_getBindingInfoFromState");
82
+ oMockBindingInfoFromState.mockImplementation(() => spyRequests());
83
+ });
84
+ afterAll(() => {
85
+ jest.clearAllMocks();
86
+ });
87
+ it("check binding info of the chart when collection path is entityset", function() {
88
+ sTargetCollectionPath = "/SalesOrderManage";
89
+ sEntitySet = "SalesOrderManage";
90
+ mockMdcChart.getDelegate.mockReturnValue({
91
+ payload: {
92
+ contextPath: "/SalesOrderManage",
93
+ parameters: { $$groupId: "$auto.workers" }
94
+ }
95
+ });
96
+ expect(ChartDelegate._getBindingInfo(mockMdcChart)).toMatchSnapshot();
97
+ });
98
+
99
+ it("check binding info of the chart when collection path is not entityset", function() {
100
+ sTargetCollectionPath = "/SalesOrderManage/_Item";
101
+ sEntitySet = "SalesOrderItem";
102
+ mockMdcChart.getDelegate.mockReturnValue({
103
+ payload: {
104
+ contextPath: "_Item",
105
+ parameters: { $$groupId: "$auto.workers" }
106
+ }
107
+ });
108
+ expect(ChartDelegate._getBindingInfo(mockMdcChart)).toMatchSnapshot();
109
+ });
110
+ });
111
+
112
+ describe("_createPropertyInfosForAggregatable", function() {
113
+ beforeEach(() => {
114
+ jest.clearAllMocks();
115
+ });
116
+ afterAll(() => {
117
+ jest.clearAllMocks();
118
+ });
119
+ it("check _createPropertyInfosForAggregatable for transformational aggregates", function() {
120
+ const oPropertyAnnotations = {
121
+ "@Org.OData.Aggregation.V1.Aggregatable": true,
122
+ "@Org.OData.Aggregation.V1.SupportedAggregationMethods": ["min", "max", "average", "sum"],
123
+ "@Org.OData.Aggregation.V1.RecommendedAggregationMethod": "average",
124
+ "@Org.OData.Measures.V1.ISOCurrency": { "$Path": "TransactionCurrency" },
125
+ "@com.sap.vocabularies.Common.v1.Label": "Net Pricing",
126
+ "@com.sap.vocabularies.UI.v1.DataFieldDefault": {
127
+ "$Type": "com.sap.vocabularies.UI.v1.DataField",
128
+ "Value": {
129
+ "$Path": "NetPricing"
130
+ }
131
+ }
132
+ };
133
+ const oFilterRestrictionsInfo = {
134
+ "NetPricing": {
135
+ filterable: true
136
+ },
137
+ propertyInfo: {}
138
+ };
139
+ const oSortRestrictionsInfo = {
140
+ "NetPricing": {
141
+ sortable: true
142
+ }
143
+ };
144
+ const mKnownAggregatableProps = {
145
+ "NetPricing": {
146
+ "min": {
147
+ "name": "minPricing",
148
+ "label": "Minimal Net Amount"
149
+ },
150
+ "max": {
151
+ "name": "maxPricing",
152
+ "label": "Maximal Net Amount"
153
+ }
154
+ }
155
+ };
156
+ const skey = "NetPricing";
157
+
158
+ expect(
159
+ ChartDelegate._createPropertyInfosForAggregatable(
160
+ skey,
161
+ oPropertyAnnotations,
162
+ oFilterRestrictionsInfo,
163
+ oSortRestrictionsInfo,
164
+ mKnownAggregatableProps,
165
+ {}
166
+ )
167
+ ).toMatchSnapshot();
168
+ });
169
+
170
+ it("check _createPropertyInfosForAggregatable for custom aggregates", function() {
171
+ const oPropertyAnnotations = {
172
+ "@com.sap.vocabularies.Analytics.v1.Measure": true,
173
+ "@Org.OData.Aggregation.V1.default": {
174
+ "$EnumMember": "Org.OData.Aggregation.V1.defaultType/SUM"
175
+ },
176
+ "@com.sap.vocabularies.Common.v1.Label": "Sales Number",
177
+ "@com.sap.vocabularies.UI.v1.DataFieldDefault": {
178
+ "$Type": "com.sap.vocabularies.UI.v1.DataField",
179
+ "Value": {
180
+ "$Path": "SalesNumber"
181
+ }
182
+ }
183
+ };
184
+ const oFilterRestrictionsInfo = {
185
+ propertyInfo: {}
186
+ };
187
+ const oSortRestrictionsInfo = {
188
+ propertyInfo: {}
189
+ };
190
+ const mCustomAggregates = {
191
+ "SalesAmount": {
192
+ "name": "SalesAmount",
193
+ "label": "Custom Aggregate (SalesAmount)",
194
+ "sortable": true,
195
+ "sortOrder": "both",
196
+ "contextDefiningProperty": []
197
+ },
198
+ "SalesAmountLocalCurrency": {
199
+ "name": "SalesAmountLocalCurrency",
200
+ "label": "Custom Aggregate (SalesAmountLocalCurrency)",
201
+ "sortable": true,
202
+ "sortOrder": "both",
203
+ "contextDefiningProperty": []
204
+ }
205
+ };
206
+ const skey = "SalesAmount";
207
+ expect(
208
+ ChartDelegate._createPropertyInfosForAggregatable(
209
+ skey,
210
+ oPropertyAnnotations,
211
+ oFilterRestrictionsInfo,
212
+ oSortRestrictionsInfo,
213
+ {},
214
+ mCustomAggregates
215
+ )
216
+ ).toMatchSnapshot();
217
+ });
218
+ });
219
+
220
+ describe("_handleProperty", function() {
221
+ let mEntitySetAnnotations: any;
222
+ beforeEach(() => {
223
+ jest.clearAllMocks();
224
+ mEntitySetAnnotations = {
225
+ "@Org.OData.Capabilities.V1.SortRestrictions": {},
226
+ "@Org.OData.Capabilities.V1.FilterRestrictions": {}
227
+ };
228
+ });
229
+ afterAll(() => {
230
+ jest.clearAllMocks();
231
+ });
232
+ it("check _handleProperty for non property", async function() {
233
+ const oMetaModelMock = new MockMetaModel();
234
+ let oMockContext = {
235
+ getModel: jest.fn(() => oMetaModelMock),
236
+ getPath: jest.fn()
237
+ };
238
+ const oMockParseCustomData = jest.spyOn(CommonHelper, "parseCustomData");
239
+ oMockParseCustomData.mockImplementation(() => {
240
+ return {};
241
+ });
242
+ oMockContext.getPath.mockReturnValue("/SalesOrderManage/$Key");
243
+ let aProperties: [] = [];
244
+ ChartDelegate._handleProperty.call(oMockContext, mockMdcChart, mEntitySetAnnotations, {}, {}, aProperties, "");
245
+ expect(aProperties).toEqual([]);
246
+ });
247
+
248
+ it("check _handleProperty for aggregatable property part of applysupported", async function() {
249
+ let oMockContext = {
250
+ getModel: jest.fn(() => mockMdcChart.getModel().getMetaModel()),
251
+ getPath: jest.fn()
252
+ };
253
+ const oMockParseCustomData = jest.spyOn(CommonHelper, "parseCustomData");
254
+ oMockParseCustomData.mockImplementation(() => {
255
+ return {
256
+ "$Type": "Org.OData.Aggregation.V1.ApplySupportedType",
257
+ "AggregatableProperties": [
258
+ {
259
+ "$Type": "Org.OData.Aggregation.V1.AggregatablePropertyType",
260
+ "Property": {
261
+ "$PropertyPath": "NetPricing"
262
+ }
263
+ }
264
+ ],
265
+ "GroupableProperties": [
266
+ {
267
+ "$PropertyPath": "SalesOrder"
268
+ }
269
+ ]
270
+ };
271
+ });
272
+ oMockContext.getPath.mockReturnValue("/SalesOrderManage/NetPricing");
273
+ const oMockCreatePropertyInfosForAggregatable = jest.spyOn(ChartDelegate, "_createPropertyInfosForAggregatable");
274
+ const aAggregateProperties: any = [
275
+ {
276
+ "name": "minPricing",
277
+ "propertyPath": "NetPricing",
278
+ "label": "Minimal Net Amount",
279
+ "sortable": true,
280
+ "filterable": true,
281
+ "groupable": false,
282
+ "aggregatable": true,
283
+ "aggregationMethod": "min",
284
+ "maxConditions": -1,
285
+ "kind": "Aggregatable",
286
+ "availableRoles": [
287
+ {
288
+ "key": "axis1",
289
+ "text": "Axis 1"
290
+ },
291
+ {
292
+ "key": "axis2",
293
+ "text": "Axis 2"
294
+ },
295
+ {
296
+ "key": "axis3",
297
+ "text": "Axis 3"
298
+ }
299
+ ],
300
+ "role": "axis1",
301
+ "datapoint": null
302
+ },
303
+ {
304
+ "name": "maxPricing",
305
+ "propertyPath": "NetPricing",
306
+ "label": "Maximal Net Amount",
307
+ "sortable": true,
308
+ "filterable": true,
309
+ "groupable": false,
310
+ "aggregatable": true,
311
+ "aggregationMethod": "max",
312
+ "maxConditions": -1,
313
+ "kind": "Aggregatable",
314
+ "availableRoles": [
315
+ {
316
+ "key": "axis1",
317
+ "text": "Axis 1"
318
+ },
319
+ {
320
+ "key": "axis2",
321
+ "text": "Axis 2"
322
+ },
323
+ {
324
+ "key": "axis3",
325
+ "text": "Axis 3"
326
+ }
327
+ ],
328
+ "role": "axis1",
329
+ "datapoint": null
330
+ }
331
+ ];
332
+ oMockCreatePropertyInfosForAggregatable.mockImplementation(() => {
333
+ return aAggregateProperties;
334
+ });
335
+ let aProperties: [] = [];
336
+ ChartDelegate._handleProperty.call(oMockContext, mockMdcChart, mEntitySetAnnotations, {}, {}, aProperties, "");
337
+ expect(aProperties).toEqual(aAggregateProperties);
338
+ });
339
+
340
+ it("check _handleProperty for groupable property part of applysupported", async function() {
341
+ oValues["@sapui.name"] = "SalesOrder";
342
+ const oMetaModelMock = new MockMetaModel(oValues);
343
+ let oMockContext = {
344
+ getModel: jest.fn(() => oMetaModelMock),
345
+ getPath: jest.fn()
346
+ };
347
+ const oMockParseCustomData = jest.spyOn(CommonHelper, "parseCustomData");
348
+ oMockParseCustomData.mockImplementation(() => {
349
+ return {
350
+ "$Type": "Org.OData.Aggregation.V1.ApplySupportedType",
351
+ "AggregatableProperties": [
352
+ {
353
+ "$Type": "Org.OData.Aggregation.V1.AggregatablePropertyType",
354
+ "Property": {
355
+ "$PropertyPath": "NetPricing"
356
+ }
357
+ }
358
+ ],
359
+ "GroupableProperties": [
360
+ {
361
+ "$PropertyPath": "SalesOrder"
362
+ }
363
+ ]
364
+ };
365
+ });
366
+ oMockContext.getPath.mockReturnValue("/SalesOrderManage/SalesOrder");
367
+ const aGroupableProperties: any = [
368
+ {
369
+ "name": "SalesOrder",
370
+ "propertyPath": "SalesOrder",
371
+ "label": "Sales Order",
372
+ "sortable": true,
373
+ "filterable": true,
374
+ "groupable": true,
375
+ "aggregatable": false,
376
+ "maxConditions": -1,
377
+ "sortKey": "SalesOrder",
378
+ "kind": "Groupable",
379
+ "availableRoles": [
380
+ {
381
+ "key": "category",
382
+ "text": "Category"
383
+ },
384
+ {
385
+ "key": "category2",
386
+ "text": "Category 2"
387
+ },
388
+ {
389
+ "key": "series",
390
+ "text": "Series"
391
+ }
392
+ ],
393
+ "role": "category",
394
+ "criticality": "Positive",
395
+ "textProperty": "SalesOrderText"
396
+ }
397
+ ];
398
+ let aProperties: any = [];
399
+ ChartDelegate._handleProperty.call(oMockContext, mockMdcChart, mEntitySetAnnotations, {}, {}, aProperties, "Positive");
400
+ expect(JSON.stringify(aProperties[0])).toEqual(JSON.stringify(aGroupableProperties[0]));
401
+ });
402
+
403
+ it("check _handleProperty for aggregatable property part of property level annotations", async function() {
404
+ oValues["@sapui.name"] = "NetPricing";
405
+ oValues["/SalesOrderManage/NetPricing@"] = {
406
+ "@Org.OData.Aggregation.V1.Aggregatable": true,
407
+ "@Org.OData.Aggregation.V1.SupportedAggregationMethods": ["min", "max"],
408
+ "@Org.OData.Aggregation.V1.RecommendedAggregationMethod": "max",
409
+ "@com.sap.vocabularies.Common.v1.Label": "Net Pricing"
410
+ } as any;
411
+ const oMetaModelMock = new MockMetaModel(oValues);
412
+ let oMockContext = {
413
+ getModel: jest.fn(() => oMetaModelMock),
414
+ getPath: jest.fn()
415
+ };
416
+ const oMockParseCustomData = jest.spyOn(CommonHelper, "parseCustomData");
417
+ oMockParseCustomData.mockImplementation(() => {
418
+ return {
419
+ "$Type": "Org.OData.Aggregation.V1.ApplySupportedType"
420
+ };
421
+ });
422
+ oMockContext.getPath.mockReturnValue("/SalesOrderManage/NetPricing");
423
+ oValues["@sapui.name"] = "NetPricing";
424
+ oValues["/SalesOrderManage/NetPricing@"] = {
425
+ "@Org.OData.Aggregation.V1.Aggregatable": true,
426
+ "@Org.OData.Aggregation.V1.SupportedAggregationMethods": ["min", "max"],
427
+ "@Org.OData.Aggregation.V1.RecommendedAggregationMethod": "max",
428
+ "@com.sap.vocabularies.Common.v1.Label": "Net Pricing"
429
+ } as any;
430
+ const oMockCreatePropertyInfosForAggregatable = jest.spyOn(ChartDelegate, "_createPropertyInfosForAggregatable");
431
+ const aAggregateProperties: any = [
432
+ {
433
+ "name": "minPricing",
434
+ "propertyPath": "NetPricing",
435
+ "label": "Minimal Net Amount",
436
+ "sortable": true,
437
+ "filterable": true,
438
+ "groupable": false,
439
+ "aggregatable": true,
440
+ "aggregationMethod": "min",
441
+ "maxConditions": -1,
442
+ "kind": "Aggregatable",
443
+ "availableRoles": [
444
+ {
445
+ "key": "axis1",
446
+ "text": "Axis 1"
447
+ },
448
+ {
449
+ "key": "axis2",
450
+ "text": "Axis 2"
451
+ },
452
+ {
453
+ "key": "axis3",
454
+ "text": "Axis 3"
455
+ }
456
+ ],
457
+ "role": "axis1",
458
+ "datapoint": null
459
+ },
460
+ {
461
+ "name": "maxPricing",
462
+ "propertyPath": "NetPricing",
463
+ "label": "Maximal Net Amount",
464
+ "sortable": true,
465
+ "filterable": true,
466
+ "groupable": false,
467
+ "aggregatable": true,
468
+ "aggregationMethod": "max",
469
+ "maxConditions": -1,
470
+ "kind": "Aggregatable",
471
+ "availableRoles": [
472
+ {
473
+ "key": "axis1",
474
+ "text": "Axis 1"
475
+ },
476
+ {
477
+ "key": "axis2",
478
+ "text": "Axis 2"
479
+ },
480
+ {
481
+ "key": "axis3",
482
+ "text": "Axis 3"
483
+ }
484
+ ],
485
+ "role": "axis1",
486
+ "datapoint": null
487
+ }
488
+ ];
489
+ oMockCreatePropertyInfosForAggregatable.mockImplementation(() => {
490
+ return aAggregateProperties;
491
+ });
492
+ let aProperties: [] = [];
493
+ ChartDelegate._handleProperty.call(oMockContext, mockMdcChart, mEntitySetAnnotations, {}, {}, aProperties, "");
494
+ expect(aProperties).toEqual(aAggregateProperties);
495
+ });
496
+
497
+ it("check _handleProperty for groupable property part of property level annotations", async function() {
498
+ oValues["@sapui.name"] = "SalesOrder";
499
+ oValues["/SalesOrderManage/SalesOrder@"] = {
500
+ "@com.sap.vocabularies.Common.v1.Text": {
501
+ "$Path": "SalesOrderText"
502
+ },
503
+ "@com.sap.vocabularies.Common.v1.Label": "Sales Order",
504
+ "@Org.OData.Aggregation.V1.Groupable": true
505
+ } as any;
506
+ const oMetaModelMock = new MockMetaModel(oValues);
507
+ let oMockContext = {
508
+ getModel: jest.fn(() => oMetaModelMock),
509
+ getPath: jest.fn()
510
+ };
511
+ const oMockParseCustomData = jest.spyOn(CommonHelper, "parseCustomData");
512
+ oMockParseCustomData.mockImplementation(() => {
513
+ return {
514
+ "$Type": "Org.OData.Aggregation.V1.ApplySupportedType",
515
+ "AggregatableProperties": [
516
+ {
517
+ "$Type": "Org.OData.Aggregation.V1.AggregatablePropertyType",
518
+ "Property": {
519
+ "$PropertyPath": "NetPricing"
520
+ }
521
+ }
522
+ ],
523
+ "GroupableProperties": [
524
+ {
525
+ "$PropertyPath": "SalesOrder"
526
+ }
527
+ ]
528
+ };
529
+ });
530
+ oMockContext.getPath.mockReturnValue("/SalesOrderManage/SalesOrder");
531
+ const aGroupableProperties: any = [
532
+ {
533
+ "name": "SalesOrder",
534
+ "propertyPath": "SalesOrder",
535
+ "label": "Sales Order",
536
+ "sortable": true,
537
+ "filterable": true,
538
+ "groupable": true,
539
+ "aggregatable": false,
540
+ "maxConditions": -1,
541
+ "sortKey": "SalesOrder",
542
+ "kind": "Groupable",
543
+ "availableRoles": [
544
+ {
545
+ "key": "category",
546
+ "text": "Category"
547
+ },
548
+ {
549
+ "key": "category2",
550
+ "text": "Category 2"
551
+ },
552
+ {
553
+ "key": "series",
554
+ "text": "Series"
555
+ }
556
+ ],
557
+ "role": "category",
558
+ "criticality": "Negative",
559
+ "textProperty": "SalesOrderText"
560
+ }
561
+ ];
562
+ let aProperties: any = [];
563
+ ChartDelegate._handleProperty.call(oMockContext, mockMdcChart, mEntitySetAnnotations, {}, {}, aProperties, "Negative");
564
+ expect(JSON.stringify(aProperties[0])).toEqual(JSON.stringify(aGroupableProperties[0]));
565
+ });
566
+
567
+ it("check _handleProperty which is neither groupable nor aggregatable", async function() {
568
+ oValues["@sapui.name"] = "SoldToParty";
569
+ let oMetaModelMock = new MockMetaModel(oValues);
570
+ let oMockContext = {
571
+ getModel: jest.fn(() => oMetaModelMock),
572
+ getPath: jest.fn()
573
+ };
574
+ const oMockParseCustomData = jest.spyOn(CommonHelper, "parseCustomData");
575
+ oMockParseCustomData.mockImplementation(() => {
576
+ return {
577
+ "$Type": "Org.OData.Aggregation.V1.ApplySupportedType",
578
+ "AggregatableProperties": [
579
+ {
580
+ "$Type": "Org.OData.Aggregation.V1.AggregatablePropertyType",
581
+ "Property": {
582
+ "$PropertyPath": "NetPricing"
583
+ }
584
+ }
585
+ ],
586
+ "GroupableProperties": [
587
+ {
588
+ "$PropertyPath": "SalesOrder"
589
+ }
590
+ ]
591
+ };
592
+ });
593
+ oMockContext.getPath.mockReturnValue("/SalesOrderManage/SoldToParty");
594
+ let aProperties: any = [];
595
+ ChartDelegate._handleProperty.call(oMockContext, mockMdcChart, mEntitySetAnnotations, {}, {}, aProperties, "");
596
+ expect(aProperties).toEqual([]);
597
+ });
598
+ });
599
+
600
+ describe("_createPropertyInfos", function() {
601
+ let oMockRequestObject: any;
602
+ let oMockHandleProperty: any;
603
+ let oMockModel: any;
604
+ let oMockLogError: any;
605
+ beforeEach(() => {
606
+ jest.clearAllMocks();
607
+ oMockModel = mockMdcChart.getModel();
608
+ const oMockMetaModel = oMockModel.getMetaModel();
609
+ oMockRequestObject = jest.spyOn(oMockMetaModel, "requestObject");
610
+ oMockRequestObject.mockImplementation((sProp: any) => {
611
+ return new Promise(function(resolve, reject) {
612
+ if (sProp === "/SalesOrderManage/") {
613
+ resolve({
614
+ "$kind": "EntityType",
615
+ "$Key": ["Id"],
616
+ "Id": {
617
+ "$kind": "Property",
618
+ "$Type": "Edm.Int32",
619
+ "$Nullable": false
620
+ },
621
+ "Region": {
622
+ "$kind": "Property",
623
+ "$Type": "Edm.String"
624
+ },
625
+ "SalesAmount": {
626
+ "$kind": "Property",
627
+ "$Type": "Edm.Decimal",
628
+ "$Precision": 15,
629
+ "$Scale": 3
630
+ },
631
+ "NetPricing": {
632
+ "$kind": "Property",
633
+ "$Type": "Edm.Decimal",
634
+ "$Precision": 15,
635
+ "$Scale": 3
636
+ }
637
+ });
638
+ } else {
639
+ resolve({
640
+ "@Org.OData.Aggregation.V1.CustomAggregate#SalesAmount": "Edm.Decimal",
641
+ "@Org.OData.Aggregation.V1.CustomAggregate#SalesNumber": "Edm.Decimal",
642
+ "@Org.OData.Aggregation.V1.ApplySupported": {
643
+ "$Type": "Org.OData.Aggregation.V1.ApplySupportedType",
644
+ "GroupableProperties": [
645
+ {
646
+ "$PropertyPath": "Name"
647
+ },
648
+ {
649
+ "$PropertyPath": "Region"
650
+ }
651
+ ],
652
+ "AggregatableProperties": [
653
+ {
654
+ "$Type": "Org.OData.Aggregation.V1.AggregatablePropertyType",
655
+ "Property": {
656
+ "$PropertyPath": "SalesAmount"
657
+ }
658
+ },
659
+ {
660
+ "$Type": "Org.OData.Aggregation.V1.AggregatablePropertyType",
661
+ "Property": {
662
+ "$PropertyPath": "NetPricing"
663
+ }
664
+ }
665
+ ]
666
+ }
667
+ });
668
+ }
669
+ });
670
+ });
671
+ sEntitySet = "SalesOrderManage";
672
+ const oMockParseCustomData = jest.spyOn(CommonHelper, "parseCustomData");
673
+ oMockParseCustomData.mockImplementation(sProp => {
674
+ if (sProp === "CustomAggregates") {
675
+ return {
676
+ "SalesAmount": {
677
+ "name": "SalesAmount",
678
+ "label": "Custom Aggregate (SalesAmount)",
679
+ "sortable": true,
680
+ "sortOrder": "both",
681
+ "contextDefiningProperty": []
682
+ }
683
+ };
684
+ } else {
685
+ return {
686
+ "minPricing": {
687
+ "name": "minPricing",
688
+ "propertyPath": "NetPricing",
689
+ "aggregationMethod": "min",
690
+ "label": "Minimal Net Amount",
691
+ "sortable": true,
692
+ "sortOrder": "both",
693
+ "custom": false
694
+ }
695
+ };
696
+ }
697
+ });
698
+ const oMockFetchCriticality = jest.spyOn(ODataMetaModelUtil, "fetchCriticality");
699
+ oMockFetchCriticality.mockImplementation(() => {
700
+ return new Promise(function(resolve, reject) {
701
+ resolve({});
702
+ });
703
+ });
704
+ oMockLogError = jest.spyOn(Log, "error");
705
+ oMockLogError.mockImplementation(() => {
706
+ return {};
707
+ });
708
+ oMockHandleProperty = jest.spyOn(ChartDelegate, "_handleProperty");
709
+ oMockHandleProperty.mockImplementation(() => {
710
+ return new Promise(function(resolve, reject) {
711
+ resolve({});
712
+ });
713
+ });
714
+ });
715
+ afterAll(() => {
716
+ jest.clearAllMocks();
717
+ });
718
+ it("check _createPropertyInfos for same dimension and measure", async function() {
719
+ mockMdcChart.getItems.mockReturnValue([
720
+ {
721
+ getKey: jest.fn(() => "SalesAmount"),
722
+ isA: jest.fn(sProp => {
723
+ if (sProp === "sap.ui.mdc.chart.DimensionItem") {
724
+ return true;
725
+ } else {
726
+ return false;
727
+ }
728
+ })
729
+ },
730
+ {
731
+ getKey: jest.fn(() => "SalesAmount"),
732
+ isA: jest.fn(sProp => {
733
+ if (sProp === "sap.ui.mdc.chart.MeasureItem") {
734
+ return true;
735
+ } else {
736
+ return false;
737
+ }
738
+ })
739
+ }
740
+ ]);
741
+ await ChartDelegate._createPropertyInfos(mockMdcChart, oMockModel);
742
+ expect(oMockLogError.mock.calls.length).toBe(1);
743
+ expect(oMockHandleProperty.mock.calls.length).toBe(4);
744
+ });
745
+ it("check _createPropertyInfos for different dimension and measure", async function() {
746
+ mockMdcChart.getItems.mockReturnValue([
747
+ {
748
+ getKey: jest.fn(() => "Region"),
749
+ isA: jest.fn(sProp => {
750
+ if (sProp === "sap.ui.mdc.chart.DimensionItem") {
751
+ return true;
752
+ } else {
753
+ return false;
754
+ }
755
+ })
756
+ },
757
+ {
758
+ getKey: jest.fn(() => "SalesAmount"),
759
+ isA: jest.fn(sProp => {
760
+ if (sProp === "sap.ui.mdc.chart.MeasureItem") {
761
+ return true;
762
+ } else {
763
+ return false;
764
+ }
765
+ })
766
+ }
767
+ ]);
768
+ await ChartDelegate._createPropertyInfos(mockMdcChart, oMockModel);
769
+ expect(oMockHandleProperty.mock.calls.length).toBe(4);
770
+ });
771
+ });
772
+
773
+ describe("fetchProperties", function() {
774
+ let oMockCreatePropertyInfos: any;
775
+ let oMockMDCChartData: any;
776
+ let oMockAttachModelContextChange: any;
777
+ beforeEach(() => {
778
+ jest.clearAllMocks();
779
+ oMockCreatePropertyInfos = jest.spyOn(ChartDelegate, "_createPropertyInfos");
780
+ oMockCreatePropertyInfos.mockImplementation(() => {
781
+ return new Promise(function(resolve, reject) {
782
+ resolve([]);
783
+ });
784
+ });
785
+ oMockAttachModelContextChange = jest.spyOn(mockMdcChart, "attachModelContextChange");
786
+ oMockAttachModelContextChange.mockImplementation((obj1: any, fn: any, oChartDelegate: any) => {
787
+ return new Promise(function(resolve, reject) {
788
+ const oMockEvent = {
789
+ getSource: function() {
790
+ return {};
791
+ }
792
+ };
793
+ const oMockData = {
794
+ resolver: function() {
795
+ return {};
796
+ }
797
+ };
798
+ fn.call(ChartDelegate, oMockEvent, oMockData);
799
+ resolve({});
800
+ });
801
+ });
802
+ oMockMDCChartData = jest.spyOn(mockMdcChart, "data");
803
+ });
804
+ afterAll(() => {
805
+ jest.clearAllMocks();
806
+ });
807
+ it("check fetchProperties when model is not available", function() {
808
+ const oMockGetModelForChartDelegate = jest.spyOn(ChartDelegate, "_getModel");
809
+ oMockGetModelForChartDelegate.mockImplementation(() => {
810
+ return "";
811
+ });
812
+ const aProps = ChartDelegate.fetchProperties(mockMdcChart).then(function() {
813
+ expect(aProps).toEqual([]);
814
+ expect(oMockMDCChartData).toHaveBeenLastCalledWith("$mdcChartPropertyInfo", []);
815
+ expect(oMockCreatePropertyInfos.mock.calls.length).toBe(1);
816
+ expect(oMockAttachModelContextChange.mock.calls.length).toBe(1);
817
+ });
818
+ });
819
+
820
+ it("check fetchProperties when model is available", async function() {
821
+ const oMockGetModelForChartDelegate = jest.spyOn(ChartDelegate, "_getModel");
822
+ oMockGetModelForChartDelegate.mockImplementation(() => {
823
+ return true;
824
+ });
825
+ const aProps = await ChartDelegate.fetchProperties(mockMdcChart);
826
+
827
+ expect(aProps).toEqual([]);
828
+ expect(oMockMDCChartData).toHaveBeenLastCalledWith("$mdcChartPropertyInfo", []);
829
+ expect(oMockCreatePropertyInfos.mock.calls.length).toBe(1);
830
+ expect(oMockAttachModelContextChange.mock.calls.length).toBe(0);
831
+ });
832
+ });
833
+ });