@openui5/sap.ui.mdc 1.97.1 → 1.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/.reuse/dep5 +25 -30
  2. package/THIRDPARTY.txt +15 -22
  3. package/package.json +4 -4
  4. package/src/sap/ui/mdc/.library +1 -1
  5. package/src/sap/ui/mdc/ActionToolbar.js +6 -3
  6. package/src/sap/ui/mdc/AggregationBaseDelegate.js +2 -2
  7. package/src/sap/ui/mdc/BaseDelegate.js +1 -1
  8. package/src/sap/ui/mdc/Chart.js +1128 -1806
  9. package/src/sap/ui/mdc/ChartDelegate.js +454 -250
  10. package/src/sap/ui/mdc/ChartRenderer.js +73 -77
  11. package/src/sap/ui/mdc/Control.js +11 -6
  12. package/src/sap/ui/mdc/Element.js +10 -6
  13. package/src/sap/ui/mdc/Field.js +19 -4
  14. package/src/sap/ui/mdc/FilterBar.js +3 -2
  15. package/src/sap/ui/mdc/FilterBarDelegate.js +26 -0
  16. package/src/sap/ui/mdc/FilterField.js +50 -9
  17. package/src/sap/ui/mdc/Link.js +25 -6
  18. package/src/sap/ui/mdc/LinkDelegate.js +3 -3
  19. package/src/sap/ui/mdc/MultiValueField.js +30 -6
  20. package/src/sap/ui/mdc/Table.js +151 -102
  21. package/src/sap/ui/mdc/TableDelegate.js +68 -13
  22. package/src/sap/ui/mdc/ValueHelp.js +26 -11
  23. package/src/sap/ui/mdc/ValueHelpDelegate.js +2 -1
  24. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +2 -2
  25. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarActionRenderer.js +1 -1
  26. package/src/sap/ui/mdc/{chartNew/ChartSelectionDetailsNew.js → chart/ChartSelectionDetails.js} +8 -8
  27. package/src/sap/ui/mdc/{chartNew/ChartToolbarNew.js → chart/ChartToolbar.js} +60 -17
  28. package/src/sap/ui/mdc/chart/ChartTypeButton.js +55 -54
  29. package/src/sap/ui/mdc/{chartNew/DrillBreadcrumbsNew.js → chart/DrillBreadcrumbs.js} +10 -10
  30. package/src/sap/ui/mdc/chart/DrillStackHandler.js +43 -254
  31. package/src/sap/ui/mdc/chart/Item.js +62 -92
  32. package/src/sap/ui/mdc/{chartNew/PropertyHelperNew.js → chart/PropertyHelper.js} +3 -3
  33. package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +17 -21
  34. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  35. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  36. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  37. package/src/sap/ui/mdc/condition/FilterConverter.js +4 -2
  38. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +388 -67
  39. package/src/sap/ui/mdc/condition/Operator.js +4 -2
  40. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +78 -24
  41. package/src/sap/ui/mdc/condition/RangeOperator.js +5 -5
  42. package/src/sap/ui/mdc/designtime/Util.js +63 -0
  43. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +23 -30
  44. package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +83 -5
  45. package/src/sap/ui/mdc/designtime/field/Field.designtime.js +81 -5
  46. package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +3 -0
  47. package/src/sap/ui/mdc/designtime/link/PanelItem.designtime.js +3 -1
  48. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +35 -8
  49. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  50. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  51. package/src/sap/ui/mdc/field/ConditionType.js +17 -6
  52. package/src/sap/ui/mdc/field/ConditionsType.js +2 -1
  53. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  54. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  55. package/src/sap/ui/mdc/field/DefineConditionPanel.js +88 -29
  56. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +77 -20
  57. package/src/sap/ui/mdc/field/FieldBase.js +93 -16
  58. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +1 -1
  59. package/src/sap/ui/mdc/field/FieldBaseRenderer.js +0 -3
  60. package/src/sap/ui/mdc/field/FieldHelpBase.js +2 -2
  61. package/src/sap/ui/mdc/field/FieldInfoBase.js +24 -10
  62. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  63. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  64. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  65. package/src/sap/ui/mdc/field/FieldValueHelp.js +5 -2
  66. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  67. package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +1 -1
  68. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +5 -4
  69. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +6 -4
  70. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +6 -3
  71. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +7 -7
  72. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  73. package/src/sap/ui/mdc/field/ListFieldHelp.js +10 -2
  74. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  75. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  76. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  77. package/src/sap/ui/mdc/field/TokenDisplay.js +70 -0
  78. package/src/sap/ui/mdc/field/TokenDisplayRenderer.js +24 -0
  79. package/src/sap/ui/mdc/field/TokenizerDisplay.js +80 -0
  80. package/src/sap/ui/mdc/field/TokenizerDisplayRenderer.js +69 -0
  81. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
  82. package/src/sap/ui/mdc/field/content/ContentFactory.js +10 -6
  83. package/src/sap/ui/mdc/field/content/DateContent.js +27 -19
  84. package/src/sap/ui/mdc/field/content/DateTimeContent.js +0 -6
  85. package/src/sap/ui/mdc/field/content/DefaultContent.js +35 -13
  86. package/src/sap/ui/mdc/field/content/LinkContent.js +1 -1
  87. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +285 -208
  88. package/src/sap/ui/mdc/filterbar/FilterBarBaseRenderer.js +1 -1
  89. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +27 -2
  90. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +132 -56
  91. package/src/sap/ui/mdc/filterbar/p13n/FilterColumnLayout.js +2 -2
  92. package/src/sap/ui/mdc/filterbar/p13n/GroupContainer.js +7 -3
  93. package/src/sap/ui/mdc/filterbar/p13n/TableContainer.js +52 -14
  94. package/src/sap/ui/mdc/filterbar/vh/CollectiveSearchSelect.js +3 -1
  95. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +43 -19
  96. package/src/sap/ui/mdc/filterbar/vh/FilterContainer.js +1 -1
  97. package/src/sap/ui/mdc/flexibility/AggregateFlex.js +2 -2
  98. package/src/sap/ui/mdc/flexibility/AggregationConfigFlex.js +48 -31
  99. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +6 -4
  100. package/src/sap/ui/mdc/flexibility/ChartItemFlex.js +36 -0
  101. package/src/sap/ui/mdc/flexibility/ColumnFlex.js +1 -1
  102. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +47 -10
  103. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +4 -3
  104. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  105. package/src/sap/ui/mdc/flexibility/GroupFlex.js +1 -1
  106. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +0 -1
  107. package/src/sap/ui/mdc/flexibility/Panel.flexibility.js +9 -3
  108. package/src/sap/ui/mdc/flexibility/PropertyInfoFlex.js +27 -0
  109. package/src/sap/ui/mdc/flexibility/SortFlex.js +2 -2
  110. package/src/sap/ui/mdc/flp/FlpLinkDelegate.js +6 -6
  111. package/src/sap/ui/mdc/library.js +54 -44
  112. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  113. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  114. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  115. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  116. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  117. package/src/sap/ui/mdc/link/Factory.js +2 -2
  118. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  119. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  120. package/src/sap/ui/mdc/link/Log.js +1 -1
  121. package/src/sap/ui/mdc/link/Panel.js +140 -177
  122. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  123. package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
  124. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  125. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  126. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  127. package/src/sap/ui/mdc/messagebundle.properties +57 -2
  128. package/src/sap/ui/mdc/messagebundle_ar.properties +39 -4
  129. package/src/sap/ui/mdc/messagebundle_bg.properties +54 -19
  130. package/src/sap/ui/mdc/messagebundle_ca.properties +37 -2
  131. package/src/sap/ui/mdc/messagebundle_cs.properties +52 -17
  132. package/src/sap/ui/mdc/messagebundle_cy.properties +37 -2
  133. package/src/sap/ui/mdc/messagebundle_da.properties +44 -9
  134. package/src/sap/ui/mdc/messagebundle_de.properties +37 -2
  135. package/src/sap/ui/mdc/messagebundle_el.properties +38 -3
  136. package/src/sap/ui/mdc/messagebundle_en.properties +37 -2
  137. package/src/sap/ui/mdc/messagebundle_en_GB.properties +37 -2
  138. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +37 -2
  139. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +61 -4
  140. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +37 -2
  141. package/src/sap/ui/mdc/messagebundle_es.properties +37 -2
  142. package/src/sap/ui/mdc/messagebundle_es_MX.properties +51 -16
  143. package/src/sap/ui/mdc/messagebundle_et.properties +37 -2
  144. package/src/sap/ui/mdc/messagebundle_fi.properties +43 -8
  145. package/src/sap/ui/mdc/messagebundle_fr.properties +38 -3
  146. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +37 -2
  147. package/src/sap/ui/mdc/messagebundle_hi.properties +38 -3
  148. package/src/sap/ui/mdc/messagebundle_hr.properties +37 -2
  149. package/src/sap/ui/mdc/messagebundle_hu.properties +37 -2
  150. package/src/sap/ui/mdc/messagebundle_id.properties +37 -2
  151. package/src/sap/ui/mdc/messagebundle_it.properties +53 -18
  152. package/src/sap/ui/mdc/messagebundle_iw.properties +38 -3
  153. package/src/sap/ui/mdc/messagebundle_ja.properties +37 -2
  154. package/src/sap/ui/mdc/messagebundle_kk.properties +37 -2
  155. package/src/sap/ui/mdc/messagebundle_ko.properties +41 -6
  156. package/src/sap/ui/mdc/messagebundle_lt.properties +37 -2
  157. package/src/sap/ui/mdc/messagebundle_lv.properties +41 -6
  158. package/src/sap/ui/mdc/messagebundle_ms.properties +37 -2
  159. package/src/sap/ui/mdc/messagebundle_nl.properties +42 -7
  160. package/src/sap/ui/mdc/messagebundle_no.properties +45 -10
  161. package/src/sap/ui/mdc/messagebundle_pl.properties +38 -3
  162. package/src/sap/ui/mdc/messagebundle_pt.properties +44 -9
  163. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +37 -2
  164. package/src/sap/ui/mdc/messagebundle_ro.properties +37 -2
  165. package/src/sap/ui/mdc/messagebundle_ru.properties +37 -2
  166. package/src/sap/ui/mdc/messagebundle_sh.properties +37 -2
  167. package/src/sap/ui/mdc/messagebundle_sk.properties +37 -2
  168. package/src/sap/ui/mdc/messagebundle_sl.properties +37 -2
  169. package/src/sap/ui/mdc/messagebundle_sv.properties +39 -4
  170. package/src/sap/ui/mdc/messagebundle_th.properties +40 -5
  171. package/src/sap/ui/mdc/messagebundle_tr.properties +37 -2
  172. package/src/sap/ui/mdc/messagebundle_uk.properties +41 -6
  173. package/src/sap/ui/mdc/messagebundle_vi.properties +37 -2
  174. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +37 -2
  175. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +37 -2
  176. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +30 -15
  177. package/src/sap/ui/mdc/mixin/DelegateMixin.js +2 -142
  178. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +14 -17
  179. package/src/sap/ui/mdc/mixin/PromiseMixin.js +2 -3
  180. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +348 -0
  181. package/src/sap/ui/mdc/odata/TypeUtil.js +2 -2
  182. package/src/sap/ui/mdc/odata/v4/ChartDelegate.js +29 -483
  183. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelper.js +106 -0
  184. package/src/sap/ui/mdc/odata/v4/FilterBarDelegate.js +116 -20
  185. package/src/sap/ui/mdc/odata/v4/ODataMetaModelUtil.js +2 -2
  186. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +117 -123
  187. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +3 -5
  188. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +1 -1
  189. package/src/sap/ui/mdc/odata/v4/util/DelegateUtil.js +1 -1
  190. package/src/sap/ui/mdc/odata/v4/vizChart/{ChartDelegateNew.js → ChartDelegate.js} +459 -351
  191. package/src/sap/ui/mdc/p13n/AdaptationProvider.js +1 -1
  192. package/src/sap/ui/mdc/p13n/Engine.js +51 -30
  193. package/src/sap/ui/mdc/p13n/FlexUtil.js +6 -118
  194. package/src/sap/ui/mdc/p13n/P13nBuilder.js +7 -7
  195. package/src/sap/ui/mdc/p13n/PropertyHelper.js +2 -2
  196. package/src/sap/ui/mdc/p13n/StateUtil.js +24 -6
  197. package/src/sap/ui/mdc/p13n/UIManager.js +20 -19
  198. package/src/sap/ui/mdc/p13n/modification/FlexModificationHandler.js +4 -1
  199. package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +19 -12
  200. package/src/sap/ui/mdc/p13n/modules/DefaultProviderRegistry.js +1 -1
  201. package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +6 -6
  202. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +49 -27
  203. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1094 -49
  204. package/src/sap/ui/mdc/p13n/panels/FilterPanel.js +136 -0
  205. package/src/sap/ui/mdc/p13n/panels/GroupView.js +53 -28
  206. package/src/sap/ui/mdc/p13n/panels/LinkSelectionPanel.js +108 -0
  207. package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +4 -7
  208. package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +7 -7
  209. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +156 -11
  210. package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +15 -26
  211. package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +6 -5
  212. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +22 -11
  213. package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +174 -0
  214. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +12 -19
  215. package/src/sap/ui/mdc/table/Column.js +12 -12
  216. package/src/sap/ui/mdc/table/CreationRow.js +11 -11
  217. package/src/sap/ui/mdc/table/GridTableType.js +80 -33
  218. package/src/sap/ui/mdc/table/PropertyHelper.js +63 -19
  219. package/src/sap/ui/mdc/table/ResponsiveTableType.js +94 -23
  220. package/src/sap/ui/mdc/table/RowActionItem.js +119 -0
  221. package/src/sap/ui/mdc/table/RowSettings.js +45 -4
  222. package/src/sap/ui/mdc/table/TableTypeBase.js +2 -2
  223. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +2 -2
  224. package/src/sap/ui/mdc/themes/base/Chart.less +2 -0
  225. package/src/sap/ui/mdc/themes/base/FieldBase.less +0 -5
  226. package/src/sap/ui/mdc/themes/base/TokenDisplay.less +89 -0
  227. package/src/sap/ui/mdc/themes/base/TokenizerDisplay.less +90 -0
  228. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +16 -4
  229. package/src/sap/ui/mdc/themes/base/library.source.less +2 -0
  230. package/src/sap/ui/mdc/util/Common.js +1 -1
  231. package/src/sap/ui/mdc/util/DateUtil.js +33 -8
  232. package/src/sap/ui/mdc/util/FilterUtil.js +2 -2
  233. package/src/sap/ui/mdc/util/FormatUtil.js +3 -3
  234. package/src/sap/ui/mdc/util/IdentifierUtil.js +6 -6
  235. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  236. package/src/sap/ui/mdc/util/PropertyHelper.js +243 -87
  237. package/src/sap/ui/mdc/util/TypeUtil.js +6 -5
  238. package/src/sap/ui/mdc/valuehelp/Dialog.js +11 -8
  239. package/src/sap/ui/mdc/valuehelp/Popover.js +6 -3
  240. package/src/sap/ui/mdc/valuehelp/base/Container.js +2 -1
  241. package/src/sap/ui/mdc/valuehelp/base/Content.js +2 -1
  242. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +2 -1
  243. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +5 -4
  244. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +2 -1
  245. package/src/sap/ui/mdc/valuehelp/content/Bool.js +2 -1
  246. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +4 -2
  247. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +23 -14
  248. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +46 -17
  249. package/src/sap/ui/mdc/valuehelp/content/MTable.js +48 -27
  250. package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +3 -1
  251. package/test/sap/ui/mdc/testutils/opa/actions/OpenContextMenu.js +3 -3
  252. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsBase.js +3 -3
  253. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ActionsViz.js +0 -0
  254. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsBase.js +1 -1
  255. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/AssertionsViz.js +0 -0
  256. package/test/sap/ui/mdc/testutils/opa/{chartNew → chart}/ChartNew.js +0 -0
  257. package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +291 -0
  258. package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +7 -7
  259. package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +8 -9
  260. package/test/sap/ui/mdc/testutils/opa/filterbar/Util.js +12 -11
  261. package/test/sap/ui/mdc/testutils/opa/link/Actions.js +85 -0
  262. package/test/sap/ui/mdc/testutils/opa/link/Assertions.js +79 -0
  263. package/test/sap/ui/mdc/testutils/opa/link/TestObjects.js +112 -0
  264. package/test/sap/ui/mdc/testutils/opa/link/waitForLink.js +50 -0
  265. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +264 -139
  266. package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +27 -26
  267. package/test/sap/ui/mdc/testutils/opa/valueHelp/Actions.js +54 -0
  268. package/test/sap/ui/mdc/testutils/opa/valueHelp/Assertions.js +5 -0
  269. package/test/sap/ui/mdc/testutils/opa/valueHelp/TestObjects.js +40 -0
  270. package/test/sap/ui/mdc/testutils/opa/valueHelp/Util.js +28 -0
  271. package/src/sap/ui/mdc/ChartDelegateNew.js +0 -395
  272. package/src/sap/ui/mdc/ChartNew.js +0 -1114
  273. package/src/sap/ui/mdc/ChartNewRenderer.js +0 -91
  274. package/src/sap/ui/mdc/chart/DimensionItem.js +0 -281
  275. package/src/sap/ui/mdc/chart/MeasureItem.js +0 -318
  276. package/src/sap/ui/mdc/chart/MetadataDelegate.js +0 -31
  277. package/src/sap/ui/mdc/chart/SelectionHandler.js +0 -127
  278. package/src/sap/ui/mdc/chart/ToolbarHandler.js +0 -328
  279. package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +0 -295
  280. package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +0 -212
  281. package/src/sap/ui/mdc/chartNew/ItemNew.js +0 -72
  282. package/src/sap/ui/mdc/chartNew/SelectionDetailsActionsNew.js +0 -34
  283. package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +0 -91
  284. package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +0 -150
  285. package/src/sap/ui/mdc/link/SelectionDialog.control.xml +0 -66
  286. package/src/sap/ui/mdc/link/SelectionDialog.js +0 -213
  287. package/src/sap/ui/mdc/link/SelectionDialogItem.js +0 -86
  288. package/src/sap/ui/mdc/odata/v4/ChartDelegateNew.js +0 -35
  289. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelperNew.js +0 -39
  290. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +0 -721
  291. package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +0 -1179
  292. package/src/sap/ui/mdc/p13n/panels/ListView.js +0 -404
  293. package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +0 -92
  294. package/src/sap/ui/mdc/p13n/panels/SortPanel.js +0 -150
  295. package/src/sap/ui/mdc/ui/Container.js +0 -240
  296. package/src/sap/ui/mdc/ui/ContainerItem.js +0 -79
@@ -44,9 +44,7 @@ sap.ui.define([
44
44
  "Edm.Time": "TimeOfDay"
45
45
  };
46
46
 
47
- var mMainEntitySet = {};
48
-
49
-
47
+ var InstanceCache = new Map();
50
48
 
51
49
  ODataFilterBarDelegate._fetchPropertiesByMetadata = function(oControl, mPropertyBag) {
52
50
 
@@ -92,7 +90,7 @@ sap.ui.define([
92
90
  }
93
91
  };
94
92
 
95
- return mPropertyBag ? this.fetchProperties(oObj) : oControl.getControlDelegate().fetchProperties(oControl);
93
+ return mPropertyBag ? this.fetchProperties(oObj) : Promise.resolve(oControl.getPropertyHelper().getProperties());
96
94
  }.bind(this));
97
95
  };
98
96
 
@@ -246,6 +244,109 @@ sap.ui.define([
246
244
  return Promise.resolve(this._createFilter(sPropertyName, oFilterBar, mPropertyBag));
247
245
  };
248
246
 
247
+
248
+ ODataFilterBarDelegate._getInstanceCacheEntry = function(oControl, sKey) {
249
+ var sId = oControl.getId && oControl.getId() || oControl.id;
250
+ var oCacheEntry = InstanceCache.get(sId);
251
+ return oCacheEntry && oCacheEntry[sKey];
252
+ };
253
+ ODataFilterBarDelegate._setInstanceCacheEntry = function(oControl, sKey, oValue) {
254
+ var sId = oControl.getId && oControl.getId() || oControl.id;
255
+ var oCacheEntry = InstanceCache.get(sId) || {};
256
+ oCacheEntry[sKey] = oValue;
257
+ InstanceCache.set(sId, oCacheEntry);
258
+ };
259
+
260
+ ODataFilterBarDelegate._addPropertyInfoEntry = function(oControl, sPropertyName, aPropertyInfo, aFetchedProperties, oModifier) {
261
+
262
+ if (aFetchedProperties) {
263
+ var nIdx = aFetchedProperties.findIndex(function(oEntry) {
264
+ return oEntry.name === sPropertyName;
265
+ });
266
+
267
+ if (nIdx >= 0) {
268
+ aPropertyInfo.push({
269
+ name: sPropertyName,
270
+ dataType: aFetchedProperties[nIdx].typeConfig.className,
271
+ maxConditions: aFetchedProperties[nIdx].maxConditions,
272
+ constraints: aFetchedProperties[nIdx].constraints,
273
+ formatOption: aFetchedProperties[nIdx].formatOptions,
274
+ required: aFetchedProperties[nIdx].required,
275
+ caseSensitive: aFetchedProperties[nIdx].caseSensitive,
276
+ display: aFetchedProperties[nIdx].display,
277
+ label: aFetchedProperties[nIdx].label,
278
+ hiddenFilter: aFetchedProperties[nIdx].hiddenFilter
279
+ });
280
+ oModifier.setProperty(oControl, "propertyInfo", aPropertyInfo);
281
+ } else {
282
+ Log.error("ConditionFlex-ChangeHandler: no type info for property '" + sPropertyName + "'");
283
+ }
284
+ }
285
+ };
286
+
287
+
288
+ ODataFilterBarDelegate._updatePropertyInfo = function(sPropertyName, oFilterBar, mPropertyBag) {
289
+
290
+ if (oFilterBar.isA && oFilterBar.isA("sap.ui.mdc.FilterBar")) {
291
+ return Promise.resolve();
292
+ }
293
+
294
+ var oModifier = mPropertyBag.modifier;
295
+
296
+ return oModifier.getProperty(oFilterBar, "propertyInfo")
297
+ .then(function(aPropertyInfo) {
298
+ if (!aPropertyInfo) {
299
+ return Promise.resolve();
300
+ }
301
+ var nIdx = aPropertyInfo.findIndex(function(oEntry) {
302
+ return oEntry.name === sPropertyName;
303
+ });
304
+
305
+ if (nIdx < 0) {
306
+
307
+ var aFetchedProperties = ODataFilterBarDelegate._getInstanceCacheEntry(oFilterBar, "fetchedProperties");
308
+ if (aFetchedProperties) {
309
+ ODataFilterBarDelegate._addPropertyInfoEntry(oFilterBar, sPropertyName, aPropertyInfo, aFetchedProperties, oModifier);
310
+ } else {
311
+ //fetch
312
+ return ODataFilterBarDelegate.fetchProperties(oFilterBar, mPropertyBag)
313
+ .then(function(aProperties) {
314
+ ODataFilterBarDelegate._setInstanceCacheEntry(oFilterBar, "fetchedProperties", aProperties);
315
+ ODataFilterBarDelegate._addPropertyInfoEntry(oFilterBar, sPropertyName, aPropertyInfo, aProperties, oModifier);
316
+ });
317
+ }
318
+ }
319
+ });
320
+ };
321
+
322
+
323
+ /**
324
+ * This methods is called during the appliance of the add condition change.
325
+ * This intention is to update the propertyInfo property.
326
+ *
327
+ * @param {string} sPropertyName The name of a property.
328
+ * @param {sap.ui.mdc.FilterBar} oFilterBar - the instance of filter bar
329
+ * @param {Object} mPropertyBag Instance of property bag from Flex change API
330
+ * @returns {Promise} Promise that resolves once the properyInfo property was updated
331
+ */
332
+ ODataFilterBarDelegate.addCondition = function(sPropertyName, oFilterBar, mPropertyBag) {
333
+ return ODataFilterBarDelegate._updatePropertyInfo(sPropertyName, oFilterBar, mPropertyBag);
334
+ };
335
+
336
+ /**
337
+ * This methods is called during the appliance of the remove condition change.
338
+ * This intention is to update the propertyInfo property.
339
+ *
340
+ * @param {string} sPropertyName The name of a property.
341
+ * @param {sap.ui.mdc.FilterBar} oFilterBar - the instance of filter bar
342
+ * @param {Object} mPropertyBag Instance of property bag from Flex change API
343
+ * @returns {Promise} Promise that resolves once the properyInfo property was updated
344
+ */
345
+ ODataFilterBarDelegate.removeCondition = function(sPropertyName, oFilterBar, mPropertyBag) {
346
+ return ODataFilterBarDelegate._updatePropertyInfo(sPropertyName, oFilterBar, mPropertyBag);
347
+ };
348
+
349
+
249
350
  /**
250
351
  * Can be used to trigger any necessary follow-up steps on removal of filter items. The returned boolean value inside the Promise can be used to
251
352
  * prevent default follow-up behaviour of Flex.
@@ -560,7 +661,11 @@ sap.ui.define([
560
661
  * @param {object} oFilterBar - the instance of filter bar
561
662
  * @returns {Promise} once resolved an array of property info is returned
562
663
  */
563
- ODataFilterBarDelegate.fetchProperties = function (oFilterBar) {
664
+ ODataFilterBarDelegate.fetchProperties = function (oFilterBar, mPropertyBag) {
665
+
666
+ if (!(oFilterBar.isA && oFilterBar.isA("sap.ui.mdc.FilterBar")) && mPropertyBag) {
667
+ return ODataFilterBarDelegate._fetchPropertiesByMetadata(oFilterBar, mPropertyBag);
668
+ }
564
669
 
565
670
  var sModelName = oFilterBar.getDelegate().payload.modelName;
566
671
  var sEntitySet = oFilterBar.getDelegate().payload.collectionName;
@@ -569,9 +674,9 @@ sap.ui.define([
569
674
 
570
675
  var oMetaModel;
571
676
 
572
- var sCachKey = oFilterBar.getId() + '->' + sEntitySet;
573
- if (mMainEntitySet[sCachKey]) {
574
- resolve(mMainEntitySet[sCachKey]);
677
+ var oCachedEntitySet = ODataFilterBarDelegate._getInstanceCacheEntry(oFilterBar, "fetchedProperties");
678
+ if (oCachedEntitySet) {
679
+ resolve(oCachedEntitySet);
575
680
  return;
576
681
  }
577
682
 
@@ -594,7 +699,7 @@ sap.ui.define([
594
699
  ODataFilterBarDelegate._fetchEntitySet(oMetaModel, '/' + sEntitySet, aVisitedEntityTypes, null, oParamInfo).then(function(aProperties) {
595
700
 
596
701
  if (oParamInfo.parameterNavigationName && (oParamInfo.parameters.length > 0)) {
597
- window[oFilterBar.getId() + '->' + sEntitySet + "-Parameters"] = oParamInfo;
702
+ ODataFilterBarDelegate._setInstanceCacheEntry(oFilterBar, sEntitySet + "-Parameters", oParamInfo);
598
703
 
599
704
  //parameters are initially at the top of the result
600
705
  aProperties.sort(function(p1, p2) {
@@ -622,7 +727,7 @@ sap.ui.define([
622
727
  return mProperties[sName];
623
728
  });
624
729
 
625
- mMainEntitySet[sCachKey] = aProperties;
730
+ ODataFilterBarDelegate._setInstanceCacheEntry(oFilterBar, "fetchedProperties", aProperties);
626
731
  resolve(aProperties);
627
732
  });
628
733
  }
@@ -633,17 +738,8 @@ sap.ui.define([
633
738
  }.bind(this));
634
739
  };
635
740
 
636
-
637
741
  ODataFilterBarDelegate.cleanup = function (oFilterBar) {
638
- var sFilterBarId = oFilterBar.getId() + "->";
639
-
640
- Object.keys(mMainEntitySet).forEach(function(sKey){
641
- if (sKey.indexOf(sFilterBarId) === 0) {
642
-
643
- delete window[sFilterBarId + sKey + "-Parameters"];
644
- delete mMainEntitySet[sKey];
645
- }
646
- });
742
+ InstanceCache.delete(oFilterBar.getId());
647
743
  };
648
744
 
649
745
  ODataFilterBarDelegate.getTypeUtil = function (oPayload) {
@@ -163,8 +163,8 @@ sap.ui.define(["sap/ui/mdc/util/TypeUtil"], function(TypeUtil) {
163
163
 
164
164
  /**
165
165
  * Checks whether the thresholds are dynamic or constant.
166
- * @param {object} the threshold skeleton
167
- * @param {object} the UI.DataPoint.CriticalityCalculation annotation
166
+ * @param {object} oThresholds the threshold skeleton
167
+ * @param {object} oCriticalityCalculation the UI.DataPoint.CriticalityCalculation annotation
168
168
  * @returns {boolean} <code>true</code> if the threshold should be supplied as ConstantThresholds, <code>false</code> if the threshold should
169
169
  * be supplied as DynamicThresholds
170
170
  * @private
@@ -6,6 +6,7 @@
6
6
 
7
7
  sap.ui.define([
8
8
  "../../TableDelegate",
9
+ "../../table/V4AnalyticsPropertyHelper",
9
10
  "../../util/loadModules",
10
11
  "../../library",
11
12
  "sap/m/ColumnPopoverSelectListItem",
@@ -17,6 +18,7 @@ sap.ui.define([
17
18
  "sap/ui/base/ManagedObjectObserver"
18
19
  ], function(
19
20
  TableDelegate,
21
+ V4AnalyticsPropertyHelper,
20
22
  loadModules,
21
23
  library,
22
24
  ColumnPopoverSelectListItem,
@@ -35,64 +37,43 @@ sap.ui.define([
35
37
  var TableMap = new window.WeakMap(); // To store table-related information for easy access in the delegate.
36
38
 
37
39
  /**
38
- * Delegate class for <code>sap.ui.mdc.Table</code> and <code>ODataV4</code>.
40
+ * Delegate for {@link sap.ui.mdc.Table} and <code>ODataV4</code>.
39
41
  * Enables additional analytical capabilities.
40
42
  *
41
43
  * @author SAP SE
44
+ * @namespace
45
+ * @alias module:sap/ui/mdc/odata/v4/TableDelegate
46
+ * @extends module:sap/ui/mdc/TableDelegate
42
47
  * @experimental
43
48
  * @private
44
49
  * @ui5-restricted sap.fe
45
50
  * @MDC_PUBLIC_CANDIDATE
46
51
  * @since 1.85
47
- * @alias sap.ui.mdc.odata.v4.TableDelegate
48
52
  */
49
53
  var Delegate = Object.assign({}, TableDelegate);
50
54
 
51
55
  /**
52
- * Fetches the model-specific <code>PropertyHelper</code> class or instance.
56
+ * Gets the model-specific <code>PropertyHelper</code> class to create an instance of.
53
57
  *
54
- * <b>Note:</b> The PropertyHelper adds the extension of a property to the reserved attribute "extension". It is not allowed to add an "extension"
55
- * attribute in the standard property infos.
56
- *
57
- * @example <caption>Initialize a PropertyHelper with extensions:</caption>
58
- * new PropertyHelper(
59
- * [{
60
- * name: "propA",
61
- * label: "Property A",
62
- * extension: {
63
- * messageType: "Success"
64
- * }
65
- * }, {
66
- * name: "propB",
67
- * label: "Property B"
68
- * }]
69
- * )
70
- *
71
- * @param {sap.ui.mdc.Table} oTable Instance of the MDC table
72
- * @param {object[]} aProperties The property infos
73
- * @param {Promise<object<string, object>|null>} mExtensions The property extensions
74
- * @returns {Promise<sap.ui.mdc.table.V4AnalyticsPropertyHelper>} A <code>Promise</code> that resolves with the <code>PropertyHelper</code> class
75
- * or instance
58
+ * @returns {sap.ui.mdc.table.V4AnalyticsPropertyHelper} The <code>PropertyHelper</code> class.
76
59
  * @private
77
60
  * @ui5-restricted sap.ui.mdc
78
61
  */
79
- Delegate.fetchPropertyHelper = function(oTable, aProperties, mExtensions) {
80
- return loadModules("sap/ui/mdc/table/V4AnalyticsPropertyHelper").then(function(aResult) {
81
- return aResult[0];
82
- });
62
+ Delegate.getPropertyHelperClass = function() {
63
+ return V4AnalyticsPropertyHelper;
83
64
  };
84
65
 
85
66
  /**
86
67
  * Fetches the property extensions.
87
68
  *
88
- * <b>Note:</b> Property extensions are adding model-specific information. To ensure a clear separation from the standard property information,
89
- * the extensions need to be passed separately to the constructor, together with their attribute metadata. An extension has to be provided as a
69
+ * <b>Note:</b> Property extensions add model-specific information. To ensure a clear separation from the standard property information, the
70
+ * extensions need to be passed separately to the constructor, together with their attribute metadata. An extension has to be provided as a
90
71
  * key-value pair, where the key is the name of the property and the value is the extension of this property. It is not allowed to provide
91
72
  * extensions without the corresponding attribute metadata.
92
73
  *
93
- * @param {sap.ui.mdc.Table} oTable Instance of the MDC table
94
- * @param {object[]} aProperties The property infos
95
- * @returns {Promise<object<string, object>|null>} Key-value map, where the key is the name of the property, and the value is the extension
74
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
75
+ * @param {object[]} aProperties <code>PropertyInfo</code>
76
+ * @returns {Promise<Object<string, object>|null>} Key-value map, where the key is the name of the property, and the value is the extension
96
77
  * @protected
97
78
  */
98
79
  Delegate.fetchPropertyExtensions = function(oTable, aProperties) {
@@ -100,11 +81,11 @@ sap.ui.define([
100
81
  };
101
82
 
102
83
  /**
103
- * Retrieves the relevant metadata that will be used for the table binding, and returns the property info array.
84
+ * Retrieves the relevant metadata that will be used for the table binding, and returns the <code>PropertyInfo</code> array.
104
85
  * If it is not overridden, this method returns the same as <code>fetchProperties</code>.
105
86
  * When overriding the method make sure the returned result is consistent with what is returned by <code>fetchProperties</code>.
106
87
  *
107
- * @param {sap.ui.mdc.Table} oTable Instance of the MDC table
88
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
108
89
  * @returns {Promise} Once resolved, an array of <code>PropertyInfo</code> objects is returned
109
90
  * @protected
110
91
  */
@@ -117,9 +98,9 @@ sap.ui.define([
117
98
  * If it is not overridden, this method returns the same as <code>fetchPropertyExtensions</code>.
118
99
  * When overriding the method make sure the returned result is consistent with what is returned by <code>fetchPropertyExtensions</code>.
119
100
  *
120
- * @param {sap.ui.mdc.Table} oTable Instance of the MDC table
121
- * @param {object[]} aProperties The property infos
122
- * @returns {Promise<object<string, object>|null>} Key-value map, where the key is the name of the property, and the value is the extension
101
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
102
+ * @param {object[]} aProperties <code>PropertyInfo</code>
103
+ * @returns {Promise<Object<string, object>|null>} Key-value map, where the key is the name of the property, and the value is the extension
123
104
  * @protected
124
105
  */
125
106
  Delegate.fetchPropertyExtensionsForBinding = function(oTable, aProperties) {
@@ -129,7 +110,7 @@ sap.ui.define([
129
110
  /**
130
111
  * Formats the title text of a group header row of the table.
131
112
  *
132
- * @param {sap.ui.mdc.Table} oTable Instance of the MDC table
113
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
133
114
  * @param {sap.ui.model.Context} oContext Binding context
134
115
  * @param {string} sProperty The name of the grouped property
135
116
  * @returns {string | undefined} The group header title. If <code>undefined</code> is returned, the default group header title is set.
@@ -144,7 +125,6 @@ sap.ui.define([
144
125
 
145
126
  return configureInnerTable(oTable).then(function() {
146
127
  setAggregation(oTable);
147
- setUpTableObserver(oTable);
148
128
  });
149
129
  };
150
130
 
@@ -209,13 +189,12 @@ sap.ui.define([
209
189
  * {@link sap.ui.model.odata.v4.ODataListBinding#changeParameters}.
210
190
  *
211
191
  * @param {sap.ui.mdc.Table} oTable Instance of the MDC table
212
- * @param {object} oDelegatePayload The delegate payload
213
192
  * @param {sap.ui.base.ManagedObject.AggregationBindingInfo} oBindingInfo The binding info object to be used to bind the table to the model
214
193
  * @function
215
- * @name sap.ui.mdc.odata.v4.TableDelegate.updateBindingInfo
194
+ * @name module:sap/ui/mdc/odata/v4/TableDelegate.updateBindingInfo
216
195
  * @abstract
217
196
  */
218
- //Delegate.updateBindingInfo = function(oTable, oDelegatePayload, oBindingInfo) { };
197
+ //Delegate.updateBindingInfo = function(oTable, oBindingInfo) { };
219
198
 
220
199
  /**
221
200
  * Updates the row binding of the table if possible, rebinds otherwise.
@@ -226,15 +205,15 @@ sap.ui.define([
226
205
  * <code>model</code>... must be provided in the {@link #updateBindingInfo updateBindingInfo} method always,
227
206
  * and those keys must not be changed conditionally.
228
207
  *
229
- * @param {sap.ui.mdc.Table} oMDCTable Instance of the MDC table
208
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
230
209
  * @param {sap.ui.base.ManagedObject.AggregationBindingInfo} oBindingInfo The binding info object to be used to bind the table to the model.
231
210
  * @param {sap.ui.model.ListBinding} [oBinding] The binding instance of the table
232
211
  * @protected
233
212
  * @override
234
213
  */
235
214
  Delegate.updateBinding = function(oTable, oBindingInfo, oBinding) {
236
- if (!oBinding || oBinding.hasPendingChanges() || oBinding.getPath() != oBindingInfo.path) {
237
- this.rebindTable(oTable, oBindingInfo);
215
+ if (!oBinding || oBinding.getPath() != oBindingInfo.path) {
216
+ this.rebind(oTable, oBindingInfo);
238
217
  return;
239
218
  }
240
219
 
@@ -252,7 +231,7 @@ sap.ui.define([
252
231
  oBinding.filter(oBindingInfo.filters, "Application");
253
232
  oBinding.sort(oBindingInfo.sorter);
254
233
  } catch (e) {
255
- this.rebindTable(oTable, oBindingInfo);
234
+ this.rebind(oTable, oBindingInfo);
256
235
  if (oRootBinding == oBinding) {
257
236
  // If we resume before the rebind, you get an extra request therefore we must
258
237
  // resume after rebind, but only if the list binding was not the root binding.
@@ -269,29 +248,37 @@ sap.ui.define([
269
248
  * @override
270
249
  * @inheritDoc
271
250
  */
272
- Delegate.rebindTable = function (oTable, oBindingInfo) {
251
+ Delegate.rebind = function (oTable, oBindingInfo) {
273
252
  setAggregation(oTable, oBindingInfo);
274
- TableDelegate.rebindTable(oTable, oBindingInfo);
253
+ TableDelegate.rebind(oTable, oBindingInfo);
275
254
  };
276
255
 
277
256
  Delegate.addColumnMenuItems = function(oTable, oMDCColumn) {
278
- if (!isInnerTableReadyForAnalytics(oTable)) {
279
- return [];
280
- }
281
-
282
257
  var oPropertyHelper = oTable.getPropertyHelper();
283
258
  var oProperty = oPropertyHelper.getProperty(oMDCColumn.getDataProperty());
259
+ var aItems = [];
284
260
 
285
261
  if (!oProperty) {
286
262
  return [];
287
263
  }
288
264
 
289
- var aGroupProperties = oProperty.getGroupableProperties();
290
- var aAggregateProperties = oProperty.getAggregatableProperties();
291
- var oPopover = oTable._oPopover;
292
- var oAggregatePopoverItem;
293
- var oGroupPopoverItem;
265
+ if (oTable.isGroupingEnabled() && supportsGrouping(oTable)) {
266
+ var aGroupProperties = oProperty.getGroupableProperties();
267
+
268
+ if (aGroupProperties.length > 0) {
269
+ aItems.push(createGroupPopoverItem(aGroupProperties, oMDCColumn));
270
+ }
271
+ }
294
272
 
273
+ if (oTable.isAggregationEnabled() && supportsAggregation(oTable)) {
274
+ var aAggregateProperties = oProperty.getAggregatableProperties();
275
+
276
+ if (aAggregateProperties.length > 0) {
277
+ aItems.push(createAggregatePopoverItem(aAggregateProperties, oMDCColumn));
278
+ }
279
+ }
280
+
281
+ var oPopover = oTable._oPopover;
295
282
  if (oPopover) {
296
283
  oPopover.getItems().forEach(function(oItem, iIndex, aItems) {
297
284
  var sLabel = oItem.getLabel();
@@ -307,15 +294,7 @@ sap.ui.define([
307
294
  });
308
295
  }
309
296
 
310
- if (oTable.isGroupingEnabled() && aGroupProperties.length > 0) {
311
- oGroupPopoverItem = createGroupPopoverItem(aGroupProperties, oMDCColumn);
312
- }
313
-
314
- if (oTable.isAggregationEnabled() && aAggregateProperties.length > 0) {
315
- oAggregatePopoverItem = createAggregatePopoverItem(aAggregateProperties, oMDCColumn);
316
- }
317
-
318
- return [oGroupPopoverItem, oAggregatePopoverItem];
297
+ return aItems;
319
298
  };
320
299
 
321
300
  function createGroupPopoverItem(aGroupProperties, oMDCColumn) {
@@ -431,30 +410,36 @@ sap.ui.define([
431
410
  /**
432
411
  * Updates the aggregation info if the plugin is enabled.
433
412
  *
434
- * @param {sap.ui.mdc.Table} oTable Instance of the MDC table
413
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
435
414
  * @param {sap.ui.base.ManagedObject.AggregationBindingInfo} [oBindingInfo] The binding info object to be used to bind the table to the model
436
415
  */
437
416
  function setAggregation(oTable, oBindingInfo) {
438
- if (isInnerTableReadyForAnalytics(oTable)) {
439
- var aAggregates = Object.keys(oTable._getAggregatedProperties());
440
- var sSearch = oBindingInfo && oBindingInfo.parameters["$search"] || undefined;
441
- if (sSearch ) {
442
- delete oBindingInfo.parameters["$search"];
443
- }
444
- var aGroupLevels = oTable._getGroupedProperties().map(function (mGroupLevel) {
445
- return mGroupLevel.name;
446
- });
447
- var oAggregationInfo = {
448
- visible: getVisibleProperties(oTable),
449
- groupLevels: aGroupLevels,
450
- grandTotal: aAggregates,
451
- subtotals: aAggregates,
452
- columnState: getColumnState(oTable, aAggregates),
453
- search: sSearch
454
- };
417
+ var oPlugin = TableMap.get(oTable).plugin;
418
+
419
+ if (!oPlugin || oPlugin.isDestroyed()) {
420
+ return;
421
+ }
422
+
423
+ var aGroupLevels = oTable._getGroupedProperties().map(function (mGroupLevel) {
424
+ return mGroupLevel.name;
425
+ });
426
+ var aAggregates = Object.keys(oTable._getAggregatedProperties());
427
+ var sSearch = oBindingInfo ? oBindingInfo.parameters["$search"] : undefined;
455
428
 
456
- TableMap.get(oTable).plugin.setAggregationInfo(oAggregationInfo);
429
+ if (sSearch ) {
430
+ delete oBindingInfo.parameters["$search"];
457
431
  }
432
+
433
+ var oAggregationInfo = {
434
+ visible: getVisibleProperties(oTable),
435
+ groupLevels: aGroupLevels,
436
+ grandTotal: aAggregates,
437
+ subtotals: aAggregates,
438
+ columnState: getColumnState(oTable, aAggregates),
439
+ search: sSearch
440
+ };
441
+
442
+ oPlugin.setAggregationInfo(oAggregationInfo);
458
443
  }
459
444
 
460
445
  function getVisibleProperties(oTable) {
@@ -469,7 +454,7 @@ sap.ui.define([
469
454
  }
470
455
 
471
456
  if (oProperty.isComplex()) {
472
- // Add the names of all related (simple) propertyInfos in the list.
457
+ // Add the names of all related (simple) PropertyInfo in the list.
473
458
  oProperty.getReferencedProperties().forEach(function(oProperty) {
474
459
  oVisiblePropertiesSet.add(oProperty.name);
475
460
  });
@@ -584,7 +569,7 @@ sap.ui.define([
584
569
  *
585
570
  * @param {Object} oBaseState Message set by the base <code>TableDelegate</code>
586
571
  * @param {Object} oValidationState Message set by the <code>ODataV4Delegate</code>
587
- * @return {Object} The message with higher priority
572
+ * @returns {Object} The message with higher priority
588
573
  * @private
589
574
  */
590
575
  function mergeValidation(oBaseState, oValidationState) {
@@ -598,39 +583,56 @@ sap.ui.define([
598
583
  }
599
584
 
600
585
  /**
601
- * Configures the inner table to support the personalization settings of the MDC table.
586
+ * Checks whether the inner table supports grouping.
602
587
  *
603
- * @param {sap.ui.mdc.Table} oTable Instance of the MDC table
604
- * @return {Promise} A <code>Promise</code> that revolves when the inner table is configured
588
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
589
+ * @returns {boolean} Whether the inner table supports grouping
605
590
  */
606
- function configureInnerTable(oTable) {
607
- return oTable._isOfType(TableType.Table) ? configureGridTable(oTable) : configureResponsiveTable(oTable);
591
+ function supportsGrouping(oTable) {
592
+ return oTable._isOfType(TableType.Table);
608
593
  }
609
594
 
610
595
  /**
611
- * Checks whether the inner table supports the "analytical" p13n modes <code>Group</code> and <code>Aggregate</code>.
596
+ * Checks whether the inner table supports aggregation.
612
597
  *
613
- * @param {sap.ui.mdc.Table} oTable Instance of the MDC table
614
- * @return {boolean} Whether the inner table supports the "analytical" p13n modes
598
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
599
+ * @returns {boolean} Whether the inner table supports aggregation
615
600
  */
616
- function isInnerTableReadyForAnalytics(oTable) {
617
- if (oTable._isOfType(TableType.Table)) {
618
- var oPlugin = TableMap.get(oTable).plugin;
619
- return oPlugin != null && !oPlugin.bIsDestroyed;
620
- } else {
621
- return false;
622
- }
601
+ function supportsAggregation(oTable) {
602
+ return oTable._isOfType(TableType.Table);
623
603
  }
624
604
 
625
- function configureGridTable(oTable) {
626
- return isAnalyticsEnabled(oTable) ? enableGridTablePlugin(oTable) : disableGridTablePlugin(oTable);
605
+ /**
606
+ * Checks whether aggregation features of the model are used.
607
+ *
608
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
609
+ * @returns {boolean} Whether aggregation features are used
610
+ * @see sap.ui.model.odata.v4.ODataListBinding#setAggregation
611
+ */
612
+ function isAnalyticsEnabled(oTable) {
613
+ return (oTable.isGroupingEnabled() || oTable.isAggregationEnabled()) && oTable._isOfType(TableType.Table);
614
+ }
615
+
616
+ /**
617
+ * Configures the inner table to support the personalization settings of the table.
618
+ *
619
+ * @param {sap.ui.mdc.Table} oTable Instance of the table
620
+ * @return {Promise} A <code>Promise</code> that resolves when the inner table is configured
621
+ */
622
+ function configureInnerTable(oTable) {
623
+ if (oTable._isOfType(TableType.Table)) {
624
+ return (isAnalyticsEnabled(oTable) ? enableGridTablePlugin(oTable) : disableGridTablePlugin(oTable)).then(function() {
625
+ return setUpTableObserver(oTable);
626
+ });
627
+ }
628
+ return Promise.resolve();
627
629
  }
628
630
 
629
631
  function enableGridTablePlugin(oTable) {
630
632
  var mTableMap = TableMap.get(oTable);
631
633
  var oPlugin = mTableMap.plugin;
632
634
 
633
- if (oPlugin && !oPlugin.bIsDestroyed) {
635
+ if (oPlugin && !oPlugin.isDestroyed()) {
634
636
  oPlugin.activate();
635
637
  return Promise.resolve();
636
638
  }
@@ -668,10 +670,6 @@ sap.ui.define([
668
670
  return Promise.resolve();
669
671
  }
670
672
 
671
- function configureResponsiveTable(oTable) {
672
- return Promise.resolve();
673
- }
674
-
675
673
  function fetchPropertyHelperForBinding(oTable) {
676
674
  var mTableMap = TableMap.get(oTable);
677
675
 
@@ -688,10 +686,9 @@ sap.ui.define([
688
686
  return oDelegate.fetchPropertyExtensionsForBinding(oTable, aProperties);
689
687
  }).then(function(mExtensionsForBinding) {
690
688
  mExtensions = mExtensionsForBinding;
691
- return oDelegate.fetchPropertyHelper(oTable, aProperties, mExtensions);
689
+ return oDelegate.getPropertyHelperClass();
692
690
  }).then(function(PropertyHelper) {
693
- var bIsPropertyHelperInstance = PropertyHelper.constructor === PropertyHelper;
694
- mTableMap.oPropertyHelperForBinding = bIsPropertyHelperInstance ? PropertyHelper : new PropertyHelper(aProperties, mExtensions, oTable);
691
+ mTableMap.oPropertyHelperForBinding = new PropertyHelper(aProperties, mExtensions, oTable);
695
692
  return mTableMap.oPropertyHelperForBinding;
696
693
  });
697
694
  }
@@ -706,20 +703,17 @@ sap.ui.define([
706
703
  if (mTableMap.oPropertyHelperForBinding) {
707
704
  mTableMap.oPropertyHelperForBinding.destroy();
708
705
  }
706
+
709
707
  } else {
710
708
  configureInnerTable(oTable);
711
709
  }
712
710
  });
713
- }
714
-
715
- mTableMap.observer.observe(oTable, {
716
- properties: ["p13nMode"],
717
- destroy: true
718
- });
719
- }
720
711
 
721
- function isAnalyticsEnabled(oTable) {
722
- return oTable.isGroupingEnabled() || oTable.isAggregationEnabled();
712
+ mTableMap.observer.observe(oTable, {
713
+ properties: ["p13nMode"],
714
+ destroy: true
715
+ });
716
+ }
723
717
  }
724
718
 
725
719
  return Delegate;
@@ -4,7 +4,7 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- sap.ui.define(['sap/ui/mdc/odata/TypeUtil', 'sap/ui/mdc/enum/BaseType'], function(ODataTypeUtil, BaseType) {
7
+ sap.ui.define(['sap/ui/mdc/odata/TypeUtil', 'sap/ui/mdc/enum/BaseType', 'sap/base/util/merge'], function(ODataTypeUtil, BaseType, merge) {
8
8
  "use strict";
9
9
 
10
10
  /**
@@ -62,9 +62,7 @@ sap.ui.define(['sap/ui/mdc/odata/TypeUtil', 'sap/ui/mdc/enum/BaseType'], functio
62
62
  switch (sDataType) {
63
63
  case "sap.ui.model.odata.type.DateTimeOffset":
64
64
  case "Edm.DateTimeOffset":
65
- if (!constraints) {
66
- constraints = {};
67
- }
65
+ constraints = merge({}, constraints);
68
66
  constraints.V4 = true;
69
67
  break;
70
68
 
@@ -77,4 +75,4 @@ sap.ui.define(['sap/ui/mdc/odata/TypeUtil', 'sap/ui/mdc/enum/BaseType'], functio
77
75
 
78
76
  return ODataV4TypeUtil;
79
77
 
80
- }, /* bExport= */ true);
78
+ });
@@ -15,7 +15,7 @@ sap.ui.define([
15
15
 
16
16
  var ODataV4ValueHelpDelegate = Object.assign({}, ValueHelpDelegate);
17
17
 
18
- ODataV4ValueHelpDelegate.isSearchSupported = function(oPayload, oListBinding) {
18
+ ODataV4ValueHelpDelegate.isSearchSupported = function(oPayload, oContent, oListBinding) {
19
19
  return !!oListBinding.changeParameters;
20
20
  };
21
21