@openui5/sap.f 1.127.1 → 1.129.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 (141) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +4 -4
  3. package/src/sap/f/.library +1 -1
  4. package/src/sap/f/Avatar.js +1 -1
  5. package/src/sap/f/AvatarGroup.js +2 -2
  6. package/src/sap/f/AvatarGroupItem.js +1 -1
  7. package/src/sap/f/CalendarAppointmentInCard.js +1 -1
  8. package/src/sap/f/CalendarInCard.js +1 -1
  9. package/src/sap/f/Card.js +1 -1
  10. package/src/sap/f/CardBase.js +21 -51
  11. package/src/sap/f/CardRenderer.js +30 -3
  12. package/src/sap/f/DynamicPage.js +11 -8
  13. package/src/sap/f/DynamicPageAccessibleLandmarkInfo.js +11 -2
  14. package/src/sap/f/DynamicPageHeader.js +21 -7
  15. package/src/sap/f/DynamicPageTitle.js +1 -1
  16. package/src/sap/f/FlexibleColumnLayout.js +136 -21
  17. package/src/sap/f/FlexibleColumnLayoutAccessibleLandmarkInfo.js +1 -1
  18. package/src/sap/f/FlexibleColumnLayoutData.js +52 -0
  19. package/src/sap/f/FlexibleColumnLayoutDataForDesktop.js +72 -0
  20. package/src/sap/f/FlexibleColumnLayoutDataForTablet.js +71 -0
  21. package/src/sap/f/FlexibleColumnLayoutSemanticHelper.js +1 -1
  22. package/src/sap/f/GridContainer.js +1 -1
  23. package/src/sap/f/GridContainerItemLayoutData.js +1 -1
  24. package/src/sap/f/GridContainerSettings.js +2 -2
  25. package/src/sap/f/GridList.js +1 -1
  26. package/src/sap/f/GridListItem.js +1 -1
  27. package/src/sap/f/IllustratedMessage.js +1 -1
  28. package/src/sap/f/Illustration.js +1 -1
  29. package/src/sap/f/PlanningCalendarInCardLegend.js +1 -1
  30. package/src/sap/f/ProductSwitch.js +1 -1
  31. package/src/sap/f/ProductSwitchItem.js +1 -1
  32. package/src/sap/f/SearchManager.js +1 -1
  33. package/src/sap/f/ShellBar.js +1 -1
  34. package/src/sap/f/SidePanel.js +20 -6
  35. package/src/sap/f/SidePanelItem.js +1 -1
  36. package/src/sap/f/cards/BaseHeader.js +1 -1
  37. package/src/sap/f/cards/CardBadgeCustomData.js +123 -0
  38. package/src/sap/f/cards/Header.js +1 -1
  39. package/src/sap/f/cards/NumericHeader.js +1 -1
  40. package/src/sap/f/cards/NumericIndicators.js +1 -1
  41. package/src/sap/f/cards/NumericSideIndicator.js +1 -1
  42. package/src/sap/f/cards/loading/AnalyticalPlaceholder.js +1 -1
  43. package/src/sap/f/cards/loading/CalendarPlaceholder.js +1 -1
  44. package/src/sap/f/cards/loading/GenericPlaceholder.js +1 -1
  45. package/src/sap/f/cards/loading/ListPlaceholder.js +1 -1
  46. package/src/sap/f/cards/loading/ObjectPlaceholder.js +1 -1
  47. package/src/sap/f/cards/loading/PlaceholderBase.js +1 -1
  48. package/src/sap/f/cards/loading/TablePlaceholder.js +1 -1
  49. package/src/sap/f/cards/loading/TimelinePlaceholder.js +1 -1
  50. package/src/sap/f/cards/util/CardBadgeEnabler.js +196 -0
  51. package/src/sap/f/changeHandler/MoveDynamicPageTitleActions.js +1 -1
  52. package/src/sap/f/delegate/GridContainerItemNavigation.js +1 -1
  53. package/src/sap/f/delegate/GridItemNavigation.js +1 -1
  54. package/src/sap/f/dnd/GridDragOver.js +1 -1
  55. package/src/sap/f/dnd/GridDropInfo.js +1 -1
  56. package/src/sap/f/library.js +30 -2
  57. package/src/sap/f/messagebundle.properties +3 -0
  58. package/src/sap/f/messagebundle_ar.properties +2 -0
  59. package/src/sap/f/messagebundle_bg.properties +2 -0
  60. package/src/sap/f/messagebundle_ca.properties +2 -0
  61. package/src/sap/f/messagebundle_cnr.properties +2 -0
  62. package/src/sap/f/messagebundle_cs.properties +2 -0
  63. package/src/sap/f/messagebundle_cy.properties +2 -0
  64. package/src/sap/f/messagebundle_da.properties +2 -0
  65. package/src/sap/f/messagebundle_de.properties +2 -0
  66. package/src/sap/f/messagebundle_el.properties +2 -0
  67. package/src/sap/f/messagebundle_en.properties +2 -0
  68. package/src/sap/f/messagebundle_en_GB.properties +2 -0
  69. package/src/sap/f/messagebundle_en_US_saprigi.properties +3 -1
  70. package/src/sap/f/messagebundle_es.properties +2 -0
  71. package/src/sap/f/messagebundle_es_MX.properties +2 -0
  72. package/src/sap/f/messagebundle_et.properties +2 -0
  73. package/src/sap/f/messagebundle_fi.properties +2 -0
  74. package/src/sap/f/messagebundle_fr.properties +2 -0
  75. package/src/sap/f/messagebundle_fr_CA.properties +2 -0
  76. package/src/sap/f/messagebundle_hi.properties +2 -0
  77. package/src/sap/f/messagebundle_hr.properties +2 -0
  78. package/src/sap/f/messagebundle_hu.properties +2 -0
  79. package/src/sap/f/messagebundle_id.properties +2 -0
  80. package/src/sap/f/messagebundle_it.properties +2 -0
  81. package/src/sap/f/messagebundle_iw.properties +2 -0
  82. package/src/sap/f/messagebundle_ja.properties +2 -0
  83. package/src/sap/f/messagebundle_kk.properties +2 -0
  84. package/src/sap/f/messagebundle_ko.properties +2 -0
  85. package/src/sap/f/messagebundle_lt.properties +2 -0
  86. package/src/sap/f/messagebundle_lv.properties +2 -0
  87. package/src/sap/f/messagebundle_mk.properties +2 -0
  88. package/src/sap/f/messagebundle_ms.properties +2 -0
  89. package/src/sap/f/messagebundle_nl.properties +2 -0
  90. package/src/sap/f/messagebundle_no.properties +2 -0
  91. package/src/sap/f/messagebundle_pl.properties +2 -0
  92. package/src/sap/f/messagebundle_pt.properties +2 -0
  93. package/src/sap/f/messagebundle_pt_PT.properties +2 -0
  94. package/src/sap/f/messagebundle_ro.properties +2 -0
  95. package/src/sap/f/messagebundle_ru.properties +2 -0
  96. package/src/sap/f/messagebundle_sh.properties +2 -0
  97. package/src/sap/f/messagebundle_sk.properties +2 -0
  98. package/src/sap/f/messagebundle_sl.properties +2 -0
  99. package/src/sap/f/messagebundle_sr.properties +2 -0
  100. package/src/sap/f/messagebundle_sv.properties +2 -0
  101. package/src/sap/f/messagebundle_th.properties +2 -0
  102. package/src/sap/f/messagebundle_tr.properties +2 -0
  103. package/src/sap/f/messagebundle_uk.properties +2 -0
  104. package/src/sap/f/messagebundle_vi.properties +2 -0
  105. package/src/sap/f/messagebundle_zh_CN.properties +2 -0
  106. package/src/sap/f/messagebundle_zh_TW.properties +2 -0
  107. package/src/sap/f/semantic/AddAction.js +1 -1
  108. package/src/sap/f/semantic/CloseAction.js +1 -1
  109. package/src/sap/f/semantic/CopyAction.js +1 -1
  110. package/src/sap/f/semantic/DeleteAction.js +1 -1
  111. package/src/sap/f/semantic/DiscussInJamAction.js +1 -1
  112. package/src/sap/f/semantic/EditAction.js +1 -1
  113. package/src/sap/f/semantic/ExitFullScreenAction.js +1 -1
  114. package/src/sap/f/semantic/FavoriteAction.js +1 -1
  115. package/src/sap/f/semantic/FlagAction.js +1 -1
  116. package/src/sap/f/semantic/FooterMainAction.js +1 -1
  117. package/src/sap/f/semantic/FullScreenAction.js +1 -1
  118. package/src/sap/f/semantic/MainAction.js +1 -1
  119. package/src/sap/f/semantic/MessagesIndicator.js +1 -1
  120. package/src/sap/f/semantic/NegativeAction.js +1 -1
  121. package/src/sap/f/semantic/PositiveAction.js +1 -1
  122. package/src/sap/f/semantic/PrintAction.js +1 -1
  123. package/src/sap/f/semantic/SemanticButton.js +1 -1
  124. package/src/sap/f/semantic/SemanticConfiguration.js +1 -1
  125. package/src/sap/f/semantic/SemanticControl.js +1 -1
  126. package/src/sap/f/semantic/SemanticPage.js +1 -1
  127. package/src/sap/f/semantic/SemanticToggleButton.js +1 -1
  128. package/src/sap/f/semantic/SendEmailAction.js +1 -1
  129. package/src/sap/f/semantic/SendMessageAction.js +1 -1
  130. package/src/sap/f/semantic/ShareInJamAction.js +1 -1
  131. package/src/sap/f/semantic/TitleMainAction.js +1 -1
  132. package/src/sap/f/shellBar/AdditionalContentSupport.js +1 -1
  133. package/src/sap/f/shellBar/CoPilot.js +1 -1
  134. package/src/sap/f/shellBar/ControlSpacer.js +1 -1
  135. package/src/sap/f/shellBar/Search.js +1 -1
  136. package/src/sap/f/themes/base/AvatarGroup.less +1 -1
  137. package/src/sap/f/themes/base/Card.less +6 -21
  138. package/src/sap/f/themes/base/CardBadge.less +63 -0
  139. package/src/sap/f/themes/base/SidePanel.less +4 -0
  140. package/src/sap/f/themes/base/library.source.less +1 -0
  141. package/src/sap/f/themes/sap_hcb/base_Card.less +0 -20
package/THIRDPARTY.txt CHANGED
@@ -468,7 +468,7 @@ License: Apache-2.0
468
468
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
469
469
  Contained in: lib/jsdoc/ui5/plugin.js
470
470
 
471
- Component: SAP Theming Base Content, version: 11.16.1
471
+ Component: SAP Theming Base Content, version: 11.18.0
472
472
  Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
473
473
  License: Apache-2.0
474
474
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.f",
3
- "version": "1.127.1",
3
+ "version": "1.129.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.127.1",
18
- "@openui5/sap.ui.core": "1.127.1",
19
- "@openui5/sap.ui.layout": "1.127.1"
17
+ "@openui5/sap.m": "1.129.0",
18
+ "@openui5/sap.ui.core": "1.129.0",
19
+ "@openui5/sap.ui.layout": "1.129.0"
20
20
  }
21
21
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.127.1</version>
9
+ <version>1.129.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.127.1
44
+ * @version 1.129.0
45
45
  *
46
46
  * @constructor
47
47
  * @public
@@ -36,7 +36,7 @@ sap.ui.define([
36
36
  };
37
37
 
38
38
  var AVATAR_MARGIN_GROUP = {
39
- XS: 0.75,
39
+ XS: 0.5,
40
40
  S: 1.25,
41
41
  M: 1.625,
42
42
  L: 2,
@@ -100,7 +100,7 @@ sap.ui.define([
100
100
  * @extends sap.ui.core.Control
101
101
  *
102
102
  * @author SAP SE
103
- * @version 1.127.1
103
+ * @version 1.129.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.127.1
35
+ * @version 1.129.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.127.1
24
+ * @version 1.129.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.127.1
48
+ * @version 1.129.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.127.1
74
+ * @version 1.129.0
75
75
  *
76
76
  * @constructor
77
77
  * @public
@@ -5,24 +5,19 @@
5
5
  */
6
6
  sap.ui.define([
7
7
  "sap/ui/core/Control",
8
- "sap/f/library",
9
- "sap/m/library",
10
8
  "sap/ui/core/InvisibleText",
11
- "sap/m/BadgeEnabler",
12
9
  "sap/f/CardRenderer",
13
- "sap/ui/core/Lib"
10
+ "sap/ui/core/Lib",
11
+ "sap/f/cards/util/CardBadgeEnabler"
14
12
  ], function (
15
13
  Control,
16
- library,
17
- mLibrary,
18
14
  InvisibleText,
19
- BadgeEnabler,
20
15
  CardRenderer,
21
- Library
16
+ Library,
17
+ CardBadgeEnabler
22
18
  ) {
23
19
  "use strict";
24
20
 
25
- var BadgeState = mLibrary.BadgeState;
26
21
  var BADGE_AUTOHIDE_TIME = 3000;
27
22
 
28
23
  /**
@@ -37,7 +32,7 @@ sap.ui.define([
37
32
  * @extends sap.ui.core.Control
38
33
  *
39
34
  * @author SAP SE
40
- * @version 1.127.1
35
+ * @version 1.129.0
41
36
  *
42
37
  * @constructor
43
38
  * @public
@@ -62,12 +57,22 @@ sap.ui.define([
62
57
  */
63
58
  height: {type: "sap.ui.core.CSSSize", group: "Appearance", defaultValue: "auto"}
64
59
  },
65
- aggregations: {}
60
+ aggregations: {
61
+
62
+ /**
63
+ * Defines the internally used <code>sap.m.ObjectStatus</code>.
64
+ */
65
+ _cardBadges: {
66
+ type: "sap.m.ObjectStatus",
67
+ multiple: true,
68
+ visibility: "hidden"
69
+ }
70
+ }
66
71
  },
67
72
  renderer: CardRenderer
68
73
  });
69
74
 
70
- BadgeEnabler.call(CardBase.prototype);
75
+ CardBadgeEnabler.call(CardBase.prototype);
71
76
 
72
77
  /**
73
78
  * Initialization hook.
@@ -83,8 +88,7 @@ sap.ui.define([
83
88
 
84
89
  this._ariaText = new InvisibleText({id: this.getId() + "-ariaText"});
85
90
  this._ariaText.setText(this._oRb.getText("ARIA_ROLEDESCRIPTION_CARD"));
86
-
87
- this.initBadgeEnablement();
91
+ this.initCardBadgeEnablement();
88
92
  };
89
93
 
90
94
  CardBase.prototype.exit = function () {
@@ -193,49 +197,15 @@ sap.ui.define([
193
197
  };
194
198
 
195
199
  CardBase.prototype._hideBadge = function () {
200
+ const oCardBadgeCustomData = this._getCardBadgeCustomData();
196
201
 
197
- var oBadgeCustomData = this.getBadgeCustomData();
198
- if (oBadgeCustomData) {
199
- oBadgeCustomData.setVisible(false);
202
+ if (oCardBadgeCustomData?.length > 0) {
203
+ this._hideBadges();
200
204
  }
201
205
 
202
206
  this._iHideBadgeTimeout = null;
203
207
  };
204
208
 
205
- CardBase.prototype.onBadgeUpdate = function (sValue, sState, sBadgeId) {
206
-
207
- var oHeader = this.getCardHeader(),
208
- oDomRef,
209
- sAriaLabelledBy;
210
-
211
- if (oHeader) {
212
- oDomRef = oHeader.getFocusDomRef();
213
- } else {
214
- oDomRef = this.getDomRef("contentSection");
215
- }
216
-
217
- if (!oDomRef) {
218
- return;
219
- }
220
-
221
- sAriaLabelledBy = oDomRef.getAttribute("aria-labelledby") || "";
222
-
223
- switch (sState) {
224
- case BadgeState.Appear:
225
- sAriaLabelledBy = sBadgeId + " " + sAriaLabelledBy;
226
- oDomRef.setAttribute("aria-labelledby", sAriaLabelledBy);
227
- break;
228
- case BadgeState.Disappear:
229
- sAriaLabelledBy = sAriaLabelledBy.replace(sBadgeId, "").trim();
230
- oDomRef.setAttribute("aria-labelledby", sAriaLabelledBy);
231
- break;
232
- }
233
- };
234
-
235
- CardBase.prototype.getAriaLabelBadgeText = function () {
236
- return this.getBadgeCustomData().getValue();
237
- };
238
-
239
209
  /**
240
210
  * Gets the ids of the elements labelling the Card container.
241
211
  *
@@ -32,12 +32,17 @@ sap.ui.define([
32
32
  */
33
33
  CardRenderer.render = function (oRm, oCard) {
34
34
  var oHeader = oCard.getCardHeader(),
35
- bHeaderTop = oHeader && oCard.getCardHeaderPosition() === HeaderPosition.Top;
35
+ bHeaderTop = oHeader && oCard.getCardHeaderPosition() === HeaderPosition.Top,
36
+ bHasCardBadgeCustomData = oCard._getCardBadgeCustomData().length > 0;
36
37
 
37
38
  oRm.openStart("div", oCard);
38
39
  this.renderContainerAttributes(oRm, oCard);
39
40
  oRm.openEnd();
40
41
 
42
+ if (bHasCardBadgeCustomData) {
43
+ this.renderCardBadge(oRm, oCard);
44
+ }
45
+
41
46
  // header at the top
42
47
  if (bHeaderTop) {
43
48
  oRm.renderControl(oHeader);
@@ -56,6 +61,9 @@ sap.ui.define([
56
61
 
57
62
  oRm.renderControl(oCard._ariaText);
58
63
  oRm.renderControl(oCard._ariaContentText);
64
+ if (bHasCardBadgeCustomData) {
65
+ oRm.renderControl(oCard._getInvisibleCardBadgeText());
66
+ }
59
67
 
60
68
  oRm.close("div");
61
69
  };
@@ -72,7 +80,8 @@ sap.ui.define([
72
80
  bHasHeader = !!(oHeader && oHeader.getVisible()),
73
81
  bHasContent = !!oContent,
74
82
  bCardHeaderBottom = bHasHeader && oCard.getCardHeaderPosition() === HeaderPosition.Bottom,
75
- sTooltip = oCard.getTooltip_AsString();
83
+ sTooltip = oCard.getTooltip_AsString(),
84
+ bHasCardBadgeCustomData = oCard._getCardBadgeCustomData().length > 0;
76
85
 
77
86
  oRm.class("sapFCard")
78
87
  .style("width", oCard.getWidth());
@@ -105,7 +114,8 @@ sap.ui.define([
105
114
  //Accessibility state
106
115
  oRm.accessibilityState(oCard, {
107
116
  role: "region",
108
- labelledby: { value: oCard._getAriaLabelledIds(), append: true }
117
+ labelledby: { value: oCard._getAriaLabelledIds(), append: true },
118
+ describedby: {value: bHasCardBadgeCustomData ? oCard._getInvisibleCardBadgeText().getId() : undefined}
109
119
  });
110
120
  };
111
121
 
@@ -147,5 +157,22 @@ sap.ui.define([
147
157
 
148
158
  };
149
159
 
160
+ /**
161
+ * Render card badge section.
162
+ *
163
+ * @protected
164
+ * @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer.
165
+ * @param {sap.f.Card} oCard An object representation of the control that should be rendered.
166
+ */
167
+ CardRenderer.renderCardBadge = function (oRm, oCard) {
168
+ oRm.openStart("div", oCard.getId() + "-cardBadgeSection")
169
+ .class("sapFCardBadgePlaceholder")
170
+ .openEnd();
171
+ oCard._getCardBadges()?.forEach((oCardBadge) => {
172
+ oRm.renderControl(oCardBadge);
173
+ });
174
+ oRm.close("div");
175
+ };
176
+
150
177
  return CardRenderer;
151
178
  });
@@ -118,7 +118,7 @@ sap.ui.define([
118
118
  * @extends sap.ui.core.Control
119
119
  *
120
120
  * @author SAP SE
121
- * @version 1.127.1
121
+ * @version 1.129.0
122
122
  *
123
123
  * @constructor
124
124
  * @public
@@ -454,7 +454,8 @@ sap.ui.define([
454
454
  DynamicPage.prototype.onAfterRendering = function () {
455
455
 
456
456
  var bShouldSnapWithScroll,
457
- iCurrentScrollPosition;
457
+ iCurrentScrollPosition,
458
+ oHeader = this.getHeader();
458
459
 
459
460
  if (this.getPreserveHeaderStateOnScroll()) {
460
461
  // Ensure that in this tick DP and it's aggregations are rendered
@@ -468,7 +469,7 @@ sap.ui.define([
468
469
  this._updateTitlePositioning();
469
470
  this._attachPageChildrenAfterRenderingDelegates();
470
471
  this._updatePinButtonState();
471
- this._hidePinButtonIfNotApplicable();
472
+ this._showHidePinButton();
472
473
 
473
474
  if (!this.getHeaderExpanded()) {
474
475
  this._snapHeader(false);
@@ -486,6 +487,10 @@ sap.ui.define([
486
487
 
487
488
  this._updateToggleHeaderVisualIndicators();
488
489
  this._updateTitleVisualState();
490
+
491
+ if (exists(oHeader) && oHeader._setLandmarkInfo) {
492
+ oHeader._setLandmarkInfo(this.getLandmarkInfo());
493
+ }
489
494
  };
490
495
 
491
496
  DynamicPage.prototype.exit = function () {
@@ -1056,13 +1061,11 @@ sap.ui.define([
1056
1061
 
1057
1062
 
1058
1063
  /**
1059
- * Hides the pin button if no pin scenario is possible
1064
+ * Shows/hides the pin button if pin scenario is possible/not possible
1060
1065
  * @private
1061
1066
  */
1062
- DynamicPage.prototype._hidePinButtonIfNotApplicable = function () {
1063
- if (this._preserveHeaderStateOnScroll()) {
1064
- this._togglePinButtonVisibility(false);
1065
- }
1067
+ DynamicPage.prototype._showHidePinButton = function () {
1068
+ this._togglePinButtonVisibility(!this._preserveHeaderStateOnScroll());
1066
1069
  };
1067
1070
 
1068
1071
  /**
@@ -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.127.1
26
+ * @version 1.129.0
27
27
  *
28
28
  * @constructor
29
29
  * @public
@@ -88,7 +88,16 @@ sap.ui.define(['sap/ui/core/Element', './library'],
88
88
  *
89
89
  * If not set (and a landmark different than <code>sap.ui.core.AccessibleLandmarkRole.None</code> is defined), no label is set.
90
90
  */
91
- footerLabel : {type : "string", defaultValue : null}
91
+ footerLabel : {type : "string", defaultValue : null},
92
+
93
+ /**
94
+ * Texts which describe the landmark of the section inside the header container of the corresponding <code>sap.f.DynamicPage</code> control.
95
+ *
96
+ * If not set, default "Expanded header" aria-label is set.
97
+ * @public
98
+ * @since 1.127.0
99
+ */
100
+ headerContentLabel: {type : "string", defaultValue : null}
92
101
  }
93
102
  }});
94
103
 
@@ -64,7 +64,7 @@ sap.ui.define([
64
64
  * @extends sap.ui.core.Control
65
65
  *
66
66
  * @author SAP SE
67
- * @version 1.127.1
67
+ * @version 1.129.0
68
68
  *
69
69
  * @constructor
70
70
  * @public
@@ -141,10 +141,10 @@ sap.ui.define([
141
141
  DynamicPageHeader.prototype.init = function() {
142
142
  this._bShowCollapseButton = true;
143
143
  this._oInvisibleMessage = null;
144
+ this._oLandmarkInfo = null;
144
145
  };
145
146
 
146
147
  DynamicPageHeader.prototype.onAfterRendering = function () {
147
- this._initARIAState();
148
148
  this._initPinButtonARIAState();
149
149
 
150
150
  if (!this._oInvisibleMessage) {
@@ -155,6 +155,8 @@ sap.ui.define([
155
155
  if (this.getPinnable()) {
156
156
  this._setPressedStatePinIcon();
157
157
  }
158
+
159
+ this._applyAriaAttributes();
158
160
  };
159
161
 
160
162
  /*************************************** Private members ******************************************/
@@ -175,7 +177,7 @@ sap.ui.define([
175
177
  * @private
176
178
  */
177
179
  DynamicPageHeader.prototype._setShowPinBtn = function (bValue) {
178
- this._getPinButton().$().toggleClass("sapUiHidden", !bValue);
180
+ this._getPinButton().toggleStyleClass("sapUiHidden", !bValue);
179
181
  };
180
182
 
181
183
  /**
@@ -212,13 +214,25 @@ sap.ui.define([
212
214
  };
213
215
 
214
216
  /**
215
- * Initializes the <code>DynamicPageHeader</code> ARIA State.
217
+ * Applies the <code>DynamicPageHeader</code> ARIA attributes.
216
218
  * @private
217
219
  */
218
- DynamicPageHeader.prototype._initARIAState = function () {
219
- var $header = this.$();
220
+ DynamicPageHeader.prototype._applyAriaAttributes = function () {
221
+ var $header = this.$(),
222
+ bHasHeaderContentLabel = this._oLandmarkInfo && this._oLandmarkInfo.getHeaderContentLabel();
223
+
224
+ if (bHasHeaderContentLabel) {
225
+ var sHeaderContentLabel = this._oLandmarkInfo.getHeaderContentLabel();
226
+ $header.attr(DynamicPageHeader.ARIA.ARIA_LABEL, sHeaderContentLabel);
227
+ } else {
228
+ $header.attr(DynamicPageHeader.ARIA.ARIA_LABEL, DynamicPageHeader.ARIA.LABEL_EXPANDED);
229
+ }
230
+ };
231
+
232
+ DynamicPageHeader.prototype._setLandmarkInfo = function (oLandmarkInfo) {
233
+ this._oLandmarkInfo = oLandmarkInfo;
220
234
 
221
- $header.attr(DynamicPageHeader.ARIA.ARIA_LABEL, DynamicPageHeader.ARIA.LABEL_EXPANDED);
235
+ this._applyAriaAttributes();
222
236
  };
223
237
 
224
238
  /**
@@ -95,7 +95,7 @@ sap.ui.define([
95
95
  * @extends sap.ui.core.Control
96
96
  *
97
97
  * @author SAP SE
98
- * @version 1.127.1
98
+ * @version 1.129.0
99
99
  *
100
100
  * @constructor
101
101
  * @public