@openui5/sap.ui.mdc 1.110.0 → 1.111.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 (202) hide show
  1. package/package.json +4 -4
  2. package/src/sap/ui/mdc/.library +1 -1
  3. package/src/sap/ui/mdc/ActionToolbar.js +1 -1
  4. package/src/sap/ui/mdc/AggregationBaseDelegate.js +20 -2
  5. package/src/sap/ui/mdc/Chart.js +121 -3
  6. package/src/sap/ui/mdc/ChartRenderer.js +9 -6
  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 +2 -2
  10. package/src/sap/ui/mdc/FilterBar.js +1 -1
  11. package/src/sap/ui/mdc/FilterBarDelegate.js +96 -4
  12. package/src/sap/ui/mdc/FilterField.js +2 -2
  13. package/src/sap/ui/mdc/Link.js +9 -2
  14. package/src/sap/ui/mdc/MultiValueField.js +1 -1
  15. package/src/sap/ui/mdc/Table.js +136 -74
  16. package/src/sap/ui/mdc/ValueHelp.js +7 -40
  17. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
  18. package/src/sap/ui/mdc/chart/ChartImplementationContainer.js +1 -1
  19. package/src/sap/ui/mdc/chart/ChartImplementationContainerRenderer.js +1 -1
  20. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
  21. package/src/sap/ui/mdc/chart/ChartSettings.js +7 -3
  22. package/src/sap/ui/mdc/chart/ChartToolbar.js +37 -6
  23. package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
  24. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  25. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  26. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  27. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  28. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +2 -2
  29. package/src/sap/ui/mdc/condition/Operator.js +1 -1
  30. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +1 -1
  31. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  32. package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +3 -0
  33. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +3 -1
  34. package/src/sap/ui/mdc/enum/FilterBarValidationStatus.js +56 -0
  35. package/src/sap/ui/mdc/enum/ReasonMode.js +53 -0
  36. package/src/sap/ui/mdc/field/ConditionType.js +19 -33
  37. package/src/sap/ui/mdc/field/ConditionsType.js +1 -3
  38. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  39. package/src/sap/ui/mdc/field/DefineConditionPanel.js +2 -4
  40. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +1 -3
  41. package/src/sap/ui/mdc/field/FieldBase.js +60 -100
  42. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +28 -69
  43. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  44. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  45. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  46. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  47. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  48. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  49. package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
  50. package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
  51. package/src/sap/ui/mdc/field/content/ContentFactory.js +66 -9
  52. package/src/sap/ui/mdc/field/content/DateContent.js +3 -2
  53. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +172 -112
  54. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  55. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +18 -3
  56. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +2 -2
  57. package/src/sap/ui/mdc/flexibility/AggregateFlex.js +16 -4
  58. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  59. package/src/sap/ui/mdc/flexibility/ChartTypeFlex.js +14 -3
  60. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +17 -5
  61. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  62. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  63. package/src/sap/ui/mdc/flexibility/GroupFlex.js +9 -3
  64. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +71 -8
  65. package/src/sap/ui/mdc/flexibility/SortFlex.js +10 -4
  66. package/src/sap/ui/mdc/flexibility/Util.js +5 -3
  67. package/src/sap/ui/mdc/flexibility/xConfigFlex.js +11 -3
  68. package/src/sap/ui/mdc/library.js +2 -18
  69. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  70. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  71. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  72. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  73. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  74. package/src/sap/ui/mdc/link/Factory.js +1 -1
  75. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  76. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  77. package/src/sap/ui/mdc/link/Panel.js +1 -1
  78. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  79. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  80. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  81. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  82. package/src/sap/ui/mdc/messagebundle.properties +7 -3
  83. package/src/sap/ui/mdc/messagebundle_ar.properties +5 -3
  84. package/src/sap/ui/mdc/messagebundle_bg.properties +5 -3
  85. package/src/sap/ui/mdc/messagebundle_ca.properties +5 -3
  86. package/src/sap/ui/mdc/messagebundle_cs.properties +5 -3
  87. package/src/sap/ui/mdc/messagebundle_cy.properties +5 -3
  88. package/src/sap/ui/mdc/messagebundle_da.properties +5 -3
  89. package/src/sap/ui/mdc/messagebundle_de.properties +5 -3
  90. package/src/sap/ui/mdc/messagebundle_el.properties +5 -3
  91. package/src/sap/ui/mdc/messagebundle_en.properties +5 -2
  92. package/src/sap/ui/mdc/messagebundle_en_GB.properties +5 -3
  93. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +5 -3
  94. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +12 -2
  95. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +5 -3
  96. package/src/sap/ui/mdc/messagebundle_es.properties +5 -3
  97. package/src/sap/ui/mdc/messagebundle_es_MX.properties +5 -3
  98. package/src/sap/ui/mdc/messagebundle_et.properties +5 -3
  99. package/src/sap/ui/mdc/messagebundle_fi.properties +5 -3
  100. package/src/sap/ui/mdc/messagebundle_fr.properties +6 -4
  101. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +5 -3
  102. package/src/sap/ui/mdc/messagebundle_hi.properties +5 -3
  103. package/src/sap/ui/mdc/messagebundle_hr.properties +5 -3
  104. package/src/sap/ui/mdc/messagebundle_hu.properties +5 -3
  105. package/src/sap/ui/mdc/messagebundle_id.properties +5 -3
  106. package/src/sap/ui/mdc/messagebundle_it.properties +5 -3
  107. package/src/sap/ui/mdc/messagebundle_iw.properties +5 -3
  108. package/src/sap/ui/mdc/messagebundle_ja.properties +5 -3
  109. package/src/sap/ui/mdc/messagebundle_kk.properties +5 -3
  110. package/src/sap/ui/mdc/messagebundle_ko.properties +4 -2
  111. package/src/sap/ui/mdc/messagebundle_lt.properties +5 -3
  112. package/src/sap/ui/mdc/messagebundle_lv.properties +5 -3
  113. package/src/sap/ui/mdc/messagebundle_ms.properties +5 -3
  114. package/src/sap/ui/mdc/messagebundle_nl.properties +5 -3
  115. package/src/sap/ui/mdc/messagebundle_no.properties +5 -3
  116. package/src/sap/ui/mdc/messagebundle_pl.properties +5 -3
  117. package/src/sap/ui/mdc/messagebundle_pt.properties +5 -3
  118. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +5 -3
  119. package/src/sap/ui/mdc/messagebundle_ro.properties +5 -3
  120. package/src/sap/ui/mdc/messagebundle_ru.properties +5 -3
  121. package/src/sap/ui/mdc/messagebundle_sh.properties +5 -3
  122. package/src/sap/ui/mdc/messagebundle_sk.properties +5 -3
  123. package/src/sap/ui/mdc/messagebundle_sl.properties +5 -3
  124. package/src/sap/ui/mdc/messagebundle_sv.properties +5 -3
  125. package/src/sap/ui/mdc/messagebundle_th.properties +5 -3
  126. package/src/sap/ui/mdc/messagebundle_tr.properties +5 -3
  127. package/src/sap/ui/mdc/messagebundle_uk.properties +5 -3
  128. package/src/sap/ui/mdc/messagebundle_vi.properties +5 -3
  129. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +5 -3
  130. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +5 -3
  131. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  132. package/src/sap/ui/mdc/mixin/DelegateMixin.js +12 -1
  133. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +29 -3
  134. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  135. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +96 -77
  136. package/src/sap/ui/mdc/odata/TypeUtil.js +1 -1
  137. package/src/sap/ui/mdc/odata/v4/FieldBaseDelegate.js +0 -32
  138. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +3 -0
  139. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +1 -1
  140. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +6 -5
  141. package/src/sap/ui/mdc/p13n/Engine.js +1 -1
  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/FilterPanel.js +1 -1
  145. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +1 -1
  146. package/src/sap/ui/mdc/table/Column.js +5 -2
  147. package/src/sap/ui/mdc/table/ColumnSettings.js +1 -1
  148. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  149. package/src/sap/ui/mdc/table/GridTableType.js +1 -16
  150. package/src/sap/ui/mdc/table/PropertyHelper.js +50 -12
  151. package/src/sap/ui/mdc/table/ResponsiveColumnSettings.js +1 -1
  152. package/src/sap/ui/mdc/table/ResponsiveTableType.js +1 -15
  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 +14 -13
  156. package/src/sap/ui/mdc/table/TreeTableType.js +2 -19
  157. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +34 -2
  158. package/src/sap/ui/mdc/themes/base/FieldBase.less +12 -25
  159. package/src/sap/ui/mdc/util/FilterUtil.js +24 -1
  160. package/src/sap/ui/mdc/util/InfoBar.js +118 -0
  161. package/src/sap/ui/mdc/util/InfoBarRenderer.js +35 -0
  162. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  163. package/src/sap/ui/mdc/util/PropertyHelper.js +41 -41
  164. package/src/sap/ui/mdc/util/TypeUtil.js +3 -1
  165. package/src/sap/ui/mdc/valuehelp/Dialog.js +1 -1
  166. package/src/sap/ui/mdc/valuehelp/Popover.js +1 -1
  167. package/src/sap/ui/mdc/valuehelp/base/Container.js +1 -3
  168. package/src/sap/ui/mdc/valuehelp/base/Content.js +2 -4
  169. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  170. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +1 -1
  171. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +2 -23
  172. package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
  173. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +1 -1
  174. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +1 -1
  175. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +19 -21
  176. package/src/sap/ui/mdc/valuehelp/content/MTable.js +1 -1
  177. package/test/sap/ui/mdc/testutils/opa/field/Actions.js +4 -2
  178. package/test/sap/ui/mdc/testutils/opa/filterfield/Actions.js +4 -2
  179. package/test/sap/ui/mdc/testutils/opa/filterfield/TestObjects.js +0 -11
  180. package/test/sap/ui/mdc/testutils/opa/valueHelp/Assertions.js +16 -0
  181. package/test/sap/ui/mdc/testutils/opa/valueHelp/JSDoc.md +98 -9
  182. package/test/sap/ui/mdc/testutils/opa/valueHelp/TestObjects.js +85 -0
  183. package/test/sap/ui/mdc/testutils/opa/valueHelp/doWait.js +2 -2
  184. package/src/sap/ui/mdc/enum/OutParameterMode.js +0 -39
  185. package/src/sap/ui/mdc/field/BoolFieldHelp.js +0 -437
  186. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +0 -325
  187. package/src/sap/ui/mdc/field/CustomFieldHelp.js +0 -101
  188. package/src/sap/ui/mdc/field/FieldHelpBase.js +0 -1517
  189. package/src/sap/ui/mdc/field/FieldHelpBaseDelegate.js +0 -55
  190. package/src/sap/ui/mdc/field/FieldValueHelp.js +0 -2834
  191. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +0 -525
  192. package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +0 -171
  193. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +0 -359
  194. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +0 -416
  195. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +0 -977
  196. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +0 -329
  197. package/src/sap/ui/mdc/field/InParameter.js +0 -229
  198. package/src/sap/ui/mdc/field/ListFieldHelp.js +0 -620
  199. package/src/sap/ui/mdc/field/OutParameter.js +0 -75
  200. package/src/sap/ui/mdc/field/ValueHelpPanel.control.xml +0 -71
  201. package/src/sap/ui/mdc/field/ValueHelpPanel.js +0 -525
  202. package/src/sap/ui/mdc/odata/v4/FieldValueHelpDelegate.js +0 -125
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.mdc",
3
- "version": "1.110.0",
3
+ "version": "1.111.0",
4
4
  "description": "OpenUI5 UI Library sap.ui.mdc",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,8 +14,8 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.m": "1.110.0",
18
- "@openui5/sap.ui.core": "1.110.0",
19
- "@openui5/sap.ui.layout": "1.110.0"
17
+ "@openui5/sap.m": "1.111.0",
18
+ "@openui5/sap.ui.core": "1.111.0",
19
+ "@openui5/sap.ui.layout": "1.111.0"
20
20
  }
21
21
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.110.0</version>
9
+ <version>1.111.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.ui.mdc</documentation>
12
12
 
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @class The column for the metadata driven table, that hold the template to be shown when the rows has data.
32
32
  * @extends sap.m.OverflowToolbar
33
33
  * @author SAP SE
34
- * @version 1.110.0
34
+ * @version 1.111.0
35
35
  * @constructor
36
36
  * @private
37
37
  * @since 1.58
@@ -85,7 +85,6 @@ sap.ui.define(['sap/ui/mdc/BaseDelegate', 'sap/ui/core/library'], function (Base
85
85
  *
86
86
  * @param {sap.ui.mdc.Control} oControl Instance of a <code>sap.ui.mdc.Control</code>
87
87
  * @param {Object} oState The theoretical external state representation of an MDC control. The representation of this format is similar as processed by {@link sap.ui.mdc.p13n.StateUtil StateUtil}
88
- *
89
88
  * @returns {Object} An object that must contain at least the <code>validation</code> attribute {@link sap.ui.core.MessageType MessageType}.
90
89
  * If <code>warning</code> or <code>error</code> state types have been provided, the <code>message</code> is shown in addition.
91
90
  */
@@ -109,8 +108,27 @@ sap.ui.define(['sap/ui/mdc/BaseDelegate', 'sap/ui/core/library'], function (Base
109
108
  */
110
109
  onAfterXMLChangeProcessing: function(oControl, mPropertyBag) {
111
110
  //Neccessary cleanups can be implemented here
112
- }
111
+ },
113
112
 
113
+ /**
114
+ * A validator to evaluate the state of a MDC control.
115
+ *
116
+ * @param {Object<sap.ui.mdc.Control>} oControl Instance of a MDC control
117
+ * @param {map} [mValidation] Object Describing the validation result
118
+
119
+ */
120
+ determineValidationState: function(oControl) {
121
+ return oControl.checkValidationState ? oControl.checkValidationState() : -1;
122
+ },
123
+
124
+ /**
125
+ * Visualizes the validation state of a MDC control.
126
+ *
127
+ * @param {Object<sap.ui.mdc.Control>} oControl Instance of a MDC control
128
+ * @returns {map} mValidation Describes the validation result.
129
+ */
130
+ visualizeValidationState: function(oControl, mValidation) {
131
+ }
114
132
  });
115
133
 
116
134
  return AggregationBaseDelegate;
@@ -24,7 +24,11 @@ sap.ui.define([
24
24
  "sap/ui/base/ManagedObjectObserver",
25
25
  "sap/ui/mdc/chart/DrillBreadcrumbs",
26
26
  "sap/ui/mdc/actiontoolbar/ActionToolbarAction",
27
- "sap/ui/core/library"
27
+ "sap/ui/core/library",
28
+ "sap/ui/events/KeyCodes",
29
+ "sap/ui/mdc/util/InfoBar",
30
+ "sap/m/Label",
31
+ "sap/ui/core/format/ListFormat"
28
32
  ],
29
33
  function (
30
34
  Core,
@@ -46,7 +50,11 @@ sap.ui.define([
46
50
  ManagedObjectObserver,
47
51
  Breadcrumbs,
48
52
  ActionToolbarAction,
49
- coreLibrary
53
+ coreLibrary,
54
+ KeyCodes,
55
+ InfoBar,
56
+ Label,
57
+ ListFormat
50
58
  ) {
51
59
  "use strict";
52
60
 
@@ -61,7 +69,7 @@ sap.ui.define([
61
69
  * @class The Chart control creates a chart based on metadata and the configuration specified.
62
70
  * @extends sap.ui.mdc.Control
63
71
  * @author SAP SE
64
- * @version 1.110.0
72
+ * @version 1.111.0
65
73
  * @constructor
66
74
  * @experimental As of version 1.88
67
75
  * @private
@@ -252,6 +260,17 @@ sap.ui.define([
252
260
  type: "sap.ui.core.TitleLevel",
253
261
  group: "Appearance",
254
262
  defaultValue: TitleLevel.Auto
263
+ },
264
+ /**
265
+ * Determines whether the header text is shown in the chart. Regardless of its value, the given header text is used to label the chart
266
+ * correctly for accessibility purposes.
267
+ *
268
+ * @since 1.111
269
+ */
270
+ headerVisible : {
271
+ type: "boolean",
272
+ group: "Misc",
273
+ defaultValue: true
255
274
  }
256
275
  },
257
276
  aggregations: {
@@ -294,6 +313,11 @@ sap.ui.define([
294
313
  type: "sap.ui.mdc.chart.SelectionDetailsActions",
295
314
  multiple: false
296
315
  },
316
+ _infoToolbar: {
317
+ type: "sap.ui.mdc.util.InfoBar",
318
+ multiple: false,
319
+ visibility: "hidden"
320
+ },
297
321
  /**
298
322
  * Reference to a {@link sap.ui.fl.variants.VariantManagement} control for the chart.
299
323
  */
@@ -466,6 +490,8 @@ sap.ui.define([
466
490
  oP13nFilter.setFilterConditions(mConditions);
467
491
  }
468
492
 
493
+ this._updateInfoToolbar();
494
+
469
495
  return this;
470
496
  };
471
497
 
@@ -554,6 +580,11 @@ sap.ui.define([
554
580
  }
555
581
 
556
582
  this.setAggregation("_innerChart", oInnerChart);
583
+
584
+ if (this.getP13nMode().includes("Filter")){
585
+ this._initInfoToolbar();
586
+ }
587
+
557
588
  this._bInnerChartReady = true;
558
589
  this._fnResolveInitialized();
559
590
  this.invalidate();
@@ -566,6 +597,60 @@ sap.ui.define([
566
597
  this._getToolbar().createToolbarContent(this);
567
598
  };
568
599
 
600
+ Chart.prototype._initInfoToolbar = function() {
601
+ this.setAggregation("_infoToolbar", new InfoBar(this.getId() + "--infoToolbar", {infoText: this._getFilterInfoText(),
602
+ press: function() {
603
+ this.finalizePropertyHelper().then(function(){
604
+ return ChartSettings.showPanel(this, "Filter");
605
+ }.bind(this)).then(function(oP13nDialog) {
606
+
607
+ oP13nDialog.attachEventOnce("afterClose", function() {
608
+
609
+ var aConditions = this.getFilterConditions();
610
+ var bNoConditions = !Object.keys(aConditions).find(function(oKey) {
611
+ return aConditions[oKey] && aConditions[oKey].length > 0;
612
+ });
613
+
614
+ if (bNoConditions && this.getAggregation("_toolbar")) {
615
+ this.getAggregation("_toolbar").getSettingsButton().focus();
616
+ }
617
+
618
+ }.bind(this));
619
+ }.bind(this));
620
+ }.bind(this)}));
621
+
622
+ if (this.getDomRef()) {
623
+ this.getDomRef().setAttribute("aria-labelledby", this.getAggregation("_infoToolbar").getACCTextId());
624
+ }
625
+ };
626
+
627
+ Chart.prototype._updateInfoToolbar = function() {
628
+ if (this.getP13nMode().includes("Filter") && this.getAggregation("_infoToolbar")){
629
+ this.getAggregation("_infoToolbar").setInfoText(this._getFilterInfoText());
630
+ }
631
+ };
632
+
633
+ Chart.prototype._getFilterInfoText = function() {
634
+ if (this.getInbuiltFilter()) {
635
+ var sText;
636
+ var aFilterNames = this._getLabelsFromFilterConditions();
637
+ var oListFormat = ListFormat.getInstance();
638
+
639
+ if (aFilterNames.length > 0) {
640
+
641
+ if (aFilterNames.length > 1) {
642
+ sText = MDCRb.getText("chart.MULTIPLE_FILTERS_ACTIVE", [aFilterNames.length, oListFormat.format(aFilterNames)]);
643
+ } else {
644
+ sText = MDCRb.getText("chart.ONE_FILTER_ACTIVE", aFilterNames[0]);
645
+ }
646
+ }
647
+
648
+ return sText;
649
+ }
650
+
651
+ return undefined;
652
+ };
653
+
569
654
  /**
570
655
  * Creates the content for the inner chart from properties.
571
656
  * The properties are given via the PropertyHelper which is initialized here.
@@ -1063,6 +1148,14 @@ sap.ui.define([
1063
1148
  return this;
1064
1149
  };
1065
1150
 
1151
+ Chart.prototype.setHeaderVisible = function(bVisible) {
1152
+ this.setProperty("headerVisible", bVisible, true);
1153
+ if (this.getAggregation("_toolbar")) {
1154
+ this.getAggregation("_toolbar").setHeaderVisible(bVisible);
1155
+ }
1156
+ return this;
1157
+ };
1158
+
1066
1159
  /**
1067
1160
  * Gets the managed object model.
1068
1161
  * @returns {sap.ui.model.base.ManagedObjectModel} the managed object model
@@ -1285,5 +1378,30 @@ sap.ui.define([
1285
1378
  return this;
1286
1379
  };
1287
1380
 
1381
+ Chart.prototype.getVariant = function() {
1382
+ var oToolbar = this.getAggregation("_toolbar");
1383
+ return oToolbar ? oToolbar._getVariantReference() : this.getAggregation("variant");
1384
+ };
1385
+
1386
+ Chart.prototype.onkeydown = function(oEvent) {
1387
+ if (oEvent.isMarked()) {
1388
+ return;
1389
+ }
1390
+
1391
+ if ((oEvent.metaKey || oEvent.ctrlKey) && oEvent.which === KeyCodes.COMMA) {
1392
+ // CTRL (or Cmd) + COMMA key combination to open the table personalisation dialog
1393
+ var oSettingsBtn = this._getToolbar()._oSettingsBtn;
1394
+ if (oSettingsBtn && oSettingsBtn.getVisible() && oSettingsBtn.getEnabled()) {
1395
+ oSettingsBtn.firePress();
1396
+
1397
+ // Mark the event to ensure that parent handlers (e.g. FLP) can skip their processing if needed. Also prevent potential browser defaults
1398
+ // (e.g. Cmd+, opens browser settings on Mac).
1399
+ oEvent.setMarked();
1400
+ oEvent.preventDefault();
1401
+ }
1402
+ }
1403
+
1404
+ };
1405
+
1288
1406
  return Chart;
1289
1407
  });
@@ -42,9 +42,12 @@ sap.ui.define(['./library'],
42
42
  oRm.style("min-height", oMDCChart.getMinHeight());
43
43
  oRm.style("min-width", oMDCChart.getMinWidth());
44
44
  oRm.openEnd();
45
- this.renderToolbar(oRm, oMDCChart.getAggregation("_toolbar"));
45
+ oRm.openStart("div");
46
+ oRm.openEnd();
47
+ this.renderToolbar(oRm, oMDCChart.getAggregation("_toolbar"));
48
+ this.renderInfoToolbar(oRm, oMDCChart.getAggregation("_infoToolbar"));
49
+ oRm.close("div");
46
50
  this.renderBreadcrumbs(oRm, oMDCChart.getAggregation("_breadcrumbs"));
47
- //this.renderInnerChart(oRm, oMDCChart._getInnerChart());
48
51
  this.renderInnerStructure(oRm, oMDCChart.getAggregation("_innerChart"));
49
52
  oRm.close("div");
50
53
  };
@@ -77,12 +80,12 @@ sap.ui.define(['./library'],
77
80
  }
78
81
  };
79
82
 
80
- ChartRenderer.renderInnerChart = function(oRm, oInnerChart) {
81
-
82
- if (oInnerChart) {
83
- oRm.renderControl(oInnerChart);
83
+ ChartRenderer.renderInfoToolbar = function(oRm, oInfoToolbar) {
84
+ if (oInfoToolbar) {
85
+ oRm.renderControl(oInfoToolbar);
84
86
  }
85
87
  };
88
+
86
89
  ChartRenderer.renderInnerStructure = function (oRm, oInnerStructure){
87
90
  oRm.renderControl(oInnerStructure);
88
91
  };
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @extends sap.ui.core.Control
21
21
  * @abstract
22
22
  * @author SAP SE
23
- * @version 1.110.0
23
+ * @version 1.111.0
24
24
  * @alias sap.ui.mdc.Control
25
25
  *
26
26
  * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitControlDelegate as awaitControlDelegate
@@ -20,7 +20,7 @@ sap.ui.define([
20
20
  * @extends sap.ui.core.Element
21
21
  * @abstract
22
22
  * @author SAP SE
23
- * @version 1.110.0
23
+ * @version 1.111.0
24
24
  * @alias sap.ui.mdc.Element
25
25
  *
26
26
  * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitControlDelegate as awaitControlDelegate
@@ -42,12 +42,12 @@ sap.ui.define([
42
42
  * @implements sap.ui.core.IFormContent
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.110.0
45
+ * @version 1.111.0
46
46
  *
47
47
  * @constructor
48
48
  * @alias sap.ui.mdc.Field
49
49
  * @author SAP SE
50
- * @version 1.110.0
50
+ * @version 1.111.0
51
51
  * @since 1.54.0
52
52
  * @experimental As of version 1.54
53
53
  *
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * The metadata information is provided via the {@link sap.ui.mdc.FilterBarDelegate FilterBarDelegate} implementation. This implementation has to be provided by the application.
22
22
  * @extends sap.ui.mdc.filterbar.FilterBarBase
23
23
  * @author SAP SE
24
- * @version 1.110.0
24
+ * @version 1.111.0
25
25
  * @constructor
26
26
  * @experimental As of version 1.61
27
27
  * @private
@@ -8,7 +8,7 @@
8
8
  // Delegate class used to help create content in the filterbar and fill relevant metadata
9
9
  // ---------------------------------------------------------------------------------------
10
10
  // ---------------------------------------------------------------------------------------
11
- sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate"], function(AggregationBaseDelegate) {
11
+ sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate", "sap/ui/mdc/enum/FilterBarValidationStatus"], function(AggregationBaseDelegate, FilterBarValidationStatus) {
12
12
  "use strict";
13
13
  /**
14
14
  * @class Base Delegate for {@link sap.ui.mdc.FilterBar FilterBar}. Extend this object in your project to use all functionalites of the {@link sap.ui.mdc.FilterBar FilterBar}.
@@ -39,7 +39,10 @@ sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate"], function(AggregationBaseDe
39
39
  * This method always requires a return value once it has been called. If an item for a given property <code>sPropertyName</code>
40
40
  * has already been created, it is required to either return the existing instance or create a new instance.
41
41
  *
42
- * @public
42
+ * @private
43
+ * @experimental
44
+ * @ui5-restricted sap.fe
45
+ * @MDC_PUBLIC_CANDIDATE
43
46
  */
44
47
  FilterBarDelegate.addItem = function(sPropertyName, oControl, mPropertyBag) {
45
48
  return AggregationBaseDelegate.addItem(sPropertyName, oControl, mPropertyBag);
@@ -58,7 +61,10 @@ sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate"], function(AggregationBaseDe
58
61
  * @param {Object} [mPropertyBag] Instance of property bag from SAPUI5 flexibility
59
62
  *
60
63
  * @returns {Promise} Promise that resolved with <code>true</code>, <code>false</code> to allow/prevent default behavior of the change
61
- * @public
64
+ * @private
65
+ * @experimental
66
+ * @ui5-restricted sap.fe
67
+ * @MDC_PUBLIC_CANDIDATE
62
68
  */
63
69
  FilterBarDelegate.removeItem = function(oItem, oControl, mPropertyBag) {
64
70
  // return true within the Promise for default behavior
@@ -73,6 +79,11 @@ sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate"], function(AggregationBaseDe
73
79
  * @param {sap.ui.mdc.Control} oControl - The instance of a filter bar
74
80
  * @param {Object} mPropertyBag Instance of a property bag from the SAPUI5 flexibility change API
75
81
  * @returns {Promise} Promise that is resolved once the propertyInfo property has been updated
82
+ *
83
+ * @private
84
+ * @experimental
85
+ * @ui5-restricted sap.fe
86
+ * @MDC_PUBLIC_CANDIDATE
76
87
  */
77
88
  FilterBarDelegate.addCondition = function(sPropertyName, oControl, mPropertyBag) {
78
89
  return Promise.resolve();
@@ -86,6 +97,11 @@ sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate"], function(AggregationBaseDe
86
97
  * @param {sap.ui.mdc.Control} oControl - The instance of a filter bar
87
98
  * @param {Object} mPropertyBag Instance of a property bag from the SAPUI5 flexibility change API
88
99
  * @returns {Promise} Promise that is resolved once the propertyInfo property has been updated
100
+ *
101
+ * @private
102
+ * @experimental
103
+ * @ui5-restricted sap.fe
104
+ * @MDC_PUBLIC_CANDIDATE
89
105
  */
90
106
  FilterBarDelegate.removeCondition = function(sPropertyName, oControl, mPropertyBag) {
91
107
  return Promise.resolve();
@@ -123,6 +139,10 @@ sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate"], function(AggregationBaseDe
123
139
  * @property {int} maxConditions
124
140
  * Defines if the filter supports multiple values <code>-1</code> or single values <code>1</code>
125
141
  *
142
+ * @private
143
+ * @experimental
144
+ * @ui5-restricted sap.fe
145
+ * @MDC_PUBLIC_CANDIDATE
126
146
  */
127
147
 
128
148
  /**
@@ -130,6 +150,11 @@ sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate"], function(AggregationBaseDe
130
150
  *
131
151
  * @param {sap.ui.mdc.Control} oControl Instance of an <code>sap.ui.mdc.Control</code>
132
152
  * @returns {Promise<sap.ui.mdc.filterbar.PropertyInfo[]>} Once resolved, an array of property info objects is returned
153
+ *
154
+ * @private
155
+ * @experimental
156
+ * @ui5-restricted sap.fe
157
+ * @MDC_PUBLIC_CANDIDATE
133
158
  */
134
159
  FilterBarDelegate.fetchProperties = function(oControl) {
135
160
  return AggregationBaseDelegate.fetchProperties(oControl);
@@ -139,11 +164,78 @@ sap.ui.define(["sap/ui/mdc/AggregationBaseDelegate"], function(AggregationBaseDe
139
164
  * This method is called when the 'Clear' button was pressed.
140
165
  *
141
166
  * @param {sap.ui.mdc.Control} oControl - The instance of a filter bar
142
- * @returns {Promise} Promise that is resolved once the action completes.
167
+ * @returns {Promise} Promise that is resolved once the action completes
168
+ *
169
+ * @private
170
+ * @experimental
171
+ * @ui5-restricted sap.fe
172
+ * @MDC_PUBLIC_CANDIDATE
143
173
  */
144
174
  FilterBarDelegate.clearFilters = function(oControl) {
145
175
  return Promise.resolve();
146
176
  };
147
177
 
178
+ /**
179
+ * A validator to evaluate the filter bar state.
180
+ *
181
+ * @param {sap.ui.mdc.FilterBar} oFilterBar Instance of a <code>sap.ui.mdc.FilterBar</code>
182
+ * @param {map} [mValidation] Object describing the validation result. This object is only provided when called from the {@link sap.ui.mdc.FilterBar FilterBar}
183
+ * @param {string} [mValidation.status] Status of the validation {@link sap.ui.mdc.enum.FilterBarValidationStatus}
184
+ * @returns {sap.ui.mdc.enum.FilterBarValidationStatus} The inner filter bar state
185
+ *
186
+ * @private
187
+ * @experimental
188
+ * @ui5-restricted sap.fe
189
+ * @MDC_PUBLIC_CANDIDATE
190
+ */
191
+ FilterBarDelegate.determineValidationState = function(oFilterBar) {
192
+ return oFilterBar.checkFilters();
193
+ };
194
+
195
+ /**
196
+ * Visualizes the filter bar validation state.
197
+ *
198
+ * @param {sap.ui.mdc.FilterBar} oFilterBar Instance of a <code>sap.ui.mdc.FilterBar</code>
199
+ * @param {map} mValidation Describes the validation result. This object is only provided when called from the {@link sap.ui.mdc.FilterBar FilterBar}
200
+ * @param {sap.ui.mdc.enum.FilterBarValidationStatus} mValidation.status of the validation as returned via {@link sap.ui.mdc.filterbar.FilterBarBase#checkValidationState checkValidationState}
201
+ *
202
+ * @private
203
+ * @experimental
204
+ * @ui5-restricted sap.fe
205
+ * @MDC_PUBLIC_CANDIDATE
206
+ */
207
+ FilterBarDelegate.visualizeValidationState = function(oFilterBar, mValidation) {
208
+ var sErrorMessage;
209
+
210
+ if (mValidation.status === FilterBarValidationStatus.NoError) {
211
+ return;
212
+ }
213
+
214
+ if (mValidation.status === FilterBarValidationStatus.RequiredHasNoValue) {
215
+ sErrorMessage = oFilterBar.getText("filterbar.REQUIRED_CONDITION_MISSING");
216
+ } else if (mValidation.status === FilterBarValidationStatus.FieldInErrorState ) {
217
+ sErrorMessage = oFilterBar.getText("filterbar.VALIDATION_ERROR");
218
+ }
219
+
220
+ if (oFilterBar.getShowMessages() && !oFilterBar._isLiveMode()) {
221
+
222
+ sap.ui.require(["sap/m/MessageBox", "sap/base/Log"], function (MessageBox, Log) {
223
+ try {
224
+
225
+ if (oFilterBar._bIsBeingDestroyed) {
226
+ return;
227
+ }
228
+ MessageBox.error(sErrorMessage, {
229
+ styleClass: (this.$() && this.$().closest(".sapUiSizeCompact").length) ? "sapUiSizeCompact" : "",
230
+ onClose: oFilterBar.setFocusOnFirstErroneousField.bind(oFilterBar)
231
+ });
232
+ } catch (x) {
233
+ Log.error(x.message);
234
+ }
235
+ });
236
+ }
237
+ };
238
+
239
+
148
240
  return FilterBarDelegate;
149
241
  });
@@ -33,12 +33,12 @@ sap.ui.define([
33
33
  * @extends sap.ui.mdc.field.FieldBase
34
34
  *
35
35
  * @author SAP SE
36
- * @version 1.110.0
36
+ * @version 1.111.0
37
37
  *
38
38
  * @constructor
39
39
  * @alias sap.ui.mdc.FilterField
40
40
  * @author SAP SE
41
- * @version 1.110.0
41
+ * @version 1.111.0
42
42
  * @since 1.48.0
43
43
  *
44
44
  * @experimental As of version 1.48
@@ -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.110.0
48
+ * @version 1.111.0
49
49
  *
50
50
  * @constructor
51
51
  * @alias sap.ui.mdc.Link
@@ -136,6 +136,9 @@ sap.ui.define([
136
136
  */
137
137
  Link.prototype.isTriggerable = function() {
138
138
  return this.retrieveLinkType().then(function(oLinkTypeObject) {
139
+ if (!oLinkTypeObject) {
140
+ return false;
141
+ }
139
142
  var oRuntimeLinkTypePromise = oLinkTypeObject.runtimeType;
140
143
  var oInitialLinkType = oLinkTypeObject.initialType ? oLinkTypeObject.initialType : oLinkTypeObject;
141
144
 
@@ -188,6 +191,10 @@ sap.ui.define([
188
191
  */
189
192
  Link.prototype._retrieveDirectLinkItem = function() {
190
193
  return this.retrieveLinkType().then(function(oLinkTypeObject) {
194
+ if (!oLinkTypeObject) {
195
+ return null;
196
+ }
197
+
191
198
  if (this._linkTypeHasDirectLink(this._oLinkType)) {
192
199
  return this._oLinkType.directLink;
193
200
  }
@@ -515,7 +522,7 @@ sap.ui.define([
515
522
  if (this.awaitControlDelegate()) {
516
523
  return this.awaitControlDelegate().then(function() {
517
524
  var oPayload = Object.assign({}, this.getPayload());
518
- return this.getControlDelegate().fetchLinkType(oPayload, this);
525
+ return this._bIsBeingDestroyed ? Promise.resolve() : this.getControlDelegate().fetchLinkType(oPayload, this);
519
526
  }.bind(this));
520
527
  }
521
528
  SapBaseLog.error("mdc.Link retrieveLinkType: control delegate is not set - could not load LinkType from delegate.");
@@ -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.110.0
38
+ * @version 1.111.0
39
39
  * @since 1.93.0
40
40
  *
41
41
  * @private