@openui5/sap.uxap 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.
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.uxap",
3
- "version": "1.133.0",
3
+ "version": "1.134.0",
4
4
  "description": "OpenUI5 UI Library sap.uxap",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,9 +14,9 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.f": "1.133.0",
18
- "@openui5/sap.m": "1.133.0",
19
- "@openui5/sap.ui.core": "1.133.0",
20
- "@openui5/sap.ui.layout": "1.133.0"
17
+ "@openui5/sap.f": "1.134.0",
18
+ "@openui5/sap.m": "1.134.0",
19
+ "@openui5/sap.ui.core": "1.134.0",
20
+ "@openui5/sap.ui.layout": "1.134.0"
21
21
  }
22
22
  }
@@ -3,7 +3,7 @@
3
3
 
4
4
  <name>sap.uxap</name>
5
5
  <vendor>SAP SE</vendor>
6
- <version>1.133.0</version>
6
+ <version>1.134.0</version>
7
7
  <copyright>OpenUI5
8
8
  * (c) Copyright 2009-2025 SAP SE or an SAP affiliate company.
9
9
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
@@ -202,7 +202,6 @@ sap.ui.define([
202
202
  this._oMappingApplied = {};
203
203
 
204
204
  //lazy loading
205
- this._bLazyLoading = false; //by default, no lazy loading so we can use it out of an objectPageLayout
206
205
  this._bConnected = false; //indicates connectToModels function has been called
207
206
  this._oUpdatedModels = {};
208
207
  this._oParentObjectPageSubSection = null; // the parent ObjectPageSubSection
@@ -211,8 +210,6 @@ sap.ui.define([
211
210
  };
212
211
 
213
212
  BlockBase.prototype.onBeforeRendering = function () {
214
- var oParentObjectPageLayout;
215
-
216
213
  this._applyMapping();
217
214
 
218
215
  if (!this.getMode() || this.getMode() === "") {
@@ -225,10 +222,6 @@ sap.ui.define([
225
222
  }
226
223
 
227
224
  this._applyFormAdjustment();
228
-
229
- //TODO: for iconTabBar mode, specify lazyLoading for selectedTab only?
230
- oParentObjectPageLayout = this._getObjectPageLayout();
231
- this._bLazyLoading = oParentObjectPageLayout && (oParentObjectPageLayout.getEnableLazyLoading() || oParentObjectPageLayout.getUseIconTabBar());
232
225
  };
233
226
 
234
227
  BlockBase.prototype.onAfterRendering = function () {
@@ -250,7 +243,6 @@ sap.ui.define([
250
243
  Control.prototype.setParent.call(this, oParent, sAggregationName, bSuppressInvalidate);
251
244
 
252
245
  if (oParent?.isA("sap.uxap.ObjectPageSubSection")) {
253
- this._bLazyLoading = true;
254
246
  this._oParentObjectPageSubSection = oParent;
255
247
  }
256
248
  };
@@ -365,13 +357,6 @@ sap.ui.define([
365
357
  if (this.getMode() !== sMode) {
366
358
  this.setProperty("mode", sMode, false);
367
359
 
368
- // Update the this._bLazyLoading here: setMode is called by ObjectPageSubSection in onBeforeRendering,
369
- // as at this point enableLazyLoading property of OPL is already set.
370
- // onBeforeRendering of BlockBase is still not called! That's why this._bLazyLoading may not be in a valid state
371
- // (previously set as true in setParent function, as it is placed in ObjectPageSubSection).
372
- // If this._bLazyLoading is not updated at this point and enableLazyLoading=false, view will never be selected, binding will never be updated.
373
- this._updateLazyLoad();
374
-
375
360
  //if Lazy loading is enabled, and if the block is not connected
376
361
  //delay the view creation (will be done in connectToModels function)
377
362
  if (!this._shouldLazyLoad()) {
@@ -781,7 +766,7 @@ sap.ui.define([
781
766
  if (!this._bConnected) {
782
767
  Log.debug("BlockBase :: Connecting block to the UI5 model tree");
783
768
  this._bConnected = true;
784
- if (this._bLazyLoading) {
769
+ if (this._getObjectPageLayout()?._isLazyLoadingEffectivelyEnabled()) {
785
770
  //if lazy loading is enabled, the view has not been created during the setMode
786
771
  //so create it now
787
772
  var sMode = this.getMode();
@@ -860,16 +845,10 @@ sap.ui.define([
860
845
  * @private
861
846
  */
862
847
  BlockBase.prototype._shouldLazyLoad = function () {
863
- return !!this._oParentObjectPageSubSection && this._bLazyLoading && !this._bConnected;
864
- };
865
-
866
- /**
867
- * Updates this._bLazyLoading property.
868
- * @private
869
- */
870
- BlockBase.prototype._updateLazyLoad = function () {
871
- var oParentObjectPageLayout = this._getObjectPageLayout(this._oParentObjectPageSubSection);
872
- this._bLazyLoading = oParentObjectPageLayout && (oParentObjectPageLayout.getEnableLazyLoading() || oParentObjectPageLayout.getUseIconTabBar());
848
+ var oParentObjectPageLayout = this._getObjectPageLayout(this._oParentObjectPageSubSection),
849
+ vLazyLoad = oParentObjectPageLayout?._isLazyLoadingEffectivelyEnabled(),
850
+ bDelayLoading = vLazyLoad === true || vLazyLoad === undefined; // delay loading until the value of the "enableLazyLoading" property of ObjectPage is known
851
+ return !!this._oParentObjectPageSubSection && bDelayLoading && !this._bConnected;
873
852
  };
874
853
 
875
854
  /**
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  *
22
22
  * @class
23
23
  * @author SAP SE
24
- * @version 1.133.0
24
+ * @version 1.134.0
25
25
  * @since 1.26
26
26
  * @alias sap.uxap.BlockBaseMetadata
27
27
  * @extends sap.ui.core.ElementMetadata
@@ -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
  *
27
27
  * @constructor
28
28
  * @public
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @implements sap.uxap.IHeaderContent
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.133.0
43
+ * @version 1.134.0
44
44
  *
45
45
  * @constructor
46
46
  * @public
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @implements sap.uxap.IHeaderTitle
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.133.0
45
+ * @version 1.134.0
46
46
  *
47
47
  * @constructor
48
48
  * @public
@@ -110,20 +110,13 @@ sap.ui.define([
110
110
  return true;
111
111
  };
112
112
 
113
- ObjectPageDynamicHeaderTitle.KNOWN_HEADING_CONTROL_CLASS_NAMES = ["sap.m.Title", "sap.m.Text", "sap.m.FormattedText", "sap.m.Label"];
114
-
115
113
  /**
116
114
  * Returns the text that represents the title of the page.
117
115
  * Since the structure is not guaranteed, this is not universal for this header, and only covers the most common usage.
118
116
  * Required by the {@link sap.uxap.IHeaderTitle} interface.
119
117
  */
120
118
  ObjectPageDynamicHeaderTitle.prototype.getTitleText = function () {
121
- var oHeading = this.getHeading(),
122
- sClassName = oHeading && oHeading.getMetadata().getName();
123
-
124
- if (ObjectPageDynamicHeaderTitle.KNOWN_HEADING_CONTROL_CLASS_NAMES.indexOf(sClassName) > -1) {
125
- return oHeading.getText();
126
- }
119
+ return this._getTitleText();
127
120
  };
128
121
 
129
122
  /**
@@ -1952,6 +1952,15 @@ sap.ui.define([
1952
1952
  }
1953
1953
  };
1954
1954
 
1955
+ /**
1956
+ * Checks if lazy loading is effectively enabled based on multiple conditions
1957
+ * @restricted
1958
+ * @returns {boolean}
1959
+ */
1960
+ ObjectPageLayout.prototype._isLazyLoadingEffectivelyEnabled = function() {
1961
+ return this.getEnableLazyLoading() || this.getUseIconTabBar();
1962
+ };
1963
+
1955
1964
  /* AnchorBar management */
1956
1965
 
1957
1966
  ObjectPageLayout.prototype.setShowAnchorBarPopover = function (bValue, bSuppressInvalidate) {
@@ -38,7 +38,7 @@ sap.ui.define([
38
38
  * @extends sap.ui.core.Element
39
39
  *
40
40
  * @author SAP SE
41
- * @version 1.133.0
41
+ * @version 1.134.0
42
42
  *
43
43
  * @constructor
44
44
  * @public
@@ -96,6 +96,9 @@ sap.ui.define([
96
96
 
97
97
  /**
98
98
  * The list of Subsections.
99
+ *
100
+ * Note: If multiple subsections are used, it is highly recommended to set a title for the section
101
+ * for accessibility reasons.
99
102
  */
100
103
  subSections: {type: "sap.uxap.ObjectPageSubSection", multiple: true, singularName: "subSection", forwarding: {getter: "_getGrid", aggregation: "content"}},
101
104
 
@@ -407,7 +410,7 @@ sap.ui.define([
407
410
  }
408
411
 
409
412
  aSubSections.forEach(function (oSubsection) {
410
- if (sLastSelectedSubSectionId === oSubsection.getId()) {
413
+ if (sLastSelectedSubSectionId === oSubsection.getId() && oSubsection._shouldBeFocusable()) {
411
414
  oSubsection._setToFocusable(true);
412
415
  bPreselectedSection = true;
413
416
  } else {
@@ -416,7 +419,13 @@ sap.ui.define([
416
419
  });
417
420
 
418
421
  if (!bPreselectedSection) {
419
- aSubSections[0]._setToFocusable(true);
422
+ var oFirstFocusableSubSection = aSubSections.find(function(oSubSection) {
423
+ return oSubSection._shouldBeFocusable();
424
+ });
425
+
426
+ if (oFirstFocusableSubSection) {
427
+ oFirstFocusableSubSection._setToFocusable(true);
428
+ }
420
429
  }
421
430
 
422
431
  return this;
@@ -437,10 +437,8 @@ sap.ui.define([
437
437
  */
438
438
  ObjectPageSectionBase.prototype._getAriaLabelledByText = function () {
439
439
  // Each section should be labelled as:
440
- // 'titleName' - if the section has a title
441
- // 'Section' - if it does not have a title or its hidden (for example, showTitle=false)
442
- var sTitle = this._getShouldLabelTitle() && this._getTitle();
443
- return sTitle || this.getSectionText();
440
+ // 'titleName' - no matter if the section has a title or not
441
+ return this._getTitle();
444
442
  };
445
443
 
446
444
  ObjectPageSectionBase.prototype._getInvisibleText = function () {
@@ -697,7 +697,7 @@ sap.ui.define([
697
697
 
698
698
  // Removes the horizontal spacing of the grid, which is needed for
699
699
  // suport of Table inside ObjectPageSubSection scenario
700
- if (oParent && oParent.hasStyleClass("sapUiTableOnObjectPageAdjustmentsForSection")) {
700
+ if (oParent && oParent.hasStyleClass("sapUiTableOnObjectPageAdjustmentsForSection") && !this.hasStyleClass("sapUiAdjustedSectionSubsectionWithoutTable")) {
701
701
  this.getAggregation("_grid").setProperty("hSpacing", 0);
702
702
  }
703
703
  };
@@ -720,6 +720,7 @@ sap.ui.define([
720
720
  this.refreshSeeMoreVisibility();
721
721
 
722
722
  this.toggleStyleClass("sapUxAPObjectPageSubSectionStashed", this._aStashedControls.length ? true : false);
723
+ this.toggleStyleClass("sapUxAPObjectPageSubSectionFocusable", this.getTitleVisible());
723
724
  };
724
725
 
725
726
  ObjectPageSubSection.prototype._adaptDomHeight = function() {
@@ -1284,19 +1285,20 @@ sap.ui.define([
1284
1285
  };
1285
1286
 
1286
1287
  ObjectPageSubSection.prototype._setToFocusable = function (bFocusable) {
1287
- var sFocusable = '0',
1288
- sNotFocusable = '-1',
1289
- sTabIndex = "tabindex";
1290
-
1291
- if (bFocusable) {
1292
- this.$().attr(sTabIndex, sFocusable);
1288
+ if (this._shouldBeFocusable()) {
1289
+ this.$().attr("tabindex", bFocusable ? "0" : "-1");
1293
1290
  } else {
1294
- this.$().attr(sTabIndex, sNotFocusable);
1291
+ this.$().removeAttr("tabindex");
1295
1292
  }
1296
-
1297
1293
  return this;
1298
1294
  };
1299
1295
 
1296
+
1297
+ ObjectPageSubSection.prototype._shouldBeFocusable = function() {
1298
+ return this.getTitleVisible() && this.getTitle().trim() !== "";
1299
+ };
1300
+
1301
+
1300
1302
  ObjectPageSubSection.prototype._getUseTitleOnTheLeft = function () {
1301
1303
  var oObjectPageLayout = this._getObjectPageLayout();
1302
1304
 
@@ -31,8 +31,11 @@ sap.ui.define(["sap/ui/core/ControlBehavior"], function (ControlBehavior) {
31
31
  bHasVisibleActions = oControl._hasVisibleActions();
32
32
 
33
33
  oRm.openStart("div", oControl)
34
- .attr("role", "region")
35
- .style("height", oControl._getHeight());
34
+ .style("height", oControl._getHeight());
35
+
36
+ if (bHasTitle) {
37
+ oRm.attr("role", "region");
38
+ }
36
39
 
37
40
  if (oControl._bBlockHasMore) {
38
41
  oRm.class("sapUxAPObjectPageSubSectionWithSeeMore");
@@ -46,7 +49,7 @@ sap.ui.define(["sap/ui/core/ControlBehavior"], function (ControlBehavior) {
46
49
  .class("ui-helper-clearfix");
47
50
 
48
51
 
49
- if (bAccessibilityOn && oLabelledBy) {
52
+ if (bAccessibilityOn && oLabelledBy && bHasTitle) {
50
53
  oRm.attr("aria-labelledby", oLabelledBy.getId());
51
54
  }
52
55
 
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @constructor
26
26
  * @alias sap.uxap.changeHandler.AddIFrameObjectPageLayout
27
27
  * @author SAP SE
28
- * @version 1.133.0
28
+ * @version 1.134.0
29
29
  * @since 1.75
30
30
  * @experimental Since 1.75
31
31
  */
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @constructor
24
24
  * @alias sap.uxap.changeHandler.MoveObjectPageSection
25
25
  * @author SAP SE
26
- * @version 1.133.0
26
+ * @version 1.134.0
27
27
  * @experimental Since 1.54
28
28
  */
29
29
 
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @constructor
22
22
  * @alias sap.uxap.changeHandler.RenameObjectPageSection
23
23
  * @author SAP SE
24
- * @version 1.133.0
24
+ * @version 1.134.0
25
25
  * @experimental Since 1.50
26
26
  */
27
27
 
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @constructor
20
20
  * @alias sap.uxap.changeHandler.UnstashObjectPageSection
21
21
  * @author SAP SE
22
- * @version 1.133.0
22
+ * @version 1.134.0
23
23
  * @experimental Since 1.115
24
24
  */
25
25
 
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @namespace
31
31
  * @alias sap.uxap
32
32
  * @author SAP SE
33
- * @version 1.133.0
33
+ * @version 1.134.0
34
34
  * @since 1.36
35
35
  * @public
36
36
  */
@@ -74,7 +74,7 @@ sap.ui.define([
74
74
  "sap.uxap.ObjectPageHeaderLayoutData",
75
75
  "sap.uxap.ObjectPageLazyLoader"
76
76
  ],
77
- version: "1.133.0",
77
+ version: "1.134.0",
78
78
  extensions: {
79
79
  flChangeHandlers: {
80
80
  "sap.uxap.ObjectPageHeader": "sap/uxap/flexibility/ObjectPageHeader",
@@ -211,18 +211,18 @@ Doing so will result in less generated CSS, as well as less future maintanance i
211
211
  }
212
212
  }
213
213
 
214
- html[data-sap-ui-browser^="ed"].sap-desktop .sapUxAPObjectPageSubSection:focus {
214
+ html[data-sap-ui-browser^="ed"].sap-desktop .sapUxAPObjectPageSubSectionFocusable:focus {
215
215
  outline-style: dashed;
216
216
  }
217
217
 
218
218
  /* IE ignores outline-offset. Use an overlay: */
219
219
  /* TODO remove after the end of support for Internet Explorer */
220
220
  html[data-sap-ui-browser^="ie"].sap-desktop {
221
- .sapUxAPObjectPageSubSection:focus {
221
+ .sapUxAPObjectPageSubSectionFocusable:focus {
222
222
  outline: none;
223
223
  position: relative;
224
224
  }
225
- .sapUxAPObjectPageSubSection:focus:before {
225
+ .sapUxAPObjectPageSubSectionFocusable:focus:before {
226
226
  content: " ";
227
227
  box-sizing: border-box;
228
228
  width: 100%;
@@ -3,7 +3,7 @@
3
3
  /* High Contrast Black theme */
4
4
  /* ============================================== */
5
5
 
6
- .sapUxAPObjectPageSubSection:focus,
6
+ .sapUxAPObjectPageSubSectionFocusable:focus,
7
7
  .sapUxAPObjectPageSubSectionHeaderTitle:focus {
8
8
  outline: 0.125rem dotted @sapUiContentFocusColor;
9
9
  outline-offset: -0.125rem;
@@ -211,18 +211,18 @@ Doing so will result in less generated CSS, as well as less future maintanance i
211
211
  }
212
212
  }
213
213
 
214
- html[data-sap-ui-browser^="ed"].sap-desktop .sapUxAPObjectPageSubSection:focus {
214
+ html[data-sap-ui-browser^="ed"].sap-desktop .sapUxAPObjectPageSubSectionFocusable:focus {
215
215
  outline-style: dashed;
216
216
  }
217
217
 
218
218
  /* IE ignores outline-offset. Use an overlay: */
219
219
  /* TODO remove after the end of support for Internet Explorer */
220
220
  html[data-sap-ui-browser^="ie"].sap-desktop {
221
- .sapUxAPObjectPageSubSection:focus {
221
+ .sapUxAPObjectPageSubSectionFocusable:focus {
222
222
  outline: none;
223
223
  position: relative;
224
224
  }
225
- .sapUxAPObjectPageSubSection:focus:before {
225
+ .sapUxAPObjectPageSubSectionFocusable:focus:before {
226
226
  content: " ";
227
227
  box-sizing: border-box;
228
228
  width: 100%;
@@ -1,5 +0,0 @@
1
- Unless specified below, all files in the tz code and data (including
2
- this LICENSE file) are in the public domain.
3
-
4
- If the files date.c, newstrftime.3, and strftime.c are present, they
5
- contain material derived from BSD and use the BSD 3-clause license.