@sapui5/sap.fe.core 1.111.1 → 1.113.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 (579) 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 +6 -5
  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 +12 -11
  7. package/src/sap/fe/core/AppComponent-dbg.js +35 -9
  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 +66 -9
  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 +202 -533
  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 +260 -681
  21. package/src/sap/fe/core/ExtensionAPI-dbg.js +4 -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 +11 -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 +164 -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 +170 -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 +142 -0
  49. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +913 -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} +313 -373
  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 +183 -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 +936 -231
  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 +1023 -255
  69. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +48 -98
  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 +95 -129
  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 +3 -5
  87. package/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  88. package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -1
  89. package/src/sap/fe/core/controllerextensions/PageReady.ts +26 -4
  90. package/src/sap/fe/core/controllerextensions/Paginator-dbg.js +2 -1
  91. package/src/sap/fe/core/controllerextensions/Paginator.js.map +1 -1
  92. package/src/sap/fe/core/controllerextensions/Paginator.ts +7 -0
  93. package/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +1 -1
  94. package/src/sap/fe/core/controllerextensions/Placeholder.ts +8 -0
  95. package/src/sap/fe/core/controllerextensions/Share-dbg.js +8 -1
  96. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  97. package/src/sap/fe/core/controllerextensions/Share.ts +11 -0
  98. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +14 -13
  99. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  100. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  101. package/src/sap/fe/core/controllerextensions/SideEffects.ts +27 -27
  102. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +17 -8
  103. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  104. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  105. package/src/sap/fe/core/controllerextensions/ViewState.ts +35 -14
  106. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase-dbg.js +6 -5
  107. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
  108. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js.map +1 -1
  109. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +7 -4
  110. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +285 -82
  111. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  112. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  113. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +326 -89
  114. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +23 -2
  115. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  116. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  117. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +32 -3
  118. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +4 -4
  119. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +1 -1
  120. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  121. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +4 -5
  122. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +17 -3
  123. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block-dbg.js +65 -34
  124. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +1 -1
  125. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js.map +1 -1
  126. package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +33 -18
  127. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +103 -0
  128. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +6 -0
  129. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -0
  130. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +124 -0
  131. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +78 -149
  132. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  133. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  134. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +85 -160
  135. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +49 -49
  136. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  137. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  138. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +52 -63
  139. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  140. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +82 -0
  141. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +6 -0
  142. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -0
  143. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +123 -0
  144. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +1508 -0
  145. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +6 -0
  146. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -0
  147. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +1993 -0
  148. package/src/sap/fe/core/controllerextensions/editFlow/operations-dbg.js +3 -1415
  149. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1 -1
  150. package/src/sap/fe/core/controllerextensions/editFlow/operations.js.map +1 -1
  151. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +2 -1921
  152. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +10 -18
  153. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  154. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  155. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +9 -22
  156. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +53 -47
  157. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  158. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  159. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +55 -61
  160. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher-dbg.js +12 -1
  161. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js.map +1 -1
  162. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +19 -0
  163. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +78 -13
  164. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  165. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  166. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +100 -13
  167. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -1
  168. package/src/sap/fe/core/controls/CommandExecution-dbg.js +16 -5
  169. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  170. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  171. package/src/sap/fe/core/controls/CommandExecution.ts +15 -3
  172. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +3 -2
  173. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
  174. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +1 -1
  175. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +4 -1
  176. package/src/sap/fe/core/controls/FilterBar-dbg.js +1 -1
  177. package/src/sap/fe/core/controls/FilterBar.ts +5 -0
  178. package/src/sap/fe/core/controls/FormElementWrapper-dbg.js +1 -1
  179. package/src/sap/fe/core/controls/FormElementWrapper.ts +3 -0
  180. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +1 -1
  181. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +7 -0
  182. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +1 -1
  183. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +4 -0
  184. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +1 -1
  185. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +10 -0
  186. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +4 -3
  187. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  188. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  189. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -2
  190. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +0 -1
  191. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -0
  192. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +6 -1
  193. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
  194. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
  195. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +5 -0
  196. package/src/sap/fe/core/converters/ConverterContext-dbg.js +3 -5
  197. package/src/sap/fe/core/converters/ConverterContext.js +1 -1
  198. package/src/sap/fe/core/converters/ConverterContext.js.map +1 -1
  199. package/src/sap/fe/core/converters/ConverterContext.ts +4 -6
  200. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -8
  201. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  202. package/src/sap/fe/core/converters/ManifestSettings.js.map +1 -1
  203. package/src/sap/fe/core/converters/ManifestSettings.ts +15 -6
  204. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +21 -3
  205. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  206. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  207. package/src/sap/fe/core/converters/ManifestWrapper.ts +23 -1
  208. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +67 -62
  209. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  210. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  211. package/src/sap/fe/core/converters/MetaModelConverter.ts +75 -66
  212. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -1
  213. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  214. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  215. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +81 -20
  216. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  217. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  218. package/src/sap/fe/core/converters/annotations/DataField.ts +76 -22
  219. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1027 -956
  220. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  221. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  222. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +13 -19
  223. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  224. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  225. package/src/sap/fe/core/converters/controls/Common/Action.ts +37 -40
  226. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +95 -33
  227. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  228. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  229. package/src/sap/fe/core/converters/controls/Common/Chart.ts +133 -49
  230. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +99 -62
  231. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  232. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  233. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +140 -75
  234. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +7 -6
  235. package/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  236. package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -1
  237. package/src/sap/fe/core/converters/controls/Common/Form.ts +8 -14
  238. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +9 -9
  239. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  240. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  241. package/src/sap/fe/core/converters/controls/Common/KPI.ts +17 -18
  242. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +143 -93
  243. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  244. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  245. package/src/sap/fe/core/converters/controls/Common/Table.ts +221 -177
  246. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +23 -16
  247. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  248. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  249. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +27 -23
  250. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +138 -75
  251. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  252. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  253. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +223 -110
  254. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +38 -28
  255. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  256. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  257. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +67 -47
  258. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar-dbg.js +1 -1
  259. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +1 -1
  260. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +6 -6
  261. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
  262. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js.map +1 -1
  263. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +5 -8
  264. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +54 -24
  265. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  266. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  267. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +84 -37
  268. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +12 -14
  269. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  270. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  271. package/src/sap/fe/core/converters/helpers/Aggregation.ts +16 -11
  272. package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +8 -6
  273. package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
  274. package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -1
  275. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +8 -6
  276. package/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +7 -6
  277. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
  278. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js.map +1 -1
  279. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +19 -10
  280. package/src/sap/fe/core/converters/helpers/DataFieldHelper-dbg.js +1 -1
  281. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +7 -2
  282. package/src/sap/fe/core/converters/helpers/ID-dbg.js +1 -1
  283. package/src/sap/fe/core/converters/helpers/ID.ts +2 -1
  284. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +11 -9
  285. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  286. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  287. package/src/sap/fe/core/converters/helpers/IssueManager.ts +10 -8
  288. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +22 -20
  289. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  290. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  291. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +19 -16
  292. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +32 -35
  293. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  294. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  295. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +42 -37
  296. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +12 -5
  297. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  298. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  299. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +8 -2
  300. package/src/sap/fe/core/formatters/FPMFormatter-dbg.js +1 -1
  301. package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
  302. package/src/sap/fe/core/formatters/FiscalFormat-dbg.js +2 -2
  303. package/src/sap/fe/core/formatters/FiscalFormat.ts +6 -1
  304. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +3 -7
  305. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  306. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  307. package/src/sap/fe/core/formatters/TableFormatter.ts +2 -6
  308. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +9 -5
  309. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  310. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  311. package/src/sap/fe/core/formatters/ValueFormatter.ts +11 -4
  312. package/src/sap/fe/core/fpm/Component-dbg.js +1 -1
  313. package/src/sap/fe/core/fpm/Component.ts +1 -0
  314. package/src/sap/fe/core/fpm/manifest.json +1 -1
  315. package/src/sap/fe/core/helpers/AppStartupHelper-dbg.js +2 -2
  316. package/src/sap/fe/core/helpers/AppStartupHelper.js +1 -1
  317. package/src/sap/fe/core/helpers/AppStartupHelper.js.map +1 -1
  318. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  319. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +7 -6
  320. package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
  321. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  322. package/src/sap/fe/core/helpers/BindingToolkit.ts +9 -9
  323. package/src/sap/fe/core/helpers/ClassSupport-dbg.js +1 -1
  324. package/src/sap/fe/core/helpers/ClassSupport.js.map +1 -1
  325. package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
  326. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +93 -62
  327. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  328. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  329. package/src/sap/fe/core/helpers/DeleteHelper.ts +140 -185
  330. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +23 -20
  331. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  332. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  333. package/src/sap/fe/core/helpers/MassEditHelper.ts +26 -28
  334. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +9 -9
  335. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  336. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  337. package/src/sap/fe/core/helpers/MessageStrip.ts +8 -8
  338. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +517 -0
  339. package/src/sap/fe/core/helpers/MetaModelFunction.js +6 -0
  340. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -0
  341. package/src/sap/fe/core/helpers/MetaModelFunction.ts +610 -0
  342. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +37 -73
  343. package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  344. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  345. package/src/sap/fe/core/helpers/ModelHelper.ts +47 -74
  346. package/src/sap/fe/core/helpers/PasteHelper-dbg.js +5 -5
  347. package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
  348. package/src/sap/fe/core/helpers/PasteHelper.js.map +1 -1
  349. package/src/sap/fe/core/helpers/PasteHelper.ts +6 -10
  350. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +39 -0
  351. package/src/sap/fe/core/helpers/ResourceModelHelper.js +6 -0
  352. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -0
  353. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +35 -0
  354. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +132 -23
  355. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  356. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  357. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +109 -22
  358. package/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +2 -2
  359. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  360. package/src/sap/fe/core/helpers/SemanticKeyHelper.js.map +1 -1
  361. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  362. package/src/sap/fe/core/helpers/SizeHelper-dbg.js +53 -0
  363. package/src/sap/fe/core/helpers/SizeHelper.js +6 -0
  364. package/src/sap/fe/core/helpers/SizeHelper.js.map +1 -0
  365. package/src/sap/fe/core/helpers/SizeHelper.ts +51 -0
  366. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +29 -25
  367. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  368. package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
  369. package/src/sap/fe/core/helpers/StableIdHelper.ts +26 -24
  370. package/src/sap/fe/core/helpers/Synchronization-dbg.js +1 -1
  371. package/src/sap/fe/core/helpers/Synchronization.ts +2 -0
  372. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +151 -1
  373. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  374. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  375. package/src/sap/fe/core/helpers/TypeGuards.ts +162 -1
  376. package/src/sap/fe/core/jsx-runtime/ViewLoader-dbg.js +2 -1
  377. package/src/sap/fe/core/jsx-runtime/ViewLoader.js.map +1 -1
  378. package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +6 -2
  379. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +1 -1
  380. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +3 -1
  381. package/src/sap/fe/core/jsx-runtime/useMDXComponents-dbg.js +3 -3
  382. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +1 -1
  383. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js.map +1 -1
  384. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  385. package/src/sap/fe/core/library-dbg.js +2 -2
  386. package/src/sap/fe/core/library-preload.js +156 -140
  387. package/src/sap/fe/core/library-preload.js.map +1 -1
  388. package/src/sap/fe/core/library.js +1 -1
  389. package/src/sap/fe/core/library.ts +7 -0
  390. package/src/sap/fe/core/manifest.json +1 -1
  391. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +67 -15
  392. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  393. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
  394. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -14
  395. package/src/sap/fe/core/messagebundle.properties +35 -0
  396. package/src/sap/fe/core/messagebundle_ar.properties +15 -12
  397. package/src/sap/fe/core/messagebundle_bg.properties +20 -17
  398. package/src/sap/fe/core/messagebundle_ca.properties +12 -9
  399. package/src/sap/fe/core/messagebundle_cs.properties +12 -9
  400. package/src/sap/fe/core/messagebundle_cy.properties +12 -9
  401. package/src/sap/fe/core/messagebundle_da.properties +12 -9
  402. package/src/sap/fe/core/messagebundle_de.properties +13 -10
  403. package/src/sap/fe/core/messagebundle_el.properties +14 -11
  404. package/src/sap/fe/core/messagebundle_en.properties +4 -1
  405. package/src/sap/fe/core/messagebundle_en_GB.properties +4 -1
  406. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +2 -0
  407. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +21 -0
  408. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +23 -3
  409. package/src/sap/fe/core/messagebundle_es.properties +12 -9
  410. package/src/sap/fe/core/messagebundle_es_MX.properties +12 -9
  411. package/src/sap/fe/core/messagebundle_et.properties +12 -9
  412. package/src/sap/fe/core/messagebundle_fi.properties +12 -9
  413. package/src/sap/fe/core/messagebundle_fr.properties +12 -9
  414. package/src/sap/fe/core/messagebundle_fr_CA.properties +13 -10
  415. package/src/sap/fe/core/messagebundle_hi.properties +12 -9
  416. package/src/sap/fe/core/messagebundle_hr.properties +12 -9
  417. package/src/sap/fe/core/messagebundle_hu.properties +12 -9
  418. package/src/sap/fe/core/messagebundle_id.properties +13 -10
  419. package/src/sap/fe/core/messagebundle_it.properties +12 -9
  420. package/src/sap/fe/core/messagebundle_iw.properties +12 -9
  421. package/src/sap/fe/core/messagebundle_ja.properties +13 -10
  422. package/src/sap/fe/core/messagebundle_kk.properties +12 -9
  423. package/src/sap/fe/core/messagebundle_ko.properties +12 -9
  424. package/src/sap/fe/core/messagebundle_lt.properties +12 -9
  425. package/src/sap/fe/core/messagebundle_lv.properties +12 -9
  426. package/src/sap/fe/core/messagebundle_ms.properties +13 -10
  427. package/src/sap/fe/core/messagebundle_nl.properties +13 -10
  428. package/src/sap/fe/core/messagebundle_no.properties +12 -9
  429. package/src/sap/fe/core/messagebundle_pl.properties +12 -9
  430. package/src/sap/fe/core/messagebundle_pt.properties +12 -9
  431. package/src/sap/fe/core/messagebundle_pt_PT.properties +12 -9
  432. package/src/sap/fe/core/messagebundle_ro.properties +16 -13
  433. package/src/sap/fe/core/messagebundle_ru.properties +13 -10
  434. package/src/sap/fe/core/messagebundle_sh.properties +12 -9
  435. package/src/sap/fe/core/messagebundle_sk.properties +12 -9
  436. package/src/sap/fe/core/messagebundle_sl.properties +12 -9
  437. package/src/sap/fe/core/messagebundle_sv.properties +12 -9
  438. package/src/sap/fe/core/messagebundle_th.properties +12 -9
  439. package/src/sap/fe/core/messagebundle_tr.properties +12 -9
  440. package/src/sap/fe/core/messagebundle_uk.properties +12 -9
  441. package/src/sap/fe/core/messagebundle_vi.properties +13 -10
  442. package/src/sap/fe/core/messagebundle_zh_CN.properties +12 -9
  443. package/src/sap/fe/core/messagebundle_zh_TW.properties +12 -9
  444. package/src/sap/fe/core/operationsHelper-dbg.js +70 -44
  445. package/src/sap/fe/core/operationsHelper.js +1 -1
  446. package/src/sap/fe/core/operationsHelper.js.map +1 -1
  447. package/src/sap/fe/core/operationsHelper.ts +88 -63
  448. package/src/sap/fe/core/rootView/Fcl-dbg.controller.js +1 -1
  449. package/src/sap/fe/core/rootView/Fcl.controller.ts +10 -0
  450. package/src/sap/fe/core/rootView/NavContainer-dbg.controller.js +2 -2
  451. package/src/sap/fe/core/rootView/NavContainer.controller.js +1 -1
  452. package/src/sap/fe/core/rootView/NavContainer.controller.js.map +1 -1
  453. package/src/sap/fe/core/rootView/NavContainer.controller.ts +5 -3
  454. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +10 -5
  455. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  456. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  457. package/src/sap/fe/core/rootView/RootViewBaseController.ts +22 -8
  458. package/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +1 -1
  459. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  460. package/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +1 -1
  461. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js.map +1 -1
  462. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +15 -1
  463. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +1 -1
  464. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  465. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -1
  466. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +9 -1
  467. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  468. package/src/sap/fe/core/services/NavigationServiceFactory.ts +19 -1
  469. package/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +2 -2
  470. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +1 -1
  471. package/src/sap/fe/core/services/ResourceModelServiceFactory.js.map +1 -1
  472. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +10 -3
  473. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +9 -3
  474. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  475. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  476. package/src/sap/fe/core/services/RoutingServiceFactory.ts +35 -3
  477. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +7 -1
  478. package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  479. package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -1
  480. package/src/sap/fe/core/services/ShellServicesFactory.ts +24 -2
  481. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +448 -279
  482. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  483. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  484. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +497 -333
  485. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +26 -6
  486. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  487. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  488. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +54 -13
  489. package/src/sap/fe/core/support/Diagnostics-dbg.js +1 -1
  490. package/src/sap/fe/core/support/Diagnostics.ts +5 -0
  491. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +4 -3
  492. package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
  493. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
  494. package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
  495. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +195 -95
  496. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  497. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  498. package/src/sap/fe/core/templating/DataModelPathHelper.ts +210 -96
  499. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +5 -5
  500. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  501. package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -1
  502. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -2
  503. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +19 -29
  504. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  505. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  506. package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -26
  507. package/src/sap/fe/core/templating/EntityTypeHelper-dbg.js +48 -0
  508. package/src/sap/fe/core/templating/EntityTypeHelper.js +6 -0
  509. package/src/sap/fe/core/templating/EntityTypeHelper.js.map +1 -0
  510. package/src/sap/fe/core/templating/EntityTypeHelper.ts +37 -0
  511. package/src/sap/fe/core/templating/FilterHelper-dbg.js +3 -3
  512. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  513. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  514. package/src/sap/fe/core/templating/FilterHelper.ts +5 -3
  515. package/src/sap/fe/core/templating/FilterTemplating-dbg.js +7 -8
  516. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  517. package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -1
  518. package/src/sap/fe/core/templating/FilterTemplating.ts +5 -8
  519. package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +1 -6
  520. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  521. package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -1
  522. package/src/sap/fe/core/templating/PropertyFormatters.ts +0 -5
  523. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +13 -46
  524. package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  525. package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -1
  526. package/src/sap/fe/core/templating/PropertyHelper.ts +14 -43
  527. package/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
  528. package/src/sap/fe/core/templating/UIFormatters.js +1 -1
  529. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
  530. package/src/sap/fe/core/templating/UIFormatters.ts +47 -32
  531. package/src/sap/fe/core/type/DateTimeWithTimezone-dbg.js +1 -1
  532. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -0
  533. package/src/sap/fe/core/type/FiscalDate-dbg.js +2 -2
  534. package/src/sap/fe/core/type/FiscalDate.js.map +1 -1
  535. package/src/sap/fe/core/type/FiscalDate.ts +2 -1
  536. package/src/sap/fe/core/type/TypeUtil-dbg.js +5 -10
  537. package/src/sap/fe/core/type/TypeUtil.js +1 -1
  538. package/src/sap/fe/core/type/TypeUtil.js.map +1 -1
  539. package/src/sap/fe/core/type/TypeUtil.ts +3 -6
  540. package/src/sap/fe/core/buildingBlocks/BuildingBlock-dbg.js +0 -410
  541. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +0 -15
  542. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js.map +0 -1
  543. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +0 -536
  544. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment-dbg.js +0 -44
  545. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +0 -6
  546. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js.map +0 -1
  547. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +0 -14
  548. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime-dbg.js +0 -948
  549. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +0 -19
  550. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js.map +0 -1
  551. package/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +0 -711
  552. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +0 -6
  553. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js.map +0 -1
  554. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +0 -863
  555. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +0 -91
  556. package/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +0 -151
  557. package/src/sap/fe/core/controls/ConditionalWrapper.js +0 -6
  558. package/src/sap/fe/core/controls/ConditionalWrapper.js.map +0 -1
  559. package/src/sap/fe/core/controls/ConditionalWrapper.ts +0 -88
  560. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper-dbg.js +0 -330
  561. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +0 -6
  562. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js.map +0 -1
  563. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -292
  564. package/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +0 -126
  565. package/src/sap/fe/core/controls/CustomQuickViewPage.js +0 -6
  566. package/src/sap/fe/core/controls/CustomQuickViewPage.js.map +0 -1
  567. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +0 -105
  568. package/src/sap/fe/core/controls/FieldWrapper-dbg.js +0 -194
  569. package/src/sap/fe/core/controls/FieldWrapper.js +0 -6
  570. package/src/sap/fe/core/controls/FieldWrapper.js.map +0 -1
  571. package/src/sap/fe/core/controls/FieldWrapper.ts +0 -121
  572. package/src/sap/fe/core/controls/FileWrapper-dbg.js +0 -280
  573. package/src/sap/fe/core/controls/FileWrapper.js +0 -6
  574. package/src/sap/fe/core/controls/FileWrapper.js.map +0 -1
  575. package/src/sap/fe/core/controls/FileWrapper.ts +0 -202
  576. package/src/sap/fe/core/helpers/SideEffectsHelper-dbg.js +0 -141
  577. package/src/sap/fe/core/helpers/SideEffectsHelper.js +0 -6
  578. package/src/sap/fe/core/helpers/SideEffectsHelper.js.map +0 -1
  579. package/src/sap/fe/core/helpers/SideEffectsHelper.ts +0 -129
@@ -5,16 +5,14 @@ import type {
5
5
  PathAnnotationExpression,
6
6
  Property,
7
7
  PropertyAnnotationValue,
8
- PropertyPath,
9
- TypeDefinition
8
+ PropertyPath
10
9
  } from "@sap-ux/vocabularies-types";
11
10
  import type { FilterFunctions } from "@sap-ux/vocabularies-types/vocabularies/Capabilities";
12
- import type { EntitySetAnnotations_Capabilities } from "@sap-ux/vocabularies-types/vocabularies/Capabilities_Edm";
13
11
  import type { SemanticKey } from "@sap-ux/vocabularies-types/vocabularies/Common";
14
12
  import { CommonAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/Common";
15
13
  import type { EntitySetAnnotations_Common } from "@sap-ux/vocabularies-types/vocabularies/Common_Edm";
16
14
  import type { EntitySetAnnotations_Session } from "@sap-ux/vocabularies-types/vocabularies/Session_Edm";
17
- import {
15
+ import type {
18
16
  CriticalityType,
19
17
  DataField,
20
18
  DataFieldAbstractTypes,
@@ -25,18 +23,17 @@ import {
25
23
  DataFieldTypes,
26
24
  DataPoint,
27
25
  DataPointTypeTypes,
28
- FieldGroupType,
26
+ FieldGroup,
29
27
  LineItem,
30
28
  PresentationVariantType,
31
29
  SelectionVariantType,
32
- SelectOptionType,
33
- UIAnnotationTerms,
34
- UIAnnotationTypes
30
+ SelectOptionType
35
31
  } from "@sap-ux/vocabularies-types/vocabularies/UI";
32
+ import { UIAnnotationTerms, UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
33
+ import type { ComplexPropertyInfo } from "sap/fe/core/converters/annotations/DataField";
36
34
  import {
37
35
  collectRelatedProperties,
38
36
  collectRelatedPropertiesRecursively,
39
- ComplexPropertyInfo,
40
37
  getDataFieldDataType,
41
38
  getSemanticObjectPath,
42
39
  getTargetValueOnDataPoint,
@@ -44,15 +41,12 @@ import {
44
41
  isDataFieldTypes,
45
42
  isDataPointFromDataFieldDefault
46
43
  } from "sap/fe/core/converters/annotations/DataField";
44
+ import type { BaseAction, CombinedAction, CustomAction, OverrideTypeAction } from "sap/fe/core/converters/controls/Common/Action";
47
45
  import {
48
- BaseAction,
49
- CombinedAction,
50
- CustomAction,
51
46
  dataFieldIsCopyAction,
52
47
  getActionsFromManifest,
53
48
  getCopyAction,
54
49
  isActionNavigable,
55
- OverrideTypeAction,
56
50
  removeDuplicateActions
57
51
  } from "sap/fe/core/converters/controls/Common/Action";
58
52
  import { Entity, UI } from "sap/fe/core/converters/helpers/BindingHelper";
@@ -62,10 +56,9 @@ import { IssueCategory, IssueCategoryType, IssueSeverity, IssueType } from "sap/
62
56
  import { KeyHelper } from "sap/fe/core/converters/helpers/Key";
63
57
  import tableFormatters from "sap/fe/core/formatters/TableFormatter";
64
58
  import { MessageType } from "sap/fe/core/formatters/TableFormatterTypes";
59
+ import type { BindingToolkitExpression, CompiledBindingToolkitExpression, PathInModelExpression } from "sap/fe/core/helpers/BindingToolkit";
65
60
  import {
66
61
  and,
67
- BindingToolkitExpression,
68
- CompiledBindingToolkitExpression,
69
62
  compileExpression,
70
63
  constant,
71
64
  EDM_TYPE_MAPPING,
@@ -81,6 +74,14 @@ import {
81
74
  } from "sap/fe/core/helpers/BindingToolkit";
82
75
  import ModelHelper from "sap/fe/core/helpers/ModelHelper";
83
76
  import { generate, replaceSpecialChars } from "sap/fe/core/helpers/StableIdHelper";
77
+ import * as TypeGuards from "sap/fe/core/helpers/TypeGuards";
78
+ import {
79
+ isAnnotationOfType,
80
+ isNavigationProperty,
81
+ isPathAnnotationExpression,
82
+ isProperty,
83
+ isTypeDefinition
84
+ } from "sap/fe/core/helpers/TypeGuards";
84
85
  import type { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
85
86
  import {
86
87
  enhanceDataModelPath,
@@ -94,13 +95,10 @@ import { getNonSortablePropertiesRestrictions } from "sap/fe/core/templating/Ent
94
95
  import {
95
96
  getAssociatedCurrencyProperty,
96
97
  getAssociatedTimezoneProperty,
97
- getAssociatedUnitProperty,
98
- isNavigationProperty,
99
- isPathExpression,
100
- isProperty
98
+ getAssociatedUnitProperty
101
99
  } from "sap/fe/core/templating/PropertyHelper";
102
100
  import { isMultiValueField } from "sap/fe/core/templating/UIFormatters";
103
- import { DefaultTypeForEdmType } from "sap/fe/core/type/EDM";
101
+ import type { DefaultTypeForEdmType } from "sap/fe/core/type/EDM";
104
102
  import ActionHelper from "sap/fe/macros/internal/helpers/ActionHelper";
105
103
  import Core from "sap/ui/core/Core";
106
104
  import type ConverterContext from "../../ConverterContext";
@@ -108,6 +106,7 @@ import { AggregationHelper } from "../../helpers/Aggregation";
108
106
  import { isReferencePropertyStaticallyHidden } from "../../helpers/DataFieldHelper";
109
107
  import { getTableID } from "../../helpers/ID";
110
108
  import type {
109
+ AvailabilityType,
111
110
  CustomDefinedTableColumn,
112
111
  CustomDefinedTableColumnForOverride,
113
112
  FormatOptionsType,
@@ -120,7 +119,6 @@ import type {
120
119
  } from "../../ManifestSettings";
121
120
  import {
122
121
  ActionType,
123
- AvailabilityType,
124
122
  CreationMode,
125
123
  HorizontalAlign,
126
124
  Importance,
@@ -134,7 +132,6 @@ import { getMessageTypeFromCriticalityType } from "./Criticality";
134
132
  import type { StandardActionConfigType } from "./table/StandardActions";
135
133
  import {
136
134
  generateStandardActionsContext,
137
- getCreateVisibility,
138
135
  getCreationRow,
139
136
  getDeleteVisibility,
140
137
  getInsertUpdateActionsTemplating,
@@ -148,6 +145,8 @@ import {
148
145
  isInDisplayMode
149
146
  } from "./table/StandardActions";
150
147
 
148
+ import { getEnabledForAnnotationAction } from "sap/fe/core/converters/controls/Common/Action";
149
+
151
150
  export type TableAnnotationConfiguration = {
152
151
  autoBindOnInit: boolean;
153
152
  collection: string;
@@ -179,7 +178,7 @@ export type TableAnnotationConfiguration = {
179
178
 
180
179
  /** Create new entries */
181
180
  create: CreateBehavior | CreateBehaviorExternal;
182
- title: string;
181
+ title: string | undefined;
183
182
  searchable: boolean;
184
183
 
185
184
  inlineCreationRowsHiddenInEditMode?: boolean;
@@ -188,7 +187,7 @@ export type TableAnnotationConfiguration = {
188
187
  /**
189
188
  * New entries are created within the app (default case)
190
189
  */
191
- type CreateBehavior = {
190
+ export type CreateBehavior = {
192
191
  mode: CreationMode;
193
192
  append: boolean;
194
193
  newAction?: string;
@@ -198,7 +197,7 @@ type CreateBehavior = {
198
197
  /**
199
198
  * New entries are created by navigating to some target
200
199
  */
201
- type CreateBehaviorExternal = {
200
+ export type CreateBehaviorExternal = {
202
201
  mode: "External";
203
202
  outbound: string;
204
203
  outboundDetail: NavigationTargetConfiguration["outboundDetail"];
@@ -235,8 +234,8 @@ export type TableControlConfiguration = {
235
234
  headerVisible: boolean;
236
235
  filters?: Record<string, TableFiltersConfiguration>;
237
236
  type: TableType;
238
- rowCountMode: GridTableRowCountMode;
239
- rowCount: number;
237
+ rowCountMode?: GridTableRowCountMode;
238
+ rowCount?: number;
240
239
  selectAll?: boolean;
241
240
  selectionLimit: number;
242
241
  multiSelectMode: string | undefined;
@@ -307,7 +306,7 @@ export type AnnotationTableColumnForOverride = BaseTableColumn & {
307
306
  formatOptions?: FormatOptionsType;
308
307
  };
309
308
 
310
- export type configTypeConstraints = Partial<{
309
+ export type PropertyTypeConstraints = Partial<{
311
310
  scale: number;
312
311
  precision: number;
313
312
  maxLength: number;
@@ -317,22 +316,22 @@ export type configTypeConstraints = Partial<{
317
316
  isDigitSequence: boolean;
318
317
  }>;
319
318
 
320
- export type configTypeformatOptions = Partial<{
319
+ export type PropertyTypeFormatOptions = Partial<{
321
320
  parseAsString: boolean;
322
321
  emptyString: string;
323
322
  parseKeepsEmptyString: boolean;
324
323
  }>;
325
324
 
326
- export type configType = {
325
+ export type PropertyTypeConfig = {
327
326
  type?: string;
328
- constraints: configTypeConstraints;
329
- formatOptions: configTypeformatOptions;
330
- typeInstance?: InstanceType<any>;
327
+ constraints: PropertyTypeConstraints;
328
+ formatOptions: PropertyTypeFormatOptions;
329
+ typeInstance?: unknown;
331
330
  baseType?: string;
332
331
  className?: keyof typeof DefaultTypeForEdmType;
333
332
  };
334
333
 
335
- export type exportSettings = Partial<{
334
+ export type columnExportSettings = Partial<{
336
335
  template: string;
337
336
  label: string;
338
337
  wrap: boolean;
@@ -368,14 +367,14 @@ export type AnnotationTableColumn = AnnotationTableColumnForOverride & {
368
367
  timezone?: string;
369
368
  semanticObjectPath?: string;
370
369
  sortable: boolean;
371
- exportSettings?: exportSettings | null;
370
+ exportSettings?: columnExportSettings | null;
372
371
  textArrangement?: {
373
372
  textProperty: string;
374
373
  mode: DisplayMode;
375
374
  };
376
375
  additionalPropertyInfos?: string[];
377
376
  visualSettings?: VisualSettings;
378
- typeConfig?: configType;
377
+ typeConfig?: PropertyTypeConfig;
379
378
  isPartOfLineItem?: boolean; // temporary indicator to only allow filtering on navigation properties when they're part of a line item
380
379
  additionalLabels?: string[];
381
380
  exportDataPointTargetValue?: string;
@@ -430,7 +429,7 @@ export type TableVisualization = {
430
429
  commandActions?: Record<string, CustomAction>;
431
430
  aggregates?: Record<string, AggregateData>;
432
431
  enableAnalytics?: boolean;
433
- enableAnalyticsSearch?: boolean;
432
+ enableBasicSearch?: boolean;
434
433
  operationAvailableMap: string;
435
434
  operationAvailableProperties: string;
436
435
  headerInfoTitle: string;
@@ -634,7 +633,7 @@ export function updateTableVisualizationForType(
634
633
  _updatePropertyInfosWithAggregatesDefinitions(tableVisualization);
635
634
 
636
635
  const allowedTransformations = aggregationHelper.getAllowedTransformations();
637
- tableVisualization.enableAnalyticsSearch = allowedTransformations ? allowedTransformations.indexOf("search") >= 0 : true;
636
+ tableVisualization.enableBasicSearch = allowedTransformations ? allowedTransformations.indexOf("search") >= 0 : true;
638
637
 
639
638
  // Add group and sort conditions from the presentation variant
640
639
  tableVisualization.annotation.groupConditions = getGroupConditions(
@@ -656,6 +655,9 @@ export function updateTableVisualizationForType(
656
655
  tableVisualization.control.type
657
656
  );
658
657
  } else if (tableVisualization.control.type === "TreeTable") {
658
+ const aggregationHelper = new AggregationHelper(entityType, converterContext);
659
+ const allowedTransformations = aggregationHelper.getAllowedTransformations();
660
+ tableVisualization.enableBasicSearch = allowedTransformations ? allowedTransformations.includes("search") : true;
659
661
  tableVisualization.enable$$getKeepAliveContext = false;
660
662
  }
661
663
  }
@@ -726,7 +728,7 @@ export function updateLinkedProperties(entityType: EntityType, tableColumns: Tab
726
728
 
727
729
  const displayMode = getDisplayMode(oProperty),
728
730
  textAnnotation = oProperty.annotations.Common?.Text;
729
- if (isPathExpression(textAnnotation) && displayMode !== "Value") {
731
+ if (isPathAnnotationExpression(textAnnotation) && displayMode !== "Value") {
730
732
  const oTextColumn = findColumnByPath(textAnnotation.path);
731
733
  if (oTextColumn && oTextColumn.name !== oTableColumn.name) {
732
734
  oTableColumn.textArrangement = {
@@ -743,11 +745,11 @@ export function updateLinkedProperties(entityType: EntityType, tableColumns: Tab
743
745
  function getSemanticKeysAndTitleInfo(converterContext: ConverterContext) {
744
746
  const headerInfoTitlePath = (converterContext.getAnnotationEntityType()?.annotations?.UI?.HeaderInfo?.Title as DataFieldTypes)?.Value
745
747
  ?.path;
746
- const semanticKeyAnnotations: any[] | undefined = converterContext.getAnnotationEntityType()?.annotations?.Common?.SemanticKey;
748
+ const semanticKeyAnnotations = converterContext.getAnnotationEntityType()?.annotations?.Common?.SemanticKey;
747
749
  const headerInfoTypeName = converterContext?.getAnnotationEntityType()?.annotations?.UI?.HeaderInfo?.TypeName;
748
750
  const semanticKeyColumns: string[] = [];
749
751
  if (semanticKeyAnnotations) {
750
- semanticKeyAnnotations.forEach(function (oColumn: any) {
752
+ semanticKeyAnnotations.forEach(function (oColumn) {
751
753
  semanticKeyColumns.push(oColumn.value);
752
754
  });
753
755
  }
@@ -845,7 +847,7 @@ export function createDefaultTableVisualization(converterContext: ConverterConte
845
847
  * @param converterContext The instance of the converter context
846
848
  * @returns The record containing all action names and their corresponding Core.OperationAvailable property paths
847
849
  */
848
- function getOperationAvailableMap(lineItemAnnotation: LineItem | undefined, converterContext: ConverterContext): Record<string, any> {
850
+ function getOperationAvailableMap(lineItemAnnotation: LineItem | undefined, converterContext: ConverterContext): Record<string, unknown> {
849
851
  return ActionHelper.getOperationAvailableMap(lineItemAnnotation, "table", converterContext);
850
852
  }
851
853
 
@@ -859,8 +861,9 @@ function getCurrentEntitySetUpdatablePath(converterContext: ConverterContext): s
859
861
  const restrictions = getRestrictions(converterContext);
860
862
  const entitySet = converterContext.getEntitySet();
861
863
  const updatable = restrictions.isUpdatable;
862
- const isOnlyDynamicOnCurrentEntity: any = !isConstant(updatable.expression) && updatable.navigationExpression._type === "Unresolvable";
863
- const updatablePropertyPath = (entitySet?.annotations.Capabilities?.UpdateRestrictions?.Updatable as any)?.path;
864
+ const isOnlyDynamicOnCurrentEntity = !isConstant(updatable.expression) && updatable.navigationExpression._type === "Unresolvable";
865
+ const updatableExpression = entitySet?.annotations.Capabilities?.UpdateRestrictions?.Updatable;
866
+ const updatablePropertyPath = isPathAnnotationExpression(updatableExpression) && updatableExpression.path;
864
867
 
865
868
  return isOnlyDynamicOnCurrentEntity ? (updatablePropertyPath as string) : "";
866
869
  }
@@ -872,7 +875,7 @@ function getCurrentEntitySetUpdatablePath(converterContext: ConverterContext): s
872
875
  * @param converterContext The instance of the converter context
873
876
  * @returns The CSV string of all property paths associated with the Core.OperationAvailable annotation
874
877
  */
875
- function getOperationAvailableProperties(operationAvailableMap: Record<string, any>, converterContext: ConverterContext): string {
878
+ function getOperationAvailableProperties(operationAvailableMap: Record<string, unknown>, converterContext: ConverterContext): string {
876
879
  const properties = new Set();
877
880
 
878
881
  for (const actionName in operationAvailableMap) {
@@ -949,8 +952,8 @@ function getBindingExpFromContext(
949
952
  source: DataFieldForAction | DataFieldForIntentBasedNavigation | CustomAction,
950
953
  contextDataModelObjectPath: DataModelObjectPath,
951
954
  isEntitySet: boolean
952
- ): BindingToolkitExpression<any> {
953
- let sExpression: any | undefined;
955
+ ): BindingToolkitExpression<unknown> {
956
+ let sExpression;
954
957
  if (
955
958
  (source as DataFieldForAction)?.$Type === UIAnnotationTypes.DataFieldForAction ||
956
959
  (source as DataFieldForIntentBasedNavigation)?.$Type === UIAnnotationTypes.DataFieldForIntentBasedNavigation
@@ -960,10 +963,10 @@ function getBindingExpFromContext(
960
963
  sExpression = (source as CustomAction)?.visible;
961
964
  }
962
965
  let sPath: string;
963
- if (sExpression?.path) {
966
+ if (isPathAnnotationExpression(sExpression)) {
964
967
  sPath = sExpression.path;
965
968
  } else {
966
- sPath = sExpression;
969
+ sPath = sExpression as string;
967
970
  }
968
971
  if (sPath) {
969
972
  if ((source as CustomAction)?.visible) {
@@ -974,7 +977,7 @@ function getBindingExpFromContext(
974
977
  const aSplitPath = sPath.split("/");
975
978
  const sNavigationPath = aSplitPath[0];
976
979
  if (
977
- contextDataModelObjectPath?.targetObject?._type === "NavigationProperty" &&
980
+ isNavigationProperty(contextDataModelObjectPath?.targetObject) &&
978
981
  contextDataModelObjectPath.targetObject.partner === sNavigationPath
979
982
  ) {
980
983
  return pathInModel(aSplitPath.slice(1).join("/"));
@@ -1289,6 +1292,8 @@ function getTableAnnotationActions(lineItemAnnotation: LineItem, visualizationPa
1289
1292
  }) as DataFieldForActionTypes[]
1290
1293
  );
1291
1294
 
1295
+ const sEntityType = converterContext.getEntityType().fullyQualifiedName;
1296
+
1292
1297
  if (copyDataField) {
1293
1298
  tableActions.push({
1294
1299
  type: ActionType.Copy,
@@ -1330,7 +1335,26 @@ function getTableAnnotationActions(lineItemAnnotation: LineItem, visualizationPa
1330
1335
  ) {
1331
1336
  switch (dataField.$Type) {
1332
1337
  case UIAnnotationTypes.DataFieldForAction:
1333
- tableActions.push({
1338
+ // There are three cases when a table action has an OperationAvailable that leads to an enablement expression
1339
+ // and is not dependent upon the table entries.
1340
+ // 1. An action with an overload, that is executed against a parent entity.
1341
+ // 2. An unbound action
1342
+ // 3. A static action (that is, bound to a collection)
1343
+ let useEnabledExpression = false;
1344
+ if (dataField.ActionTarget?.annotations?.Core?.OperationAvailable !== undefined) {
1345
+ if (!dataField.ActionTarget?.isBound) {
1346
+ // Unbound action. Is recognised, but getExpressionFromAnnotation checks for isBound = true, so not generated.
1347
+ useEnabledExpression = true;
1348
+ } else if (dataField.ActionTarget?.isBound && dataField.ActionTarget?.sourceType !== sEntityType) {
1349
+ // Overload action
1350
+ useEnabledExpression = true;
1351
+ } else if (dataField.ActionTarget?.parameters[0].isCollection) {
1352
+ // Static action
1353
+ useEnabledExpression = true;
1354
+ }
1355
+ }
1356
+
1357
+ const tableAction: BaseAction = {
1334
1358
  type: ActionType.DataFieldForAction,
1335
1359
  annotationPath: converterContext.getEntitySetBasedAnnotationPath(dataField.fullyQualifiedName),
1336
1360
  key: KeyHelper.generateKeyFromDataField(dataField),
@@ -1348,7 +1372,12 @@ function getTableAnnotationActions(lineItemAnnotation: LineItem, visualizationPa
1348
1372
  )
1349
1373
  ),
1350
1374
  isNavigable: true
1351
- });
1375
+ };
1376
+
1377
+ if (useEnabledExpression) {
1378
+ tableAction.enabled = getEnabledForAnnotationAction(converterContext, dataField.ActionTarget);
1379
+ }
1380
+ tableActions.push(tableAction);
1352
1381
  break;
1353
1382
 
1354
1383
  case UIAnnotationTypes.DataFieldForIntentBasedNavigation:
@@ -1383,9 +1412,18 @@ function getTableAnnotationActions(lineItemAnnotation: LineItem, visualizationPa
1383
1412
  };
1384
1413
  }
1385
1414
 
1415
+ /**
1416
+ * Generate the bindingExpression for the highlight rowSetting parameter.
1417
+ *
1418
+ * @param criticalityAnnotation Path or value of the criticality
1419
+ * @param isDraftRootOrNode Is the current entitySet an Draft root or a node
1420
+ * @param targetEntityType The targeted entityType
1421
+ * @returns An expressionBinding
1422
+ * @private
1423
+ */
1386
1424
  function getHighlightRowBinding(
1387
1425
  criticalityAnnotation: PathAnnotationExpression<CriticalityType> | EnumValue<CriticalityType> | undefined,
1388
- isDraftRoot: boolean,
1426
+ isDraftRootOrNode: boolean,
1389
1427
  targetEntityType?: EntityType
1390
1428
  ): BindingToolkitExpression<MessageType> {
1391
1429
  let defaultHighlightRowDefinition: MessageType | BindingToolkitExpression<MessageType> = MessageType.None;
@@ -1398,8 +1436,8 @@ function getHighlightRowBinding(
1398
1436
  }
1399
1437
  }
1400
1438
 
1401
- const aMissingKeys: any[] = [];
1402
- targetEntityType?.keys.forEach((key: any) => {
1439
+ const aMissingKeys: PathInModelExpression<string>[] = [];
1440
+ targetEntityType?.keys.forEach((key) => {
1403
1441
  if (key.name !== "IsActiveEntity") {
1404
1442
  aMissingKeys.push(pathInModel(key.name, undefined));
1405
1443
  }
@@ -1409,9 +1447,9 @@ function getHighlightRowBinding(
1409
1447
  [
1410
1448
  defaultHighlightRowDefinition,
1411
1449
  pathInModel(`filteredMessages`, "internal"),
1412
- isDraftRoot && Entity.HasActive,
1413
- isDraftRoot && Entity.IsActive,
1414
- `${isDraftRoot}`,
1450
+ isDraftRootOrNode && Entity.HasActive,
1451
+ isDraftRootOrNode && Entity.IsActive,
1452
+ `${isDraftRootOrNode}`,
1415
1453
  ...aMissingKeys
1416
1454
  ],
1417
1455
  tableFormatters.rowHighlighting,
@@ -1496,12 +1534,12 @@ const _getRowConfigurationProperty = function (
1496
1534
  } else if (targetEntityType) {
1497
1535
  const targetEntitySet = converterContext.getEntitySet();
1498
1536
  navigationTarget = navigationSettings.detail?.route;
1499
- if (navigationTarget && !ModelHelper.isSingleton(targetEntitySet)) {
1500
- criticalityProperty = getHighlightRowBinding(
1501
- lineItemAnnotation.annotations?.UI?.Criticality,
1502
- !!ModelHelper.getDraftRoot(targetEntitySet) || !!ModelHelper.getDraftNode(targetEntitySet),
1503
- targetEntityType
1504
- );
1537
+ criticalityProperty = getHighlightRowBinding(
1538
+ lineItemAnnotation.annotations?.UI?.Criticality,
1539
+ !!ModelHelper.getDraftRoot(targetEntitySet) || !!ModelHelper.getDraftNode(targetEntitySet),
1540
+ targetEntityType
1541
+ );
1542
+ if (navigationTarget && TypeGuards.isEntitySet(targetEntitySet)) {
1505
1543
  pressProperty =
1506
1544
  "API.onTableRowPress($event, $controller, ${$parameters>bindingContext}, { callExtension: true, targetPath: '" +
1507
1545
  targetPath +
@@ -1511,8 +1549,6 @@ const _getRowConfigurationProperty = function (
1511
1549
  : "undefined") +
1512
1550
  (tableType === "AnalyticalTable" || tableType === "TreeTable" ? ", bRecreateContext: true" : "") +
1513
1551
  "})"; //Need to access to DraftRoot and DraftNode !!!!!!!
1514
- } else {
1515
- criticalityProperty = getHighlightRowBinding(lineItemAnnotation.annotations?.UI?.Criticality, false, targetEntityType);
1516
1552
  }
1517
1553
  }
1518
1554
  }
@@ -1719,7 +1755,7 @@ const getColumnDefinitionFromProperty = function (
1719
1755
  formatOptions: propertyTypeConfig.formatOptions,
1720
1756
  constraints: propertyTypeConfig.constraints
1721
1757
  };
1722
- let exportSettings: exportSettings | null = null;
1758
+ let exportSettings: columnExportSettings | null = null;
1723
1759
  if (_isExportableColumn(property)) {
1724
1760
  const unitProperty = getAssociatedCurrencyProperty(property) || getAssociatedUnitProperty(property);
1725
1761
  const timezoneProperty = getAssociatedTimezoneProperty(property);
@@ -1757,7 +1793,7 @@ const getColumnDefinitionFromProperty = function (
1757
1793
  group: isGroup ? groupPath : undefined,
1758
1794
  annotationPath: fullPropertyPath,
1759
1795
  semanticObjectPath: semanticObjectAnnotationPath,
1760
- availability: !availableForAdaptation || isHidden ? AvailabilityType.Hidden : AvailabilityType.Adaptation,
1796
+ availability: !availableForAdaptation || isHidden ? "Hidden" : "Adaptation",
1761
1797
  name: name,
1762
1798
  relativePath: relativePath,
1763
1799
  sortable: sortable,
@@ -1765,8 +1801,8 @@ const getColumnDefinitionFromProperty = function (
1765
1801
  isKey: property.isKey,
1766
1802
  exportSettings: exportSettings,
1767
1803
  caseSensitive: isFilteringCaseSensitive(converterContext),
1768
- typeConfig: typeConfig as configType,
1769
- importance: getImportance((property as any).annotations?.UI?.DataFieldDefault, semanticKeys),
1804
+ typeConfig: typeConfig as PropertyTypeConfig,
1805
+ importance: getImportance(property.annotations?.UI?.DataFieldDefault, semanticKeys),
1770
1806
  additionalLabels: collectedNavigationPropertyLabels
1771
1807
  };
1772
1808
  const sTooltip = _getTooltip(property);
@@ -1853,14 +1889,9 @@ const _isValidColumn = function (dataField: DataFieldAbstractTypes) {
1853
1889
  * SAP Fiori elements will evaluate either the UI.Hidden annotation defined on the annotation itself or on the target property.
1854
1890
  *
1855
1891
  * @param dataFieldModelPath The metapath referring to the annotation that is evaluated by SAP Fiori elements.
1856
- * @param [formatOptions] FormatOptions optional.
1857
- * @param formatOptions.isAnalytics This flag is used to check if the analytic table has GroupHeader expanded.
1858
1892
  * @returns An expression that you can bind to the UI.
1859
1893
  */
1860
- export const _getVisibleExpression = function (
1861
- dataFieldModelPath: DataModelObjectPath,
1862
- formatOptions?: any
1863
- ): BindingToolkitExpression<any> {
1894
+ export const _getVisibleExpression = function (dataFieldModelPath: DataModelObjectPath): BindingToolkitExpression<boolean> {
1864
1895
  const targetObject: DataFieldAbstractTypes | DataPointTypeTypes = dataFieldModelPath.targetObject;
1865
1896
  let propertyValue;
1866
1897
  if (targetObject) {
@@ -1885,8 +1916,9 @@ export const _getVisibleExpression = function (
1885
1916
  propertyValue = undefined;
1886
1917
  }
1887
1918
  }
1888
- const isAnalyticalGroupHeaderExpanded = formatOptions?.isAnalytics ? UI.IsExpanded : constant(false);
1889
- const isAnalyticalLeaf = formatOptions?.isAnalytics ? equal(UI.NodeLevel, 0) : constant(false);
1919
+ // FIXME Prove me wrong that this is useless
1920
+ const isAnalyticalGroupHeaderExpanded = /*formatOptions?.isAnalytics ? UI.IsExpanded :*/ constant(false);
1921
+ const isAnalyticalLeaf = /*formatOptions?.isAnalytics ? equal(UI.NodeLevel, 0) :*/ constant(false);
1890
1922
 
1891
1923
  // A data field is visible if:
1892
1924
  // - the UI.Hidden expression in the original annotation does not evaluate to 'true'
@@ -1909,15 +1941,11 @@ export const _getVisibleExpression = function (
1909
1941
  * Returns hidden binding expressions for a field group.
1910
1942
  *
1911
1943
  * @param dataFieldGroup DataField defined in the annotations
1912
- * @param fieldFormatOptions FormatOptions optional.
1913
1944
  * @returns Compile binding of field group expressions.
1914
1945
  * @private
1915
1946
  */
1916
- const _getFieldGroupHiddenExpressions = function (
1917
- dataFieldGroup: DataFieldAbstractTypes,
1918
- fieldFormatOptions: any
1919
- ): CompiledBindingToolkitExpression | undefined {
1920
- const fieldGroupHiddenExpressions: BindingToolkitExpression<any>[] = [];
1947
+ const _getFieldGroupHiddenExpressions = function (dataFieldGroup: DataFieldAbstractTypes): CompiledBindingToolkitExpression | undefined {
1948
+ const fieldGroupHiddenExpressions: BindingToolkitExpression<boolean>[] = [];
1921
1949
  if (
1922
1950
  dataFieldGroup.$Type === UIAnnotationTypes.DataFieldForAnnotation &&
1923
1951
  dataFieldGroup.Target?.$target?.$Type === UIAnnotationTypes.FieldGroupType
@@ -1926,9 +1954,7 @@ const _getFieldGroupHiddenExpressions = function (
1926
1954
  return compileExpression(not(equal(getExpressionFromAnnotation(dataFieldGroup.annotations.UI.Hidden), true)));
1927
1955
  } else {
1928
1956
  dataFieldGroup.Target.$target.Data?.forEach((innerDataField: DataFieldAbstractTypes | DataPointTypeTypes) => {
1929
- fieldGroupHiddenExpressions.push(
1930
- _getVisibleExpression({ targetObject: innerDataField } as DataModelObjectPath, fieldFormatOptions)
1931
- );
1957
+ fieldGroupHiddenExpressions.push(_getVisibleExpression({ targetObject: innerDataField } as DataModelObjectPath));
1932
1958
  });
1933
1959
  return compileExpression(ifElse(or(...fieldGroupHiddenExpressions), constant(true), constant(false)));
1934
1960
  }
@@ -2041,19 +2067,21 @@ const _createRelatedColumns = function (
2041
2067
  if (relatedColumn === undefined) {
2042
2068
  // Case 1: Key contains DataField prefix to ensure all property columns have the same key format.
2043
2069
  // New created property column is set to hidden.
2044
- relatedColumns.push(
2045
- getColumnDefinitionFromProperty(
2046
- property,
2047
- annotationPath,
2048
- name,
2049
- true,
2050
- false,
2051
- nonSortableColumns,
2052
- aggregationHelper,
2053
- converterContext,
2054
- textOnlyColumnsFromTextAnnotation
2055
- )
2070
+ const column = getColumnDefinitionFromProperty(
2071
+ property,
2072
+ annotationPath,
2073
+ name,
2074
+ true,
2075
+ false,
2076
+ nonSortableColumns,
2077
+ aggregationHelper,
2078
+ converterContext,
2079
+ textOnlyColumnsFromTextAnnotation
2080
+ );
2081
+ column.isPartOfLineItem = existingColumns.some(
2082
+ (existingColumn) => existingColumn.propertyInfos?.includes(name) && existingColumn.isPartOfLineItem
2056
2083
  );
2084
+ relatedColumns.push(column);
2057
2085
  } else if (relatedColumn.annotationPath !== annotationPath || relatedColumn.propertyInfos) {
2058
2086
  // Case 2: The existing column points to a LineItem (or)
2059
2087
  // Case 3: This is a self reference from an existing column
@@ -2144,7 +2172,7 @@ const createTechnicalProperty = function (name: string, columns: TableColumn[],
2144
2172
  type: ColumnType.Annotation,
2145
2173
  label: additionalProperty.label,
2146
2174
  annotationPath: additionalProperty.annotationPath,
2147
- availability: AvailabilityType.Hidden,
2175
+ availability: "Hidden",
2148
2176
  name: key,
2149
2177
  relativePath: additionalProperty.relativePath,
2150
2178
  sortable: false,
@@ -2190,7 +2218,7 @@ const _getShowDataFieldsLabel = function (fieldGroupName: string, visualizationP
2190
2218
  * @returns The relative path
2191
2219
  */
2192
2220
  const _getRelativePath = function (dataField: DataFieldAbstractTypes): string {
2193
- let relativePath: string = "";
2221
+ let relativePath = "";
2194
2222
 
2195
2223
  switch (dataField.$Type) {
2196
2224
  case UIAnnotationTypes.DataField:
@@ -2233,7 +2261,7 @@ const _sliceAtSlash = function (path: string, isLastSlash: boolean, isLastPart:
2233
2261
  * @returns True if the DataField corresponds to a multi-value field.
2234
2262
  */
2235
2263
  const _isColumnMultiValued = function (dataField: DataFieldAbstractTypes, converterContext: ConverterContext): boolean {
2236
- if (isDataFieldTypes(dataField) && isPathExpression(dataField.Value)) {
2264
+ if (isDataFieldTypes(dataField) && isPathAnnotationExpression(dataField.Value)) {
2237
2265
  const propertyObjectPath = enhanceDataModelPath(converterContext.getDataModelObjectPath(), dataField.Value.path);
2238
2266
  return isMultiValueField(propertyObjectPath);
2239
2267
  } else {
@@ -2271,11 +2299,14 @@ export const isFilteringCaseSensitive = function (converterContext: ConverterCon
2271
2299
  };
2272
2300
 
2273
2301
  function _getFilterFunctions(ConverterContext: ConverterContext): FilterFunctions | undefined {
2274
- if (ModelHelper.isSingleton(ConverterContext.getEntitySet())) {
2275
- return undefined;
2302
+ const entitySet = ConverterContext.getEntitySet();
2303
+ if (TypeGuards.isEntitySet(entitySet)) {
2304
+ return (
2305
+ entitySet.annotations.Capabilities?.FilterFunctions ??
2306
+ ConverterContext.getEntityContainer().annotations.Capabilities?.FilterFunctions
2307
+ );
2276
2308
  }
2277
- const capabilities = ConverterContext.getEntitySet()?.annotations?.Capabilities as EntitySetAnnotations_Capabilities;
2278
- return capabilities?.FilterFunctions || ConverterContext.getEntityContainer()?.annotations?.Capabilities?.FilterFunctions;
2309
+ return undefined;
2279
2310
  }
2280
2311
 
2281
2312
  /**
@@ -2293,7 +2324,7 @@ function _getDefaultFormatOptionsForTable(formatOptions: FormatOptionsType | und
2293
2324
  };
2294
2325
  }
2295
2326
 
2296
- function _findSemanticKeyValues(semanticKeys: any[], name: string): any {
2327
+ function _findSemanticKeyValues(semanticKeys: SemanticKey, name: string) {
2297
2328
  const aSemanticKeyValues: string[] = [];
2298
2329
  let bSemanticKeyFound = false;
2299
2330
  for (let i = 0; i < semanticKeys.length; i++) {
@@ -2308,7 +2339,7 @@ function _findSemanticKeyValues(semanticKeys: any[], name: string): any {
2308
2339
  };
2309
2340
  }
2310
2341
 
2311
- function _findProperties(semanticKeyValues: any[], fieldGroupProperties: any[]) {
2342
+ function _findProperties(semanticKeyValues: string[], fieldGroupProperties: string[]) {
2312
2343
  let semanticKeyHasPropertyInFieldGroup = false;
2313
2344
  let sPropertyPath;
2314
2345
  if (semanticKeyValues && semanticKeyValues.length >= 1 && fieldGroupProperties && fieldGroupProperties.length >= 1) {
@@ -2326,9 +2357,9 @@ function _findProperties(semanticKeyValues: any[], fieldGroupProperties: any[])
2326
2357
  };
2327
2358
  }
2328
2359
 
2329
- function _findSemanticKeyValuesInFieldGroup(dataFieldGroup: DataFieldAbstractTypes | null, semanticKeyValues: []): any {
2330
- const aProperties: any[] = [];
2331
- let _propertiesFound: { semanticKeyHasPropertyInFieldGroup: boolean; fieldGroupPropertyPath: any } = {
2360
+ function _findSemanticKeyValuesInFieldGroup(dataFieldGroup: DataFieldAbstractTypes | null, semanticKeyValues: string[]) {
2361
+ const aProperties: string[] = [];
2362
+ let _propertiesFound: { semanticKeyHasPropertyInFieldGroup: boolean; fieldGroupPropertyPath?: string } = {
2332
2363
  semanticKeyHasPropertyInFieldGroup: false,
2333
2364
  fieldGroupPropertyPath: undefined
2334
2365
  };
@@ -2364,7 +2395,7 @@ function _findSemanticKeyValuesInFieldGroup(dataFieldGroup: DataFieldAbstractTyp
2364
2395
  */
2365
2396
  function getDefaultDraftIndicatorForColumn(
2366
2397
  name: string,
2367
- semanticKeys: any[],
2398
+ semanticKeys: SemanticKey,
2368
2399
  isFieldGroupColumn: boolean,
2369
2400
  dataFieldGroup: DataFieldAbstractTypes | null
2370
2401
  ) {
@@ -2374,14 +2405,14 @@ function getDefaultDraftIndicatorForColumn(
2374
2405
  const semanticKey = _findSemanticKeyValues(semanticKeys, name);
2375
2406
  const semanticKeyInFieldGroup = _findSemanticKeyValuesInFieldGroup(dataFieldGroup, semanticKey.values);
2376
2407
  if (semanticKey.semanticKeyFound) {
2377
- const formatOptionsObj: any = {
2408
+ const formatOptionsObj: FormatOptionsType = {
2378
2409
  hasDraftIndicator: true,
2379
2410
  semantickeys: semanticKey.values,
2380
- objectStatusTextVisibility: compileExpression(getRowStatusVisibility(name, false))
2411
+ showErrorObjectStatus: compileExpression(getRowStatusVisibility(name, false))
2381
2412
  };
2382
2413
  if (isFieldGroupColumn && semanticKeyInFieldGroup.semanticKeyHasPropertyInFieldGroup) {
2383
- formatOptionsObj["objectStatusTextVisibility"] = compileExpression(getRowStatusVisibility(name, true));
2384
- formatOptionsObj["fieldGroupDraftIndicatorPropertyPath"] = semanticKeyInFieldGroup.propertyPath;
2414
+ formatOptionsObj.showErrorObjectStatus = compileExpression(getRowStatusVisibility(name, true));
2415
+ formatOptionsObj.fieldGroupDraftIndicatorPropertyPath = semanticKeyInFieldGroup.propertyPath;
2385
2416
  }
2386
2417
  return formatOptionsObj;
2387
2418
  } else if (!semanticKeyInFieldGroup.semanticKeyHasPropertyInFieldGroup) {
@@ -2391,7 +2422,7 @@ function getDefaultDraftIndicatorForColumn(
2391
2422
  return {
2392
2423
  fieldGroupDraftIndicatorPropertyPath: semanticKeyInFieldGroup.propertyPath,
2393
2424
  fieldGroupName: name,
2394
- objectStatusTextVisibility: compileExpression(getRowStatusVisibility(name, true))
2425
+ showErrorObjectStatus: compileExpression(getRowStatusVisibility(name, true))
2395
2426
  };
2396
2427
  }
2397
2428
  }
@@ -2440,9 +2471,10 @@ function _getMaxImportance(fields: DataFieldTypes[]): Importance {
2440
2471
  * @param semanticKeys
2441
2472
  * @returns The importance value
2442
2473
  */
2443
- export function getImportance(dataField: DataFieldAbstractTypes, semanticKeys: SemanticKey): Importance | undefined {
2474
+ export function getImportance(dataField: DataFieldAbstractTypes | undefined, semanticKeys: SemanticKey): Importance | undefined {
2444
2475
  //Evaluate default Importance is not set explicitly
2445
- let fieldsWithImportance, mapSemanticKeys: any;
2476
+ let fieldsWithImportance,
2477
+ mapSemanticKeys: string[] = [];
2446
2478
  //Check if semanticKeys are defined at the EntitySet level
2447
2479
  if (semanticKeys && semanticKeys.length > 0) {
2448
2480
  mapSemanticKeys = semanticKeys.map(function (key) {
@@ -2452,39 +2484,42 @@ export function getImportance(dataField: DataFieldAbstractTypes, semanticKeys: S
2452
2484
  if (!dataField) {
2453
2485
  return undefined;
2454
2486
  }
2455
- if (dataField.$Type === UIAnnotationTypes.DataFieldForAnnotation) {
2456
- const fieldGroupData = (dataField as any).Target["$target"]["Data"] as FieldGroupType,
2457
- fieldGroupHasSemanticKey =
2487
+
2488
+ if (isAnnotationOfType<DataFieldForAnnotation>(dataField, UIAnnotationTypes.DataFieldForAnnotation)) {
2489
+ const dataFieldTarget = dataField.Target.$target;
2490
+ if (isAnnotationOfType<FieldGroup>(dataFieldTarget, UIAnnotationTypes.FieldGroupType)) {
2491
+ const fieldGroupData = dataFieldTarget.Data;
2492
+ const fieldGroupHasSemanticKey =
2458
2493
  fieldGroupData &&
2459
- (fieldGroupData as any).some(function (fieldGroupDataField: DataFieldAbstractTypes) {
2494
+ fieldGroupData.some(function (fieldGroupDataField: DataFieldAbstractTypes) {
2460
2495
  return (
2461
2496
  (fieldGroupDataField as unknown as DataFieldTypes)?.Value?.path &&
2462
2497
  fieldGroupDataField.$Type !== UIAnnotationTypes.DataFieldForAnnotation &&
2463
- mapSemanticKeys &&
2464
2498
  mapSemanticKeys.includes((fieldGroupDataField as unknown as DataFieldTypes)?.Value?.path)
2465
2499
  );
2466
2500
  });
2467
- //If a FieldGroup contains a semanticKey, importance set to High
2468
- if (fieldGroupHasSemanticKey) {
2469
- return Importance.High;
2470
- } else {
2471
- //If the DataFieldForAnnotation has an Importance we take it
2472
- if (dataField?.annotations?.UI?.Importance) {
2473
- return _getDataFieldImportance(dataField as unknown as DataFieldTypes);
2501
+ //If a FieldGroup contains a semanticKey, importance set to High
2502
+ if (fieldGroupHasSemanticKey) {
2503
+ return Importance.High;
2504
+ } else {
2505
+ //If the DataFieldForAnnotation has an Importance we take it
2506
+ if (dataField?.annotations?.UI?.Importance) {
2507
+ return _getDataFieldImportance(dataField as unknown as DataFieldTypes);
2508
+ }
2509
+ // else the highest importance (if any) is returned
2510
+ fieldsWithImportance =
2511
+ fieldGroupData &&
2512
+ fieldGroupData.filter(function (item) {
2513
+ return item?.annotations?.UI?.Importance;
2514
+ });
2515
+ return _getMaxImportance(fieldsWithImportance as DataFieldTypes[]);
2474
2516
  }
2475
- // else the highest importance (if any) is returned
2476
- fieldsWithImportance =
2477
- fieldGroupData &&
2478
- (fieldGroupData as any).filter(function (item: DataFieldTypes) {
2479
- return item?.annotations?.UI?.Importance;
2480
- });
2481
- return _getMaxImportance(fieldsWithImportance as DataFieldTypes[]);
2517
+ //If the current field is a semanticKey, importance set to High
2482
2518
  }
2483
- //If the current field is a semanticKey, importance set to High
2484
2519
  }
2520
+
2485
2521
  return (dataField as DataFieldTypes).Value &&
2486
2522
  (dataField as DataFieldTypes)?.Value?.path &&
2487
- mapSemanticKeys &&
2488
2523
  mapSemanticKeys.includes((dataField as DataFieldTypes).Value.path)
2489
2524
  ? Importance.High
2490
2525
  : _getDataFieldImportance(dataField as unknown as DataFieldTypes);
@@ -2522,7 +2557,7 @@ const getColumnsFromAnnotations = function (
2522
2557
  if (!_isValidColumn(lineItem)) {
2523
2558
  return;
2524
2559
  }
2525
- let exportSettings: exportSettings | null = null;
2560
+ let exportSettings: columnExportSettings | null = null;
2526
2561
  const semanticObjectAnnotationPath =
2527
2562
  isDataFieldTypes(lineItem) && lineItem.Value?.$target?.fullyQualifiedName
2528
2563
  ? getSemanticObjectPath(converterContext, lineItem)
@@ -2551,7 +2586,7 @@ const getColumnsFromAnnotations = function (
2551
2586
  lineItem.$Type === UIAnnotationTypes.DataFieldForAnnotation &&
2552
2587
  lineItem.Target?.$target?.$Type === UIAnnotationTypes.FieldGroupType
2553
2588
  ) {
2554
- fieldGroupHiddenExpressions = _getFieldGroupHiddenExpressions(lineItem, formatOptions);
2589
+ fieldGroupHiddenExpressions = _getFieldGroupHiddenExpressions(lineItem);
2555
2590
  }
2556
2591
  if (_isExportableColumn(lineItem)) {
2557
2592
  //exclude the types listed above for the Export (generates error on Export as PDF)
@@ -2576,14 +2611,17 @@ const getColumnsFromAnnotations = function (
2576
2611
  }
2577
2612
  }
2578
2613
 
2579
- const propertyTypeConfig = dataType && getTypeConfig(lineItem, dataType);
2580
- const typeConfig: configType = {
2614
+ let propertyTypeConfig: PropertyTypeConfig | undefined;
2615
+ if (dataType) {
2616
+ propertyTypeConfig = getTypeConfig(lineItem, dataType);
2617
+ }
2618
+ const typeConfig: PropertyTypeConfig = {
2581
2619
  className: dataType as keyof typeof DefaultTypeForEdmType,
2582
2620
  formatOptions: {
2583
2621
  ...formatOptions,
2584
2622
  ...propertyTypeConfig?.formatOptions
2585
2623
  },
2586
- constraints: propertyTypeConfig?.constraints
2624
+ constraints: { ...propertyTypeConfig?.constraints }
2587
2625
  };
2588
2626
  const visualSettings: VisualSettings = {};
2589
2627
  if (!dataType || !typeConfig) {
@@ -2601,7 +2639,7 @@ const getColumnsFromAnnotations = function (
2601
2639
  FieldGroupHiddenExpressions: fieldGroupHiddenExpressions,
2602
2640
  annotationPath: converterContext.getEntitySetBasedAnnotationPath(lineItem.fullyQualifiedName),
2603
2641
  semanticObjectPath: semanticObjectAnnotationPath,
2604
- availability: isReferencePropertyStaticallyHidden(lineItem) ? AvailabilityType.Hidden : AvailabilityType.Default,
2642
+ availability: isReferencePropertyStaticallyHidden(lineItem) ? "Hidden" : "Default",
2605
2643
  name: name,
2606
2644
  showDataFieldsLabel: showDataFieldsLabel,
2607
2645
  relativePath: relativePath,
@@ -2742,11 +2780,11 @@ const getColumnsFromManifest = function (
2742
2780
  return annotationColumns.some((annotationColumn) => annotationColumn.key === key);
2743
2781
  }
2744
2782
 
2745
- function isSlotColumn(manifestColumn: any): manifestColumn is FragmentDefinedSlotColumn {
2783
+ function isSlotColumn(manifestColumn: CustomDefinedTableColumn): manifestColumn is FragmentDefinedSlotColumn {
2746
2784
  return manifestColumn.type === ColumnType.Slot;
2747
2785
  }
2748
2786
 
2749
- function isCustomColumn(manifestColumn: any): manifestColumn is ManifestDefinedCustomColumn {
2787
+ function isCustomColumn(manifestColumn: CustomDefinedTableColumn): manifestColumn is ManifestDefinedCustomColumn {
2750
2788
  return manifestColumn.type === undefined && !!manifestColumn.template;
2751
2789
  }
2752
2790
 
@@ -2803,7 +2841,7 @@ const getColumnsFromManifest = function (
2803
2841
  header: manifestColumn.header,
2804
2842
  importance: manifestColumn?.importance || Importance.None,
2805
2843
  horizontalAlign: manifestColumn?.horizontalAlign || HorizontalAlign.Begin,
2806
- availability: manifestColumn?.availability || AvailabilityType.Default,
2844
+ availability: manifestColumn?.availability || "Default",
2807
2845
  template: manifestColumn.template,
2808
2846
  propertyInfos: propertyInfos,
2809
2847
  exportSettings: propertyInfos
@@ -2868,7 +2906,7 @@ export function getP13nMode(
2868
2906
  const isResponsiveTable = tableManifestConfiguration.type === "ResponsiveTable";
2869
2907
  if (tableManifestSettings?.tableSettings?.personalization !== undefined) {
2870
2908
  // Personalization configured in manifest.
2871
- const personalization: any = tableManifestSettings.tableSettings.personalization;
2909
+ const personalization = tableManifestSettings.tableSettings.personalization;
2872
2910
  if (personalization === true) {
2873
2911
  // Table personalization fully enabled.
2874
2912
  switch (tableManifestConfiguration.type) {
@@ -3117,7 +3155,8 @@ export function getTableAnnotationConfiguration(
3117
3155
  ): TableAnnotationConfiguration {
3118
3156
  // Need to get the target
3119
3157
  const { navigationPropertyPath } = splitPath(visualizationPath);
3120
- const title: any = converterContext.getDataModelObjectPath().targetEntityType.annotations?.UI?.HeaderInfo?.TypeNamePlural;
3158
+ const typeNamePlural = converterContext.getDataModelObjectPath().targetEntityType.annotations?.UI?.HeaderInfo?.TypeNamePlural;
3159
+ const title = typeNamePlural && compileExpression(getExpressionFromAnnotation(typeNamePlural));
3121
3160
  const entitySet = converterContext.getDataModelObjectPath().targetEntitySet;
3122
3161
  const pageManifestSettings: ManifestWrapper = converterContext.getManifestWrapper();
3123
3162
  const hasAbsolutePath = navigationPropertyPath.length === 0,
@@ -3141,13 +3180,8 @@ export function getTableAnnotationConfiguration(
3141
3180
  );
3142
3181
 
3143
3182
  const deleteButtonVisibilityExpression = getDeleteVisibility(converterContext, standardActionsContext);
3144
- const createButtonVisibilityExpression = getCreateVisibility(converterContext, standardActionsContext);
3145
3183
  const massEditButtonVisibilityExpression = getMassEditVisibility(converterContext, standardActionsContext);
3146
- const isInsertUpdateTemplated = getInsertUpdateActionsTemplating(
3147
- standardActionsContext,
3148
- isDraftOrStickySupported(converterContext),
3149
- compileExpression(createButtonVisibilityExpression) === "false"
3150
- );
3184
+ const isInsertUpdateTemplated = getInsertUpdateActionsTemplating(standardActionsContext, isDraftOrStickySupported(converterContext));
3151
3185
 
3152
3186
  const selectionMode = getSelectionMode(
3153
3187
  lineItemAnnotation,
@@ -3208,8 +3242,8 @@ export function getTableAnnotationConfiguration(
3208
3242
  };
3209
3243
  }
3210
3244
 
3211
- function _getExportDataType(dataType: string, isComplexProperty: boolean = false): string {
3212
- let exportDataType: string = "String";
3245
+ function _getExportDataType(dataType: string, isComplexProperty = false): string {
3246
+ let exportDataType = "String";
3213
3247
  if (isComplexProperty) {
3214
3248
  if (dataType === "Edm.DateTimeOffset") {
3215
3249
  exportDataType = "DateTime";
@@ -3251,8 +3285,8 @@ function _getExportDataType(dataType: string, isComplexProperty: boolean = false
3251
3285
  * @returns The split path
3252
3286
  */
3253
3287
  export function splitPath(visualizationPath: string) {
3254
- let [navigationPropertyPath, annotationPath] = visualizationPath.split("@");
3255
-
3288
+ const [targetNavigationPropertyPath, annotationPath] = visualizationPath.split("@");
3289
+ let navigationPropertyPath = targetNavigationPropertyPath;
3256
3290
  if (navigationPropertyPath.lastIndexOf("/") === navigationPropertyPath.length - 1) {
3257
3291
  // Drop trailing slash
3258
3292
  navigationPropertyPath = navigationPropertyPath.substr(0, navigationPropertyPath.length - 1);
@@ -3270,8 +3304,8 @@ export function getSelectionVariantConfiguration(
3270
3304
  if (selection) {
3271
3305
  const propertyNames: string[] = [];
3272
3306
  selection.SelectOptions?.forEach((selectOption: SelectOptionType) => {
3273
- const propertyName: any = selectOption.PropertyName;
3274
- const propertyPath: string = propertyName.value;
3307
+ const propertyName = selectOption.PropertyName;
3308
+ const propertyPath: string = propertyName?.value ?? "";
3275
3309
  if (propertyNames.indexOf(propertyPath) === -1) {
3276
3310
  propertyNames.push(propertyPath);
3277
3311
  }
@@ -3340,16 +3374,20 @@ function _getTableType(
3340
3374
  return tableType;
3341
3375
  }
3342
3376
 
3343
- function _getGridTableMode(tableType: TableType, tableSettings: TableManifestSettingsConfiguration, isTemplateListReport: boolean): any {
3377
+ function _getGridTableMode(
3378
+ tableType: TableType,
3379
+ tableSettings: TableManifestSettingsConfiguration,
3380
+ isTemplateListReport: boolean
3381
+ ): { rowCountMode?: GridTableRowCountMode; rowCount?: number } {
3344
3382
  if (tableType === "GridTable") {
3345
3383
  if (isTemplateListReport) {
3346
3384
  return {
3347
3385
  rowCountMode: "Auto",
3348
- rowCount: "3"
3386
+ rowCount: 3
3349
3387
  };
3350
3388
  } else {
3351
3389
  return {
3352
- rowCountMode: tableSettings.rowCountMode ? tableSettings.rowCountMode : "Fixed",
3390
+ rowCountMode: tableSettings.rowCountMode ?? "Fixed",
3353
3391
  rowCount: tableSettings.rowCount ? tableSettings.rowCount : 5
3354
3392
  };
3355
3393
  }
@@ -3375,10 +3413,10 @@ function _getTableInlineCreationRowCount(_tableSettings: TableManifestSettingsCo
3375
3413
  function _getFilters(
3376
3414
  tableSettings: TableManifestSettingsConfiguration,
3377
3415
  quickFilterPaths: { annotationPath: string }[],
3378
- quickSelectionVariant: any,
3416
+ quickSelectionVariant: unknown,
3379
3417
  path: { annotationPath: string },
3380
3418
  converterContext: ConverterContext
3381
- ): any {
3419
+ ) {
3382
3420
  if (quickSelectionVariant) {
3383
3421
  quickFilterPaths.push({ annotationPath: path.annotationPath });
3384
3422
  }
@@ -3405,13 +3443,13 @@ function _getFilterConfiguration(
3405
3443
  tableSettings: TableManifestSettingsConfiguration,
3406
3444
  lineItemAnnotation: LineItem | undefined,
3407
3445
  converterContext: ConverterContext
3408
- ): any {
3446
+ ) {
3409
3447
  if (!lineItemAnnotation) {
3410
3448
  return {};
3411
3449
  }
3412
3450
  const quickFilterPaths: { annotationPath: string }[] = [];
3413
3451
  const targetEntityType = converterContext.getAnnotationEntityType(lineItemAnnotation);
3414
- let quickSelectionVariant: any;
3452
+ let quickSelectionVariant;
3415
3453
  let filters;
3416
3454
  tableSettings?.quickVariantSelection?.paths?.forEach((path: { annotationPath: string }) => {
3417
3455
  quickSelectionVariant = targetEntityType.resolvePath(path.annotationPath);
@@ -3430,7 +3468,7 @@ function _getCollectedNavigationPropertyLabels(relativePath: string, converterCo
3430
3468
  const navigationProperties = enhanceDataModelPath(converterContext.getDataModelObjectPath(), relativePath).navigationProperties;
3431
3469
  if (navigationProperties?.length > 0) {
3432
3470
  const collectedNavigationPropertyLabels: string[] = [];
3433
- navigationProperties.forEach((navProperty: any) => {
3471
+ navigationProperties.forEach((navProperty) => {
3434
3472
  collectedNavigationPropertyLabels.push(getLabel(navProperty) || navProperty.name);
3435
3473
  });
3436
3474
  return collectedNavigationPropertyLabels;
@@ -3496,17 +3534,23 @@ export function getTableManifestConfiguration(
3496
3534
  return tableConfiguration;
3497
3535
  }
3498
3536
 
3499
- export function getTypeConfig(oProperty: Property | DataFieldAbstractTypes, dataType: string | undefined): any {
3500
- let oTargetMapping = EDM_TYPE_MAPPING[(oProperty as Property)?.type] || (dataType ? EDM_TYPE_MAPPING[dataType] : undefined);
3501
- if (!oTargetMapping && (oProperty as Property)?.targetType && (oProperty as Property).targetType?._type === "TypeDefinition") {
3502
- oTargetMapping = EDM_TYPE_MAPPING[((oProperty as Property).targetType as TypeDefinition).underlyingType];
3537
+ export function getTypeConfig(oProperty: Property | DataFieldAbstractTypes, dataType: string | undefined): PropertyTypeConfig {
3538
+ let oTargetMapping;
3539
+ if (isProperty(oProperty)) {
3540
+ oTargetMapping = isTypeDefinition(oProperty.targetType)
3541
+ ? EDM_TYPE_MAPPING[oProperty.targetType.underlyingType]
3542
+ : EDM_TYPE_MAPPING[oProperty.type];
3503
3543
  }
3504
- const propertyTypeConfig: configType = {
3544
+ if (oTargetMapping === undefined && dataType !== undefined) {
3545
+ oTargetMapping = EDM_TYPE_MAPPING[dataType];
3546
+ }
3547
+
3548
+ const propertyTypeConfig: PropertyTypeConfig = {
3505
3549
  type: oTargetMapping?.type,
3506
3550
  constraints: {},
3507
3551
  formatOptions: {}
3508
3552
  };
3509
- if (isProperty(oProperty)) {
3553
+ if (isProperty(oProperty) && oTargetMapping !== undefined) {
3510
3554
  propertyTypeConfig.constraints = {
3511
3555
  scale: oTargetMapping.constraints?.$Scale ? oProperty.scale : undefined,
3512
3556
  precision: oTargetMapping.constraints?.$Precision ? oProperty.precision : undefined,