@sapui5/sap.fe.core 1.112.0 → 1.114.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 (434) 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 +70 -6
  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 +118 -3
  7. package/src/sap/fe/core/AppComponent-dbg.js +16 -6
  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 +21 -7
  11. package/src/sap/fe/core/AppStateHandler-dbg.js +11 -10
  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 +14 -11
  15. package/src/sap/fe/core/CommonUtils-dbg.js +102 -175
  16. package/src/sap/fe/core/CommonUtils.js +1 -1
  17. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  18. package/src/sap/fe/core/CommonUtils.ts +114 -211
  19. package/src/sap/fe/core/ExtensionAPI-dbg.js +3 -1
  20. package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
  21. package/src/sap/fe/core/ExtensionAPI.ts +2 -0
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase-dbg.js +2 -1
  23. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +1 -1
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js.map +1 -1
  25. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +1 -0
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport-dbg.js +2 -2
  27. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js +1 -1
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.js.map +1 -1
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockSupport.ts +13 -18
  30. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor-dbg.js +32 -24
  31. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js +4 -4
  32. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.js.map +1 -1
  33. package/src/sap/fe/core/buildingBlocks/BuildingBlockTemplateProcessor.ts +41 -29
  34. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock-dbg.js +2 -2
  35. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js +1 -1
  36. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.js.map +1 -1
  37. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlock.ts +1 -1
  38. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment-dbg.js +2 -2
  39. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js +1 -1
  40. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.js.map +1 -1
  41. package/src/sap/fe/core/buildingBlocks/RuntimeBuildingBlockFragment.ts +3 -1
  42. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +124 -57
  43. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  44. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  45. package/src/sap/fe/core/controllerextensions/EditFlow.ts +146 -73
  46. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +35 -74
  47. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  48. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  49. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +35 -78
  50. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +217 -127
  51. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  52. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  53. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +227 -129
  54. package/src/sap/fe/core/controllerextensions/PageReady-dbg.js +3 -5
  55. package/src/sap/fe/core/controllerextensions/PageReady.js +1 -1
  56. package/src/sap/fe/core/controllerextensions/PageReady.js.map +1 -1
  57. package/src/sap/fe/core/controllerextensions/PageReady.ts +2 -4
  58. package/src/sap/fe/core/controllerextensions/Share-dbg.js +3 -2
  59. package/src/sap/fe/core/controllerextensions/Share.js +1 -1
  60. package/src/sap/fe/core/controllerextensions/Share.js.map +1 -1
  61. package/src/sap/fe/core/controllerextensions/Share.ts +2 -1
  62. package/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +19 -14
  63. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  64. package/src/sap/fe/core/controllerextensions/SideEffects.js.map +1 -1
  65. package/src/sap/fe/core/controllerextensions/SideEffects.ts +22 -14
  66. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +41 -24
  67. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  68. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  69. package/src/sap/fe/core/controllerextensions/ViewState.ts +64 -31
  70. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync-dbg.js +8 -8
  71. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +1 -1
  72. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js.map +1 -1
  73. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +7 -9
  74. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon-dbg.js +7 -45
  75. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +1 -1
  76. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js.map +1 -1
  77. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +5 -48
  78. package/src/sap/fe/core/controllerextensions/collaboration/Manage-dbg.js +4 -4
  79. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +1 -1
  80. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js.map +1 -1
  81. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +2 -2
  82. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +3 -3
  83. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating-dbg.js +52 -0
  84. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js +6 -0
  85. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.js.map +1 -0
  86. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialogTemplating.ts +46 -0
  87. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog-dbg.js +103 -0
  88. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +6 -0
  89. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js.map +1 -0
  90. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +124 -0
  91. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +106 -205
  92. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  93. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  94. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +121 -216
  95. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +31 -4
  96. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  97. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  98. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +38 -3
  99. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup-dbg.js +13 -10
  100. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +1 -1
  101. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js.map +1 -1
  102. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +7 -20
  103. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal-dbg.js +9 -4
  104. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js +1 -1
  105. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.js.map +1 -1
  106. package/src/sap/fe/core/controllerextensions/editFlow/operations/_internal.ts +12 -3
  107. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade-dbg.js +10 -6
  108. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +1 -1
  109. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js.map +1 -1
  110. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +20 -11
  111. package/src/sap/fe/core/controllerextensions/editFlow/sticky-dbg.js +1 -8
  112. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +1 -1
  113. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js.map +1 -1
  114. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +0 -9
  115. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +19 -15
  116. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  117. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  118. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +19 -22
  119. package/src/sap/fe/core/controllerextensions/routing/RouterProxy-dbg.js +67 -1
  120. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +1 -1
  121. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js.map +1 -1
  122. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +68 -0
  123. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -0
  124. package/src/sap/fe/core/controls/CommandExecution-dbg.js +4 -9
  125. package/src/sap/fe/core/controls/CommandExecution.js +1 -1
  126. package/src/sap/fe/core/controls/CommandExecution.js.map +1 -1
  127. package/src/sap/fe/core/controls/CommandExecution.ts +0 -8
  128. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block-dbg.js +335 -0
  129. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +6 -0
  130. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js.map +1 -0
  131. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +336 -0
  132. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -0
  133. package/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +3 -28
  134. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +1 -1
  135. package/src/sap/fe/core/controls/filterbar/VisualFilter.js.map +1 -1
  136. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +8 -29
  137. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +30 -1
  138. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +1 -1
  139. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js.map +1 -1
  140. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +38 -0
  141. package/src/sap/fe/core/converters/ConverterContext-dbg.js +3 -5
  142. package/src/sap/fe/core/converters/ConverterContext.js +1 -1
  143. package/src/sap/fe/core/converters/ConverterContext.js.map +1 -1
  144. package/src/sap/fe/core/converters/ConverterContext.ts +2 -5
  145. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  146. package/src/sap/fe/core/converters/ManifestSettings.ts +7 -6
  147. package/src/sap/fe/core/converters/ManifestWrapper-dbg.js +5 -3
  148. package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
  149. package/src/sap/fe/core/converters/ManifestWrapper.js.map +1 -1
  150. package/src/sap/fe/core/converters/ManifestWrapper.ts +7 -1
  151. package/src/sap/fe/core/converters/MetaModelConverter-dbg.js +49 -28
  152. package/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
  153. package/src/sap/fe/core/converters/MetaModelConverter.js.map +1 -1
  154. package/src/sap/fe/core/converters/MetaModelConverter.ts +62 -30
  155. package/src/sap/fe/core/converters/TemplateConverter-dbg.js +2 -3
  156. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  157. package/src/sap/fe/core/converters/TemplateConverter.js.map +1 -1
  158. package/src/sap/fe/core/converters/TemplateConverter.ts +1 -6
  159. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +22 -7
  160. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  161. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  162. package/src/sap/fe/core/converters/annotations/DataField.ts +20 -7
  163. package/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +701 -681
  164. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
  165. package/src/sap/fe/core/converters/common/AnnotationConverter.js.map +1 -1
  166. package/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -12
  167. package/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
  168. package/src/sap/fe/core/converters/controls/Common/Action.js.map +1 -1
  169. package/src/sap/fe/core/converters/controls/Common/Action.ts +9 -14
  170. package/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +32 -20
  171. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  172. package/src/sap/fe/core/converters/controls/Common/Chart.js.map +1 -1
  173. package/src/sap/fe/core/converters/controls/Common/Chart.ts +30 -18
  174. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +4 -5
  175. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  176. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  177. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +6 -37
  178. package/src/sap/fe/core/converters/controls/Common/Form-dbg.js +7 -6
  179. package/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
  180. package/src/sap/fe/core/converters/controls/Common/Form.js.map +1 -1
  181. package/src/sap/fe/core/converters/controls/Common/Form.ts +5 -11
  182. package/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +5 -5
  183. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  184. package/src/sap/fe/core/converters/controls/Common/KPI.js.map +1 -1
  185. package/src/sap/fe/core/converters/controls/Common/KPI.ts +3 -4
  186. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +135 -85
  187. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  188. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  189. package/src/sap/fe/core/converters/controls/Common/Table.ts +189 -119
  190. package/src/sap/fe/core/converters/controls/Common/table/StandardActions-dbg.js +56 -22
  191. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
  192. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js.map +1 -1
  193. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +67 -31
  194. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +137 -49
  195. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  196. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  197. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +166 -43
  198. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +33 -14
  199. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +1 -1
  200. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js.map +1 -1
  201. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +31 -12
  202. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +27 -18
  203. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +1 -1
  204. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js.map +1 -1
  205. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +36 -23
  206. package/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +37 -15
  207. package/src/sap/fe/core/converters/helpers/Aggregation.js +1 -1
  208. package/src/sap/fe/core/converters/helpers/Aggregation.js.map +1 -1
  209. package/src/sap/fe/core/converters/helpers/Aggregation.ts +36 -20
  210. package/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +8 -6
  211. package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
  212. package/src/sap/fe/core/converters/helpers/BindingHelper.js.map +1 -1
  213. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +8 -6
  214. package/src/sap/fe/core/converters/helpers/InsightsHelpers-dbg.js +39 -0
  215. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +6 -0
  216. package/src/sap/fe/core/converters/helpers/InsightsHelpers.js.map +1 -0
  217. package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +45 -0
  218. package/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +3 -2
  219. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
  220. package/src/sap/fe/core/converters/helpers/IssueManager.js.map +1 -1
  221. package/src/sap/fe/core/converters/helpers/IssueManager.ts +2 -1
  222. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +17 -16
  223. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
  224. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js.map +1 -1
  225. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +11 -11
  226. package/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +20 -17
  227. package/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
  228. package/src/sap/fe/core/converters/templates/ListReportConverter.js.map +1 -1
  229. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +25 -56
  230. package/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +13 -13
  231. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +1 -1
  232. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js.map +1 -1
  233. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +18 -13
  234. package/src/sap/fe/core/formatters/CollaborationFormatter-dbg.js +17 -33
  235. package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
  236. package/src/sap/fe/core/formatters/CollaborationFormatter.js.map +1 -1
  237. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +27 -22
  238. package/src/sap/fe/core/formatters/TableFormatter-dbg.js +2 -6
  239. package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
  240. package/src/sap/fe/core/formatters/TableFormatter.js.map +1 -1
  241. package/src/sap/fe/core/formatters/TableFormatter.ts +1 -5
  242. package/src/sap/fe/core/formatters/ValueFormatter-dbg.js +13 -5
  243. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
  244. package/src/sap/fe/core/formatters/ValueFormatter.js.map +1 -1
  245. package/src/sap/fe/core/formatters/ValueFormatter.ts +19 -9
  246. package/src/sap/fe/core/fpm/manifest.json +1 -1
  247. package/src/sap/fe/core/helpers/BindingToolkit-dbg.js +2 -1
  248. package/src/sap/fe/core/helpers/BindingToolkit.js +1 -1
  249. package/src/sap/fe/core/helpers/BindingToolkit.js.map +1 -1
  250. package/src/sap/fe/core/helpers/BindingToolkit.ts +1 -1
  251. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +58 -35
  252. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  253. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  254. package/src/sap/fe/core/helpers/DeleteHelper.ts +76 -54
  255. package/src/sap/fe/core/helpers/MassEditHelper-dbg.js +8 -4
  256. package/src/sap/fe/core/helpers/MassEditHelper.js +1 -1
  257. package/src/sap/fe/core/helpers/MassEditHelper.js.map +1 -1
  258. package/src/sap/fe/core/helpers/MassEditHelper.ts +7 -5
  259. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +6 -5
  260. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  261. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  262. package/src/sap/fe/core/helpers/MessageStrip.ts +4 -4
  263. package/src/sap/fe/core/helpers/MetaModelFunction-dbg.js +167 -4
  264. package/src/sap/fe/core/helpers/MetaModelFunction.js +1 -1
  265. package/src/sap/fe/core/helpers/MetaModelFunction.js.map +1 -1
  266. package/src/sap/fe/core/helpers/MetaModelFunction.ts +205 -3
  267. package/src/sap/fe/core/helpers/ModelHelper-dbg.js +37 -73
  268. package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  269. package/src/sap/fe/core/helpers/ModelHelper.js.map +1 -1
  270. package/src/sap/fe/core/helpers/ModelHelper.ts +41 -68
  271. package/src/sap/fe/core/helpers/RecommendationHelper-dbg.js +71 -0
  272. package/src/sap/fe/core/helpers/RecommendationHelper.js +6 -0
  273. package/src/sap/fe/core/helpers/RecommendationHelper.js.map +1 -0
  274. package/src/sap/fe/core/helpers/RecommendationHelper.ts +94 -0
  275. package/src/sap/fe/core/helpers/ResourceModelHelper-dbg.js +19 -3
  276. package/src/sap/fe/core/helpers/ResourceModelHelper.js +1 -1
  277. package/src/sap/fe/core/helpers/ResourceModelHelper.js.map +1 -1
  278. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +21 -0
  279. package/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +40 -6
  280. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  281. package/src/sap/fe/core/helpers/SemanticDateOperators.js.map +1 -1
  282. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +39 -5
  283. package/src/sap/fe/core/helpers/SizeHelper-dbg.js +53 -0
  284. package/src/sap/fe/core/helpers/SizeHelper.js +6 -0
  285. package/src/sap/fe/core/helpers/SizeHelper.js.map +1 -0
  286. package/src/sap/fe/core/helpers/SizeHelper.ts +51 -0
  287. package/src/sap/fe/core/helpers/StableIdHelper-dbg.js +52 -26
  288. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
  289. package/src/sap/fe/core/helpers/StableIdHelper.js.map +1 -1
  290. package/src/sap/fe/core/helpers/StableIdHelper.ts +49 -25
  291. package/src/sap/fe/core/helpers/TypeGuards-dbg.js +147 -1
  292. package/src/sap/fe/core/helpers/TypeGuards.js +1 -1
  293. package/src/sap/fe/core/helpers/TypeGuards.js.map +1 -1
  294. package/src/sap/fe/core/helpers/TypeGuards.ts +151 -1
  295. package/src/sap/fe/core/jsx-runtime/jsx-control-dbg.js +25 -2
  296. package/src/sap/fe/core/jsx-runtime/jsx-control.js +1 -1
  297. package/src/sap/fe/core/jsx-runtime/jsx-control.js.map +1 -1
  298. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +24 -0
  299. package/src/sap/fe/core/jsx-runtime/jsx-dbg.js +1 -1
  300. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -0
  301. package/src/sap/fe/core/library-dbg.js +1 -1
  302. package/src/sap/fe/core/library-preload.js +123 -95
  303. package/src/sap/fe/core/library-preload.js.map +1 -1
  304. package/src/sap/fe/core/library.js +1 -1
  305. package/src/sap/fe/core/manifest.json +1 -1
  306. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration-dbg.js +67 -15
  307. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
  308. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js.map +1 -1
  309. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +66 -14
  310. package/src/sap/fe/core/messagebundle.properties +6 -6
  311. package/src/sap/fe/core/messagebundle_ar.properties +5 -6
  312. package/src/sap/fe/core/messagebundle_bg.properties +11 -12
  313. package/src/sap/fe/core/messagebundle_ca.properties +3 -4
  314. package/src/sap/fe/core/messagebundle_cs.properties +3 -4
  315. package/src/sap/fe/core/messagebundle_cy.properties +3 -4
  316. package/src/sap/fe/core/messagebundle_da.properties +3 -4
  317. package/src/sap/fe/core/messagebundle_de.properties +11 -12
  318. package/src/sap/fe/core/messagebundle_el.properties +5 -6
  319. package/src/sap/fe/core/messagebundle_en.properties +3 -4
  320. package/src/sap/fe/core/messagebundle_en_GB.properties +4 -5
  321. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +3 -4
  322. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +3 -4
  323. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +3 -2
  324. package/src/sap/fe/core/messagebundle_es.properties +3 -4
  325. package/src/sap/fe/core/messagebundle_es_MX.properties +3 -4
  326. package/src/sap/fe/core/messagebundle_et.properties +3 -4
  327. package/src/sap/fe/core/messagebundle_fi.properties +3 -4
  328. package/src/sap/fe/core/messagebundle_fr.properties +3 -4
  329. package/src/sap/fe/core/messagebundle_fr_CA.properties +11 -12
  330. package/src/sap/fe/core/messagebundle_hi.properties +11 -12
  331. package/src/sap/fe/core/messagebundle_hr.properties +3 -4
  332. package/src/sap/fe/core/messagebundle_hu.properties +3 -4
  333. package/src/sap/fe/core/messagebundle_id.properties +11 -12
  334. package/src/sap/fe/core/messagebundle_it.properties +3 -4
  335. package/src/sap/fe/core/messagebundle_iw.properties +3 -4
  336. package/src/sap/fe/core/messagebundle_ja.properties +4 -5
  337. package/src/sap/fe/core/messagebundle_kk.properties +3 -4
  338. package/src/sap/fe/core/messagebundle_ko.properties +11 -12
  339. package/src/sap/fe/core/messagebundle_lt.properties +3 -4
  340. package/src/sap/fe/core/messagebundle_lv.properties +11 -12
  341. package/src/sap/fe/core/messagebundle_ms.properties +3 -4
  342. package/src/sap/fe/core/messagebundle_nl.properties +3 -4
  343. package/src/sap/fe/core/messagebundle_no.properties +3 -4
  344. package/src/sap/fe/core/messagebundle_pl.properties +11 -12
  345. package/src/sap/fe/core/messagebundle_pt.properties +3 -4
  346. package/src/sap/fe/core/messagebundle_pt_PT.properties +3 -4
  347. package/src/sap/fe/core/messagebundle_ro.properties +14 -15
  348. package/src/sap/fe/core/messagebundle_ru.properties +11 -12
  349. package/src/sap/fe/core/messagebundle_sh.properties +3 -4
  350. package/src/sap/fe/core/messagebundle_sk.properties +3 -4
  351. package/src/sap/fe/core/messagebundle_sl.properties +3 -4
  352. package/src/sap/fe/core/messagebundle_sv.properties +11 -12
  353. package/src/sap/fe/core/messagebundle_th.properties +3 -4
  354. package/src/sap/fe/core/messagebundle_tr.properties +3 -4
  355. package/src/sap/fe/core/messagebundle_uk.properties +3 -4
  356. package/src/sap/fe/core/messagebundle_vi.properties +3 -4
  357. package/src/sap/fe/core/messagebundle_zh_CN.properties +11 -12
  358. package/src/sap/fe/core/messagebundle_zh_TW.properties +11 -12
  359. package/src/sap/fe/core/rootView/RootViewBaseController-dbg.js +22 -8
  360. package/src/sap/fe/core/rootView/RootViewBaseController.js +1 -1
  361. package/src/sap/fe/core/rootView/RootViewBaseController.js.map +1 -1
  362. package/src/sap/fe/core/rootView/RootViewBaseController.ts +17 -7
  363. package/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +36 -3
  364. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  365. package/src/sap/fe/core/services/EnvironmentServiceFactory.js.map +1 -1
  366. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +37 -1
  367. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +13 -1
  368. package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -1
  369. package/src/sap/fe/core/services/NavigationServiceFactory.js.map +1 -1
  370. package/src/sap/fe/core/services/NavigationServiceFactory.ts +13 -0
  371. package/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +7 -1
  372. package/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
  373. package/src/sap/fe/core/services/RoutingServiceFactory.js.map +1 -1
  374. package/src/sap/fe/core/services/RoutingServiceFactory.ts +20 -2
  375. package/src/sap/fe/core/services/ShellServicesFactory-dbg.js +7 -1
  376. package/src/sap/fe/core/services/ShellServicesFactory.js +1 -1
  377. package/src/sap/fe/core/services/ShellServicesFactory.js.map +1 -1
  378. package/src/sap/fe/core/services/ShellServicesFactory.ts +10 -0
  379. package/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +10 -7
  380. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +1 -1
  381. package/src/sap/fe/core/services/SideEffectsServiceFactory.js.map +1 -1
  382. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +12 -13
  383. package/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +9 -3
  384. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
  385. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js.map +1 -1
  386. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +11 -15
  387. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +4 -3
  388. package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
  389. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
  390. package/src/sap/fe/core/templating/CommonFormatters.ts +2 -2
  391. package/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +1 -1
  392. package/src/sap/fe/core/templating/CriticalityFormatters.ts +2 -2
  393. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +19 -18
  394. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  395. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  396. package/src/sap/fe/core/templating/DataModelPathHelper.ts +24 -18
  397. package/src/sap/fe/core/templating/DisplayModeFormatter-dbg.js +5 -5
  398. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  399. package/src/sap/fe/core/templating/DisplayModeFormatter.js.map +1 -1
  400. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -2
  401. package/src/sap/fe/core/templating/EntitySetHelper-dbg.js +19 -28
  402. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
  403. package/src/sap/fe/core/templating/EntitySetHelper.js.map +1 -1
  404. package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -24
  405. package/src/sap/fe/core/templating/EntityTypeHelper-dbg.js +48 -0
  406. package/src/sap/fe/core/templating/EntityTypeHelper.js +6 -0
  407. package/src/sap/fe/core/templating/EntityTypeHelper.js.map +1 -0
  408. package/src/sap/fe/core/templating/EntityTypeHelper.ts +37 -0
  409. package/src/sap/fe/core/templating/FilterHelper-dbg.js +12 -1
  410. package/src/sap/fe/core/templating/FilterHelper.js +1 -1
  411. package/src/sap/fe/core/templating/FilterHelper.js.map +1 -1
  412. package/src/sap/fe/core/templating/FilterHelper.ts +12 -0
  413. package/src/sap/fe/core/templating/FilterTemplating-dbg.js +7 -8
  414. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  415. package/src/sap/fe/core/templating/FilterTemplating.js.map +1 -1
  416. package/src/sap/fe/core/templating/FilterTemplating.ts +5 -8
  417. package/src/sap/fe/core/templating/PropertyFormatters-dbg.js +1 -6
  418. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
  419. package/src/sap/fe/core/templating/PropertyFormatters.js.map +1 -1
  420. package/src/sap/fe/core/templating/PropertyFormatters.ts +0 -5
  421. package/src/sap/fe/core/templating/PropertyHelper-dbg.js +13 -46
  422. package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
  423. package/src/sap/fe/core/templating/PropertyHelper.js.map +1 -1
  424. package/src/sap/fe/core/templating/PropertyHelper.ts +14 -43
  425. package/src/sap/fe/core/templating/UIFormatters-dbg.js +32 -26
  426. package/src/sap/fe/core/templating/UIFormatters.js +1 -1
  427. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
  428. package/src/sap/fe/core/templating/UIFormatters.ts +45 -34
  429. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +0 -91
  430. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +0 -59
  431. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +0 -171
  432. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +0 -6
  433. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js.map +0 -1
  434. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +0 -184
@@ -5,11 +5,9 @@ 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";
@@ -76,7 +74,14 @@ import {
76
74
  } from "sap/fe/core/helpers/BindingToolkit";
77
75
  import ModelHelper from "sap/fe/core/helpers/ModelHelper";
78
76
  import { generate, replaceSpecialChars } from "sap/fe/core/helpers/StableIdHelper";
79
- import { isAnnotationOfType } from "sap/fe/core/helpers/TypeGuards";
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";
80
85
  import type { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
81
86
  import {
82
87
  enhanceDataModelPath,
@@ -91,9 +96,9 @@ import {
91
96
  getAssociatedCurrencyProperty,
92
97
  getAssociatedTimezoneProperty,
93
98
  getAssociatedUnitProperty,
94
- isNavigationProperty,
95
- isPathExpression,
96
- isProperty
99
+ hasCurrency,
100
+ hasUnit,
101
+ isImageURL
97
102
  } from "sap/fe/core/templating/PropertyHelper";
98
103
  import { isMultiValueField } from "sap/fe/core/templating/UIFormatters";
99
104
  import type { DefaultTypeForEdmType } from "sap/fe/core/type/EDM";
@@ -130,7 +135,6 @@ import { getMessageTypeFromCriticalityType } from "./Criticality";
130
135
  import type { StandardActionConfigType } from "./table/StandardActions";
131
136
  import {
132
137
  generateStandardActionsContext,
133
- getCreateVisibility,
134
138
  getCreationRow,
135
139
  getDeleteVisibility,
136
140
  getInsertUpdateActionsTemplating,
@@ -138,6 +142,7 @@ import {
138
142
  getRestrictions,
139
143
  getStandardActionCreate,
140
144
  getStandardActionDelete,
145
+ getStandardActionInsights,
141
146
  getStandardActionMassEdit,
142
147
  getStandardActionPaste,
143
148
  isDraftOrStickySupported,
@@ -209,12 +214,9 @@ export type TableCapabilityRestriction = {
209
214
  };
210
215
 
211
216
  export type TableFiltersConfiguration = {
212
- enabled?: string | boolean;
213
- paths: [
214
- {
215
- annotationPath: string;
216
- }
217
- ];
217
+ paths: {
218
+ annotationPath: string;
219
+ }[];
218
220
  showCounts?: boolean;
219
221
  };
220
222
 
@@ -230,10 +232,11 @@ export type TableControlConfiguration = {
230
232
  customValidationFunction: string | undefined;
231
233
  useCondensedTableLayout: boolean;
232
234
  enableExport: boolean;
235
+ frozenColumnCount?: number;
233
236
  headerVisible: boolean;
234
237
  filters?: Record<string, TableFiltersConfiguration>;
235
238
  type: TableType;
236
- rowCountMode?: GridTableRowCountMode;
239
+ rowCountMode?: TableRowCountMode;
237
240
  rowCount?: number;
238
241
  selectAll?: boolean;
239
242
  selectionLimit: number;
@@ -248,10 +251,11 @@ export type TableControlConfiguration = {
248
251
  dataStateIndicatorFilter: string | undefined;
249
252
  isCompactType?: boolean;
250
253
  hierarchyQualifier?: string;
254
+ enableAddCardToInsights?: boolean | undefined;
251
255
  };
252
256
 
253
257
  export type TableType = "GridTable" | "ResponsiveTable" | "AnalyticalTable" | "TreeTable";
254
- export type GridTableRowCountMode = "Auto" | "Fixed";
258
+ export type TableRowCountMode = "Auto" | "Fixed";
255
259
 
256
260
  enum ColumnType {
257
261
  Default = "Default", // Default Type (Custom Column)
@@ -278,6 +282,8 @@ export type BaseTableColumn = ConfigurableObject & {
278
282
  availability?: AvailabilityType;
279
283
  isNavigable?: boolean;
280
284
  caseSensitive: boolean;
285
+ isInsightsSupported?: boolean;
286
+ label?: string;
281
287
  };
282
288
 
283
289
  // Properties on Custom Columns and Slot Columns
@@ -379,6 +385,7 @@ export type AnnotationTableColumn = AnnotationTableColumnForOverride & {
379
385
  exportDataPointTargetValue?: string;
380
386
  aggregatable?: boolean;
381
387
  extension?: ExtensionForAnalytics;
388
+ isInsightsSupported?: boolean;
382
389
  };
383
390
 
384
391
  export type ExtensionForAnalytics = {
@@ -436,6 +443,7 @@ export type TableVisualization = {
436
443
  headerInfoTypeName: PropertyAnnotationValue<String> | undefined;
437
444
  enable$select: boolean;
438
445
  enable$$getKeepAliveContext: boolean;
446
+ isInsightsEnabled?: boolean;
439
447
  };
440
448
 
441
449
  type SorterType = {
@@ -494,15 +502,17 @@ export function getTableActions(
494
502
  * @param visualizationPath
495
503
  * @param converterContext
496
504
  * @param navigationSettings
505
+ * @param isInsightsEnabled
497
506
  * @returns Returns all table columns that should be available, regardless of templating or personalization or their origin
498
507
  */
499
508
  export function getTableColumns(
500
509
  lineItemAnnotation: LineItem,
501
510
  visualizationPath: string,
502
511
  converterContext: ConverterContext,
503
- navigationSettings?: NavigationSettingsConfiguration
512
+ navigationSettings?: NavigationSettingsConfiguration,
513
+ isInsightsEnabled?: boolean
504
514
  ): TableColumn[] {
505
- const annotationColumns = getColumnsFromAnnotations(lineItemAnnotation, visualizationPath, converterContext);
515
+ const annotationColumns = getColumnsFromAnnotations(lineItemAnnotation, visualizationPath, converterContext, isInsightsEnabled);
506
516
  const manifestColumns = getColumnsFromManifest(
507
517
  converterContext.getManifestControlConfiguration(visualizationPath).columns,
508
518
  annotationColumns,
@@ -657,7 +667,7 @@ export function updateTableVisualizationForType(
657
667
  const aggregationHelper = new AggregationHelper(entityType, converterContext);
658
668
  const allowedTransformations = aggregationHelper.getAllowedTransformations();
659
669
  tableVisualization.enableBasicSearch = allowedTransformations ? allowedTransformations.includes("search") : true;
660
- tableVisualization.enable$$getKeepAliveContext = false;
670
+ tableVisualization.enable$$getKeepAliveContext = true;
661
671
  }
662
672
  }
663
673
 
@@ -727,7 +737,7 @@ export function updateLinkedProperties(entityType: EntityType, tableColumns: Tab
727
737
 
728
738
  const displayMode = getDisplayMode(oProperty),
729
739
  textAnnotation = oProperty.annotations.Common?.Text;
730
- if (isPathExpression(textAnnotation) && displayMode !== "Value") {
740
+ if (isPathAnnotationExpression(textAnnotation) && displayMode !== "Value") {
731
741
  const oTextColumn = findColumnByPath(textAnnotation.path);
732
742
  if (oTextColumn && oTextColumn.name !== oTableColumn.name) {
733
743
  oTableColumn.textArrangement = {
@@ -762,7 +772,8 @@ export function createTableVisualization(
762
772
  converterContext: ConverterContext,
763
773
  presentationVariantAnnotation?: PresentationVariantType,
764
774
  isCondensedTableLayoutCompliant?: boolean,
765
- viewConfiguration?: ViewPathConfiguration
775
+ viewConfiguration?: ViewPathConfiguration,
776
+ isInsightsEnabled?: boolean
766
777
  ): TableVisualization {
767
778
  const tableManifestConfig = getTableManifestConfiguration(
768
779
  lineItemAnnotation,
@@ -773,7 +784,7 @@ export function createTableVisualization(
773
784
  const { navigationPropertyPath } = splitPath(visualizationPath);
774
785
  const navigationTargetPath = getNavigationTargetPath(converterContext, navigationPropertyPath);
775
786
  const navigationSettings = converterContext.getManifestWrapper().getNavigationConfiguration(navigationTargetPath);
776
- const columns = getTableColumns(lineItemAnnotation, visualizationPath, converterContext, navigationSettings);
787
+ const columns = getTableColumns(lineItemAnnotation, visualizationPath, converterContext, navigationSettings, isInsightsEnabled);
777
788
  const operationAvailableMap = getOperationAvailableMap(lineItemAnnotation, converterContext);
778
789
  const semanticKeysAndHeaderInfoTitle = getSemanticKeysAndTitleInfo(converterContext);
779
790
  const tableActions = getTableActions(lineItemAnnotation, visualizationPath, converterContext, navigationSettings);
@@ -787,7 +798,8 @@ export function createTableVisualization(
787
798
  tableManifestConfig,
788
799
  columns,
789
800
  presentationVariantAnnotation,
790
- viewConfiguration
801
+ viewConfiguration,
802
+ isInsightsEnabled
791
803
  ),
792
804
  control: tableManifestConfig,
793
805
  actions: removeDuplicateActions(tableActions.actions),
@@ -862,7 +874,7 @@ function getCurrentEntitySetUpdatablePath(converterContext: ConverterContext): s
862
874
  const updatable = restrictions.isUpdatable;
863
875
  const isOnlyDynamicOnCurrentEntity = !isConstant(updatable.expression) && updatable.navigationExpression._type === "Unresolvable";
864
876
  const updatableExpression = entitySet?.annotations.Capabilities?.UpdateRestrictions?.Updatable;
865
- const updatablePropertyPath = isPathExpression(updatableExpression) && updatableExpression.path;
877
+ const updatablePropertyPath = isPathAnnotationExpression(updatableExpression) && updatableExpression.path;
866
878
 
867
879
  return isOnlyDynamicOnCurrentEntity ? (updatablePropertyPath as string) : "";
868
880
  }
@@ -962,7 +974,7 @@ function getBindingExpFromContext(
962
974
  sExpression = (source as CustomAction)?.visible;
963
975
  }
964
976
  let sPath: string;
965
- if (isPathExpression(sExpression)) {
977
+ if (isPathAnnotationExpression(sExpression)) {
966
978
  sPath = sExpression.path;
967
979
  } else {
968
980
  sPath = sExpression as string;
@@ -976,7 +988,7 @@ function getBindingExpFromContext(
976
988
  const aSplitPath = sPath.split("/");
977
989
  const sNavigationPath = aSplitPath[0];
978
990
  if (
979
- contextDataModelObjectPath?.targetObject?._type === "NavigationProperty" &&
991
+ isNavigationProperty(contextDataModelObjectPath?.targetObject) &&
980
992
  contextDataModelObjectPath.targetObject.partner === sNavigationPath
981
993
  ) {
982
994
  return pathInModel(aSplitPath.slice(1).join("/"));
@@ -1334,11 +1346,24 @@ function getTableAnnotationActions(lineItemAnnotation: LineItem, visualizationPa
1334
1346
  ) {
1335
1347
  switch (dataField.$Type) {
1336
1348
  case UIAnnotationTypes.DataFieldForAction:
1337
- // If the action has an overload (bound to parent entity) and there is an OperationAvailable annotation
1338
- // create the enable expression. The action enablement is not dependent upon the table entries.
1339
- const useEnabledExpression =
1340
- dataField.ActionTarget?.annotations?.Core?.OperationAvailable !== undefined &&
1341
- dataField.ActionTarget?.sourceType !== sEntityType;
1349
+ // There are three cases when a table action has an OperationAvailable that leads to an enablement expression
1350
+ // and is not dependent upon the table entries.
1351
+ // 1. An action with an overload, that is executed against a parent entity.
1352
+ // 2. An unbound action
1353
+ // 3. A static action (that is, bound to a collection)
1354
+ let useEnabledExpression = false;
1355
+ if (dataField.ActionTarget?.annotations?.Core?.OperationAvailable !== undefined) {
1356
+ if (!dataField.ActionTarget?.isBound) {
1357
+ // Unbound action. Is recognised, but getExpressionFromAnnotation checks for isBound = true, so not generated.
1358
+ useEnabledExpression = true;
1359
+ } else if (dataField.ActionTarget?.isBound && dataField.ActionTarget?.sourceType !== sEntityType) {
1360
+ // Overload action
1361
+ useEnabledExpression = true;
1362
+ } else if (dataField.ActionTarget?.parameters[0].isCollection) {
1363
+ // Static action
1364
+ useEnabledExpression = true;
1365
+ }
1366
+ }
1342
1367
 
1343
1368
  const tableAction: BaseAction = {
1344
1369
  type: ActionType.DataFieldForAction,
@@ -1514,28 +1539,26 @@ const _getRowConfigurationProperty = function (
1514
1539
  const targetEntityType = converterContext.getEntityType();
1515
1540
  if (navigationSettings && lineItemAnnotation) {
1516
1541
  navigationTarget = navigationSettings.display?.target || navigationSettings.detail?.outbound;
1542
+ const targetEntitySet = converterContext.getEntitySet();
1543
+ criticalityProperty = getHighlightRowBinding(
1544
+ lineItemAnnotation.annotations?.UI?.Criticality,
1545
+ !!ModelHelper.getDraftRoot(targetEntitySet) || !!ModelHelper.getDraftNode(targetEntitySet),
1546
+ targetEntityType
1547
+ );
1517
1548
  if (navigationTarget) {
1518
1549
  pressProperty =
1519
1550
  ".handlers.onChevronPressNavigateOutBound( $controller ,'" + navigationTarget + "', ${$parameters>bindingContext})";
1520
- } else if (targetEntityType) {
1521
- const targetEntitySet = converterContext.getEntitySet();
1522
- navigationTarget = navigationSettings.detail?.route;
1523
- criticalityProperty = getHighlightRowBinding(
1524
- lineItemAnnotation.annotations?.UI?.Criticality,
1525
- !!ModelHelper.getDraftRoot(targetEntitySet) || !!ModelHelper.getDraftNode(targetEntitySet),
1526
- targetEntityType
1527
- );
1528
- if (navigationTarget && !ModelHelper.isSingleton(targetEntitySet)) {
1529
- pressProperty =
1530
- "API.onTableRowPress($event, $controller, ${$parameters>bindingContext}, { callExtension: true, targetPath: '" +
1531
- targetPath +
1532
- "', editable : " +
1533
- (ModelHelper.getDraftRoot(targetEntitySet) || ModelHelper.getDraftNode(targetEntitySet)
1534
- ? "!${$parameters>bindingContext}.getProperty('IsActiveEntity')"
1535
- : "undefined") +
1536
- (tableType === "AnalyticalTable" || tableType === "TreeTable" ? ", bRecreateContext: true" : "") +
1537
- "})"; //Need to access to DraftRoot and DraftNode !!!!!!!
1538
- }
1551
+ }
1552
+ if (!navigationTarget && navigationSettings.detail?.route) {
1553
+ pressProperty =
1554
+ "API.onTableRowPress($event, $controller, ${$parameters>bindingContext}, { callExtension: true, targetPath: '" +
1555
+ targetPath +
1556
+ "', editable : " +
1557
+ (ModelHelper.getDraftRoot(targetEntitySet) || ModelHelper.getDraftNode(targetEntitySet)
1558
+ ? "!${$parameters>bindingContext}.getProperty('IsActiveEntity')"
1559
+ : "undefined") +
1560
+ (tableType === "AnalyticalTable" || tableType === "TreeTable" ? ", bRecreateContext: true" : "") +
1561
+ "})"; //Need to access to DraftRoot and DraftNode !!!!!!!
1539
1562
  }
1540
1563
  }
1541
1564
  const rowNavigatedExpression: BindingToolkitExpression<boolean> = formatResult(
@@ -1610,15 +1633,6 @@ export const getColumnsFromEntityType = function (
1610
1633
  textOnlyColumnsFromTextAnnotation
1611
1634
  );
1612
1635
 
1613
- const semanticKeys = converterContext.getAnnotationsByTerm("Common", CommonAnnotationTerms.SemanticKey, [
1614
- converterContext.getEntityType()
1615
- ])[0];
1616
- const oColumnDraftIndicator = getDefaultDraftIndicatorForColumn(columnInfo.name, semanticKeys, false, null);
1617
- if (Object.keys(oColumnDraftIndicator).length > 0) {
1618
- columnInfo.formatOptions = {
1619
- ...oColumnDraftIndicator
1620
- };
1621
- }
1622
1636
  if (relatedPropertyNames.length > 0) {
1623
1637
  columnInfo.propertyInfos = relatedPropertyNames;
1624
1638
  columnInfo.exportSettings = {
@@ -2053,19 +2067,21 @@ const _createRelatedColumns = function (
2053
2067
  if (relatedColumn === undefined) {
2054
2068
  // Case 1: Key contains DataField prefix to ensure all property columns have the same key format.
2055
2069
  // New created property column is set to hidden.
2056
- relatedColumns.push(
2057
- getColumnDefinitionFromProperty(
2058
- property,
2059
- annotationPath,
2060
- name,
2061
- true,
2062
- false,
2063
- nonSortableColumns,
2064
- aggregationHelper,
2065
- converterContext,
2066
- textOnlyColumnsFromTextAnnotation
2067
- )
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
2068
2083
  );
2084
+ relatedColumns.push(column);
2069
2085
  } else if (relatedColumn.annotationPath !== annotationPath || relatedColumn.propertyInfos) {
2070
2086
  // Case 2: The existing column points to a LineItem (or)
2071
2087
  // Case 3: This is a self reference from an existing column
@@ -2122,7 +2138,7 @@ const _createRelatedColumns = function (
2122
2138
  */
2123
2139
  const _getAnnotationColumnName = function (dataField: DataFieldAbstractTypes) {
2124
2140
  // This is needed as we have flexibility changes already that we have to check against
2125
- if (isDataFieldTypes(dataField)) {
2141
+ if (isDataFieldTypes(dataField) && dataField.Value?.path) {
2126
2142
  return dataField.Value?.path;
2127
2143
  } else if (dataField.$Type === UIAnnotationTypes.DataFieldForAnnotation && (dataField.Target?.$target as DataPoint)?.Value?.path) {
2128
2144
  // This is for removing duplicate properties. For example, 'Progress' Property is removed if it is already defined as a DataPoint
@@ -2245,7 +2261,7 @@ const _sliceAtSlash = function (path: string, isLastSlash: boolean, isLastPart:
2245
2261
  * @returns True if the DataField corresponds to a multi-value field.
2246
2262
  */
2247
2263
  const _isColumnMultiValued = function (dataField: DataFieldAbstractTypes, converterContext: ConverterContext): boolean {
2248
- if (isDataFieldTypes(dataField) && isPathExpression(dataField.Value)) {
2264
+ if (isDataFieldTypes(dataField) && isPathAnnotationExpression(dataField.Value)) {
2249
2265
  const propertyObjectPath = enhanceDataModelPath(converterContext.getDataModelObjectPath(), dataField.Value.path);
2250
2266
  return isMultiValueField(propertyObjectPath);
2251
2267
  } else {
@@ -2283,11 +2299,14 @@ export const isFilteringCaseSensitive = function (converterContext: ConverterCon
2283
2299
  };
2284
2300
 
2285
2301
  function _getFilterFunctions(ConverterContext: ConverterContext): FilterFunctions | undefined {
2286
- if (ModelHelper.isSingleton(ConverterContext.getEntitySet())) {
2287
- 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
+ );
2288
2308
  }
2289
- const capabilities = ConverterContext.getEntitySet()?.annotations?.Capabilities as EntitySetAnnotations_Capabilities;
2290
- return capabilities?.FilterFunctions || ConverterContext.getEntityContainer()?.annotations?.Capabilities?.FilterFunctions;
2309
+ return undefined;
2291
2310
  }
2292
2311
 
2293
2312
  /**
@@ -2338,7 +2357,15 @@ function _findProperties(semanticKeyValues: string[], fieldGroupProperties: stri
2338
2357
  };
2339
2358
  }
2340
2359
 
2360
+ /**
2361
+ * Find the first property in the fieldGroup that is part of the semantic keys.
2362
+ *
2363
+ * @param dataFieldGroup
2364
+ * @param semanticKeyValues
2365
+ * @returns An object containing a flag true if a property is found and a propertyPath.
2366
+ */
2341
2367
  function _findSemanticKeyValuesInFieldGroup(dataFieldGroup: DataFieldAbstractTypes | null, semanticKeyValues: string[]) {
2368
+ // this info is used in FieldlHelper#isDraftIndicatorVisibleInFieldGroup to show a draft indicator at the end of a field group
2342
2369
  const aProperties: string[] = [];
2343
2370
  let _propertiesFound: { semanticKeyHasPropertyInFieldGroup: boolean; fieldGroupPropertyPath?: string } = {
2344
2371
  semanticKeyHasPropertyInFieldGroup: false,
@@ -2379,33 +2406,31 @@ function getDefaultDraftIndicatorForColumn(
2379
2406
  semanticKeys: SemanticKey,
2380
2407
  isFieldGroupColumn: boolean,
2381
2408
  dataFieldGroup: DataFieldAbstractTypes | null
2382
- ) {
2409
+ ): Partial<{
2410
+ fieldGroupDraftIndicatorPropertyPath: string;
2411
+ fieldGroupName: string;
2412
+ showErrorObjectStatus: CompiledBindingToolkitExpression;
2413
+ hasDraftIndicator: boolean;
2414
+ }> {
2383
2415
  if (!semanticKeys) {
2384
2416
  return {};
2385
2417
  }
2386
2418
  const semanticKey = _findSemanticKeyValues(semanticKeys, name);
2387
2419
  const semanticKeyInFieldGroup = _findSemanticKeyValuesInFieldGroup(dataFieldGroup, semanticKey.values);
2388
- if (semanticKey.semanticKeyFound) {
2389
- const formatOptionsObj: FormatOptionsType = {
2390
- hasDraftIndicator: true,
2391
- semantickeys: semanticKey.values,
2392
- objectStatusTextVisibility: compileExpression(getRowStatusVisibility(name, false))
2393
- };
2394
- if (isFieldGroupColumn && semanticKeyInFieldGroup.semanticKeyHasPropertyInFieldGroup) {
2395
- formatOptionsObj.objectStatusTextVisibility = compileExpression(getRowStatusVisibility(name, true));
2396
- formatOptionsObj.fieldGroupDraftIndicatorPropertyPath = semanticKeyInFieldGroup.propertyPath;
2397
- }
2398
- return formatOptionsObj;
2399
- } else if (!semanticKeyInFieldGroup.semanticKeyHasPropertyInFieldGroup) {
2400
- return {};
2401
- } else {
2420
+ if (semanticKeyInFieldGroup.semanticKeyHasPropertyInFieldGroup) {
2402
2421
  // Semantic Key has a property in a FieldGroup
2403
2422
  return {
2423
+ //TODO we should rather store hasSemanticKeyInFieldGroup
2404
2424
  fieldGroupDraftIndicatorPropertyPath: semanticKeyInFieldGroup.propertyPath,
2405
- fieldGroupName: name,
2406
- objectStatusTextVisibility: compileExpression(getRowStatusVisibility(name, true))
2425
+ fieldGroupName: name
2426
+ };
2427
+ } else if (semanticKey.semanticKeyFound) {
2428
+ return {
2429
+ hasDraftIndicator: true,
2430
+ showErrorObjectStatus: compileExpression(getRowStatusVisibility(name, false))
2407
2431
  };
2408
2432
  }
2433
+ return {};
2409
2434
  }
2410
2435
 
2411
2436
  function _getImpNumber(dataField: DataFieldTypes): number {
@@ -2506,18 +2531,49 @@ export function getImportance(dataField: DataFieldAbstractTypes | undefined, sem
2506
2531
  : _getDataFieldImportance(dataField as unknown as DataFieldTypes);
2507
2532
  }
2508
2533
 
2534
+ /**
2535
+ * Checks if displaying of the column is supported for an insights card.
2536
+ *
2537
+ * @param dataField
2538
+ * @param sLabel
2539
+ * @param converterContext
2540
+ * @param isMultiValue
2541
+ * @returns True if displaying of the column is supported for an insights card.
2542
+ */
2543
+ const checkIfColumnIsSupportedForInsights = function (
2544
+ dataField: DataFieldAbstractTypes,
2545
+ sLabel: string | undefined,
2546
+ converterContext: ConverterContext,
2547
+ isMultiValue: boolean
2548
+ ) {
2549
+ const annotationPath = converterContext.getEntitySetBasedAnnotationPath(dataField.fullyQualifiedName);
2550
+
2551
+ if (sLabel && sLabel !== "" && annotationPath.indexOf("@com.sap.vocabularies.UI.v1.LineItem") !== -1 && isDataFieldTypes(dataField)) {
2552
+ // include only those columns that are annotated as part of the table (skip entity props)
2553
+
2554
+ const isMeasureBasedColumn = hasUnit(dataField.Value.$target) || hasCurrency(dataField.Value.$target);
2555
+ const isImageColumn = dataField.Value?.$target ? isImageURL(dataField.Value.$target) : false;
2556
+
2557
+ return !isMultiValue && !isImageColumn && !isMeasureBasedColumn;
2558
+ }
2559
+
2560
+ return false;
2561
+ };
2562
+
2509
2563
  /**
2510
2564
  * Returns line items from metadata annotations.
2511
2565
  *
2512
2566
  * @param lineItemAnnotation Collection of data fields with their annotations
2513
2567
  * @param visualizationPath The visualization path
2514
2568
  * @param converterContext The converter context
2569
+ * @param isInsightsEnabled
2515
2570
  * @returns The columns from the annotations
2516
2571
  */
2517
2572
  const getColumnsFromAnnotations = function (
2518
2573
  lineItemAnnotation: LineItem,
2519
2574
  visualizationPath: string,
2520
- converterContext: ConverterContext
2575
+ converterContext: ConverterContext,
2576
+ isInsightsEnabled?: boolean
2521
2577
  ): AnnotationTableColumn[] {
2522
2578
  const entityType = converterContext.getAnnotationEntityType(lineItemAnnotation),
2523
2579
  annotationColumns: AnnotationTableColumn[] = [],
@@ -2535,6 +2591,7 @@ const getColumnsFromAnnotations = function (
2535
2591
  );
2536
2592
 
2537
2593
  lineItemAnnotation.forEach((lineItem) => {
2594
+ // TODO: variable name should be datafield and not lineItem
2538
2595
  if (!_isValidColumn(lineItem)) {
2539
2596
  return;
2540
2597
  }
@@ -2544,16 +2601,15 @@ const getColumnsFromAnnotations = function (
2544
2601
  ? getSemanticObjectPath(converterContext, lineItem)
2545
2602
  : undefined;
2546
2603
  const relativePath = _getRelativePath(lineItem);
2547
-
2548
2604
  // Determine properties which are consumed by this LineItem.
2549
2605
  const relatedPropertiesInfo: ComplexPropertyInfo = collectRelatedPropertiesRecursively(lineItem, converterContext, tableType);
2550
2606
  const relatedPropertyNames: string[] = Object.keys(relatedPropertiesInfo.properties);
2551
2607
  const additionalPropertyNames: string[] = Object.keys(relatedPropertiesInfo.additionalProperties);
2552
- const groupPath: string = _sliceAtSlash(relativePath, true, false);
2608
+ const groupPath: string | undefined = relativePath ? _sliceAtSlash(relativePath, true, false) : undefined;
2553
2609
  const isGroup: boolean = groupPath != relativePath;
2554
2610
  const sLabel: string | undefined = getLabel(lineItem, isGroup);
2555
2611
  const name = _getAnnotationColumnName(lineItem);
2556
- const isFieldGroupColumn: boolean = groupPath.indexOf(`@${UIAnnotationTerms.FieldGroup}`) > -1;
2612
+ const isFieldGroupColumn: boolean = groupPath ? groupPath.indexOf(`@${UIAnnotationTerms.FieldGroup}`) > -1 : false;
2557
2613
  const showDataFieldsLabel: boolean = isFieldGroupColumn
2558
2614
  ? _getShowDataFieldsLabel(name, visualizationPath, converterContext)
2559
2615
  : false;
@@ -2611,6 +2667,8 @@ const getColumnsFromAnnotations = function (
2611
2667
  }
2612
2668
  const isMultiValue = _isColumnMultiValued(lineItem, tableConverterContext);
2613
2669
  const sortable = !isMultiValue && _isColumnSortable(lineItem, relativePath, nonSortableColumns);
2670
+ const tableManifestConfig = converterContext.getManifestControlConfiguration(visualizationPath);
2671
+ const enableAddCardToInsights = tableManifestConfig.tableSettings?.enableAddCardToInsights ?? true;
2614
2672
  const column: AnnotationTableColumn = {
2615
2673
  key: KeyHelper.generateKeyFromDataField(lineItem),
2616
2674
  type: ColumnType.Annotation,
@@ -2638,6 +2696,10 @@ const getColumnsFromAnnotations = function (
2638
2696
  timezoneText: exportSettings?.timezone,
2639
2697
  isPartOfLineItem: true
2640
2698
  };
2699
+ column.isInsightsSupported =
2700
+ enableAddCardToInsights === true &&
2701
+ isInsightsEnabled === true &&
2702
+ checkIfColumnIsSupportedForInsights(lineItem, sLabel, converterContext, isMultiValue);
2641
2703
  const sTooltip = _getTooltip(lineItem);
2642
2704
  if (sTooltip) {
2643
2705
  column.tooltip = sTooltip;
@@ -3132,7 +3194,8 @@ export function getTableAnnotationConfiguration(
3132
3194
  tableManifestConfiguration: TableControlConfiguration,
3133
3195
  columns: TableColumn[],
3134
3196
  presentationVariantAnnotation?: PresentationVariantType,
3135
- viewConfiguration?: ViewPathConfiguration
3197
+ viewConfiguration?: ViewPathConfiguration,
3198
+ isInsightsEnabled?: boolean
3136
3199
  ): TableAnnotationConfiguration {
3137
3200
  // Need to get the target
3138
3201
  const { navigationPropertyPath } = splitPath(visualizationPath);
@@ -3157,17 +3220,13 @@ export function getTableAnnotationConfiguration(
3157
3220
  converterContext,
3158
3221
  creationBehaviour.mode as CreationMode,
3159
3222
  tableManifestConfiguration,
3160
- viewConfiguration
3223
+ viewConfiguration,
3224
+ isInsightsEnabled
3161
3225
  );
3162
3226
 
3163
3227
  const deleteButtonVisibilityExpression = getDeleteVisibility(converterContext, standardActionsContext);
3164
- const createButtonVisibilityExpression = getCreateVisibility(converterContext, standardActionsContext);
3165
3228
  const massEditButtonVisibilityExpression = getMassEditVisibility(converterContext, standardActionsContext);
3166
- const isInsertUpdateTemplated = getInsertUpdateActionsTemplating(
3167
- standardActionsContext,
3168
- isDraftOrStickySupported(converterContext),
3169
- compileExpression(createButtonVisibilityExpression) === "false"
3170
- );
3229
+ const isInsertUpdateTemplated = getInsertUpdateActionsTemplating(standardActionsContext, isDraftOrStickySupported(converterContext));
3171
3230
 
3172
3231
  const selectionMode = getSelectionMode(
3173
3232
  lineItemAnnotation,
@@ -3190,6 +3249,7 @@ export function getTableAnnotationConfiguration(
3190
3249
  delete: getStandardActionDelete(converterContext, standardActionsContext),
3191
3250
  paste: getStandardActionPaste(converterContext, standardActionsContext, isInsertUpdateTemplated),
3192
3251
  massEdit: getStandardActionMassEdit(converterContext, standardActionsContext),
3252
+ insights: getStandardActionInsights(converterContext, standardActionsContext, visualizationPath),
3193
3253
  creationRow: getCreationRow(converterContext, standardActionsContext)
3194
3254
  };
3195
3255
 
@@ -3360,12 +3420,12 @@ function _getTableType(
3360
3420
  return tableType;
3361
3421
  }
3362
3422
 
3363
- function _getGridTableMode(
3423
+ function _getTableMode(
3364
3424
  tableType: TableType,
3365
3425
  tableSettings: TableManifestSettingsConfiguration,
3366
3426
  isTemplateListReport: boolean
3367
- ): { rowCountMode?: GridTableRowCountMode; rowCount?: number } {
3368
- if (tableType === "GridTable") {
3427
+ ): { rowCountMode?: TableRowCountMode; rowCount?: number } {
3428
+ if (tableType !== "ResponsiveTable") {
3369
3429
  if (isTemplateListReport) {
3370
3430
  return {
3371
3431
  rowCountMode: "Auto",
@@ -3400,15 +3460,13 @@ function _getFilters(
3400
3460
  tableSettings: TableManifestSettingsConfiguration,
3401
3461
  quickFilterPaths: { annotationPath: string }[],
3402
3462
  quickSelectionVariant: unknown,
3403
- path: { annotationPath: string },
3404
- converterContext: ConverterContext
3463
+ path: { annotationPath: string }
3405
3464
  ) {
3406
3465
  if (quickSelectionVariant) {
3407
3466
  quickFilterPaths.push({ annotationPath: path.annotationPath });
3408
3467
  }
3409
3468
  return {
3410
3469
  quickFilters: {
3411
- enabled: converterContext.getTemplateType() !== TemplateType.ListReport,
3412
3470
  showCounts: tableSettings?.quickVariantSelection?.showCounts,
3413
3471
  paths: quickFilterPaths
3414
3472
  }
@@ -3425,6 +3483,10 @@ function _getEnableExport(
3425
3483
  : converterContext.getTemplateType() !== "ObjectPage" || enablePaste;
3426
3484
  }
3427
3485
 
3486
+ function _getFrozenColumnCount(tableSettings: TableManifestSettingsConfiguration): number | undefined {
3487
+ return tableSettings.frozenColumnCount;
3488
+ }
3489
+
3428
3490
  function _getFilterConfiguration(
3429
3491
  tableSettings: TableManifestSettingsConfiguration,
3430
3492
  lineItemAnnotation: LineItem | undefined,
@@ -3439,7 +3501,7 @@ function _getFilterConfiguration(
3439
3501
  let filters;
3440
3502
  tableSettings?.quickVariantSelection?.paths?.forEach((path: { annotationPath: string }) => {
3441
3503
  quickSelectionVariant = targetEntityType.resolvePath(path.annotationPath);
3442
- filters = _getFilters(tableSettings, quickFilterPaths, quickSelectionVariant, path, converterContext);
3504
+ filters = _getFilters(tableSettings, quickFilterPaths, quickSelectionVariant, path);
3443
3505
  });
3444
3506
 
3445
3507
  let hideTableTitle = false;
@@ -3482,7 +3544,7 @@ export function getTableManifestConfiguration(
3482
3544
  const entityType = converterContext.getEntityType();
3483
3545
  const aggregationHelper = new AggregationHelper(entityType, converterContext);
3484
3546
  const tableType: TableType = _getTableType(tableSettings, aggregationHelper, converterContext);
3485
- const gridTableRowMode = _getGridTableMode(tableType, tableSettings, templateType === TemplateType.ListReport);
3547
+ const tableRowMode = _getTableMode(tableType, tableSettings, templateType === TemplateType.ListReport);
3486
3548
  const condensedTableLayout = _getCondensedTableLayout(tableType, tableSettings);
3487
3549
  const oConfiguration = {
3488
3550
  // If no createAtEnd is specified it will be false for Inline create and true otherwise
@@ -3497,8 +3559,10 @@ export function getTableManifestConfiguration(
3497
3559
  disableAddRowButtonForEmptyData: !customValidationFunction ? !!tableSettings.creationMode?.disableAddRowButtonForEmptyData : false,
3498
3560
  enableAutoColumnWidth: enableAutoColumnWidth,
3499
3561
  enableExport: _getEnableExport(tableSettings, converterContext, enablePaste),
3562
+ frozenColumnCount: _getFrozenColumnCount(tableSettings),
3500
3563
  enableFullScreen: _getFullScreenBasedOnDevice(tableSettings, converterContext, _manifestWrapper.isPhone()),
3501
3564
  enableMassEdit: tableSettings?.enableMassEdit,
3565
+ enableAddCardToInsights: tableSettings?.enableAddCardToInsights,
3502
3566
  enablePaste: enablePaste,
3503
3567
  headerVisible: true,
3504
3568
  multiSelectMode: _getMultiSelectMode(tableSettings, tableType, converterContext),
@@ -3511,7 +3575,7 @@ export function getTableManifestConfiguration(
3511
3575
  isCompactType: _manifestWrapper.isCompactType()
3512
3576
  };
3513
3577
 
3514
- const tableConfiguration: TableControlConfiguration = { ...oConfiguration, ...gridTableRowMode, ...oFilterConfiguration };
3578
+ const tableConfiguration: TableControlConfiguration = { ...oConfiguration, ...tableRowMode, ...oFilterConfiguration };
3515
3579
 
3516
3580
  if (tableType === "TreeTable") {
3517
3581
  tableConfiguration.hierarchyQualifier = tableSettings.hierarchyQualifier;
@@ -3521,16 +3585,22 @@ export function getTableManifestConfiguration(
3521
3585
  }
3522
3586
 
3523
3587
  export function getTypeConfig(oProperty: Property | DataFieldAbstractTypes, dataType: string | undefined): PropertyTypeConfig {
3524
- let oTargetMapping = EDM_TYPE_MAPPING[(oProperty as Property)?.type] || (dataType ? EDM_TYPE_MAPPING[dataType] : undefined);
3525
- if (!oTargetMapping && (oProperty as Property)?.targetType && (oProperty as Property).targetType?._type === "TypeDefinition") {
3526
- oTargetMapping = EDM_TYPE_MAPPING[((oProperty as Property).targetType as TypeDefinition).underlyingType];
3588
+ let oTargetMapping;
3589
+ if (isProperty(oProperty)) {
3590
+ oTargetMapping = isTypeDefinition(oProperty.targetType)
3591
+ ? EDM_TYPE_MAPPING[oProperty.targetType.underlyingType]
3592
+ : EDM_TYPE_MAPPING[oProperty.type];
3593
+ }
3594
+ if (oTargetMapping === undefined && dataType !== undefined) {
3595
+ oTargetMapping = EDM_TYPE_MAPPING[dataType];
3527
3596
  }
3597
+
3528
3598
  const propertyTypeConfig: PropertyTypeConfig = {
3529
3599
  type: oTargetMapping?.type,
3530
3600
  constraints: {},
3531
3601
  formatOptions: {}
3532
3602
  };
3533
- if (isProperty(oProperty)) {
3603
+ if (isProperty(oProperty) && oTargetMapping !== undefined) {
3534
3604
  propertyTypeConfig.constraints = {
3535
3605
  scale: oTargetMapping.constraints?.$Scale ? oProperty.scale : undefined,
3536
3606
  precision: oTargetMapping.constraints?.$Precision ? oProperty.precision : undefined,