@openui5/sap.ui.mdc 1.93.3 → 1.96.1

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 (237) hide show
  1. package/.reuse/dep5 +6 -11
  2. package/THIRDPARTY.txt +10 -16
  3. package/package.json +4 -4
  4. package/src/sap/ui/mdc/.library +1 -1
  5. package/src/sap/ui/mdc/ActionToolbar.js +236 -334
  6. package/src/sap/ui/mdc/AggregationBaseDelegate.js +2 -1
  7. package/src/sap/ui/mdc/Chart.js +150 -22
  8. package/src/sap/ui/mdc/ChartDelegateNew.js +15 -0
  9. package/src/sap/ui/mdc/ChartNew.js +107 -66
  10. package/src/sap/ui/mdc/Control.js +4 -3
  11. package/src/sap/ui/mdc/Element.js +5 -4
  12. package/src/sap/ui/mdc/Field.js +2 -2
  13. package/src/sap/ui/mdc/FilterBar.js +1 -10
  14. package/src/sap/ui/mdc/FilterField.js +28 -4
  15. package/src/sap/ui/mdc/Link.js +2 -2
  16. package/src/sap/ui/mdc/MultiValueField.js +1 -1
  17. package/src/sap/ui/mdc/Table.js +160 -79
  18. package/src/sap/ui/mdc/TableDelegate.js +20 -3
  19. package/src/sap/ui/mdc/ValueHelp.js +1474 -0
  20. package/src/sap/ui/mdc/ValueHelpDelegate.js +147 -0
  21. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +49 -104
  22. package/src/sap/ui/mdc/chart/DimensionItem.js +3 -3
  23. package/src/sap/ui/mdc/chart/Item.js +2 -3
  24. package/src/sap/ui/mdc/chart/MeasureItem.js +2 -2
  25. package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +21 -2
  26. package/src/sap/ui/mdc/chart/ToolbarHandler.js +237 -225
  27. package/src/sap/ui/mdc/chartNew/ChartSelectionDetailsNew.js +1 -1
  28. package/src/sap/ui/mdc/chartNew/ChartToolbarNew.js +14 -10
  29. package/src/sap/ui/mdc/chartNew/ChartTypeButtonNew.js +1 -1
  30. package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +12 -10
  31. package/src/sap/ui/mdc/chartNew/ItemNew.js +0 -1
  32. package/src/sap/ui/mdc/chartNew/PropertyHelperNew.js +1 -1
  33. package/src/sap/ui/mdc/condition/Condition.js +2 -2
  34. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  35. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  36. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  37. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +13 -7
  38. package/src/sap/ui/mdc/condition/Operator.js +4 -4
  39. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  40. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +43 -0
  41. package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +91 -0
  42. package/src/sap/ui/mdc/designtime/filterbar/FilterBar.designtime.js +20 -0
  43. package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +31 -0
  44. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +5 -0
  45. package/src/sap/ui/mdc/enum/ContentMode.js +25 -4
  46. package/src/sap/ui/mdc/enum/SelectType.js +43 -0
  47. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  48. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  49. package/src/sap/ui/mdc/field/ConditionType.js +19 -4
  50. package/src/sap/ui/mdc/field/ConditionsType.js +5 -4
  51. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  52. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  53. package/src/sap/ui/mdc/field/DefineConditionPanel.js +38 -14
  54. package/src/sap/ui/mdc/field/FieldBase.js +92 -41
  55. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +9 -2
  56. package/src/sap/ui/mdc/field/FieldHelpBase.js +64 -4
  57. package/src/sap/ui/mdc/field/FieldInfoBase.js +9 -1
  58. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  59. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  60. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  61. package/src/sap/ui/mdc/field/FieldValueHelp.js +7 -1
  62. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  63. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
  64. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +1 -1
  65. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +2 -2
  66. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +1 -1
  67. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  68. package/src/sap/ui/mdc/field/ListFieldHelp.js +3 -3
  69. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  70. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  71. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  72. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
  73. package/src/sap/ui/mdc/field/content/BooleanContent.js +15 -3
  74. package/src/sap/ui/mdc/field/content/ContentFactory.js +16 -8
  75. package/src/sap/ui/mdc/field/content/DefaultContent.js +64 -23
  76. package/src/sap/ui/mdc/field/content/LinkContent.js +6 -0
  77. package/src/sap/ui/mdc/field/content/SearchContent.js +21 -3
  78. package/src/sap/ui/mdc/field/content/UnitContent.js +2 -2
  79. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +105 -44
  80. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +52 -0
  81. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +10 -51
  82. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  83. package/src/sap/ui/mdc/flexibility/ActionToolbar.flexibility.js +22 -0
  84. package/src/sap/ui/mdc/flexibility/ActionToolbarAction.flexibility.js +19 -0
  85. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  86. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +57 -46
  87. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  88. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  89. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +203 -197
  90. package/src/sap/ui/mdc/library.js +588 -8
  91. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  92. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  93. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  94. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  95. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  96. package/src/sap/ui/mdc/link/Factory.js +1 -1
  97. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  98. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  99. package/src/sap/ui/mdc/link/Panel.js +1 -1
  100. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  101. package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
  102. package/src/sap/ui/mdc/link/SelectionDialog.js +2 -2
  103. package/src/sap/ui/mdc/link/SelectionDialogItem.js +1 -1
  104. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  105. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  106. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  107. package/src/sap/ui/mdc/messagebundle.properties +31 -5
  108. package/src/sap/ui/mdc/messagebundle_ar.properties +11 -4
  109. package/src/sap/ui/mdc/messagebundle_bg.properties +10 -3
  110. package/src/sap/ui/mdc/messagebundle_ca.properties +10 -3
  111. package/src/sap/ui/mdc/messagebundle_cs.properties +12 -5
  112. package/src/sap/ui/mdc/messagebundle_cy.properties +10 -3
  113. package/src/sap/ui/mdc/messagebundle_da.properties +10 -3
  114. package/src/sap/ui/mdc/messagebundle_de.properties +12 -5
  115. package/src/sap/ui/mdc/messagebundle_el.properties +11 -4
  116. package/src/sap/ui/mdc/messagebundle_en.properties +9 -2
  117. package/src/sap/ui/mdc/messagebundle_en_GB.properties +10 -3
  118. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +11 -3
  119. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +19 -3
  120. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +11 -2
  121. package/src/sap/ui/mdc/messagebundle_es.properties +35 -28
  122. package/src/sap/ui/mdc/messagebundle_es_MX.properties +10 -3
  123. package/src/sap/ui/mdc/messagebundle_et.properties +10 -3
  124. package/src/sap/ui/mdc/messagebundle_fi.properties +11 -4
  125. package/src/sap/ui/mdc/messagebundle_fr.properties +22 -15
  126. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +10 -3
  127. package/src/sap/ui/mdc/messagebundle_hi.properties +10 -3
  128. package/src/sap/ui/mdc/messagebundle_hr.properties +10 -3
  129. package/src/sap/ui/mdc/messagebundle_hu.properties +11 -4
  130. package/src/sap/ui/mdc/messagebundle_id.properties +11 -4
  131. package/src/sap/ui/mdc/messagebundle_it.properties +33 -26
  132. package/src/sap/ui/mdc/messagebundle_iw.properties +10 -3
  133. package/src/sap/ui/mdc/messagebundle_ja.properties +13 -6
  134. package/src/sap/ui/mdc/messagebundle_kk.properties +10 -3
  135. package/src/sap/ui/mdc/messagebundle_ko.properties +10 -3
  136. package/src/sap/ui/mdc/messagebundle_lt.properties +10 -3
  137. package/src/sap/ui/mdc/messagebundle_lv.properties +10 -3
  138. package/src/sap/ui/mdc/messagebundle_ms.properties +10 -3
  139. package/src/sap/ui/mdc/messagebundle_nl.properties +11 -4
  140. package/src/sap/ui/mdc/messagebundle_no.properties +17 -10
  141. package/src/sap/ui/mdc/messagebundle_pl.properties +14 -7
  142. package/src/sap/ui/mdc/messagebundle_pt.properties +11 -4
  143. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +10 -3
  144. package/src/sap/ui/mdc/messagebundle_ro.properties +13 -6
  145. package/src/sap/ui/mdc/messagebundle_ru.properties +10 -3
  146. package/src/sap/ui/mdc/messagebundle_sh.properties +10 -3
  147. package/src/sap/ui/mdc/messagebundle_sk.properties +11 -4
  148. package/src/sap/ui/mdc/messagebundle_sl.properties +10 -3
  149. package/src/sap/ui/mdc/messagebundle_sv.properties +11 -4
  150. package/src/sap/ui/mdc/messagebundle_th.properties +16 -9
  151. package/src/sap/ui/mdc/messagebundle_tr.properties +10 -3
  152. package/src/sap/ui/mdc/messagebundle_uk.properties +10 -3
  153. package/src/sap/ui/mdc/messagebundle_vi.properties +10 -3
  154. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +10 -3
  155. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +10 -3
  156. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  157. package/src/sap/ui/mdc/mixin/DelegateMixin.js +2 -2
  158. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +3 -3
  159. package/src/sap/ui/mdc/mixin/PromiseMixin.js +94 -0
  160. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelperNew.js +1 -1
  161. package/src/sap/ui/mdc/odata/v4/FilterBarDelegate.js +6 -6
  162. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +37 -10
  163. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +94 -0
  164. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegateNew.js +492 -203
  165. package/src/sap/ui/mdc/p13n/DefaultProviderRegistry.js +1 -1
  166. package/src/sap/ui/mdc/p13n/Engine.js +3 -2
  167. package/src/sap/ui/mdc/p13n/P13nBuilder.js +6 -60
  168. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  169. package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
  170. package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +22 -24
  171. package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +59 -0
  172. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +1 -2
  173. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +17 -8
  174. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1 -2
  175. package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +1171 -0
  176. package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +1 -1
  177. package/src/sap/ui/mdc/p13n/panels/GroupView.js +7 -11
  178. package/src/sap/ui/mdc/p13n/panels/ListView.js +5 -3
  179. package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +16 -9
  180. package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +0 -1
  181. package/src/sap/ui/mdc/p13n/panels/SortPanel.js +0 -1
  182. package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +1 -1
  183. package/src/sap/ui/mdc/p13n/panels/Wrapper.js +1 -1
  184. package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +89 -0
  185. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +9 -6
  186. package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +33 -4
  187. package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +9 -15
  188. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +12 -0
  189. package/src/sap/ui/mdc/p13n/subcontroller/GroupController.js +5 -12
  190. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +19 -21
  191. package/src/sap/ui/mdc/table/Column.js +35 -9
  192. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  193. package/src/sap/ui/mdc/table/GridTableType.js +0 -1
  194. package/src/sap/ui/mdc/table/PropertyHelper.js +108 -5
  195. package/src/sap/ui/mdc/table/ResponsiveTableType.js +19 -3
  196. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  197. package/src/sap/ui/mdc/table/TableTypeBase.js +0 -1
  198. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
  199. package/src/sap/ui/mdc/themes/base/FilterBar.less +2 -2
  200. package/src/sap/ui/mdc/themes/base/GroupView.less +2 -2
  201. package/src/sap/ui/mdc/themes/base/ListView.less +2 -2
  202. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +56 -21
  203. package/src/sap/ui/mdc/ui/Container.js +2 -2
  204. package/src/sap/ui/mdc/ui/ContainerItem.js +2 -2
  205. package/src/sap/ui/mdc/util/Common.js +26 -0
  206. package/src/sap/ui/mdc/util/FilterUtil.js +12 -1
  207. package/src/sap/ui/mdc/util/IdentifierUtil.js +4 -0
  208. package/src/sap/ui/mdc/util/PromiseCache.js +266 -0
  209. package/src/sap/ui/mdc/util/PropertyHelper.js +22 -1
  210. package/src/sap/ui/mdc/valuehelp/Dialog.js +498 -0
  211. package/src/sap/ui/mdc/valuehelp/Popover.js +362 -0
  212. package/src/sap/ui/mdc/valuehelp/base/Container.js +642 -0
  213. package/src/sap/ui/mdc/valuehelp/base/Content.js +628 -0
  214. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +139 -0
  215. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +557 -0
  216. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +133 -0
  217. package/src/sap/ui/mdc/valuehelp/content/Bool.js +318 -0
  218. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +276 -0
  219. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +532 -0
  220. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +638 -0
  221. package/src/sap/ui/mdc/valuehelp/content/MTable.js +916 -0
  222. package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +3 -2
  223. package/test/sap/ui/mdc/testutils/opa/actions/OpenContextMenu.js +48 -0
  224. package/test/sap/ui/mdc/testutils/opa/chartNew/ActionsBase.js +310 -0
  225. package/test/sap/ui/mdc/testutils/opa/chartNew/ActionsViz.js +39 -0
  226. package/test/sap/ui/mdc/testutils/opa/chartNew/AssertionsBase.js +118 -0
  227. package/test/sap/ui/mdc/testutils/opa/chartNew/AssertionsViz.js +137 -0
  228. package/test/sap/ui/mdc/testutils/opa/chartNew/ChartNew.js +24 -0
  229. package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +289 -0
  230. package/test/sap/ui/mdc/testutils/opa/filterbar/Actions.js +250 -0
  231. package/test/sap/ui/mdc/testutils/opa/filterbar/Assertions.js +91 -0
  232. package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +137 -0
  233. package/test/sap/ui/mdc/testutils/opa/filterbar/Util.js +25 -0
  234. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +401 -93
  235. package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +4 -1
  236. package/test/sap/ui/mdc/testutils/opa/p13n/{waitForP13nButtonWithParentAndIcon.js → waitForP13nButtonWithMatchers.js} +5 -18
  237. package/test/sap/ui/mdc/testutils/opa/table/TestObjects.js +0 -1
@@ -38,7 +38,8 @@ sap.ui.define([
38
38
  "sap/ui/mdc/p13n/subcontroller/AggregateController",
39
39
  "sap/m/ColumnPopoverSelectListItem",
40
40
  "sap/m/ColumnPopoverActionItem",
41
- "sap/ui/mdc/p13n/subcontroller/ColumnWidthController"
41
+ "sap/ui/mdc/p13n/subcontroller/ColumnWidthController",
42
+ "sap/ui/mdc/actiontoolbar/ActionToolbarAction"
42
43
  ], function(
43
44
  Control,
44
45
  ActionToolbar,
@@ -73,7 +74,8 @@ sap.ui.define([
73
74
  AggregateController,
74
75
  ColumnPopoverSelectListItem,
75
76
  ColumnPopoverActionItem,
76
- ColumnWidthController
77
+ ColumnWidthController,
78
+ ActionToolbarAction
77
79
  ) {
78
80
  "use strict";
79
81
 
@@ -119,7 +121,6 @@ sap.ui.define([
119
121
  * <b>Note:</b> The control is experimental and the API/behavior is not finalized and hence this should not be used for productive usage.
120
122
  * @extends sap.ui.mdc.Control
121
123
  * @author SAP SE
122
- * @constructor The API/behavior is not finalized and hence this control should not be used for productive usage.
123
124
  * @private
124
125
  * @experimental
125
126
  * @since 1.58
@@ -354,6 +355,16 @@ sap.ui.define([
354
355
  group: "Behavior",
355
356
  defaultValue: false
356
357
  },
358
+ /**
359
+ * Determines whether the Paste button is enabled.
360
+ *
361
+ * @since 1.96
362
+ */
363
+ enablePaste: {
364
+ type: "boolean",
365
+ group: "Behavior",
366
+ defaultValue: true
367
+ },
357
368
  /**
358
369
  * Defines the multi-selection mode for the control.
359
370
  * If this property is set to the <code>Default</code> value, the <code>ResponsiveTable</code> type control renders
@@ -366,6 +377,24 @@ sap.ui.define([
366
377
  type: "sap.ui.mdc.MultiSelectMode",
367
378
  group: "Behavior",
368
379
  defaultValue: MultiSelectMode.Default
380
+ },
381
+
382
+ /**
383
+ * Enables automatic column width calculation based on metadata information if set to <code>true</code>.
384
+ * The column width calculation takes the type, column label, referenced properties, and many other metadata parameters into account.
385
+ * Providing a more precise <code>maxLength</code> value for the <code>String</code> type or <code>precision</code> value for numeric types can help this algorithm to produce better results.
386
+ * The calculated column widths can have a minimum of 3rem and a maximum of 20rem.
387
+ *
388
+ * <b>Note:</b> To customize the automatic column width calculation the <code>visualSettings.widthSettings</code> key of the <code>PropertyInfo</code> can be used.
389
+ * To avoid the heuristic column width calculation for a particular column, the <code>visualSettings.widthSettings</code> key of the <code>PropertyInfo</code> must be set to <code>null</code>.
390
+ * This feature has no effect if the <code>width</code> property of the column is bound or its value is set.
391
+ *
392
+ * @since 1.95
393
+ */
394
+ enableAutoColumnWidth: {
395
+ type: "boolean",
396
+ group: "Behavior",
397
+ defaultValue: false
369
398
  }
370
399
  },
371
400
  aggregations: {
@@ -635,10 +664,44 @@ sap.ui.define([
635
664
  };
636
665
 
637
666
  Table.prototype.getDataStateIndicatorPluginOwner = function(oDataStateIndicator) {
638
- oDataStateIndicator.setEnableFiltering(false);
639
667
  return this._oTable || this._oFullInitialize.promise;
640
668
  };
641
669
 
670
+ Table.prototype.setDataStateIndicator = function(oDataStateIndicator) {
671
+ this._handleDataStateEvents(this.getDataStateIndicator(), "detach");
672
+ this.setAggregation("dataStateIndicator", oDataStateIndicator, true);
673
+ this._handleDataStateEvents(this.getDataStateIndicator(), "attach");
674
+ return this;
675
+ };
676
+
677
+ Table.prototype._handleDataStateEvents = function(oDataStateIndicator, sAction) {
678
+ if (oDataStateIndicator) {
679
+ oDataStateIndicator[sAction + "ApplyFilter"](this._onApplyMessageFilter, this);
680
+ oDataStateIndicator[sAction + "ClearFilter"](this._onClearMessageFilter, this);
681
+ oDataStateIndicator[sAction + "Event"]("filterInfoPress", onShowFilterDialog, this);
682
+ }
683
+ };
684
+
685
+ /**
686
+ * This gets called from the DataStateIndicator plugin when data state message filter is applied
687
+ * @private
688
+ */
689
+ Table.prototype._onApplyMessageFilter = function(oEvent) {
690
+ this._oMessageFilter = oEvent.getParameter("filter");
691
+ oEvent.preventDefault();
692
+ this.rebind();
693
+ };
694
+
695
+ /**
696
+ * This gets called from the DataStateIndicator plugin when the data state message filter is cleared
697
+ * @private
698
+ */
699
+ Table.prototype._onClearMessageFilter = function(oEvent) {
700
+ this._oMessageFilter = null;
701
+ oEvent.preventDefault();
702
+ this.rebind();
703
+ };
704
+
642
705
  // ----Type----
643
706
  Table.prototype._getStringType = function(oTypeInput) {
644
707
  var sType, oType = sType = oTypeInput || this.getType();
@@ -890,7 +953,7 @@ sap.ui.define([
890
953
  var bOldEnableColumnResize = this.getEnableColumnResize();
891
954
  this.setProperty("enableColumnResize", bEnableColumnResize, true);
892
955
 
893
- if (bEnableColumnResize !== bOldEnableColumnResize) {
956
+ if (this.getEnableColumnResize() !== bOldEnableColumnResize) {
894
957
  this._updateColumnResizer();
895
958
  this._updateAdaptation(this.getP13nMode());
896
959
  }
@@ -1105,9 +1168,7 @@ sap.ui.define([
1105
1168
  wrapping: false
1106
1169
  })
1107
1170
  ],
1108
- press: function() {
1109
- TableSettings.showPanel(oTable, "Filter", oFilterInfoToolbar);
1110
- }
1171
+ press: [onShowFilterDialog, oTable]
1111
1172
  });
1112
1173
 
1113
1174
  // If the toolbar is hidden while it has the focus, the focus moves to the body. This can happen, for example, when all filters are removed in
@@ -1359,18 +1420,31 @@ sap.ui.define([
1359
1420
  if ((bShowPasteButton = !!bShowPasteButton) == this.getShowPasteButton()) {
1360
1421
  return this;
1361
1422
  }
1362
-
1363
1423
  this.setProperty("showPasteButton", bShowPasteButton, true);
1364
1424
  if (bShowPasteButton && !this._oPasteButton && this._oToolbar) {
1365
1425
  this._oToolbar.insertEnd(this._getPasteButton(), 0);
1426
+ this._oPasteButton.setEnabled(this.getEnablePaste());
1366
1427
  } else if (this._oPasteButton) {
1367
1428
  this._oPasteButton.setVisible(bShowPasteButton);
1429
+ this._oPasteButton.setEnabled(this.getEnablePaste());
1368
1430
  }
1369
1431
 
1370
1432
  return this;
1371
1433
  };
1372
1434
 
1435
+ Table.prototype.setEnablePaste = function(bEnablePaste) {
1436
+ this.setProperty("enablePaste", bEnablePaste, true);
1437
+ if (this._oPasteButton) {
1438
+ this._oPasteButton.setEnabled(this.getEnablePaste());
1439
+ }
1440
+ return this;
1441
+ };
1442
+
1373
1443
  Table.prototype._createToolbar = function() {
1444
+ if (this.isDestroyStarted() || this.isDestroyed()) {
1445
+ return;
1446
+ }
1447
+
1374
1448
  if (!this._oToolbar) {
1375
1449
  // Create Title
1376
1450
  this._oTitle = new Title(this.getId() + "-title", {
@@ -1527,12 +1601,10 @@ sap.ui.define([
1527
1601
  var aP13nMode = this.getP13nMode();
1528
1602
  var aButtons = [];
1529
1603
 
1530
- //Note: 'Aggregate' does not have a p13n UI, if only 'Aggregate' is enabled no settings icon is necessary
1604
+ // Note: 'Aggregate' does not have a p13n UI, if only 'Aggregate' is enabled no settings icon is necessary
1531
1605
  var bAggregateP13nOnly = aP13nMode.length === 1 && aP13nMode[0] === "Aggregate";
1532
1606
  if (aP13nMode.length > 0 && !bAggregateP13nOnly) {
1533
- aButtons.push(TableSettings["createSettingsButton"](this.getId(), [
1534
- this._showSettings, this
1535
- ]));
1607
+ aButtons.push(TableSettings.createSettingsButton(this.getId(), [onShowSettingsDialog, this]));
1536
1608
  }
1537
1609
 
1538
1610
  return aButtons;
@@ -1631,6 +1703,7 @@ sap.ui.define([
1631
1703
  * @private
1632
1704
  */
1633
1705
  Table.prototype._onExport = function(mCustomConfig) {
1706
+ var that = this;
1634
1707
  return this._createExportColumnConfiguration(mCustomConfig).then(function(aResult) {
1635
1708
  var aSheetColumns = aResult[0];
1636
1709
  var oPropertyHelper = aResult[1];
@@ -1641,21 +1714,22 @@ sap.ui.define([
1641
1714
  MessageBox.error(Core.getLibraryResourceBundle("sap.ui.mdc").getText("table.NO_COLS_EXPORT"), {
1642
1715
  styleClass: (this.$() && this.$().closest(".sapUiSizeCompact").length) ? "sapUiSizeCompact" : ""
1643
1716
  });
1644
- }.bind(this));
1717
+ }.bind(that));
1645
1718
  return;
1646
1719
  }
1647
1720
 
1648
- var oRowBinding = this._getRowBinding();
1721
+ var oRowBinding = that._getRowBinding();
1649
1722
  var mExportSettings = {
1650
1723
  workbook: {
1651
1724
  columns: aSheetColumns
1652
1725
  },
1653
1726
  dataSource: oRowBinding,
1654
- fileName: mCustomConfig ? mCustomConfig.fileName : this.getHeader()
1727
+ fileType: mCustomConfig.selectedFileType == "pdf" ? "PDF" : "XLSX",
1728
+ fileName: mCustomConfig ? mCustomConfig.fileName : that.getHeader()
1655
1729
  };
1656
1730
 
1657
- this._loadExportLibrary().then(function() {
1658
- sap.ui.require(["sap/ui/export/ExportUtils", "sap/ui/export/Spreadsheet"], function(ExportUtils, Spreadsheet) {
1731
+ that._loadExportLibrary().then(function() {
1732
+ sap.ui.require(["sap/ui/export/ExportUtils"], function(ExportUtils) {
1659
1733
  var oProcessor = Promise.resolve();
1660
1734
 
1661
1735
  if (mCustomConfig.includeFilterSettings) {
@@ -1684,22 +1758,23 @@ sap.ui.define([
1684
1758
  mUserSettings.includeFilterSettings = mCustomConfig.includeFilterSettings;
1685
1759
  }
1686
1760
 
1687
- var oSheet = new Spreadsheet(mExportSettings);
1688
- oSheet.attachBeforeExport(function(oEvent) {
1761
+ ExportUtils.getExportInstance(mExportSettings).then(function(oSheet){
1762
+ oSheet.attachBeforeExport(function(oEvent) {
1689
1763
  var oExportSettings = oEvent.getParameter("exportSettings");
1690
1764
 
1691
- this.fireBeforeExport({
1765
+ that.fireBeforeExport({
1692
1766
  exportSettings: oExportSettings,
1693
1767
  userExportSettings: mUserSettings
1768
+ });
1769
+ }, that);
1770
+ oSheet.build().finally(function() {
1771
+ oSheet.destroy();
1694
1772
  });
1695
- }, this);
1696
- oSheet.build().finally(function() {
1697
- oSheet.destroy();
1698
1773
  });
1699
- }.bind(this));
1700
- }.bind(this));
1701
- }.bind(this));
1702
- }.bind(this));
1774
+ });
1775
+ });
1776
+ });
1777
+ });
1703
1778
  };
1704
1779
 
1705
1780
  /**
@@ -1707,12 +1782,13 @@ sap.ui.define([
1707
1782
  *
1708
1783
  * @private
1709
1784
  */
1710
- Table.prototype._onExportAs = function() {
1785
+ Table.prototype._onExportAs = function(mCustomConfig) {
1711
1786
  var that = this;
1712
1787
 
1713
1788
  this._loadExportLibrary().then(function() {
1714
1789
  sap.ui.require(['sap/ui/export/ExportUtils'], function(ExportUtils) {
1715
- ExportUtils.getExportSettingsViaDialog(that._cachedExportSettings, that).then(function(oUserInput) {
1790
+ var bEnablePDFExport = new URL(window.location.href).search.indexOf("sap-ui-xx-enablePDFExport=true");
1791
+ ExportUtils.getExportSettingsViaDialog(that._cachedExportSettings, that, undefined, bEnablePDFExport).then(function(oUserInput) {
1716
1792
  that._cachedExportSettings = oUserInput;
1717
1793
  that._onExport(oUserInput);
1718
1794
  });
@@ -1873,6 +1949,11 @@ sap.ui.define([
1873
1949
  } else {
1874
1950
  oTableType.disableColumnResizer(this, this._oTable);
1875
1951
  }
1952
+
1953
+ var aMDCColumns = this.getColumns();
1954
+ aMDCColumns.forEach(function(oColumn) {
1955
+ oColumn.updateColumnResizing(bEnableColumnResizer);
1956
+ }, this);
1876
1957
  };
1877
1958
 
1878
1959
  Table.prototype._updateSelectionBehavior = function() {
@@ -1901,14 +1982,10 @@ sap.ui.define([
1901
1982
  };
1902
1983
 
1903
1984
  Table.prototype._onColumnPress = function(oColumn) {
1904
- var iIndex,
1905
- oParent = oColumn.getParent(),
1906
- oMDCColumn,
1907
- bResizeButton = window.matchMedia("(hover:none)").matches && this._bMobileTable && this.getEnableColumnResize();
1908
-
1909
- iIndex = oParent.indexOfColumn(oColumn);
1910
-
1911
- oMDCColumn = this.getColumns()[iIndex];
1985
+ var oParent = oColumn.getParent(),
1986
+ iIndex = oParent.indexOfColumn(oColumn),
1987
+ oMDCColumn = this.getColumns()[iIndex],
1988
+ bResizeButton = this._bMobileTable && this.getEnableColumnResize();
1912
1989
 
1913
1990
  this._fullyInitialized().then(function() {
1914
1991
  var oResourceBundle = Core.getLibraryResourceBundle("sap.ui.mdc");
@@ -1966,25 +2043,19 @@ sap.ui.define([
1966
2043
  var oFilter = new ColumnPopoverSelectListItem({
1967
2044
  label: oResourceBundle.getText("table.SETTINGS_FILTER"),
1968
2045
  icon: "sap-icon://filter",
1969
- action: [this._showFilter, this]
2046
+ action: [onShowFilterDialog, this]
1970
2047
  });
1971
2048
  aHeaderItems.unshift(oFilter);
1972
2049
  }
1973
2050
 
1974
2051
  if (bResizeButton) {
1975
- var oColumnResize = new ColumnPopoverActionItem({
1976
- text: oResourceBundle.getText("table.SETTINGS_RP_RESIZE"),
1977
- icon: "sap-icon://resize-horizontal",
1978
- press: [function() {
1979
- ResponsiveTableType.startColumnResize(this._oTable, oColumn);
1980
- }, this]
1981
- });
1982
- aHeaderItems.push(oColumnResize);
2052
+ var oColumnResize = ResponsiveTableType.startColumnResize(this._oTable, oColumn);
2053
+ oColumnResize && aHeaderItems.push(oColumnResize);
1983
2054
  }
1984
2055
 
1985
- aHeaderItems && aHeaderItems.forEach(function(item) {
1986
- item && this._createPopover(item, oColumn);
1987
- }.bind(this));
2056
+ aHeaderItems.forEach(function(oItem) {
2057
+ this._createPopover(oItem, oColumn);
2058
+ }, this);
1988
2059
  this._oPopover && this._oPopover.openBy(oColumn);
1989
2060
  }.bind(this));
1990
2061
  };
@@ -2024,11 +2095,26 @@ sap.ui.define([
2024
2095
  TableSettings.createAggregation(this, sSortProperty);
2025
2096
  };
2026
2097
 
2098
+ Table.prototype._setColumnWidth = function(oMDCColumn) {
2099
+ if (!this.getEnableAutoColumnWidth() || oMDCColumn.getWidth() || oMDCColumn.isBound("width")) {
2100
+ return;
2101
+ }
2102
+
2103
+ var oPropertyHelper = this._oPropertyHelper;
2104
+ if (oPropertyHelper) {
2105
+ oPropertyHelper.setColumnWidth(oMDCColumn);
2106
+ } else {
2107
+ this.awaitPropertyHelper().then(this._setColumnWidth.bind(this, oMDCColumn));
2108
+ }
2109
+ };
2110
+
2027
2111
  Table.prototype._insertInnerColumn = function(oMDCColumn, iIndex) {
2028
2112
  if (!this._oTable) {
2029
2113
  return;
2030
2114
  }
2031
2115
 
2116
+ this._setColumnWidth(oMDCColumn);
2117
+
2032
2118
  var oColumn = this._createColumn(oMDCColumn);
2033
2119
  setColumnTemplate(this, oMDCColumn, oColumn, iIndex);
2034
2120
  this._bForceRebind = true;
@@ -2108,7 +2194,7 @@ sap.ui.define([
2108
2194
  width: oMDCColumn.getWidth(),
2109
2195
  minWidth: Math.round(oMDCColumn.getMinWidth() * parseFloat(MLibrary.BaseFontSize)),
2110
2196
  hAlign: oMDCColumn.getHAlign(),
2111
- label: oMDCColumn.getColumnHeaderControl(this._bMobileTable),
2197
+ label: oMDCColumn.getColumnHeaderControl(this._bMobileTable, this.getEnableColumnResize()),
2112
2198
  resizable: this.getEnableColumnResize(),
2113
2199
  autoResizable: this.getEnableColumnResize()
2114
2200
  });
@@ -2126,7 +2212,7 @@ sap.ui.define([
2126
2212
  width: oMDCColumn.getWidth(),
2127
2213
  autoPopinWidth: oMDCColumn.getMinWidth(),
2128
2214
  hAlign: oMDCColumn.getHAlign(),
2129
- header: oMDCColumn.getColumnHeaderControl(this._bMobileTable),
2215
+ header: oMDCColumn.getColumnHeaderControl(this._bMobileTable, this.getEnableColumnResize()),
2130
2216
  importance: oMDCColumn.getImportance(),
2131
2217
  popinDisplay: "Inline"
2132
2218
  });
@@ -2160,7 +2246,7 @@ sap.ui.define([
2160
2246
  oMDCColumn = this.removeAggregation("columns", oMDCColumn, true);
2161
2247
  if (this._oTable) {
2162
2248
  var oColumn = this._oTable.removeColumn(oMDCColumn.getId() + "-innerColumn");
2163
- oColumn.destroy(); // TODO: avoid destroy
2249
+ oColumn.destroy("KeepDom");
2164
2250
 
2165
2251
  // update template for ResponsiveTable
2166
2252
  if (this._bMobileTable) {
@@ -2350,12 +2436,7 @@ sap.ui.define([
2350
2436
  return;
2351
2437
  }
2352
2438
 
2353
- // TODO: Temporary, until the FE delegate calls updateBindingInfo on the the base delegate. See sap.ui.mdc.TableDelegate.updateBindingInfo
2354
- var oBindingInfo = {
2355
- parameters: {},
2356
- filters: [],
2357
- sorter: this._getSorters()
2358
- };
2439
+ var oBindingInfo = {};
2359
2440
 
2360
2441
  this.getControlDelegate().updateBindingInfo(this, this.getPayload(), oBindingInfo);
2361
2442
 
@@ -2577,6 +2658,7 @@ sap.ui.define([
2577
2658
  }
2578
2659
  };
2579
2660
 
2661
+ // TODO: Delete!
2580
2662
  Table.prototype.rebindTable = function() {
2581
2663
  this.rebind();
2582
2664
  };
@@ -2590,27 +2672,13 @@ sap.ui.define([
2590
2672
  }
2591
2673
  };
2592
2674
 
2593
- /**
2594
- * Just for test purpose --> has to be finalised
2595
- *
2596
- * @param {object} oEvt Event object that gets processed
2597
- * @experimental
2598
- */
2599
- Table.prototype._showSettings = function(oEvt) {
2600
- TableSettings.showPanel(this, "Columns", oEvt.getSource());
2601
- };
2602
-
2603
- Table.prototype._showSort = function(oEvt) {
2604
- TableSettings.showPanel(this, "Sort", oEvt.getSource());
2605
- };
2606
-
2607
- Table.prototype._showFilter = function(oEvt) {
2608
- TableSettings.showPanel(this, "Filter", oEvt.getSource());
2609
- };
2675
+ function onShowSettingsDialog(oEvent) {
2676
+ TableSettings.showPanel(this, "Columns", oEvent.getSource());
2677
+ }
2610
2678
 
2611
- Table.prototype._showGroup = function (oEvt) {
2612
- TableSettings.showPanel(this, "Group", oEvt.getSource());
2613
- };
2679
+ function onShowFilterDialog(oEvent) {
2680
+ TableSettings.showPanel(this, "Filter", oEvent.getSource());
2681
+ }
2614
2682
 
2615
2683
  // TODO: move to a base util that can be used by most aggregations
2616
2684
  Table.prototype._getSorters = function() {
@@ -2630,6 +2698,9 @@ sap.ui.define([
2630
2698
  // Called when a paste event is fired from the inner table
2631
2699
  // Fires the MDCTable paste event
2632
2700
  Table.prototype._onInnerTablePaste = function(oEvent) {
2701
+ if (!this.getEnablePaste()) {
2702
+ return;
2703
+ }
2633
2704
  this.firePaste({
2634
2705
  data: oEvent.getParameter("data")
2635
2706
  });
@@ -2664,6 +2735,16 @@ sap.ui.define([
2664
2735
  Control.prototype.exit.apply(this, arguments);
2665
2736
  };
2666
2737
 
2738
+ Table.prototype.addAction = function(oControl) {
2739
+ if (oControl.getMetadata().getName() !== "sap.ui.mdc.actiontoolbar.ActionToolbarAction") {
2740
+ oControl = new ActionToolbarAction(oControl.getId() + "-action", {
2741
+ action: oControl
2742
+ });
2743
+ }
2744
+
2745
+ return Control.prototype.addAggregation.apply(this, ["actions", oControl]);
2746
+ };
2747
+
2667
2748
  return Table;
2668
2749
 
2669
2750
  });
@@ -9,8 +9,8 @@
9
9
  // ---------------------------------------------------------------------------------------
10
10
  // ---------------------------------------------------------------------------------------
11
11
  sap.ui.define([
12
- "sap/ui/mdc/AggregationBaseDelegate"
13
- ], function(AggregationBaseDelegate) {
12
+ "sap/ui/mdc/AggregationBaseDelegate", "sap/ui/core/library", "sap/ui/core/Core"
13
+ ], function(AggregationBaseDelegate, coreLibrary, Core) {
14
14
  "use strict";
15
15
 
16
16
  /**
@@ -35,7 +35,12 @@ sap.ui.define([
35
35
  */
36
36
  TableDelegate.updateBindingInfo = function(oMDCTable, oDelegatePayload, oBindingInfo) {
37
37
  oBindingInfo.parameters = {};
38
- oBindingInfo.filters = [];
38
+
39
+ if (oMDCTable._oMessageFilter) {
40
+ oBindingInfo.filters = [oMDCTable._oMessageFilter];
41
+ } else {
42
+ oBindingInfo.filters = [];
43
+ }
39
44
  oBindingInfo.sorter = oMDCTable._getSorters();
40
45
  };
41
46
 
@@ -53,6 +58,18 @@ sap.ui.define([
53
58
  this.rebindTable(oMDCTable, oBindingInfo);
54
59
  };
55
60
 
61
+ TableDelegate.validateState = function(oControl, oState, sKey) {
62
+ if (sKey == "Filter" && oControl._oMessageFilter) {
63
+ var oResourceBundle = Core.getLibraryResourceBundle("sap.ui.mdc");
64
+ return {
65
+ validation: coreLibrary.MessageType.Information,
66
+ message: oResourceBundle.getText("table.PERSONALIZATION_DIALOG_FILTER_MESSAGESTRIP")
67
+ };
68
+ }
69
+
70
+ return AggregationBaseDelegate.validateState.apply(this, arguments);
71
+ };
72
+
56
73
  /**
57
74
  * Rebinds the table.
58
75
  *