@openui5/sap.ui.mdc 1.95.0 → 1.96.3

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 (213) hide show
  1. package/.reuse/dep5 +10 -5
  2. package/THIRDPARTY.txt +17 -8
  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/Chart.js +140 -20
  7. package/src/sap/ui/mdc/ChartDelegateNew.js +15 -0
  8. package/src/sap/ui/mdc/ChartNew.js +83 -56
  9. package/src/sap/ui/mdc/Control.js +4 -3
  10. package/src/sap/ui/mdc/Element.js +4 -3
  11. package/src/sap/ui/mdc/Field.js +2 -2
  12. package/src/sap/ui/mdc/FilterBar.js +1 -10
  13. package/src/sap/ui/mdc/FilterField.js +2 -2
  14. package/src/sap/ui/mdc/Link.js +2 -2
  15. package/src/sap/ui/mdc/MultiValueField.js +1 -1
  16. package/src/sap/ui/mdc/Table.js +81 -25
  17. package/src/sap/ui/mdc/ValueHelp.js +29 -14
  18. package/src/sap/ui/mdc/ValueHelpDelegate.js +110 -4
  19. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +49 -104
  20. package/src/sap/ui/mdc/chart/DimensionItem.js +3 -3
  21. package/src/sap/ui/mdc/chart/Item.js +2 -3
  22. package/src/sap/ui/mdc/chart/MeasureItem.js +2 -2
  23. package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +21 -2
  24. package/src/sap/ui/mdc/chart/ToolbarHandler.js +5 -3
  25. package/src/sap/ui/mdc/chartNew/ChartSelectionDetailsNew.js +1 -1
  26. package/src/sap/ui/mdc/chartNew/ChartToolbarNew.js +14 -10
  27. package/src/sap/ui/mdc/chartNew/DrillStackHandlerNew.js +11 -9
  28. package/src/sap/ui/mdc/chartNew/ItemNew.js +0 -1
  29. package/src/sap/ui/mdc/chartNew/PropertyHelperNew.js +1 -1
  30. package/src/sap/ui/mdc/condition/Condition.js +2 -2
  31. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  32. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  33. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  34. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +1 -1
  35. package/src/sap/ui/mdc/condition/Operator.js +1 -1
  36. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  37. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +43 -0
  38. package/src/sap/ui/mdc/designtime/chart/ChartNew.designtime.js +91 -0
  39. package/src/sap/ui/mdc/designtime/filterbar/FilterBar.designtime.js +19 -0
  40. package/src/sap/ui/mdc/designtime/filterbar/FilterBarBase.designtime.js +31 -0
  41. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +5 -0
  42. package/src/sap/ui/mdc/enum/ContentMode.js +25 -4
  43. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  44. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  45. package/src/sap/ui/mdc/field/ConditionType.js +1 -1
  46. package/src/sap/ui/mdc/field/ConditionsType.js +5 -4
  47. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  48. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  49. package/src/sap/ui/mdc/field/DefineConditionPanel.js +1 -1
  50. package/src/sap/ui/mdc/field/FieldBase.js +16 -9
  51. package/src/sap/ui/mdc/field/FieldHelpBase.js +1 -1
  52. package/src/sap/ui/mdc/field/FieldInfoBase.js +9 -1
  53. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  54. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  55. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  56. package/src/sap/ui/mdc/field/FieldValueHelp.js +1 -1
  57. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  58. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
  59. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +1 -1
  60. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +1 -1
  61. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +1 -1
  62. package/src/sap/ui/mdc/field/InParameter.js +1 -1
  63. package/src/sap/ui/mdc/field/ListFieldHelp.js +1 -1
  64. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  65. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  66. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  67. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
  68. package/src/sap/ui/mdc/field/content/BooleanContent.js +15 -3
  69. package/src/sap/ui/mdc/field/content/ContentFactory.js +16 -8
  70. package/src/sap/ui/mdc/field/content/DefaultContent.js +64 -23
  71. package/src/sap/ui/mdc/field/content/LinkContent.js +6 -0
  72. package/src/sap/ui/mdc/field/content/SearchContent.js +21 -3
  73. package/src/sap/ui/mdc/field/content/UnitContent.js +2 -2
  74. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +5 -2
  75. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  76. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +1 -1
  77. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  78. package/src/sap/ui/mdc/flexibility/ActionToolbar.flexibility.js +22 -0
  79. package/src/sap/ui/mdc/flexibility/ActionToolbarAction.flexibility.js +19 -0
  80. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  81. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  82. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  83. package/src/sap/ui/mdc/library.js +17 -7
  84. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  85. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  86. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  87. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  88. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  89. package/src/sap/ui/mdc/link/Factory.js +1 -1
  90. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  91. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  92. package/src/sap/ui/mdc/link/Panel.js +1 -1
  93. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  94. package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
  95. package/src/sap/ui/mdc/link/SelectionDialog.js +2 -2
  96. package/src/sap/ui/mdc/link/SelectionDialogItem.js +1 -1
  97. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  98. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  99. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  100. package/src/sap/ui/mdc/messagebundle.properties +22 -4
  101. package/src/sap/ui/mdc/messagebundle_ar.properties +10 -2
  102. package/src/sap/ui/mdc/messagebundle_bg.properties +10 -2
  103. package/src/sap/ui/mdc/messagebundle_ca.properties +10 -2
  104. package/src/sap/ui/mdc/messagebundle_cs.properties +21 -13
  105. package/src/sap/ui/mdc/messagebundle_cy.properties +10 -2
  106. package/src/sap/ui/mdc/messagebundle_da.properties +10 -2
  107. package/src/sap/ui/mdc/messagebundle_de.properties +10 -2
  108. package/src/sap/ui/mdc/messagebundle_el.properties +10 -2
  109. package/src/sap/ui/mdc/messagebundle_en.properties +8 -0
  110. package/src/sap/ui/mdc/messagebundle_en_GB.properties +8 -0
  111. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +2 -0
  112. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +19 -3
  113. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +2 -0
  114. package/src/sap/ui/mdc/messagebundle_es.properties +10 -2
  115. package/src/sap/ui/mdc/messagebundle_es_MX.properties +10 -2
  116. package/src/sap/ui/mdc/messagebundle_et.properties +10 -2
  117. package/src/sap/ui/mdc/messagebundle_fi.properties +10 -2
  118. package/src/sap/ui/mdc/messagebundle_fr.properties +12 -4
  119. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +9 -1
  120. package/src/sap/ui/mdc/messagebundle_hi.properties +11 -3
  121. package/src/sap/ui/mdc/messagebundle_hr.properties +10 -2
  122. package/src/sap/ui/mdc/messagebundle_hu.properties +10 -2
  123. package/src/sap/ui/mdc/messagebundle_id.properties +10 -2
  124. package/src/sap/ui/mdc/messagebundle_it.properties +10 -2
  125. package/src/sap/ui/mdc/messagebundle_iw.properties +10 -2
  126. package/src/sap/ui/mdc/messagebundle_ja.properties +18 -10
  127. package/src/sap/ui/mdc/messagebundle_kk.properties +10 -2
  128. package/src/sap/ui/mdc/messagebundle_ko.properties +10 -2
  129. package/src/sap/ui/mdc/messagebundle_lt.properties +10 -2
  130. package/src/sap/ui/mdc/messagebundle_lv.properties +10 -2
  131. package/src/sap/ui/mdc/messagebundle_ms.properties +10 -2
  132. package/src/sap/ui/mdc/messagebundle_nl.properties +11 -3
  133. package/src/sap/ui/mdc/messagebundle_no.properties +10 -2
  134. package/src/sap/ui/mdc/messagebundle_pl.properties +10 -2
  135. package/src/sap/ui/mdc/messagebundle_pt.properties +11 -3
  136. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +10 -2
  137. package/src/sap/ui/mdc/messagebundle_ro.properties +10 -2
  138. package/src/sap/ui/mdc/messagebundle_ru.properties +10 -2
  139. package/src/sap/ui/mdc/messagebundle_sh.properties +10 -2
  140. package/src/sap/ui/mdc/messagebundle_sk.properties +10 -2
  141. package/src/sap/ui/mdc/messagebundle_sl.properties +10 -2
  142. package/src/sap/ui/mdc/messagebundle_sv.properties +10 -2
  143. package/src/sap/ui/mdc/messagebundle_th.properties +10 -2
  144. package/src/sap/ui/mdc/messagebundle_tr.properties +10 -2
  145. package/src/sap/ui/mdc/messagebundle_uk.properties +10 -2
  146. package/src/sap/ui/mdc/messagebundle_vi.properties +10 -2
  147. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +12 -4
  148. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +11 -3
  149. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  150. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  151. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -1
  152. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  153. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelperNew.js +1 -1
  154. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +2 -2
  155. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegateNew.js +212 -32
  156. package/src/sap/ui/mdc/p13n/DefaultProviderRegistry.js +1 -1
  157. package/src/sap/ui/mdc/p13n/Engine.js +3 -2
  158. package/src/sap/ui/mdc/p13n/P13nBuilder.js +1 -1
  159. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  160. package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
  161. package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +59 -0
  162. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +1 -2
  163. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +6 -6
  164. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +1 -2
  165. package/src/sap/ui/mdc/p13n/panels/ChartItemPanelNew.js +1171 -0
  166. package/src/sap/ui/mdc/p13n/panels/GroupPanel.js +1 -1
  167. package/src/sap/ui/mdc/p13n/panels/GroupView.js +1 -2
  168. package/src/sap/ui/mdc/p13n/panels/ListView.js +5 -3
  169. package/src/sap/ui/mdc/p13n/panels/QueryPanel.js +1 -1
  170. package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +0 -1
  171. package/src/sap/ui/mdc/p13n/panels/SortPanel.js +0 -1
  172. package/src/sap/ui/mdc/p13n/panels/SortQueryPanel.js +1 -1
  173. package/src/sap/ui/mdc/p13n/panels/Wrapper.js +1 -1
  174. package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +89 -0
  175. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +9 -6
  176. package/src/sap/ui/mdc/p13n/subcontroller/ChartItemController.js +33 -4
  177. package/src/sap/ui/mdc/p13n/subcontroller/ColumnController.js +9 -15
  178. package/src/sap/ui/mdc/p13n/subcontroller/GroupController.js +5 -12
  179. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +19 -21
  180. package/src/sap/ui/mdc/table/Column.js +14 -5
  181. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  182. package/src/sap/ui/mdc/table/GridTableType.js +0 -1
  183. package/src/sap/ui/mdc/table/PropertyHelper.js +17 -86
  184. package/src/sap/ui/mdc/table/ResponsiveTableType.js +12 -2
  185. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  186. package/src/sap/ui/mdc/table/TableTypeBase.js +0 -1
  187. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
  188. package/src/sap/ui/mdc/ui/Container.js +2 -2
  189. package/src/sap/ui/mdc/ui/ContainerItem.js +2 -2
  190. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  191. package/src/sap/ui/mdc/util/PropertyHelper.js +1 -1
  192. package/src/sap/ui/mdc/valuehelp/Dialog.js +49 -26
  193. package/src/sap/ui/mdc/valuehelp/Popover.js +35 -19
  194. package/src/sap/ui/mdc/valuehelp/base/Container.js +221 -19
  195. package/src/sap/ui/mdc/valuehelp/base/Content.js +219 -33
  196. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +50 -7
  197. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +47 -27
  198. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +38 -10
  199. package/src/sap/ui/mdc/valuehelp/content/Bool.js +135 -49
  200. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +64 -38
  201. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +55 -27
  202. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +25 -6
  203. package/src/sap/ui/mdc/valuehelp/content/MTable.js +120 -85
  204. package/test/sap/ui/mdc/testutils/opa/TestLibrary.js +2 -1
  205. package/test/sap/ui/mdc/testutils/opa/actions/OpenContextMenu.js +48 -0
  206. package/test/sap/ui/mdc/testutils/opa/chartNew/ActionsBase.js +310 -0
  207. package/test/sap/ui/mdc/testutils/opa/chartNew/ActionsViz.js +39 -0
  208. package/test/sap/ui/mdc/testutils/opa/chartNew/AssertionsBase.js +118 -0
  209. package/test/sap/ui/mdc/testutils/opa/chartNew/AssertionsViz.js +137 -0
  210. package/test/sap/ui/mdc/testutils/opa/chartNew/ChartNew.js +24 -0
  211. package/test/sap/ui/mdc/testutils/opa/chartNew/TestObjects.js +289 -0
  212. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +163 -17
  213. package/test/sap/ui/mdc/testutils/opa/p13n/Util.js +2 -0
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * @extends sap.ui.mdc.field.FieldInfoBase
46
46
  *
47
47
  * @author SAP SE
48
- * @version 1.95.0
48
+ * @version 1.96.3
49
49
  *
50
50
  * @constructor
51
51
  * @alias sap.ui.mdc.Link
@@ -200,7 +200,7 @@ sap.ui.define([
200
200
 
201
201
  /**
202
202
  * Function that is called in the <code>createPopover</code> function of {@link sap.ui.mdc.field.FieldInfoBase}.
203
- * @param {Function} fnGetAutoClosedControl Function returning the <code>Popover</code> control that is created in <code>createPopover</code>
203
+ * @param {Function} [fnGetAutoClosedControl] Function returning the <code>Popover</code> control that is created in <code>createPopover</code>
204
204
  * @returns {sap.ui.mdc.link.Panel} Popover panel which is to be displayed after clicking the link
205
205
  * @protected
206
206
  * @ui5-restricted sap.ui.mdc
@@ -35,7 +35,7 @@ sap.ui.define([
35
35
  * @constructor
36
36
  * @alias sap.ui.mdc.MultiValueField
37
37
  * @author SAP SE
38
- * @version 1.95.0
38
+ * @version 1.96.3
39
39
  * @since 1.93.0
40
40
  *
41
41
  * @private
@@ -37,7 +37,9 @@ sap.ui.define([
37
37
  "sap/ui/mdc/p13n/subcontroller/GroupController",
38
38
  "sap/ui/mdc/p13n/subcontroller/AggregateController",
39
39
  "sap/m/ColumnPopoverSelectListItem",
40
- "sap/ui/mdc/p13n/subcontroller/ColumnWidthController"
40
+ "sap/m/ColumnPopoverActionItem",
41
+ "sap/ui/mdc/p13n/subcontroller/ColumnWidthController",
42
+ "sap/ui/mdc/actiontoolbar/ActionToolbarAction"
41
43
  ], function(
42
44
  Control,
43
45
  ActionToolbar,
@@ -71,7 +73,9 @@ sap.ui.define([
71
73
  GroupController,
72
74
  AggregateController,
73
75
  ColumnPopoverSelectListItem,
74
- ColumnWidthController
76
+ ColumnPopoverActionItem,
77
+ ColumnWidthController,
78
+ ActionToolbarAction
75
79
  ) {
76
80
  "use strict";
77
81
 
@@ -117,7 +121,6 @@ sap.ui.define([
117
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.
118
122
  * @extends sap.ui.mdc.Control
119
123
  * @author SAP SE
120
- * @constructor The API/behavior is not finalized and hence this control should not be used for productive usage.
121
124
  * @private
122
125
  * @experimental
123
126
  * @since 1.58
@@ -352,6 +355,16 @@ sap.ui.define([
352
355
  group: "Behavior",
353
356
  defaultValue: false
354
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
+ },
355
368
  /**
356
369
  * Defines the multi-selection mode for the control.
357
370
  * If this property is set to the <code>Default</code> value, the <code>ResponsiveTable</code> type control renders
@@ -373,7 +386,7 @@ sap.ui.define([
373
386
  * The calculated column widths can have a minimum of 3rem and a maximum of 20rem.
374
387
  *
375
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.
376
- * To avoid the heuristic column width calculation for a particular column, the <code>visualSettings.widthSettings</code> key of the <code>PropertyInfo</code> can be set to <code>false</code>.
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>.
377
390
  * This feature has no effect if the <code>width</code> property of the column is bound or its value is set.
378
391
  *
379
392
  * @since 1.95
@@ -1407,17 +1420,26 @@ sap.ui.define([
1407
1420
  if ((bShowPasteButton = !!bShowPasteButton) == this.getShowPasteButton()) {
1408
1421
  return this;
1409
1422
  }
1410
-
1411
1423
  this.setProperty("showPasteButton", bShowPasteButton, true);
1412
1424
  if (bShowPasteButton && !this._oPasteButton && this._oToolbar) {
1413
1425
  this._oToolbar.insertEnd(this._getPasteButton(), 0);
1426
+ this._oPasteButton.setEnabled(this.getEnablePaste());
1414
1427
  } else if (this._oPasteButton) {
1415
1428
  this._oPasteButton.setVisible(bShowPasteButton);
1429
+ this._oPasteButton.setEnabled(this.getEnablePaste());
1416
1430
  }
1417
1431
 
1418
1432
  return this;
1419
1433
  };
1420
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
+
1421
1443
  Table.prototype._createToolbar = function() {
1422
1444
  if (this.isDestroyStarted() || this.isDestroyed()) {
1423
1445
  return;
@@ -1681,6 +1703,7 @@ sap.ui.define([
1681
1703
  * @private
1682
1704
  */
1683
1705
  Table.prototype._onExport = function(mCustomConfig) {
1706
+ var that = this;
1684
1707
  return this._createExportColumnConfiguration(mCustomConfig).then(function(aResult) {
1685
1708
  var aSheetColumns = aResult[0];
1686
1709
  var oPropertyHelper = aResult[1];
@@ -1691,21 +1714,22 @@ sap.ui.define([
1691
1714
  MessageBox.error(Core.getLibraryResourceBundle("sap.ui.mdc").getText("table.NO_COLS_EXPORT"), {
1692
1715
  styleClass: (this.$() && this.$().closest(".sapUiSizeCompact").length) ? "sapUiSizeCompact" : ""
1693
1716
  });
1694
- }.bind(this));
1717
+ }.bind(that));
1695
1718
  return;
1696
1719
  }
1697
1720
 
1698
- var oRowBinding = this._getRowBinding();
1721
+ var oRowBinding = that._getRowBinding();
1699
1722
  var mExportSettings = {
1700
1723
  workbook: {
1701
1724
  columns: aSheetColumns
1702
1725
  },
1703
1726
  dataSource: oRowBinding,
1704
- fileName: mCustomConfig ? mCustomConfig.fileName : this.getHeader()
1727
+ fileType: mCustomConfig.selectedFileType == "pdf" ? "PDF" : "XLSX",
1728
+ fileName: mCustomConfig ? mCustomConfig.fileName : that.getHeader()
1705
1729
  };
1706
1730
 
1707
- this._loadExportLibrary().then(function() {
1708
- 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) {
1709
1733
  var oProcessor = Promise.resolve();
1710
1734
 
1711
1735
  if (mCustomConfig.includeFilterSettings) {
@@ -1734,22 +1758,23 @@ sap.ui.define([
1734
1758
  mUserSettings.includeFilterSettings = mCustomConfig.includeFilterSettings;
1735
1759
  }
1736
1760
 
1737
- var oSheet = new Spreadsheet(mExportSettings);
1738
- oSheet.attachBeforeExport(function(oEvent) {
1761
+ ExportUtils.getExportInstance(mExportSettings).then(function(oSheet){
1762
+ oSheet.attachBeforeExport(function(oEvent) {
1739
1763
  var oExportSettings = oEvent.getParameter("exportSettings");
1740
1764
 
1741
- this.fireBeforeExport({
1765
+ that.fireBeforeExport({
1742
1766
  exportSettings: oExportSettings,
1743
1767
  userExportSettings: mUserSettings
1768
+ });
1769
+ }, that);
1770
+ oSheet.build().finally(function() {
1771
+ oSheet.destroy();
1744
1772
  });
1745
- }, this);
1746
- oSheet.build().finally(function() {
1747
- oSheet.destroy();
1748
1773
  });
1749
- }.bind(this));
1750
- }.bind(this));
1751
- }.bind(this));
1752
- }.bind(this));
1774
+ });
1775
+ });
1776
+ });
1777
+ });
1753
1778
  };
1754
1779
 
1755
1780
  /**
@@ -1757,12 +1782,13 @@ sap.ui.define([
1757
1782
  *
1758
1783
  * @private
1759
1784
  */
1760
- Table.prototype._onExportAs = function() {
1785
+ Table.prototype._onExportAs = function(mCustomConfig) {
1761
1786
  var that = this;
1762
1787
 
1763
1788
  this._loadExportLibrary().then(function() {
1764
1789
  sap.ui.require(['sap/ui/export/ExportUtils'], function(ExportUtils) {
1765
- 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) {
1766
1792
  that._cachedExportSettings = oUserInput;
1767
1793
  that._onExport(oUserInput);
1768
1794
  });
@@ -1923,6 +1949,11 @@ sap.ui.define([
1923
1949
  } else {
1924
1950
  oTableType.disableColumnResizer(this, this._oTable);
1925
1951
  }
1952
+
1953
+ var aMDCColumns = this.getColumns();
1954
+ aMDCColumns.forEach(function(oColumn) {
1955
+ oColumn.updateColumnResizing(bEnableColumnResizer);
1956
+ }, this);
1926
1957
  };
1927
1958
 
1928
1959
  Table.prototype._updateSelectionBehavior = function() {
@@ -1951,6 +1982,10 @@ sap.ui.define([
1951
1982
  };
1952
1983
 
1953
1984
  Table.prototype._onColumnPress = function(oColumn) {
1985
+ if (this._bSuppressOpenMenu) {
1986
+ return;
1987
+ }
1988
+
1954
1989
  var oParent = oColumn.getParent(),
1955
1990
  iIndex = oParent.indexOfColumn(oColumn),
1956
1991
  oMDCColumn = this.getColumns()[iIndex],
@@ -2025,7 +2060,15 @@ sap.ui.define([
2025
2060
  aHeaderItems.forEach(function(oItem) {
2026
2061
  this._createPopover(oItem, oColumn);
2027
2062
  }, this);
2028
- this._oPopover && this._oPopover.openBy(oColumn);
2063
+
2064
+ if (this._oPopover) {
2065
+ this._oPopover.openBy(oColumn);
2066
+ this._oPopover.getAggregation("_popover").attachAfterClose(function() {
2067
+ this._bSuppressOpenMenu = false;
2068
+ }, this);
2069
+ this._bSuppressOpenMenu = true;
2070
+ }
2071
+
2029
2072
  }.bind(this));
2030
2073
  };
2031
2074
 
@@ -2163,7 +2206,7 @@ sap.ui.define([
2163
2206
  width: oMDCColumn.getWidth(),
2164
2207
  minWidth: Math.round(oMDCColumn.getMinWidth() * parseFloat(MLibrary.BaseFontSize)),
2165
2208
  hAlign: oMDCColumn.getHAlign(),
2166
- label: oMDCColumn.getColumnHeaderControl(this._bMobileTable),
2209
+ label: oMDCColumn.getColumnHeaderControl(this._bMobileTable, this.getEnableColumnResize()),
2167
2210
  resizable: this.getEnableColumnResize(),
2168
2211
  autoResizable: this.getEnableColumnResize()
2169
2212
  });
@@ -2181,7 +2224,7 @@ sap.ui.define([
2181
2224
  width: oMDCColumn.getWidth(),
2182
2225
  autoPopinWidth: oMDCColumn.getMinWidth(),
2183
2226
  hAlign: oMDCColumn.getHAlign(),
2184
- header: oMDCColumn.getColumnHeaderControl(this._bMobileTable),
2227
+ header: oMDCColumn.getColumnHeaderControl(this._bMobileTable, this.getEnableColumnResize()),
2185
2228
  importance: oMDCColumn.getImportance(),
2186
2229
  popinDisplay: "Inline"
2187
2230
  });
@@ -2667,6 +2710,9 @@ sap.ui.define([
2667
2710
  // Called when a paste event is fired from the inner table
2668
2711
  // Fires the MDCTable paste event
2669
2712
  Table.prototype._onInnerTablePaste = function(oEvent) {
2713
+ if (!this.getEnablePaste()) {
2714
+ return;
2715
+ }
2670
2716
  this.firePaste({
2671
2717
  data: oEvent.getParameter("data")
2672
2718
  });
@@ -2701,6 +2747,16 @@ sap.ui.define([
2701
2747
  Control.prototype.exit.apply(this, arguments);
2702
2748
  };
2703
2749
 
2750
+ Table.prototype.addAction = function(oControl) {
2751
+ if (oControl.getMetadata().getName() !== "sap.ui.mdc.actiontoolbar.ActionToolbarAction") {
2752
+ oControl = new ActionToolbarAction(oControl.getId() + "-action", {
2753
+ action: oControl
2754
+ });
2755
+ }
2756
+
2757
+ return Control.prototype.addAggregation.apply(this, ["actions", oControl]);
2758
+ };
2759
+
2704
2760
  return Table;
2705
2761
 
2706
2762
  });
@@ -69,7 +69,7 @@ sap.ui.define([
69
69
  * @class Element for the <code>FieldHelp</code> association in the <code>FieldBase</code> controls.
70
70
  * @extends sap.ui.mdc.Element
71
71
  * @implements sap.ui.core.PopupInterface
72
- * @version 1.95.0
72
+ * @version 1.96.3
73
73
  * @constructor
74
74
  * @abstract
75
75
  * @private
@@ -252,15 +252,30 @@ sap.ui.define([
252
252
  */
253
253
  closed: {},
254
254
 
255
+ /**
256
+ * This event is fired after the user navigated in the value help.
257
+ */
255
258
  navigated: {
256
259
  parameters: {
260
+ /**
261
+ * True if the focus should be set back to the field.
262
+ */
257
263
  bLeaveFocus: { type: "boolean" },
264
+ /**
265
+ * Navigated condition.
266
+ *
267
+ * <b>Note:</b> A condition must have the structure of {@link sap.ui.mdc.condition.ConditionObject ConditionObject}.
268
+ */
258
269
  condition: { type: "object" },
259
- value: { type: "string" },
260
- key: { type: "string" },
270
+ /**
271
+ * ID of the navigated item. (This is needed to set the corresponding aria-attribute)
272
+ */
261
273
  itemId: { type: "string" }
262
274
  }
263
275
  },
276
+ /**
277
+ * This event is fired if the user wants to switch from typeahead to value help.
278
+ */
264
279
  switchToValueHelp: {}
265
280
  },
266
281
  defaultProperty: "filterValue"
@@ -404,8 +419,8 @@ sap.ui.define([
404
419
  return this._retrievePromise("delegateContent--" + oContainer.getId(), function() {
405
420
  var oDelegatePromise = this._getControlDelegatePromise();
406
421
  return oDelegatePromise.then(function (oDelegateModule) {
407
- return oDelegateModule.retrieveContent(oContainer); // TODO: wait until In/OutParameter bindings finished?
408
- });
422
+ return oDelegateModule.retrieveContent(this.getPayload(), oContainer); // TODO: wait until In/OutParameter bindings finished?
423
+ }.bind(this));
409
424
  }.bind(this));
410
425
  };
411
426
 
@@ -633,7 +648,6 @@ sap.ui.define([
633
648
  * belongs to, not by the application.
634
649
  *
635
650
  * @param {int} iStep Number of steps for navigation (e.g. 1 means next item, -1 means previous item)
636
- * @returns {Promise<object>} Promise returning object of navigated item (condition and itemId)
637
651
  *
638
652
  * @private
639
653
  * @ui5-restricted sap.ui.mdc.field.FieldBase
@@ -652,7 +666,7 @@ sap.ui.define([
652
666
  };
653
667
  var oNavigatePromise = this._retrievePromise("navigate");
654
668
  var oExistingPromise = oNavigatePromise && !oNavigatePromise.isSettled() && oNavigatePromise.getInternalPromise();
655
- return this._addPromise("navigate", oExistingPromise ? oExistingPromise.then(_fnOnNavigatable) : this._retrieveDelegateContent(oTypeahead).then(_fnOnNavigatable));
669
+ this._addPromise("navigate", oExistingPromise ? oExistingPromise.then(_fnOnNavigatable) : this._retrieveDelegateContent(oTypeahead).then(_fnOnNavigatable));
656
670
  }
657
671
  };
658
672
 
@@ -697,9 +711,10 @@ sap.ui.define([
697
711
  * @param {sap.ui.model.Context} [oConfig.bindingContext] <code>BindingContext</code> of the checked field. Inside a table the <code>ValueHelp</code> element might be connected to a different row.
698
712
  * @param {boolean} [oConfig.checkKeyFirst] If set, the value help checks first if the value fits a key // TODO: not longer needed?
699
713
  * @param {boolean} oConfig.checkKey If set, the value help checks only if there is an item with the given key. This is set to <code>false</code> if the value cannot be a valid key because of type validation.
700
- * @param {boolean} oConfig.checkDescription If set, the field help checks only if there is an item with the given description. This is set to <code>false</code> if only the key is used in the field.
714
+ * @param {boolean} oConfig.checkDescription If set, the value help checks only if there is an item with the given description. This is set to <code>false</code> if only the key is used in the field.
701
715
  * @param {sap.ui.mdc.condition.ConditionModel} [oConfig.conditionModel] <code>ConditionModel</code>, in case of <code>FilterField</code>
702
716
  * @param {string} [oConfig.conditionModelName] Name of the <code>ConditionModel</code>, in case of <code>FilterField</code>
717
+ * @param {boolean} [oConfig.caseSensitive] If set, the check is done case sensitive
703
718
  * @returns {Promise<sap.ui.mdc.field.FieldHelpItem>} Promise returning object containing description, key, in and out parameters.
704
719
  * @throws {sap.ui.model.FormatException|sap.ui.model.ParseException} if entry is not found or not unique
705
720
  *
@@ -750,12 +765,11 @@ sap.ui.define([
750
765
  * @ui5-restricted sap.ui.mdc.field.FieldBase
751
766
  * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
752
767
  */
753
- ValueHelp.prototype.isValidationSupported = function(oConfig) { // isUsableForValidation also necessary?
768
+ ValueHelp.prototype.isValidationSupported = function() { // isUsableForValidation also necessary?
754
769
 
755
770
  var oTypeahead = this.getTypeahead();
756
- if (oTypeahead) {
757
- return oTypeahead.isValidationSupported();
758
- }
771
+
772
+ return oTypeahead && oTypeahead.isValidationSupported();
759
773
 
760
774
  };
761
775
 
@@ -801,11 +815,11 @@ sap.ui.define([
801
815
  }
802
816
  if (bUpdate) {
803
817
  var vNewValue;
818
+ var oNewCondition;
804
819
  if (bUseConditions) {
805
820
  if (!Array.isArray(vValue)) {
806
821
  throw new Error("Value on OutParameter must be an array " + oOutParameter);
807
822
  }
808
- var oNewCondition;
809
823
  vNewValue = merge([], vValue);
810
824
  } else {
811
825
  vNewValue = vValue;
@@ -1226,9 +1240,10 @@ sap.ui.define([
1226
1240
 
1227
1241
  var aBindings = [];
1228
1242
  var bBindingChanged = false;
1243
+ var oMyBindingContext;
1229
1244
 
1230
1245
  if (oBindingContext) {
1231
- var oMyBindingContext = this.oBindingContexts[undefined]; // as getBindingContext returns propagated Context if own context don't fit to model
1246
+ oMyBindingContext = this.oBindingContexts[undefined]; // as getBindingContext returns propagated Context if own context don't fit to model
1232
1247
  if (oBindingContext && Context.hasChanged(oMyBindingContext, oBindingContext)) {
1233
1248
  bBindingChanged = true;
1234
1249
  }
@@ -4,35 +4,141 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
+ // ---------------------------------------------------------------------------------------
8
+ // Helper class used to execute model specific logic in ValueHelp
9
+ // ---------------------------------------------------------------------------------------
10
+
7
11
  sap.ui.define([
8
- 'sap/ui/mdc/BaseDelegate'
12
+ "sap/ui/mdc/BaseDelegate",
13
+ "sap/ui/model/FilterType"
9
14
  ], function(
10
- BaseDelegate
15
+ BaseDelegate,
16
+ FilterType
11
17
  ) {
12
18
  "use strict";
13
19
 
20
+ /**
21
+ * @class Delegate class for {@link sap.ui.mdc.ValueHelp ValueHelp}.<br>
22
+ * <b>Note:</b> The class is experimental and the API/behavior is not finalized and hence this should not be used for productive usage.
23
+ *
24
+ * @author SAP SE
25
+ * @private
26
+ * @ui5-restricted sap.ui.mdc.ValueHelp
27
+ * @experimental As of version 1.95
28
+ * @since 1.95.0
29
+ * @alias sap.ui.mdc.ValueHelpDelegate
30
+ */
14
31
  var ValueHelpDelegate = Object.assign({}, BaseDelegate);
15
32
 
16
- ValueHelpDelegate.retrieveContent = function (oContainer) {
33
+ /**
34
+ * Requests the content of the value help.
35
+ *
36
+ * This function is called when the value help is opened or a key or description is requested.
37
+ *
38
+ * So, depending on the value help content used, all content controls and data need to be assigned.
39
+ * Once they are assigned and the data is set, the returned <code>Promise</code> needs to be resolved.
40
+ * Only then does the value help continue opening or reading data.
41
+ *
42
+ * @param {object} oPayload Payload for delegate
43
+ * @param {sap.ui.mdc.valuehelp.base.Container} oContainer Container instance
44
+ * @returns {Promise} Promise that is resolved if all content is available
45
+ * @private
46
+ * @ui5-restricted sap.fe
47
+ * @MDC_PUBLIC_CANDIDATE
48
+ */
49
+ ValueHelpDelegate.retrieveContent = function (oPayload, oContainer) {
17
50
  return Promise.resolve();
18
51
  };
19
52
 
53
+ /**
54
+ * Checks if a <code>ListBinding</code> supports $Search.
55
+ *
56
+ * @param {object} oPayload Payload for delegate
57
+ * @param {sap.ui.model.ListBinding} oListBinding ListBinding
58
+ * @returns {boolean} true if $search is supported
59
+ * @private
60
+ * @ui5-restricted sap.ui.mdc.ValueHelp
61
+ */
20
62
  ValueHelpDelegate.isSearchSupported = function(oPayload, oListBinding) {
21
63
  return false;
22
64
  };
23
65
 
66
+ /**
67
+ * Executes a search in a <code>ListBinding</code>.
68
+ *
69
+ * @param {object} oPayload Payload for delegate
70
+ * @param {sap.ui.model.ListBinding} oListBinding ListBinding
71
+ * @param {string} sSearch Search string
72
+ * @returns {Promise} Promise that is resolved if search is executed
73
+ * @private
74
+ * @ui5-restricted sap.ui.mdc.ValueHelp
75
+ */
24
76
  ValueHelpDelegate.executeSearch = function(oPayload, oListBinding, sSearch) {
25
77
  return Promise.resolve();
26
78
  };
27
79
 
80
+ /**
81
+ * Executes a filter in a <code>ListBinding</code>.
82
+ *
83
+ * @param {object} oPayload Payload for delegate
84
+ * @param {sap.ui.model.ListBinding} oListBinding List binding
85
+ * @param {sap.ui.model.Filter} oFilter Filter
86
+ * @param {int} iRequestedItems Number of requested items
87
+ * @returns {Promise<sap.ui.model.ListBinding>} Promise that is resolved if search is executed
88
+ * @private
89
+ * @ui5-restricted sap.ui.mdc.ValueHelp
90
+ */
28
91
  ValueHelpDelegate.executeFilter = function(oPayload, oListBinding, oFilter, iRequestedItems) {
29
- return Promise.resolve(oListBinding);
92
+
93
+ if (oListBinding.isA("sap.ui.model.json.JSONListBinding")) { // TODO: find way unique for all ListBindings
94
+ oListBinding.filter(oFilter, FilterType.Application);
95
+ return Promise.resolve(oListBinding);
96
+ } else { // oData V2
97
+ var fnResolve;
98
+ var fnCallback = function() {
99
+ fnResolve(oListBinding);
100
+ };
101
+ oListBinding.attachEventOnce("dataReceived", fnCallback);
102
+ oListBinding.initialize();
103
+ oListBinding.filter(oFilter, FilterType.Application);
104
+ oListBinding.getContexts(0, iRequestedItems); // trigger request. not all entries needed, we only need to know if there is one, none or more
105
+ return new Promise(function(fResolve, fReject) {
106
+ fnResolve = fResolve;
107
+ });
108
+ }
109
+
30
110
  };
31
111
 
112
+ /**
113
+ * Checks if at least one <code>PropertyBinding</code> is waiting for an update.
114
+ * As long as the value has not been set for <code>PropertyBinding</code>,
115
+ * <code>ValueHelp</code> needs to wait.
116
+ *
117
+ * This check is used when selecting the description for a key if in parameters are used.
118
+ * The description can only be determined if the values of the in parameters are known.
119
+ *
120
+ * @param {object} oPayload Payload for delegate
121
+ * @param {sap.ui.model.PropertyBinding[]} aBindings <code>PropertyBinding</code> array to check
122
+ * @returns {null|Promise} <code>Promise</code> that is resolved once every <code>PropertyBinding</code> has been updated
123
+ * @private
124
+ * @ui5-restricted sap.ui.mdc.ValueHelp
125
+ */
32
126
  ValueHelpDelegate.checkBindingsPending = function(oPayload, aBindings) {
33
127
  return null;
34
128
  };
35
129
 
130
+ /**
131
+ * Checks if the <code>ListBinding</code> is waiting for an update.
132
+ * As long as the context has not been set for <code>ListBinding</code>,
133
+ * <code>FieldValueHelp</code> needs to wait.
134
+ *
135
+ * @param {object} oPayload Payload for delegate
136
+ * @param {sap.ui.model.ListBinding} oListBinding <code>ListBinding</code> to check
137
+ * @param {object} oListBindingInfo <code>ListBindingInfo</code> to check
138
+ * @returns {boolean|Promise<boolean>} <code>Promise</code> that is resolved once <code>ListBinding</code> has been updated
139
+ * @private
140
+ * @ui5-restricted sap.ui.mdc.ValueHelp
141
+ */
36
142
  ValueHelpDelegate.checkListBindingPending = function(oPayload, oListBinding, oListBindingInfo) {
37
143
  return false;
38
144
  };