@openui5/sap.ui.mdc 1.99.0 → 1.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/THIRDPARTY.txt +2 -2
  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 +50 -32
  6. package/src/sap/ui/mdc/ChartDelegate.js +66 -21
  7. package/src/sap/ui/mdc/ChartRenderer.js +1 -1
  8. package/src/sap/ui/mdc/Control.js +11 -6
  9. package/src/sap/ui/mdc/Element.js +10 -6
  10. package/src/sap/ui/mdc/Field.js +19 -4
  11. package/src/sap/ui/mdc/FilterBar.js +1 -1
  12. package/src/sap/ui/mdc/FilterBarDelegate.js +26 -0
  13. package/src/sap/ui/mdc/FilterField.js +41 -3
  14. package/src/sap/ui/mdc/Link.js +3 -3
  15. package/src/sap/ui/mdc/MultiValueField.js +11 -1
  16. package/src/sap/ui/mdc/Table.js +73 -39
  17. package/src/sap/ui/mdc/TableDelegate.js +28 -1
  18. package/src/sap/ui/mdc/ValueHelp.js +8 -3
  19. package/src/sap/ui/mdc/ValueHelpDelegate.js +2 -1
  20. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
  21. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarActionRenderer.js +1 -1
  22. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
  23. package/src/sap/ui/mdc/chart/ChartToolbar.js +13 -6
  24. package/src/sap/ui/mdc/chart/DrillBreadcrumbs.js +7 -7
  25. package/src/sap/ui/mdc/chart/DrillStackHandler.js +6 -6
  26. package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
  27. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  28. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  29. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  30. package/src/sap/ui/mdc/condition/FilterConverter.js +4 -2
  31. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +133 -25
  32. package/src/sap/ui/mdc/condition/Operator.js +4 -2
  33. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +78 -24
  34. package/src/sap/ui/mdc/condition/RangeOperator.js +5 -5
  35. package/src/sap/ui/mdc/designtime/Util.js +63 -0
  36. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +23 -30
  37. package/src/sap/ui/mdc/designtime/chart/Chart.designtime.js +3 -0
  38. package/src/sap/ui/mdc/designtime/link/PanelItem.designtime.js +3 -1
  39. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +39 -52
  40. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  41. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  42. package/src/sap/ui/mdc/field/ConditionType.js +15 -4
  43. package/src/sap/ui/mdc/field/ConditionsType.js +2 -1
  44. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -1
  45. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  46. package/src/sap/ui/mdc/field/DefineConditionPanel.js +16 -5
  47. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +76 -19
  48. package/src/sap/ui/mdc/field/FieldBase.js +62 -11
  49. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +1 -1
  50. package/src/sap/ui/mdc/field/FieldHelpBase.js +1 -1
  51. package/src/sap/ui/mdc/field/FieldInfoBase.js +2 -1
  52. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  53. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  54. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  55. package/src/sap/ui/mdc/field/FieldValueHelp.js +4 -1
  56. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -1
  57. package/src/sap/ui/mdc/field/FieldValueHelpDelegate.js +1 -1
  58. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +5 -4
  59. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +5 -3
  60. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +1 -1
  61. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +7 -7
  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/TokenDisplay.js +1 -1
  68. package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
  69. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -1
  70. package/src/sap/ui/mdc/field/content/ContentFactory.js +5 -1
  71. package/src/sap/ui/mdc/field/content/DateContent.js +27 -19
  72. package/src/sap/ui/mdc/field/content/DateTimeContent.js +0 -6
  73. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +76 -208
  74. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +27 -2
  75. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +127 -57
  76. package/src/sap/ui/mdc/filterbar/p13n/FilterColumnLayout.js +2 -2
  77. package/src/sap/ui/mdc/filterbar/p13n/GroupContainer.js +7 -3
  78. package/src/sap/ui/mdc/filterbar/p13n/TableContainer.js +52 -14
  79. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +37 -19
  80. package/src/sap/ui/mdc/filterbar/vh/FilterContainer.js +1 -1
  81. package/src/sap/ui/mdc/flexibility/AggregationConfigFlex.js +48 -31
  82. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  83. package/src/sap/ui/mdc/flexibility/ChartItemFlex.js +36 -0
  84. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +47 -10
  85. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  86. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  87. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +0 -1
  88. package/src/sap/ui/mdc/flexibility/PropertyInfoFlex.js +2 -85
  89. package/src/sap/ui/mdc/library.js +11 -4
  90. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  91. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  92. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  93. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  94. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  95. package/src/sap/ui/mdc/link/Factory.js +1 -1
  96. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  97. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  98. package/src/sap/ui/mdc/link/Panel.js +1 -1
  99. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  100. package/src/sap/ui/mdc/link/PanelListItem.js +1 -1
  101. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  102. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  103. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  104. package/src/sap/ui/mdc/messagebundle.properties +2 -1
  105. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +20 -19
  106. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -141
  107. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -9
  108. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  109. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +348 -0
  110. package/src/sap/ui/mdc/odata/TypeUtil.js +1 -1
  111. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelper.js +70 -3
  112. package/src/sap/ui/mdc/odata/v4/FilterBarDelegate.js +116 -20
  113. package/src/sap/ui/mdc/odata/v4/ODataMetaModelUtil.js +2 -2
  114. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +11 -33
  115. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +2 -4
  116. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +1 -1
  117. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +281 -263
  118. package/src/sap/ui/mdc/p13n/AdaptationProvider.js +1 -1
  119. package/src/sap/ui/mdc/p13n/Engine.js +21 -18
  120. package/src/sap/ui/mdc/p13n/FlexUtil.js +0 -5
  121. package/src/sap/ui/mdc/p13n/PropertyHelper.js +2 -2
  122. package/src/sap/ui/mdc/p13n/StateUtil.js +4 -0
  123. package/src/sap/ui/mdc/p13n/UIManager.js +16 -13
  124. package/src/sap/ui/mdc/p13n/modification/ModificationHandler.js +18 -14
  125. package/src/sap/ui/mdc/p13n/modules/DefaultProviderRegistry.js +1 -1
  126. package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +6 -6
  127. package/src/sap/ui/mdc/p13n/panels/AdaptFiltersPanel.js +49 -27
  128. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +4 -3
  129. package/src/sap/ui/mdc/p13n/panels/FilterPanel.js +136 -0
  130. package/src/sap/ui/mdc/p13n/panels/GroupView.js +53 -28
  131. package/src/sap/ui/mdc/p13n/panels/LinkSelectionPanel.js +54 -18
  132. package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +4 -7
  133. package/src/sap/ui/mdc/p13n/subcontroller/AdaptFiltersController.js +1 -2
  134. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +1 -1
  135. package/src/sap/ui/mdc/p13n/subcontroller/FilterController.js +8 -4
  136. package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +1 -0
  137. package/src/sap/ui/mdc/p13n/subcontroller/SortController.js +2 -2
  138. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  139. package/src/sap/ui/mdc/table/GridTableType.js +75 -27
  140. package/src/sap/ui/mdc/table/PropertyHelper.js +20 -13
  141. package/src/sap/ui/mdc/table/ResponsiveTableType.js +86 -13
  142. package/src/sap/ui/mdc/table/RowActionItem.js +119 -0
  143. package/src/sap/ui/mdc/table/RowSettings.js +42 -1
  144. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +2 -2
  145. package/src/sap/ui/mdc/themes/base/Chart.less +2 -0
  146. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +1 -0
  147. package/src/sap/ui/mdc/util/DateUtil.js +32 -7
  148. package/src/sap/ui/mdc/util/FilterUtil.js +1 -1
  149. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  150. package/src/sap/ui/mdc/util/PropertyHelper.js +201 -76
  151. package/src/sap/ui/mdc/util/TypeUtil.js +1 -1
  152. package/src/sap/ui/mdc/valuehelp/Dialog.js +1 -1
  153. package/src/sap/ui/mdc/valuehelp/Popover.js +5 -3
  154. package/src/sap/ui/mdc/valuehelp/base/Container.js +1 -1
  155. package/src/sap/ui/mdc/valuehelp/base/Content.js +1 -1
  156. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  157. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +4 -4
  158. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +1 -1
  159. package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
  160. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +1 -1
  161. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +13 -10
  162. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +4 -10
  163. package/src/sap/ui/mdc/valuehelp/content/MTable.js +6 -4
  164. package/test/sap/ui/mdc/testutils/opa/chart/TestObjects.js +2 -0
  165. package/test/sap/ui/mdc/testutils/opa/filterbar/TestObjects.js +0 -1
  166. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +8 -6
  167. package/src/sap/ui/mdc/filterbar/vh/GenericFilterBarDelegate.js +0 -150
  168. package/src/sap/ui/mdc/p13n/panels/BasePanel.js +0 -721
  169. package/src/sap/ui/mdc/p13n/panels/ListView.js +0 -408
  170. package/src/sap/ui/mdc/p13n/panels/SelectionPanel.js +0 -92
  171. package/src/sap/ui/mdc/p13n/panels/SortPanel.js +0 -150
  172. package/src/sap/ui/mdc/ui/Container.js +0 -240
  173. package/src/sap/ui/mdc/ui/ContainerItem.js +0 -79
@@ -22,7 +22,7 @@ sap.ui.define([
22
22
  var AggregationConfigFlex = {};
23
23
 
24
24
  var fConfigModified = function(oControl) {
25
- if (!oControl._bWaitForModificationChanges) {
25
+ if (!oControl._bWaitForModificationChanges && oControl.isA) {
26
26
  oControl._bWaitForModificationChanges = true;
27
27
  Engine.getInstance().waitForChanges(oControl).then(function() {
28
28
  if (oControl._onModifications instanceof Function) {
@@ -33,6 +33,19 @@ sap.ui.define([
33
33
  }
34
34
  };
35
35
 
36
+ var fnQueueChange = function(oControl, fTask) {
37
+ var fCleanupPromiseQueue = function(pOriginalPromise) {
38
+ if (oControl._pQueue === pOriginalPromise){
39
+ delete oControl._pQueue;
40
+ }
41
+ };
42
+
43
+ oControl._pQueue = oControl._pQueue instanceof Promise ? oControl._pQueue.then(fTask) : fTask();
44
+ oControl._pQueue.then(fCleanupPromiseQueue.bind(null, oControl._pQueue));
45
+
46
+ return oControl._pQueue;
47
+ };
48
+
36
49
  /**
37
50
  * Creates a changehandler specific to the provided aggregation and property name,
38
51
  * to enhance the xConfig object for a given mdc control instance.
@@ -58,39 +71,43 @@ sap.ui.define([
58
71
  "changeHandler": {
59
72
  applyChange: function (oChange, oControl, mPropertyBag) {
60
73
 
61
- return Engine.getInstance().readXConfig(oControl, {
62
- propertyBag: mPropertyBag
63
- })
64
- .then(function(oPriorAggregationConfig) {
65
- var sOldValue = null;
66
-
67
- if (oPriorAggregationConfig
68
- && oPriorAggregationConfig.aggregations
69
- && oPriorAggregationConfig.aggregations[sAffectedAggregation]
70
- && oPriorAggregationConfig.aggregations[sAffectedAggregation][oChange.getContent().name]
71
- && oPriorAggregationConfig.aggregations[sAffectedAggregation][oChange.getContent().name][sAffectedProperty]
72
- ){
73
- sOldValue = oPriorAggregationConfig.aggregations[sAffectedAggregation][oChange.getContent().name][sAffectedProperty];
74
- }
75
-
76
- oChange.setRevertData({
77
- name: oChange.getContent().name,
78
- value: sOldValue
79
- });
80
-
81
- return Engine.getInstance().enhanceXConfig(oControl, {
82
- controlMeta: {
83
- aggregation: sAffectedAggregation,
84
- property: sAffectedProperty
85
- },
86
- name: oChange.getContent().name,
87
- value: oChange.getContent().value,
74
+ return fnQueueChange(oControl, function(){
75
+ return Engine.getInstance().readXConfig(oControl, {
88
76
  propertyBag: mPropertyBag
77
+ })
78
+ .then(function(oPriorAggregationConfig) {
79
+ var sOldValue = null;
80
+
81
+ if (oPriorAggregationConfig
82
+ && oPriorAggregationConfig.aggregations
83
+ && oPriorAggregationConfig.aggregations[sAffectedAggregation]
84
+ && oPriorAggregationConfig.aggregations[sAffectedAggregation][oChange.getContent().name]
85
+ && oPriorAggregationConfig.aggregations[sAffectedAggregation][oChange.getContent().name][sAffectedProperty]
86
+ ){
87
+ sOldValue = oPriorAggregationConfig.aggregations[sAffectedAggregation][oChange.getContent().name][sAffectedProperty];
88
+ }
89
+
90
+ oChange.setRevertData({
91
+ name: oChange.getContent().name,
92
+ value: sOldValue
93
+ });
94
+
95
+ return Engine.getInstance().enhanceXConfig(oControl, {
96
+ controlMeta: {
97
+ aggregation: sAffectedAggregation,
98
+ property: sAffectedProperty
99
+ },
100
+ name: oChange.getContent().name,
101
+ value: oChange.getContent().value,
102
+ propertyBag: mPropertyBag
103
+ });
104
+ })
105
+ .then(function() {
106
+ fConfigModified(oControl);
89
107
  });
90
- })
91
- .then(function() {
92
- fConfigModified(oControl);
108
+
93
109
  });
110
+
94
111
  },
95
112
  completeChangeContent: function (oChange, mChangeSpecificInfo, mPropertyBag) {
96
113
  // Not used, but needs to be there
@@ -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.99.0
15
+ * @version 1.100.0
16
16
  */
17
17
  return {
18
18
  addItem: ChartItemFlex.addItem,
@@ -11,8 +11,24 @@ sap.ui.define([
11
11
 
12
12
  var oChartItemFlex = Object.assign({}, ItemBaseFlex);
13
13
 
14
+ /* Disabled until clarified with flex
15
+ var fnQueueChange = function(oControl, fTask) {
16
+ var fCleanupPromiseQueue = function(pOriginalPromise) {
17
+ if (oControl._pQueue === pOriginalPromise){
18
+ delete oControl._pQueue;
19
+ }
20
+ };
21
+
22
+ oControl._pQueue = oControl._pQueue instanceof Promise ? oControl._pQueue.then(fTask) : fTask();
23
+ oControl._pQueue.then(fCleanupPromiseQueue.bind(null, oControl._pQueue));
24
+
25
+ return oControl._pQueue;
26
+ };*/
27
+
14
28
  oChartItemFlex.beforeAddItem = function(Delegate, sDataPropertyName, oControl, mPropertyBag, oChangeContent) {
29
+
15
30
  return Delegate.addItem.call(Delegate, sDataPropertyName, oControl, mPropertyBag, oChangeContent.role);
31
+
16
32
  };
17
33
 
18
34
  oChartItemFlex.findItem = function(oModifier, aItems, sName) {
@@ -35,6 +51,26 @@ sap.ui.define([
35
51
  }, Promise.resolve());
36
52
  };
37
53
 
54
+ /* Disabled until clarified with flex
55
+ oChartItemFlex.createChangeHandler = function(fApply, fComplete, fRevert) {
56
+ return {
57
+ "changeHandler": {
58
+ applyChange: function(oChange, oControl, mPropertyBag) {
59
+ return fnQueueChange(oControl, function(){return fApply(oChange, oControl, mPropertyBag);});
60
+ },
61
+ completeChangeContent: function(oChange, mChangeSpecificInfo, mPropertyBag) {
62
+ fComplete(oChange, mChangeSpecificInfo, mPropertyBag);
63
+ },
64
+ revertChange: function(oChange, oControl, mPropertyBag) {
65
+ return fnQueueChange(fRevert(oChange, oControl, mPropertyBag, true));
66
+ }
67
+ },
68
+ "layers": {
69
+ "USER": true
70
+ }
71
+ };
72
+ };*/
73
+
38
74
  oChartItemFlex.addItem = oChartItemFlex.createAddChangeHandler();
39
75
  oChartItemFlex.removeItem = oChartItemFlex.createRemoveChangeHandler();
40
76
  oChartItemFlex.moveItem = oChartItemFlex.createMoveChangeHandler();
@@ -4,8 +4,8 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
  sap.ui.define([
7
- 'sap/base/util/merge', 'sap/ui/mdc/condition/FilterOperatorUtil'
8
- ], function(merge, FilterOperatorUtil) {
7
+ 'sap/base/util/merge', 'sap/base/Log', 'sap/ui/mdc/condition/FilterOperatorUtil'
8
+ ], function(merge, Log, FilterOperatorUtil) {
9
9
  "use strict";
10
10
 
11
11
  /*
@@ -30,6 +30,15 @@ sap.ui.define([
30
30
  return oControl._pQueue;
31
31
  };
32
32
 
33
+
34
+ var fnGetDelegate = function(sDelegatePath) {
35
+ return new Promise(function(fResolveLoad, fRejectLoad){
36
+ sap.ui.require([
37
+ sDelegatePath
38
+ ], fResolveLoad, fRejectLoad);
39
+ });
40
+ };
41
+
33
42
  var fDetermineFilterControl = function(oControl) {
34
43
  var oController = oControl && oControl.getEngine ? oControl.getEngine().getController(oControl, "Filter") : null;
35
44
  return oController ? oController.getFilterControl() : null;
@@ -79,10 +88,24 @@ sap.ui.define([
79
88
  });
80
89
  }
81
90
 
82
- // the control providing the filter functionality needs to be used to update the ConditionModel
83
- if (oFilterControl && oFilterControl.addCondition) {
84
- return oFilterControl.addCondition(oChangeContent.name, oChangeContent.condition);
85
- }
91
+ return oModifier.getProperty(oControl, "delegate")
92
+ .then(function(oDelegate){
93
+ return fnGetDelegate(oDelegate.name);
94
+ })
95
+ .then(function(Delegate){
96
+ var fnDelegateAddCondition = Delegate && (Delegate.getFilterDelegate ? Delegate.getFilterDelegate().addCondition : Delegate.addCondition);
97
+ if (fnDelegateAddCondition) {
98
+ return fnDelegateAddCondition(oChangeContent.name, oControl, mPropertyBag)
99
+ .catch(function(oEx) {
100
+ Log.error("Error during Delegate.addCondition call: " + oEx);
101
+ });
102
+ }
103
+ })
104
+ .finally(function() {
105
+ if (oFilterControl && oFilterControl.addCondition) {
106
+ return oFilterControl.addCondition(oChangeContent.name, oChangeContent.condition);
107
+ }
108
+ });
86
109
  }
87
110
  });
88
111
  });
@@ -132,10 +155,24 @@ sap.ui.define([
132
155
  });
133
156
  }
134
157
 
135
- // the control providing the filter functionality needs to be used to update the ConditionModel
136
- if (oFilterControl && oFilterControl.removeCondition) {
137
- return oFilterControl.removeCondition(oChangeContent.name, oChangeContent.condition);
138
- }
158
+ return oModifier.getProperty(oControl, "delegate")
159
+ .then(function(oDelegate){
160
+ return fnGetDelegate(oDelegate.name);
161
+ })
162
+ .then(function(Delegate){
163
+ var fnDelegateRemoveCondition = Delegate && (Delegate.getFilterDelegate ? Delegate.getFilterDelegate().removeCondition : Delegate.removeCondition);
164
+ if (fnDelegateRemoveCondition) {
165
+ return fnDelegateRemoveCondition(oChangeContent.name, oControl, mPropertyBag)
166
+ .catch(function(oEx) {
167
+ Log.error("Error during Delegate.removeCondition call: " + oEx);
168
+ });
169
+ }
170
+ })
171
+ .finally(function() {
172
+ if (oFilterControl && oFilterControl.removeCondition) {
173
+ return oFilterControl.removeCondition(oChangeContent.name, oChangeContent.condition);
174
+ }
175
+ });
139
176
  }
140
177
  }
141
178
  });
@@ -12,7 +12,7 @@ sap.ui.define(['./FilterItemFlex', './ConditionFlex', './PropertyInfoFlex'], fun
12
12
  *
13
13
  * @alias sap.ui.mdc.flexibility.FilterBar
14
14
  * @author SAP SE
15
- * @version 1.99.0
15
+ * @version 1.100.0
16
16
  */
17
17
 
18
18
  return {
@@ -12,7 +12,7 @@ sap.ui.define(['./ItemBaseFlex'], function(ItemBaseFlex) {
12
12
  *
13
13
  * @alias sap.ui.mdc.flexibility.FilterBar
14
14
  * @author SAP SE
15
- * @version 1.99.0
15
+ * @version 1.100.0
16
16
  */
17
17
 
18
18
  var oFilterItemFlex = Object.assign({}, ItemBaseFlex);
@@ -21,7 +21,6 @@ sap.ui.define([
21
21
  * @param {object} Delegate The control specific delegate
22
22
  * @param {string} sDataPropertyName The property name which should be added
23
23
  * @param {object} oControl The control defined as <code>selectorElement</code> in the change
24
- * @param {object} oChangeContent The current change content
25
24
  * @param {object} mPropertyBag Instance of property bag from Flex change API
26
25
  */
27
26
  beforeAddItem: function(Delegate, sDataPropertyName, oControl, mPropertyBag) {
@@ -3,102 +3,19 @@
3
3
  * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
- sap.ui.define([
7
- 'sap/base/util/merge'
8
- ], function(merge) {
6
+ sap.ui.define([], function() {
9
7
  "use strict";
10
8
 
11
- /*
12
- * NOTE: As the PropertyInfoFlex is the central change handler for property info
13
- * processing, it might happen that the in/out handling of the ConditionModel
14
- * might cause multiple condition changes to be applied in parallel. Due to the
15
- * asynchronous modifier handling, we need to make sure to queue these changes in their
16
- * incoming order as parallel processing might falsely overwrite the 'filterConditions' or the 'propertyInfo'
17
- * properties causing the change handler to break the controls housekeeping and the last
18
- * parallel filter change would always win.
19
- *
20
- * Same processing is done in the ConditionFlex - handler.
21
- */
22
- var fnQueueChange = function(oControl, fTask) {
23
- var fCleanupPromiseQueue = function(pOriginalPromise) {
24
- if (oControl._pQueue === pOriginalPromise){
25
- delete oControl._pQueue;
26
- }
27
- };
28
-
29
- oControl._pQueue = oControl._pQueue instanceof Promise ? oControl._pQueue.then(fTask) : fTask();
30
- oControl._pQueue.then(fCleanupPromiseQueue.bind(null, oControl._pQueue));
31
-
32
- return oControl._pQueue;
33
- };
34
-
35
- var fAddFilterInfo = function(oChange, oChangeContent, oControl, mPropertyBag) {
36
-
37
- return fnQueueChange(oControl, function(){
38
- var oModifier = mPropertyBag.modifier;
39
-
40
- return oModifier.getProperty(oControl, "propertyInfo")
41
- .then(function(aPropertyInfo) {
42
-
43
- var aPropertiesInfo = merge([], aPropertyInfo);
44
- var nIdx = aPropertiesInfo.findIndex(function(oEntry) {
45
- return oEntry.name === oChangeContent.name;
46
- });
47
- if (nIdx < 0) {
48
- aPropertiesInfo.push({
49
- name: oChangeContent.name,
50
- dataType: oChangeContent.dataType,
51
- maxConditions: oChangeContent.maxConditions,
52
- constraints: oChangeContent.constraints,
53
- formatOptions: oChangeContent.formatOptions,
54
- required: oChangeContent.required,
55
- caseSensitive: oChangeContent.caseSensitive,
56
- display: oChangeContent.display
57
- });
58
-
59
- oModifier.setProperty(oControl, "propertyInfo", aPropertiesInfo);
60
-
61
- // Set revert data on the change
62
- oChange.setRevertData({ name: oChangeContent.name});
63
- }
64
- });
65
- });
66
- };
67
-
68
- var fRemoveFilterInfo = function(oChange, oChangeContent, oControl, mPropertyBag) {
69
-
70
- return fnQueueChange(oControl, function(){
71
- var oModifier = mPropertyBag.modifier;
72
-
73
- return oModifier.getProperty(oControl, "propertyInfo")
74
- .then(function(aPropertyInfos) {
75
- var aPropertiesInfo = merge([], aPropertyInfos);
76
- var nIdx = aPropertiesInfo.findIndex(function(oEntry) {
77
- return oEntry.name === oChangeContent.name;
78
- });
79
- if (nIdx >= 0) {
80
- aPropertiesInfo.splice(nIdx, 1);
81
- oModifier.setProperty(oControl, "propertyInfo", aPropertiesInfo);
82
- }
83
- });
84
- });
85
- };
86
-
87
-
9
+ //obsolete
88
10
  var oPropertyInfoFlex = {};
89
11
 
90
12
  oPropertyInfoFlex.addPropertyInfo = {
91
13
  "changeHandler": {
92
14
  applyChange: function(oChange, oControl, mPropertyBag) {
93
- return fAddFilterInfo(oChange, oChange.getContent(), oControl, mPropertyBag);
94
15
  },
95
16
  completeChangeContent: function(oChange, mChangeSpecificInfo, mPropertyBag) {
96
- // TODO
97
17
  },
98
18
  revertChange: function(oChange, oControl, mPropertyBag) {
99
- return fRemoveFilterInfo(oChange, oChange.getRevertData(), oControl, mPropertyBag).then(function() {
100
- oChange.resetRevertData();
101
- });
102
19
  }
103
20
  },
104
21
  "layers": {
@@ -15,7 +15,7 @@ sap.ui.define([
15
15
  "use strict";
16
16
 
17
17
  sap.ui.getCore().initLibrary({
18
- version: "1.99.0",
18
+ version: "1.100.0",
19
19
  name: "sap.ui.mdc",
20
20
  dependencies: ["sap.ui.core", "sap.m"],
21
21
  designtime: "sap/ui/mdc/designtime/library.designtime",
@@ -52,7 +52,6 @@ sap.ui.define([
52
52
  "sap.ui.mdc.MultiValueField",
53
53
  "sap.ui.mdc.link.Panel",
54
54
  "sap.ui.mdc.link.ContactDetails",
55
- "sap.ui.mdc.ui.Container",
56
55
  "sap.ui.mdc.Chart",
57
56
  "sap.ui.mdc.p13n.PersistenceProvider"
58
57
  ],
@@ -84,6 +83,7 @@ sap.ui.define([
84
83
  "sap.ui.mdc.field.BoolFieldHelp",
85
84
  "sap.ui.mdc.field.ConditionFieldHelp",
86
85
  "sap.ui.mdc.filterbar.aligned.FilterItemLayout",
86
+ "sap.ui.mdc.Link",
87
87
  "sap.ui.mdc.link.ContactDetailsAddressItem",
88
88
  "sap.ui.mdc.link.ContactDetailsEmailItem",
89
89
  "sap.ui.mdc.link.ContactDetailsItem",
@@ -95,7 +95,6 @@ sap.ui.define([
95
95
  "sap.ui.mdc.link.SemanticObjectMappingItem",
96
96
  "sap.ui.mdc.field.InParameter",
97
97
  "sap.ui.mdc.field.OutParameter",
98
- "sap.ui.mdc.ui.ContainerItem",
99
98
  "sap.ui.mdc.field.MultiValueFieldItem",
100
99
  "sap.ui.mdc.ValueHelp",
101
100
  "sap.ui.mdc.valuehelp.Popover",
@@ -132,7 +131,7 @@ sap.ui.define([
132
131
  * @namespace
133
132
  * @alias sap.ui.mdc
134
133
  * @author SAP SE
135
- * @version 1.99.0
134
+ * @version 1.100.0
136
135
  * @since 1.80
137
136
  * @private
138
137
  * @ui5-restricted sap.fe
@@ -1197,5 +1196,13 @@ sap.ui.define([
1197
1196
  * @private
1198
1197
  */
1199
1198
 
1199
+ /**
1200
+ * @namespace
1201
+ * @name sap.ui.mdc.mixin
1202
+ * @private
1203
+ * @experimental As of version 1.82.0
1204
+ * @ui5-restricted sap.ui.mdc
1205
+ */
1206
+
1200
1207
  return thisLib;
1201
1208
  });
@@ -15,7 +15,7 @@ sap.ui.define(['sap/ui/core/XMLComposite', 'sap/m/Text', 'sap/m/Link', 'sap/m/La
15
15
  * @class The ContactDetails control is used to show additional information like for example 'contact details'.
16
16
  * @extends sap.ui.core.XMLComposite
17
17
  * @author SAP SE
18
- * @version 1.99.0
18
+ * @version 1.100.0
19
19
  * @constructor
20
20
  * @private
21
21
  * @since 1.56.0
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] initial settings for the new control
17
17
  * @class Type for...
18
18
  * @extends sap.ui.core.Element
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.56.0
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] initial settings for the new control
17
17
  * @class Type for...
18
18
  * @extends sap.ui.core.Element
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.56.0
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] initial settings for the new control
17
17
  * @class Type for...
18
18
  * @extends sap.ui.core.Element
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.56.0
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] initial settings for the new control
17
17
  * @class Type for...
18
18
  * @extends sap.ui.core.Element
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.56.0
@@ -11,7 +11,7 @@ sap.ui.define([], function() {
11
11
  * @namespace Factory to access services outside of sap.ui.mdc library like for example <code>ushell</code> services.
12
12
  * @name sap.ui.mdc.link.Factory
13
13
  * @author SAP SE
14
- * @version 1.99.0
14
+ * @version 1.100.0
15
15
  * @private
16
16
  * @since 1.54.0
17
17
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
@@ -13,7 +13,7 @@ sap.ui.define([
13
13
  * @namespace FakeFlpConnector.
14
14
  * @name sap.ui.mdc.link.FakeFlpConnector
15
15
  * @author SAP SE
16
- * @version 1.99.0
16
+ * @version 1.100.0
17
17
  * @private
18
18
  * @since 1.54.0
19
19
  * @ui5-metamodel This control/element also will be described in the UI5 (legacy) designtime metamodel
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] Initial settings for the new control
17
17
  * @class A <code>LinkItem</code> control is used in the {@link sap.ui.mdc.Link} control to provide a navigation target.
18
18
  * @extends sap.ui.core.Element
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.58.0
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * supposed that the properties of the item structure is not changed.
27
27
  * @extends sap.ui.core.XMLComposite
28
28
  * @author SAP SE
29
- * @version 1.99.0
29
+ * @version 1.100.0
30
30
  * @constructor
31
31
  * @private
32
32
  * @since 1.54.0
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] initial settings for the new control
17
17
  * @class Type for <code>items</code> aggregation in <code>Panel</code> control.
18
18
  * @extends sap.ui.core.Element
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.54.0
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] initial settings for the new control
17
17
  * @class Type for <code>items</code> aggregation in <code>Panel</code> control.
18
18
  * @extends sap.ui.core.XMLComposite
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.54.0
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] initial settings for the new control
17
17
  * @class Type for...
18
18
  * @extends sap.ui.core.Element
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.58.0
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] initial settings for the new control
17
17
  * @class Type for...
18
18
  * @extends sap.ui.core.Element
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.58.0
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  * @param {object} [mSettings] initial settings for the new control
17
17
  * @class Type for...
18
18
  * @extends sap.ui.core.Element
19
- * @version 1.99.0
19
+ * @version 1.100.0
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.60.0
@@ -727,7 +727,8 @@ table.PERSONALIZATION_DIALOG_GROUP_RESTRICTION=You cannot see columns {0} here s
727
727
  table.PERSONALIZATION_DIALOG_TOTAL_RESTRICTION=You can only calculate totals for visible columns. If a column has not been made visible, totals will not be shown.
728
728
  #XMSG: Message for P13n Filter Dialog when the table is filtered by related messages.
729
729
  table.PERSONALIZATION_DIALOG_FILTER_MESSAGESTRIP=The table was filtered for rows with related messages. The defined filters are temporarily ignored.
730
-
730
+ #XMIT: Text for a Navigation Row Action Item
731
+ table.ROW_ACTION_ITEM_NAVIGATE=Navigation
731
732
 
732
733
  # XTIT: Title of the Columns list (in p13nDialog)
733
734
  fieldsui.COLUMNS=Columns
@@ -11,15 +11,6 @@ sap.ui.define(
11
11
  function (Engine) {
12
12
  "use strict";
13
13
 
14
- /**
15
- * @namespace
16
- * @name sap.ui.mdc.mixin
17
- * @private
18
- * @since 1.82.0
19
- * @experimental As of version 1.82.0
20
- * @ui5-restricted sap.ui.mdc
21
- */
22
-
23
14
  /**
24
15
  * Enhances a given control prototype with consolidated handling for adaptation.
25
16
  *
@@ -41,7 +32,7 @@ sap.ui.define(
41
32
  *
42
33
  *
43
34
  * @author SAP SE
44
- * @version 1.99.0
35
+ * @version 1.100.0
45
36
  * @alias sap.ui.mdc.mixin.AdaptationMixin
46
37
  * @namespace
47
38
  * @since 1.82.0
@@ -56,15 +47,15 @@ sap.ui.define(
56
47
  };
57
48
 
58
49
  /**
59
- * Hook which is executed after a chain of changes has been processed by a changehandler.
60
- * <b>Note</b>: This hook will be executed whenever a change is applied or reverted, e.g:
61
- * <ul>
62
- * <li><code>variant appliance</code></li>
63
- * <li><code>enduser personalization</code></li>
64
- * <li><code>reset triggered</code></li>
65
- * </ul>
66
- *
67
- */
50
+ * Hook which is executed after a chain of changes has been processed by a changehandler.
51
+ * <b>Note</b>: This hook will be executed whenever a change is applied or reverted, e.g:
52
+ * <ul>
53
+ * <li><code>variant appliance</code></li>
54
+ * <li><code>enduser personalization</code></li>
55
+ * <li><code>reset triggered</code></li>
56
+ * </ul>
57
+ *
58
+ */
68
59
  AdaptationMixin._onModifications = function() {
69
60
  //
70
61
  };
@@ -156,12 +147,22 @@ sap.ui.define(
156
147
  };
157
148
  };
158
149
 
150
+ // Needed for unit testing as flex is not available
151
+ AdaptationMixin._getWaitForChangesPromise = function() {
152
+ var oEngine = this.getEngine && this.getEngine();
153
+ if (!oEngine) {
154
+ throw "Engine instance not found.";
155
+ }
156
+ return oEngine.waitForChanges(this);
157
+ };
158
+
159
159
  return function () {
160
160
  this.retrieveInbuiltFilter = AdaptationMixin.retrieveInbuiltFilter;
161
161
  this.getInbuiltFilter = AdaptationMixin.getInbuiltFilter;
162
162
  this.validateState = AdaptationMixin.validateState;
163
163
  this._onModifications = AdaptationMixin._onModifications;
164
164
  this._onChangeAppliance = AdaptationMixin._onChangeAppliance;
165
+ this._getWaitForChangesPromise = AdaptationMixin._getWaitForChangesPromise;
165
166
  this.getEngine = AdaptationMixin.getEngine;
166
167
  this.exit = AdaptationMixin.exit(this.exit);
167
168
  };