@openui5/sap.ui.mdc 1.102.1 → 1.103.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) 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 +11 -0
  5. package/src/sap/ui/mdc/Chart.js +111 -55
  6. package/src/sap/ui/mdc/ChartDelegate.js +97 -92
  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/FilterField.js +2 -2
  12. package/src/sap/ui/mdc/Link.js +4 -1
  13. package/src/sap/ui/mdc/MultiValueField.js +1 -1
  14. package/src/sap/ui/mdc/Table.js +48 -12
  15. package/src/sap/ui/mdc/ValueHelp.js +1 -19
  16. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +2 -1
  17. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -2
  18. package/src/sap/ui/mdc/chart/ChartToolbar.js +34 -2
  19. package/src/sap/ui/mdc/chart/DrillBreadcrumbs.js +6 -2
  20. package/src/sap/ui/mdc/chart/Item.js +6 -11
  21. package/src/sap/ui/mdc/chart/PropertyHelper.js +7 -8
  22. package/src/sap/ui/mdc/chart/SelectionDetailsActions.js +2 -3
  23. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  24. package/src/sap/ui/mdc/condition/ConditionConverter.js +16 -131
  25. package/src/sap/ui/mdc/condition/ConditionModel.js +50 -21
  26. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  27. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +3 -3
  28. package/src/sap/ui/mdc/condition/Operator.js +1 -1
  29. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +1 -1
  30. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  31. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbar.designtime.js +6 -3
  32. package/src/sap/ui/mdc/designtime/actiontoolbar/ActionToolbarAction.designtime.js +53 -0
  33. package/src/sap/ui/mdc/designtime/field/Field.designtime.js +9 -4
  34. package/src/sap/ui/mdc/designtime/table/Table.designtime.js +1 -1
  35. package/src/sap/ui/mdc/field/BoolFieldHelp.js +1 -1
  36. package/src/sap/ui/mdc/field/ConditionFieldHelp.js +1 -1
  37. package/src/sap/ui/mdc/field/ConditionType.js +135 -39
  38. package/src/sap/ui/mdc/field/ConditionsType.js +71 -10
  39. package/src/sap/ui/mdc/field/CustomFieldHelp.js +1 -2
  40. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  41. package/src/sap/ui/mdc/field/DefineConditionPanel.js +93 -81
  42. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +9 -62
  43. package/src/sap/ui/mdc/field/FieldBase.js +91 -70
  44. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +20 -1
  45. package/src/sap/ui/mdc/field/FieldHelpBase.js +1 -39
  46. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  47. package/src/sap/ui/mdc/field/FieldInput.js +2 -2
  48. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  49. package/src/sap/ui/mdc/field/FieldMultiInput.js +2 -2
  50. package/src/sap/ui/mdc/field/FieldValueHelp.js +1 -1
  51. package/src/sap/ui/mdc/field/FieldValueHelpContentWrapperBase.js +1 -19
  52. package/src/sap/ui/mdc/field/FieldValueHelpMTableWrapper.js +1 -1
  53. package/src/sap/ui/mdc/field/FieldValueHelpMdcTableWrapper.js +7 -1
  54. package/src/sap/ui/mdc/field/FieldValueHelpTableWrapperBase.js +1 -1
  55. package/src/sap/ui/mdc/field/FieldValueHelpUITableWrapper.js +1 -1
  56. package/src/sap/ui/mdc/field/InParameter.js +1 -4
  57. package/src/sap/ui/mdc/field/ListFieldHelp.js +1 -1
  58. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  59. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  60. package/src/sap/ui/mdc/field/OutParameter.js +1 -1
  61. package/src/sap/ui/mdc/field/TokenDisplay.js +2 -2
  62. package/src/sap/ui/mdc/field/TokenizerDisplay.js +2 -2
  63. package/src/sap/ui/mdc/field/ValueHelpPanel.js +1 -5
  64. package/src/sap/ui/mdc/field/content/DateContent.js +3 -3
  65. package/src/sap/ui/mdc/field/content/DateTimeContent.js +1 -1
  66. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +4 -4
  67. package/src/sap/ui/mdc/filterbar/IFilterContainer.js +1 -1
  68. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  69. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +1 -1
  70. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  71. package/src/sap/ui/mdc/flexibility/ActionToolbar.flexibility.js +80 -4
  72. package/src/sap/ui/mdc/flexibility/AggregateFlex.js +19 -38
  73. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  74. package/src/sap/ui/mdc/flexibility/ChartTypeFlex.js +23 -41
  75. package/src/sap/ui/mdc/flexibility/ConditionFlex.js +43 -58
  76. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  77. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  78. package/src/sap/ui/mdc/flexibility/GroupFlex.js +25 -55
  79. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +21 -42
  80. package/src/sap/ui/mdc/flexibility/SortFlex.js +23 -52
  81. package/src/sap/ui/mdc/flexibility/Table.flexibility.js +3 -3
  82. package/src/sap/ui/mdc/flexibility/Util.js +82 -0
  83. package/src/sap/ui/mdc/flexibility/xConfigFlex.js +137 -0
  84. package/src/sap/ui/mdc/flp/FlpLinkDelegate.js +3 -1
  85. package/src/sap/ui/mdc/library.js +4 -15
  86. package/src/sap/ui/mdc/link/ContactDetails.js +1 -1
  87. package/src/sap/ui/mdc/link/ContactDetailsAddressItem.js +1 -1
  88. package/src/sap/ui/mdc/link/ContactDetailsEmailItem.js +1 -1
  89. package/src/sap/ui/mdc/link/ContactDetailsItem.js +1 -1
  90. package/src/sap/ui/mdc/link/ContactDetailsPhoneItem.js +1 -1
  91. package/src/sap/ui/mdc/link/Factory.js +1 -1
  92. package/src/sap/ui/mdc/link/FakeFlpConnector.js +1 -1
  93. package/src/sap/ui/mdc/link/LinkItem.js +9 -1
  94. package/src/sap/ui/mdc/link/Panel.js +25 -10
  95. package/src/sap/ui/mdc/link/PanelItem.js +10 -1
  96. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  97. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  98. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  99. package/src/sap/ui/mdc/messagebundle.properties +12 -0
  100. package/src/sap/ui/mdc/messagebundle_ar.properties +8 -0
  101. package/src/sap/ui/mdc/messagebundle_bg.properties +8 -0
  102. package/src/sap/ui/mdc/messagebundle_ca.properties +8 -0
  103. package/src/sap/ui/mdc/messagebundle_cs.properties +8 -0
  104. package/src/sap/ui/mdc/messagebundle_cy.properties +8 -0
  105. package/src/sap/ui/mdc/messagebundle_da.properties +8 -0
  106. package/src/sap/ui/mdc/messagebundle_de.properties +8 -0
  107. package/src/sap/ui/mdc/messagebundle_el.properties +19 -11
  108. package/src/sap/ui/mdc/messagebundle_en.properties +8 -0
  109. package/src/sap/ui/mdc/messagebundle_en_GB.properties +8 -0
  110. package/src/sap/ui/mdc/messagebundle_en_US_sappsd.properties +8 -0
  111. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +8 -0
  112. package/src/sap/ui/mdc/messagebundle_en_US_saptrc.properties +8 -0
  113. package/src/sap/ui/mdc/messagebundle_es.properties +14 -6
  114. package/src/sap/ui/mdc/messagebundle_es_MX.properties +8 -0
  115. package/src/sap/ui/mdc/messagebundle_et.properties +8 -0
  116. package/src/sap/ui/mdc/messagebundle_fi.properties +8 -0
  117. package/src/sap/ui/mdc/messagebundle_fr.properties +9 -1
  118. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +8 -0
  119. package/src/sap/ui/mdc/messagebundle_hi.properties +8 -0
  120. package/src/sap/ui/mdc/messagebundle_hr.properties +8 -0
  121. package/src/sap/ui/mdc/messagebundle_hu.properties +8 -0
  122. package/src/sap/ui/mdc/messagebundle_id.properties +8 -0
  123. package/src/sap/ui/mdc/messagebundle_it.properties +9 -1
  124. package/src/sap/ui/mdc/messagebundle_iw.properties +9 -1
  125. package/src/sap/ui/mdc/messagebundle_ja.properties +8 -0
  126. package/src/sap/ui/mdc/messagebundle_kk.properties +8 -0
  127. package/src/sap/ui/mdc/messagebundle_ko.properties +10 -2
  128. package/src/sap/ui/mdc/messagebundle_lt.properties +8 -0
  129. package/src/sap/ui/mdc/messagebundle_lv.properties +8 -0
  130. package/src/sap/ui/mdc/messagebundle_ms.properties +8 -0
  131. package/src/sap/ui/mdc/messagebundle_nl.properties +22 -14
  132. package/src/sap/ui/mdc/messagebundle_no.properties +8 -0
  133. package/src/sap/ui/mdc/messagebundle_pl.properties +8 -0
  134. package/src/sap/ui/mdc/messagebundle_pt.properties +12 -4
  135. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +8 -0
  136. package/src/sap/ui/mdc/messagebundle_ro.properties +8 -0
  137. package/src/sap/ui/mdc/messagebundle_ru.properties +8 -0
  138. package/src/sap/ui/mdc/messagebundle_sh.properties +9 -1
  139. package/src/sap/ui/mdc/messagebundle_sk.properties +8 -0
  140. package/src/sap/ui/mdc/messagebundle_sl.properties +8 -0
  141. package/src/sap/ui/mdc/messagebundle_sv.properties +8 -0
  142. package/src/sap/ui/mdc/messagebundle_th.properties +8 -0
  143. package/src/sap/ui/mdc/messagebundle_tr.properties +8 -0
  144. package/src/sap/ui/mdc/messagebundle_uk.properties +8 -0
  145. package/src/sap/ui/mdc/messagebundle_vi.properties +8 -0
  146. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +8 -0
  147. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +9 -1
  148. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  149. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  150. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -1
  151. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  152. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +1 -1
  153. package/src/sap/ui/mdc/odata/TypeUtil.js +24 -2
  154. package/src/sap/ui/mdc/odata/v4/ChartPropertyHelper.js +5 -5
  155. package/src/sap/ui/mdc/odata/v4/FieldBaseDelegate.js +6 -0
  156. package/src/sap/ui/mdc/odata/v4/TypeUtil.js +6 -6
  157. package/src/sap/ui/mdc/odata/v4/ValueHelpDelegate.js +0 -33
  158. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +359 -151
  159. package/src/sap/ui/mdc/p13n/Engine.js +1 -1
  160. package/src/sap/ui/mdc/p13n/PersistenceProvider.js +1 -0
  161. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  162. package/src/sap/ui/mdc/p13n/UIManager.js +1 -1
  163. package/src/sap/ui/mdc/p13n/modules/DefaultProviderRegistry.js +1 -1
  164. package/src/sap/ui/mdc/p13n/panels/ActionToolbarPanel.js +133 -0
  165. package/src/sap/ui/mdc/p13n/panels/FilterPanel.js +7 -32
  166. package/src/sap/ui/mdc/p13n/panels/LinkSelectionPanel.js +12 -4
  167. package/src/sap/ui/mdc/p13n/subcontroller/ActionToolbarController.js +1 -1
  168. package/src/sap/ui/mdc/p13n/subcontroller/BaseController.js +1 -1
  169. package/src/sap/ui/mdc/p13n/subcontroller/LinkPanelController.js +22 -27
  170. package/src/sap/ui/mdc/table/Column.js +4 -1
  171. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  172. package/src/sap/ui/mdc/table/PropertyHelper.js +1 -1
  173. package/src/sap/ui/mdc/table/RowActionItem.js +1 -1
  174. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  175. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +1 -1
  176. package/src/sap/ui/mdc/themes/base/ValueHelpDialog.less +5 -0
  177. package/src/sap/ui/mdc/util/FilterUtil.js +2 -2
  178. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  179. package/src/sap/ui/mdc/util/PropertyHelper.js +1 -1
  180. package/src/sap/ui/mdc/util/TypeUtil.js +105 -17
  181. package/src/sap/ui/mdc/valuehelp/Dialog.js +95 -30
  182. package/src/sap/ui/mdc/valuehelp/Popover.js +15 -2
  183. package/src/sap/ui/mdc/valuehelp/base/Container.js +37 -28
  184. package/src/sap/ui/mdc/valuehelp/base/Content.js +39 -21
  185. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +5 -5
  186. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +41 -34
  187. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +1 -1
  188. package/src/sap/ui/mdc/valuehelp/content/Bool.js +4 -4
  189. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +11 -3
  190. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +1 -1
  191. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +1 -1
  192. package/src/sap/ui/mdc/valuehelp/content/MTable.js +2 -2
  193. package/test/sap/ui/mdc/testutils/opa/p13n/Actions.js +34 -82
  194. package/src/sap/ui/mdc/flexibility/AggregationConfigFlex.js +0 -139
@@ -3,7 +3,10 @@
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(["sap/ui/mdc/p13n/Engine"], function(Engine) {
6
+ sap.ui.define([
7
+ "sap/ui/mdc/p13n/Engine",
8
+ "sap/ui/mdc/flexibility/Util"
9
+ ], function(Engine, Util) {
7
10
  "use strict";
8
11
  var fRebindControl = function(oControl) {
9
12
  var bExecuteRebindForTable = oControl && oControl.isA && oControl.isA("sap.ui.mdc.Table") && oControl.isTableBound();
@@ -36,8 +39,9 @@ sap.ui.define(["sap/ui/mdc/p13n/Engine"], function(Engine) {
36
39
  fRebindControl(oControl);
37
40
  };
38
41
 
39
- var fAddSort = function(oChange, oControl, mPropertyBag, bIsRevert) {
42
+ var fAddSort = function(oChange, oControl, mPropertyBag, sChangeReason) {
40
43
  return new Promise(function(resolve, reject) {
44
+ var bIsRevert = (sChangeReason === Util.REVERT);
41
45
  var oModifier = mPropertyBag.modifier;
42
46
  var oChangeContent = bIsRevert ? oChange.getRevertData() : oChange.getContent();
43
47
  Promise.resolve()
@@ -66,9 +70,10 @@ sap.ui.define(["sap/ui/mdc/p13n/Engine"], function(Engine) {
66
70
  });
67
71
  };
68
72
 
69
- var fRemoveSort = function(oChange, oControl, mPropertyBag, bIsRevert) {
73
+ var fRemoveSort = function(oChange, oControl, mPropertyBag, sChangeReason) {
70
74
  return new Promise(function(resolve, reject) {
71
75
  var oModifier = mPropertyBag.modifier;
76
+ var bIsRevert = (sChangeReason === Util.REVERT);
72
77
  var oChangeContent = bIsRevert ? oChange.getRevertData() : oChange.getContent();
73
78
  Promise.resolve()
74
79
  .then(oModifier.getProperty.bind(oModifier, oControl, "sortConditions"))
@@ -101,8 +106,9 @@ sap.ui.define(["sap/ui/mdc/p13n/Engine"], function(Engine) {
101
106
  });
102
107
  };
103
108
 
104
- var fMoveSort = function(oChange, oControl, mPropertyBag, bIsRevert) {
109
+ var fMoveSort = function(oChange, oControl, mPropertyBag, sChangeReason) {
105
110
  return new Promise(function(resolve, reject) {
111
+ var bIsRevert = (sChangeReason === Util.REVERT);
106
112
  var oModifier = mPropertyBag.modifier;
107
113
  var oChangeContent = bIsRevert ? oChange.getRevertData() : oChange.getContent();
108
114
  Promise.resolve()
@@ -134,55 +140,20 @@ sap.ui.define(["sap/ui/mdc/p13n/Engine"], function(Engine) {
134
140
  };
135
141
 
136
142
  var Sort = {};
137
- Sort.removeSort = {
138
- "changeHandler": {
139
- applyChange: function(oChange, oControl, mPropertyBag) {
140
- return fRemoveSort(oChange, oControl, mPropertyBag, false);
141
- },
142
- completeChangeContent: function(oChange, mChangeSpecificInfo, mPropertyBag) {
143
- // Not used, but needs to be there
144
- },
145
- revertChange: function(oChange, oControl, mPropertyBag) {
146
- return fAddSort(oChange, oControl, mPropertyBag, true);
147
- }
148
- },
149
- "layers": {
150
- "USER": true
151
- }
152
- };
143
+ Sort.removeSort = Util.createChangeHandler({
144
+ apply: fRemoveSort,
145
+ revert: fAddSort
146
+ });
153
147
 
154
- Sort.addSort = {
155
- "changeHandler": {
156
- applyChange: function(oChange, oControl, mPropertyBag) {
157
- return fAddSort(oChange, oControl, mPropertyBag, false);
158
- },
159
- completeChangeContent: function(oChange, mChangeSpecificInfo, mPropertyBag) {
160
- // Not used, but needs to be there
161
- },
162
- revertChange: function(oChange, oControl, mPropertyBag) {
163
- return fRemoveSort(oChange, oControl, mPropertyBag, true);
164
- }
165
- },
166
- "layers": {
167
- "USER": true
168
- }
169
- };
148
+ Sort.addSort = Util.createChangeHandler({
149
+ apply: fAddSort,
150
+ revert: fRemoveSort
151
+ });
152
+
153
+ Sort.moveSort = Util.createChangeHandler({
154
+ apply: fMoveSort,
155
+ revert: fMoveSort
156
+ });
170
157
 
171
- Sort.moveSort = {
172
- "changeHandler": {
173
- applyChange: function(oChange, oControl, mPropertyBag) {
174
- return fMoveSort(oChange, oControl, mPropertyBag);
175
- },
176
- completeChangeContent: function(oChange, mChangeSpecificInfo, mPropertyBag) {
177
- // Not used, but needs to be there
178
- },
179
- revertChange: function(oChange, oControl, mPropertyBag) {
180
- return fMoveSort(oChange, oControl, mPropertyBag, true);
181
- }
182
- },
183
- "layers": {
184
- "USER": true
185
- }
186
- };
187
158
  return Sort;
188
159
  });
@@ -5,8 +5,8 @@
5
5
  */
6
6
 
7
7
  sap.ui.define([
8
- './SortFlex', './ColumnFlex', './ConditionFlex', './GroupFlex', './AggregateFlex', './AggregationConfigFlex'
9
- ], function(SortFlex, ColumnFlex, ConditionFlex, GroupFlex, AggregateFlex, AggregationConfigFlex) {
8
+ './SortFlex', './ColumnFlex', './ConditionFlex', './GroupFlex', './AggregateFlex', './xConfigFlex'
9
+ ], function(SortFlex, ColumnFlex, ConditionFlex, GroupFlex, AggregateFlex, xConfigFlex) {
10
10
  "use strict";
11
11
 
12
12
  return {
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  moveGroup: GroupFlex.moveGroup,
26
26
  removeAggregate: AggregateFlex.removeAggregate,
27
27
  addAggregate: AggregateFlex.addAggregate,
28
- setColumnWidth: AggregationConfigFlex.createSetChangeHandler({
28
+ setColumnWidth: xConfigFlex.createSetChangeHandler({
29
29
  aggregation: "columns",
30
30
  property: "width"
31
31
  })
@@ -0,0 +1,82 @@
1
+ /*
2
+ * ! OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+ sap.ui.define([
7
+ "sap/ui/mdc/util/loadModules"
8
+ ], function(loadModules) {
9
+ "use strict";
10
+
11
+ /**
12
+ * Utility functionality for mdc flexibility changehandlers.
13
+ *
14
+ * @author SAP SE
15
+ * @namespace
16
+ * @alias module:sap/ui/mdc/flexibility/Util
17
+ * @since 1.101
18
+ * @private
19
+ */
20
+ var Util = {};
21
+
22
+ Util.APPLY = "apply";
23
+ Util.REVERT = "revert";
24
+
25
+ /**
26
+ * Creates a changehandler object for mdc controls.
27
+ * The changehandler will also call the <code>onAfterXMLChangeProcessing</code> hook on the control's delegate
28
+ * in case it's available.
29
+ *
30
+ * @param {object} mSettings An object defining the changehandler settings
31
+ * @param {function} mSettings.apply The changehandler applyChange function
32
+ * @param {function} mSettings.revert The changehandler applyChange function
33
+ * @param {function} [mSettings.complete] The changehandler applyChange function
34
+ *
35
+ * @returns {object} A Changehandler object
36
+ */
37
+ Util.createChangeHandler = function(mSettings) {
38
+
39
+ var fApply = mSettings.apply instanceof Function && mSettings.apply;
40
+ var fRevert = mSettings.revert instanceof Function && mSettings.revert;
41
+ var fComplete = mSettings.complete instanceof Function && mSettings.complete;
42
+
43
+ if (!fApply || !fRevert) {
44
+ throw new Error("Please provide atleast an apply and revert function!");
45
+ }
46
+
47
+ return {
48
+ "changeHandler": {
49
+ applyChange: function(oChange, oControl, mPropertyBag) {
50
+ return fApply(oChange, oControl, mPropertyBag, Util.APPLY);
51
+ },
52
+ completeChangeContent: function(oChange, mChangeSpecificInfo, mPropertyBag) {
53
+ if (fComplete) {
54
+ fComplete(oChange, mChangeSpecificInfo, mPropertyBag);
55
+ }
56
+ },
57
+ revertChange: function(oChange, oControl, mPropertyBag) {
58
+ return fRevert(oChange, oControl, mPropertyBag, Util.REVERT);
59
+ },
60
+ onAfterXMLChangeProcessing: function(oControl, mPropertyBag) {
61
+ mPropertyBag.modifier.getProperty(oControl, "delegate")
62
+ .then(function(oDelegate){
63
+ loadModules(oDelegate.name)
64
+ .then(function(aModules){
65
+ var oDelegate = aModules[0];
66
+
67
+ if (oDelegate.onAfterXMLChangeProcessing instanceof Function) {
68
+ oDelegate.onAfterXMLChangeProcessing(oControl, mPropertyBag);
69
+ }
70
+
71
+ });
72
+ });
73
+ }
74
+ },
75
+ "layers": {
76
+ "USER": true
77
+ }
78
+ };
79
+ };
80
+
81
+ return Util;
82
+ });
@@ -0,0 +1,137 @@
1
+ /*
2
+ * ! OpenUI5
3
+ * (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
4
+ * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
+ */
6
+
7
+ sap.ui.define([
8
+ 'sap/ui/mdc/p13n/Engine',
9
+ 'sap/ui/mdc/flexibility/Util'
10
+ ], function(Engine, Util) {
11
+ "use strict";
12
+
13
+ /**
14
+ * @class Utility class for generic mdc xConfig handling by utilizing the
15
+ * <code>sap.ui.mdc.p13n.Engine</code> and its <code>Modificationhandler</code>.
16
+ * This class should be used to handle property changes that should be persisted
17
+ * as flex changes for MDC control while enabling preprocessing via customdata.
18
+ *
19
+ * @author SAP SE
20
+ * @private
21
+ * @alias sap.ui.mdc.flexibility.xConfigFlex
22
+ */
23
+ var xConfigFlex = {};
24
+
25
+ var fConfigModified = function(oControl) {
26
+ if (!oControl._bWaitForModificationChanges && oControl.isA) {
27
+ oControl._bWaitForModificationChanges = true;
28
+ Engine.getInstance().waitForChanges(oControl).then(function() {
29
+ if (oControl._onModifications instanceof Function) {
30
+ oControl._onModifications();
31
+ }
32
+ delete oControl._bWaitForModificationChanges;
33
+ });
34
+ }
35
+ };
36
+
37
+ var fnQueueChange = function(oControl, fTask) {
38
+ var fCleanupPromiseQueue = function(pOriginalPromise) {
39
+ if (oControl._pQueue === pOriginalPromise){
40
+ delete oControl._pQueue;
41
+ }
42
+ };
43
+
44
+ oControl._pQueue = oControl._pQueue instanceof Promise ? oControl._pQueue.then(fTask) : fTask();
45
+ oControl._pQueue.then(fCleanupPromiseQueue.bind(null, oControl._pQueue));
46
+
47
+ return oControl._pQueue;
48
+ };
49
+
50
+ /**
51
+ * Creates a changehandler specific to the provided aggregation and property name,
52
+ * to enhance the xConfig object for a given mdc control instance.
53
+ *
54
+ * The enhanced object can be accesed using <code>Engine#readAggregationConfig</code>.
55
+ *
56
+ * @param {object} mMetaConfig A map describing the metadata structure that is affected by this changehandler
57
+ * @param {object} mMetaConfig.aggregation The aggregation name (such as <code>columns</code> or <code>filterItemes</code>)
58
+ * @param {object} mMetaConfig.property The property name (such as <code>width</code> or <code>label</code>)
59
+ *
60
+ * @returns {object} The created changehandler object
61
+ */
62
+ xConfigFlex.createSetChangeHandler = function(mMetaConfig) {
63
+
64
+ if (!mMetaConfig || !mMetaConfig.hasOwnProperty("aggregation") || !mMetaConfig.hasOwnProperty("property")) {
65
+ throw new Error("Please provide a map containing the affected aggregation and property name!");
66
+ }
67
+
68
+ var sAffectedAggregation = mMetaConfig.aggregation;
69
+ var sAffectedProperty = mMetaConfig.property;
70
+
71
+ var fApply = function (oChange, oControl, mPropertyBag) {
72
+
73
+ return fnQueueChange(oControl, function(){
74
+ return Engine.getInstance().readXConfig(oControl, {
75
+ propertyBag: mPropertyBag
76
+ })
77
+ .then(function(oPriorAggregationConfig) {
78
+ var sOldValue = null;
79
+
80
+ if (oPriorAggregationConfig
81
+ && oPriorAggregationConfig.aggregations
82
+ && oPriorAggregationConfig.aggregations[sAffectedAggregation]
83
+ && oPriorAggregationConfig.aggregations[sAffectedAggregation][oChange.getContent().name]
84
+ && oPriorAggregationConfig.aggregations[sAffectedAggregation][oChange.getContent().name][sAffectedProperty]
85
+ ){
86
+ sOldValue = oPriorAggregationConfig.aggregations[sAffectedAggregation][oChange.getContent().name][sAffectedProperty];
87
+ }
88
+
89
+ oChange.setRevertData({
90
+ name: oChange.getContent().name,
91
+ value: sOldValue
92
+ });
93
+
94
+ return Engine.getInstance().enhanceXConfig(oControl, {
95
+ controlMeta: {
96
+ aggregation: sAffectedAggregation,
97
+ property: sAffectedProperty
98
+ },
99
+ name: oChange.getContent().name,
100
+ value: oChange.getContent().value,
101
+ propertyBag: mPropertyBag
102
+ });
103
+ })
104
+ .then(function() {
105
+ fConfigModified(oControl);
106
+ });
107
+
108
+ });
109
+
110
+ };
111
+
112
+ var fRevert = function (oChange, oControl, mPropertyBag) {
113
+ return Engine.getInstance().enhanceXConfig(oControl, {
114
+ controlMeta: {
115
+ aggregation: sAffectedAggregation,
116
+ property: sAffectedProperty
117
+ },
118
+ name: oChange.getRevertData().name,
119
+ value: oChange.getRevertData().value,
120
+ propertyBag: mPropertyBag
121
+ })
122
+ .then(function() {
123
+ oChange.resetRevertData();
124
+ fConfigModified(oControl);
125
+ });
126
+ };
127
+
128
+ return Util.createChangeHandler({
129
+ apply: fApply,
130
+ revert: fRevert
131
+ });
132
+
133
+ };
134
+
135
+ return xConfigFlex;
136
+
137
+ });
@@ -304,7 +304,8 @@ sap.ui.define([
304
304
  // multiple contexts (~XXXX in hash) they will all be skipped
305
305
  oNavigationTargets.ownNavigation = new LinkItem({
306
306
  href: sHref,
307
- text: oLink.text
307
+ text: oLink.text,
308
+ internalHref: oLink.intent
308
309
  });
309
310
  return;
310
311
  }
@@ -314,6 +315,7 @@ sap.ui.define([
314
315
  text: oLink.text,
315
316
  description: undefined,
316
317
  href: sHref,
318
+ internalHref: oLink.intent,
317
319
  // target: not supported yet
318
320
  icon: undefined, //oLink.icon,
319
321
  initiallyVisible: (oLink.tags && oLink.tags.indexOf("superiorAction") > -1)
@@ -23,14 +23,14 @@
23
23
  * @namespace
24
24
  * @alias sap.ui.mdc
25
25
  * @author SAP SE
26
- * @version 1.102.1
26
+ * @version 1.103.1
27
27
  * @since 1.80
28
28
  * @private
29
29
  * @ui5-restricted sap.fe
30
30
  * @experimental As of version 1.54 Disclaimer: Usage Restrictions: The components of this library are under development and documented as private. Their APIs are subject to change and should not be used in productive scenarios without further agreement. A general availability of sap.ui.mdc will be announced via the usual channels.
31
31
  */
32
32
  var thisLib = sap.ui.getCore().initLibrary({
33
- version: "1.102.1",
33
+ version: "1.103.1",
34
34
  name: "sap.ui.mdc",
35
35
  dependencies: ["sap.ui.core", "sap.m"],
36
36
  designtime: "sap/ui/mdc/designtime/library.designtime",
@@ -251,7 +251,6 @@
251
251
  *
252
252
  * @private
253
253
  * @ui5-restricted sap.ui.mdc.valuehelp.ITypeaheadContainer
254
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
255
254
  */
256
255
 
257
256
 
@@ -284,7 +283,6 @@
284
283
  * @method
285
284
  * @private
286
285
  * @ui5-restricted sap.ui.mdc.valuehelp.ITypeaheadContainer
287
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
288
286
  */
289
287
 
290
288
  /**
@@ -296,7 +294,6 @@
296
294
  *
297
295
  * @private
298
296
  * @ui5-restricted sap.ui.mdc.valuehelp.ITypeaheadContainer
299
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
300
297
  */
301
298
 
302
299
  /**
@@ -307,7 +304,6 @@
307
304
  * @returns {boolean} True if value help shall open as valuehelp
308
305
  * @private
309
306
  * @ui5-restricted sap.ui.mdc.valuehelp.ITypeaheadContainer
310
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
311
307
  */
312
308
 
313
309
  /**
@@ -316,11 +312,10 @@
316
312
  * @method
317
313
  * @private
318
314
  * @ui5-restricted sap.ui.mdc.valuehelp.ITypeaheadContainer
319
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
320
315
  */
321
316
 
322
317
 
323
- /**
318
+ /**
324
319
  *
325
320
  * Interface for valuehelp containers
326
321
  *
@@ -442,7 +437,6 @@
442
437
  *
443
438
  * @private
444
439
  * @ui5-restricted sap.ui.mdc.ValueHelp
445
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
446
440
  */
447
441
 
448
442
 
@@ -475,8 +469,7 @@
475
469
  * @method
476
470
  * @private
477
471
  * @ui5-restricted sap.ui.mdc.ValueHelp
478
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
479
- */
472
+ */
480
473
 
481
474
  /**
482
475
  * Defines if the typeahead can be used for input validation.
@@ -487,7 +480,6 @@
487
480
  *
488
481
  * @private
489
482
  * @ui5-restricted sap.ui.mdc.ValueHelp
490
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
491
483
  */
492
484
 
493
485
  /**
@@ -498,7 +490,6 @@
498
490
  * @returns {boolean} True if value help shall open as valuehelp
499
491
  * @private
500
492
  * @ui5-restricted sap.ui.mdc.ValueHelp
501
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
502
493
  */
503
494
 
504
495
  /**
@@ -507,7 +498,6 @@
507
498
  * @method
508
499
  * @private
509
500
  * @ui5-restricted sap.ui.mdc.ValueHelp
510
- * @ui5-metamodel This method also will be described in the UI5 (legacy) designtime metamodel
511
501
  */
512
502
 
513
503
 
@@ -720,7 +710,6 @@
720
710
  * @since 1.80
721
711
  * @public
722
712
  * @function
723
- * @ui5-metamodel This interface also will be described in the UI5 (legacy) designtime metamodel
724
713
  */
725
714
 
726
715
  /**
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @class The ContactDetails control is used to show additional information like for example 'contact details'.
26
26
  * @extends sap.ui.core.Control
27
27
  * @author SAP SE
28
- * @version 1.102.1
28
+ * @version 1.103.1
29
29
  * @constructor
30
30
  * @private
31
31
  * @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.102.1
19
+ * @version 1.103.1
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.102.1
19
+ * @version 1.103.1
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.102.1
19
+ * @version 1.103.1
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.102.1
19
+ * @version 1.103.1
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.102.1
14
+ * @version 1.103.1
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.102.1
16
+ * @version 1.103.1
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.102.1
19
+ * @version 1.103.1
20
20
  * @constructor
21
21
  * @private
22
22
  * @since 1.58.0
@@ -40,6 +40,14 @@ sap.ui.define([
40
40
  href: {
41
41
  type: "string"
42
42
  },
43
+ /**
44
+ * Destination link for a navigation operation in internal format provided by FLP.
45
+ * @protected
46
+ */
47
+ internalHref: {
48
+ type: "string",
49
+ defaultValue: null
50
+ },
43
51
  target: {
44
52
  type: "string",
45
53
  defaultValue: "_self"
@@ -24,8 +24,9 @@ sap.ui.define([
24
24
  "sap/ui/mdc/p13n/subcontroller/LinkPanelController",
25
25
  "sap/ui/mdc/p13n/Engine",
26
26
  "sap/ui/mdc/mixin/AdaptationMixin",
27
- "sap/ui/mdc/link/PanelItem"
28
- ], function(Control, PanelRenderer, VerticalLayout, Log, HorizontalLayout, HBox, VBox, ImageContent, Link, Label, Text, Button, FlexItemData, JSONModel, BindingMode, ManagedObjectObserver, LinkPanelController, Engine, AdaptationMixin, PanelItem) {
27
+ "sap/ui/mdc/link/PanelItem",
28
+ "sap/ui/core/CustomData"
29
+ ], function(Control, PanelRenderer, VerticalLayout, Log, HorizontalLayout, HBox, VBox, ImageContent, Link, Label, Text, Button, FlexItemData, JSONModel, BindingMode, ManagedObjectObserver, LinkPanelController, Engine, AdaptationMixin, PanelItem, CustomData) {
29
30
  "use strict";
30
31
 
31
32
  /**
@@ -37,7 +38,7 @@ sap.ui.define([
37
38
  * supposed that the properties of the item structure is not changed.
38
39
  * @extends sap.ui.core.Control
39
40
  * @author SAP SE
40
- * @version 1.102.1
41
+ * @version 1.103.1
41
42
  * @constructor
42
43
  * @private
43
44
  * @since 1.54.0
@@ -254,7 +255,11 @@ sap.ui.define([
254
255
  }
255
256
  },
256
257
  press: this.onPressLink.bind(this),
257
- wrapping: true
258
+ wrapping: true,
259
+ customData: new CustomData({
260
+ key: "internalHref",
261
+ value: "{$sapuimdclinkPanel>internalHref}"
262
+ })
258
263
  });
259
264
  var oLabel = new Label({
260
265
  text: "{$sapuimdclinkPanel>text}",
@@ -316,8 +321,11 @@ sap.ui.define([
316
321
  };
317
322
 
318
323
  Panel.prototype.onPressLink = function(oEvent) {
319
- if (this.getBeforeNavigationCallback() && oEvent.getSource() && oEvent.getSource().getTarget() !== "_blank") {
320
- var sHref = oEvent.getSource().getHref();
324
+ var oLink = oEvent.getSource();
325
+ if (this.getBeforeNavigationCallback() && oLink && oLink.getTarget() !== "_blank") {
326
+ // Fall back to using href property when there is no internalHref
327
+ var bUseInternalHref = oLink && oLink.getCustomData() && oLink.getCustomData()[0].getValue();
328
+ var sHref = bUseInternalHref ? oLink.getCustomData()[0].getValue() : oLink.getHref();
321
329
  oEvent.preventDefault();
322
330
  this.getBeforeNavigationCallback()(oEvent).then(function(bNavigate) {
323
331
  if (bNavigate) {
@@ -364,6 +372,7 @@ sap.ui.define([
364
372
  id: oItem.name,
365
373
  description: oItem.description,
366
374
  href: oItem.href,
375
+ internalHref: oItem.internalHref,
367
376
  target: oItem.target,
368
377
  text: oItem.text,
369
378
  visible: oItem.visible
@@ -373,8 +382,11 @@ sap.ui.define([
373
382
  this._getInternalModel().setProperty("/showResetEnabled", bShowResetEnabled);
374
383
  };
375
384
 
376
- var oPopover = this.getParent();
377
- oPopover.setModal(true);
385
+ var oParent = this.getParent();
386
+ // In case of mobile oParent isA sap.m.Dialog
387
+ if (oParent.isA("sap.m.Popover")) {
388
+ oParent.setModal(true);
389
+ }
378
390
  Engine.getInstance().uimanager.show(this, "LinkItems").then(function(oDialog) {
379
391
  var oResetButton = oDialog.getCustomHeader().getContentRight()[0];
380
392
  var oSelectionPanel = oDialog.getContent()[0];
@@ -386,8 +398,10 @@ sap.ui.define([
386
398
  oSelectionPanel.attachChange(function(oEvent) {
387
399
  fnUpdateResetButton.call(this, oSelectionPanel);
388
400
  }.bind(this));
389
- oDialog.attachAfterClose(function(){
390
- oPopover.setModal(false);
401
+ oDialog.attachAfterClose(function() {
402
+ if (oParent.isA("sap.m.Popover")) {
403
+ oParent.setModal(false);
404
+ }
391
405
  });
392
406
  }.bind(this));
393
407
  }.bind(this));
@@ -591,6 +605,7 @@ sap.ui.define([
591
605
  },
592
606
  text: oItem.text,
593
607
  href: oItem.href,
608
+ internalHref: oItem.internalHref,
594
609
  description: oItem.description,
595
610
  target: oItem.target,
596
611
  visible: oItem.visible