@openui5/sap.ui.mdc 1.141.2 → 1.143.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 (189) hide show
  1. package/README.md +2 -2
  2. package/REUSE.toml +39 -1
  3. package/THIRDPARTY.txt +36 -3
  4. package/package.json +4 -4
  5. package/src/sap/ui/mdc/.library +1 -1
  6. package/src/sap/ui/mdc/ActionToolbar.js +89 -63
  7. package/src/sap/ui/mdc/Chart.js +1 -1
  8. package/src/sap/ui/mdc/Control.js +1 -1
  9. package/src/sap/ui/mdc/DefaultTypeMap.js +1 -1
  10. package/src/sap/ui/mdc/Element.js +1 -1
  11. package/src/sap/ui/mdc/Field.js +31 -8
  12. package/src/sap/ui/mdc/FilterBar.js +1 -1
  13. package/src/sap/ui/mdc/FilterField.js +11 -11
  14. package/src/sap/ui/mdc/Geomap.js +571 -0
  15. package/src/sap/ui/mdc/GeomapDelegate.js +285 -0
  16. package/src/sap/ui/mdc/GeomapRenderer.js +76 -0
  17. package/src/sap/ui/mdc/Link.js +1 -1
  18. package/src/sap/ui/mdc/MultiValueField.js +7 -7
  19. package/src/sap/ui/mdc/Table.js +141 -116
  20. package/src/sap/ui/mdc/TableDelegate.js +3 -2
  21. package/src/sap/ui/mdc/ValueHelp.js +1 -1
  22. package/src/sap/ui/mdc/ValueHelpDelegate.js +4 -1
  23. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -1
  24. package/src/sap/ui/mdc/chart/ChartImplementationContainer.js +1 -1
  25. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
  26. package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
  27. package/src/sap/ui/mdc/chart/ToolbarControlFactory.js +1 -1
  28. package/src/sap/ui/mdc/chart/Util.js +5 -2
  29. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  30. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  31. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  32. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  33. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +1 -1
  34. package/src/sap/ui/mdc/condition/Operator.js +1 -1
  35. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +1 -1
  36. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  37. package/src/sap/ui/mdc/designtime/geomap/Geomap.designtime.js +23 -0
  38. package/src/sap/ui/mdc/enums/GeomapControlPosition.js +46 -0
  39. package/src/sap/ui/mdc/enums/TableActionPosition.js +123 -0
  40. package/src/sap/ui/mdc/enums/TablePopinDisplay.js +36 -0
  41. package/src/sap/ui/mdc/field/ConditionType.js +1 -1
  42. package/src/sap/ui/mdc/field/ConditionTypeMixin.js +1 -1
  43. package/src/sap/ui/mdc/field/ConditionsType.js +1 -1
  44. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  45. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +1 -1
  46. package/src/sap/ui/mdc/field/FieldBase.js +137 -66
  47. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  48. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  49. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  50. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  51. package/src/sap/ui/mdc/field/FieldSelect.js +7 -1
  52. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  53. package/src/sap/ui/mdc/field/MultiValueFieldDelegate.js +22 -0
  54. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -1
  55. package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
  56. package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
  57. package/src/sap/ui/mdc/field/content/ContentFactory.js +3 -0
  58. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +35 -1
  59. package/src/sap/ui/mdc/filterbar/FilterBarBaseRenderer.js +3 -0
  60. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  61. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +1 -1
  62. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +1 -1
  63. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  64. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  65. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  66. package/src/sap/ui/mdc/flexibility/ItemBaseFlex.js +1 -1
  67. package/src/sap/ui/mdc/flexibility/SortFlex.js +12 -5
  68. package/src/sap/ui/mdc/flexibility/Table.flexibility.js +17 -11
  69. package/src/sap/ui/mdc/flexibility/actiontoolbar/CombineAction.js +1 -1
  70. package/src/sap/ui/mdc/flexibility/actiontoolbar/SplitAction.js +1 -1
  71. package/src/sap/ui/mdc/flexibility/helpers/getAffectedSorter.js +25 -0
  72. package/src/sap/ui/mdc/geomap/Item.js +48 -0
  73. package/src/sap/ui/mdc/geomap/PropertyHelper.js +70 -0
  74. package/src/sap/ui/mdc/library.js +19 -4
  75. package/src/sap/ui/mdc/link/Factory.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 +15 -1
  83. package/src/sap/ui/mdc/messagebundle_ar.properties +8 -0
  84. package/src/sap/ui/mdc/messagebundle_bg.properties +8 -0
  85. package/src/sap/ui/mdc/messagebundle_ca.properties +8 -0
  86. package/src/sap/ui/mdc/messagebundle_cnr.properties +8 -0
  87. package/src/sap/ui/mdc/messagebundle_cs.properties +8 -0
  88. package/src/sap/ui/mdc/messagebundle_cy.properties +9 -1
  89. package/src/sap/ui/mdc/messagebundle_da.properties +8 -0
  90. package/src/sap/ui/mdc/messagebundle_de.properties +10 -2
  91. package/src/sap/ui/mdc/messagebundle_el.properties +9 -1
  92. package/src/sap/ui/mdc/messagebundle_en.properties +9 -1
  93. package/src/sap/ui/mdc/messagebundle_en_GB.properties +9 -1
  94. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +12 -1
  95. package/src/sap/ui/mdc/messagebundle_es.properties +10 -2
  96. package/src/sap/ui/mdc/messagebundle_es_MX.properties +8 -0
  97. package/src/sap/ui/mdc/messagebundle_et.properties +8 -0
  98. package/src/sap/ui/mdc/messagebundle_fi.properties +8 -0
  99. package/src/sap/ui/mdc/messagebundle_fr.properties +11 -3
  100. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +8 -0
  101. package/src/sap/ui/mdc/messagebundle_hi.properties +8 -0
  102. package/src/sap/ui/mdc/messagebundle_hr.properties +9 -1
  103. package/src/sap/ui/mdc/messagebundle_hu.properties +8 -0
  104. package/src/sap/ui/mdc/messagebundle_id.properties +11 -3
  105. package/src/sap/ui/mdc/messagebundle_it.properties +8 -0
  106. package/src/sap/ui/mdc/messagebundle_iw.properties +8 -0
  107. package/src/sap/ui/mdc/messagebundle_ja.properties +9 -1
  108. package/src/sap/ui/mdc/messagebundle_kk.properties +9 -1
  109. package/src/sap/ui/mdc/messagebundle_ko.properties +8 -0
  110. package/src/sap/ui/mdc/messagebundle_lt.properties +8 -0
  111. package/src/sap/ui/mdc/messagebundle_lv.properties +8 -0
  112. package/src/sap/ui/mdc/messagebundle_mk.properties +8 -0
  113. package/src/sap/ui/mdc/messagebundle_ms.properties +9 -1
  114. package/src/sap/ui/mdc/messagebundle_nl.properties +8 -0
  115. package/src/sap/ui/mdc/messagebundle_no.properties +8 -0
  116. package/src/sap/ui/mdc/messagebundle_pl.properties +8 -0
  117. package/src/sap/ui/mdc/messagebundle_pt.properties +9 -1
  118. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +8 -0
  119. package/src/sap/ui/mdc/messagebundle_ro.properties +9 -1
  120. package/src/sap/ui/mdc/messagebundle_ru.properties +9 -1
  121. package/src/sap/ui/mdc/messagebundle_sh.properties +8 -0
  122. package/src/sap/ui/mdc/messagebundle_sk.properties +8 -0
  123. package/src/sap/ui/mdc/messagebundle_sl.properties +9 -1
  124. package/src/sap/ui/mdc/messagebundle_sr.properties +8 -0
  125. package/src/sap/ui/mdc/messagebundle_sv.properties +8 -0
  126. package/src/sap/ui/mdc/messagebundle_th.properties +8 -0
  127. package/src/sap/ui/mdc/messagebundle_tr.properties +9 -1
  128. package/src/sap/ui/mdc/messagebundle_uk.properties +8 -0
  129. package/src/sap/ui/mdc/messagebundle_vi.properties +11 -3
  130. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +9 -1
  131. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +8 -0
  132. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  133. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  134. package/src/sap/ui/mdc/mixin/FilterBarLayoutMixin.js +1 -1
  135. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -1
  136. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  137. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +1 -1
  138. package/src/sap/ui/mdc/odata/TypeMap.js +1 -1
  139. package/src/sap/ui/mdc/odata/v4/GeomapDelegate.js +60 -0
  140. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +53 -2
  141. package/src/sap/ui/mdc/odata/v4/TypeMap.js +1 -1
  142. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +16 -0
  143. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  144. package/src/sap/ui/mdc/p13n/StateUtil.js +1 -1
  145. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +3 -0
  146. package/src/sap/ui/mdc/p13n/subcontroller/ColumnFreezeController.js +1 -1
  147. package/src/sap/ui/mdc/p13n/subcontroller/ShowDetailsController.js +1 -1
  148. package/src/sap/ui/mdc/rules/Table.support.js +149 -118
  149. package/src/sap/ui/mdc/table/ActionLayoutData.js +47 -0
  150. package/src/sap/ui/mdc/table/Column.js +40 -186
  151. package/src/sap/ui/mdc/table/ColumnSettings.js +1 -1
  152. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  153. package/src/sap/ui/mdc/table/DragDropConfig.js +1 -1
  154. package/src/sap/ui/mdc/table/GridTableType.js +35 -21
  155. package/src/sap/ui/mdc/table/ODataV4PropertyHelper.js +1 -1
  156. package/src/sap/ui/mdc/table/PropertyHelper.js +1 -1
  157. package/src/sap/ui/mdc/table/ResponsiveColumnSettings.js +1 -1
  158. package/src/sap/ui/mdc/table/ResponsiveTableType.js +97 -14
  159. package/src/sap/ui/mdc/table/RowActionItem.js +1 -1
  160. package/src/sap/ui/mdc/table/RowSettings.js +1 -1
  161. package/src/sap/ui/mdc/table/TableSettings.js +34 -7
  162. package/src/sap/ui/mdc/table/TableTypeBase.js +38 -7
  163. package/src/sap/ui/mdc/table/utils/Personalization.js +1 -1
  164. package/src/sap/ui/mdc/themes/base/Geomap.less +50 -0
  165. package/src/sap/ui/mdc/ushell/SemanticObjectMapping.js +1 -1
  166. package/src/sap/ui/mdc/ushell/SemanticObjectMappingItem.js +1 -1
  167. package/src/sap/ui/mdc/ushell/SemanticObjectUnavailableAction.js +1 -1
  168. package/src/sap/ui/mdc/util/InfoBar.js +1 -1
  169. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  170. package/src/sap/ui/mdc/util/PropertyHelper.js +1 -1
  171. package/src/sap/ui/mdc/util/PropertyHelperUtil.js +1 -1
  172. package/src/sap/ui/mdc/valuehelp/Dialog.js +2 -2
  173. package/src/sap/ui/mdc/valuehelp/FilterBar.js +22 -3
  174. package/src/sap/ui/mdc/valuehelp/Popover.js +1 -1
  175. package/src/sap/ui/mdc/valuehelp/base/Container.js +1 -1
  176. package/src/sap/ui/mdc/valuehelp/base/Content.js +1 -1
  177. package/src/sap/ui/mdc/valuehelp/base/DefineConditionPanel.js +140 -26
  178. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  179. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +4 -3
  180. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +1 -1
  181. package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
  182. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +1 -1
  183. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +1 -1
  184. package/src/sap/ui/mdc/valuehelp/content/FixedListItem.js +1 -1
  185. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +1 -1
  186. package/src/sap/ui/mdc/valuehelp/content/MTable.js +7 -5
  187. package/test/sap/ui/mdc/testutils/opa/filterbar/Actions.js +36 -0
  188. package/test/sap/ui/mdc/testutils/opa/filterfield/Actions.js +20 -3
  189. package/test/sap/ui/mdc/testutils/opa/valueHelp/Actions.js +33 -1
package/README.md CHANGED
@@ -14,7 +14,7 @@ The APIs in this library are experimental. See the [OpenUI5 Compatibility Rules]
14
14
 
15
15
  ## Usage
16
16
 
17
- Add this library as a dependency to your UI5 project by using [UI5 Tooling](https://sap.github.io/ui5-tooling/):
17
+ Add this library as a dependency to your UI5 project by using [UI5 CLI](https://ui5.github.io/cli/):
18
18
 
19
19
 
20
20
 
@@ -27,7 +27,7 @@ ui5 add sap.ui.mdc
27
27
 
28
28
 
29
29
 
30
- For more information, please refer to our documentation on [Consuming OpenUI5 Libraries](https://sap.github.io/ui5-tooling/pages/OpenUI5/).
30
+ For more information, please refer to our documentation on [Consuming OpenUI5 Libraries](https://ui5.github.io/cli/pages/OpenUI5/).
31
31
 
32
32
 
33
33
 
package/REUSE.toml CHANGED
@@ -21,6 +21,44 @@ SPDX-License-Identifier = "Apache-2.0"
21
21
  #
22
22
 
23
23
 
24
+ # Library: sap.f:
25
+
26
+ [[annotations]]
27
+ path = "src/sap.f/src/sap/f/thirdparty/**"
28
+ precedence = "aggregate"
29
+ SPDX-FileCopyrightText = "SAP"
30
+ SPDX-License-Identifier = "Apache-2.0"
31
+ SPDX-FileComment = "these files belong to: UI5 Web Components"
32
+
33
+ [[annotations]]
34
+ path = "src/sap.f/src/sap/f/thirdparty/**"
35
+ precedence = "aggregate"
36
+ SPDX-FileCopyrightText = "SAP"
37
+ SPDX-License-Identifier = "Apache-2.0"
38
+ SPDX-FileComment = "these files belong to: UI5 Web Components Fiori"
39
+
40
+ [[annotations]]
41
+ path = "src/sap.f/src/sap/f/thirdparty/**"
42
+ precedence = "aggregate"
43
+ SPDX-FileCopyrightText = "SAP"
44
+ SPDX-License-Identifier = "Apache-2.0"
45
+ SPDX-FileComment = "these files belong to: UI5 Web Components Icons"
46
+
47
+ [[annotations]]
48
+ path = "src/sap.f/src/sap/f/thirdparty/**"
49
+ precedence = "aggregate"
50
+ SPDX-FileCopyrightText = "SAP"
51
+ SPDX-License-Identifier = "Apache-2.0"
52
+ SPDX-FileComment = "these files belong to: UI5 Web Components Icons Business Suite"
53
+
54
+ [[annotations]]
55
+ path = "src/sap.f/src/sap/f/thirdparty/**"
56
+ precedence = "aggregate"
57
+ SPDX-FileCopyrightText = "SAP"
58
+ SPDX-License-Identifier = "Apache-2.0"
59
+ SPDX-FileComment = "these files belong to: UI5 Web Components Icons TNT"
60
+
61
+
24
62
  # Library: sap.m:
25
63
 
26
64
  [[annotations]]
@@ -347,7 +385,7 @@ SPDX-FileComment = "these files belong to: handlebars"
347
385
  [[annotations]]
348
386
  path = "src/sap.ui.core/src/sap/ui/thirdparty/require.js"
349
387
  precedence = "aggregate"
350
- SPDX-FileCopyrightText = "2010-2012, The Dojo Foundation"
388
+ SPDX-FileCopyrightText = "2010-2024, jQuery Foundation and other contributors"
351
389
  SPDX-License-Identifier = "MIT"
352
390
  SPDX-FileComment = "these files belong to: requireJS"
353
391
 
package/THIRDPARTY.txt CHANGED
@@ -4,6 +4,39 @@ each subcomponent.
4
4
  The full text of all referenced licenses is appended at the end of this file.
5
5
 
6
6
 
7
+ Library: sap.f:
8
+
9
+ Component: UI5 Web Components, version: 2.15.0
10
+ Copyright: SAP
11
+ License: Apache-2.0
12
+ License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
13
+ Contained in: src/sap.f/src/sap/f/thirdparty/**
14
+
15
+ Component: UI5 Web Components Fiori, version: 2.15.0
16
+ Copyright: SAP
17
+ License: Apache-2.0
18
+ License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
19
+ Contained in: src/sap.f/src/sap/f/thirdparty/**
20
+
21
+ Component: UI5 Web Components Icons, version: 2.15.0
22
+ Copyright: SAP
23
+ License: Apache-2.0
24
+ License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
25
+ Contained in: src/sap.f/src/sap/f/thirdparty/**
26
+
27
+ Component: UI5 Web Components Icons Business Suite, version: 2.15.0
28
+ Copyright: SAP
29
+ License: Apache-2.0
30
+ License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
31
+ Contained in: src/sap.f/src/sap/f/thirdparty/**
32
+
33
+ Component: UI5 Web Components Icons TNT, version: 2.15.0
34
+ Copyright: SAP
35
+ License: Apache-2.0
36
+ License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
37
+ Contained in: src/sap.f/src/sap/f/thirdparty/**
38
+
39
+
7
40
  Library: sap.m:
8
41
 
9
42
  Component: purify.js, version: 3.2.4
@@ -221,8 +254,8 @@ License: MIT
221
254
  License Text: https://github.com/UI5/openui5/blob/master/LICENSES/MIT.txt
222
255
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/handlebars.js
223
256
 
224
- Component: requireJS, version: 2.1.8
225
- Copyright: 2010-2012, The Dojo Foundation
257
+ Component: requireJS, version: 2.3.7
258
+ Copyright: 2010-2024, jQuery Foundation and other contributors
226
259
  License: MIT
227
260
  License Text: https://github.com/UI5/openui5/blob/master/LICENSES/MIT.txt
228
261
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/require.js
@@ -354,7 +387,7 @@ Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/D
354
387
 
355
388
  Library: sap.ui.integration:
356
389
 
357
- Component: UI5 Web Components, version: 1.7.0
390
+ Component: UI5 Web Components, version: 2.15.0
358
391
  Copyright: SAP
359
392
  License: Apache-2.0
360
393
  License Text: https://github.com/UI5/openui5/blob/master/LICENSES/Apache-2.0.txt
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.mdc",
3
- "version": "1.141.2",
3
+ "version": "1.143.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/UI5/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.m": "1.141.2",
18
- "@openui5/sap.ui.core": "1.141.2",
19
- "@openui5/sap.ui.layout": "1.141.2"
17
+ "@openui5/sap.m": "1.143.0",
18
+ "@openui5/sap.ui.core": "1.143.0",
19
+ "@openui5/sap.ui.layout": "1.143.0"
20
20
  }
21
21
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2025 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.141.2</version>
9
+ <version>1.143.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.ui.mdc</documentation>
12
12
 
@@ -33,7 +33,7 @@ sap.ui.define([
33
33
  * The content aggregation of the control must not be used.
34
34
  * @extends sap.m.OverflowToolbar
35
35
  * @author SAP SE
36
- * @version 1.141.2
36
+ * @version 1.143.0
37
37
  * @constructor
38
38
  * @since 1.58
39
39
  * @private
@@ -53,17 +53,6 @@ sap.ui.define([
53
53
  type: "boolean",
54
54
  group: "Behavior",
55
55
  defaultValue: true
56
- },
57
-
58
- /**
59
- * Defines the order of the end aggregation.
60
- * @private
61
- * @ui5-private sap.ui.mdc
62
- */
63
- _endOrder: {
64
- type: "string[]",
65
- defaultValue: [],
66
- visibility: "hidden"
67
56
  }
68
57
  },
69
58
  aggregations: {
@@ -97,6 +86,15 @@ sap.ui.define([
97
86
  end: {
98
87
  type: "sap.ui.core.Control",
99
88
  multiple: true
89
+ },
90
+
91
+ /**
92
+ * Actions that are combined with the <code>end</code> aggregation according to the <code>position</code> information provided via the {@link sap.ui.mdc.IActionLayoutData IActionLayoutData} interface as <code>layoutData</code>.
93
+ * @since 1.143
94
+ */
95
+ controlActions: {
96
+ type: "sap.ui.core.Control",
97
+ multiple: true
100
98
  }
101
99
  }
102
100
  },
@@ -107,7 +105,8 @@ sap.ui.define([
107
105
  "begin",
108
106
  "between",
109
107
  "actions",
110
- "end"
108
+ "end",
109
+ "controlActions"
111
110
  ];
112
111
 
113
112
  const fnGetOverflowToolbarConfig = function() {
@@ -121,6 +120,40 @@ sap.ui.define([
121
120
  return oConfig;
122
121
  };
123
122
 
123
+ const fnGetGroupNameOfAction = (oAction) => {
124
+ const oLayoutData = oAction.getLayoutData();
125
+ if (oLayoutData?.isA("sap.ui.mdc.IActionLayoutData")) {
126
+ const sPosition = oLayoutData.getPosition();
127
+ return `${sPosition}`.split("Actions")[0];
128
+ }
129
+ };
130
+
131
+ const fnActionsSorter = (oAction1, oAction2) => {
132
+ const oLayoutData1 = oAction1.getLayoutData();
133
+ const oLayoutData2 = oAction2.getLayoutData();
134
+ const bAction1ImplementsIActionLayoutData = oLayoutData1?.isA("sap.ui.mdc.IActionLayoutData");
135
+ const bAction2ImplementsIActionLayoutData = oLayoutData2?.isA("sap.ui.mdc.IActionLayoutData");
136
+
137
+ if (!bAction1ImplementsIActionLayoutData && !bAction2ImplementsIActionLayoutData) {
138
+ return 0; // No layout data, so no sorting
139
+ }
140
+ if (bAction1ImplementsIActionLayoutData && !bAction2ImplementsIActionLayoutData) {
141
+ return -1; // Action 1 implements IActionLayoutData, so it should come first
142
+ }
143
+ if (!bAction1ImplementsIActionLayoutData && bAction2ImplementsIActionLayoutData) {
144
+ return 1; // Action 2 implements IActionLayoutData, so it should come first
145
+ }
146
+
147
+ const mPositionEnum1 = oLayoutData1.getMetadata().getProperty("position").getType().getEnumValues();
148
+ const mPositionEnum2 = oLayoutData2.getMetadata().getProperty("position").getType().getEnumValues();
149
+ const iPosition1 = Object.getOwnPropertyNames(mPositionEnum1).indexOf(oLayoutData1.getPosition());
150
+ const iPosition2 = Object.getOwnPropertyNames(mPositionEnum2).indexOf(oLayoutData2.getPosition());
151
+
152
+ return iPosition1 - iPosition2;
153
+ };
154
+
155
+ ActionToolbar.ShowGroupSeparators = window.location.search.includes("sap-ui-action-toolbar-separators");
156
+
124
157
  ActionToolbar.prototype.init = function() {
125
158
  OverflowToolbar.prototype.init.apply(this, arguments);
126
159
  // Separator between begin (title) and between (variant) content of the toolbar.
@@ -166,23 +199,11 @@ sap.ui.define([
166
199
  }
167
200
  };
168
201
 
169
- ActionToolbar.prototype.setProperty = function(sProperty) {
170
- if (sProperty === "_endOrder") {
171
- this._bEnforceEndOrder = true;
172
- }
173
-
174
- return OverflowToolbar.prototype.setProperty.apply(this, arguments);
175
- };
176
-
177
202
  ActionToolbar.prototype.addAggregation = function(sAggregationName, oControl) {
178
203
  if (sAggregationName === "content") {
179
204
  throw new Error("Mutator functions of the content aggregation of the ActionToolbar '" + this.getId() + "' must not be used.");
180
205
  }
181
206
 
182
- if (sAggregationName === "end") {
183
- this._bEnforceEndOrder = true;
184
- }
185
-
186
207
  const aArguments = arguments;
187
208
  if (aAggregations.includes(sAggregationName)) {
188
209
  this._registerControlListener(oControl);
@@ -226,10 +247,6 @@ sap.ui.define([
226
247
  throw new Error("Mutator functions of the content aggregation of the ActionToolbar '" + this.getId() + "' must not be used.");
227
248
  }
228
249
 
229
- if (sAggregationName === "end") {
230
- this._bEnforceEndOrder = true;
231
- }
232
-
233
250
  if (aAggregations.includes(sAggregationName)) {
234
251
  this._registerControlListener(oControl);
235
252
  this._resetAndInvalidateToolbar(false);
@@ -306,29 +323,6 @@ sap.ui.define([
306
323
  });
307
324
  };
308
325
 
309
- ActionToolbar.prototype.onBeforeRendering = function() {
310
- OverflowToolbar.prototype.onBeforeRendering.apply(this, arguments);
311
-
312
- if (this._bEnforceEndOrder) {
313
-
314
- this.getProperty("_endOrder").reduce((iOrder, sElementId) => {
315
- const oElement = Element.getElementById(sElementId);
316
- if (!oElement) {
317
- return iOrder;
318
- }
319
-
320
- const iIndex = this.indexOfEnd(oElement);
321
- if (iIndex != iOrder) {
322
- this.insertEnd(this.removeEnd(oElement), iOrder);
323
- }
324
-
325
- return iOrder + 1;
326
- }, 0);
327
-
328
- this._bEnforceEndOrder = false;
329
- }
330
- };
331
-
332
326
  // According to visual designs currently no separator between actions and end content, only title separator is handled below
333
327
  /* Begin Title Separator handling */
334
328
  ActionToolbar.prototype.onAfterRendering = function() {
@@ -387,6 +381,34 @@ sap.ui.define([
387
381
  }
388
382
  };
389
383
 
384
+ ActionToolbar.prototype._getGroupSeparator = function(sGroupName) {
385
+ const sSeparatorId = `${this.getId()}-${sGroupName}-separator`;
386
+ let oSeparator = Element.getElementById(sSeparatorId);
387
+ if (!oSeparator) {
388
+ oSeparator = new ToolbarSeparator(sSeparatorId);
389
+ this.addDependent(oSeparator);
390
+ }
391
+ return oSeparator;
392
+ };
393
+
394
+ ActionToolbar.prototype._insertGroupSeparators = function(aActions) {
395
+ const aVisibleActions = aActions.filter((oAction) => oAction.getVisible());
396
+ aVisibleActions.forEach((oVisibleAction, iVisibleIndex) => {
397
+ const oNextVisibleAction = aVisibleActions[iVisibleIndex + 1];
398
+ if (!oNextVisibleAction) {
399
+ return;
400
+ }
401
+
402
+ const sGroupNameOfVisibleAction = fnGetGroupNameOfAction(oVisibleAction);
403
+ const sGroupNameOfNextVisibleAction = fnGetGroupNameOfAction(oNextVisibleAction);
404
+ if (sGroupNameOfVisibleAction !== sGroupNameOfNextVisibleAction) {
405
+ const oSeparator = this._getGroupSeparator(sGroupNameOfVisibleAction);
406
+ const iActualIndexOfVisibleAction = aActions.indexOf(oVisibleAction);
407
+ aActions.splice(iActualIndexOfVisibleAction + 1, 0, oSeparator);
408
+ }
409
+ });
410
+ };
411
+
390
412
  /*
391
413
  * Overwrite generated functions to use internal array to look for aggregation
392
414
  */
@@ -396,17 +418,21 @@ sap.ui.define([
396
418
 
397
419
  // Overwrite content aggregation functions
398
420
  ActionToolbar.prototype.getContent = function() {
399
- let aContent = this.getBegin();
400
- aContent.push(this._oBeginSeparator);
401
- aContent = aContent.concat(this.getBetween());
402
- aContent.push(this._oSpacer);
403
- aContent = aContent.concat(this.getEndActionsBegin());
404
- aContent.push(this._oEndActionsBeginSeparator);
405
- aContent = aContent.concat(this.getEnd());
406
- aContent.push(this._oEndActionsEndSeparator);
407
- aContent = aContent.concat(this.getEndActionsEnd());
408
-
409
- return aContent;
421
+ const aEndAndControlActions = [...this.getEnd(), ...this.getControlActions()];
422
+ const aSortedEndAndControlActions = aEndAndControlActions.sort(fnActionsSorter);
423
+ ActionToolbar.ShowGroupSeparators && this._insertGroupSeparators(aSortedEndAndControlActions);
424
+
425
+ return [
426
+ ...this.getBegin(),
427
+ this._oBeginSeparator,
428
+ ...this.getBetween(),
429
+ this._oSpacer,
430
+ ...this.getEndActionsBegin(),
431
+ this._oEndActionsBeginSeparator,
432
+ ...aSortedEndAndControlActions,
433
+ this._oEndActionsEndSeparator,
434
+ ...this.getEndActionsEnd()
435
+ ];
410
436
  };
411
437
 
412
438
  ActionToolbar.prototype.getCurrentState = function() {
@@ -79,7 +79,7 @@ sap.ui.define([
79
79
  * @extends sap.ui.mdc.Control
80
80
  * @borrows sap.ui.mdc.mixin.FilterIntegrationMixin.rebind as #rebind
81
81
  * @author SAP SE
82
- * @version 1.141.2
82
+ * @version 1.143.0
83
83
  * @constructor
84
84
  *
85
85
  * @public
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.core.Control
24
24
  * @abstract
25
25
  * @author SAP SE
26
- * @version 1.141.2
26
+ * @version 1.143.0
27
27
  * @alias sap.ui.mdc.Control
28
28
  *
29
29
  * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitControlDelegate as #awaitControlDelegate
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * </ul>
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.141.2
32
+ * @version 1.143.0
33
33
  * @public
34
34
  * @since 1.114.0
35
35
  * @namespace
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.core.Element
24
24
  * @abstract
25
25
  * @author SAP SE
26
- * @version 1.141.2
26
+ * @version 1.143.0
27
27
  * @alias sap.ui.mdc.Element
28
28
  *
29
29
  * @borrows sap.ui.mdc.mixin.DelegateMixin.awaitControlDelegate as #awaitControlDelegate
@@ -50,10 +50,10 @@ sap.ui.define([
50
50
  *
51
51
  * <ul>
52
52
  * <li>In display mode, usually a {@link sap.m.Text Text} control is rendered.</li>
53
- * <li>If <code>multipleLines</code> is set, an {@link sap.m.ExpandableText ExpandableText} control is rendered.</li>
54
- * <li>If <code>fieldInfo</code> is set and it is configured to be triggerable, a {@link sap.m.Link Link} control is rendered. The <code>multipleLines</code> property is forwarded to the <code>wrapping</code> property of the {@link sap.m.Link Link} control.</li>
53
+ * <li>If {@link sap.ui.mdc.field.FieldBase#getMultipleLines multipleLines} is set, an {@link sap.m.ExpandableText ExpandableText} control is rendered.</li>
54
+ * <li>If {@link sap.ui.mdc.field.FieldBase#getFieldInfo fieldInfo} is set and it is configured to be triggerable, a {@link sap.m.Link Link} control is rendered. The {@link sap.ui.mdc.field.FieldBase#getMultipleLines multipleLines} property is forwarded to the {@link sap.m.Link#setWrapping wrapping} property of the {@link sap.m.Link Link} control.</li>
55
55
  * <li>In edit mode, usually an {@link sap.m.Input Input} control is rendered.</li>
56
- * <li>If <code>multipleLines</code> is set, a {@link sap.m.TextArea TextArea} control is rendered.</li>
56
+ * <li>If {@link sap.ui.mdc.field.FieldBase#getMultipleLines multipleLines} is set, a {@link sap.m.TextArea TextArea} control is rendered.</li>
57
57
  * <li>If a date type is used, a {@link sap.m.DatePicker DatePicker} control is rendered.</li>
58
58
  * <li>If a date/time type is used, a {@link sap.m.DateTimePicker DateTimePicker} control is rendered.</li>
59
59
  * <li>If a time type is used, a {@link sap.m.TimePicker TimePicker} control is rendered.</li>
@@ -64,13 +64,13 @@ sap.ui.define([
64
64
  * @implements sap.ui.core.IFormContent, sap.ui.core.ISemanticFormContent, sap.m.IOverflowToolbarContent
65
65
  *
66
66
  * @author SAP SE
67
- * @version 1.141.2
67
+ * @version 1.143.0
68
68
  *
69
69
  * @constructor
70
70
  * @alias sap.ui.mdc.Field
71
71
  * @see {@link topic:1dd2aa91115d43409452a271d11be95b sap.ui.mdc}
72
72
  * @see {@link topic:5260b9ca249f465ab33769b9edb442aa Field Building Block (OData V4)}
73
- * @version 1.141.2
73
+ * @version 1.143.0
74
74
  * @since 1.54.0
75
75
  * @public
76
76
  */
@@ -84,6 +84,9 @@ sap.ui.define([
84
84
  *
85
85
  * To display the key and the description in one field,
86
86
  * the key must be set on the <code>value</code> property.
87
+ *
88
+ * <b>Warning:</b> Don't use a <code>Formatter</code> in the binding of this property since this only allows one-way binding.
89
+ * Therefore, no parsing of user input and no model updates are possible.
87
90
  */
88
91
  value: {
89
92
  type: "any",
@@ -96,6 +99,9 @@ sap.ui.define([
96
99
  *
97
100
  * To display the key and the description in one field,
98
101
  * the description must be set on the <code>additionalValue</code> property.
102
+ *
103
+ * <b>Warning:</b> Don't use a <code>Formatter</code> in the binding of this property since this only allows one-way binding.
104
+ * Therefore, no parsing of user input and no model updates are possible.
99
105
  */
100
106
  additionalValue: {
101
107
  type: "any",
@@ -105,7 +111,7 @@ sap.ui.define([
105
111
  },
106
112
  events: {
107
113
  /**
108
- * This event is fired when the <code>value</code> property of the field is changed by user interaction.
114
+ * This event is fired when the {@link #getValue value} property of the field is changed by user interaction.
109
115
  *
110
116
  * <b>Note</b> This event is only triggered if the used content control has a change event.
111
117
  */
@@ -115,7 +121,7 @@ sap.ui.define([
115
121
  /**
116
122
  * The new value of the <code>Field</code>.
117
123
  *
118
- * If a <code>ValueHelp</code> is assigned to the <code>Field</code>, the <code>value</code> is used as key for the <code>ValueHelp</code> items.
124
+ * If a {@link sap.ui.mdc.field.FieldBase#getValueHelp ValueHelp} is assigned to the <code>Field</code>, the <code>value</code> is used as key for the {@link sap.ui.mdc.field.FieldBase#getValueHelp ValueHelp} items.
119
125
  */
120
126
  value: { type: "string" },
121
127
 
@@ -239,6 +245,8 @@ sap.ui.define([
239
245
  this.getContentFactory().updateConditionType();
240
246
  this.invalidate(); // as new inner control might be needed
241
247
  }
248
+ } else if (oBindingInfo.formatter && (sName === "value" || sName === "additionalValue")) { // a formatter is used -> not really supported (no parsing, no model update....)
249
+ Log.error("Binding for property '" + sName + " uses Formatter, this is not fully supported. Field: " + this);
242
250
  }
243
251
 
244
252
  FieldBase.prototype.bindProperty.apply(this, arguments);
@@ -726,6 +734,21 @@ sap.ui.define([
726
734
 
727
735
  };
728
736
 
737
+ Field.prototype.shouldFireValidationSuccessOnConditionUpdate = function (aConditions) {
738
+
739
+ const vOldValue = this.getValue();
740
+ let vValue = this.getResultForChangePromise(aConditions);
741
+ vValue = _updateEmptyValue.call(this, vValue, vOldValue);
742
+
743
+ if (_compareValues.call(this, vValue, vOldValue, true)) {
744
+ // value will not be updated, therefore ValidationSuccess need to be fired manually
745
+ return true;
746
+ }
747
+
748
+ return false;
749
+
750
+ };
751
+
729
752
  const HANDLEDBYMIXIN = Symbol("sap.ui.core.message.MessageMixin");
730
753
  Field.prototype.refreshDataState = function (sName, oDataState) {
731
754
 
@@ -768,7 +791,7 @@ sap.ui.define([
768
791
  // map message to inner control, if needed
769
792
  const oBinding = this.getBinding("value"); // only check value binding
770
793
  let sControlId = this.getId();
771
- if (oBinding.isA("sap.ui.model.CompositeBinding") && this.getContentFactory().isMeasure()) {
794
+ if (oBinding?.isA("sap.ui.model.CompositeBinding") && this.getContentFactory().isMeasure()) {
772
795
  const aContent = this.getCurrentContent();
773
796
  if (aContent.length > 0) {
774
797
  if (oMessage.getMessageProcessor().isA("sap.ui.model.Model")) {
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * The metadata information is provided via the {@link module:sap/ui/mdc/FilterBarDelegate FilterBarDelegate} implementation. This implementation has to be provided by the application.
43
43
  * @extends sap.ui.mdc.filterbar.FilterBarBase
44
44
  * @author SAP SE
45
- * @version 1.141.2
45
+ * @version 1.143.0
46
46
  * @constructor
47
47
  * @public
48
48
  * @since 1.61.0
@@ -29,18 +29,18 @@ sap.ui.define([
29
29
  * @class
30
30
  * The <code>FilterField</code> control is used to filter data based on the conditions. The conditions are managed
31
31
  * in the corresponding {@link sap.ui.mdc.FilterBar FilterBar}.
32
- * That is why the <code>conditions</code> property must be bound to the related conditions in the {@link sap.ui.mdc.FilterBar FilterBar}.
33
- * The type of this data must be defined in the <code>dataType</code> property.
32
+ * That is why the {@link sap.ui.mdc.field.FieldBase#bindConditions conditions} property must be bound to the related conditions in the {@link sap.ui.mdc.FilterBar FilterBar}.
33
+ * The type of this data must be defined in the {@link sap.ui.mdc.field.FieldBase#setDataType dataType} property.
34
34
  *
35
35
  * Based on the data type settings, a default control is rendered by the <code>FilterField</code> as follows:
36
36
  *
37
37
  * <ul>
38
38
  * <li>In display mode, usually a {@link sap.m.Text Text} control is rendered.</li>
39
- * <li>If <code>multipleLines</code> is set, an {@link sap.m.ExpandableText ExpandableText} control is rendered.</li>
39
+ * <li>If {@link sap.ui.mdc.field.FieldBase#getMultipleLines multipleLines} is set, an {@link sap.m.ExpandableText ExpandableText} control is rendered.</li>
40
40
  * <li>If multiple values are allowed, a {@link sap.m.Tokenizer Tokenizer} control is rendered.</li>
41
41
  * <li>In edit mode, usually an {@link sap.m.Input Input} control is rendered.</li>
42
42
  * <li>If multiple values are allowed, a {@link sap.m.MultiInput MultiInput} control is rendered.</li>
43
- * <li>If <code>multipleLines</code> is set, a {@link sap.m.TextArea TextArea} control is rendered.</li>
43
+ * <li>If {@link sap.ui.mdc.field.FieldBase#getMultipleLines multipleLines} is set, a {@link sap.m.TextArea TextArea} control is rendered.</li>
44
44
  * <li>If a date type or a date/time type is used and only one condition is supported, a {@link sap.m.DynamicDateRange DynamicDateRange} control is rendered.</li>
45
45
  * <li>If a date type is used and only single values are allowed, a {@link sap.m.DatePicker DatePicker} control is rendered.</li>
46
46
  * <li>If a date type is used and only single ranges are allowed, a {@link sap.m.DateRangeSelection DateRangeSelection} control is rendered.</li>
@@ -53,13 +53,13 @@ sap.ui.define([
53
53
  * @implements sap.ui.core.IFormContent, sap.ui.core.ISemanticFormContent, sap.m.IOverflowToolbarContent
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.141.2
56
+ * @version 1.143.0
57
57
  *
58
58
  * @constructor
59
59
  * @alias sap.ui.mdc.FilterField
60
60
  * @see {@link topic:1dd2aa91115d43409452a271d11be95b sap.ui.mdc}
61
61
  * @see {@link topic:2df783760a8e4540ad19ce5ec3ed91c8 FilterField Building Block (OData V4)}
62
- * @version 1.141.2
62
+ * @version 1.143.0
63
63
  * @since 1.48.0
64
64
  * @public
65
65
  */
@@ -88,7 +88,7 @@ sap.ui.define([
88
88
  * Default operator name for conditions.
89
89
  * If empty, the relevant default operator depending on the data type used is taken.
90
90
  *
91
- * <b>Note</b>: <code>defaultOperator</code> can be the name of an {@link sap.ui.mdc.condition.Operator Operator} or the instance itself.
91
+ * <b>Note:</b> <code>defaultOperator</code> can be the name of an {@link sap.ui.mdc.condition.Operator Operator} or the instance itself.
92
92
  *
93
93
  * @since 1.88.0
94
94
  */
@@ -123,7 +123,7 @@ sap.ui.define([
123
123
  },
124
124
  events: {
125
125
  /**
126
- * This event is fired when the <code>conditions</code> property of the <code>FilterField</code> is changed by a user interaction.
126
+ * This event is fired when the {@link sap.ui.mdc.field.FieldBase#getConditions conditions} property of the <code>FilterField</code> is changed by a user interaction.
127
127
  *
128
128
  * <b>Note</b> This event is only triggered if the used content control has a change event.
129
129
  */
@@ -296,7 +296,7 @@ sap.ui.define([
296
296
  /**
297
297
  * Adds an operator to the list of known operators.
298
298
  *
299
- * <b>Note</b>: If no operator is set, the used <code>datatType</code> of the <code>FilterField</code> defines the set of default operators.
299
+ * <b>Note:</b> If no operator is set, the used {@link sap.ui.mdc.field.FieldBase#getDataType dataType} of the <code>FilterField</code> defines the set of default operators.
300
300
  * The standard operators are mentioned in {@link sap.ui.mdc.enums.OperatorName OperatorName}.
301
301
  *
302
302
  * @param {sap.ui.mdc.condition.Operator|string} vOperator The operator instance or operator name
@@ -323,7 +323,7 @@ sap.ui.define([
323
323
  /**
324
324
  * Adds an array of operators to the list of known operators.
325
325
  *
326
- * <b>Note</b>: <code>aOperators</code> can be the name of an {@link sap.ui.mdc.condition.Operator Operator}, the instance itself, or multiple operators inside an array.
326
+ * <b>Note:</b> <code>aOperators</code> can be the name of an {@link sap.ui.mdc.condition.Operator Operator}, the instance itself, or multiple operators inside an array.
327
327
  * The standard operators are mentioned in {@link sap.ui.mdc.enums.OperatorName OperatorName}.
328
328
  *
329
329
  * @param {sap.ui.mdc.condition.Operator[]} aOperators Array of operators
@@ -369,7 +369,7 @@ sap.ui.define([
369
369
  /**
370
370
  * Removes all given operators from the list of known operators.
371
371
  *
372
- * <b>Note</b>: <code>aOperators</code> can be the name of an {@link sap.ui.mdc.condition.Operator Operator}, the instance itself, or multiple operators inside an array.
372
+ * <b>Note:</b> <code>aOperators</code> can be the name of an {@link sap.ui.mdc.condition.Operator Operator}, the instance itself, or multiple operators inside an array.
373
373
  * The standard operators are mentioned in {@link sap.ui.mdc.enums.OperatorName OperatorName}.
374
374
  *
375
375
  * @param {sap.ui.mdc.condition.Operator[]} aOperators Array of operators