@sap/open.fe 1.99.0 → 1.100.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 (969) 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 +1748 -1813
  5. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +2 -3
  6. package/packages/sap.fe.common/src/sap/fe/common/MessageButton.ts +1801 -0
  7. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter-dbg.js +77 -32
  8. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.js +2 -3
  9. package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.ts +26 -0
  10. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +43 -53
  11. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +2 -3
  12. package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.ts +39 -0
  13. package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +31 -38
  14. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +8 -9
  15. package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js.map +3 -3
  16. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +23 -71
  17. package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +4 -4
  18. package/packages/sap.fe.common/src/sap/fe/common/library.js +4 -5
  19. package/packages/sap.fe.common/src/sap/fe/common/library.ts +35 -0
  20. package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
  21. package/packages/sap.fe.common/src/sap/fe/common/resources.json +54 -32
  22. package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
  23. package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
  24. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jsmeta.json +1 -1
  25. package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
  26. package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
  27. package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
  28. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +1 -69
  29. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
  30. package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.ts +0 -70
  31. package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +388 -399
  32. package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +2 -3
  33. package/packages/sap.fe.core/src/sap/fe/core/AppComponent.ts +403 -0
  34. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +127 -158
  35. package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +1 -1
  36. package/packages/sap.fe.core/src/sap/fe/core/BaseController-dbg.js +82 -58
  37. package/packages/sap.fe.core/src/sap/fe/core/BaseController.js +2 -3
  38. package/packages/sap.fe.core/src/sap/fe/core/BaseController.ts +68 -0
  39. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +111 -20
  40. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
  41. package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.ts +131 -32
  42. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +278 -274
  43. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +2 -3
  44. package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.ts +250 -0
  45. package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +157 -29
  46. package/packages/sap.fe.core/src/sap/fe/core/PageController.js +1 -1
  47. package/packages/sap.fe.core/src/sap/fe/core/PageController.ts +60 -32
  48. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +694 -756
  49. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
  50. package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.ts +11 -9
  51. package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +21 -31
  52. package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +1 -1
  53. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
  54. package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.ts +10 -3
  55. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +20 -38
  56. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +1 -1
  57. package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.ts +1 -1
  58. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1354 -1370
  59. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
  60. package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.ts +33 -22
  61. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync-dbg.js +392 -0
  62. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync.js +5 -0
  63. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
  64. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon-dbg.js +136 -0
  65. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +5 -0
  66. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
  67. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage-dbg.js +262 -0
  68. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage.js +5 -0
  69. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
  70. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
  71. package/packages/sap.fe.core/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
  72. package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +30 -68
  73. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +1 -1
  74. package/packages/sap.fe.core/src/sap/fe/core/actions/draft.ts +44 -71
  75. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +55 -36
  76. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
  77. package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.ts +66 -46
  78. package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +34 -15
  79. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
  80. package/packages/sap.fe.core/src/sap/fe/core/actions/operations.ts +48 -18
  81. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +17 -4
  82. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +1 -1
  83. package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.ts +21 -4
  84. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata-dbg.js +69 -66
  85. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +2 -3
  86. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
  87. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1593 -1669
  88. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +2 -3
  89. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
  90. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +79 -54
  91. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -3
  92. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
  93. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +718 -779
  94. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +2 -3
  95. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
  96. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +796 -816
  97. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +2 -3
  98. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
  99. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +1004 -1005
  100. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +2 -3
  101. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
  102. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +487 -521
  103. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +1 -1
  104. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -2
  105. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +141 -169
  106. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.js +2 -3
  107. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
  108. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +233 -244
  109. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -3
  110. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
  111. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +301 -336
  112. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  113. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +12 -10
  114. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +188 -175
  115. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +2 -3
  116. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
  117. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +157 -149
  118. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +2 -3
  119. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
  120. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +144 -125
  121. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +2 -3
  122. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
  123. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +7 -6
  124. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.js +2 -3
  125. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
  126. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +230 -268
  127. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +2 -3
  128. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.ts +231 -0
  129. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +592 -633
  130. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  131. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +8 -7
  132. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +788 -806
  133. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +2 -3
  134. package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
  135. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
  136. package/packages/sap.fe.core/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
  137. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution-dbg.js +67 -66
  138. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.js +2 -3
  139. package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.ts +72 -0
  140. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +90 -75
  141. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.js +2 -3
  142. package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
  143. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +130 -125
  144. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -3
  145. package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
  146. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +103 -112
  147. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +2 -3
  148. package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
  149. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +122 -135
  150. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +2 -3
  151. package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
  152. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar-dbg.js +162 -159
  153. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.js +2 -3
  154. package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.ts +143 -0
  155. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +45 -39
  156. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +2 -3
  157. package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
  158. package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate-dbg.js +37 -42
  159. package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -2
  160. package/packages/sap.fe.core/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
  161. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +126 -116
  162. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -3
  163. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
  164. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +241 -255
  165. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +2 -3
  166. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
  167. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +150 -141
  168. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -3
  169. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
  170. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +335 -322
  171. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -3
  172. package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
  173. package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +74 -74
  174. package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +2 -3
  175. package/packages/sap.fe.core/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
  176. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +348 -379
  177. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +1 -1
  178. package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +19 -16
  179. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +12 -1
  180. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  181. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +12 -1
  182. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +354 -378
  183. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  184. package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
  185. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +6 -4
  186. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  187. package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
  188. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +1 -1
  189. package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  190. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +26 -12
  191. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  192. package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +37 -13
  193. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +2 -2
  194. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  195. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +4 -2
  196. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +1 -1
  197. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -2
  198. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -23
  199. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  200. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +134 -29
  201. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +118 -53
  202. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  203. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +156 -93
  204. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +161 -207
  205. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  206. package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +148 -206
  207. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +115 -133
  208. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  209. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +20 -6
  210. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
  211. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
  212. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +12 -1
  213. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
  214. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key-dbg.js +42 -57
  215. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.js +1 -1
  216. package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  217. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +25 -4
  218. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  219. package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +20 -3
  220. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +10 -4
  221. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  222. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +15 -4
  223. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +7 -5
  224. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  225. package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
  226. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +92 -98
  227. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +2 -3
  228. package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
  229. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +2 -3
  230. package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +3 -3
  231. package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +104 -0
  232. package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter.js +5 -0
  233. package/packages/sap.fe.core/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
  234. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +53 -2
  235. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  236. package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
  237. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component-dbg.js +50 -54
  238. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.js +2 -3
  239. package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.ts +48 -0
  240. package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
  241. package/packages/sap.fe.core/src/sap/fe/core/fpm/resources.json +7 -3
  242. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +323 -309
  243. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  244. package/packages/sap.fe.core/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
  245. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +7 -7
  246. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +1 -1
  247. package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
  248. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +186 -62
  249. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +1 -1
  250. package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +168 -52
  251. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +5 -4
  252. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
  253. package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
  254. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +1 -1
  255. package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
  256. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper-dbg.js +601 -684
  257. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.js +2 -3
  258. package/packages/sap.fe.core/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
  259. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +25 -1
  260. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  261. package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.ts +23 -0
  262. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +5 -1
  263. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  264. package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.ts +4 -0
  265. package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +426 -451
  266. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +36 -32
  267. package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +3 -3
  268. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +644 -738
  269. package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
  270. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +24 -35
  271. package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +2 -2
  272. package/packages/sap.fe.core/src/sap/fe/core/library.js +2 -3
  273. package/packages/sap.fe.core/src/sap/fe/core/library.support.js +22 -33
  274. package/packages/sap.fe.core/src/sap/fe/core/library.support.ts +23 -0
  275. package/packages/sap.fe.core/src/sap/fe/core/library.ts +420 -0
  276. package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
  277. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +5 -3
  278. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  279. package/packages/sap.fe.core/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -1
  280. package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +22 -5
  281. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +27 -7
  282. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +27 -7
  283. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +27 -7
  284. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +27 -7
  285. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +27 -7
  286. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +27 -7
  287. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +27 -7
  288. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +27 -7
  289. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +27 -7
  290. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +27 -7
  291. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +27 -7
  292. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +27 -7
  293. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +27 -7
  294. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +27 -7
  295. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +27 -7
  296. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +27 -7
  297. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +28 -8
  298. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +28 -8
  299. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +29 -9
  300. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +27 -7
  301. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +27 -7
  302. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +27 -7
  303. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +27 -7
  304. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +27 -7
  305. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +27 -7
  306. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +26 -6
  307. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +27 -7
  308. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +27 -7
  309. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +27 -7
  310. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +28 -8
  311. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +27 -7
  312. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +27 -7
  313. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +27 -7
  314. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +27 -7
  315. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +28 -8
  316. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +27 -7
  317. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +27 -7
  318. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +27 -7
  319. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +27 -7
  320. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +27 -7
  321. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +27 -7
  322. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +27 -7
  323. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +26 -6
  324. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +30 -10
  325. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +27 -7
  326. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +27 -7
  327. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +27 -7
  328. package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +27 -7
  329. package/packages/sap.fe.core/src/sap/fe/core/resources.json +745 -384
  330. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +45 -71
  331. package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -1
  332. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +154 -192
  333. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +1 -1
  334. package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +4 -4
  335. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +66 -92
  336. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  337. package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +1 -1
  338. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +284 -339
  339. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  340. package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -13
  341. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +67 -102
  342. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  343. package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.ts +5 -2
  344. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +754 -814
  345. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  346. package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.ts +13 -13
  347. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +649 -736
  348. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  349. package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +7 -4
  350. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +567 -592
  351. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  352. package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +22 -3
  353. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +354 -386
  354. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  355. package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +21 -14
  356. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +1 -1
  357. package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
  358. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper-dbg.js +1 -1
  359. package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.ts +1 -1
  360. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics-dbg.js +36 -48
  361. package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.js +1 -1
  362. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +93 -85
  363. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  364. package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +104 -95
  365. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +25 -32
  366. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +1 -1
  367. package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +36 -35
  368. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +2 -2
  369. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  370. package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +1 -1
  371. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
  372. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +1 -1
  373. package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +37 -24
  374. package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1664 -1
  375. package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
  376. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -1
  377. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -1
  378. package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
  379. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +59 -0
  380. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/RootEntity.json +1 -1
  381. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/Component.js +33 -0
  382. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/FieldMessages.controller.js +34 -0
  383. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/FieldMessages.view.xml +18 -0
  384. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/localService/Entities.json +6 -0
  385. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/localService/service.cds +6 -0
  386. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldMessages/manifest.json +68 -0
  387. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldMessages.html +37 -0
  388. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarSVandAnnotationDefaults/FilterBarSVandAnnotationDefaults.controller.js +1 -0
  389. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +7 -2
  390. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +9 -3
  391. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.js +23 -0
  392. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.ts +11 -0
  393. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/service.cds +11 -23
  394. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/Component.js +40 -0
  395. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/TableMessages.controller.js +35 -0
  396. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/TableMessages.view.xml +21 -0
  397. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/localService/RootEntity.json +82 -0
  398. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/localService/service.cds +82 -0
  399. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableMessages/manifest.json +78 -0
  400. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableMessages.html +37 -0
  401. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/ChildEntity.json +5 -4
  402. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +3 -0
  403. package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/App.view.xml +1 -1
  404. package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.js +1 -169
  405. package/packages/sap.fe.core/test/sap/fe/core/jest/AnnotationHelper.spec.ts +0 -212
  406. package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +2305 -119
  407. package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.ts +2206 -67
  408. package/packages/sap.fe.core/test/sap/fe/core/jest/FilterUtils.spec.js +40 -0
  409. package/packages/sap.fe.core/test/sap/fe/core/jest/FilterUtils.spec.ts +34 -0
  410. package/packages/sap.fe.core/test/sap/fe/core/jest/FlexibleColumnLayout.spec.js +114 -0
  411. package/packages/sap.fe.core/test/sap/fe/core/jest/FlexibleColumnLayout.spec.ts +114 -0
  412. package/packages/sap.fe.core/test/sap/fe/core/jest/Paginators.spec.js +113 -0
  413. package/packages/sap.fe.core/test/sap/fe/core/jest/Paginators.spec.ts +78 -0
  414. package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.js +599 -1
  415. package/packages/sap.fe.core/test/sap/fe/core/jest/RouterProxy.spec.ts +614 -0
  416. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +23 -5
  417. package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +26 -14
  418. package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.js +87 -1
  419. package/packages/sap.fe.core/test/sap/fe/core/jest/TransactionHelper.spec.ts +82 -1
  420. package/packages/sap.fe.core/test/sap/fe/core/jest/VisualFilterUtils.spec.js +124 -0
  421. package/packages/sap.fe.core/test/sap/fe/core/jest/VisualFilterUtils.spec.ts +141 -0
  422. package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +34768 -67
  423. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/ActivitySync.spec.js +170 -0
  424. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/ActivitySync.spec.ts +155 -0
  425. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/CollaborationCommon.spec.js +101 -0
  426. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/CollaborationCommon.spec.ts +94 -0
  427. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/Manage.spec.js +82 -0
  428. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/collaboration/Manage.spec.ts +77 -0
  429. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.js +2 -2
  430. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/draft.spec.ts +1 -1
  431. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.js +7 -2
  432. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/messageHandling.spec.ts +7 -0
  433. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.js +104 -2
  434. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/operations.spec.ts +96 -1
  435. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/sticky.spec.js +83 -0
  436. package/packages/sap.fe.core/test/sap/fe/core/jest/actions/sticky.spec.ts +79 -0
  437. package/packages/sap.fe.core/test/sap/fe/core/jest/appcomponent.spec.js +72 -0
  438. package/packages/sap.fe.core/test/sap/fe/core/jest/appcomponent.spec.ts +64 -0
  439. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.js +619 -3
  440. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/EditFlow.spec.ts +668 -5
  441. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.js +297 -1
  442. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalEditFlow.spec.ts +276 -6
  443. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalIntentBasedNavigation.spec.js +149 -0
  444. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalIntentBasedNavigation.spec.ts +142 -0
  445. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.js +776 -182
  446. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/InternalRouting.spec.ts +181 -3
  447. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +19 -43
  448. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.js +2 -18
  449. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MassEdit.spec.ts +8 -6
  450. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +5 -27
  451. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +1 -1
  452. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.js +1 -1
  453. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Routing.spec.ts +1 -1
  454. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Share.spec.js +86 -0
  455. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/Share.spec.ts +80 -0
  456. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +1 -1
  457. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +1 -1
  458. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +2 -18
  459. package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +1 -1
  460. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/DataLossOrDraftDiscardHandler.spec.js +45 -0
  461. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/DataLossOrDraftDiscardHandler.spec.ts +29 -0
  462. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.js +51 -1
  463. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/FilterBar.spec.ts +47 -1
  464. package/packages/sap.fe.core/test/sap/fe/core/jest/controls/__snapshots__/FilterBar.spec.ts.snap +3 -0
  465. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +2 -2
  466. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +1 -1
  467. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.js +25 -36
  468. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Filter.spec.ts +26 -36
  469. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +3 -3
  470. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +2 -2
  471. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +1 -1
  472. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +6 -5
  473. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +133 -9
  474. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +171 -8
  475. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.js +174 -210
  476. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/TableStandardActions.spec.ts +294 -230
  477. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Filter.spec.ts.snap +3 -1
  478. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Chart.spec.js +237 -0
  479. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Chart.spec.ts +246 -0
  480. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/DataVisualization.spec.js +9993 -0
  481. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/DataVisualization.spec.ts +11352 -0
  482. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Table.spec.js +460 -0
  483. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/Table.spec.ts +543 -0
  484. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/TableAnalytics.spec.js +616 -0
  485. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/TableAnalytics.spec.ts +711 -0
  486. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/controls/manifest.json +887 -0
  487. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/objectPage/HeaderAndFooterAction.spec.js +393 -0
  488. package/packages/sap.fe.core/test/sap/fe/core/jest/converters/objectPage/HeaderAndFooterAction.spec.ts +434 -0
  489. package/packages/sap.fe.core/test/sap/fe/core/jest/data/DataConverter.js +31 -0
  490. package/packages/sap.fe.core/test/sap/fe/core/jest/data/DataConverter.ts +12 -0
  491. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Filter.cds +27 -0
  492. package/packages/sap.fe.core/test/sap/fe/core/jest/data/MassEditHelper.cds +12 -0
  493. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/manifest.json +150 -0
  494. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata.xml +365 -0
  495. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_groupable_options.xml +96 -0
  496. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_textArrangement.xml +102 -0
  497. package/packages/sap.fe.core/test/sap/fe/core/jest/data/OKRA/metadata_withPV.xml +359 -0
  498. package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +89 -27
  499. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TemplatingTestData.js +421 -0
  500. package/packages/sap.fe.core/test/sap/fe/core/jest/data/TemplatingTestData.ts +413 -0
  501. package/packages/sap.fe.core/test/sap/fe/core/jest/data/aggregatedSD/metadata.xml +3767 -0
  502. package/packages/sap.fe.core/test/sap/fe/core/jest/data/dsr/manifest.json +185 -0
  503. package/packages/sap.fe.core/test/sap/fe/core/jest/data/dsr/metadata.xml +1534 -0
  504. package/packages/sap.fe.core/test/sap/fe/core/jest/data/manifest.json +887 -0
  505. package/packages/sap.fe.core/test/sap/fe/core/jest/data/salesOrderMetadata_qunit.xml +4995 -0
  506. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/CollaborationFormatters.spec.js +48 -0
  507. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/CollaborationFormatters.spec.ts +48 -0
  508. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +131 -51
  509. package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +81 -31
  510. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.js +13 -7
  511. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/AppStartupHelper.spec.ts +12 -6
  512. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.js +17 -3
  513. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/MassEditHelper.spec.ts +24 -7
  514. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +61 -1
  515. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.ts +59 -0
  516. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.js +3 -3
  517. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/PasteHelper.spec.ts +1 -2
  518. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.js +4 -4
  519. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/SemanticDateOperators.spec.ts +6 -3
  520. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.js +1 -1
  521. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/StableIdHelper.spec.ts +1 -1
  522. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/AppStartupHelper.spec.ts.snap +19 -0
  523. package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/__snapshots__/MassEditHelper.spec.ts.snap +0 -73
  524. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.js +11 -1
  525. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/ChangePageConfiguration.spec.ts +15 -0
  526. package/packages/sap.fe.core/test/sap/fe/core/jest/manifestmerger/__snapshots__/ChangePageConfiguration.spec.ts.snap +30 -0
  527. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +49 -5
  528. package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +60 -5
  529. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/DataModelPathHelper.spec.js +384 -0
  530. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/DataModelPathHelper.spec.ts +427 -0
  531. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +132 -2
  532. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +156 -2
  533. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/UIFormatters.spec.js +273 -0
  534. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/UIFormatters.spec.ts +402 -0
  535. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/ValueHelpTemplating.spec.js +45 -0
  536. package/packages/sap.fe.core/test/sap/fe/core/jest/templating/ValueHelpTemplating.spec.ts +40 -0
  537. package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +2 -1
  538. package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +0 -102
  539. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.100.json +326 -0
  540. package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.99.json +0 -22
  541. package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
  542. package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
  543. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +2 -2
  544. package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +1 -1
  545. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI-dbg.js +22 -43
  546. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.js +1 -1
  547. package/packages/sap.fe.macros/src/sap/fe/macros/ChartAPI.ts +3 -3
  548. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +14 -24
  549. package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
  550. package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +1 -1
  551. package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.fragment.xml +3 -2
  552. package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +16 -18
  553. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +162 -100
  554. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
  555. package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +93 -16
  556. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +2 -1
  557. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +16 -8
  558. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +1 -1
  559. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +58 -83
  560. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +1 -1
  561. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +16 -2
  562. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +112 -192
  563. package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  564. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +1 -1
  565. package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +1 -1
  566. package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI-dbg.js +4 -20
  567. package/packages/sap.fe.macros/src/sap/fe/macros/FormAPI.js +1 -1
  568. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +1 -1
  569. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI-dbg.js +10 -31
  570. package/packages/sap.fe.macros/src/sap/fe/macros/FormContainerAPI.js +1 -1
  571. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +147 -162
  572. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +1 -1
  573. package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +32 -8
  574. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +5 -0
  575. package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +1 -1
  576. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +56 -74
  577. package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
  578. package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +1 -1
  579. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +90 -39
  580. package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
  581. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +284 -251
  582. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
  583. package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +126 -14
  584. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +38 -101
  585. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
  586. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +68 -6
  587. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  588. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +72 -12
  589. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
  590. package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +67 -10
  591. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -12
  592. package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  593. package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.fragment.xml +1 -1
  594. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +1 -3
  595. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +1 -1
  596. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +62 -39
  597. package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +1 -1
  598. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue-dbg.js +104 -50
  599. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.js +2 -3
  600. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.ts +68 -0
  601. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range-dbg.js +83 -35
  602. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.js +2 -3
  603. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.ts +66 -0
  604. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value-dbg.js +327 -216
  605. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.js +2 -3
  606. package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.ts +303 -0
  607. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollaborationAvatar.fragment.xml +15 -0
  608. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +14 -2
  609. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +1 -1
  610. package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +18 -2
  611. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +12 -29
  612. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +9 -0
  613. package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
  614. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +1 -0
  615. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +529 -533
  616. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +2 -3
  617. package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.ts +568 -0
  618. package/packages/sap.fe.macros/src/sap/fe/macros/internal/FilterField.fragment.xml +0 -1
  619. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator-dbg.js +3 -3
  620. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.js +1 -1
  621. package/packages/sap.fe.macros/src/sap/fe/macros/internal/SituationsIndicator.ts +3 -2
  622. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldContent.fragment.xml +3 -1
  623. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +13 -3
  624. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +4 -1
  625. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +1 -0
  626. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +1 -0
  627. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +38 -4
  628. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +2 -2
  629. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +3 -3
  630. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/MdcFieldWithValueHelp.fragment.xml +1 -2
  631. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +55 -11
  632. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +1 -1
  633. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +3 -3
  634. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +9 -2
  635. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +9 -2
  636. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +12 -3
  637. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +26 -5
  638. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +10 -2
  639. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/RatingIndicator.fragment.xml +9 -2
  640. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +9 -2
  641. package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/fragments/ObjectIdentifierContent.fragment.xml +4 -0
  642. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +31 -2
  643. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
  644. package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +20 -0
  645. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime-dbg.js +2 -2
  646. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.js +1 -1
  647. package/packages/sap.fe.macros/src/sap/fe/macros/internal/situations/Runtime.ts +7 -9
  648. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +90 -118
  649. package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  650. package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
  651. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +13 -12
  652. package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +2 -2
  653. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +185 -214
  654. package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
  655. package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
  656. package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
  657. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +4 -1
  658. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +3 -1
  659. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +3 -1
  660. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +3 -1
  661. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +3 -1
  662. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +3 -1
  663. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +3 -1
  664. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +4 -2
  665. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +3 -1
  666. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +3 -1
  667. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +3 -1
  668. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -1
  669. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +3 -1
  670. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +3 -1
  671. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +3 -1
  672. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +3 -1
  673. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +3 -1
  674. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +3 -1
  675. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +3 -1
  676. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +3 -1
  677. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +3 -1
  678. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +3 -1
  679. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +4 -2
  680. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +4 -2
  681. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +3 -1
  682. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +3 -1
  683. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -1
  684. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +3 -1
  685. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +3 -1
  686. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +3 -1
  687. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +3 -1
  688. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +3 -1
  689. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +3 -1
  690. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +3 -1
  691. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +3 -1
  692. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +3 -1
  693. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +3 -1
  694. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +3 -1
  695. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +3 -1
  696. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +3 -1
  697. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +3 -1
  698. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +3 -1
  699. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +3 -1
  700. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +3 -1
  701. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +3 -1
  702. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +3 -1
  703. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +3 -1
  704. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +3 -1
  705. package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +3 -1
  706. package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +273 -199
  707. package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +1 -1
  708. package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +1 -1
  709. package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +2 -0
  710. package/packages/sap.fe.macros/src/sap/fe/macros/table/CreationRow.fragment.xml +13 -20
  711. package/packages/sap.fe.macros/src/sap/fe/macros/table/CustomColumn.fragment.xml +1 -0
  712. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +5 -110
  713. package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
  714. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +98 -78
  715. package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  716. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata-dbg.js +1 -1
  717. package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata.js +1 -1
  718. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +211 -10
  719. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
  720. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -1
  721. package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
  722. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +1 -45
  723. package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +0 -60
  724. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldAPI.spec.js +78 -0
  725. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldAPI.spec.ts +71 -0
  726. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +35 -1
  727. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +44 -0
  728. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarDelegate.spec.js +0 -76
  729. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.js +27 -1
  730. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterBarMacro.spec.ts +28 -0
  731. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.js +10 -12
  732. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterFieldHelper.spec.ts +10 -10
  733. package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterUtils.spec.js +129 -15
  734. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.js +13 -39
  735. package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroAPI.spec.ts +2 -2
  736. package/packages/sap.fe.macros/test/sap/fe/macros/jest/RetrieveTextFromValueList.spec.js +119 -0
  737. package/packages/sap.fe.macros/test/sap/fe/macros/jest/RetrieveTextFromValueList.spec.ts +113 -0
  738. package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.js +166 -2
  739. package/packages/sap.fe.macros/test/sap/fe/macros/jest/Table.spec.ts +190 -3
  740. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +457 -389
  741. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +504 -425
  742. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.js +104 -2
  743. package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableMacro.spec.ts +158 -1
  744. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +0 -6
  745. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +5 -5
  746. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +114 -25
  747. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithSemanticKey.spec.ts.snap +40 -40
  748. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroWithValueHelp.spec.ts.snap +4 -8
  749. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterBarMacro.spec.ts.snap +19 -19
  750. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +3 -5
  751. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +12 -0
  752. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +89 -90
  753. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/Table.spec.ts.snap +1314 -58
  754. package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableMacro.spec.ts.snap +459 -0
  755. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +18 -2
  756. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +6 -1
  757. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +107 -106
  758. package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableAPI.cds +197 -0
  759. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +33 -4
  760. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +30 -4
  761. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +72 -29
  762. package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +86 -18
  763. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/__snapshots__/columnWidth.spec.ts.snap +51 -27
  764. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.js +55 -9
  765. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/columnWidth.spec.ts +46 -6
  766. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/data/columnWidth.cds +28 -1
  767. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +170 -43
  768. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +131 -15
  769. package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +90 -53
  770. package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/TestTSX.spec.tsx +2 -1
  771. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
  772. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +1 -99
  773. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
  774. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +4 -4
  775. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +4 -4
  776. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueHelpTemplating.qunit.js +15 -0
  777. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +265 -106
  778. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/metadata/simpleMetadata.js +38 -0
  779. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.100.json +372 -0
  780. package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.99.json +0 -11
  781. package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
  782. package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
  783. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
  784. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
  785. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js.map +2 -2
  786. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
  787. package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +2 -2
  788. package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
  789. package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
  790. package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +8 -8
  791. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
  792. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
  793. package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
  794. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
  795. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
  796. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
  797. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
  798. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js.map +2 -2
  799. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +2 -2
  800. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +2 -2
  801. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
  802. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
  803. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +27 -27
  804. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.source.less +316 -15
  805. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/resources.json +1 -1
  806. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.less +315 -14
  807. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.source.less +315 -14
  808. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/resources.json +2 -2
  809. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.less +316 -15
  810. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.source.less +316 -15
  811. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/resources.json +2 -2
  812. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.less +316 -15
  813. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.source.less +316 -15
  814. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/resources.json +2 -2
  815. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.less +315 -14
  816. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.source.less +315 -14
  817. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/resources.json +2 -2
  818. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.less +317 -16
  819. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.source.less +317 -16
  820. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/resources.json +2 -2
  821. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.less +317 -16
  822. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.source.less +317 -16
  823. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/resources.json +2 -2
  824. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.less +316 -15
  825. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.source.less +316 -15
  826. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/resources.json +2 -2
  827. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.less +316 -15
  828. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.source.less +316 -15
  829. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/resources.json +2 -2
  830. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/css_variables.less +400 -99
  831. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/css_variables.source.less +400 -99
  832. package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_horizon/resources.json +2 -2
  833. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
  834. package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
  835. package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
  836. package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
  837. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
  838. package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +1 -1
  839. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  840. package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
  841. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component-dbg.js +7 -1
  842. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +1 -1
  843. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +22 -21
  844. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +13 -18
  845. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  846. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
  847. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +7 -7
  848. package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.xml +3 -3
  849. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +50 -9
  850. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
  851. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +1 -12
  852. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  853. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +5 -1
  854. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +50 -17
  855. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  856. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +7 -1
  857. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
  858. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox-dbg.designtime.js +3 -0
  859. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
  860. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
  861. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +19 -15
  862. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/CollaborationDraft.fragment.xml +36 -0
  863. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +1 -1
  864. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -0
  865. package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +1 -0
  866. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +3 -1
  867. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
  868. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +3 -1
  869. package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
  870. package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js +1 -1
  871. package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js.map +2 -2
  872. package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
  873. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +4 -3
  874. package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +2 -2
  875. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +22 -21
  876. package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
  877. package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
  878. package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +14 -14
  879. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +0 -15
  880. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +0 -15
  881. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +0 -15
  882. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +0 -15
  883. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +0 -15
  884. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +0 -15
  885. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +0 -15
  886. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +0 -15
  887. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +0 -15
  888. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +0 -15
  889. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +0 -15
  890. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +0 -15
  891. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +0 -15
  892. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +0 -15
  893. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +0 -15
  894. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +0 -15
  895. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +0 -15
  896. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +0 -15
  897. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +0 -15
  898. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +0 -15
  899. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +0 -15
  900. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +0 -15
  901. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +0 -15
  902. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +0 -15
  903. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +0 -15
  904. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +0 -15
  905. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +0 -15
  906. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +0 -15
  907. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +0 -15
  908. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +0 -15
  909. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +0 -15
  910. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +0 -15
  911. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +0 -15
  912. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +0 -15
  913. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +0 -15
  914. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +0 -15
  915. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +0 -15
  916. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +0 -15
  917. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +0 -15
  918. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +0 -15
  919. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +0 -15
  920. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +0 -15
  921. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +0 -15
  922. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +0 -15
  923. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +0 -15
  924. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +0 -15
  925. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +0 -15
  926. package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +0 -15
  927. package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +115 -89
  928. package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
  929. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +353 -1
  930. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
  931. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -1
  932. package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
  933. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.js +1 -1
  934. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/IntentBasedNavigation.spec.ts +3 -3
  935. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.js +1 -1
  936. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/Share.spec.ts +4 -4
  937. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.js +1 -1
  938. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ListReport/overrides/ViewState.spec.ts +2 -2
  939. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +2 -1
  940. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +2 -1
  941. package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +7 -7
  942. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.js +30 -61
  943. package/packages/sap.fe.templates/test/sap/fe/templates/jest/RootContainer/RootContainerBaseController.spec.ts +1 -1
  944. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.100.json +192 -0
  945. package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.99.json +0 -11
  946. package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
  947. package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
  948. package/packages/sap.fe.test/src/sap/fe/test/FeMocks-dbg.js +1 -1
  949. package/packages/sap.fe.test/src/sap/fe/test/FeMocks.ts +8 -8
  950. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +6 -4
  951. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
  952. package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +10 -6
  953. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +126 -203
  954. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
  955. package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +17 -2
  956. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI-dbg.js +9 -1
  957. package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI.js +1 -1
  958. package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
  959. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +2 -2
  960. package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +2 -2
  961. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +9 -18
  962. package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
  963. package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
  964. package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
  965. package/packages/sap.fe.test/src/sap/fe/test/resources.json +18 -18
  966. package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
  967. package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
  968. package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
  969. package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +0 -271
@@ -1,7 +1,14 @@
1
1
  import path from "path";
2
2
  import CommonUtils from "sap/fe/core/CommonUtils";
3
+ import SelectionVariant from "sap/fe/navigation/SelectionVariant";
3
4
  import { compileCDS, getMetaModel } from "sap/fe/test/JestTemplatingHelper";
5
+ import MessageBox from "sap/m/MessageBox";
4
6
  import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
7
+ import * as FilterHelper from "sap/fe/core/templating/FilterHelper";
8
+ import MessageView from "sap/m/MessageView";
9
+ import MessageHandling from "sap/fe/core/actions/messageHandling";
10
+ import Dialog from "sap/m/Dialog";
11
+ import ODataModel from "sap/ui/model/odata/v4/ODataModel";
5
12
 
6
13
  let metaModel: ODataMetaModel;
7
14
  beforeAll(async function() {
@@ -31,8 +38,7 @@ describe("CommonUtils", function() {
31
38
  SalesOrderType: "OR",
32
39
  SalesOrganization: "1"
33
40
  };
34
- //@ts-ignore
35
- var actualOutput = CommonUtils.getAdditionalParamsForCreate(oUriParams, oInbounds);
41
+ const actualOutput = CommonUtils.getAdditionalParamsForCreate(oUriParams, oInbounds);
36
42
  expect(actualOutput).toEqual(oExpectedOutput);
37
43
  });
38
44
 
@@ -50,8 +56,7 @@ describe("CommonUtils", function() {
50
56
  }
51
57
  };
52
58
  const oExpectedOutput = undefined;
53
- //@ts-ignore
54
- var actualOutput = CommonUtils.getAdditionalParamsForCreate(oUriParams, oInbounds);
59
+ const actualOutput = CommonUtils.getAdditionalParamsForCreate(oUriParams, oInbounds);
55
60
  expect(actualOutput).toEqual(oExpectedOutput);
56
61
  });
57
62
 
@@ -62,8 +67,7 @@ describe("CommonUtils", function() {
62
67
  };
63
68
  const oInbounds = {};
64
69
  const oExpectedOutput = undefined;
65
- //@ts-ignore
66
- var actualOutput = CommonUtils.getAdditionalParamsForCreate(oUriParams, oInbounds);
70
+ const actualOutput = CommonUtils.getAdditionalParamsForCreate(oUriParams, oInbounds);
67
71
  expect(actualOutput).toEqual(oExpectedOutput);
68
72
  });
69
73
 
@@ -71,8 +75,7 @@ describe("CommonUtils", function() {
71
75
  const oUriParams = {};
72
76
  const oInbounds = {};
73
77
  const oExpectedOutput = undefined;
74
- //@ts-ignore
75
- var actualOutput = CommonUtils.getAdditionalParamsForCreate(oUriParams, oInbounds);
78
+ const actualOutput = CommonUtils.getAdditionalParamsForCreate(oUriParams, oInbounds);
76
79
  expect(actualOutput).toEqual(oExpectedOutput);
77
80
  });
78
81
  });
@@ -80,43 +83,37 @@ describe("CommonUtils", function() {
80
83
  describe("getNonComputedVisibleFields", function() {
81
84
  it("getNonComputedVisibleFields - GUID ComputedDefaultValue key field with text annotation", async function() {
82
85
  const aExpectedOutput = ["ID", "ImmutableNonKeyWithText", "ImmutableNonKeyWithoutText"];
83
- //@ts-ignore
84
- var actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithKeyFieldHavingText");
86
+ const actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithKeyFieldHavingText");
85
87
  expect(actualOutput).toEqual(aExpectedOutput);
86
88
  });
87
89
 
88
90
  it("getNonComputedVisibleFields - GUID ComputedDefaultValue key field without text annotation", async function() {
89
91
  const aExpectedOutput: any[] = [];
90
- //@ts-ignore
91
- var actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithKeyFieldNotHavingText");
92
+ const actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithKeyFieldNotHavingText");
92
93
  expect(actualOutput).toEqual(aExpectedOutput);
93
94
  });
94
95
 
95
96
  it("getNonComputedVisibleFields - Hidden GUID ComputedDefaultValue key field", async function() {
96
97
  const aExpectedOutput: any[] = [];
97
- //@ts-ignore
98
- var actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithHiddenKeyField");
98
+ const actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithHiddenKeyField");
99
99
  expect(actualOutput).toEqual(aExpectedOutput);
100
100
  });
101
101
 
102
102
  it("getNonComputedVisibleFields - ReadOnly GUID ComputedDefaultValue key field", async function() {
103
103
  const aExpectedOutput: any[] = ["ID"];
104
- //@ts-ignore
105
- var actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithReadOnlyKeyFieldHavingText");
104
+ const actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithReadOnlyKeyFieldHavingText");
106
105
  expect(actualOutput).toEqual(aExpectedOutput);
107
106
  });
108
107
 
109
108
  it("getNonComputedVisibleFields - ReadOnly GUID ComputedDefaultValue key field", async function() {
110
109
  const aExpectedOutput: any[] = [];
111
- //@ts-ignore
112
- var actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithReadOnlyKeyFieldNotHavingText");
110
+ const actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithReadOnlyKeyFieldNotHavingText");
113
111
  expect(actualOutput).toEqual(aExpectedOutput);
114
112
  });
115
113
 
116
114
  it("getNonComputedVisibleFields - GUID key field with both Computed and ComputeDefaultValue annotation without view", async function() {
117
115
  const aExpectedOutput: any[] = [];
118
- //@ts-ignore
119
- var actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithComputedAndComputedDefaultValueKeyField");
116
+ const actualOutput = CommonUtils.getNonComputedVisibleFields(metaModel, "/EntityWithComputedAndComputedDefaultValueKeyField");
120
117
  expect(actualOutput).toEqual(aExpectedOutput);
121
118
  });
122
119
 
@@ -128,8 +125,7 @@ describe("CommonUtils", function() {
128
125
  addIssue: jest.fn().mockReturnValue("")
129
126
  })
130
127
  };
131
- //@ts-ignore
132
- var actualOutput = CommonUtils.getNonComputedVisibleFields(
128
+ const actualOutput = CommonUtils.getNonComputedVisibleFields(
133
129
  metaModel,
134
130
  "/EntityWithComputedAndComputedDefaultValueKeyField",
135
131
  oView
@@ -137,65 +133,2208 @@ describe("CommonUtils", function() {
137
133
  expect(oView.getDiagnostics().addIssue).toHaveBeenCalled();
138
134
  expect(actualOutput).toEqual(aExpectedOutput);
139
135
  });
140
- describe("getOperatorsForProperty", function() {
141
- it("getOperatorsForProperty - Single Value Allowed Expressions", async function() {
142
- [
143
- {
144
- dataField: "SalesOrderDate",
145
- oContext: {
146
- getObject: function(path: string) {
147
- // Edm type
148
- if (path === "/dummy/SalesOrderDate/$Type") {
149
- return "Edm.Date";
150
- } else {
151
- // Filter Annotations
136
+ });
137
+ describe("getOperatorsForProperty", function() {
138
+ it("getOperatorsForProperty - Single Value Allowed Expressions", async function() {
139
+ [
140
+ {
141
+ dataField: "SalesOrderDate",
142
+ oContext: {
143
+ getObject: function(path: string) {
144
+ // Edm type
145
+ if (path === "/dummy/SalesOrderDate/$Type") {
146
+ return "Edm.Date";
147
+ } else {
148
+ // Filter Annotations
149
+ return {
150
+ FilterExpressionRestrictions: [
151
+ {
152
+ Property: { $PropertyPath: "SalesOrderDate" },
153
+ AllowedExpressions: "SingleValue"
154
+ }
155
+ ]
156
+ };
157
+ }
158
+ }
159
+ },
160
+ expectedValue:
161
+ "DATE,TODAY,YESTERDAY,TOMORROW,FIRSTDAYWEEK,LASTDAYWEEK,FIRSTDAYMONTH,LASTDAYMONTH,FIRSTDAYQUARTER,LASTDAYQUARTER,FIRSTDAYYEAR,LASTDAYYEAR",
162
+ sMessage: "Edm.Date and Single Value Or Search Expressions"
163
+ },
164
+ {
165
+ dataField: "SalesOrderDate",
166
+ oContext: {
167
+ getObject: function(path: string) {
168
+ // Edm type
169
+ if (path === "/dummy/SalesOrderDate/$Type") {
170
+ return "Edm.String";
171
+ } else {
172
+ // Filter Annotations
173
+ return {
174
+ FilterExpressionRestrictions: [
175
+ {
176
+ Property: { $PropertyPath: "SalesOrderDate" },
177
+ AllowedExpressions: "SingleValue"
178
+ }
179
+ ]
180
+ };
181
+ }
182
+ }
183
+ },
184
+ expectedValue: "EQ",
185
+ sMessage: "Edm.String and Single Value Or Search Expressions"
186
+ }
187
+ ].forEach(function(oProperty) {
188
+ const actualValue = CommonUtils.getOperatorsForProperty(
189
+ oProperty.dataField,
190
+ "/dummy",
191
+ oProperty.oContext,
192
+ oProperty.oContext.getObject("/dummy/" + oProperty.dataField + "/$Type"),
193
+ true
194
+ );
195
+ expect(actualValue).toEqual(oProperty.expectedValue);
196
+ });
197
+ });
198
+ });
199
+ describe("CommonUtils - normalizeSearchTerm() input ", function() {
200
+ const aTests = [
201
+ {
202
+ title: "is an empty search string",
203
+ input: "",
204
+ expected: undefined
205
+ },
206
+ {
207
+ title: "is an undefined search term",
208
+ input: undefined,
209
+ expected: undefined
210
+ },
211
+ {
212
+ title: "is a double quote",
213
+ input: '"',
214
+ expected: undefined
215
+ },
216
+ {
217
+ title: "is a single quote",
218
+ input: "'",
219
+ expected: '"\'"'
220
+ },
221
+ {
222
+ title: "contains two words",
223
+ input: "Wuthering Heights",
224
+ expected: '"Wuthering" "Heights"'
225
+ },
226
+ {
227
+ title: "contains a tab in between",
228
+ input: "Word0 Word1\tWord2 Word3",
229
+ expected: '"Word0" "Word1" "Word2" "Word3"'
230
+ },
231
+ {
232
+ title: "contains a return in between",
233
+ input: "Word0 Word1\nWord2\r\nWord3",
234
+ expected: '"Word0" "Word1" "Word2" "Word3"'
235
+ },
236
+ {
237
+ title: "contains multiple words with multiple spaces at the beginning",
238
+ input: " Wuthering, Heights Part-II",
239
+ expected: '"Wuthering," "Heights" "Part-II"'
240
+ },
241
+ {
242
+ title: "contains multiple words with multiple spaces in between",
243
+ input: "Wuthering, Heights Part- II",
244
+ expected: '"Wuthering," "Heights" "Part-" "II"'
245
+ },
246
+ {
247
+ title: "contains multiple words with multiple spaces at the end",
248
+ input: "Wuthering, Heights Part-II ",
249
+ expected: '"Wuthering," "Heights" "Part-II"'
250
+ },
251
+ {
252
+ title: "contains double quotes at the beginning",
253
+ input: '"Wuthering my Heights',
254
+ expected: '"Wuthering" "my" "Heights"'
255
+ },
256
+ {
257
+ title: "contains double quotes in between",
258
+ input: 'Wuth"ering',
259
+ expected: '"Wuth" "ering"'
260
+ },
261
+ {
262
+ title: "contains double quotes at the end",
263
+ input: 'Wuthering no heights"',
264
+ expected: '"Wuthering" "no" "heights"'
265
+ },
266
+ {
267
+ title: "contains multiple double quotes at the beginning",
268
+ input: '""Wuth"ering Heig"hts',
269
+ expected: '"Wuth" "ering" "Heig" "hts"'
270
+ },
271
+ {
272
+ title: "contains multiple double quotes in between",
273
+ input: 'Wuth"eri""ng Heig"hts',
274
+ expected: '"Wuth" "eri" "ng" "Heig" "hts"'
275
+ },
276
+ {
277
+ title: "contains multiple double quotes at the end",
278
+ input: 'Wuth"ering He"ights""',
279
+ expected: '"Wuth" "ering" "He" "ights"'
280
+ },
281
+ {
282
+ title: "contains a special character in string",
283
+ input: "Wuth)ering",
284
+ expected: '"Wuth)ering"'
285
+ },
286
+ {
287
+ title: "contains multiple special characters in string",
288
+ input: "W!u$t^h)er&in*g(",
289
+ expected: '"W!u$t^h)er&in*g("'
290
+ },
291
+ {
292
+ title: "contains single quotes in string",
293
+ input: "It's Apple's new iPhone",
294
+ expected: '"It\'s" "Apple\'s" "new" "iPhone"'
295
+ }
296
+ ];
297
+
298
+ aTests.forEach(test => {
299
+ it(
300
+ test.title,
301
+ {
302
+ "references": [
303
+ {
304
+ "type": "JIRA",
305
+ "ID": "FIORITECHP1-21846"
306
+ }
307
+ ]
308
+ },
309
+ function() {
310
+ expect(CommonUtils.normalizeSearchTerm(test.input as string)).toBe(test.expected);
311
+ }
312
+ );
313
+ });
314
+ });
315
+ describe("Unit Test for isStickyEditMode", function() {
316
+ test("Unit test to check isStickyEditMode", function() {
317
+ [
318
+ {
319
+ "oControl": {
320
+ getModel: function() {
321
+ return {
322
+ getMetaModel: function() {
152
323
  return {
153
- FilterExpressionRestrictions: [
154
- {
155
- Property: { $PropertyPath: "SalesOrderDate" },
156
- AllowedExpressions: "SingleValue"
157
- }
158
- ]
324
+ getObject: function(sParam: string) {
325
+ return sParam === "/"
326
+ ? {
327
+ "rootEntitySet": { $kind: "EntitySet" }
328
+ }
329
+ : {
330
+ "@com.sap.vocabularies.Session.v1.StickySessionSupported": true
331
+ };
332
+ }
159
333
  };
334
+ },
335
+ getProperty: function() {
336
+ return true;
160
337
  }
161
- }
338
+ };
339
+ }
340
+ },
341
+ "expectedValue": true,
342
+ "sMessage": "Matched"
343
+ },
344
+ {
345
+ "oControl": {
346
+ getModel: function() {
347
+ return {
348
+ getMetaModel: function() {
349
+ return {
350
+ getObject: function(sParam: string) {
351
+ return sParam === "/"
352
+ ? {
353
+ "rootEntitySet": { $kind: "EntitySet" }
354
+ }
355
+ : null;
356
+ }
357
+ };
358
+ },
359
+ getProperty: function() {
360
+ return true;
361
+ }
362
+ };
363
+ }
364
+ },
365
+ "expectedValue": false,
366
+ "sMessage": "Matched"
367
+ },
368
+ {
369
+ "oControl": {
370
+ getModel: function() {
371
+ return {
372
+ getMetaModel: function() {
373
+ return {
374
+ getObject: function(sParam: string) {
375
+ return sParam === "/"
376
+ ? {
377
+ "rootEntitySet": { $kind: "EntitySet" }
378
+ }
379
+ : {
380
+ "@com.sap.vocabularies.Session.v1.StickySessionSupported": true
381
+ };
382
+ }
383
+ };
384
+ },
385
+ getProperty: function() {
386
+ return false;
387
+ }
388
+ };
389
+ }
390
+ },
391
+ "expectedValue": false,
392
+ "sMessage": "Matched"
393
+ }
394
+ ].forEach(function(oProperty: any) {
395
+ const actualValue = CommonUtils.isStickyEditMode(oProperty.oControl);
396
+ expect(actualValue).toEqual(oProperty.expectedValue); //, "Unit test to check isStickyEditMode() " + oProperty.sMessage + " : ok");
397
+ });
398
+ });
399
+ });
400
+
401
+ describe("Unit Test for isFieldControlPathInapplicable", function() {
402
+ test("Unit test to check isFieldControlPathInapplicable", function() {
403
+ [
404
+ {
405
+ "attribute": {
406
+ "prop1": "A",
407
+ "prop2": "B",
408
+ "fieldControl": 0
409
+ },
410
+ "fieldControlPath": "fieldControl",
411
+ "expectedValue": true,
412
+ "message": "for inapplicable"
413
+ },
414
+ {
415
+ "attribute": {
416
+ "prop1": "A",
417
+ "prop2": "B",
418
+ "fieldControl": 7
419
+ },
420
+ "fieldControlPath": "fieldControl",
421
+ "expectedValue": false,
422
+ "message": "for different value"
423
+ },
424
+ {
425
+ "attribute": {
426
+ "prop1": "A",
427
+ "prop2": "B"
428
+ },
429
+ "fieldControlPath": "fieldControl",
430
+ "expectedValue": false,
431
+ "message": "when property doesn't exists"
432
+ }
433
+ ].forEach(function(oProperty) {
434
+ const actualValue = CommonUtils.isFieldControlPathInapplicable(oProperty.fieldControlPath, oProperty.attribute);
435
+ expect(actualValue).toEqual(oProperty.expectedValue); // ,"Unit test to check isFieldControlPathInapplicable() " + oProperty.message + " : ok"
436
+ });
437
+ });
438
+ });
439
+
440
+ describe("Unit Test for Remove Sensitive Data", function() {
441
+ test("Unit Test to check removeSensitiveData", function() {
442
+ const aAttributes = [
443
+ {
444
+ "contextData": {
445
+ "%40odata.context": "yolo",
446
+ "SensitiveProp": "A",
447
+ "PublicationUUID": "00505691-8175-1ed8-9dbe-64c14268326b",
448
+ "FieldControlStatic": "D",
449
+ "fieldControl": 0
450
+ },
451
+ "entitySet": "SalesOrderManage"
452
+ },
453
+ {
454
+ "contextData": {
455
+ "%40odata.metadataEtag": "yolo",
456
+ "ExcludeNavProp": "B",
457
+ "PublicationUUID": "00505691-8175-1ed8-9dbe-64c14268326888",
458
+ "fieldControl": 7
459
+ },
460
+ "entitySet": "SalesOrderManage"
461
+ },
462
+ {
463
+ "contextData": {
464
+ "HasActiveEntity": false
162
465
  },
163
- expectedValue: "DATE,TODAY,YESTERDAY,TOMORROW",
164
- sMessage: "Edm.Date and Single Value Or Search Expressions"
466
+ "entitySet": "SalesOrderManage"
467
+ }
468
+ ],
469
+ oMetaModel = {
470
+ getObject: function(sPath: string) {
471
+ if (sPath.indexOf("PublicationUUID@") > -1) {
472
+ return {
473
+ "@com.sap.vocabularies.Common.v1.FieldControl": {
474
+ "$Path": "fieldControl"
475
+ }
476
+ };
477
+ } else if (sPath.indexOf("FieldControlStatic@") > -1) {
478
+ return {
479
+ "@com.sap.vocabularies.Common.v1.FieldControl": {
480
+ "$EnumMember": "@com.sap.vocabularies.Common.v1.FieldControl/Inapplicable"
481
+ }
482
+ };
483
+ } else if (sPath.indexOf("SensitiveProp@") > -1) {
484
+ return {
485
+ "@com.sap.vocabularies.PersonalData.v1.IsPotentiallySensitive": {
486
+ "$Path": "fieldControl"
487
+ }
488
+ };
489
+ } else if (sPath.indexOf("ExcludeNavProp@") > -1) {
490
+ return {
491
+ "@com.sap.vocabularies.UI.v1.ExcludeFromNavigationContext": {
492
+ "$Path": "fieldControl"
493
+ }
494
+ };
495
+ }
496
+ }
497
+ },
498
+ ExpectedResult = [
499
+ {
500
+ "fieldControl": 0
501
+ },
502
+ {
503
+ "PublicationUUID": "00505691-8175-1ed8-9dbe-64c14268326888",
504
+ "fieldControl": 7
165
505
  },
166
506
  {
167
- dataField: "SalesOrderDate",
168
- oContext: {
169
- getObject: function(path: string) {
170
- // Edm type
171
- if (path === "/dummy/SalesOrderDate/$Type") {
507
+ "HasActiveEntity": false
508
+ }
509
+ ];
510
+ const Result = CommonUtils.removeSensitiveData(aAttributes, oMetaModel as any);
511
+ expect(JSON.stringify(ExpectedResult)).toEqual(JSON.stringify(Result));
512
+ });
513
+ });
514
+
515
+ describe("Unit Test for isPropertyFilterable", function() {
516
+ test("Unit test to check isPropertyFilterable with hidden", function() {
517
+ const fnCreateModel = function(oModel: any) {
518
+ return Object.assign(
519
+ {
520
+ createBindingContext: function() {
521
+ return {
522
+ getProperty: oModel.getObject
523
+ };
524
+ },
525
+ getProperty: function(sPath: string) {
526
+ return sPath === "/parameterEntity/@com.sap.vocabularies.Common.v1.ResultContext";
527
+ },
528
+ getObject: function(sPath: string) {
529
+ return sPath === "/parameterEntity/@com.sap.vocabularies.Common.v1.ResultContext";
530
+ }
531
+ },
532
+ oModel
533
+ );
534
+ };
535
+
536
+ [
537
+ {
538
+ model: {
539
+ getObject: function(sPath: string) {
540
+ if (sPath === "@com.sap.vocabularies.UI.v1.Hidden") {
541
+ return true;
542
+ }
543
+ return { "prop1": {} };
544
+ }
545
+ },
546
+ entitySetPath: "/entitySet",
547
+ property: "prop1",
548
+ skipHiddenFilter: false,
549
+ expectedValue: false,
550
+ message: "full path and hidden"
551
+ },
552
+ {
553
+ model: {
554
+ getObject: function(sPath: string) {
555
+ if (sPath === "@com.sap.vocabularies.UI.v1.HiddenFilter") {
556
+ return true;
557
+ }
558
+ return { "prop1": {} };
559
+ }
560
+ },
561
+ entitySetPath: "/entitySet",
562
+ property: "prop1",
563
+ skipHiddenFilter: false,
564
+ expectedValue: false,
565
+ message: "full path and hidden filter"
566
+ },
567
+ {
568
+ model: {
569
+ getObject: function(sPath: string) {
570
+ if (sPath === "@com.sap.vocabularies.UI.v1.Hidden") {
571
+ return true;
572
+ }
573
+ return { "prop1": {} };
574
+ }
575
+ },
576
+ entitySetPath: "/entitySet",
577
+ property: "prop1",
578
+ skipHiddenFilter: false,
579
+ expectedValue: false,
580
+ message: "hidden"
581
+ },
582
+ {
583
+ model: {
584
+ getObject: function(sPath: string) {
585
+ if (sPath === "@com.sap.vocabularies.UI.v1.HiddenFilter") {
586
+ return true;
587
+ }
588
+ return { "prop1": {} };
589
+ }
590
+ },
591
+ entitySetPath: "/entitySet",
592
+ property: "prop1",
593
+ skipHiddenFilter: false,
594
+ expectedValue: false,
595
+ message: "hidden filter"
596
+ },
597
+ {
598
+ model: {
599
+ getObject: function(sPath: string) {
600
+ if (sPath === "/entitySet@Org.OData.Capabilities.V1.FilterRestrictions") {
601
+ return {
602
+ NonFilterableProperties: [
603
+ {
604
+ $PropertyPath: "prop1"
605
+ }
606
+ ]
607
+ };
608
+ }
609
+ return { "prop1": {} };
610
+ }
611
+ },
612
+ entitySetPath: "/entitySet",
613
+ property: "prop1",
614
+ skipHiddenFilter: false,
615
+ expectedValue: false,
616
+ message: "non-filterable"
617
+ },
618
+ {
619
+ model: {
620
+ getObject: function(sPath: string) {
621
+ if (sPath === "/entitySet@Org.OData.Capabilities.V1.FilterRestrictions") {
622
+ return {
623
+ NonFilterableProperties: [
624
+ {
625
+ $PropertyPath: "prop1"
626
+ }
627
+ ]
628
+ };
629
+ }
630
+ return { "prop1": {} };
631
+ }
632
+ },
633
+ entitySetPath: "/entitySet",
634
+ property: "prop1",
635
+ skipHiddenFilter: false,
636
+ expectedValue: false,
637
+ message: "full path and non-filterable"
638
+ },
639
+ {
640
+ model: {
641
+ getObject: function(sPath: string) {
642
+ if (!sPath) {
643
+ return {};
644
+ }
645
+ switch (sPath) {
646
+ case "/entitySet/prop1@com.sap.vocabularies.UI.v1.HiddenFilter":
647
+ return true;
648
+ case "$Type":
649
+ return "Edm.String";
650
+ case "$kind":
651
+ return "Property";
652
+ case "/entitySet/":
653
+ return { "prop1": {} };
654
+ default:
655
+ return undefined;
656
+ }
657
+ }
658
+ },
659
+ entitySetPath: "/entitySet",
660
+ property: "prop1",
661
+ skipHiddenFilter: true,
662
+ expectedValue: true,
663
+ message: "skip hidden filter"
664
+ },
665
+ {
666
+ model: {
667
+ getObject: function(sPath: string) {
668
+ if (!sPath) {
669
+ return {};
670
+ }
671
+ switch (sPath) {
672
+ case "$Type":
673
+ return "Edm.Stream";
674
+ case "$kind":
675
+ return "Property";
676
+ case "/entitySet/":
677
+ return { "prop1": {} };
678
+ default:
679
+ return undefined;
680
+ }
681
+ }
682
+ },
683
+ entitySetPath: "/entitySet",
684
+ property: "prop1",
685
+ skipHiddenFilter: false,
686
+ expectedValue: false,
687
+ message: "type not filterable"
688
+ },
689
+ {
690
+ model: {
691
+ getObject: function(sPath: string) {
692
+ if (!sPath) {
693
+ return {};
694
+ }
695
+ switch (sPath) {
696
+ case "$Type":
697
+ return "Edm.String";
698
+ case "$kind":
699
+ return "Property";
700
+ case "/entitySet/":
701
+ return { "prop1": {} };
702
+ default:
703
+ return undefined;
704
+ }
705
+ }
706
+ },
707
+ entitySetPath: "/entitySet",
708
+ property: "prop1",
709
+ skipHiddenFilter: false,
710
+ expectedValue: true,
711
+ message: "type filterable"
712
+ },
713
+ {
714
+ model: {
715
+ getObject: function(sPath: string) {
716
+ if (!sPath) {
717
+ return {};
718
+ }
719
+ switch (sPath) {
720
+ case "$Type":
721
+ return "com.sap.vocabularies.UI.v1.DataField";
722
+ case "Value/$Path/$Type":
723
+ return "Edm.Stream";
724
+ case "/entitySet/":
725
+ return { "prop1": {} };
726
+ default:
727
+ return undefined;
728
+ }
729
+ }
730
+ },
731
+ entitySetPath: "/entitySet",
732
+ property: "prop1",
733
+ skipHiddenFilter: false,
734
+ expectedValue: false,
735
+ message: "datafield type not filterable"
736
+ },
737
+ {
738
+ model: {
739
+ getObject: function(sPath: string) {
740
+ if (!sPath) {
741
+ return {};
742
+ }
743
+ switch (sPath) {
744
+ case "$Type":
745
+ return "com.sap.vocabularies.UI.v1.DataField";
746
+ case "Value/$Path/$Type":
172
747
  return "Edm.String";
173
- } else {
174
- // Filter Annotations
748
+ case "/entitySet/":
749
+ return { "prop1": {} };
750
+ default:
751
+ return undefined;
752
+ }
753
+ }
754
+ },
755
+ entitySetPath: "/entitySet",
756
+ property: "prop1",
757
+ skipHiddenFilter: false,
758
+ expectedValue: true,
759
+ message: "datafield type filterable"
760
+ },
761
+ {
762
+ model: {},
763
+ entitySetPath: "/parameterEntity",
764
+ property: "prop1",
765
+ skipHiddenFilter: false,
766
+ expectedValue: true,
767
+ message: "parameter"
768
+ }
769
+ ].forEach(function(oProperty) {
770
+ const actualValue = CommonUtils.isPropertyFilterable(
771
+ fnCreateModel(oProperty.model),
772
+ oProperty.entitySetPath,
773
+ oProperty.property,
774
+ oProperty.skipHiddenFilter
775
+ );
776
+ expect(actualValue).toEqual(oProperty.expectedValue); // ,"Unit test to check isPropertyFilterable with " + oProperty.message + " : ok"
777
+ });
778
+ });
779
+ });
780
+
781
+ describe("Test CommonUtils : addSelectionVariantToConditions", function() {
782
+ const that: any = {};
783
+ beforeEach(() => {
784
+ //CREATE MOCK
785
+ that.getValueStub = jest.spyOn(FilterHelper, "getTypeCompliantValue").mockImplementation(function fakeFn(oValue) {
786
+ return oValue;
787
+ });
788
+ that.getOperatorStub = jest.spyOn(CommonUtils, "getOperatorsForProperty").mockImplementation(function fakeFn() {
789
+ return undefined;
790
+ });
791
+ that.getValidPropsStub = jest.spyOn(CommonUtils, "getContextPathProperties").mockImplementation(function fakeFn(oValue) {
792
+ return that.validProperties;
793
+ });
794
+ that.getFilterableStub = jest.spyOn(CommonUtils, "isPropertyFilterable").mockImplementation(function fakeFn(oValue) {
795
+ return true;
796
+ });
797
+ that.getParameterInfoStub = jest.spyOn(CommonUtils, "getParameterInfo").mockImplementation(function fakeFn(oValue) {
798
+ return that.parameterInfo;
799
+ });
800
+ });
801
+ afterEach(() => {
802
+ //RESTORE
803
+ that.getValueStub.mockRestore();
804
+ that.getOperatorStub.mockRestore();
805
+ that.getValidPropsStub.mockRestore();
806
+ that.getFilterableStub.mockRestore();
807
+ that.getParameterInfoStub.mockRestore();
808
+ });
809
+
810
+ test("Test convertion of Selection Variant to conditions without valid properties.", function() {
811
+ const oSV = new SelectionVariant(),
812
+ oConditions = {};
813
+
814
+ oSV.addSelectOption("attribute1", "I", "EQ", "value1");
815
+ that.validProperties = {};
816
+ that.parameterInfo = {};
817
+ CommonUtils.addSelectionVariantToConditions(oSV, oConditions, {} as any, "");
818
+
819
+ //CHECK
820
+ expect(Object.keys(oConditions).length).toEqual(0); //, "CommonUtils: No conditions are added without any valid properties.");
821
+ });
822
+
823
+ test("Test conversion of Selection Variant to conditions with empty SV.", function() {
824
+ const oSV = new SelectionVariant(),
825
+ oConditions = {};
826
+
827
+ that.validProperties = {
828
+ "attribute1": {
829
+ $Type: "Edm.Boolean"
830
+ },
831
+ "attribute2": {
832
+ $Type: "Edm.String"
833
+ }
834
+ };
835
+ that.parameterInfo = {};
836
+
837
+ CommonUtils.addSelectionVariantToConditions(oSV, oConditions, {} as any, "");
838
+
839
+ //CHECK
840
+ expect(Object.keys(oConditions).length).toEqual(0); // "CommonUtils: No conditions are added with empty SV.");
841
+ });
842
+
843
+ test("Test conversion of Selection Variant to conditions.", function() {
844
+ let oSV = new SelectionVariant();
845
+ const oConditions: any = {};
846
+ let iCount = 0;
847
+
848
+ that.validProperties = {
849
+ "attribute1": {
850
+ $Type: "Edm.Boolean"
851
+ },
852
+ "attribute2": {
853
+ $Type: "Edm.String"
854
+ },
855
+ "Material": {
856
+ $Type: "Edm.String"
857
+ },
858
+ "MaterialCategory": {
859
+ $Type: "Edm.String"
860
+ },
861
+ "ItemNumber": {
862
+ $Type: "Edm.String"
863
+ },
864
+ "CityName": {
865
+ $Type: "Edm.String"
866
+ }
867
+ };
868
+ that.parameterInfo = {};
869
+ const oMetaModel = {
870
+ getObject: function(sPath: string) {
871
+ if (sPath.includes("_Item")) {
872
+ return { sPath: sPath, $isCollection: true, $Type: "Edm.String" };
873
+ } else {
874
+ return { sPath: sPath, $Type: "Edm.String" };
875
+ }
876
+ }
877
+ } as ODataMetaModel;
878
+ oSV.addSelectOption("attribute1", "I", "EQ", "true");
879
+ oSV.addSelectOption("attribute2", "I", "EQ", "value1");
880
+ oSV.addSelectOption("attribute2", "I", "EQ", "value2");
881
+ oSV.addSelectOption("SalesOrderManage._Item.Material", "I", "EQ", "VNG01");
882
+ oSV.addSelectOption("_MaterialDetails.MaterialCategory", "I", "EQ", "A");
883
+ oSV.addSelectOption("ItemDetails.ItemNumber", "I", "EQ", "10");
884
+
885
+ CommonUtils.addSelectionVariantToConditions(oSV, oConditions, oMetaModel, "/SalesOrderManage");
886
+ oSV = new SelectionVariant();
887
+ oSV.addSelectOption("Customer.Set.CityName", "I", "EQ", "ABC");
888
+ CommonUtils.addSelectionVariantToConditions(oSV, oConditions, oMetaModel, "/Customer/Set");
889
+
890
+ const aProperties = Object.keys(oConditions);
891
+ aProperties.forEach(function(sPropertyName) {
892
+ iCount += oConditions[sPropertyName].length;
893
+ });
894
+
895
+ //CHECK
896
+ expect(aProperties.length).toEqual(6); // "CommonUtils: Correct no. of propertyPath are added from SV.");
897
+ expect(iCount).toEqual(7); // "CommonUtils: Correct no. of conditions are added from SV.");
898
+ expect(oConditions["SalesOrderManage/_Item*/Material"][0].values[0]).toEqual("VNG01"); //, "Conditions for navigation path is added");
899
+ expect(oConditions["_MaterialDetails/MaterialCategory"][0].values[0]).toEqual("A"); //, "Conditions for navigation path is added");
900
+ expect(oConditions["ItemDetails/ItemNumber"][0].values[0]).toEqual("10"); //, "Conditions for navigation path is added");
901
+ expect(oConditions["Customer/Set/CityName"][0].values[0]).toEqual("ABC"); //"Conditions for navigation path in case of pamaterized service is added"
902
+ });
903
+
904
+ test("Test conversion of Selection Variant to conditions with parameters.", function() {
905
+ const oSV = new SelectionVariant(),
906
+ oConditions: any = {};
907
+ let iCount = 0;
908
+
909
+ that.validProperties = {
910
+ "attribute1": {
911
+ $Type: "Edm.String"
912
+ }
913
+ };
914
+ that.parameterInfo = {
915
+ contextPath: "/Customer/Set",
916
+ parameterProperties: {
917
+ "param1": {
918
+ $Type: "Edm.Boolean"
919
+ },
920
+ "param2": {
921
+ $Type: "Edm.String"
922
+ }
923
+ }
924
+ };
925
+
926
+ oSV.addSelectOption("attribute1", "I", "EQ", "value1");
927
+ oSV.addSelectOption("$Parameter.param1", "I", "EQ", "true");
928
+ oSV.addSelectOption("P_param2", "I", "EQ", "paramValue1");
929
+
930
+ CommonUtils.addSelectionVariantToConditions(oSV, oConditions, {} as any, "");
931
+
932
+ const aProperties = Object.keys(oConditions);
933
+ aProperties.forEach(function(sPropertyName) {
934
+ iCount += oConditions[sPropertyName].length;
935
+ });
936
+
937
+ //CHECK
938
+ expect(aProperties.length).toEqual(3); //, "CommonUtils: Correct no. of propertyPath are added from SV.");
939
+ expect(iCount).toEqual(3); //, "CommonUtils: Correct no. of conditions are added from SV.");
940
+ });
941
+
942
+ test("Test conversion of Selection Variant to conditions with conflicting parameters.", function() {
943
+ const oSV = new SelectionVariant(),
944
+ oConditions: any = {};
945
+ let iCount = 0;
946
+
947
+ that.validProperties = {
948
+ "attribute1": {
949
+ $Type: "Edm.String"
950
+ }
951
+ };
952
+ that.parameterInfo = {
953
+ contextPath: "/Customer/Set",
954
+ parameterProperties: {
955
+ "param1": {
956
+ $Type: "Edm.Boolean"
957
+ },
958
+ "param2": {
959
+ $Type: "Edm.String"
960
+ }
961
+ }
962
+ };
963
+
964
+ oSV.addSelectOption("attribute1", "I", "EQ", "value1");
965
+ oSV.addSelectOption("P_param1", "I", "EQ", "false");
966
+ oSV.addSelectOption("$Parameter.param1", "I", "EQ", "true");
967
+ oSV.addSelectOption("$Parameter.param2", "I", "EQ", "paramValue2_$");
968
+ oSV.addSelectOption("P_param2", "I", "EQ", "paramValue2_P");
969
+
970
+ CommonUtils.addSelectionVariantToConditions(oSV, oConditions, {} as any, "");
971
+
972
+ const aProperties = Object.keys(oConditions);
973
+ aProperties.forEach(function(sPropertyName) {
974
+ iCount += oConditions[sPropertyName].length;
975
+ });
976
+
977
+ const param1Value = oConditions["param1"][0].values[0] === true;
978
+ const param2Value = oConditions["param2"][0].values[0] === "paramValue2_$";
979
+ //CHECK
980
+ expect(param1Value && param2Value).toBe(true); //, "CommonUtils: Correct parameter values are added from SV.");
981
+ expect(aProperties.length).toEqual(3); // === 3, "CommonUtils: Correct no. of propertyPath are added from SV.");
982
+ expect(iCount).toEqual(3); // === 3, "CommonUtils: Correct no. of conditions are added from SV.");
983
+ });
984
+
985
+ test("Test conversion of Selection Variant to conditions with parameters case of 'param -> P_param'.", function() {
986
+ const oSV = new SelectionVariant(),
987
+ oConditions: any = {};
988
+ let iCount = 0;
989
+
990
+ that.validProperties = {
991
+ "attribute1": {
992
+ $Type: "Edm.String"
993
+ }
994
+ };
995
+ that.parameterInfo = {
996
+ contextPath: "/Customer/Set",
997
+ parameterProperties: {
998
+ "P_param1": {
999
+ $Type: "Edm.String"
1000
+ }
1001
+ }
1002
+ };
1003
+
1004
+ oSV.addSelectOption("attribute1", "I", "EQ", "value1");
1005
+ oSV.addSelectOption("param1", "I", "EQ", "paramValue1");
1006
+
1007
+ CommonUtils.addSelectionVariantToConditions(oSV, oConditions, {} as any, "");
1008
+
1009
+ const aProperties = Object.keys(oConditions);
1010
+ aProperties.forEach(function(sPropertyName) {
1011
+ iCount += oConditions[sPropertyName].length;
1012
+ });
1013
+
1014
+ const param1Value = oConditions["P_param1"][0].values[0] === "paramValue1";
1015
+ //CHECK
1016
+ expect(param1Value).toBe(true); // "CommonUtils: Correct parameter values are added from SV.");
1017
+ expect(aProperties.length).toEqual(2); // === 2, "CommonUtils: Correct no. of propertyPath are added from SV.");
1018
+ expect(iCount).toEqual(2); // === 2, "CommonUtils: Correct no. of conditions are added from SV.");
1019
+ });
1020
+
1021
+ test("Test conversion of Selection Variant to conditions with parameters case of fall back to filter field.", function() {
1022
+ const oSV = new SelectionVariant(),
1023
+ oConditions: any = {};
1024
+ let iCount = 0;
1025
+
1026
+ that.validProperties = {
1027
+ "attribute1": {
1028
+ $Type: "Edm.String"
1029
+ },
1030
+ "param2": {
1031
+ $Type: "Edm.String"
1032
+ }
1033
+ };
1034
+ that.parameterInfo = {
1035
+ contextPath: "/Customer/Set",
1036
+ parameterProperties: {
1037
+ "P_param1": {
1038
+ $Type: "Edm.String"
1039
+ }
1040
+ }
1041
+ };
1042
+
1043
+ oSV.addSelectOption("attribute1", "I", "EQ", "value1");
1044
+ oSV.addSelectOption("P_param2", "I", "EQ", "paramValue2");
1045
+
1046
+ CommonUtils.addSelectionVariantToConditions(oSV, oConditions, {} as any, "");
1047
+
1048
+ const aProperties = Object.keys(oConditions);
1049
+ aProperties.forEach(function(sPropertyName) {
1050
+ iCount += oConditions[sPropertyName].length;
1051
+ });
1052
+
1053
+ const param2Value = oConditions["param2"][0].values[0] === "paramValue2";
1054
+ //CHECK
1055
+ expect(param2Value).toBe(true); //, "CommonUtils: Correct parameter values are added from SV.");
1056
+ expect(aProperties.length).toEqual(2); //== 2, "CommonUtils: Correct no. of propertyPath are added from SV.");
1057
+ expect(iCount).toEqual(2); //, "CommonUtils: Correct no. of conditions are added from SV.");
1058
+ });
1059
+
1060
+ test("Test conversion of Selection Variant to conditions with already existing conditions.", function() {
1061
+ const oSV = new SelectionVariant(),
1062
+ oConditions: any = {
1063
+ "attribute2": [
1064
+ {
1065
+ "operator": "EQ",
1066
+ "values": ["value3"]
1067
+ }
1068
+ ]
1069
+ };
1070
+ let iCount = 0;
1071
+
1072
+ that.validProperties = {
1073
+ "attribute1": {
1074
+ $Type: "Edm.Boolean"
1075
+ },
1076
+ "attribute2": {
1077
+ $Type: "Edm.String"
1078
+ }
1079
+ };
1080
+ that.parameterInfo = {};
1081
+
1082
+ oSV.addSelectOption("attribute1", "I", "EQ", "true");
1083
+ oSV.addSelectOption("attribute2", "I", "EQ", "value1");
1084
+ oSV.addSelectOption("attribute2", "I", "EQ", "value2");
1085
+
1086
+ CommonUtils.addSelectionVariantToConditions(oSV, oConditions, {} as any, "");
1087
+
1088
+ const aProperties = Object.keys(oConditions);
1089
+ aProperties.forEach(function(sPropertyName) {
1090
+ iCount += oConditions[sPropertyName].length;
1091
+ });
1092
+
1093
+ //CHECK
1094
+ expect(aProperties.length).toEqual(2); // === 2, "CommonUtils: Correct no. of propertyPath are added from SV.");
1095
+ expect(iCount).toEqual(4); // 4, "CommonUtils: Correct no. of conditions are added from SV.");
1096
+ });
1097
+ });
1098
+
1099
+ describe("addExternalStateFiltersToSelectionVariant", function() {
1100
+ test("addExternalStateFiltersToSelectionVariant", function() {
1101
+ const oInputSelectionVariant = new SelectionVariant();
1102
+ const oTargetInfo = {
1103
+ "propertiesWithoutConflict": {
1104
+ "Material": ["SalesOrderManage.Material"]
1105
+ }
1106
+ };
1107
+ const mFilters = {
1108
+ "filterConditions": {
1109
+ "Date": [
1110
+ {
1111
+ "operator": "EQ",
1112
+ "values": ["2020-03-04"]
1113
+ }
1114
+ ],
1115
+ "DateTimeOffset": [
1116
+ {
1117
+ "operator": "EQ",
1118
+ "values": ["2020-03-04T20:53:54+0530"]
1119
+ }
1120
+ ],
1121
+ "TimeOfDay": [
1122
+ {
1123
+ "operator": "EQ",
1124
+ "values": ["16:51:51"]
1125
+ }
1126
+ ],
1127
+ "String": [],
1128
+ "Boolean": [
1129
+ {
1130
+ "operator": "EEQ",
1131
+ "values": [true]
1132
+ }
1133
+ ],
1134
+ "Byte": [
1135
+ {
1136
+ "operator": "EQ",
1137
+ "values": [4]
1138
+ }
1139
+ ],
1140
+ "ByteMulti": [
1141
+ {
1142
+ "operator": "LE",
1143
+ "values": [5]
1144
+ },
1145
+ {
1146
+ "operator": "GE",
1147
+ "values": [10]
1148
+ }
1149
+ ],
1150
+ "DateTimeOffsetMulti": [
1151
+ {
1152
+ "operator": "NOTGT",
1153
+ "values": ["2020-03-25T20:55:42+0530"]
1154
+ },
1155
+ {
1156
+ "operator": "NOTLT",
1157
+ "values": ["2020-02-01T20:55:51+0530"]
1158
+ }
1159
+ ],
1160
+ "Decimal": [
1161
+ {
1162
+ "operator": "EQ",
1163
+ "values": ["4.45"]
1164
+ }
1165
+ ],
1166
+ "DecimalMulti": [
1167
+ {
1168
+ "operator": "NE",
1169
+ "values": ["6.25"]
1170
+ }
1171
+ ],
1172
+ "Double": [
1173
+ {
1174
+ "operator": "EQ",
1175
+ "values": [3.333333]
1176
+ }
1177
+ ],
1178
+ "DoubleMulti": [
1179
+ {
1180
+ "operator": "NOTGE",
1181
+ "values": [6.666666666]
1182
+ },
1183
+ {
1184
+ "operator": "NOTGT",
1185
+ "values": [10.0000099999]
1186
+ }
1187
+ ],
1188
+ "Guid": [
1189
+ {
1190
+ "operator": "EQ",
1191
+ "values": ["11111182-aaaa-bbbb-cccc-ddddeeeeffff"]
1192
+ }
1193
+ ],
1194
+ "GuidMulti": [
1195
+ {
1196
+ "operator": "EQ",
1197
+ "values": ["11111183-aaaa-bbbb-cccc-ddddeeeeffff"]
1198
+ },
1199
+ {
1200
+ "operator": "EQ",
1201
+ "values": ["11111185-aaaa-bbbb-cccc-ddddeeeeffff"]
1202
+ }
1203
+ ],
1204
+ "Int16": [
1205
+ {
1206
+ "operator": "EQ",
1207
+ "values": [10]
1208
+ }
1209
+ ],
1210
+ "Empty": [
1211
+ {
1212
+ "operator": "Empty",
1213
+ "values": []
1214
+ }
1215
+ ],
1216
+ "Int16Multi": [
1217
+ {
1218
+ "operator": "EQ",
1219
+ "values": [15]
1220
+ },
1221
+ {
1222
+ "operator": "NOTGE",
1223
+ "values": [10000]
1224
+ },
1225
+ {
1226
+ "operator": "NOTBT",
1227
+ "values": [100, 200]
1228
+ },
1229
+ {
1230
+ "operator": "NOTLT",
1231
+ "values": [10]
1232
+ }
1233
+ ],
1234
+ "Int32": [
1235
+ {
1236
+ "operator": "EQ",
1237
+ "values": [9999999]
1238
+ }
1239
+ ],
1240
+ "Int32Multi": [
1241
+ {
1242
+ "operator": "BT",
1243
+ "values": [1000000, 1000000000]
1244
+ }
1245
+ ],
1246
+ "Int64": [
1247
+ {
1248
+ "operator": "EQ",
1249
+ "values": ["99"]
1250
+ }
1251
+ ],
1252
+ "Int64Multi": [
1253
+ {
1254
+ "operator": "NOTLT",
1255
+ "values": ["9999999"]
1256
+ },
1257
+ {
1258
+ "operator": "NE",
1259
+ "values": ["99999"]
1260
+ }
1261
+ ],
1262
+ "SByte": [
1263
+ {
1264
+ "operator": "EQ",
1265
+ "values": [1]
1266
+ }
1267
+ ],
1268
+ "SByteMulti": [
1269
+ {
1270
+ "operator": "EQ",
1271
+ "values": [2]
1272
+ },
1273
+ {
1274
+ "operator": "GT",
1275
+ "values": [3]
1276
+ }
1277
+ ],
1278
+ "Single": [
1279
+ {
1280
+ "operator": "EQ",
1281
+ "values": [1]
1282
+ }
1283
+ ],
1284
+ "SingleMulti": [
1285
+ {
1286
+ "operator": "EQ",
1287
+ "values": [2]
1288
+ }
1289
+ ],
1290
+ "StringMulti": [
1291
+ {
1292
+ "operator": "EndsWith",
1293
+ "values": ["xyz"]
1294
+ },
1295
+ {
1296
+ "operator": "StartsWith",
1297
+ "values": ["abc"]
1298
+ },
1299
+ {
1300
+ "operator": "Contains",
1301
+ "values": ["def"]
1302
+ },
1303
+ {
1304
+ "operator": "NotStartsWith",
1305
+ "values": ["ijk"]
1306
+ },
1307
+ {
1308
+ "operator": "NotEndsWith",
1309
+ "values": ["uvw"]
1310
+ },
1311
+ {
1312
+ "operator": "NotContains",
1313
+ "values": ["pqr"]
1314
+ }
1315
+ ],
1316
+ "TimeOfDayMulti": [
1317
+ {
1318
+ "operator": "EQ",
1319
+ "values": ["22:00:39"]
1320
+ },
1321
+ {
1322
+ "operator": "EQ",
1323
+ "values": ["17:00:43"]
1324
+ }
1325
+ ]
1326
+ },
1327
+ "filterConditionsWithoutConflict": {
1328
+ "Material": ["SalesOrderManage._Item.Material"]
1329
+ }
1330
+ };
1331
+ const oOutPutSelectionVariant = CommonUtils.addExternalStateFiltersToSelectionVariant(
1332
+ oInputSelectionVariant,
1333
+ mFilters,
1334
+ oTargetInfo
1335
+ );
1336
+ const oActualSelectionVariant = {
1337
+ _mParameters: {},
1338
+ _mSelectOptions: {
1339
+ "Date": [{ "Sign": "I", "Option": "EQ", "Low": "2020-03-04", "High": null }],
1340
+ "DateTimeOffset": [
1341
+ {
1342
+ "Sign": "I",
1343
+ "Option": "EQ",
1344
+ "Low": "2020-03-04T20:53:54+0530",
1345
+ "High": null
1346
+ }
1347
+ ],
1348
+ "TimeOfDay": [{ "Sign": "I", "Option": "EQ", "Low": "16:51:51", "High": null }],
1349
+ "Boolean": [
1350
+ {
1351
+ "Sign": "I",
1352
+ "Option": "EQ",
1353
+ "Low": "true",
1354
+ "High": null
1355
+ }
1356
+ ],
1357
+ "Byte": [
1358
+ {
1359
+ "Sign": "I",
1360
+ "Option": "EQ",
1361
+ "Low": "4",
1362
+ "High": null
1363
+ }
1364
+ ],
1365
+ "ByteMulti": [
1366
+ {
1367
+ "Sign": "I",
1368
+ "Option": "LE",
1369
+ "Low": "5",
1370
+ "High": null
1371
+ }
1372
+ ],
1373
+ "DateTimeOffsetMulti": [
1374
+ { "Sign": "E", "Option": "GT", "Low": "2020-03-25T20:55:42+0530", "High": null },
1375
+ { "Sign": "E", "Option": "LT", "Low": "2020-02-01T20:55:51+0530", "High": null }
1376
+ ],
1377
+ "Decimal": [
1378
+ {
1379
+ "Sign": "I",
1380
+ "Option": "EQ",
1381
+ "Low": "4.45",
1382
+ "High": null
1383
+ }
1384
+ ],
1385
+ "DecimalMulti": [{ "Sign": "I", "Option": "NE", "Low": "6.25", "High": null }],
1386
+ "Double": [{ "Sign": "I", "Option": "EQ", "Low": "3.333333", "High": null }],
1387
+ "DoubleMulti": [
1388
+ { "Sign": "E", "Option": "GE", "Low": "6.666666666", "High": null },
1389
+ { "Sign": "E", "Option": "GT", "Low": "10.0000099999", "High": null }
1390
+ ],
1391
+ "Empty": [
1392
+ {
1393
+ "High": null,
1394
+ "Low": "",
1395
+ "Option": "EQ",
1396
+ "Sign": "I"
1397
+ }
1398
+ ],
1399
+ "Guid": [
1400
+ {
1401
+ "Sign": "I",
1402
+ "Option": "EQ",
1403
+ "Low": "11111182-aaaa-bbbb-cccc-ddddeeeeffff",
1404
+ "High": null
1405
+ }
1406
+ ],
1407
+ "GuidMulti": [
1408
+ {
1409
+ "Sign": "I",
1410
+ "Option": "EQ",
1411
+ "Low": "11111183-aaaa-bbbb-cccc-ddddeeeeffff",
1412
+ "High": null
1413
+ },
1414
+ {
1415
+ "Sign": "I",
1416
+ "Option": "EQ",
1417
+ "Low": "11111185-aaaa-bbbb-cccc-ddddeeeeffff",
1418
+ "High": null
1419
+ }
1420
+ ],
1421
+ "Int16": [{ "Sign": "I", "Option": "EQ", "Low": "10", "High": null }],
1422
+ "Int16Multi": [
1423
+ { "Sign": "I", "Option": "EQ", "Low": "15", "High": null },
1424
+ { "Sign": "E", "Option": "GE", "Low": "10000", "High": null },
1425
+ { "Sign": "E", "Option": "BT", "Low": "100", "High": "200" },
1426
+ { "Sign": "E", "Option": "LT", "Low": "10", "High": null }
1427
+ ],
1428
+ "Int32": [{ "Sign": "I", "Option": "EQ", "Low": "9999999", "High": null }],
1429
+ "Int32Multi": [{ "Sign": "I", "Option": "BT", "Low": "1000000", "High": "1000000000" }],
1430
+ "Int64": [{ "Sign": "I", "Option": "EQ", "Low": "99", "High": null }],
1431
+ "Int64Multi": [
1432
+ { "Sign": "E", "Option": "LT", "Low": "9999999", "High": null },
1433
+ { "Sign": "I", "Option": "NE", "Low": "99999", "High": null }
1434
+ ],
1435
+ "SByte": [{ "Sign": "I", "Option": "EQ", "Low": "1", "High": null }],
1436
+ "SByteMulti": [
1437
+ { "Sign": "I", "Option": "EQ", "Low": "2", "High": null },
1438
+ { "Sign": "I", "Option": "GT", "Low": "3", "High": null }
1439
+ ],
1440
+ "Single": [{ "Sign": "I", "Option": "EQ", "Low": "1", "High": null }],
1441
+ "SingleMulti": [{ "Sign": "I", "Option": "EQ", "Low": "2", "High": null }],
1442
+ "StringMulti": [
1443
+ { "Sign": "I", "Option": "CP", "Low": "*xyz", "High": null },
1444
+ { "Sign": "I", "Option": "CP", "Low": "abc*", "High": null },
1445
+ { "Sign": "I", "Option": "CP", "Low": "def", "High": null },
1446
+ { "Sign": "E", "Option": "CP", "Low": "ijk*", "High": null },
1447
+ { "Sign": "E", "Option": "CP", "Low": "*uvw", "High": null },
1448
+ { "Sign": "E", "Option": "CP", "Low": "pqr", "High": null }
1449
+ ],
1450
+ "TimeOfDayMulti": [
1451
+ { "Sign": "I", "Option": "EQ", "Low": "22:00:39", "High": null },
1452
+ { "Sign": "I", "Option": "EQ", "Low": "17:00:43", "High": null }
1453
+ ]
1454
+ },
1455
+ _sId: ""
1456
+ };
1457
+ expect(oActualSelectionVariant).toEqual(oOutPutSelectionVariant); //"the external state filters have been added to the selection variant correctly"
1458
+ });
1459
+ });
1460
+ describe("Unit Test check Operators", function() {
1461
+ test("Unit test to check Operators", function() {
1462
+ [
1463
+ {
1464
+ dataField: "LastChangedDateTime",
1465
+ oContext: {
1466
+ getObject: function(path: string) {
1467
+ // Edm Type
1468
+ if (path === "/dummy/LastChangedDateTime/$Type") {
1469
+ return "Edm.DateTime";
1470
+ } else {
1471
+ // Filter Annotations
1472
+ return {
1473
+ FilterExpressionRestrictions: [
1474
+ {
1475
+ Property: { $PropertyPath: "LastChangedDateTime" },
1476
+ AllowedExpressions: "SingleRange"
1477
+ }
1478
+ ]
1479
+ };
1480
+ }
1481
+ }
1482
+ },
1483
+ expectedValue: "EQ,BT,LT,LE,GT,GE,NOTLT,NOTLE,NOTGT,NOTGE",
1484
+ sMessage: "Edm.String and Single Range"
1485
+ },
1486
+ {
1487
+ dataField: "SalesOrderDate",
1488
+ oContext: {
1489
+ getObject: function(path: string) {
1490
+ // Edm Type
1491
+ if (path === "/dummy/SalesOrderDate/$Type") {
1492
+ return "Edm.Date";
1493
+ } else {
1494
+ // Filter Annotations
1495
+ return {
1496
+ FilterExpressionRestrictions: [
1497
+ {
1498
+ Property: { $PropertyPath: "SalesOrderDate" },
1499
+ AllowedExpressions: "SingleValue"
1500
+ }
1501
+ ]
1502
+ };
1503
+ }
1504
+ }
1505
+ },
1506
+ expectedValue: "EQ",
1507
+ sMessage: "Edm.Date and Single Value"
1508
+ },
1509
+ {
1510
+ dataField: "SalesOrderDate",
1511
+ oContext: {
1512
+ getObject: function(path: string) {
1513
+ // Edm Type
1514
+ if (path === "/dummy/SalesOrderDate/$Type") {
1515
+ return "Edm.Date";
1516
+ } else {
1517
+ // Filter Annotations
1518
+ return {
1519
+ FilterExpressionRestrictions: [
1520
+ {
1521
+ Property: { $PropertyPath: "SalesOrderDate" },
1522
+ AllowedExpressions: "MultiValue"
1523
+ }
1524
+ ]
1525
+ };
1526
+ }
1527
+ }
1528
+ },
1529
+ expectedValue: "EQ",
1530
+ sMessage: "Edm.Date and Multi Value"
1531
+ },
1532
+ {
1533
+ dataField: "NetAmount",
1534
+ oContext: {
1535
+ getObject: function(path: string) {
1536
+ // Edm Type
1537
+ if (path === "/dummy/NetAmount/$Type") {
1538
+ return "Edm.Decimal";
1539
+ } else {
1540
+ // Filter Annotations
1541
+ return {
1542
+ FilterExpressionRestrictions: [
1543
+ {
1544
+ Property: { $PropertyPath: "NetAmount" },
1545
+ AllowedExpressions: "MultiRange"
1546
+ }
1547
+ ]
1548
+ };
1549
+ }
1550
+ }
1551
+ },
1552
+ expectedValue: "EQ,BT,LT,LE,GT,GE,NE,NOTBT,NOTLT,NOTLE,NOTGT,NOTGE",
1553
+ sMessage: "Edm.Decimal and Multi Range"
1554
+ },
1555
+ {
1556
+ dataField: "SoldToParty",
1557
+ oContext: {
1558
+ getObject: function(path: string) {
1559
+ // Edm type
1560
+ if (path === "/dummy/SoldToParty/$Type") {
1561
+ return "Edm.String";
1562
+ } else {
1563
+ // Filter Annotations
1564
+ return {
1565
+ FilterExpressionRestrictions: [
1566
+ {
1567
+ Property: { $PropertyPath: "SoldToParty" },
1568
+ AllowedExpressions: "SearchExpression"
1569
+ }
1570
+ ]
1571
+ };
1572
+ }
1573
+ }
1574
+ },
1575
+ expectedValue: "Contains,StartsWith,EndsWith,NotContains,NotStartsWith,NotEndsWith",
1576
+ sMessage: "Edm.String and Search Expressions"
1577
+ },
1578
+ {
1579
+ dataField: "SoldToParty",
1580
+ oContext: {
1581
+ getObject: function(path: string) {
1582
+ // Edm type
1583
+ if (path === "/dummy/SoldToParty/$Type") {
1584
+ return "Edm.String";
1585
+ } else {
1586
+ // Filter Annotations
1587
+ return {
1588
+ FilterExpressionRestrictions: [
1589
+ {
1590
+ Property: { $PropertyPath: "SoldToParty" },
1591
+ AllowedExpressions: "MultiRangeOrSearchExpression"
1592
+ }
1593
+ ]
1594
+ };
1595
+ }
1596
+ }
1597
+ },
1598
+ expectedValue:
1599
+ "Contains,EQ,BT,StartsWith,EndsWith,LT,LE,GT,GE,NotContains,NE,NOTBT,NotStartsWith,NotEndsWith,NOTLT,NOTLE,NOTGT,NOTGE",
1600
+ sMessage: "Edm.String and MultiRange Or Search Expressions"
1601
+ }
1602
+ ].forEach(function(oProperty) {
1603
+ const actualValue = CommonUtils.getOperatorsForProperty(
1604
+ oProperty.dataField,
1605
+ "/dummy",
1606
+ oProperty.oContext,
1607
+ oProperty.oContext.getObject("/dummy/" + oProperty.dataField + "/$Type")
1608
+ );
1609
+ expect(actualValue).toEqual(oProperty.expectedValue); // , "Unit test to check Operators for " + oProperty.sMessage + ": ok");
1610
+ });
1611
+ });
1612
+ });
1613
+
1614
+ describe("Test CommonUtils : addDefaultDisplayCurrency", function() {
1615
+ test("Test adding default display currency to SV.", function() {
1616
+ [
1617
+ {
1618
+ aMandatoryFields: [],
1619
+ oAppData: {},
1620
+ oExpectedValue: undefined
1621
+ },
1622
+ {
1623
+ aMandatoryFields: [
1624
+ {
1625
+ $PropertyPath: "DisplayCurrency"
1626
+ }
1627
+ ],
1628
+ oAppData: {},
1629
+ oExpectedValue: undefined,
1630
+ sMessage: "no SV in appData"
1631
+ },
1632
+ {
1633
+ aMandatoryFields: [
1634
+ {
1635
+ $PropertyPath: "DisplayCurrency"
1636
+ }
1637
+ ],
1638
+ oAppData: {
1639
+ oSelectionVariant: new SelectionVariant()
1640
+ },
1641
+ oExpectedValue: undefined,
1642
+ sMessage: "no Defaulted SV"
1643
+ },
1644
+ {
1645
+ aMandatoryFields: [
1646
+ {
1647
+ $PropertyPath: "DisplayCurrency"
1648
+ }
1649
+ ],
1650
+ oAppData: {
1651
+ oSelectionVariant: new SelectionVariant(),
1652
+ oDefaultedSelectionVariant: new SelectionVariant()
1653
+ },
1654
+ oExpectedValue: undefined,
1655
+ sMessage: "no DisplayCurrency in Defaulted SV"
1656
+ },
1657
+ {
1658
+ aMandatoryFields: [
1659
+ {
1660
+ $PropertyPath: "DisplayCurrency"
1661
+ }
1662
+ ],
1663
+ oAppData: {
1664
+ oSelectionVariant: new SelectionVariant(),
1665
+ oDefaultedSelectionVariant: new SelectionVariant({
1666
+ "SelectOptions": [
1667
+ {
1668
+ "PropertyName": "DisplayCurrency",
1669
+ "Ranges": [
1670
+ {
1671
+ "Sign": "I",
1672
+ "Option": "EQ",
1673
+ "Low": "EUR",
1674
+ "High": null
1675
+ }
1676
+ ]
1677
+ }
1678
+ ]
1679
+ })
1680
+ },
1681
+ oExpectedValue: "EUR",
1682
+ sMessage: "DisplayCurrency in Defaulted SV"
1683
+ },
1684
+ {
1685
+ aMandatoryFields: [
1686
+ {
1687
+ $PropertyPath: "DisplayCurrency"
1688
+ }
1689
+ ],
1690
+ oAppData: {
1691
+ oSelectionVariant: new SelectionVariant({
1692
+ "SelectOptions": [
1693
+ {
1694
+ "PropertyName": "DisplayCurrency",
1695
+ "Ranges": [
1696
+ {
1697
+ "Sign": "I",
1698
+ "Option": "EQ",
1699
+ "Low": "INR",
1700
+ "High": null
1701
+ }
1702
+ ]
1703
+ }
1704
+ ]
1705
+ }),
1706
+ oDefaultedSelectionVariant: new SelectionVariant({
1707
+ "SelectOptions": [
1708
+ {
1709
+ "PropertyName": "DisplayCurrency",
1710
+ "Ranges": [
1711
+ {
1712
+ "Sign": "I",
1713
+ "Option": "EQ",
1714
+ "Low": "EUR",
1715
+ "High": null
1716
+ }
1717
+ ]
1718
+ }
1719
+ ]
1720
+ })
1721
+ },
1722
+ oExpectedValue: "INR",
1723
+ sMessage: "DisplayCurrency in SV and Defaulted SV"
1724
+ }
1725
+ ].forEach(function(oTestData) {
1726
+ CommonUtils.addDefaultDisplayCurrency(
1727
+ oTestData.aMandatoryFields,
1728
+ oTestData.oAppData.oSelectionVariant,
1729
+ oTestData.oAppData.oDefaultedSelectionVariant
1730
+ );
1731
+ expect(
1732
+ oTestData.oAppData &&
1733
+ oTestData.oAppData.oSelectionVariant &&
1734
+ oTestData.oAppData.oSelectionVariant.getSelectOption("DisplayCurrency") &&
1735
+ oTestData.oAppData.oSelectionVariant.getSelectOption("DisplayCurrency")[0].Low
1736
+ ).toEqual(oTestData.oExpectedValue); // ,"NavHelper: addDefaultDisplayCurrency works when " + oTestData.sMessage + "."
1737
+ });
1738
+ });
1739
+ });
1740
+
1741
+ describe("Unit Test to check getNonComputedVisibleFields", function() {
1742
+ test("Unit Test to check getNonComputedVisibleFields", function() {
1743
+ [
1744
+ {
1745
+ metaModel: {
1746
+ getObject: function(sPath: string) {
1747
+ switch (sPath) {
1748
+ case "/SalesOrderItem/":
1749
+ return {
1750
+ "$Key": ["key1", "key2"],
1751
+ "key1": {
1752
+ $kind: "Property"
1753
+ },
1754
+ "key2": {
1755
+ $kind: "Property"
1756
+ },
1757
+ "prop1": {
1758
+ $kind: "Property"
1759
+ }
1760
+ };
1761
+ case "/SalesOrderItem/key2@":
1762
+ return {
1763
+ "@Org.OData.Core.V1.Computed": false
1764
+ };
1765
+ case "/SalesOrderItem/prop1@":
1766
+ return {
1767
+ "@Org.OData.Core.V1.Immutable": true
1768
+ };
1769
+ default:
1770
+ return {};
1771
+ }
1772
+ }
1773
+ },
1774
+ path: "/SalesOrderItem",
1775
+ expectedValue: "key1,key2,prop1",
1776
+ message: "with technical keys and immutable prop"
1777
+ },
1778
+ {
1779
+ metaModel: {
1780
+ getObject: function(sPath: string) {
1781
+ switch (sPath) {
1782
+ case "/SalesOrderItem/":
1783
+ return {
1784
+ "$Key": ["key1", "key2"],
1785
+ "key1": {
1786
+ $kind: "Property"
1787
+ },
1788
+ "key2": {
1789
+ $kind: "Property"
1790
+ },
1791
+ "prop1": {
1792
+ $kind: "Property"
1793
+ }
1794
+ };
1795
+ default:
1796
+ return {};
1797
+ }
1798
+ }
1799
+ },
1800
+ path: "/SalesOrderItem",
1801
+ expectedValue: "key1,key2",
1802
+ message: "with technical keys and no immutable prop"
1803
+ },
1804
+ {
1805
+ metaModel: {
1806
+ getObject: function(sPath: string) {
1807
+ switch (sPath) {
1808
+ case "/SalesOrderItem/":
1809
+ return {
1810
+ "$Key": ["key1", "key2"],
1811
+ "key1": {
1812
+ $kind: "Property"
1813
+ },
1814
+ "key2": {
1815
+ $kind: "Property"
1816
+ },
1817
+ "prop1": {
1818
+ $kind: "Property"
1819
+ }
1820
+ };
1821
+ case "/SalesOrderItem/key2@":
1822
+ return {
1823
+ "@Org.OData.Core.V1.Computed": true
1824
+ };
1825
+ case "/SalesOrderItem/prop1@":
1826
+ return {
1827
+ "@Org.OData.Core.V1.Immutable": true
1828
+ };
1829
+ default:
1830
+ return {};
1831
+ }
1832
+ }
1833
+ },
1834
+ path: "/SalesOrderItem",
1835
+ expectedValue: "key1,prop1",
1836
+ message: "with a computed technical key"
1837
+ },
1838
+ {
1839
+ metaModel: {
1840
+ getObject: function(sPath: string) {
1841
+ switch (sPath) {
1842
+ case "/SalesOrderItem/":
1843
+ return {
1844
+ "$Key": ["key1", "key2"],
1845
+ "key1": {
1846
+ $kind: "Property"
1847
+ },
1848
+ "key2": {
1849
+ $kind: "Property"
1850
+ },
1851
+ "prop1": {
1852
+ $kind: "Property"
1853
+ }
1854
+ };
1855
+ case "/SalesOrderItem/key2@":
1856
+ return {
1857
+ "@com.sap.vocabularies.UI.v1.Hidden": true
1858
+ };
1859
+ case "/SalesOrderItem/prop1@":
1860
+ return {
1861
+ "@Org.OData.Core.V1.Immutable": true
1862
+ };
1863
+ default:
1864
+ return {};
1865
+ }
1866
+ }
1867
+ },
1868
+ path: "/SalesOrderItem",
1869
+ expectedValue: "key1,prop1",
1870
+ message: "with a hidden technical key"
1871
+ },
1872
+ {
1873
+ metaModel: {
1874
+ getObject: function(sPath: string) {
1875
+ switch (sPath) {
1876
+ case "/SalesOrderItem/":
1877
+ return {
1878
+ "$Key": ["key1", "key2"],
1879
+ "key1": {
1880
+ $kind: "Property"
1881
+ },
1882
+ "key2": {
1883
+ $kind: "Property"
1884
+ },
1885
+ "prop1": {
1886
+ $kind: "Property"
1887
+ }
1888
+ };
1889
+ case "/SalesOrderItem/prop1@":
1890
+ return {
1891
+ "@Org.OData.Core.V1.Immutable": true,
1892
+ "@com.sap.vocabularies.UI.v1.Hidden": true
1893
+ };
1894
+ default:
1895
+ return {};
1896
+ }
1897
+ }
1898
+ },
1899
+ path: "/SalesOrderItem",
1900
+ expectedValue: "key1,key2",
1901
+ message: "with a hidden property"
1902
+ },
1903
+ {
1904
+ metaModel: {
1905
+ getObject: function(sPath: string) {
1906
+ switch (sPath) {
1907
+ case "/SalesOrderItem/":
175
1908
  return {
176
- FilterExpressionRestrictions: [
177
- {
178
- Property: { $PropertyPath: "SalesOrderDate" },
179
- AllowedExpressions: "SingleValue"
180
- }
181
- ]
1909
+ "$Key": ["key1", "key2"],
1910
+ "key1": {
1911
+ $kind: "Property"
1912
+ },
1913
+ "key2": {
1914
+ $kind: "Property"
1915
+ },
1916
+ "prop1": {
1917
+ $kind: "Property"
1918
+ }
182
1919
  };
1920
+ case "/SalesOrderItem/prop1@":
1921
+ return {
1922
+ "@Org.OData.Core.V1.Immutable": true,
1923
+ "@Org.OData.Core.V1.Computed": true
1924
+ };
1925
+ default:
1926
+ return {};
1927
+ }
1928
+ }
1929
+ },
1930
+ path: "/SalesOrderItem",
1931
+ expectedValue: "key1,key2",
1932
+ message: "with a computed property"
1933
+ }
1934
+ ].forEach(function(oData) {
1935
+ const aKeyFields = CommonUtils.getNonComputedVisibleFields(oData.metaModel as ODataMetaModel, oData.path);
1936
+ expect(aKeyFields.toString()).toEqual(oData.expectedValue); // ,"getNonComputedVisibleFields executed " + oData.message + " -- OK"
1937
+ });
1938
+ });
1939
+ });
1940
+
1941
+ describe("Unit Test for checking Semantic Object Mappings", function() {
1942
+ test("Testing if semantic Object mappings are getting correcty replaced in the context or not", function() {
1943
+ const oSelectionVariant1 = new SelectionVariant();
1944
+ const oSelectionVariant2 = new SelectionVariant();
1945
+
1946
+ oSelectionVariant1.addSelectOption("SalesOrder", "I", "EQ", "2919682", undefined);
1947
+ oSelectionVariant1.addSelectOption("Delivered", "I", "EQ", "false", undefined);
1948
+
1949
+ oSelectionVariant2.addSelectOption("SalesOrder", "I", "EQ", "2919682", undefined);
1950
+ oSelectionVariant2.addSelectOption("Completed", "I", "EQ", "false", undefined);
1951
+
1952
+ const sMapping1 = '[{"LocalProperty":{"$PropertyPath":"Delivered"},"SemanticObjectProperty":"Completed"}]';
1953
+ // var sMapping2 = '[{"LocalProperty":{"$PropertyPath":"isImageUrl"},"SemanticObjectProperty":"ImageAddress"}]';
1954
+ expect(JSON.stringify(CommonUtils.setSemanticObjectMappings(oSelectionVariant1, sMapping1 as any))).toEqual(
1955
+ JSON.stringify(oSelectionVariant2)
1956
+ );
1957
+ });
1958
+ test("Testing if SelectionVariant remains unchanged if no Mapping matches with any field in context", function() {
1959
+ const oSelectionVariant1 = new SelectionVariant();
1960
+ const oSelectionVariant2 = new SelectionVariant();
1961
+
1962
+ oSelectionVariant1.addSelectOption("SalesOrder", "I", "EQ", "2919682", undefined);
1963
+ oSelectionVariant1.addSelectOption("Delivered", "I", "EQ", "false", undefined);
1964
+
1965
+ oSelectionVariant2.addSelectOption("SalesOrder", "I", "EQ", "2919682", undefined);
1966
+ oSelectionVariant2.addSelectOption("Completed", "I", "EQ", "false", undefined);
1967
+
1968
+ // var sMapping1 = '[{"LocalProperty":{"$PropertyPath":"Delivered"},"SemanticObjectProperty":"Completed"}]';
1969
+ const sMapping2 = '[{"LocalProperty":{"$PropertyPath":"isImageUrl"},"SemanticObjectProperty":"ImageAddress"}]';
1970
+ expect(JSON.stringify(CommonUtils.setSemanticObjectMappings(oSelectionVariant1, sMapping2 as any))).toEqual(
1971
+ JSON.stringify(oSelectionVariant1)
1972
+ );
1973
+ });
1974
+ });
1975
+
1976
+ describe("Unit Test for getHeaderFacetItemConfigForExternalNavigation", function() {
1977
+ test("Unit Test for getHeaderFacetItemConfigForExternalNavigation", function() {
1978
+ [
1979
+ {
1980
+ viewData: {
1981
+ controlConfiguration: {
1982
+ "@com.sap.vocabularies.UI.v1.DataPoint#dp1": {
1983
+ "navigation": {
1984
+ "targetOutbound": {
1985
+ "outbound": "outbound1"
1986
+ }
1987
+ }
1988
+ },
1989
+ "@com.sap.vocabularies.UI.v1.DataPoint#dp2": {
1990
+ "navigation": {
1991
+ "targetOutbound": {
1992
+ "outbound": "outbound1"
1993
+ },
1994
+ "targetSections": {
1995
+ "sectionId": "sectionID1"
1996
+ }
1997
+ }
1998
+ },
1999
+ "@com.sap.vocabularies.UI.v1.Chart#chart1": {
2000
+ "navigation": {
2001
+ "targetOutbound": {
2002
+ "outbound": "outbound1"
2003
+ },
2004
+ "targetSections": {
2005
+ "sectionId": "sectionID1"
2006
+ }
2007
+ }
2008
+ },
2009
+ "@com.sap.vocabularies.UI.v1.Chart#chart2": {
2010
+ "navigation": {
2011
+ "targetSections": {
2012
+ "sectionId": "sectionID1"
2013
+ }
2014
+ }
2015
+ },
2016
+ "_Partner/@com.sap.vocabularies.UI.v1.LineItem": {
2017
+ "tableSettings": {
2018
+ "personalization": false
2019
+ }
2020
+ }
2021
+ }
2022
+ },
2023
+ crossNav: {
2024
+ "outbound1": {
2025
+ semanticObject: "SO1",
2026
+ action: "action1"
2027
+ }
2028
+ },
2029
+ expectedValue: {
2030
+ "fe::HeaderDPLink::DataPoint::dp1": {
2031
+ "action": "action1",
2032
+ "semanticObject": "SO1",
2033
+ "semanticObjectMapping": []
2034
+ },
2035
+ "fe::HeaderDPLink::DataPoint::dp2": {
2036
+ "action": "action1",
2037
+ "semanticObject": "SO1",
2038
+ "semanticObjectMapping": []
2039
+ },
2040
+ "fe::MicroChartLink::Chart::chart1": {
2041
+ "action": "action1",
2042
+ "semanticObject": "SO1",
2043
+ "semanticObjectMapping": []
2044
+ }
2045
+ },
2046
+ message: "with target outbound configured with valid SO-action"
2047
+ },
2048
+ {
2049
+ viewData: {
2050
+ controlConfiguration: {
2051
+ "@com.sap.vocabularies.UI.v1.DataPoint#dp1": {
2052
+ "navigation": {
2053
+ "targetOutbound": {
2054
+ "outbound": "outbound1"
2055
+ }
2056
+ }
2057
+ },
2058
+ "@com.sap.vocabularies.UI.v1.DataPoint#dp2": {
2059
+ "navigation": {
2060
+ "targetOutbound": {
2061
+ "outbound": "outbound1"
2062
+ },
2063
+ "targetSections": {
2064
+ "sectionId": "sectionID1"
2065
+ }
2066
+ }
2067
+ },
2068
+ "@com.sap.vocabularies.UI.v1.Chart#chart1": {
2069
+ "navigation": {
2070
+ "targetOutbound": {
2071
+ "outbound": "outbound1"
2072
+ },
2073
+ "targetSections": {
2074
+ "sectionId": "sectionID1"
2075
+ }
2076
+ }
2077
+ },
2078
+ "@com.sap.vocabularies.UI.v1.Chart#chart2": {
2079
+ "navigation": {
2080
+ "targetSections": {
2081
+ "sectionId": "sectionID1"
2082
+ }
2083
+ }
2084
+ },
2085
+ "_Partner/@com.sap.vocabularies.UI.v1.LineItem": {
2086
+ "tableSettings": {
2087
+ "personalization": false
183
2088
  }
184
2089
  }
2090
+ }
2091
+ },
2092
+ crossNav: {
2093
+ "outbound1": {}
2094
+ },
2095
+ expectedValue: {},
2096
+ message: "with target outbound configured with no SO-action"
2097
+ },
2098
+ {
2099
+ viewData: {
2100
+ controlConfiguration: {
2101
+ "@com.sap.vocabularies.UI.v1.DataPoint#dp1": {
2102
+ "navigation": {
2103
+ "targetOutbound": {
2104
+ "outbound": "outbound1"
2105
+ }
2106
+ }
2107
+ },
2108
+ "@com.sap.vocabularies.UI.v1.Chart#chart1": {
2109
+ "navigation": {
2110
+ "targetOutbound": {
2111
+ "outbound": "outbound1"
2112
+ }
2113
+ }
2114
+ }
2115
+ }
2116
+ },
2117
+ crossNav: {
2118
+ "outbound1": {
2119
+ semanticObject: "SO1",
2120
+ action: "action1",
2121
+ parameters: {
2122
+ "mappedProperty1": {
2123
+ "value": {
2124
+ "value": "mainProperty1",
2125
+ "format": "binding"
2126
+ }
2127
+ },
2128
+ "mappedProperty2": {
2129
+ "value": {
2130
+ "value": "mainProperty2",
2131
+ "format": "plain"
2132
+ }
2133
+ },
2134
+ "mainProperty3": {
2135
+ "defaultValue": {
2136
+ "value": "UserDefault.GLAccount",
2137
+ "format": "reference"
2138
+ },
2139
+ "filter": {
2140
+ "value": "\\d+",
2141
+ "format": "regexp"
2142
+ }
2143
+ }
2144
+ }
2145
+ }
2146
+ },
2147
+ expectedValue: {
2148
+ "fe::HeaderDPLink::DataPoint::dp1": {
2149
+ "action": "action1",
2150
+ "semanticObject": "SO1",
2151
+ "semanticObjectMapping": [
2152
+ {
2153
+ "LocalProperty": {
2154
+ "$PropertyPath": "mainProperty1"
2155
+ },
2156
+ "SemanticObjectProperty": "mappedProperty1"
2157
+ }
2158
+ ]
185
2159
  },
186
- expectedValue: "EQ",
187
- sMessage: "Edm.String and Single Value Or Search Expressions"
2160
+ "fe::MicroChartLink::Chart::chart1": {
2161
+ "action": "action1",
2162
+ "semanticObject": "SO1",
2163
+ "semanticObjectMapping": [
2164
+ {
2165
+ "LocalProperty": {
2166
+ "$PropertyPath": "mainProperty1"
2167
+ },
2168
+ "SemanticObjectProperty": "mappedProperty1"
2169
+ }
2170
+ ]
2171
+ }
2172
+ },
2173
+ message: "with target outbound configured with valid SO-action and semantic mapping"
2174
+ }
2175
+ ].forEach(function(oData) {
2176
+ const oHeaderFacetItems = CommonUtils.getHeaderFacetItemConfigForExternalNavigation(oData.viewData, oData.crossNav);
2177
+ expect(oHeaderFacetItems).toEqual(oData.expectedValue); // , "Unit test to check getHeaderFacetItemConfigForExternalNavigation " + oData.message + ": ok"
2178
+ });
2179
+ });
2180
+ });
2181
+ describe("Unit Test for getSemanticObjectMapping", function() {
2182
+ test("Unit Test for getSemanticObjectMapping", function() {
2183
+ [
2184
+ {
2185
+ outbound: {
2186
+ "outbound1": {
2187
+ semanticObject: "SO1",
2188
+ action: "action1"
2189
+ }
2190
+ },
2191
+ expectedValue: [],
2192
+ message: "with target outbound configured no semanticobject mapping"
2193
+ },
2194
+ {
2195
+ outbound: {
2196
+ semanticObject: "SO1",
2197
+ action: "action1",
2198
+ parameters: {
2199
+ "mappedProperty1": {
2200
+ "value": {
2201
+ "value": "mainProperty1",
2202
+ "format": "binding"
2203
+ }
2204
+ },
2205
+ "mappedProperty2": {
2206
+ "value": {
2207
+ "value": "mainProperty2",
2208
+ "format": "plain"
2209
+ }
2210
+ },
2211
+ "mainProperty3": {
2212
+ "defaultValue": {
2213
+ "value": "UserDefault.GLAccount",
2214
+ "format": "reference"
2215
+ },
2216
+ "filter": {
2217
+ "value": "\\d+",
2218
+ "format": "regexp"
2219
+ }
2220
+ },
2221
+ "mappedProperty4": {
2222
+ "value": {
2223
+ "value": "mainProperty4",
2224
+ "format": "binding"
2225
+ }
2226
+ }
2227
+ }
2228
+ },
2229
+ expectedValue: [
2230
+ {
2231
+ "LocalProperty": {
2232
+ "$PropertyPath": "mainProperty1"
2233
+ },
2234
+ "SemanticObjectProperty": "mappedProperty1"
2235
+ },
2236
+ {
2237
+ "LocalProperty": {
2238
+ "$PropertyPath": "mainProperty4"
2239
+ },
2240
+ "SemanticObjectProperty": "mappedProperty4"
2241
+ }
2242
+ ],
2243
+ message: "with target outbound configured with valid SO-action and semantic mapping"
2244
+ }
2245
+ ].forEach(function(oData) {
2246
+ const oHeaderFacetItems = CommonUtils.getSemanticObjectMapping(oData.outbound);
2247
+ expect(oHeaderFacetItems).toEqual(oData.expectedValue); // ,"Unit test to check getSemanticObjectMapping " + oData.message + ": ok"
2248
+ });
2249
+ });
2250
+
2251
+ describe("fnOnStrictHandlingFailed", () => {
2252
+ test("fnOnStrictHandlingFailed for unbound action and single 412 message from backend", async function() {
2253
+ let confirmWarning: (msg: string, options?: object) => void;
2254
+ let confirmSelection: string = "UnboundAction";
2255
+ jest.spyOn(MessageBox, "warning").mockImplementation((msg: string, options?: any) =>
2256
+ confirmWarning.call(null, msg, options)
2257
+ );
2258
+
2259
+ confirmWarning = (msg: string, options?: any) => {
2260
+ expect(options.title).toEqual("Warning");
2261
+ expect(msg).toEqual("Unable to execute the action due to a warning" + "\n" + "Proceed anyway?");
2262
+ options.onClose(confirmSelection);
2263
+ };
2264
+
2265
+ const oModel: ODataModel | any = {
2266
+ submitBatch: jest.fn().mockReturnValue(Promise.resolve({}))
2267
+ };
2268
+ const aMessages = [
2269
+ {
2270
+ message: "Unable to execute the action due to a warning"
188
2271
  }
189
- ].forEach(function(oProperty) {
190
- var actualValue = CommonUtils.getOperatorsForProperty(
191
- oProperty.dataField,
192
- "/dummy",
193
- oProperty.oContext,
194
- oProperty.oContext.getObject("/dummy/" + oProperty.dataField + "/$Type"),
195
- true
196
- );
197
- expect(actualValue).toEqual(oProperty.expectedValue);
2272
+ ];
2273
+ await CommonUtils.fnOnStrictHandlingFailed("actionImport", "UnboundAction", oModel, aMessages);
2274
+ });
2275
+
2276
+ test("fnOnStrictHandlingFailed for unbound action and multiple 412 messages from backend - ignore warnings and continue", async function() {
2277
+ let oMockprepareMessageViewForDialog = jest.spyOn(MessageHandling, "prepareMessageViewForDialog");
2278
+ oMockprepareMessageViewForDialog.mockImplementationOnce(() => {
2279
+ const oMessageView = new MessageView({
2280
+ showDetailsPageHeader: false
2281
+ });
2282
+ return {
2283
+ oMessageView: oMessageView,
2284
+ bhasEtagMessage: false
2285
+ };
2286
+ });
2287
+ let oDialogOpenStub = jest.spyOn(Dialog.prototype, "open");
2288
+ oDialogOpenStub.mockImplementation(function(this: Dialog) {
2289
+ const oActionButton = this.getBeginButton();
2290
+ oActionButton.firePress();
198
2291
  });
2292
+ const oModel: ODataModel | any = {
2293
+ submitBatch: jest.fn().mockReturnValue(Promise.resolve({}))
2294
+ };
2295
+ const aMessages = [
2296
+ {
2297
+ message: "Unable to execute the action due to a warning"
2298
+ },
2299
+ {
2300
+ message: "Unable to execute the action due to a warning"
2301
+ }
2302
+ ];
2303
+ await expect(CommonUtils.fnOnStrictHandlingFailed("actionImport", "UnboundAction", oModel, aMessages));
2304
+ expect(oMockprepareMessageViewForDialog).toHaveBeenCalledTimes(1);
2305
+ expect(oDialogOpenStub).toHaveBeenCalledTimes(1);
2306
+ });
2307
+
2308
+ test("fnOnStrictHandlingFailed for unbound action and multiple 412 messages from backend - cancel", async function() {
2309
+ let oMockprepareMessageViewForDialog = jest.spyOn(MessageHandling, "prepareMessageViewForDialog");
2310
+ oMockprepareMessageViewForDialog.mockImplementationOnce(() => {
2311
+ const oMessageView = new MessageView({
2312
+ showDetailsPageHeader: false
2313
+ });
2314
+ return {
2315
+ oMessageView: oMessageView,
2316
+ bhasEtagMessage: false
2317
+ };
2318
+ });
2319
+ let oDialogOpenStub = jest.spyOn(Dialog.prototype, "open");
2320
+ oDialogOpenStub.mockImplementation(function(this: Dialog) {
2321
+ const oActionButton = this.getEndButton();
2322
+ oActionButton.firePress();
2323
+ });
2324
+ const oModel: ODataModel | any = {
2325
+ submitBatch: jest.fn().mockReturnValue(Promise.resolve({}))
2326
+ };
2327
+ const aMessages = [
2328
+ {
2329
+ message: "Unable to execute the action due to a warning"
2330
+ },
2331
+ {
2332
+ message: "Unable to execute the action due to a warning"
2333
+ }
2334
+ ];
2335
+ await expect(CommonUtils.fnOnStrictHandlingFailed("actionImport", "UnboundAction", oModel, aMessages));
2336
+ expect(oMockprepareMessageViewForDialog).toHaveBeenCalledTimes(2);
2337
+ expect(oDialogOpenStub).toHaveBeenCalledTimes(2);
199
2338
  });
200
2339
  });
201
2340
  });