@openui5/sap.f 1.133.0 → 1.134.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 (150) hide show
  1. package/.reuse/dep5 +0 -7
  2. package/THIRDPARTY.txt +1 -22
  3. package/package.json +4 -4
  4. package/src/sap/f/.library +1 -1
  5. package/src/sap/f/Avatar.js +1 -1
  6. package/src/sap/f/AvatarGroup.js +1 -1
  7. package/src/sap/f/AvatarGroupItem.js +1 -1
  8. package/src/sap/f/CalendarAppointmentInCard.js +1 -1
  9. package/src/sap/f/CalendarInCard.js +1 -1
  10. package/src/sap/f/Card.js +1 -1
  11. package/src/sap/f/CardBase.js +65 -25
  12. package/src/sap/f/CardRenderer.js +9 -6
  13. package/src/sap/f/DynamicPage.js +12 -1
  14. package/src/sap/f/DynamicPageAccessibleLandmarkInfo.js +1 -1
  15. package/src/sap/f/DynamicPageHeader.js +1 -1
  16. package/src/sap/f/DynamicPageRenderer.js +1 -1
  17. package/src/sap/f/DynamicPageTitle.js +34 -1
  18. package/src/sap/f/FlexibleColumnLayout.js +1 -1
  19. package/src/sap/f/FlexibleColumnLayoutAccessibleLandmarkInfo.js +1 -1
  20. package/src/sap/f/FlexibleColumnLayoutData.js +1 -1
  21. package/src/sap/f/FlexibleColumnLayoutDataForDesktop.js +1 -1
  22. package/src/sap/f/FlexibleColumnLayoutDataForTablet.js +1 -1
  23. package/src/sap/f/FlexibleColumnLayoutSemanticHelper.js +1 -1
  24. package/src/sap/f/GridContainer.js +60 -110
  25. package/src/sap/f/GridContainerItemLayoutData.js +1 -1
  26. package/src/sap/f/GridContainerRenderer.js +8 -3
  27. package/src/sap/f/GridContainerSettings.js +2 -2
  28. package/src/sap/f/GridContainerUtils.js +8 -0
  29. package/src/sap/f/GridList.js +1 -1
  30. package/src/sap/f/GridListItem.js +1 -1
  31. package/src/sap/f/IllustratedMessage.js +1 -1
  32. package/src/sap/f/Illustration.js +1 -1
  33. package/src/sap/f/PlanningCalendarInCardLegend.js +1 -1
  34. package/src/sap/f/ProductSwitch.js +1 -1
  35. package/src/sap/f/ProductSwitchItem.js +1 -1
  36. package/src/sap/f/SearchManager.js +1 -1
  37. package/src/sap/f/ShellBar.js +1 -1
  38. package/src/sap/f/ShellBarRenderer.js +1 -0
  39. package/src/sap/f/SidePanel.js +1 -1
  40. package/src/sap/f/SidePanelItem.js +1 -1
  41. package/src/sap/f/cards/BaseHeader.js +35 -20
  42. package/src/sap/f/cards/BaseHeaderRenderer.js +212 -3
  43. package/src/sap/f/cards/Header.js +2 -8
  44. package/src/sap/f/cards/HeaderRenderer.js +0 -161
  45. package/src/sap/f/cards/NumericHeader.js +3 -9
  46. package/src/sap/f/cards/NumericHeaderRenderer.js +54 -126
  47. package/src/sap/f/cards/NumericIndicators.js +1 -1
  48. package/src/sap/f/cards/NumericSideIndicator.js +1 -1
  49. package/src/sap/f/cards/loading/AnalyticalPlaceholder.js +1 -1
  50. package/src/sap/f/cards/loading/CalendarPlaceholder.js +1 -1
  51. package/src/sap/f/cards/loading/GenericPlaceholder.js +1 -1
  52. package/src/sap/f/cards/loading/ListPlaceholder.js +1 -1
  53. package/src/sap/f/cards/loading/ObjectPlaceholder.js +1 -1
  54. package/src/sap/f/cards/loading/PlaceholderBase.js +1 -1
  55. package/src/sap/f/cards/loading/TablePlaceholder.js +1 -1
  56. package/src/sap/f/cards/loading/TimelinePlaceholder.js +1 -1
  57. package/src/sap/f/changeHandler/MoveDynamicPageTitleActions.js +1 -1
  58. package/src/sap/f/delegate/GridContainerItemNavigation.js +24 -202
  59. package/src/sap/f/delegate/GridItemNavigation.js +23 -10
  60. package/src/sap/f/dnd/GridDragOver.js +1 -1
  61. package/src/sap/f/dnd/GridDropInfo.js +1 -1
  62. package/src/sap/f/library.js +36 -2
  63. package/src/sap/f/messagebundle.properties +0 -3
  64. package/src/sap/f/messagebundle_ar.properties +0 -2
  65. package/src/sap/f/messagebundle_bg.properties +0 -2
  66. package/src/sap/f/messagebundle_ca.properties +0 -2
  67. package/src/sap/f/messagebundle_cnr.properties +0 -2
  68. package/src/sap/f/messagebundle_cs.properties +0 -2
  69. package/src/sap/f/messagebundle_cy.properties +0 -2
  70. package/src/sap/f/messagebundle_da.properties +0 -2
  71. package/src/sap/f/messagebundle_de.properties +0 -2
  72. package/src/sap/f/messagebundle_el.properties +0 -2
  73. package/src/sap/f/messagebundle_en.properties +0 -2
  74. package/src/sap/f/messagebundle_en_GB.properties +0 -2
  75. package/src/sap/f/messagebundle_en_US_saprigi.properties +0 -2
  76. package/src/sap/f/messagebundle_es.properties +0 -2
  77. package/src/sap/f/messagebundle_es_MX.properties +0 -2
  78. package/src/sap/f/messagebundle_et.properties +0 -2
  79. package/src/sap/f/messagebundle_fi.properties +0 -2
  80. package/src/sap/f/messagebundle_fr.properties +0 -2
  81. package/src/sap/f/messagebundle_fr_CA.properties +0 -2
  82. package/src/sap/f/messagebundle_hi.properties +0 -2
  83. package/src/sap/f/messagebundle_hr.properties +0 -2
  84. package/src/sap/f/messagebundle_hu.properties +0 -2
  85. package/src/sap/f/messagebundle_id.properties +0 -2
  86. package/src/sap/f/messagebundle_it.properties +0 -2
  87. package/src/sap/f/messagebundle_iw.properties +0 -2
  88. package/src/sap/f/messagebundle_ja.properties +0 -2
  89. package/src/sap/f/messagebundle_kk.properties +0 -2
  90. package/src/sap/f/messagebundle_ko.properties +0 -2
  91. package/src/sap/f/messagebundle_lt.properties +0 -2
  92. package/src/sap/f/messagebundle_lv.properties +0 -2
  93. package/src/sap/f/messagebundle_mk.properties +0 -2
  94. package/src/sap/f/messagebundle_ms.properties +0 -2
  95. package/src/sap/f/messagebundle_nl.properties +0 -2
  96. package/src/sap/f/messagebundle_no.properties +0 -2
  97. package/src/sap/f/messagebundle_pl.properties +0 -2
  98. package/src/sap/f/messagebundle_pt.properties +0 -2
  99. package/src/sap/f/messagebundle_pt_PT.properties +0 -2
  100. package/src/sap/f/messagebundle_ro.properties +0 -2
  101. package/src/sap/f/messagebundle_ru.properties +0 -2
  102. package/src/sap/f/messagebundle_sh.properties +0 -2
  103. package/src/sap/f/messagebundle_sk.properties +0 -2
  104. package/src/sap/f/messagebundle_sl.properties +0 -2
  105. package/src/sap/f/messagebundle_sr.properties +0 -2
  106. package/src/sap/f/messagebundle_sv.properties +0 -2
  107. package/src/sap/f/messagebundle_th.properties +0 -2
  108. package/src/sap/f/messagebundle_tr.properties +0 -2
  109. package/src/sap/f/messagebundle_uk.properties +0 -2
  110. package/src/sap/f/messagebundle_vi.properties +0 -2
  111. package/src/sap/f/messagebundle_zh_CN.properties +0 -2
  112. package/src/sap/f/messagebundle_zh_TW.properties +0 -2
  113. package/src/sap/f/semantic/AddAction.js +1 -1
  114. package/src/sap/f/semantic/CloseAction.js +1 -1
  115. package/src/sap/f/semantic/CopyAction.js +1 -1
  116. package/src/sap/f/semantic/DeleteAction.js +1 -1
  117. package/src/sap/f/semantic/DiscussInJamAction.js +1 -1
  118. package/src/sap/f/semantic/EditAction.js +1 -1
  119. package/src/sap/f/semantic/ExitFullScreenAction.js +1 -1
  120. package/src/sap/f/semantic/FavoriteAction.js +1 -1
  121. package/src/sap/f/semantic/FlagAction.js +1 -1
  122. package/src/sap/f/semantic/FooterMainAction.js +1 -1
  123. package/src/sap/f/semantic/FullScreenAction.js +1 -1
  124. package/src/sap/f/semantic/MainAction.js +1 -1
  125. package/src/sap/f/semantic/MessagesIndicator.js +1 -1
  126. package/src/sap/f/semantic/NegativeAction.js +1 -1
  127. package/src/sap/f/semantic/PositiveAction.js +1 -1
  128. package/src/sap/f/semantic/PrintAction.js +1 -1
  129. package/src/sap/f/semantic/SemanticButton.js +1 -1
  130. package/src/sap/f/semantic/SemanticConfiguration.js +1 -1
  131. package/src/sap/f/semantic/SemanticControl.js +1 -1
  132. package/src/sap/f/semantic/SemanticPage.js +1 -1
  133. package/src/sap/f/semantic/SemanticToggleButton.js +1 -1
  134. package/src/sap/f/semantic/SendEmailAction.js +1 -1
  135. package/src/sap/f/semantic/SendMessageAction.js +1 -1
  136. package/src/sap/f/semantic/ShareInJamAction.js +1 -1
  137. package/src/sap/f/semantic/TitleMainAction.js +1 -1
  138. package/src/sap/f/shellBar/AdditionalContentSupport.js +1 -1
  139. package/src/sap/f/shellBar/CoPilot.js +1 -1
  140. package/src/sap/f/shellBar/ControlSpacer.js +1 -1
  141. package/src/sap/f/shellBar/Factory.js +7 -1
  142. package/src/sap/f/shellBar/Search.js +1 -1
  143. package/src/sap/f/themes/base/Card.less +77 -41
  144. package/src/sap/f/themes/base/CardHeaders.less +27 -37
  145. package/src/sap/f/themes/base/CardLoading.less +3 -3
  146. package/src/sap/f/themes/base/DynamicPage.less +5 -0
  147. package/src/sap/f/themes/base/GridContainer.less +10 -13
  148. package/src/sap/f/themes/sap_hcb/base_Card.less +3 -10
  149. package/src/sap/f/themes/sap_hcb/base_GridContainer.less +0 -13
  150. package/LICENSES/LicenseRef-tzdata-PublicDomain.txt +0 -5
package/.reuse/dep5 CHANGED
@@ -364,13 +364,6 @@ Copyright:
364
364
  License: Apache-2.0 and ISC
365
365
  Comment: these files contain content from SAP and node-lru-cache: LRUPersistentCache.js is overall written by SAP, but portions ('Least Recently Used' logic) are taken from the node-lru-cache project (see https://github.com/isaacs/node-lru-cache/blob/v2.7.3/README.md) and modified.
366
366
 
367
- Files: src/sap.ui.core/test/sap/ui/core/qunit/i18n/helper/_timezones.js
368
- Copyright:
369
- 2009-2024 SAP SE or an SAP affiliate company and OpenUI5 contributors
370
- Arthur David Olson, Paul Eggert and other contributors
371
- License: Apache-2.0 and LicenseRef-tzdata-PublicDomain
372
- Comment: these files contain content from SAP and Time Zone Database: _timezones.js is overall written by SAP, but the list of IANA timezone IDs is taken from the Timezone Database
373
-
374
367
 
375
368
  # Library: sap.ui.documentation:
376
369
 
package/THIRDPARTY.txt CHANGED
@@ -22,7 +22,7 @@ Contained in: src/sap.m/test/sap/m/qunit/_thirdparty/qunit-composite.css
22
22
 
23
23
  Library: sap.ui.codeeditor:
24
24
 
25
- Component: Ace (Ajax.org Cloud9 Editor), version: 1.31.1
25
+ Component: Ace (Ajax.org Cloud9 Editor), version: 1.36.5
26
26
  Copyright: 2010, Ajax.org B.V.
27
27
  License: BSD-3-Clause
28
28
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
@@ -342,12 +342,6 @@ License: ISC
342
342
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/ISC.txt
343
343
  Contained in: src/sap.ui.core/src/sap/ui/core/cache/LRUPersistentCache.js
344
344
 
345
- Component: Time Zone Database, version: 2024b
346
- Copyright: Arthur David Olson, Paul Eggert and other contributors
347
- License: LicenseRef-tzdata-PublicDomain
348
- License Text: https://github.com/SAP/openui5/blob/master/LICENSES/LicenseRef-tzdata-PublicDomain.txt
349
- Contained in: src/sap.ui.core/test/sap/ui/core/qunit/i18n/helper/_timezones.js
350
-
351
345
 
352
346
  Library: sap.ui.documentation:
353
347
 
@@ -1015,21 +1009,6 @@ END of license: LicenseRef-Unicode-3.0
1015
1009
  =================================
1016
1010
 
1017
1011
 
1018
- =================================
1019
- BEGIN of license: LicenseRef-tzdata-PublicDomain
1020
- =================================
1021
-
1022
- Unless specified below, all files in the tz code and data (including
1023
- this LICENSE file) are in the public domain.
1024
-
1025
- If the files date.c, newstrftime.3, and strftime.c are present, they
1026
- contain material derived from BSD and use the BSD 3-clause license.
1027
-
1028
- =================================
1029
- END of license: LicenseRef-tzdata-PublicDomain
1030
- =================================
1031
-
1032
-
1033
1012
  =================================
1034
1013
  BEGIN of license: MIT
1035
1014
  =================================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.f",
3
- "version": "1.133.0",
3
+ "version": "1.134.0",
4
4
  "description": "OpenUI5 UI Library sap.f",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,8 +14,8 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.m": "1.133.0",
18
- "@openui5/sap.ui.core": "1.133.0",
19
- "@openui5/sap.ui.layout": "1.133.0"
17
+ "@openui5/sap.m": "1.134.0",
18
+ "@openui5/sap.ui.core": "1.134.0",
19
+ "@openui5/sap.ui.layout": "1.134.0"
20
20
  }
21
21
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-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.133.0</version>
9
+ <version>1.134.0</version>
10
10
 
11
11
  <documentation>SAPUI5 library with Fiori controls.</documentation>
12
12
 
@@ -41,7 +41,7 @@ sap.ui.define([
41
41
  * @extends sap.m.Avatar
42
42
  *
43
43
  * @author SAP SE
44
- * @version 1.133.0
44
+ * @version 1.134.0
45
45
  *
46
46
  * @constructor
47
47
  * @public
@@ -100,7 +100,7 @@ sap.ui.define([
100
100
  * @extends sap.ui.core.Control
101
101
  *
102
102
  * @author SAP SE
103
- * @version 1.133.0
103
+ * @version 1.134.0
104
104
  *
105
105
  * @constructor
106
106
  * @public
@@ -32,7 +32,7 @@ sap.ui.define([
32
32
  * @extends sap.ui.core.Control
33
33
  *
34
34
  * @author SAP SE
35
- * @version 1.133.0
35
+ * @version 1.134.0
36
36
  *
37
37
  * @constructor
38
38
  * @public
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * This calendar appointment is used in card content of type Calendar.
22
22
  *
23
23
  * @extends sap.ui.unified.CalendarAppointment
24
- * @version 1.133.0
24
+ * @version 1.134.0
25
25
  *
26
26
  * @constructor
27
27
  * @private
@@ -45,7 +45,7 @@ sap.ui.define([
45
45
  * <code>sap.m.Toolbar</code> with <code>sap.m.Buttons</code>.
46
46
  *
47
47
  * @extends sap.ui.unified.Calendar
48
- * @version 1.133.0
48
+ * @version 1.134.0
49
49
  *
50
50
  * @constructor
51
51
  * @private
package/src/sap/f/Card.js CHANGED
@@ -71,7 +71,7 @@ sap.ui.define([
71
71
  * @extends sap.f.CardBase
72
72
  *
73
73
  * @author SAP SE
74
- * @version 1.133.0
74
+ * @version 1.134.0
75
75
  *
76
76
  * @constructor
77
77
  * @public
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @extends sap.ui.core.Control
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.133.0
40
+ * @version 1.134.0
41
41
  *
42
42
  * @constructor
43
43
  * @public
@@ -48,7 +48,8 @@ sap.ui.define([
48
48
  library: "sap.f",
49
49
  interfaces: [
50
50
  "sap.f.ICard",
51
- "sap.m.IBadge"
51
+ "sap.m.IBadge",
52
+ "sap.f.IGridContainerItem"
52
53
  ],
53
54
  properties: {
54
55
 
@@ -63,7 +64,10 @@ sap.ui.define([
63
64
  height: {type: "sap.ui.core.CSSSize", group: "Appearance", defaultValue: "auto"},
64
65
 
65
66
  /**
66
- * Defines the role of the Card Header.
67
+ * Defines the accessibility role of the control.
68
+ *
69
+ * **Note:** When the control is placed inside a <code>sap.f.GridContainer</code>,
70
+ * its accessibility role is overridden by the accessibility role specified by the <code>sap.f.GridContainer</code>.
67
71
  *
68
72
  * @experimental since 1.131
69
73
  */
@@ -92,7 +96,9 @@ sap.ui.define([
92
96
  events: {
93
97
  /**
94
98
  * Fired when action is added on card level.
95
- * Note: Can be used only if <code>semanticRole</code> is <code>sap.f.cards.SemanticRole.ListItem</code>.
99
+ *
100
+ * **Note**: Can be used only if <code>semanticRole</code> is <code>sap.f.cards.SemanticRole.ListItem</code>
101
+ * or the control is placed inside a <code>sap.f.GridContainer</code>.
96
102
  * @experimental since 1.131
97
103
  */
98
104
  press: {}
@@ -118,6 +124,8 @@ sap.ui.define([
118
124
  this._ariaText = new InvisibleText({id: this.getId() + "-ariaText"});
119
125
  this._ariaText.setText(this._oRb.getText("ARIA_ROLEDESCRIPTION_CARD"));
120
126
 
127
+ this._sGridItemRole = null;
128
+
121
129
  this.initCardBadgeEnablement();
122
130
  };
123
131
 
@@ -205,7 +213,7 @@ sap.ui.define([
205
213
  * @protected
206
214
  */
207
215
  CardBase.prototype.getFocusDomRef = function () {
208
- if (this.isInteractive() && this.getSemanticRole() === SemanticRole.ListItem) {
216
+ if (this.isRoleListItem()) {
209
217
  return this.getDomRef();
210
218
  }
211
219
 
@@ -261,13 +269,6 @@ sap.ui.define([
261
269
  const sBlockingMessageAriaLabelsIds = this._getBlockingMessageAriaLabelledByIds();
262
270
 
263
271
  if (oHeader) {
264
- if (this._isInsideGridContainer()) {
265
- if (sBlockingMessageAriaLabelsIds) {
266
- return oHeader._getAriaLabelledBy() + " " + sBlockingMessageAriaLabelsIds;
267
- }
268
- return oHeader._getAriaLabelledBy();
269
- }
270
-
271
272
  if (oHeader._getTitle && oHeader._getTitle()) {
272
273
  if (sBlockingMessageAriaLabelsIds) {
273
274
  return oHeader._getTitle().getId() + " " + sBlockingMessageAriaLabelsIds;
@@ -305,6 +306,9 @@ sap.ui.define([
305
306
  * @param {object} oEvent event
306
307
  */
307
308
  CardBase.prototype.ontap = function (oEvent) {
309
+ if (this.isMouseInteractionDisabled()) {
310
+ return;
311
+ }
308
312
  this._handleTapOrSelect(oEvent);
309
313
  };
310
314
 
@@ -323,7 +327,9 @@ sap.ui.define([
323
327
  * @param {object} oEvent event
324
328
  */
325
329
  CardBase.prototype._handleTapOrSelect = function (oEvent) {
326
- if (!this.isInteractive() || oEvent.isMarked() || this.getSemanticRole() !== SemanticRole.ListItem) {
330
+ if (!this.isInteractive() ||
331
+ oEvent.isMarked() ||
332
+ !this.isRoleListItem()) {
327
333
  return;
328
334
  }
329
335
 
@@ -337,16 +343,6 @@ sap.ui.define([
337
343
  oEvent.preventDefault();
338
344
  };
339
345
 
340
- /**
341
- * Returns if the control is inside a sap.f.GridContainer
342
- *
343
- * @private
344
- */
345
- CardBase.prototype._isInsideGridContainer = function() {
346
- var oParent = this.getParent();
347
- return oParent && oParent.isA("sap.f.GridContainer");
348
- };
349
-
350
346
  /**
351
347
  * @ui5-restricted
352
348
  */
@@ -360,14 +356,58 @@ sap.ui.define([
360
356
  return null;
361
357
  };
362
358
 
359
+ /**
360
+ * Checks if the card is interactive.
361
+ * @private
362
+ * @ui5-restricted sap.f.CardRenderer
363
+ * @returns {boolean} Whether the card is interactive.
364
+ */
363
365
  CardBase.prototype.isInteractive = function() {
364
366
  const bIsInteractive = this.hasListeners("press");
365
367
 
366
- if (bIsInteractive && this.getSemanticRole() !== SemanticRole.ListItem) {
367
- Log.error("The full card cannot be interactive if the 'semanticRole' is not 'ListItem'", this);
368
+ if (bIsInteractive && !this.isRoleListItem()) {
369
+ Log.error("The full card cannot be interactive if the 'semanticRole' is not 'ListItem' or the control is not placed inside a sap.f.GridContainer", this);
368
370
  }
369
371
  return bIsInteractive;
370
372
  };
371
373
 
374
+ /**
375
+ * Checks if the card should be fully interactive with the mouse.
376
+ * @private
377
+ * @ui5-restricted sap.f.CardRenderer
378
+ * @returns {boolean} False if the card should not be fully interactive with the mouse.
379
+ */
380
+ CardBase.prototype.isMouseInteractionDisabled = function() {
381
+ return false;
382
+ };
383
+
384
+ /**
385
+ * Sets the accessibility role for the <code>sap.f.GridContainer</code> item.
386
+ *
387
+ * **Note:** This method is automatically called by the <code>sap.f.GridContainer</code> control.
388
+ *
389
+ * @param {string} sRole The accessibility role for the <code>sap.f.GridContainer</code> item
390
+ * @private
391
+ * @ui5-restricted sap.f.GridContainer
392
+ *
393
+ */
394
+ CardBase.prototype.setGridItemRole = function (sRole) {
395
+ this._sGridItemRole = sRole;
396
+ };
397
+
398
+ /**
399
+ * Returns the accessibility role for the <code>sap.f.GridContainer</code> item.
400
+ *
401
+ * @returns {string} The accessibility role for the <code>sap.f.GridContainer</code> item
402
+ * @public
403
+ */
404
+ CardBase.prototype.getGridItemRole = function () {
405
+ return this._sGridItemRole;
406
+ };
407
+
408
+ CardBase.prototype.isRoleListItem = function () {
409
+ return (this.getSemanticRole() === SemanticRole.ListItem) || this.getGridItemRole();
410
+ };
411
+
372
412
  return CardBase;
373
413
  });
@@ -13,8 +13,7 @@ sap.ui.define([
13
13
  library
14
14
  ) {
15
15
  "use strict";
16
- var HeaderPosition = library.cards.HeaderPosition,
17
- SemanticRole = library.cards.SemanticRole;
16
+ var HeaderPosition = library.cards.HeaderPosition;
18
17
 
19
18
  /**
20
19
  * <code>Card</code> renderer.
@@ -84,7 +83,8 @@ sap.ui.define([
84
83
  bHasContent = !!oContent,
85
84
  bCardHeaderBottom = bHasHeader && oCard.getCardHeaderPosition() === HeaderPosition.Bottom,
86
85
  sTooltip = oCard.getTooltip_AsString(),
87
- bHasCardBadgeCustomData = oCard._getCardBadgeCustomData().length > 0;
86
+ bHasCardBadgeCustomData = oCard._getCardBadgeCustomData().length > 0,
87
+ sAriaRole = oCard.getGridItemRole() || oCard.getSemanticRole().toLowerCase();
88
88
 
89
89
  oRm.class("sapFCard")
90
90
  .style("width", oCard.getWidth());
@@ -102,13 +102,16 @@ sap.ui.define([
102
102
  oRm.class("sapFCardSectionInteractive");
103
103
  }
104
104
 
105
-
106
- if (oCard.getSemanticRole() === SemanticRole.ListItem) {
105
+ if (oCard.isRoleListItem()) {
107
106
  oRm.class("sapFCardFocus");
108
107
  oRm.attr("tabindex", "0");
109
108
 
110
109
  if (bIsInteractive) {
111
110
  oRm.class("sapFCardInteractive");
111
+
112
+ if (oCard.isMouseInteractionDisabled()) {
113
+ oRm.class("sapFCardDisableMouseInteraction");
114
+ }
112
115
  }
113
116
  }
114
117
 
@@ -127,7 +130,7 @@ sap.ui.define([
127
130
  //Accessibility state
128
131
  oRm.accessibilityState(oCard, {
129
132
  // TODO if role is not only used with accessibility values, this should be changed
130
- role: oCard.getSemanticRole().toLowerCase(),
133
+ role: sAriaRole,
131
134
  labelledby: { value: oCard._getAriaLabelledIds(), append: true },
132
135
  describedby: {value: bHasCardBadgeCustomData ? oCard._getInvisibleCardBadgeText().getId() : undefined}
133
136
  });
@@ -118,7 +118,7 @@ sap.ui.define([
118
118
  * @extends sap.ui.core.Control
119
119
  *
120
120
  * @author SAP SE
121
- * @version 1.133.0
121
+ * @version 1.134.0
122
122
  *
123
123
  * @constructor
124
124
  * @public
@@ -2502,6 +2502,17 @@ sap.ui.define([
2502
2502
  return {};
2503
2503
  };
2504
2504
 
2505
+ DynamicPage.prototype._getAccessibilityStateTitle = function () {
2506
+ var oInfo = this._formatLandmarkInfo(this.getLandmarkInfo(), "Header"),
2507
+ oTitle = this.getTitle();
2508
+
2509
+ if (oTitle) {
2510
+ oInfo.label = oTitle._getTitleText() || oInfo.label;
2511
+ }
2512
+
2513
+ return oInfo;
2514
+ };
2515
+
2505
2516
  /**
2506
2517
  * Returns HTML tag of the page header.
2507
2518
  *
@@ -23,7 +23,7 @@ sap.ui.define(['sap/ui/core/Element', './library'],
23
23
  * @extends sap.ui.core.Element
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.133.0
26
+ * @version 1.134.0
27
27
  *
28
28
  * @constructor
29
29
  * @public
@@ -64,7 +64,7 @@ sap.ui.define([
64
64
  * @extends sap.ui.core.Control
65
65
  *
66
66
  * @author SAP SE
67
- * @version 1.133.0
67
+ * @version 1.134.0
68
68
  *
69
69
  * @constructor
70
70
  * @public
@@ -60,7 +60,7 @@ sap.ui.define(["sap/ui/Device"], function (Device) {
60
60
  if (!bHeaderHasContent) {
61
61
  oRm.class("sapFDynamicPageTitleOnly");
62
62
  }
63
- oRm.accessibilityState(oDynamicPage, oDynamicPage._formatLandmarkInfo(oLandmarkInfo, "Header"));
63
+ oRm.accessibilityState(oDynamicPage, oDynamicPage._getAccessibilityStateTitle());
64
64
  oRm.attr("data-sap-ui-customfastnavgroup", true);
65
65
 
66
66
  oRm.openEnd();
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.core.Control
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.133.0
98
+ * @version 1.134.0
99
99
  *
100
100
  * @constructor
101
101
  * @public
@@ -378,6 +378,8 @@ sap.ui.define([
378
378
  DynamicPageTitle.TOGGLE_HEADER_TEXT_ID = InvisibleText.getStaticId("sap.f", "TOGGLE_HEADER");
379
379
  DynamicPageTitle.DEFAULT_HEADER_TEXT_ID = InvisibleText.getStaticId("sap.f", "DEFAULT_HEADER_TEXT");
380
380
 
381
+ DynamicPageTitle.KNOWN_HEADING_CONTROL_CLASS_NAMES = ["sap.m.Title", "sap.m.Text", "sap.m.FormattedText", "sap.m.Label"];
382
+
381
383
  /**
382
384
  * Retrieves the resource bundle for the <code>sap.f</code> library.
383
385
  * @returns {Object} the resource bundle object
@@ -414,6 +416,20 @@ sap.ui.define([
414
416
  return typeof oObject === "function";
415
417
  }
416
418
 
419
+ function findTitleInFlexBox(oHeading) {
420
+ var oTitle = null;
421
+
422
+ for (var item of oHeading.getItems()) {
423
+ if (item.isA("sap.m.Title")) {
424
+ return item;
425
+ } else if (item.isA("sap.m.FlexBox")) {
426
+ oTitle = findTitleInFlexBox(item);
427
+ }
428
+ }
429
+
430
+ return oTitle;
431
+ }
432
+
417
433
  /* ========== LIFECYCLE METHODS ========== */
418
434
  DynamicPageTitle.prototype.init = function () {
419
435
  this._bExpandedState = true;
@@ -704,6 +720,23 @@ sap.ui.define([
704
720
 
705
721
  /* ========== PRIVATE METHODS ========== */
706
722
 
723
+ DynamicPageTitle.prototype._getTitleText = function() {
724
+ var oHeading = this.getHeading(),
725
+ sClassName = oHeading && oHeading.getMetadata().getName(),
726
+ oTitle,
727
+ sTitleText;
728
+
729
+ if (DynamicPageTitle.KNOWN_HEADING_CONTROL_CLASS_NAMES.indexOf(sClassName) > -1) {
730
+ sTitleText = oHeading.getText();
731
+ } else if (oHeading?.isA("sap.m.FlexBox")) {
732
+ oTitle = findTitleInFlexBox(oHeading);
733
+ sTitleText = oTitle?.getText();
734
+ }
735
+
736
+ return sTitleText;
737
+ };
738
+
739
+
707
740
  /**
708
741
  * Creates and caches an instance of the {@link sap.ui.core.InvisibleText} control for the specified aria label.
709
742
  * @param {string} sId The ID for the invisible text control.
@@ -108,7 +108,7 @@ sap.ui.define([
108
108
  *
109
109
  * @extends sap.ui.core.Control
110
110
  * @author SAP SE
111
- * @version 1.133.0
111
+ * @version 1.134.0
112
112
  *
113
113
  * @constructor
114
114
  * @public
@@ -22,7 +22,7 @@ sap.ui.define(['sap/ui/core/Element', './library'],
22
22
  * @extends sap.ui.core.Element
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.133.0
25
+ * @version 1.134.0
26
26
  * @since 1.95
27
27
  *
28
28
  * @constructor
@@ -21,7 +21,7 @@ sap.ui.define(["sap/ui/core/LayoutData", "sap/ui/base/ManagedObjectObserver", "s
21
21
  *
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.133.0
24
+ * @version 1.134.0
25
25
  *
26
26
  * @extends sap.ui.core.LayoutData
27
27
  *
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/core/LayoutData'],
20
20
  *
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.133.0
23
+ * @version 1.134.0
24
24
  *
25
25
  * @extends sap.ui.core.LayoutData
26
26
  *
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/core/LayoutData'],
20
20
  *
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.133.0
23
+ * @version 1.134.0
24
24
  *
25
25
  * @extends sap.ui.core.LayoutData
26
26
  *
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  *
50
50
  * For more information, see {@link sap.f.FlexibleColumnLayoutSemanticHelper#getCurrentUIState} and {@link sap.f.FlexibleColumnLayoutSemanticHelper#getNextUIState}
51
51
  *
52
- * @version 1.133.0
52
+ * @version 1.134.0
53
53
  * @param {sap.f.FlexibleColumnLayout} oFlexibleColumnLayout
54
54
  * The <code>sap.f.FlexibleColumnLayout</code> object whose state will be manipulated.
55
55
  *