@sapui5/sap.fe.core 1.111.0 → 1.112.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 (524) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime-dbg.js +4 -4
  4. package/src/sap/fe/core/ActionRuntime.js +1 -1
  5. package/src/sap/fe/core/ActionRuntime.js.map +1 -1
  6. package/src/sap/fe/core/ActionRuntime.ts +11 -11
  7. package/src/sap/fe/core/AppComponent-dbg.js +27 -5
  8. package/src/sap/fe/core/AppComponent.js +1 -1
  9. package/src/sap/fe/core/AppComponent.js.map +1 -1
  10. package/src/sap/fe/core/AppComponent.ts +58 -3
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +5 -2
  12. package/src/sap/fe/core/AppStateHandler.js +1 -1
  13. package/src/sap/fe/core/AppStateHandler.js.map +1 -1
  14. package/src/sap/fe/core/AppStateHandler.ts +10 -1
  15. package/src/sap/fe/core/BaseController-dbg.js +1 -1
  16. package/src/sap/fe/core/BaseController.ts +2 -1
  17. package/src/sap/fe/core/CommonUtils-dbg.js +152 -365
  18. package/src/sap/fe/core/CommonUtils.js +1 -1
  19. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  20. package/src/sap/fe/core/CommonUtils.ts +201 -478
  21. package/src/sap/fe/core/ExtensionAPI-dbg.js +2 -1
  22. package/src/sap/fe/core/ExtensionAPI.js +1 -1
  23. package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
  24. package/src/sap/fe/core/ExtensionAPI.ts +9 -1
  25. package/src/sap/fe/core/PageController-dbg.js +26 -31
  26. package/src/sap/fe/core/PageController.js +1 -1
  27. package/src/sap/fe/core/PageController.js.map +1 -1
  28. package/src/sap/fe/core/PageController.ts +17 -3
  29. package/src/sap/fe/core/ResourceModel-dbg.js +71 -0
  30. package/src/sap/fe/core/ResourceModel.js +6 -0
  31. package/src/sap/fe/core/ResourceModel.js.map +1 -0
  32. package/src/sap/fe/core/ResourceModel.ts +67 -0
  33. package/src/sap/fe/core/TemplateComponent-dbg.js +1 -1
  34. package/src/sap/fe/core/TemplateComponent.ts +1 -0
  35. package/src/sap/fe/core/TemplateModel-dbg.js +1 -1
  36. package/src/sap/fe/core/TemplateModel.ts +6 -1
  37. package/src/sap/fe/core/buildingBlocks/AttributeModel-dbg.js +5 -7
  38. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
  39. package/src/sap/fe/core/buildingBlocks/AttributeModel.js.map +1 -1
  40. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +6 -5
  41. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +163 -0
  42. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +6 -0
  43. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -0
  44. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +169 -0
  45. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +88 -0
  46. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +6 -0
  47. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -0
  48. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +147 -0
  49. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +905 -0
  50. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +21 -0
  51. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -0
  52. package/src/sap/fe/core/buildingBlocks/{BuildingBlockRuntime.ts → BuildingBlockTemplateProcessor.ts} +279 -335
  53. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +79 -0
  54. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +15 -0
  55. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -0
  56. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +68 -0
  57. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +162 -0
  58. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +6 -0
  59. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -0
  60. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +181 -0
  61. package/src/sap/fe/core/buildingBlocks/TraceInfo-dbg.js +4 -2
  62. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +1 -1
  63. package/src/sap/fe/core/buildingBlocks/TraceInfo.js.map +1 -1
  64. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +5 -3
  65. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +890 -220
  66. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  67. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  68. package/src/sap/fe/core/controllerextensions/EditFlow.ts +974 -239
  69. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +24 -34
  70. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  71. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  72. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +71 -61
  73. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +14 -17
  74. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  75. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  76. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +23 -17
  77. package/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +1 -1
  78. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -0
  79. package/src/sap/fe/core/controllerextensions/MassEdit-dbg.js +3 -3
  80. package/src/sap/fe/core/controllerextensions/MassEdit.js +1 -1
  81. package/src/sap/fe/core/controllerextensions/MassEdit.js.map +1 -1
  82. package/src/sap/fe/core/controllerextensions/MassEdit.ts +2 -2
  83. package/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +2 -1
  84. package/src/sap/fe/core/controllerextensions/MessageHandler.js.map +1 -1
  85. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +2 -0
  86. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +1 -1
  87. package/src/sap/fe/core/controllerextensions/PageReady.ts +24 -0
  88. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
  89. package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
  90. package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
  91. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
  92. package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
  93. package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
  94. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  95. package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
  96. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
  97. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  98. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  99. package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
  100. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
  101. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  102. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  103. package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
  104. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
  105. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
  106. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
  107. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
  108. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
  109. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  110. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  111. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
  112. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
  113. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  114. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  115. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
  116. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +1 -1
  117. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  118. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -3
  119. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
  120. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
  121. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
  122. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
  123. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
  124. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +45 -31
  125. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  126. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  127. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +52 -42
  128. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +44 -49
  129. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  130. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  131. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +43 -63
  132. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  133. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +77 -0
  134. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
  135. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
  136. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +114 -0
  137. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1505 -0
  138. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
  139. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
  140. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1985 -0
  141. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
  142. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  143. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
  144. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
  145. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -11
  146. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  147. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  148. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -13
  149. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +43 -41
  150. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  151. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  152. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +44 -47
  153. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
  154. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
  155. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
  156. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +12 -13
  157. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  158. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  159. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +32 -13
  160. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
  161. package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
  162. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  163. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  164. package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
  165. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
  166. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  167. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
  168. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
  169. package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
  170. package/src/sap/fe/core/controls/FilterBar.ts +5 -0
  171. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
  172. package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
  173. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
  174. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
  175. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
  176. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
  177. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
  178. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
  179. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
  180. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  181. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  182. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
  183. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
  184. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
  185. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
  186. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
  187. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
  188. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
  189. package/src/sap/fe/core/converters/ConverterContext-dbg.js +1 -1
  190. package/src/sap/fe/core/converters/ConverterContext.ts +2 -1
  191. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
  192. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  193. package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
  194. package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
  195. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +17 -1
  196. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  197. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  198. package/src/sap/fe/core/converters/ManifestWrapper.ts +16 -0
  199. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +61 -49
  200. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  201. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  202. package/src/sap/fe/core/converters/MetaModelConverter.ts +65 -51
  203. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
  204. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  205. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  206. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +65 -16
  207. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  208. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  209. package/src/sap/fe/core/converters/annotations/DataField.ts +62 -18
  210. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1010 -957
  211. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  212. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  213. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +8 -8
  214. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  215. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  216. package/src/sap/fe/core/converters/controls/Common/Action.ts +28 -26
  217. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
  218. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  219. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  220. package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
  221. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
  222. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  223. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  224. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
  225. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +1 -1
  226. package/src/sap/fe/core/converters/controls/Common/Form.ts +3 -3
  227. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +6 -6
  228. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  229. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  230. package/src/sap/fe/core/converters/controls/Common/KPI.ts +15 -15
  231. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +97 -69
  232. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  233. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  234. package/src/sap/fe/core/converters/controls/Common/Table.ts +161 -137
  235. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +3 -3
  236. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  237. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  238. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +10 -9
  239. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +48 -44
  240. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  241. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  242. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +130 -86
  243. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +34 -26
  244. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  245. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  246. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +62 -45
  247. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
  248. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
  249. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
  250. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
  251. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
  252. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
  253. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +34 -13
  254. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  255. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  256. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +54 -20
  257. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +3 -1
  258. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  259. package/src/sap/fe/core/converters/helpers/Aggregation.ts +8 -0
  260. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
  261. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  262. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
  263. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
  264. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
  265. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
  266. package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
  267. package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
  268. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +9 -8
  269. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  270. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  271. package/src/sap/fe/core/converters/helpers/IssueManager.ts +8 -7
  272. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +8 -7
  273. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  274. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  275. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +9 -6
  276. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +25 -33
  277. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  278. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  279. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +35 -35
  280. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +11 -4
  281. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  282. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  283. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +7 -1
  284. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
  285. package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
  286. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
  287. package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
  288. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -2
  289. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  290. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  291. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -1
  292. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +5 -5
  293. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  294. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  295. package/src/sap/fe/core/formatters/ValueFormatter.ts +6 -4
  296. package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
  297. package/src/sap/fe/core/fpm/Component.ts +1 -0
  298. package/src/sap/fe/core/fpm/manifest.json +1 -1
  299. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
  300. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  301. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
  302. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  303. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +6 -6
  304. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  305. package/src/sap/fe/core/helpers/BindingToolkit.ts +8 -8
  306. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
  307. package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
  308. package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
  309. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
  310. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  311. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  312. package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
  313. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +20 -18
  314. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  315. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  316. package/src/sap/fe/core/helpers/MassEditHelper.ts +22 -23
  317. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +4 -5
  318. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  319. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  320. package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
  321. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +354 -0
  322. package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
  323. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
  324. package/src/sap/fe/core/helpers/MetaModelFunction.ts +408 -0
  325. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +13 -13
  326. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  327. package/src/sap/fe/core/helpers/ModelHelper.ts +13 -13
  328. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
  329. package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
  330. package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
  331. package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
  332. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +26 -0
  333. package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
  334. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
  335. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +19 -0
  336. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +93 -18
  337. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  338. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  339. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +70 -17
  340. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
  341. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  342. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
  343. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  344. package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
  345. package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
  346. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +5 -1
  347. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  348. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  349. package/src/sap/fe/core/helpers/TypeGuards.ts +12 -1
  350. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
  351. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
  352. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
  353. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
  354. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
  355. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
  356. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
  357. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
  358. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  359. package/src/sap/fe/core/library-dbg.js +2 -2
  360. package/src/sap/fe/core/library-preload.js +127 -125
  361. package/src/sap/fe/core/library-preload.js.map +1 -1
  362. package/src/sap/fe/core/library.js +1 -1
  363. package/src/sap/fe/core/library.ts +7 -0
  364. package/src/sap/fe/core/manifest.json +1 -1
  365. package/src/sap/fe/core/messagebundle.properties +33 -0
  366. package/src/sap/fe/core/messagebundle_ar.properties +12 -10
  367. package/src/sap/fe/core/messagebundle_bg.properties +11 -9
  368. package/src/sap/fe/core/messagebundle_ca.properties +11 -9
  369. package/src/sap/fe/core/messagebundle_cs.properties +11 -9
  370. package/src/sap/fe/core/messagebundle_cy.properties +11 -9
  371. package/src/sap/fe/core/messagebundle_da.properties +11 -9
  372. package/src/sap/fe/core/messagebundle_de.properties +3 -1
  373. package/src/sap/fe/core/messagebundle_el.properties +11 -9
  374. package/src/sap/fe/core/messagebundle_en.properties +3 -1
  375. package/src/sap/fe/core/messagebundle_en_GB.properties +2 -0
  376. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
  377. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -0
  378. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -3
  379. package/src/sap/fe/core/messagebundle_es.properties +11 -9
  380. package/src/sap/fe/core/messagebundle_es_MX.properties +11 -9
  381. package/src/sap/fe/core/messagebundle_et.properties +11 -9
  382. package/src/sap/fe/core/messagebundle_fi.properties +11 -9
  383. package/src/sap/fe/core/messagebundle_fr.properties +11 -9
  384. package/src/sap/fe/core/messagebundle_fr_CA.properties +3 -1
  385. package/src/sap/fe/core/messagebundle_hi.properties +2 -0
  386. package/src/sap/fe/core/messagebundle_hr.properties +11 -9
  387. package/src/sap/fe/core/messagebundle_hu.properties +11 -9
  388. package/src/sap/fe/core/messagebundle_id.properties +3 -1
  389. package/src/sap/fe/core/messagebundle_it.properties +11 -9
  390. package/src/sap/fe/core/messagebundle_iw.properties +11 -9
  391. package/src/sap/fe/core/messagebundle_ja.properties +11 -9
  392. package/src/sap/fe/core/messagebundle_kk.properties +11 -9
  393. package/src/sap/fe/core/messagebundle_ko.properties +2 -0
  394. package/src/sap/fe/core/messagebundle_lt.properties +11 -9
  395. package/src/sap/fe/core/messagebundle_lv.properties +2 -0
  396. package/src/sap/fe/core/messagebundle_ms.properties +12 -10
  397. package/src/sap/fe/core/messagebundle_nl.properties +12 -10
  398. package/src/sap/fe/core/messagebundle_no.properties +11 -9
  399. package/src/sap/fe/core/messagebundle_pl.properties +2 -0
  400. package/src/sap/fe/core/messagebundle_pt.properties +11 -9
  401. package/src/sap/fe/core/messagebundle_pt_PT.properties +11 -9
  402. package/src/sap/fe/core/messagebundle_ro.properties +3 -1
  403. package/src/sap/fe/core/messagebundle_ru.properties +3 -1
  404. package/src/sap/fe/core/messagebundle_sh.properties +11 -9
  405. package/src/sap/fe/core/messagebundle_sk.properties +11 -9
  406. package/src/sap/fe/core/messagebundle_sl.properties +11 -9
  407. package/src/sap/fe/core/messagebundle_sv.properties +2 -0
  408. package/src/sap/fe/core/messagebundle_th.properties +11 -9
  409. package/src/sap/fe/core/messagebundle_tr.properties +11 -9
  410. package/src/sap/fe/core/messagebundle_uk.properties +11 -9
  411. package/src/sap/fe/core/messagebundle_vi.properties +12 -10
  412. package/src/sap/fe/core/messagebundle_zh_CN.properties +2 -0
  413. package/src/sap/fe/core/messagebundle_zh_TW.properties +2 -0
  414. package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
  415. package/src/sap/fe/core/operationsHelper.js +1 -1
  416. package/src/sap/fe/core/operationsHelper.js.map +1 -1
  417. package/src/sap/fe/core/operationsHelper.ts +88 -63
  418. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
  419. package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
  420. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
  421. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  422. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
  423. package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
  424. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +4 -3
  425. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  426. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  427. package/src/sap/fe/core/rootView/RootViewBaseController.ts +15 -5
  428. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  429. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  430. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
  431. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
  432. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
  433. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
  434. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  435. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
  436. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
  437. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  438. package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
  439. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
  440. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  441. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
  442. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
  443. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +3 -3
  444. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  445. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  446. package/src/sap/fe/core/services/RoutingServiceFactory.ts +29 -3
  447. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +1 -1
  448. package/src/sap/fe/core/services/ShellServicesFactory.ts +14 -2
  449. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
  450. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  451. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  452. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +502 -333
  453. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +18 -5
  454. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  455. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  456. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +41 -12
  457. package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
  458. package/src/sap/fe/core/support/Diagnostics.ts +5 -0
  459. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +185 -86
  460. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  461. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  462. package/src/sap/fe/core/templating/DataModelPathHelper.ts +190 -82
  463. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +1 -1
  464. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +1 -1
  465. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +2 -3
  466. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  467. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  468. package/src/sap/fe/core/templating/EntitySetHelper.ts +1 -3
  469. package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
  470. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  471. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  472. package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
  473. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +1 -1
  474. package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
  475. package/src/sap/fe/core/templating/UIFormatters-dbg.js +1 -1
  476. package/src/sap/fe/core/templating/UIFormatters.ts +4 -0
  477. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
  478. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
  479. package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
  480. package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
  481. package/src/sap/fe/core/type/FiscalDate.ts +2 -1
  482. package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
  483. package/src/sap/fe/core/type/TypeUtil.js +1 -1
  484. package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
  485. package/src/sap/fe/core/type/TypeUtil.ts +3 -6
  486. package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
  487. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
  488. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
  489. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
  490. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
  491. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
  492. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
  493. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
  494. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -932
  495. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
  496. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
  497. package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
  498. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
  499. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
  500. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
  501. package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
  502. package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
  503. package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
  504. package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
  505. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
  506. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
  507. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
  508. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
  509. package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
  510. package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
  511. package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
  512. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
  513. package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
  514. package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
  515. package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
  516. package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
  517. package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
  518. package/src/sap/fe/core/controls/FileWrapper.js +0 -6
  519. package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
  520. package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
  521. package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
  522. package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
  523. package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
  524. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
@@ -1,33 +1,24 @@
1
1
  import type * as Edm from "@sap-ux/vocabularies-types/Edm";
2
- import type {
3
- FilterRestrictionsType,
4
- NavigationPropertyRestrictionTypes,
5
- NavigationRestrictionsType,
6
- SearchRestrictionsType
7
- } from "@sap-ux/vocabularies-types/vocabularies/Capabilities";
2
+ import type { FilterRestrictionsType } from "@sap-ux/vocabularies-types/vocabularies/Capabilities";
8
3
  import type { SemanticObjectMappingType, SemanticObjectUnavailableActions } from "@sap-ux/vocabularies-types/vocabularies/Common";
9
4
  import { CommonAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Common";
10
5
  import type { TextArrangement } from "@sap-ux/vocabularies-types/vocabularies/UI";
11
- import type ResourceBundle from "sap/base/i18n/ResourceBundle";
12
6
  import Log from "sap/base/Log";
13
7
  import uniqueSort from "sap/base/util/array/uniqueSort";
14
8
  import mergeObjects from "sap/base/util/merge";
15
9
  import type AppComponent from "sap/fe/core/AppComponent";
10
+ import type { ComponentData } from "sap/fe/core/AppComponent";
16
11
  import ConverterContext from "sap/fe/core/converters/ConverterContext";
17
- import { IssueCategory, IssueCategoryType, IssueSeverity } from "sap/fe/core/converters/helpers/IssueManager";
18
12
  import * as MetaModelConverter from "sap/fe/core/converters/MetaModelConverter";
19
- import type { CompiledBindingToolkitExpression } from "sap/fe/core/helpers/BindingToolkit";
20
- import { compileExpression, not, or, pathInModel } from "sap/fe/core/helpers/BindingToolkit";
13
+ import { compileExpression, pathInModel } from "sap/fe/core/helpers/BindingToolkit";
21
14
  import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
22
15
  import ModelHelper from "sap/fe/core/helpers/ModelHelper";
23
16
  import SemanticDateOperators from "sap/fe/core/helpers/SemanticDateOperators";
24
17
  import { generate } from "sap/fe/core/helpers/StableIdHelper";
25
18
  import type PageController from "sap/fe/core/PageController";
26
19
  import type { IShellServices } from "sap/fe/core/services/ShellServicesFactory";
27
- import Diagnostics from "sap/fe/core/support/Diagnostics";
28
- import { DefaultTypeForEdmType, isTypeFilterable } from "sap/fe/core/type/EDM";
20
+ import type Diagnostics from "sap/fe/core/support/Diagnostics";
29
21
  import TypeUtil from "sap/fe/core/type/TypeUtil";
30
- import metaModelUtil from "sap/fe/macros/ODataMetaModelUtil";
31
22
  import type SelectionVariant from "sap/fe/navigation/SelectionVariant";
32
23
  import type { SelectOption, SemanticDateConfiguration } from "sap/fe/navigation/SelectionVariant";
33
24
  import type Button from "sap/m/Button";
@@ -39,7 +30,6 @@ import type { AggregationBindingInfo } from "sap/ui/base/ManagedObject";
39
30
  import Component from "sap/ui/core/Component";
40
31
  import type ComponentContainer from "sap/ui/core/ComponentContainer";
41
32
  import type Control from "sap/ui/core/Control";
42
- import Core from "sap/ui/core/Core";
43
33
  import type UI5Element from "sap/ui/core/Element";
44
34
  import Fragment from "sap/ui/core/Fragment";
45
35
  import type Controller from "sap/ui/core/mvc/Controller";
@@ -48,14 +38,16 @@ import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
48
38
  import XMLTemplateProcessor from "sap/ui/core/XMLTemplateProcessor";
49
39
  import Device, { system } from "sap/ui/Device";
50
40
  import type ActionToolbarAction from "sap/ui/mdc/actiontoolbar/ActionToolbarAction";
51
- import type Chart from "sap/ui/mdc/Chart";
41
+ import type { default as Chart, default as MDCChart } from "sap/ui/mdc/Chart";
52
42
  import type { ConditionObject } from "sap/ui/mdc/condition/Condition";
53
43
  import FilterOperatorUtil from "sap/ui/mdc/condition/FilterOperatorUtil";
54
44
  import RangeOperator from "sap/ui/mdc/condition/RangeOperator";
55
45
  import type FilterBar from "sap/ui/mdc/FilterBar";
56
46
  import type DelegateMixin from "sap/ui/mdc/mixin/DelegateMixin";
57
47
  import type Table from "sap/ui/mdc/Table";
48
+ import type MDCTable from "sap/ui/mdc/valuehelp/content/MDCTable";
58
49
  import type Context from "sap/ui/model/Context";
50
+ import Filter from "sap/ui/model/Filter";
59
51
  import type JSONModel from "sap/ui/model/json/JSONModel";
60
52
  import type ODataV4Context from "sap/ui/model/odata/v4/Context";
61
53
  import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
@@ -63,29 +55,29 @@ import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
63
55
  import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
64
56
  import type ObjectPageDynamicHeaderTitle from "sap/uxap/ObjectPageDynamicHeaderTitle";
65
57
  import type ObjectPageLayout from "sap/uxap/ObjectPageLayout";
66
- import type { V4Context } from "types/extension_types";
67
58
  import type {
68
59
  ExpandPathType,
69
- MetaModelEntitySetAnnotation,
70
60
  MetaModelEntityType,
71
61
  MetaModelEnum,
72
62
  MetaModelNavProperty,
73
63
  MetaModelProperty,
74
64
  MetaModelType
75
- } from "../../../../../../types/extension_types";
65
+ } from "types/metamodel_types";
76
66
  import AnyElement from "./controls/AnyElement";
67
+ import * as MetaModelFunction from "./helpers/MetaModelFunction";
77
68
  import { getConditions } from "./templating/FilterHelper";
78
69
 
79
- type InternalResourceBundle = ResourceBundle & {
80
- aCustomBundles: InternalResourceBundle[];
81
- };
82
-
83
70
  type ConditionType = {
84
71
  operator: string;
85
72
  values: Array<unknown> | undefined;
86
73
  validated?: string;
87
74
  };
88
75
 
76
+ type MyInboxIntent = {
77
+ semanticObject: string;
78
+ action: string;
79
+ };
80
+
89
81
  function normalizeSearchTerm(sSearchTerm: string) {
90
82
  if (!sSearchTerm) {
91
83
  return undefined;
@@ -103,47 +95,7 @@ function normalizeSearchTerm(sSearchTerm: string) {
103
95
  }, undefined);
104
96
  }
105
97
 
106
- function getPropertyDataType(oNavigationContext: Context) {
107
- let sDataType = oNavigationContext.getProperty("$Type");
108
- // if $kind exists, it's not a DataField and we have the final type already
109
- if (!oNavigationContext.getProperty("$kind")) {
110
- switch (sDataType) {
111
- case "com.sap.vocabularies.UI.v1.DataFieldForAction":
112
- case "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation":
113
- sDataType = undefined;
114
- break;
115
-
116
- case "com.sap.vocabularies.UI.v1.DataField":
117
- case "com.sap.vocabularies.UI.v1.DataFieldWithNavigationPath":
118
- case "com.sap.vocabularies.UI.v1.DataFieldWithUrl":
119
- case "com.sap.vocabularies.UI.v1.DataFieldWithIntentBasedNavigation":
120
- case "com.sap.vocabularies.UI.v1.DataFieldWithAction":
121
- sDataType = oNavigationContext.getProperty("Value/$Path/$Type");
122
- break;
123
-
124
- case "com.sap.vocabularies.UI.v1.DataFieldForAnnotation":
125
- default:
126
- const sAnnotationPath = oNavigationContext.getProperty("Target/$AnnotationPath");
127
- if (sAnnotationPath) {
128
- if (sAnnotationPath.indexOf("com.sap.vocabularies.Communication.v1.Contact") > -1) {
129
- sDataType = oNavigationContext.getProperty("Target/$AnnotationPath/fn/$Path/$Type");
130
- } else if (sAnnotationPath.indexOf("com.sap.vocabularies.UI.v1.DataPoint") > -1) {
131
- sDataType = oNavigationContext.getProperty("Value/$Path/$Type");
132
- } else {
133
- // e.g. FieldGroup or Chart
134
- sDataType = undefined;
135
- }
136
- } else {
137
- sDataType = undefined;
138
- }
139
- break;
140
- }
141
- }
142
-
143
- return sDataType;
144
- }
145
-
146
- async function waitForContextRequested(bindingContext: V4Context) {
98
+ async function waitForContextRequested(bindingContext: ODataV4Context) {
147
99
  const model = bindingContext.getModel();
148
100
  const metaModel = model.getMetaModel();
149
101
  const entityPath = metaModel.getMetaPath(bindingContext.getPath());
@@ -163,190 +115,8 @@ function fnHasTransientContexts(oListBinding: ODataListBinding) {
163
115
  return bHasTransientContexts;
164
116
  }
165
117
 
166
- function getSearchRestrictions(sFullPath: string, oMetaModelContext: ODataMetaModel) {
167
- let oSearchRestrictions;
168
- let oNavigationSearchRestrictions;
169
- const navigationText = "$NavigationPropertyBinding";
170
- const searchRestrictionsTerm = "@Org.OData.Capabilities.V1.SearchRestrictions";
171
- const entityTypePathParts = sFullPath.replaceAll("%2F", "/").split("/").filter(ModelHelper.filterOutNavPropBinding);
172
- const entitySetPath = ModelHelper.getEntitySetPath(sFullPath, oMetaModelContext);
173
- const entitySetPathParts = entitySetPath.split("/").filter(ModelHelper.filterOutNavPropBinding);
174
- const isContainment = oMetaModelContext.getObject(`/${entityTypePathParts.join("/")}/$ContainsTarget`);
175
- const containmentNavPath = isContainment && entityTypePathParts[entityTypePathParts.length - 1];
176
-
177
- //LEAST PRIORITY - Search restrictions directly at Entity Set
178
- //e.g. FR in "NS.EntityContainer/SalesOrderManage" ContextPath: /SalesOrderManage
179
- if (!isContainment) {
180
- oSearchRestrictions = oMetaModelContext.getObject(`${entitySetPath}${searchRestrictionsTerm}`) as
181
- | MetaModelType<SearchRestrictionsType>
182
- | undefined;
183
- }
184
- if (entityTypePathParts.length > 1) {
185
- const navPath = isContainment ? containmentNavPath : entitySetPathParts[entitySetPathParts.length - 1];
186
- // In case of containment we take entitySet provided as parent. And in case of normal we would remove the last navigation from entitySetPath.
187
- const parentEntitySetPath = isContainment ? entitySetPath : `/${entitySetPathParts.slice(0, -1).join(`/${navigationText}/`)}`;
188
-
189
- //HIGHEST priority - Navigation restrictions
190
- //e.g. Parent "/Customer" with NavigationPropertyPath="Set" ContextPath: Customer/Set
191
- const oNavigationRestrictions = CommonUtils.getNavigationRestrictions(
192
- oMetaModelContext,
193
- parentEntitySetPath,
194
- navPath.replaceAll("%2F", "/")
195
- );
196
- oNavigationSearchRestrictions = oNavigationRestrictions && oNavigationRestrictions["SearchRestrictions"];
197
- }
198
- return oNavigationSearchRestrictions || oSearchRestrictions;
199
- }
200
-
201
- function getNavigationRestrictions(oMetaModelContext: ODataMetaModel, sEntitySetPath: string, sNavigationPath: string) {
202
- const oNavigationRestrictions = oMetaModelContext.getObject(`${sEntitySetPath}@Org.OData.Capabilities.V1.NavigationRestrictions`) as
203
- | MetaModelType<NavigationRestrictionsType>
204
- | undefined;
205
- const aRestrictedProperties = oNavigationRestrictions && oNavigationRestrictions.RestrictedProperties;
206
- return (
207
- aRestrictedProperties &&
208
- aRestrictedProperties.find(function (oRestrictedProperty) {
209
- return (
210
- oRestrictedProperty &&
211
- oRestrictedProperty.NavigationProperty &&
212
- oRestrictedProperty.NavigationProperty.$NavigationPropertyPath === sNavigationPath
213
- );
214
- })
215
- );
216
- }
217
-
218
- function _isInNonFilterableProperties(metamodelContext: ODataMetaModel, sEntitySetPath: string, sContextPath: string) {
219
- let bIsNotFilterable = false;
220
- const oAnnotation = metamodelContext.getObject(`${sEntitySetPath}@Org.OData.Capabilities.V1.FilterRestrictions`) as
221
- | MetaModelType<FilterRestrictionsType>
222
- | undefined;
223
- if (oAnnotation && oAnnotation.NonFilterableProperties) {
224
- bIsNotFilterable = oAnnotation.NonFilterableProperties.some(function (property) {
225
- return (
226
- (property as unknown as ExpandPathType<Edm.NavigationPropertyPath>).$NavigationPropertyPath === sContextPath ||
227
- property.$PropertyPath === sContextPath
228
- );
229
- });
230
- }
231
- return bIsNotFilterable;
232
- }
233
-
234
- function _isCustomAggregate(metamodelContext: ODataMetaModel, sEntitySetPath: string, sContextPath: string) {
235
- let bCustomAggregate = false;
236
- const bApplySupported = metamodelContext?.getObject(sEntitySetPath + "@Org.OData.Aggregation.V1.ApplySupported") ? true : false;
237
- if (bApplySupported) {
238
- const oAnnotations = metamodelContext.getObject(`${sEntitySetPath}@`);
239
- const oCustomAggreggates = metaModelUtil.getAllCustomAggregates(oAnnotations);
240
- const aCustomAggregates = oCustomAggreggates ? Object.keys(oCustomAggreggates) : undefined;
241
- if (aCustomAggregates && aCustomAggregates?.indexOf(sContextPath) > -1) {
242
- bCustomAggregate = true;
243
- }
244
- }
245
- return bCustomAggregate;
246
- }
247
-
248
- // TODO rework this!
249
- function _isContextPathFilterable(oModelContext: ODataMetaModel, sEntitySetPath: string, sContexPath: string) {
250
- const sFullPath = `${sEntitySetPath}/${sContexPath}`,
251
- aESParts = sFullPath.split("/").splice(0, 2),
252
- aContext = sFullPath.split("/").splice(2);
253
- let bIsNotFilterable = false,
254
- sContext = "";
255
-
256
- sEntitySetPath = aESParts.join("/");
257
-
258
- bIsNotFilterable = aContext.some(function (item: string, index: number, array: string[]) {
259
- if (sContext.length > 0) {
260
- sContext += `/${item}`;
261
- } else {
262
- sContext = item;
263
- }
264
- if (index === array.length - 2) {
265
- // In case of "/Customer/Set/Property" this is to check navigation restrictions of "Customer" for non-filterable properties in "Set"
266
- const oNavigationRestrictions = getNavigationRestrictions(oModelContext, sEntitySetPath, item);
267
- const oFilterRestrictions = oNavigationRestrictions && oNavigationRestrictions.FilterRestrictions;
268
- const aNonFilterableProperties = oFilterRestrictions && oFilterRestrictions.NonFilterableProperties;
269
- const sTargetPropertyPath = array[array.length - 1];
270
- if (
271
- aNonFilterableProperties &&
272
- aNonFilterableProperties.find(function (oPropertyPath) {
273
- return oPropertyPath.$PropertyPath === sTargetPropertyPath;
274
- })
275
- ) {
276
- return true;
277
- }
278
- }
279
- if (index === array.length - 1) {
280
- //last path segment
281
- bIsNotFilterable = _isInNonFilterableProperties(oModelContext, sEntitySetPath, sContext);
282
- } else if (oModelContext.getObject(`${sEntitySetPath}/$NavigationPropertyBinding/${item}`)) {
283
- //check existing context path and initialize it
284
- bIsNotFilterable = _isInNonFilterableProperties(oModelContext, sEntitySetPath, sContext);
285
- sContext = "";
286
- //set the new EntitySet
287
- sEntitySetPath = `/${oModelContext.getObject(`${sEntitySetPath}/$NavigationPropertyBinding/${item}`)}`;
288
- }
289
- return bIsNotFilterable === true;
290
- });
291
- return bIsNotFilterable;
292
- }
293
-
294
- // TODO check used places and rework this
295
- function isPropertyFilterable(
296
- metaModelContext: ODataMetaModel,
297
- sEntitySetPath: string,
298
- sProperty: string,
299
- bSkipHiddenFilter?: boolean
300
- ): boolean | CompiledBindingToolkitExpression {
301
- if (typeof sProperty !== "string") {
302
- throw new Error("sProperty parameter must be a string");
303
- }
304
- let bIsFilterable;
118
+ // there is no navigation in entitySet path and property path
305
119
 
306
- // Parameters should be rendered as filterfields
307
- if (metaModelContext.getObject(`${sEntitySetPath}/@com.sap.vocabularies.Common.v1.ResultContext`)?.valueOf() === true) {
308
- return true;
309
- }
310
-
311
- const oNavigationContext = metaModelContext.createBindingContext(`${sEntitySetPath}/${sProperty}`) as Context;
312
-
313
- if (!bSkipHiddenFilter) {
314
- if (
315
- oNavigationContext.getProperty("@com.sap.vocabularies.UI.v1.Hidden") === true ||
316
- oNavigationContext.getProperty("@com.sap.vocabularies.UI.v1.HiddenFilter") === true
317
- ) {
318
- return false;
319
- }
320
- const sHiddenPath = oNavigationContext.getProperty("@com.sap.vocabularies.UI.v1.Hidden/$Path");
321
- const sHiddenFilterPath = oNavigationContext.getProperty("@com.sap.vocabularies.UI.v1.HiddenFilter/$Path");
322
-
323
- if (sHiddenPath && sHiddenFilterPath) {
324
- return compileExpression(not(or(pathInModel(sHiddenPath), pathInModel(sHiddenFilterPath))));
325
- } else if (sHiddenPath) {
326
- return compileExpression(not(pathInModel(sHiddenPath)));
327
- } else if (sHiddenFilterPath) {
328
- return compileExpression(not(pathInModel(sHiddenFilterPath)));
329
- }
330
- }
331
-
332
- // there is no navigation in entitySet path and property path
333
- bIsFilterable =
334
- sEntitySetPath.split("/").length === 2 && sProperty.indexOf("/") < 0
335
- ? !_isInNonFilterableProperties(metaModelContext, sEntitySetPath, sProperty) &&
336
- !_isCustomAggregate(metaModelContext, sEntitySetPath, sProperty)
337
- : !_isContextPathFilterable(metaModelContext, sEntitySetPath, sProperty);
338
- // check if type can be used for filtering
339
- if (bIsFilterable && oNavigationContext) {
340
- const sPropertyDataType = getPropertyDataType(oNavigationContext);
341
- if (sPropertyDataType) {
342
- bIsFilterable = sPropertyDataType ? isTypeFilterable(sPropertyDataType as keyof typeof DefaultTypeForEdmType) : false;
343
- } else {
344
- bIsFilterable = false;
345
- }
346
- }
347
-
348
- return bIsFilterable;
349
- }
350
120
  function getShellServices(oControl: Control | Component): IShellServices {
351
121
  return getAppComponent(oControl).getShellServices();
352
122
  }
@@ -454,6 +224,29 @@ function _getRelatedIntents(
454
224
  }
455
225
  }
456
226
 
227
+ /**
228
+ * @description This function fetches the related intents when semantic object and action are passed from feEnvironment.getIntent() only in case of My Inbox integration
229
+ * @param semanticObjectAndAction This specifies the semantic object and action for fetching the intents
230
+ * @param oBindingContext This sepcifies the binding context for updating related apps
231
+ * @param appComponentSOItems This is a list of semantic items used for updating the related apps button
232
+ * @param aLinks This is an array comprising of related intents
233
+ */
234
+
235
+ function _getRelatedIntentsWithSemanticObjectsAndAction(
236
+ semanticObjectAndAction: MyInboxIntent,
237
+ oBindingContext: Context,
238
+ appComponentSOItems: SemanticItem[],
239
+ aLinks: LinkDefinition[]
240
+ ) {
241
+ if (aLinks.length > 0) {
242
+ const actions = [semanticObjectAndAction.action];
243
+ const excludedActions: [] = [];
244
+ const soMappings: [] = [];
245
+ const targetParams = { navigationContexts: oBindingContext, semanticObjectMapping: soMappings };
246
+ _getRelatedAppsMenuItems(aLinks, excludedActions, targetParams, appComponentSOItems, actions);
247
+ }
248
+ }
249
+
457
250
  type SemanticObjectConfig = {
458
251
  additionalSemanticObjects: Record<string, SemanticObject>;
459
252
  };
@@ -468,7 +261,8 @@ async function updateRelateAppsModel(
468
261
  oObjectPageLayout: ObjectPageLayout,
469
262
  aSemKeys: { $PropertyPath: string }[],
470
263
  oMetaModel: ODataMetaModel,
471
- oMetaPath: string
264
+ oMetaPath: string,
265
+ appComponent: AppComponent
472
266
  ): Promise<RelatedAppsConfig[]> {
473
267
  const oShellServiceHelper: IShellServices = getShellServices(oObjectPageLayout);
474
268
  const oParam: Record<string, unknown> = {};
@@ -525,6 +319,21 @@ async function updateRelateAppsModel(
525
319
  );
526
320
  }
527
321
  }
322
+
323
+ // appComponentSOItems is updated in case of My Inbox integration when semantic object and action are passed from feEnvironment.getIntent() method
324
+ // In other cases it remains as an empty list
325
+ // We concat this list towards the end with aManifestSOItems
326
+
327
+ const appComponentSOItems: SemanticItem[] = [];
328
+ const componentData: ComponentData = appComponent.getComponentData();
329
+ if (componentData.feEnvironment && componentData.feEnvironment.getIntent()) {
330
+ const intent: MyInboxIntent = componentData.feEnvironment.getIntent();
331
+ semanticObjectIntents = await Promise.resolve(
332
+ _getSOIntents(oShellServiceHelper, oObjectPageLayout, intent.semanticObject, oParam)
333
+ );
334
+ _getRelatedIntentsWithSemanticObjectsAndAction(intent, oBindingContext, appComponentSOItems, semanticObjectIntents);
335
+ }
336
+
528
337
  const internalModelContext = oObjectPageLayout.getBindingContext("internal") as InternalModelContext;
529
338
  const aLinks = await fnGetParseShellHashAndGetLinks();
530
339
  if (aLinks) {
@@ -551,7 +360,7 @@ async function updateRelateAppsModel(
551
360
  _getRelatedAppsMenuItems(aLinks, aExcludedActions, oTargetParams, aAnnotationsSOItems);
552
361
 
553
362
  aManifestSOItems.forEach(function ({ targetSemObject }) {
554
- if (aAnnotationsSOItems[0].targetSemObject === targetSemObject) {
363
+ if (aAnnotationsSOItems[0]?.targetSemObject === targetSemObject) {
555
364
  isSemanticObjectHasSameTargetInManifest = true;
556
365
  }
557
366
  });
@@ -559,15 +368,14 @@ async function updateRelateAppsModel(
559
368
  // remove all actions from current hash application if manifest contains empty allowedActions
560
369
  if (
561
370
  oManifestData.additionalSemanticObjects &&
371
+ aAnnotationsSOItems[0] &&
562
372
  oManifestData.additionalSemanticObjects[aAnnotationsSOItems[0].targetSemObject] &&
563
373
  oManifestData.additionalSemanticObjects[aAnnotationsSOItems[0].targetSemObject].allowedActions?.length === 0
564
374
  ) {
565
375
  isSemanticObjectHasSameTargetInManifest = true;
566
376
  }
567
-
568
- aRelatedAppsMenuItems = isSemanticObjectHasSameTargetInManifest
569
- ? aManifestSOItems
570
- : aManifestSOItems.concat(aAnnotationsSOItems);
377
+ const soItems = aManifestSOItems.concat(appComponentSOItems);
378
+ aRelatedAppsMenuItems = isSemanticObjectHasSameTargetInManifest ? soItems : soItems.concat(aAnnotationsSOItems);
571
379
  // If no app in list, related apps button will be hidden
572
380
  internalModelContext.setProperty("relatedApps/visibility", aRelatedAppsMenuItems.length > 0);
573
381
  internalModelContext.setProperty("relatedApps/items", aRelatedAppsMenuItems);
@@ -621,9 +429,9 @@ function _getSemanticObjectAnnotations(oEntityAnnotations: Record<string, unknow
621
429
  return oSemanticObjectAnnotations;
622
430
  }
623
431
 
624
- function fnUpdateRelatedAppsDetails(oObjectPageLayout: ObjectPageLayout) {
432
+ function fnUpdateRelatedAppsDetails(oObjectPageLayout: ObjectPageLayout, appComponent: AppComponent) {
625
433
  const oMetaModel = oObjectPageLayout.getModel().getMetaModel() as ODataMetaModel;
626
- const oBindingContext = oObjectPageLayout.getBindingContext() as V4Context;
434
+ const oBindingContext = oObjectPageLayout.getBindingContext() as ODataV4Context;
627
435
  const path = (oBindingContext && oBindingContext.getPath()) || "";
628
436
  const oMetaPath = oMetaModel.getMetaPath(path);
629
437
  // Semantic Key Vocabulary
@@ -636,13 +444,21 @@ function fnUpdateRelatedAppsDetails(oObjectPageLayout: ObjectPageLayout) {
636
444
  oBindingContext
637
445
  .requestObject()
638
446
  .then(async function (requestedObject: Record<string, unknown> | undefined) {
639
- return updateRelateAppsModel(oBindingContext, requestedObject, oObjectPageLayout, aSemKeys, oMetaModel, oMetaPath);
447
+ return CommonUtils.updateRelateAppsModel(
448
+ oBindingContext,
449
+ requestedObject,
450
+ oObjectPageLayout,
451
+ aSemKeys,
452
+ oMetaModel,
453
+ oMetaPath,
454
+ appComponent
455
+ );
640
456
  })
641
457
  .catch(function (oError: unknown) {
642
458
  Log.error("Cannot update the related app details", oError as string);
643
459
  });
644
460
  } else {
645
- return updateRelateAppsModel(oBindingContext, oEntry, oObjectPageLayout, aSemKeys, oMetaModel, oMetaPath);
461
+ return CommonUtils.updateRelateAppsModel(oBindingContext, oEntry, oObjectPageLayout, aSemKeys, oMetaModel, oMetaPath, appComponent);
646
462
  }
647
463
  }
648
464
 
@@ -726,7 +542,7 @@ type UnknownODataObject = {
726
542
  function removeSensitiveData(aAttributes: UnknownODataObject[], oMetaModel: ODataMetaModel) {
727
543
  const aOutAttributes = [];
728
544
  for (let i = 0; i < aAttributes.length; i++) {
729
- const sEntitySet = aAttributes[i].entitySet,
545
+ const sEntitySet = aAttributes[i].entitySet!,
730
546
  oAttribute = aAttributes[i].contextData;
731
547
 
732
548
  delete oAttribute["@odata.context"];
@@ -860,6 +676,7 @@ function fnUpdateDataFieldForIBNButtonsVisibility(aIBNActions: Control[], oView:
860
676
  }
861
677
  );
862
678
  }
679
+ return;
863
680
  })
864
681
  .catch(function (oError: unknown) {
865
682
  Log.error("Cannot retrieve the links from the shell service", oError as string);
@@ -881,49 +698,8 @@ function fnUpdateDataFieldForIBNButtonsVisibility(aIBNActions: Control[], oView:
881
698
  }
882
699
  }
883
700
 
884
- function getTranslatedText(sFrameworkKey: string, oResourceBundle: ResourceBundle, parameters?: unknown[], sEntitySetName?: string) {
885
- let sResourceKey = sFrameworkKey;
886
- if (oResourceBundle) {
887
- if (sEntitySetName) {
888
- // There are console errors logged when making calls to getText for keys that are not defined in the resource bundle
889
- // for instance keys which are supposed to be provided by the application, e.g, <key>|<entitySet> to override instance specific text
890
- // hence check if text exists (using "hasText") in the resource bundle before calling "getText"
891
-
892
- // "hasText" only checks for the key in the immediate resource bundle and not it's custom bundles
893
- // hence we need to do this recurrsively to check if the key exists in any of the bundles the forms the FE resource bundle
894
- const bResourceKeyExists = checkIfResourceKeyExists(
895
- (oResourceBundle as InternalResourceBundle).aCustomBundles,
896
- `${sFrameworkKey}|${sEntitySetName}`
897
- );
898
-
899
- // if resource key with entity set name for instance specific text overriding is provided by the application
900
- // then use the same key otherwise use the Framework key
901
- sResourceKey = bResourceKeyExists ? `${sFrameworkKey}|${sEntitySetName}` : sFrameworkKey;
902
- }
903
- return oResourceBundle.getText(sResourceKey, parameters);
904
- }
905
-
906
- // do not allow override so get text from the internal bundle directly
907
- oResourceBundle = Core.getLibraryResourceBundle("sap.fe.core");
908
- return oResourceBundle.getText(sResourceKey, parameters);
909
- }
910
-
911
- function checkIfResourceKeyExists(aCustomBundles: InternalResourceBundle[], sKey: string) {
912
- if (aCustomBundles.length) {
913
- for (let i = aCustomBundles.length - 1; i >= 0; i--) {
914
- const sValue = aCustomBundles[i].hasText(sKey);
915
- // text found return true
916
- if (sValue) {
917
- return true;
918
- }
919
- checkIfResourceKeyExists(aCustomBundles[i].aCustomBundles, sKey);
920
- }
921
- }
922
- return false;
923
- }
924
-
925
- function getActionPath(actionContext: Context, bReturnOnlyPath: boolean, sActionName?: string, bCheckStaticValue?: boolean) {
926
- sActionName = !sActionName ? actionContext.getObject(actionContext.getPath()).toString() : sActionName;
701
+ function getActionPath(actionContext: Context, bReturnOnlyPath: boolean, inActionName?: string, bCheckStaticValue?: boolean) {
702
+ const sActionName: string = !inActionName ? actionContext.getObject(actionContext.getPath()).toString() : inActionName;
927
703
  let sContextPath = actionContext.getPath().split("/@")[0];
928
704
  const sEntityTypeName = (actionContext.getObject(sContextPath) as MetaModelEntityType).$Type;
929
705
  const sEntityName = getEntitySetName(actionContext.getModel() as ODataMetaModel, sEntityTypeName);
@@ -1010,7 +786,7 @@ export type _RequestedProperty = {
1010
786
  sDynamicActionEnabledPath: string;
1011
787
  };
1012
788
  async function requestProperty(
1013
- oSelectedContext: V4Context,
789
+ oSelectedContext: ODataV4Context,
1014
790
  sAction: string,
1015
791
  sProperty: string,
1016
792
  sDynamicActionEnabledPath: string
@@ -1020,13 +796,13 @@ async function requestProperty(
1020
796
  ? requestSingletonProperty(sProperty, oSelectedContext.getModel())
1021
797
  : _requestObject(sAction, oSelectedContext, sProperty);
1022
798
 
1023
- return oPromise.then(async function (vPropertyValue: unknown) {
1024
- return Promise.resolve({
799
+ return oPromise.then(function (vPropertyValue: unknown) {
800
+ return {
1025
801
  vPropertyValue: vPropertyValue,
1026
802
  oSelectedContext: oSelectedContext,
1027
803
  sAction: sAction,
1028
804
  sDynamicActionEnabledPath: sDynamicActionEnabledPath
1029
- });
805
+ };
1030
806
  });
1031
807
  }
1032
808
 
@@ -1051,6 +827,7 @@ async function setContextsBasedOnOperationAvailable(
1051
827
  });
1052
828
  setDynamicActionContexts(oInternalModelContext, aResults[0].sAction, aApplicableContexts, aNotApplicableContexts);
1053
829
  }
830
+ return;
1054
831
  })
1055
832
  .catch(function (oError: unknown) {
1056
833
  Log.trace("Cannot retrieve property value from path", oError as string);
@@ -1331,7 +1108,7 @@ function addSelectOptionsToConditions(
1331
1108
  aValidOperators: string[],
1332
1109
  aSemanticDateOperators: string[] = [];
1333
1110
 
1334
- if (isParameter || CommonUtils.isPropertyFilterable(metaModelContext, sContextPath, sConditionProp, true)) {
1111
+ if (isParameter || MetaModelFunction.isPropertyFilterable(metaModelContext, sContextPath, sConditionProp, true)) {
1335
1112
  const oPropertyMetadata = oValidProperties[sConditionProp];
1336
1113
  aSelectOptions = oSelectionVariant.getSelectOption(sSelectOptionProp) as SelectOption[];
1337
1114
  const settings = getFilterConfigurationSetting(oViewData, sConditionProp);
@@ -1833,156 +1610,6 @@ function addDefaultDisplayCurrency(
1833
1610
  }
1834
1611
  }
1835
1612
 
1836
- function getNonComputedVisibleFields(metaModelContext: ODataMetaModel, sPath: string, oView?: View) {
1837
- const aTechnicalKeys = metaModelContext.getObject(`${sPath}/`).$Key;
1838
- const aNonComputedVisibleFields: unknown[] = [];
1839
- const aImmutableVisibleFields: unknown[] = [];
1840
- const oEntityType = metaModelContext.getObject(`${sPath}/`);
1841
- for (const item in oEntityType) {
1842
- if (oEntityType[item].$kind && oEntityType[item].$kind === "Property") {
1843
- const oAnnotations = (metaModelContext.getObject(`${sPath}/${item}@`) || {}) as Record<string, unknown>,
1844
- bIsKey = aTechnicalKeys.indexOf(item) > -1,
1845
- bIsImmutable = oAnnotations["@Org.OData.Core.V1.Immutable"],
1846
- bIsNonComputed = !oAnnotations["@Org.OData.Core.V1.Computed"],
1847
- bIsVisible = !oAnnotations["@com.sap.vocabularies.UI.v1.Hidden"],
1848
- bIsComputedDefaultValue = oAnnotations["@Org.OData.Core.V1.ComputedDefaultValue"],
1849
- bIsKeyComputedDefaultValueWithText =
1850
- bIsKey && oEntityType[item].$Type === "Edm.Guid"
1851
- ? bIsComputedDefaultValue && oAnnotations["@com.sap.vocabularies.Common.v1.Text"]
1852
- : false;
1853
- if (
1854
- (bIsKeyComputedDefaultValueWithText || (bIsKey && oEntityType[item].$Type !== "Edm.Guid")) &&
1855
- bIsNonComputed &&
1856
- bIsVisible
1857
- ) {
1858
- aNonComputedVisibleFields.push(item);
1859
- } else if (bIsImmutable && bIsNonComputed && bIsVisible) {
1860
- aImmutableVisibleFields.push(item);
1861
- }
1862
-
1863
- if (!bIsNonComputed && bIsComputedDefaultValue && oView) {
1864
- const oDiagnostics = getAppComponent(oView).getDiagnostics();
1865
- const sMessage = "Core.ComputedDefaultValue is ignored as Core.Computed is already set to true";
1866
- oDiagnostics.addIssue(
1867
- IssueCategory.Annotation,
1868
- IssueSeverity.Medium,
1869
- sMessage,
1870
- IssueCategoryType,
1871
- IssueCategoryType?.Annotations?.IgnoredAnnotation
1872
- );
1873
- }
1874
- }
1875
- }
1876
- const aRequiredProperties = CommonUtils.getRequiredPropertiesFromInsertRestrictions(sPath, metaModelContext);
1877
- if (aRequiredProperties.length) {
1878
- aRequiredProperties.forEach(function (sProperty: string) {
1879
- const oAnnotations = metaModelContext.getObject(`${sPath}/${sProperty}@`) as Record<string, unknown>,
1880
- bIsVisible = !oAnnotations || !oAnnotations["@com.sap.vocabularies.UI.v1.Hidden"];
1881
- if (bIsVisible && aNonComputedVisibleFields.indexOf(sProperty) === -1 && aImmutableVisibleFields.indexOf(sProperty) === -1) {
1882
- aNonComputedVisibleFields.push(sProperty);
1883
- }
1884
- });
1885
- }
1886
- return aNonComputedVisibleFields.concat(aImmutableVisibleFields);
1887
- }
1888
-
1889
- function getRequiredProperties(sPath: string, metaModelContext: ODataMetaModel, bCheckUpdateRestrictions = false) {
1890
- const aRequiredProperties: string[] = [];
1891
- let aRequiredPropertiesWithPaths: { $PropertyPath: string }[] = [];
1892
- const navigationText = "$NavigationPropertyBinding";
1893
- let oEntitySetAnnotations;
1894
- if (sPath.endsWith("$")) {
1895
- // if sPath comes with a $ in the end, removing it as it is of no significance
1896
- sPath = sPath.replace("/$", "");
1897
- }
1898
- const entityTypePathParts = sPath.replaceAll("%2F", "/").split("/").filter(ModelHelper.filterOutNavPropBinding);
1899
- const entitySetPath = ModelHelper.getEntitySetPath(sPath, metaModelContext);
1900
- const entitySetPathParts = entitySetPath.split("/").filter(ModelHelper.filterOutNavPropBinding);
1901
- const isContainment = metaModelContext.getObject(`/${entityTypePathParts.join("/")}/$ContainsTarget`);
1902
- const containmentNavPath = isContainment && entityTypePathParts[entityTypePathParts.length - 1];
1903
-
1904
- //Restrictions directly at Entity Set
1905
- //e.g. FR in "NS.EntityContainer/SalesOrderManage" ContextPath: /SalesOrderManage
1906
- if (!isContainment) {
1907
- oEntitySetAnnotations = metaModelContext.getObject(`${entitySetPath}@`);
1908
- }
1909
- if (entityTypePathParts.length > 1) {
1910
- const navPath = isContainment ? containmentNavPath : entitySetPathParts[entitySetPathParts.length - 1];
1911
- const parentEntitySetPath = isContainment ? entitySetPath : `/${entitySetPathParts.slice(0, -1).join(`/${navigationText}/`)}`;
1912
- //Navigation restrictions
1913
- //e.g. Parent "/Customer" with NavigationPropertyPath="Set" ContextPath: Customer/Set
1914
- const oNavRest = CommonUtils.getNavigationRestrictions(metaModelContext, parentEntitySetPath, navPath.replaceAll("%2F", "/"));
1915
-
1916
- if (oNavRest !== undefined && CommonUtils.hasRestrictedPropertiesInAnnotations(oNavRest, true, bCheckUpdateRestrictions)) {
1917
- aRequiredPropertiesWithPaths = bCheckUpdateRestrictions
1918
- ? oNavRest["UpdateRestrictions"]!.RequiredProperties || []
1919
- : oNavRest["InsertRestrictions"]!.RequiredProperties || [];
1920
- }
1921
- if (
1922
- (!aRequiredPropertiesWithPaths || !aRequiredPropertiesWithPaths.length) &&
1923
- CommonUtils.hasRestrictedPropertiesInAnnotations(oEntitySetAnnotations, false, bCheckUpdateRestrictions)
1924
- ) {
1925
- aRequiredPropertiesWithPaths = CommonUtils.getRequiredPropertiesFromAnnotations(
1926
- oEntitySetAnnotations,
1927
- bCheckUpdateRestrictions
1928
- );
1929
- }
1930
- } else if (CommonUtils.hasRestrictedPropertiesInAnnotations(oEntitySetAnnotations, false, bCheckUpdateRestrictions)) {
1931
- aRequiredPropertiesWithPaths = CommonUtils.getRequiredPropertiesFromAnnotations(oEntitySetAnnotations, bCheckUpdateRestrictions);
1932
- }
1933
- aRequiredPropertiesWithPaths.forEach(function (oRequiredProperty) {
1934
- const sProperty = oRequiredProperty.$PropertyPath;
1935
- aRequiredProperties.push(sProperty);
1936
- });
1937
- return aRequiredProperties;
1938
- }
1939
-
1940
- function getRequiredPropertiesFromInsertRestrictions(sPath: string, oMetaModelContext: ODataMetaModel) {
1941
- return CommonUtils.getRequiredProperties(sPath, oMetaModelContext);
1942
- }
1943
-
1944
- function getRequiredPropertiesFromUpdateRestrictions(sPath: string, oMetaModelContext: ODataMetaModel) {
1945
- return CommonUtils.getRequiredProperties(sPath, oMetaModelContext, true);
1946
- }
1947
-
1948
- function getRequiredPropertiesFromAnnotations(oAnnotations: MetaModelEntitySetAnnotation, bCheckUpdateRestrictions = false) {
1949
- if (bCheckUpdateRestrictions) {
1950
- return oAnnotations["@Org.OData.Capabilities.V1.UpdateRestrictions"]?.RequiredProperties || [];
1951
- }
1952
- return oAnnotations["@Org.OData.Capabilities.V1.InsertRestrictions"]?.RequiredProperties || [];
1953
- }
1954
-
1955
- function hasRestrictedPropertiesInAnnotations(
1956
- oAnnotations: MetaModelType<NavigationPropertyRestrictionTypes> | MetaModelEntitySetAnnotation | undefined,
1957
- bIsNavigationRestrictions = false,
1958
- bCheckUpdateRestrictions = false
1959
- ) {
1960
- if (bIsNavigationRestrictions) {
1961
- const oNavAnnotations = oAnnotations as MetaModelType<NavigationPropertyRestrictionTypes>;
1962
- if (bCheckUpdateRestrictions) {
1963
- return oNavAnnotations && oNavAnnotations["UpdateRestrictions"] && oNavAnnotations["UpdateRestrictions"].RequiredProperties
1964
- ? true
1965
- : false;
1966
- }
1967
- return oNavAnnotations && oNavAnnotations["InsertRestrictions"] && oNavAnnotations["InsertRestrictions"].RequiredProperties
1968
- ? true
1969
- : false;
1970
- } else if (bCheckUpdateRestrictions) {
1971
- const oEntityAnnotation = oAnnotations as MetaModelEntitySetAnnotation;
1972
- return oEntityAnnotation &&
1973
- oEntityAnnotation["@Org.OData.Capabilities.V1.UpdateRestrictions"] &&
1974
- oEntityAnnotation["@Org.OData.Capabilities.V1.UpdateRestrictions"].RequiredProperties
1975
- ? true
1976
- : false;
1977
- }
1978
- const oEntityAnnotation = oAnnotations as MetaModelEntitySetAnnotation;
1979
- return oEntityAnnotation &&
1980
- oEntityAnnotation["@Org.OData.Capabilities.V1.InsertRestrictions"] &&
1981
- oEntityAnnotation["@Org.OData.Capabilities.V1.InsertRestrictions"].RequiredProperties
1982
- ? true
1983
- : false;
1984
- }
1985
-
1986
1613
  type UserDefaultParameter = {
1987
1614
  $Name: string;
1988
1615
  getPath?(): string;
@@ -2030,8 +1657,7 @@ async function setUserDefaults(
2030
1657
  } else if (oStartupParameters[sParameterName]) {
2031
1658
  oModel.setProperty(sPropertyName, oStartupParameters[sParameterName][0]);
2032
1659
  } else if (aExtendedParameters.length > 0) {
2033
- for (const i in aExtendedParameters) {
2034
- const oExtendedParameter = aExtendedParameters[i];
1660
+ for (const oExtendedParameter of aExtendedParameters) {
2035
1661
  if (oExtendedParameter.PropertyName === sParameterName) {
2036
1662
  const oRange = oExtendedParameter.Ranges.length
2037
1663
  ? oExtendedParameter.Ranges[oExtendedParameter.Ranges.length - 1]
@@ -2298,6 +1924,7 @@ async function fnUpdateSemanticTargetsModel(
2298
1924
  );
2299
1925
  return oFinalSemanticObjects;
2300
1926
  }
1927
+ return;
2301
1928
  })
2302
1929
  .catch(function (oError: unknown) {
2303
1930
  Log.error("fnUpdateSemanticTargetsModel: Cannot read links", oError as string);
@@ -2355,9 +1982,9 @@ function fnGetSemanticTargetsFromPageModel(oController: PageController, sPageMod
2355
1982
  return list;
2356
1983
  }
2357
1984
  if (obj instanceof Array) {
2358
- for (const i in obj) {
2359
- list = list.concat(_fnfindValuesHelper(obj[i], key, []));
2360
- }
1985
+ obj.forEach((item) => {
1986
+ list = list.concat(_fnfindValuesHelper(item, key, []));
1987
+ });
2361
1988
  return list;
2362
1989
  }
2363
1990
  if (obj[key]) {
@@ -2530,7 +2157,7 @@ function getFilterRestrictionsByPath(entityPath: string, oContext: ODataMetaMode
2530
2157
  const entitySetPath = ModelHelper.getEntitySetPath(entityPath, oContext);
2531
2158
  const entitySetPathParts = entitySetPath.split("/").filter(ModelHelper.filterOutNavPropBinding);
2532
2159
  const isContainment = oContext.getObject(`${entityTypePath}$ContainsTarget`);
2533
- const containmentNavPath = isContainment && entityTypePathParts[entityTypePathParts.length - 1];
2160
+ const containmentNavPath = !!isContainment && entityTypePathParts[entityTypePathParts.length - 1];
2534
2161
 
2535
2162
  //LEAST PRIORITY - Filter restrictions directly at Entity Set
2536
2163
  //e.g. FR in "NS.EntityContainer/SalesOrderManage" ContextPath: /SalesOrderManage
@@ -2546,7 +2173,7 @@ function getFilterRestrictionsByPath(entityPath: string, oContext: ODataMetaMode
2546
2173
  }
2547
2174
 
2548
2175
  if (entityTypePathParts.length > 1) {
2549
- const navPath = isContainment ? containmentNavPath : entitySetPathParts[entitySetPathParts.length - 1];
2176
+ const navPath = isContainment ? (containmentNavPath as string) : entitySetPathParts[entitySetPathParts.length - 1];
2550
2177
  // In case of containment we take entitySet provided as parent. And in case of normal we would remove the last navigation from entitySetPath.
2551
2178
  const parentEntitySetPath = isContainment ? entitySetPath : `/${entitySetPathParts.slice(0, -1).join(`/${navigationText}/`)}`;
2552
2179
  //THIRD HIGHEST PRIORITY - Reading property path restrictions - Annotation at main entity but directly on navigation property path
@@ -2591,7 +2218,7 @@ function getFilterRestrictionsByPath(entityPath: string, oContext: ODataMetaMode
2591
2218
 
2592
2219
  //SECOND HIGHEST priority - Navigation restrictions
2593
2220
  //e.g. Parent "/Customer" with NavigationPropertyPath="Set" ContextPath: Customer/Set
2594
- const oNavRestrictions = CommonUtils.getNavigationRestrictions(oContext, parentEntitySetPath, navPath.replaceAll("%2F", "/"));
2221
+ const oNavRestrictions = MetaModelFunction.getNavigationRestrictions(oContext, parentEntitySetPath, navPath.replaceAll("%2F", "/"));
2595
2222
  const oNavFilterRest = oNavRestrictions && (oNavRestrictions["FilterRestrictions"] as MetaModelType<FilterRestrictionsType>);
2596
2223
  const navResReqProps = getFilterRestrictions(oNavFilterRest, "RequiredProperties") || [];
2597
2224
  oRet.RequiredProperties = uniqueSort(oRet.RequiredProperties.concat(navResReqProps));
@@ -2660,7 +2287,7 @@ async function templateControlFragment(
2660
2287
  .then(async function (oFragment: Element): Promise<Element | Control | Control[]> {
2661
2288
  const oControl = oFragment.firstElementChild;
2662
2289
  if (!!oOptions.isXML && oControl) {
2663
- return Promise.resolve(oControl);
2290
+ return oControl;
2664
2291
  }
2665
2292
  return Fragment.load({
2666
2293
  id: oOptions.id,
@@ -2673,7 +2300,7 @@ async function templateControlFragment(
2673
2300
 
2674
2301
  function getSingletonPath(path: string, metaModel: ODataMetaModel): string | undefined {
2675
2302
  const parts = path.split("/").filter(Boolean),
2676
- propertyName = parts.pop(),
2303
+ propertyName = parts.pop()!,
2677
2304
  navigationPath = parts.join("/"),
2678
2305
  entitySet = navigationPath && metaModel.getObject(`/${navigationPath}`);
2679
2306
  if (entitySet?.$kind === "Singleton") {
@@ -2722,6 +2349,7 @@ function addEventToBindingInfo(oControl: Control, sEventName: string, fHandler:
2722
2349
  .then(function () {
2723
2350
  oBindingInfo = oControl.getControlDelegate()._getChart(oControl).getBindingInfo("data");
2724
2351
  setBindingInfo();
2352
+ return;
2725
2353
  })
2726
2354
  .catch(function (sError: unknown) {
2727
2355
  Log.error(sError as string);
@@ -2786,14 +2414,118 @@ function _fntranslatedTextFromExpBindingString(expBinding: string, control: Cont
2786
2414
  function isSmallDevice() {
2787
2415
  return !system.desktop || Device.resize.width <= 320;
2788
2416
  }
2417
+ /**
2418
+ * Get filter information for a SelectionVariant annotation.
2419
+ *
2420
+ * @param oControl The table/chart instance
2421
+ * @param selectionVariantPath Relative SelectionVariant annotation path
2422
+ * @param isChart
2423
+ * @returns Information on filters
2424
+ * filters: array of sap.ui.model.filters
2425
+ * text: Text property of the SelectionVariant
2426
+ * @private
2427
+ * @ui5-restricted
2428
+ */
2429
+ interface ISelectionOption {
2430
+ PropertyName: { $PropertyPath: string };
2431
+ Ranges: {
2432
+ [key: string]: {
2433
+ Option: { $EnumMember: String };
2434
+ Low: unknown;
2435
+ High: unknown;
2436
+ };
2437
+ };
2438
+ }
2439
+ function getFiltersInfoForSV(oControl: Control | MDCChart | MDCTable, selectionVariantPath: string, isChart?: boolean) {
2440
+ const sEntityTypePath = oControl.data("entityType"),
2441
+ oMetaModel = CommonUtils.getAppComponent(oControl as Control).getMetaModel(),
2442
+ mPropertyFilters: Record<string, Filter[]> = {},
2443
+ aFilters = [],
2444
+ aPaths: string[] = [];
2445
+ let sText = "";
2446
+ let oSelectionVariant = oMetaModel.getObject(`${sEntityTypePath}${selectionVariantPath}`);
2447
+ // for chart the structure varies hence read it from main object
2448
+ if (isChart) {
2449
+ oSelectionVariant = oSelectionVariant.SelectionVariant;
2450
+ }
2451
+ if (oSelectionVariant) {
2452
+ sText = oSelectionVariant.Text;
2453
+ (oSelectionVariant.SelectOptions || [])
2454
+ .filter(function (oSelectOption: ISelectionOption) {
2455
+ return oSelectOption && oSelectOption.PropertyName && oSelectOption.PropertyName.$PropertyPath;
2456
+ })
2457
+ .forEach(function (oSelectOption: ISelectionOption) {
2458
+ const sPath = oSelectOption.PropertyName.$PropertyPath;
2459
+ if (!aPaths.includes(sPath)) {
2460
+ aPaths.push(sPath);
2461
+ }
2462
+ for (const j in oSelectOption.Ranges) {
2463
+ const oRange = oSelectOption.Ranges[j];
2464
+ mPropertyFilters[sPath] = (mPropertyFilters[sPath] || []).concat(
2465
+ new Filter(sPath, oRange.Option?.$EnumMember?.split("/").pop() as undefined, oRange.Low, oRange.High)
2466
+ );
2467
+ }
2468
+ });
2469
+
2470
+ for (const sPropertyPath in mPropertyFilters) {
2471
+ aFilters.push(
2472
+ new Filter({
2473
+ filters: mPropertyFilters[sPropertyPath],
2474
+ and: false
2475
+ })
2476
+ );
2477
+ }
2478
+ }
2479
+
2480
+ return {
2481
+ properties: aPaths,
2482
+ filters: aFilters,
2483
+ text: sText
2484
+ };
2485
+ }
2789
2486
 
2790
2487
  function getConverterContextForPath(sMetaPath: string, oMetaModel: ODataMetaModel, sEntitySet: string, oDiagnostics: Diagnostics) {
2791
2488
  const oContext = oMetaModel.createBindingContext(sMetaPath) as ODataV4Context;
2792
2489
  return ConverterContext?.createConverterContextForMacro(sEntitySet, oContext || oMetaModel, oDiagnostics, mergeObjects, undefined);
2793
2490
  }
2794
2491
 
2492
+ /**
2493
+ * This function returns an ID which should be used in the internal chart for the measure or dimension.
2494
+ * For standard cases, this is just the ID of the property.
2495
+ * If it is necessary to use another ID internally inside the chart (e.g. on duplicate property IDs) this method can be overwritten.
2496
+ * In this case, <code>getPropertyFromNameAndKind</code> needs to be overwritten as well.
2497
+ *
2498
+ * @param name ID of the property
2499
+ * @param kind Type of the property (measure or dimension)
2500
+ * @returns Internal ID for the sap.chart.Chart
2501
+ * @private
2502
+ * @ui5-restricted
2503
+ */
2504
+ function getInternalChartNameFromPropertyNameAndKind(name: string, kind: string) {
2505
+ return name.replace("_fe_" + kind + "_", "");
2506
+ }
2507
+
2508
+ /**
2509
+ * This function returns an array of chart properties by remvoing _fe_groupable prefix.
2510
+ *
2511
+ * @param {Array} aFilters Chart filter properties
2512
+ * @returns Chart properties without prefixes
2513
+ * @private
2514
+ * @ui5-restricted
2515
+ */
2516
+ interface IFilterProp {
2517
+ sPath: string;
2518
+ }
2519
+ function getChartPropertiesWithoutPrefixes(aFilters: IFilterProp[]) {
2520
+ aFilters.forEach((element: IFilterProp) => {
2521
+ if (element.sPath && element.sPath.includes("fe_groupable")) {
2522
+ element.sPath = CommonUtils.getInternalChartNameFromPropertyNameAndKind(element.sPath, "groupable");
2523
+ }
2524
+ });
2525
+ return aFilters;
2526
+ }
2527
+
2795
2528
  const CommonUtils = {
2796
- isPropertyFilterable: isPropertyFilterable,
2797
2529
  isFieldControlPathInapplicable: isFieldControlPathInapplicable,
2798
2530
  removeSensitiveData: removeSensitiveData,
2799
2531
  fireButtonPress: fnFireButtonPress,
@@ -2807,7 +2539,6 @@ const CommonUtils = {
2807
2539
  getContextPathProperties: fnGetContextPathProperties,
2808
2540
  getParameterInfo: getParameterInfo,
2809
2541
  updateDataFieldForIBNButtonsVisibility: fnUpdateDataFieldForIBNButtonsVisibility,
2810
- getTranslatedText: getTranslatedText,
2811
2542
  getEntitySetName: getEntitySetName,
2812
2543
  getActionPath: getActionPath,
2813
2544
  computeDisplayMode: computeDisplayMode,
@@ -2819,7 +2550,6 @@ const CommonUtils = {
2819
2550
  addExternalStateFiltersToSelectionVariant: addExternalStateFiltersToSelectionVariant,
2820
2551
  addPageContextToSelectionVariant: addPageContextToSelectionVariant,
2821
2552
  addDefaultDisplayCurrency: addDefaultDisplayCurrency,
2822
- getNonComputedVisibleFields: getNonComputedVisibleFields,
2823
2553
  setUserDefaults: setUserDefaults,
2824
2554
  getShellServices: getShellServices,
2825
2555
  getHash: getHash,
@@ -2831,10 +2561,7 @@ const CommonUtils = {
2831
2561
  getSemanticTargetsFromPageModel: fnGetSemanticTargetsFromPageModel,
2832
2562
  getSemanticObjectsFromPath: fnGetSemanticObjectsFromPath,
2833
2563
  updateSemanticTargets: fnUpdateSemanticTargetsModel,
2834
- getPropertyDataType: getPropertyDataType,
2835
2564
  waitForContextRequested: waitForContextRequested,
2836
- getNavigationRestrictions: getNavigationRestrictions,
2837
- getSearchRestrictions: getSearchRestrictions,
2838
2565
  getFilterRestrictionsByPath: getFilterRestrictionsByPath,
2839
2566
  getSpecificAllowedExpression: getSpecificAllowedExpression,
2840
2567
  getAdditionalParamsForCreate: getAdditionalParamsForCreate,
@@ -2849,12 +2576,6 @@ const CommonUtils = {
2849
2576
  AllowedExpressionsPrio: ["SingleValue", "MultiValue", "SingleRange", "MultiRange", "SearchExpression", "MultiRangeOrSearchExpression"],
2850
2577
  normalizeSearchTerm: normalizeSearchTerm,
2851
2578
  getSingletonPath: getSingletonPath,
2852
- getRequiredPropertiesFromUpdateRestrictions: getRequiredPropertiesFromUpdateRestrictions,
2853
- getRequiredPropertiesFromInsertRestrictions: getRequiredPropertiesFromInsertRestrictions,
2854
- hasRestrictedPropertiesInAnnotations: hasRestrictedPropertiesInAnnotations,
2855
- getRequiredPropertiesFromAnnotations: getRequiredPropertiesFromAnnotations,
2856
- getRequiredProperties: getRequiredProperties,
2857
- checkIfResourceKeyExists: checkIfResourceKeyExists,
2858
2579
  setContextsBasedOnOperationAvailable: setContextsBasedOnOperationAvailable,
2859
2580
  setDynamicActionContexts: setDynamicActionContexts,
2860
2581
  requestProperty: requestProperty,
@@ -2866,7 +2587,9 @@ const CommonUtils = {
2866
2587
  createSemanticDatesFromConditions: createSemanticDatesFromConditions,
2867
2588
  updateRelateAppsModel: updateRelateAppsModel,
2868
2589
  getSemanticObjectAnnotations: _getSemanticObjectAnnotations,
2869
- isCustomAggregate: _isCustomAggregate,
2590
+ getFiltersInfoForSV: getFiltersInfoForSV,
2591
+ getInternalChartNameFromPropertyNameAndKind: getInternalChartNameFromPropertyNameAndKind,
2592
+ getChartPropertiesWithoutPrefixes: getChartPropertiesWithoutPrefixes,
2870
2593
  isSmallDevice,
2871
2594
  getConverterContextForPath
2872
2595
  };