@openui5/sap.ui.mdc 1.112.0 → 1.113.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +4 -4
  3. package/src/sap/ui/mdc/.library +1 -1
  4. package/src/sap/ui/mdc/ActionToolbar.js +1 -1
  5. package/src/sap/ui/mdc/Chart.js +52 -14
  6. package/src/sap/ui/mdc/ChartDelegate.js +191 -103
  7. package/src/sap/ui/mdc/Control.js +1 -1
  8. package/src/sap/ui/mdc/Element.js +1 -1
  9. package/src/sap/ui/mdc/Field.js +41 -6
  10. package/src/sap/ui/mdc/FilterBar.js +1 -1
  11. package/src/sap/ui/mdc/FilterField.js +3 -3
  12. package/src/sap/ui/mdc/Link.js +5 -1
  13. package/src/sap/ui/mdc/MultiValueField.js +39 -3
  14. package/src/sap/ui/mdc/Table.js +164 -65
  15. package/src/sap/ui/mdc/TableDelegate.js +27 -15
  16. package/src/sap/ui/mdc/ValueHelp.js +9 -10
  17. package/src/sap/ui/mdc/ValueHelpDelegate.js +11 -6
  18. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
  19. package/src/sap/ui/mdc/chart/ChartImplementationContainer.js +2 -2
  20. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -2
  21. package/src/sap/ui/mdc/chart/ChartToolbar.js +1 -1
  22. package/src/sap/ui/mdc/chart/ChartTypeButton.js +39 -49
  23. package/src/sap/ui/mdc/chart/DrillBreadcrumbs.js +3 -3
  24. package/src/sap/ui/mdc/chart/DrillStackHandler.js +60 -69
  25. package/src/sap/ui/mdc/chart/PropertyHelper.js +7 -7
  26. package/src/sap/ui/mdc/condition/Condition.js +20 -14
  27. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  28. package/src/sap/ui/mdc/condition/ConditionModel.js +6 -149
  29. package/src/sap/ui/mdc/condition/ConditionModelPropertyBinding.js +5 -3
  30. package/src/sap/ui/mdc/condition/FilterConverter.js +2 -22
  31. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +20 -6
  32. package/src/sap/ui/mdc/condition/Operator.js +75 -39
  33. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +3 -2
  34. package/src/sap/ui/mdc/condition/RangeOperator.js +104 -104
  35. package/src/sap/ui/mdc/enum/ConditionValidated.js +4 -1
  36. package/src/sap/ui/mdc/enum/ContentMode.js +1 -1
  37. package/src/sap/ui/mdc/enum/EditMode.js +7 -7
  38. package/src/sap/ui/mdc/enum/FieldDisplay.js +3 -3
  39. package/src/sap/ui/mdc/enum/OperatorOverwrite.js +34 -0
  40. package/src/sap/ui/mdc/field/ConditionType.js +4 -4
  41. package/src/sap/ui/mdc/field/ConditionsType.js +5 -5
  42. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  43. package/src/sap/ui/mdc/field/DefineConditionPanel.js +10 -24
  44. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +22 -10
  45. package/src/sap/ui/mdc/field/FieldBase.js +41 -16
  46. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +7 -15
  47. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  48. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  49. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  50. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  51. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +2 -2
  52. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  53. package/src/sap/ui/mdc/field/TokenDisplay.js +2 -2
  54. package/src/sap/ui/mdc/field/TokenizerDisplay.js +2 -2
  55. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +4 -9
  56. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  57. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +5 -12
  58. package/src/sap/ui/mdc/filterbar/p13n/GroupContainer.js +1 -1
  59. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  60. package/src/sap/ui/mdc/flexibility/ActionToolbar.flexibility.js +16 -10
  61. package/src/sap/ui/mdc/flexibility/AggregateFlex.js +0 -21
  62. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  63. package/src/sap/ui/mdc/flexibility/ColumnFlex.js +0 -18
  64. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +0 -15
  65. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  66. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  67. package/src/sap/ui/mdc/flexibility/GroupFlex.js +2 -22
  68. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +1 -1
  69. package/src/sap/ui/mdc/flexibility/SortFlex.js +2 -21
  70. package/src/sap/ui/mdc/flexibility/Util.js +9 -7
  71. package/src/sap/ui/mdc/flp/FlpLinkDelegate.js +1 -1
  72. package/src/sap/ui/mdc/library.js +13 -2
  73. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  74. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  75. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  76. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  77. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  78. package/src/sap/ui/mdc/link/Factory.js +1 -1
  79. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  80. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  81. package/src/sap/ui/mdc/link/Panel.js +1 -1
  82. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  83. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  84. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  85. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  86. package/src/sap/ui/mdc/messagebundle.properties +8 -2
  87. package/src/sap/ui/mdc/messagebundle_ar.properties +18 -15
  88. package/src/sap/ui/mdc/messagebundle_bg.properties +4 -1
  89. package/src/sap/ui/mdc/messagebundle_ca.properties +3 -0
  90. package/src/sap/ui/mdc/messagebundle_cs.properties +3 -0
  91. package/src/sap/ui/mdc/messagebundle_cy.properties +3 -0
  92. package/src/sap/ui/mdc/messagebundle_da.properties +4 -1
  93. package/src/sap/ui/mdc/messagebundle_de.properties +5 -2
  94. package/src/sap/ui/mdc/messagebundle_el.properties +3 -0
  95. package/src/sap/ui/mdc/messagebundle_en.properties +3 -0
  96. package/src/sap/ui/mdc/messagebundle_en_GB.properties +3 -0
  97. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +4 -1
  98. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +4 -1
  99. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +4 -1
  100. package/src/sap/ui/mdc/messagebundle_es.properties +3 -0
  101. package/src/sap/ui/mdc/messagebundle_es_MX.properties +3 -0
  102. package/src/sap/ui/mdc/messagebundle_et.properties +3 -0
  103. package/src/sap/ui/mdc/messagebundle_fi.properties +3 -0
  104. package/src/sap/ui/mdc/messagebundle_fr.properties +3 -0
  105. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +3 -0
  106. package/src/sap/ui/mdc/messagebundle_hi.properties +3 -0
  107. package/src/sap/ui/mdc/messagebundle_hr.properties +3 -0
  108. package/src/sap/ui/mdc/messagebundle_hu.properties +3 -0
  109. package/src/sap/ui/mdc/messagebundle_id.properties +3 -0
  110. package/src/sap/ui/mdc/messagebundle_it.properties +3 -0
  111. package/src/sap/ui/mdc/messagebundle_iw.properties +3 -0
  112. package/src/sap/ui/mdc/messagebundle_ja.properties +3 -0
  113. package/src/sap/ui/mdc/messagebundle_kk.properties +3 -0
  114. package/src/sap/ui/mdc/messagebundle_ko.properties +3 -0
  115. package/src/sap/ui/mdc/messagebundle_lt.properties +3 -0
  116. package/src/sap/ui/mdc/messagebundle_lv.properties +3 -0
  117. package/src/sap/ui/mdc/messagebundle_ms.properties +3 -0
  118. package/src/sap/ui/mdc/messagebundle_nl.properties +3 -0
  119. package/src/sap/ui/mdc/messagebundle_no.properties +4 -1
  120. package/src/sap/ui/mdc/messagebundle_pl.properties +3 -0
  121. package/src/sap/ui/mdc/messagebundle_pt.properties +3 -0
  122. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +3 -0
  123. package/src/sap/ui/mdc/messagebundle_ro.properties +3 -0
  124. package/src/sap/ui/mdc/messagebundle_ru.properties +3 -0
  125. package/src/sap/ui/mdc/messagebundle_sh.properties +3 -0
  126. package/src/sap/ui/mdc/messagebundle_sk.properties +3 -0
  127. package/src/sap/ui/mdc/messagebundle_sl.properties +3 -0
  128. package/src/sap/ui/mdc/messagebundle_sv.properties +3 -0
  129. package/src/sap/ui/mdc/messagebundle_th.properties +3 -0
  130. package/src/sap/ui/mdc/messagebundle_tr.properties +3 -0
  131. package/src/sap/ui/mdc/messagebundle_uk.properties +5 -2
  132. package/src/sap/ui/mdc/messagebundle_vi.properties +3 -0
  133. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +3 -0
  134. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +3 -0
  135. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  136. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  137. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -1
  138. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  139. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +1 -1
  140. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +32 -0
  141. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +20 -23
  142. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  143. package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
  144. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +4 -0
  145. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +12 -24
  146. package/src/sap/ui/mdc/p13n/panels/FilterPanel.js +1 -1
  147. package/src/sap/ui/mdc/table/Column.js +0 -8
  148. package/src/sap/ui/mdc/table/ColumnSettings.js +1 -1
  149. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  150. package/src/sap/ui/mdc/table/PropertyHelper.js +1 -1
  151. package/src/sap/ui/mdc/table/ResponsiveColumnSettings.js +1 -1
  152. package/src/sap/ui/mdc/table/ResponsiveTableType.js +22 -9
  153. package/src/sap/ui/mdc/table/RowActionItem.js +1 -1
  154. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  155. package/src/sap/ui/mdc/table/TableSettings.js +15 -113
  156. package/src/sap/ui/mdc/table/TableTypeBase.js +8 -0
  157. package/src/sap/ui/mdc/table/TreeTableType.js +1 -1
  158. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
  159. package/src/sap/ui/mdc/table/menu/Item.js +1 -1
  160. package/src/sap/ui/mdc/table/menu/ItemContainer.js +4 -0
  161. package/src/sap/ui/mdc/table/menu/QuickActionContainer.js +12 -7
  162. package/src/sap/ui/mdc/table/utils/Personalization.js +236 -0
  163. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +3 -3
  164. package/src/sap/ui/mdc/util/InfoBar.js +2 -2
  165. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  166. package/src/sap/ui/mdc/util/PropertyHelper.js +1 -1
  167. package/src/sap/ui/mdc/valuehelp/Dialog.js +5 -4
  168. package/src/sap/ui/mdc/valuehelp/Popover.js +3 -2
  169. package/src/sap/ui/mdc/valuehelp/base/Container.js +20 -2
  170. package/src/sap/ui/mdc/valuehelp/base/Content.js +5 -2
  171. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  172. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +12 -36
  173. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +5 -2
  174. package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
  175. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +3 -2
  176. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +3 -2
  177. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +3 -2
  178. package/src/sap/ui/mdc/valuehelp/content/MTable.js +8 -7
@@ -7,6 +7,7 @@
7
7
  // Provides the base implementation for all model implementations
8
8
  sap.ui.define([
9
9
  'sap/ui/mdc/field/ConditionsType',
10
+ 'sap/ui/mdc/condition/ConditionValidateException',
10
11
  'sap/ui/mdc/condition/FilterOperatorUtil',
11
12
  'sap/ui/mdc/condition/Operator',
12
13
  'sap/ui/mdc/condition/Condition',
@@ -17,10 +18,12 @@ sap.ui.define([
17
18
  'sap/ui/model/FormatException',
18
19
  'sap/ui/model/ParseException',
19
20
  'sap/ui/model/ValidateException',
20
- 'sap/m/library'
21
+ 'sap/m/library',
22
+ 'sap/base/util/merge'
21
23
  ],
22
24
  function(
23
25
  ConditionsType,
26
+ ConditionValidateException,
24
27
  FilterOperatorUtil,
25
28
  Operator,
26
29
  Condition,
@@ -31,7 +34,8 @@ sap.ui.define([
31
34
  FormatException,
32
35
  ParseException,
33
36
  ValidateException,
34
- mLibrary
37
+ mLibrary,
38
+ merge
35
39
  ) {
36
40
  "use strict";
37
41
 
@@ -44,7 +48,7 @@ sap.ui.define([
44
48
  * @extends sap.ui.mdc.field.ConditionsType
45
49
  *
46
50
  * @author SAP SE
47
- * @version 1.112.0
51
+ * @version 1.113.0
48
52
  *
49
53
  * @since 1.96.0
50
54
  * @private
@@ -55,15 +59,15 @@ sap.ui.define([
55
59
  * @param {sap.ui.model.Type} [oFormatOptions.valueType] Type of the value of the condition (used for formatting and parsing)
56
60
  * @param {string[]} [oFormatOptions.operators] Possible operators to be used in the condition
57
61
  * @param {sap.ui.mdc.enum.FieldDisplay} [oFormatOptions.display] DisplayFormat used to visualize a value
58
- * @param {string} [oFormatOptions.fieldHelpID] ID of the field help to determine the key and description // TODO: async request????
59
- * @param {boolean} [oFormatOptions.hideOperator] If set, only the value of the condition is shown, but no operator //TODO
62
+ * @param {string} [oFormatOptions.fieldHelpID] ID of the field help to determine the key and description
63
+ * @param {boolean} [oFormatOptions.hideOperator] If set, only the value of the condition is shown, but no operator. (Use it only if just one operator is supported.)
60
64
  * @param {int} [oFormatOptions.maxConditions] Maximum number of allowed conditions
61
65
  * @param {sap.ui.model.Context} [oFormatOptions.bindingContext] <code>BindingContext</code> of field. Used to get a key or description from the value help using in/out parameters. (In a table, the value help might be connected to a different row)
62
66
  * @param {sap.ui.model.Type} [oFormatOptions.originalDateType] Type used on field, for example, for date types; a different type is used internally to have different <code>formatOptions</code>
63
67
  * @param {boolean} [oFormatOptions.isUnit] If set, the type is used for the unit part of a field
64
68
  * @param {function} [oFormatOptions.getConditions] Function to get the existing conditions of the field. Only used if <code>isUnit</code> is set. TODO: better solution
65
69
  * @param {function} [oFormatOptions.asyncParsing] Callback function to tell the <code>Field</code> the parsing is asynchronous.
66
- * @param {object} [oFormatOptions.navigateCondition] Condition of keyboard navigation. If this is filled, no real parsing is needed as the condition has already been determined and is just returned
70
+ * @param {sap.ui.mdc.condition.ConditionObject} [oFormatOptions.navigateCondition] Condition of keyboard navigation. If this is filled, no real parsing is needed as the condition has already been determined and is just returned
67
71
  * @param {object} [oFormatOptions.delegate] Field delegate to handle model-specific logic
68
72
  * @param {object} [oFormatOptions.payload] Payload of the delegate
69
73
  * @param {boolean} [oFormatOptions.preventGetDescription] If set, description is not read by <code>formatValue</code> as it is known that no description exists or might be set later
@@ -210,7 +214,7 @@ sap.ui.define([
210
214
  }
211
215
 
212
216
  if (!Array.isArray(aConditions)) {
213
- throw new ValidateException("No valid conditions provided");
217
+ throw new ConditionValidateException("No valid conditions provided", undefined, undefined, aConditions);
214
218
  }
215
219
 
216
220
  var oType = _getValueType.call(this);
@@ -220,16 +224,24 @@ sap.ui.define([
220
224
  var oCondition = aConditions[i];
221
225
  if (typeof oCondition !== "object" || !oCondition.operator || !oCondition.values ||
222
226
  !Array.isArray(oCondition.values)) {
223
- throw new ValidateException(this._oResourceBundle.getText("field.VALUE_NOT_VALID"));
227
+ throw new ConditionValidateException(this._oResourceBundle.getText("field.VALUE_NOT_VALID"), undefined, typeof oCondition === "object" ? merge({}, oCondition) : oCondition, aConditions);
224
228
  }
225
229
 
226
230
  var oOperator = FilterOperatorUtil.getOperator(oCondition.operator);
227
231
 
228
232
  if (!oOperator || aOperators.indexOf(oOperator.name) === -1) {
229
- throw new ValidateException("No valid condition provided, Operator wrong.");
233
+ throw new ConditionValidateException("No valid condition provided, Operator wrong.", undefined, merge({}, oCondition), aConditions);
230
234
  }
231
235
 
232
- oOperator.validate(oCondition.values, oType);
236
+ try {
237
+ oOperator.validate(oCondition.values, oType);
238
+ } catch (oException) {
239
+ if (oException instanceof ValidateException) {
240
+ // add condition to exception to improve mapping in FieldBase handleValidationError
241
+ throw new ConditionValidateException(oException.message, oException.violatedConstraints, merge({}, oCondition), aConditions);
242
+ }
243
+ throw oException;
244
+ }
233
245
  }
234
246
 
235
247
  };
@@ -72,6 +72,17 @@ sap.ui.define([
72
72
  var TextAlign = coreLibrary.TextAlign;
73
73
  var TextDirection = coreLibrary.TextDirection;
74
74
 
75
+ /**
76
+ * Modules for {@link sap.ui.mdc.Field Field} and {@link sap.ui.mdc.FilterField FilterField}
77
+ * @namespace
78
+ * @name sap.ui.mdc.field
79
+ * @since 1.58.0
80
+ * @private
81
+ * @experimental As of version 1.58
82
+ * @ui5-restricted sap.ui.mdc sap.fe
83
+ * @MDC_PUBLIC_CANDIDATE
84
+ */
85
+
75
86
  /**
76
87
  * Constructor for a new <code>FieldBase</code>.
77
88
  *
@@ -79,14 +90,15 @@ sap.ui.define([
79
90
  * @param {object} [mSettings] Initial settings for the new control
80
91
  *
81
92
  * @class
82
- * The <code>FieldBase</code> control is the basic control to be used within the {@link sap.ui.mdc.Field Field} and {@link sap.ui.mdc.FilterField FilterField} controls.
93
+ * The <code>FieldBase</code> control is the basic control to be used within the {@link sap.ui.mdc.Field Field}, {@link sap.ui.mdc.MultiValueField MultiValueField}
94
+ * and {@link sap.ui.mdc.FilterField FilterField} controls.
83
95
  * It must not be used stand-alone.
84
96
  *
85
97
  * @extends sap.ui.mdc.Control
86
98
  * @implements sap.ui.core.IFormContent, sap.ui.core.ISemanticFormContent
87
99
  *
88
100
  * @author SAP SE
89
- * @version 1.112.0
101
+ * @version 1.113.0
90
102
  *
91
103
  * @constructor
92
104
  * @alias sap.ui.mdc.field.FieldBase
@@ -94,7 +106,8 @@ sap.ui.define([
94
106
  * @abstract
95
107
  *
96
108
  * @private
97
- * @ui5-restricted sap.ui.mdc
109
+ * @ui5-restricted sap.fe
110
+ * @MDC_PUBLIC_CANDIDATE
98
111
  * @experimental As of version 1.58
99
112
  */
100
113
  var FieldBase = Control.extend("sap.ui.mdc.field.FieldBase", /* @lends sap.ui.mdc.field.FieldBase.prototype */ {
@@ -270,7 +283,7 @@ sap.ui.define([
270
283
  * <ul>
271
284
  * <li><code>$filters</code> as the name of the condition model</li>
272
285
  * <li><code>/conditions/</code> as a required static part of the binding</li>
273
- * <li><code>navPath#42;/</code> as the navigation property name</li>
286
+ * <li><code>navPath&#42;/</code> as the navigation property name</li>
274
287
  * <li><code>propertyPath</code> as the property name</li>
275
288
  * </ul>
276
289
  * Between <code>navPath</code> and <code>propertyPath</code>, <b>&#42;/</b> is required.
@@ -281,7 +294,8 @@ sap.ui.define([
281
294
  type: "object[]",
282
295
  group: "Data",
283
296
  defaultValue: [],
284
- byValue: true
297
+ byValue: true,
298
+ bindable: "bindable"
285
299
  },
286
300
 
287
301
  /**
@@ -441,15 +455,15 @@ sap.ui.define([
441
455
  /**
442
456
  * Optional <code>FieldHelp</code>.
443
457
  *
444
- * This is an association that allows the usage of one <code>FieldHelp</code> instance for multiple fields.
458
+ * This is an association that allows the usage of one <code>ValueHelp</code> instance for multiple fields.
445
459
  *
446
- * <b>Note:</b> If the field is inside of a table, do not set the <code>FieldHelp</code> instance as <code>dependent</code>
460
+ * <b>Note:</b> If the field is inside of a table, do not set the <code>ValueHelp</code> instance as <code>dependent</code>
447
461
  * to the field. If you do, every field instance in every table row gets a clone of it.
448
- * Put the <code>FieldHelp</code> instance e.g. as dependent on the table or page.
462
+ * Put the <code>ValueHelp</code> instance e.g. as dependent on the table or page.
449
463
  * The <code>FieldHelp</code> instance must be somewhere in the control tree, otherwise there might
450
464
  * be rendering or update issues.
451
465
  *
452
- * <b>Note:</b> For <code>Boolean</code> fields, no <code>FieldHelp</code> should be added, but a default <code>FieldHelp</code> used instead.
466
+ * <b>Note:</b> For <code>Boolean</code> fields, no <code>ValueHelp</code> should be added, but a default <code>ValueHelp</code> used instead.
453
467
  */
454
468
  fieldHelp: {
455
469
  type: "sap.ui.mdc.ValueHelp",
@@ -1337,7 +1351,11 @@ sap.ui.define([
1337
1351
  };
1338
1352
 
1339
1353
  /*
1340
- * If Field is inside of a SemanticFormElement return formatted value in display mode
1354
+ * If Field is inside of a {@link sap.ui.layout.form.SemanticFormElement SemanticFormElement} return formatted value in display mode
1355
+ *
1356
+ * @returns {string} formatted value of the field
1357
+ * @private
1358
+ * @ui5-restricted sap.ui.layout.form.SemanticFormElement
1341
1359
  */
1342
1360
  FieldBase.prototype.getFormFormattedValue = function() {
1343
1361
 
@@ -1372,7 +1390,11 @@ sap.ui.define([
1372
1390
  };
1373
1391
 
1374
1392
  /*
1375
- * If Field is inside of a SemanticFormElement return value holding property (don't use "value" property of Field as conditions are updares async)
1393
+ * If Field is inside of a {@link sap.ui.layout.form.SemanticFormElement SemanticFormElement} return value holding property (don't use "value" property of Field as conditions are updated async)
1394
+ *
1395
+ * @returns {string} name of the value holding property
1396
+ * @private
1397
+ * @ui5-restricted sap.ui.layout.form.SemanticFormElement
1376
1398
  */
1377
1399
  FieldBase.prototype.getFormValueProperty = function() {
1378
1400
 
@@ -1491,16 +1513,16 @@ sap.ui.define([
1491
1513
  }
1492
1514
 
1493
1515
  /**
1494
- * Assigns a <code>Label</code> control to the <code>Field</code> or </code>FilterField</code> controls.
1516
+ * Assigns a <code>Label</code> control to the {@link sap.ui.mdc.Field Field} or {@link sap.ui.mdc.FilterField FilterField} controls.
1495
1517
  *
1496
- * The text of the label is taken from the <code>Field</code> or </code>FilterField</code> controls.
1497
- * The <code>labelFor</code> association is set to the <code>Field</code> or </code>FilterField</code> control.
1518
+ * The text of the label is taken from the {@link sap.ui.mdc.Field Field} or {@link sap.ui.mdc.FilterField FilterField} controls.
1519
+ * The <code>labelFor</code> association is set to the {@link sap.ui.mdc.Field Field} or {@link sap.ui.mdc.FilterField FilterField} control.
1498
1520
  *
1499
1521
  * @param {sap.ui.core.Label} oLabel Label control
1500
1522
  * @returns {this} Reference to <code>this</code> to allow method chaining
1501
1523
  *
1502
1524
  * @private
1503
- * @ui5-restricted sap.fe
1525
+ * @ui5-restricted sap.ui.mdc sap.fe
1504
1526
  * @MDC_PUBLIC_CANDIDATE
1505
1527
  * @experimental As of version 1.62.0
1506
1528
  * @since 1.62.0 Disclaimer: this function is in a beta state - incompatible API changes may be done before its official public release. Use at your own discretion.
@@ -1815,6 +1837,7 @@ sap.ui.define([
1815
1837
  var sId = _getIdForInternalControl.call(this);
1816
1838
  this._oCreateContentPromise = this._getContentFactory().createContent(oContentType, sContentMode, sId);
1817
1839
  this._oCreateContentPromise.then(function(aControls) {
1840
+ delete this._oCreateContentPromise; // after finished new creation request can be sync again (clear at the beginning as error might break function before end)
1818
1841
  for (var iIndex = 0; iIndex < aControls.length; iIndex++) {
1819
1842
  var oControl = aControls[iIndex];
1820
1843
  oControl.attachEvent("parseError", _handleParseError, this);
@@ -1830,7 +1853,9 @@ sap.ui.define([
1830
1853
  }
1831
1854
 
1832
1855
  _refreshLabel.call(this);
1833
- delete this._oCreateContentPromise; // after finished new creation request can be sync again
1856
+ }.bind(this)).catch(function(oException) {
1857
+ delete this._oCreateContentPromise; // clean up to not run into endless loop
1858
+ throw oException;
1834
1859
  }.bind(this));
1835
1860
  }
1836
1861
  }
@@ -162,22 +162,14 @@ sap.ui.define([
162
162
  };
163
163
 
164
164
  /**
165
- * Determines the key, description, and the in and out parameters of a user input.
165
+ * Determines the key, description, and payload of a user input.
166
166
  *
167
167
  * If this needs to be determined asynchronously, a <code>Promise</code> is returned.
168
168
  *
169
- * The result needs to be an object containing the following properties: description, key, and in and out parameters.
170
- * <ul>
171
- * <li><code>key</code>: Key of the item </li>
172
- * <li><code>description</code>: Description of the item </li>
173
- * <li><code>inParameters</code>: Object with in parameters and the corresponding value </li>
174
- * <li><code>outParameters</code>: Object with out parameters and the corresponding value </li>
175
- * </ul>
176
- *
177
169
  * If the item cannot be determined, a corresponding <code>ParseException<code> is thrown.
178
170
  *
179
171
  * @param {object} oPayload Payload for delegate
180
- * @param {sap.ui.mdc.ValueHelp} oValueHelp Field help assigned to the <code>Field</code> or <code>FilterField</code> control
172
+ * @param {sap.ui.mdc.ValueHelp} oValueHelp Field help assigned to the {@link sap.ui.mdc.Field Field} or {@link sap.ui.mdc.FilterField FilterField} control
181
173
  * @param {object} [oConfig] Configuration
182
174
  * @param {any} oConfig.value Value as entered by user
183
175
  * @param {any} oConfig.parsedValue Value parsed by data type to fit the data type of the key
@@ -185,7 +177,7 @@ sap.ui.define([
185
177
  * @param {boolean} oConfig.checkKey If set, it should be checked 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.
186
178
  * @param {boolean} oConfig.checkDescription If set, it should be checked 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.
187
179
  * @param {sap.ui.core.Control} oConfig.control Instance if the calling control
188
- * @returns {object|Promise} Object containing description, key, in and out parameters. If it is not available right now (must be requested), a <code>Promise</code> is returned.
180
+ * @returns {sap.ui.mdc.valuehelp.ValueHelpItem|Promise<sap.ui.mdc.valuehelp.ValueHelpItem>} Object containing description, key, and payload. If it is not available right now (must be requested), a <code>Promise</code> is returned.
189
181
  * @throws {sap.ui.model.ParseException} if item cannot be determined
190
182
  * @since: 1.78.0
191
183
  * @private
@@ -203,7 +195,7 @@ sap.ui.define([
203
195
  /**
204
196
  * Determines the description for a given key.
205
197
  *
206
- * This function is called while formatting the output of a <code>Field</code> or <code>FilterField</code> control
198
+ * This function is called while formatting the output of a {@link sap.ui.mdc.Field Field} or {@link sap.ui.mdc.FilterField FilterField} control
207
199
  * in case a description is to be displayed but only a key is given.
208
200
  *
209
201
  * If this needs to be determined asynchronously, a <code>Promise</code> is returned.
@@ -213,10 +205,10 @@ sap.ui.define([
213
205
  * If the description cannot be determined, a corresponding <code>FormatException<code> is thrown.
214
206
  *
215
207
  * @param {object} oPayload Payload for delegate
216
- * @param {sap.ui.mdc.ValueHelp} oValueHelp Field help assigned to the <code>Field</code> or <code>FilterField</code> control
208
+ * @param {sap.ui.mdc.ValueHelp} oValueHelp Field help assigned to the {@link sap.ui.mdc.Field Field} or {@link sap.ui.mdc.FilterField FilterField} control
217
209
  * @param {any} vKey Key
218
- * @param {object} oInParameters In parameters for the key (as a key must not be unique.)
219
- * @param {object} oOutParameters Out parameters for the key (as a key must not be unique.)
210
+ * @param {object} oInParameters In parameters for the key (as a key must not be unique.) (Only filled in conditions of old variants.)
211
+ * @param {object} oOutParameters Out parameters for the key (as a key must not be unique.) (Only filled in conditions of old variants.)
220
212
  * @param {sap.ui.model.Context} oBindingContext <code>BindingContext</code> of the checked field. Inside a table the <code>FieldHelp</code> element might be connected to a different row.
221
213
  * @param {sap.ui.mdc.condition.ConditionModel} [oConditionModel] <code>ConditionModel</code>, if bound to one - NOT LONGER USED
222
214
  * @param {string} [sConditionModelName] Name of the <code>ConditionModel</code>, if bound to one - NOT LONGER USED
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @param {object} [mSettings] Initial settings for the new control
28
28
  * @class A <code>FieldInfoBase</code> element is a base class that shows any kind of information related to the <code>Field</code> control, for example, navigation targets or contact details.
29
29
  * @extends sap.ui.mdc.Element
30
- * @version 1.112.0
30
+ * @version 1.113.0
31
31
  * @constructor
32
32
  * @private
33
33
  * @since 1.54.0
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @param {object} [mSettings] Initial settings for the new control
24
24
  * @class The <code>FieldInput</code> control is used to render an input field inside a control based on {@link sap.ui.mdc.field.FieldBase FieldBase}.
25
25
  * @extends sap.m.Input
26
- * @version 1.112.0
26
+ * @version 1.113.0
27
27
  * @constructor
28
28
  * @abstract
29
29
  * @private
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @class Functions uses in <code>FieldInputRenderer</code> and <code>FieldMultiInputRenderer</code> to adjust aria attributes.
17
17
  *
18
18
  * @author SAP SE
19
- * @version 1.112.0
19
+ * @version 1.113.0
20
20
  * @since 1.86.0
21
21
  * @alias sap.ui.mdc.field.FieldInputRenderUtil
22
22
  *
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @param {object} [mSettings] Initial settings for the new control
24
24
  * @class The <code>FieldMultiInput</code> control is used to render a multi-input field inside a control based on {@link sap.ui.mdc.field.FieldBase FieldBase}.
25
25
  * @extends sap.m.MultiInput
26
- * @version 1.112.0
26
+ * @version 1.113.0
27
27
  * @constructor
28
28
  * @abstract
29
29
  * @private
@@ -18,12 +18,12 @@ sap.ui.define([
18
18
  * @param {object} [mSettings] initial settings for the new control
19
19
  *
20
20
  * @class
21
- * An item that is used in the {@link sap.ui.mdc.field.ListFieldHelp ListFieldHelp} element if grouping is needed.
21
+ * An item that is used in the {@link sap.ui.mdc.valuehelp.content.FixedList FixedList}.
22
22
  *
23
23
  * @extends sap.ui.core.ListItem
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.112.0
26
+ * @version 1.113.0
27
27
  *
28
28
  * @private
29
29
  * @ui5-restricted sap.fe
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @param {object} [mSettings] Initial settings for the new control
21
21
  * @class Base type for <code>MultiValueFieldItem</code> control.
22
22
  * @extends sap.ui.core.Element
23
- * @version 1.112.0
23
+ * @version 1.113.0
24
24
  * @constructor
25
25
  * @abstract
26
26
  * @private
@@ -23,11 +23,11 @@ sap.ui.define([
23
23
  * @param {object} [mSettings] Initial settings for the new control
24
24
  * @class The <code>TokenDisplay</code> control is used to render a field inside a control based on {@link sap.ui.mdc.field.FieldBase FieldBase}.
25
25
  * @extends sap.m.Token
26
- * @version 1.112.0
26
+ * @version 1.113.0
27
27
  * @constructor
28
28
  * @abstract
29
29
  * @private
30
- * @ui5-restricted sap.ui.mdc.field.TokenDisplay
30
+ * @ui5-restricted sap.ui.mdc.field.FieldBase
31
31
  * @since 1.99.0
32
32
  * @alias sap.ui.mdc.field.TokenDisplay
33
33
  */
@@ -28,11 +28,11 @@ sap.ui.define([
28
28
  * @param {object} [mSettings] Initial settings for the new control
29
29
  * @class The <code>TokenizerDisplay</code> control is used to render a Tokenizer inside a control based on {@link sap.ui.mdc.field.FieldBase FieldBase}.
30
30
  * @extends sap.m.Tokenizer
31
- * @version 1.112.0
31
+ * @version 1.113.0
32
32
  * @constructor
33
33
  * @abstract
34
34
  * @private
35
- * @ui5-restricted sap.ui.mdc.field.TokenizerDisplay
35
+ * @ui5-restricted sap.ui.mdc.field.FieldBase
36
36
  * @since 1.99.0
37
37
  * @alias sap.ui.mdc.field.TokenizerDisplay
38
38
  */
@@ -62,7 +62,7 @@ sap.ui.define([
62
62
  * @class The <code>FilterBarBase</code> control is used as a faceless base class for common functionality of any MDC FilterBar derivation.
63
63
  * @extends sap.ui.mdc.Control
64
64
  * @author SAP SE
65
- * @version 1.112.0
65
+ * @version 1.113.0
66
66
  * @constructor
67
67
  * @private
68
68
  * @ui5-restricted sap.ui.mdc
@@ -666,17 +666,12 @@ sap.ui.define([
666
666
  }
667
667
  };
668
668
 
669
- FilterBarBase.prototype._isPersistenceSupported = function(oEvent) {
670
- return this.getEngine().isModificationSupported(this);
671
- };
672
-
673
669
  FilterBarBase.prototype.getPropertyInfoSet = function() {
674
670
  return this.getPropertyHelper() ? this.getPropertyHelper().getProperties() : [];
675
671
  };
676
672
 
677
673
 
678
674
  FilterBarBase.prototype._addConditionChange = function(pConditionState) {
679
-
680
675
  this._aOngoingChangeAppliance.push(this.getEngine().createChanges({
681
676
  control: this,
682
677
  applySequentially: true,
@@ -704,7 +699,7 @@ sap.ui.define([
704
699
 
705
700
  var sFieldPath = sPath.substring("/conditions/".length);
706
701
 
707
- if (this._bPersistValues && this._isPersistenceSupported()) {
702
+ if (this._bPersistValues) {
708
703
 
709
704
  var aConditions = oEvent.getParameter("value");
710
705
 
@@ -1880,13 +1875,13 @@ sap.ui.define([
1880
1875
  this._bDoNotTriggerFiltersChangeEventBasedOnVariantSwitch = true;
1881
1876
  }
1882
1877
 
1883
- return this.awaitPendingModification().then(function(aChangesProcessed){
1878
+ return this.awaitPendingModification().then(function(aAffectedControllers){
1884
1879
  //clean-up fields in error state
1885
1880
  this._cleanUpAllFilterFieldsInErrorState();
1886
1881
 
1887
1882
  // ensure that the initial filters are applied --> only trigger search & validate when no filterbar changes exists.
1888
1883
  // Filterbar specific changes will be handled via _onModifications.
1889
- if (this._bInitialFiltersApplied && (aChangesProcessed.length === 0)) {
1884
+ if (this._bInitialFiltersApplied && (aAffectedControllers.indexOf("Filter") === -1)) {
1890
1885
  this._reportModelChange({
1891
1886
  triggerFilterUpdate: false,
1892
1887
  triggerSearch: this._bExecuteOnSelect
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @extends sap.ui.mdc.util.PropertyHelper
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.112.0
30
+ * @version 1.113.0
31
31
  *
32
32
  * @private
33
33
  * @experimental
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  *
21
21
  * @extends sap.ui.mdc.filterbar.FilterBarBase
22
22
  * @author SAP SE
23
- * @version 1.112.0
23
+ * @version 1.113.0
24
24
  * @constructor
25
25
  * @private
26
26
  * @ui5-restricted sap.ui.mdc
@@ -311,15 +311,6 @@ sap.ui.define([
311
311
  return this.getEngine().waitForChanges(this._getAdaptationControlInstance());
312
312
  };
313
313
 
314
- AdaptationFilterBar.prototype.applyConditionsAfterChangesApplied = function(oControl) {
315
- if (oControl === this._getAdaptationControlInstance()) {
316
- this._getWaitForChangesPromise()
317
- .then(function(){
318
- this.triggerSearch();
319
- }.bind(this));
320
- }
321
- };
322
-
323
314
  /**
324
315
  * Method which will initialize the <code>AdaptationFilterBar</code> and create the required FilterFields
325
316
  *
@@ -384,11 +375,13 @@ sap.ui.define([
384
375
  }.bind(this));
385
376
 
386
377
  return Promise.all(aFieldPromises).then(function(){
387
- this.getP13nData().items.forEach(function(oItem){
378
+ var oP13nData = this.getP13nData();
379
+ oP13nData.items.forEach(function(oItem){
388
380
  this.addAggregation("filterItems", this.mFilterFields[oItem.name]);
389
381
  }.bind(this));
390
382
 
391
- this._oFilterBarLayout.setP13nData(this.getP13nData());
383
+ this._updateActiveStatus(oP13nData.items);
384
+ this._oFilterBarLayout.setP13nData(oP13nData);
392
385
  this._bFilterFieldsCreated = true;
393
386
 
394
387
  return this;
@@ -76,7 +76,7 @@ sap.ui.define([
76
76
  };
77
77
 
78
78
  GroupContainer.prototype.getInitialFocusedControl = function() {
79
- return this.oLayout._getSearchField && this.oLayout._getSearchField();
79
+ return this.oLayout.getInitialFocusedControl && this.oLayout.getInitialFocusedControl();
80
80
  };
81
81
 
82
82
  return GroupContainer;
@@ -56,7 +56,7 @@ sap.ui.define(
56
56
  * The metadata information is provided via the {@link sap.ui.mdc.FilterBarDelegate FilterBarDelegate} implementation. This implementation has to be provided by the application.
57
57
  * @extends sap.ui.mdc.filterbar.FilterBarBase
58
58
  * @author SAP SE
59
- * @version 1.112.0
59
+ * @version 1.113.0
60
60
  * @constructor
61
61
  * @private
62
62
  * @ui5-restricted sap.fe
@@ -13,27 +13,31 @@ sap.ui.define([
13
13
  var oActionFlex = Object.assign({}, ItemBaseFlex);
14
14
 
15
15
  oActionFlex.findItem = function(oModifier, aActions, sName) {
16
- return sap.ui.getCore().byId(sName);
16
+ return aActions.find(function (oAction) {
17
+ return oModifier.getId(oAction) === sName;
18
+ });
17
19
  };
18
20
 
19
21
  oActionFlex.determineAggregation = function(oModifier, oControl) {
20
- return Promise.resolve().then(function() {
22
+ return oModifier.getAggregation(oControl, "actions").then(function(aActions) {
21
23
  return {
22
24
  name: "actions",
23
- items: oControl.getActions()
25
+ items: aActions
24
26
  };
25
27
  });
26
28
  };
27
29
 
28
30
  oActionFlex._applyMove = function(oChange, oControl, mPropertyBag, sChangeReason) {
29
31
  var bIsRevert = sChangeReason === Util.REVERT ? true : false;
30
- if (oControl.getParent()){
31
- if (oControl.getParent().isA("sap.ui.mdc.Chart")) {
32
+ var oModifier = mPropertyBag.modifier;
33
+ if (oModifier.getParent(oControl)){
34
+ var oParent = oModifier.getParent(oControl);
35
+ if (oModifier.getControlType(oParent) === "sap.ui.mdc.Chart") {
32
36
  // ActionToolbar of sap.ui.mdc.Chart
33
- oControl = oControl.getParent();
34
- } else if (oControl.getParent().getParent().isA("sap.ui.mdc.Table")) {
37
+ oControl = oParent;
38
+ } else if (oModifier.getParent(oParent) && oModifier.getControlType(oModifier.getParent(oParent)) === "sap.ui.mdc.Table") {
35
39
  // ActionToolbar of sap.ui.mdc.Table
36
- oControl = oControl.getParent().getParent();
40
+ oControl = oModifier.getParent(oParent);
37
41
  }
38
42
  }
39
43
  this.beforeApply(oChange.getChangeType(), oControl, bIsRevert);
@@ -41,11 +45,11 @@ sap.ui.define([
41
45
  this._delayInvalidate(oControl);
42
46
  }
43
47
 
44
- var oModifier = mPropertyBag.modifier;
45
48
  var oChangeContent = bIsRevert ? oChange.getRevertData() : oChange.getContent();
46
49
  var oControlAggregationItem;
47
50
  var oAggregation;
48
51
  var iOldIndex;
52
+ var sControlAggregationItemId;
49
53
 
50
54
  // 1) Fetch existing item
51
55
  var pMove = this.determineAggregation(oModifier, oControl)
@@ -62,6 +66,7 @@ sap.ui.define([
62
66
  if (!oControlAggregationItem) {
63
67
  throw new Error("No corresponding item in " + oAggregation.name + " found. Change to move item cannot be " + this._getOperationText(bIsRevert) + "at this moment");
64
68
  }
69
+ sControlAggregationItemId = oModifier.getId(oControlAggregationItem);
65
70
  return oModifier.findIndexInParentAggregation(oControlAggregationItem);
66
71
  }.bind(this))
67
72
 
@@ -82,7 +87,8 @@ sap.ui.define([
82
87
  } else {
83
88
  oChange.setRevertData({
84
89
  name: oChangeContent.name,
85
- index: iOldIndex
90
+ index: iOldIndex,
91
+ item: sControlAggregationItemId
86
92
  });
87
93
  }
88
94
  this.afterApply(oChange.getChangeType(), oControl, bIsRevert);
@@ -10,25 +10,6 @@ sap.ui.define([
10
10
  ], function(Engine, Util, CondenserClassification) {
11
11
  "use strict";
12
12
 
13
- var fRebindControl = function (oControl) {
14
- var bExecuteRebindForTable = oControl && oControl.isA && oControl.isA("sap.ui.mdc.Table") && oControl.isTableBound();
15
- var bExecuteRebindForChart = oControl && oControl.isA && (oControl.isA("sap.ui.mdc.Chart"));
16
- if (bExecuteRebindForTable || bExecuteRebindForChart) {
17
- if (!oControl._bWaitForBindChanges) {
18
- oControl._bWaitForBindChanges = true;
19
- Engine.getInstance().waitForChanges(oControl).then(function () {
20
- if (bExecuteRebindForTable) {
21
- oControl.rebind();
22
- } else if (bExecuteRebindForChart) {
23
- oControl.rebind();
24
- }
25
- delete oControl._bWaitForBindChanges;
26
- });
27
-
28
- }
29
- }
30
- };
31
-
32
13
  var fFinalizeAggregateChange = function (oChange, oControl, oAggregateContent, bIsRevert) {
33
14
  if (bIsRevert) {
34
15
  // Clear the revert data on the change
@@ -37,8 +18,6 @@ sap.ui.define([
37
18
  // Set revert data on the change
38
19
  oChange.setRevertData(oAggregateContent);
39
20
  }
40
- // Rebind Table if needed
41
- fRebindControl(oControl);
42
21
  };
43
22
 
44
23
  var fAddAggregate = function (oChange, oControl, mPropertyBag, sChangeReason) {
@@ -12,7 +12,7 @@ sap.ui.define([
12
12
  *
13
13
  * @alias sap.ui.mdc.flexibility.Chart
14
14
  * @author SAP SE
15
- * @version 1.112.0
15
+ * @version 1.113.0
16
16
  */
17
17
  return {
18
18
  addItem: ChartItemFlex.addItem,