@openui5/sap.uxap 1.93.1 → 1.96.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
@@ -309,7 +309,7 @@ License: MIT
309
309
  Comment: these files belong to: lodash
310
310
 
311
311
  Files: src/sap.ui.core/src/sap/ui/thirdparty/hyphenopoly/*
312
- Copyright: 2018 Mathias Nater
312
+ Copyright: 2021 Mathias Nater
313
313
  License: MIT
314
314
  Comment: these files belong to: Hyphenopoly
315
315
 
@@ -347,11 +347,6 @@ Copyright: 2013 Ariya Hidayat and other contributors
347
347
  License: BSD-2-Clause
348
348
  Comment: these files belong to: Esprima
349
349
 
350
- Files: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/google-code-prettify/*
351
- Copyright: 2006 Google Inc.
352
- License: Apache-2.0
353
- Comment: these files belong to: google-code-prettify
354
-
355
350
  Files: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/highlight.js/*
356
351
  Copyright: 2006-2020, Ivan Sagalaev
357
352
  License: BSD-3-Clause
@@ -405,6 +400,11 @@ Copyright: 2014 Vitaly Puzrin, Alex Kocharin
405
400
  License: MIT
406
401
  Comment: these files belong to: Markdown-it
407
402
 
403
+ Files: src/sap.ui.integration/test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
404
+ Copyright: 2015-2017 Evgeny Poberezkin
405
+ License: MIT
406
+ Comment: these files belong to: ajv
407
+
408
408
 
409
409
  # Library: sap.ui.mdc:
410
410
 
@@ -452,11 +452,6 @@ Copyright: 2009-2014, Alexis Sellier <self@cloudhead.net>
452
452
  License: Apache-2.0
453
453
  Comment: these files belong to: LESS
454
454
 
455
- Files: ../test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
456
- Copyright: 2015-2017 Evgeny Poberezkin
457
- License: MIT
458
- Comment: these files belong to: ajv
459
-
460
455
  Files: lib/jsdoc/ui5/plugin.js
461
456
  Copyright:
462
457
  2009-2021 SAP SE or an SAP affiliate company and OpenUI5 contributors
@@ -464,3 +459,8 @@ Copyright:
464
459
  License: Apache-2.0
465
460
  Comment: these files contain content from SAP and JSDoc 3: plugin.js is overall written by SAP, but contains code taken from JSDoc 3.6.7 (see the respective comments)
466
461
 
462
+ Files: src/sap.ui.core/src/sap/ui/core/themes/base/base.less src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
463
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
464
+ License: Apache-2.0
465
+ Comment: these files belong to: SAP Theming Base Content
466
+
package/THIRDPARTY.txt CHANGED
@@ -6,7 +6,7 @@ The full text of all referenced licenses is appended at the end of this file.
6
6
 
7
7
  Library: sap.ui.codeeditor:
8
8
 
9
- Component: Ace (Ajax.org Cloud9 Editor), version: 1.4.4
9
+ Component: Ace (Ajax.org Cloud9 Editor), version: 1.4.13
10
10
  Copyright: 2010, Ajax.org B.V.
11
11
  License: BSD-3-Clause
12
12
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
@@ -197,7 +197,7 @@ License: BSD-3-Clause
197
197
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
198
198
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/sinon-qunit.js
199
199
 
200
- Component: URI.js, version: 1.19.6
200
+ Component: URI.js, version: 1.19.7
201
201
  Copyright: Rodney Rehm
202
202
  License: MIT
203
203
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
@@ -279,8 +279,8 @@ License: MIT
279
279
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
280
280
  Contained in: src/sap.ui.core/src/sap/ui/base/util/restricted/_/lodash.custom.js
281
281
 
282
- Component: Hyphenopoly, version: 2.4.0
283
- Copyright: 2018 Mathias Nater
282
+ Component: Hyphenopoly, version: 3.4.0
283
+ Copyright: 2021 Mathias Nater
284
284
  License: MIT
285
285
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
286
286
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/hyphenopoly/*
@@ -324,12 +324,6 @@ License: BSD-2-Clause
324
324
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-2-Clause.txt
325
325
  Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/esprima.js
326
326
 
327
- Component: google-code-prettify, version: 20130304
328
- Copyright: 2006 Google Inc.
329
- License: Apache-2.0
330
- License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
331
- Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/google-code-prettify/*
332
-
333
327
  Component: highlight.js, version: 10.4.1
334
328
  Copyright: 2006-2020, Ivan Sagalaev
335
329
  License: BSD-3-Clause
@@ -376,7 +370,7 @@ License: Unicode-DFS-2015
376
370
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Unicode-DFS-2015.txt
377
371
  Contained in: src/sap.ui.integration/src/sap/ui/integration/thirdparty/webcomponents/Unicode-Data-Files-LICENSE.txt
378
372
 
379
- Component: Adaptive Cards, version: 1.2.3
373
+ Component: Adaptive Cards, version: 2.9.0
380
374
  Copyright: 2017 Microsoft
381
375
  License: MIT
382
376
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
@@ -395,6 +389,12 @@ License: MIT
395
389
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
396
390
  Contained in: src/sap.ui.integration/src/sap/ui/integration/thirdparty/markdown-it.js
397
391
 
392
+ Component: ajv, version: 6.12.3
393
+ Copyright: 2015-2017 Evgeny Poberezkin
394
+ License: MIT
395
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
396
+ Contained in: src/sap.ui.integration/test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
397
+
398
398
 
399
399
  Library: sap.ui.mdc:
400
400
 
@@ -450,18 +450,21 @@ License: Apache-2.0
450
450
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
451
451
  Contained in: src/testsuite-utils/src/main/resources/META-INF/less/less.js
452
452
 
453
- Component: ajv, version: 6.12.3
454
- Copyright: 2015-2017 Evgeny Poberezkin
455
- License: MIT
456
- License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
457
- Contained in: ../test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
458
-
459
453
  Component: JSDoc 3, version: 3.6.7
460
454
  Copyright: 2011-present Michael Mathews micmath@gmail.com and the contributors to JSDoc
461
455
  License: Apache-2.0
462
456
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
463
457
  Contained in: lib/jsdoc/ui5/plugin.js
464
458
 
459
+ Component: SAP Theming Base Content, version: 11.1.34
460
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
461
+ License: Apache-2.0
462
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
463
+ Contained in: src/sap.ui.core/src/sap/ui/core/themes/base/base.less
464
+ src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less
465
+ src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less
466
+ src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
467
+
465
468
 
466
469
  ALL LICENSE TEXTS:
467
470
  ==================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.uxap",
3
- "version": "1.93.1",
3
+ "version": "1.96.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.93.1",
18
- "@openui5/sap.m": "1.93.1",
19
- "@openui5/sap.ui.core": "1.93.1",
20
- "@openui5/sap.ui.layout": "1.93.1"
17
+ "@openui5/sap.f": "1.96.0",
18
+ "@openui5/sap.m": "1.96.0",
19
+ "@openui5/sap.ui.core": "1.96.0",
20
+ "@openui5/sap.ui.layout": "1.96.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.93.1</version>
6
+ <version>1.96.0</version>
7
7
  <copyright>OpenUI5
8
8
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
9
9
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
@@ -624,7 +624,7 @@ sap.ui.define([
624
624
 
625
625
  if (this._iCurrentScrollTimeout) {
626
626
  clearTimeout(this._iCurrentScrollTimeout);
627
- jQuery(document.getElementById(this.getId() + "-scroll")).parent().stop(true, false);
627
+ this.$("scroll").parent().stop(true, false);
628
628
  }
629
629
 
630
630
  this._iCurrentScrollTimeout = setTimeout(function () {
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  *
22
22
  * @class
23
23
  * @author SAP SE
24
- * @version 1.93.1
24
+ * @version 1.96.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.93.1
25
+ * @version 1.96.0
26
26
  *
27
27
  * @constructor
28
28
  * @public
@@ -41,7 +41,7 @@ sap.ui.define([
41
41
  * @implements sap.uxap.IHeaderContent
42
42
  *
43
43
  * @author SAP SE
44
- * @version 1.93.1
44
+ * @version 1.96.0
45
45
  *
46
46
  * @constructor
47
47
  * @public
@@ -42,7 +42,7 @@ sap.ui.define([
42
42
  * @implements sap.uxap.IHeaderTitle
43
43
  *
44
44
  * @author SAP SE
45
- * @version 1.93.1
45
+ * @version 1.96.0
46
46
  *
47
47
  * @constructor
48
48
  * @public
@@ -910,6 +910,10 @@ sap.ui.define([
910
910
  this._scrollTo(0, 0, 0);
911
911
  this._bHeaderExpanded = true;
912
912
  this._updateToggleHeaderVisualIndicators();
913
+
914
+ if (this._isHeaderPinnable()) {
915
+ this._getHeaderContent()._getPinButton().setVisible(!this._headerBiggerThanAllowedToBeExpandedInTitleArea());
916
+ }
913
917
  };
914
918
 
915
919
  ObjectPageLayout.prototype._handleDynamicTitlePress = function () {
@@ -1173,7 +1177,6 @@ sap.ui.define([
1173
1177
  }
1174
1178
 
1175
1179
  if (oHeaderContent && oHeaderContent.supportsPinUnpin()) {
1176
- this.$().toggleClass("sapUxAPObjectPageLayoutHeaderPinnable", oHeaderContent.getPinnable());
1177
1180
  this._updatePinButtonState();
1178
1181
  }
1179
1182
 
@@ -1232,7 +1235,7 @@ sap.ui.define([
1232
1235
 
1233
1236
  this._setSectionsFocusValues();
1234
1237
 
1235
- if (this._preserveHeaderStateOnScroll()) {
1238
+ if (this.getPreserveHeaderStateOnScroll()) {
1236
1239
  this._overridePreserveHeaderStateOnScroll();
1237
1240
  }
1238
1241
 
@@ -1565,17 +1568,17 @@ sap.ui.define([
1565
1568
  };
1566
1569
 
1567
1570
  ObjectPageLayout.prototype._cacheDomElements = function () {
1568
- this._$footerWrapper = jQuery(document.getElementById(this.getId() + "-footerWrapper"));
1569
- this._$titleArea = jQuery(document.getElementById(this.getId() + "-headerTitle"));
1570
- this._$anchorBar = jQuery(document.getElementById(this.getId() + "-anchorBar"));
1571
- this._$stickyAnchorBar = jQuery(document.getElementById(this.getId() + "-stickyAnchorBar"));
1572
- this._$opWrapper = jQuery(document.getElementById(this.getId() + "-opwrapper"));
1573
- this._$spacer = jQuery(document.getElementById(this.getId() + "-spacer"));
1574
- this._$headerContent = jQuery(document.getElementById(this.getId() + "-headerContent"));
1575
- this._$stickyHeaderContent = jQuery(document.getElementById(this.getId() + "-stickyHeaderContent"));
1576
- this._$contentContainer = jQuery(document.getElementById(this.getId() + "-scroll"));
1577
- this._$sectionsContainer = jQuery(document.getElementById(this.getId() + "-sectionsContainer"));
1578
- this._$skipFastGroupAnchor = jQuery(document.getElementById(this.getId() + "-skipFastGroupAnchor"));
1571
+ this._$footerWrapper = this.$("footerWrapper");
1572
+ this._$titleArea = this.$("headerTitle");
1573
+ this._$anchorBar = this.$("anchorBar");
1574
+ this._$stickyAnchorBar = this.$("stickyAnchorBar");
1575
+ this._$opWrapper = this.$("opwrapper");
1576
+ this._$spacer = this.$("spacer");
1577
+ this._$headerContent = this.$("headerContent");
1578
+ this._$stickyHeaderContent = this.$("stickyHeaderContent");
1579
+ this._$contentContainer = this.$("scroll");
1580
+ this._$sectionsContainer = this.$("sectionsContainer");
1581
+ this._$skipFastGroupAnchor = this.$("skipFastGroupAnchor");
1579
1582
 
1580
1583
  // BCP 1870201875: explicitly set the latest scrollContainer dom ref
1581
1584
  // (as the scroller obtains the latest scrollContainer dom ref in a LATER hook, which fails in conditions detailed in BCP 1870201875)
@@ -2503,7 +2506,7 @@ sap.ui.define([
2503
2506
  sPreviousSubSectionId,
2504
2507
  sPreviousSectionId,
2505
2508
  bAllowScrollSectionToTop,
2506
- bStickyTitleMode = !this._bHeaderExpanded,
2509
+ bStickyTitleMode = this._bHeaderInTitleArea || !this._bHeaderExpanded,
2507
2510
  bIsFirstVisibleSubSection,
2508
2511
  bParentIsFirstVisibleSection,
2509
2512
  bIsFullscreenSection,
@@ -2524,13 +2527,13 @@ sap.ui.define([
2524
2527
 
2525
2528
  this.iFooterHeight = this._getFooterHeight();
2526
2529
 
2527
- var iSubSectionIndex = -1;
2530
+ var iSubSectionIndex = -1,
2531
+ iSectionsContainerOffsetTop = this._$sectionsContainer.position().top;
2528
2532
 
2529
2533
  this._aSectionBases.forEach(function (oSectionBase) {
2530
2534
  var oInfo = this._oSectionInfo[oSectionBase.getId()],
2531
2535
  $this = oSectionBase.$(),
2532
2536
  oSection,
2533
- $title,
2534
2537
  bPromoted = false;
2535
2538
 
2536
2539
  if (!oInfo /* sectionBase is visible */ || !$this.length) {
@@ -2550,19 +2553,15 @@ sap.ui.define([
2550
2553
  //the amount of scrolling required is the distance between their position().top and the bottom of the anchorBar
2551
2554
  oInfo.positionTop = Math.ceil(realTop);
2552
2555
 
2553
- if (oInfo.isSection) {
2554
- $title = oSectionBase.$("header");
2555
- } else {
2556
- $title = oSectionBase.$("headerTitle");
2557
- }
2558
-
2559
- bPromoted = $title.length === 0;
2560
-
2561
- if (bPromoted && !oInfo.isSection && (oSection = oSectionBase.getParent())) {
2562
- // the scrollTop required to scroll to a promoted subsection
2563
- // is the top of the parent section (UX rule)
2564
- var parentRealTop = oSection.$().position().top;
2565
- oInfo.positionTop = Math.ceil(parentRealTop);
2556
+ if (!oInfo.isSection && (oSection = oSectionBase.getParent())) {
2557
+ // a promoted subSection borrows the title of its parent section
2558
+ bPromoted = oSectionBase._getTitleDomId() === oSection.getId() + "-title";
2559
+ if (bPromoted) {
2560
+ // the scrollTop required to scroll to a promoted subsection
2561
+ // is the top of the parent section (UX rule)
2562
+ var parentRealTop = oSection.$().position().top;
2563
+ oInfo.positionTop = Math.ceil(parentRealTop);
2564
+ }
2566
2565
  }
2567
2566
 
2568
2567
  if (!this._bStickyAnchorBar && !this._bHeaderInTitleArea) { // in sticky mode the anchor bar is not part of the content
@@ -2613,7 +2612,7 @@ sap.ui.define([
2613
2612
  bIsFirstVisibleSubSection = bParentIsFirstVisibleSection && (iSubSectionIndex === 0); /* index of *visible* subSections is first */
2614
2613
  bIsFullscreenSection = oSectionBase.hasStyleClass(ObjectPageSubSection.FIT_CONTAINER_CLASS);
2615
2614
 
2616
- oSectionBase._setHeight(this._computeSubSectionHeight(bIsFirstVisibleSubSection, bIsFullscreenSection, Math.ceil(realTop)));
2615
+ oSectionBase._setHeight(this._computeSubSectionHeight(bIsFirstVisibleSubSection, bIsFullscreenSection, Math.ceil(realTop), iSectionsContainerOffsetTop));
2617
2616
  }
2618
2617
 
2619
2618
  }, this);
@@ -2673,7 +2672,7 @@ sap.ui.define([
2673
2672
  return true; // return success flag
2674
2673
  };
2675
2674
 
2676
- ObjectPageLayout.prototype._computeSubSectionHeight = function(bFirstVisibleSubSection, bFullscreenSection, iSubSectionOffsetTop) {
2675
+ ObjectPageLayout.prototype._computeSubSectionHeight = function(bFirstVisibleSubSection, bFullscreenSection, iSubSectionOffsetTop, iSectionsContainerOffsetTop) {
2677
2676
 
2678
2677
  var iSectionsContainerHeight,
2679
2678
  iRemainingSectionContentHeight;
@@ -2686,22 +2685,20 @@ sap.ui.define([
2686
2685
  // depends on the position of the section in the sections list
2687
2686
  // 1) first visible is initially displayed in container with *expanded* header
2688
2687
  // => obtain container height when *expanded* header
2689
- // 2) non-first visible is displayed in container with *snapped* header
2688
+ // 2) non-first visible is always displayed in container with *snapped* header
2690
2689
  // (because by the time we scroll to show the section, the header is already snapped)
2691
2690
  // => obtain container height when *snapped* header
2692
2691
  var bIsHeaderExpanded = (this._bAllContentFitsContainer) ? this._bHeaderExpanded : bFirstVisibleSubSection;
2693
2692
 
2694
2693
 
2695
2694
  // size the section to have the full height of its container
2696
- iSectionsContainerHeight = this._getSectionsContainerHeight(!bIsHeaderExpanded);
2695
+ iSectionsContainerHeight = this._getSectionsContainerHeight(bIsHeaderExpanded);
2697
2696
 
2698
2697
 
2699
2698
  if (this._bAllContentFitsContainer) {
2700
- // if we have a single fullscreen subsection [that takes the entire height of the sections container]
2701
- // => then the only *other* content in the sections container [besides the subSection]
2702
- // is the title of its parent section and the footer space
2703
- // => subtract the above heights from the subSection height to *avoid having a scrollbar*
2704
- iRemainingSectionContentHeight = (iSubSectionOffsetTop - this.iHeaderContentHeight /*- this.iAnchorBarHeight*/) + this.iFooterHeight;
2699
+ // if we have a single fullscreen subsection [that takes the entire available height within the sections container]
2700
+ // => subtract the heights above and bellow the subSection to *avoid having a scrollbar*
2701
+ iRemainingSectionContentHeight = (iSubSectionOffsetTop - iSectionsContainerOffsetTop) + this.iFooterHeight;
2705
2702
  iSectionsContainerHeight -= iRemainingSectionContentHeight;
2706
2703
  }
2707
2704
 
@@ -2773,10 +2770,11 @@ sap.ui.define([
2773
2770
  return this.getDomRef().getBoundingClientRect().height - this._getStickyAreaHeight(bIsStickyMode);
2774
2771
  };
2775
2772
 
2776
- ObjectPageLayout.prototype._getSectionsContainerHeight = function(bIsStickyMode) {
2773
+ ObjectPageLayout.prototype._getSectionsContainerHeight = function(bIsHeaderExpanded) {
2777
2774
 
2778
- var iScrollContainerHeight = this._getScrollableViewportHeight(bIsStickyMode);
2779
- if (!bIsStickyMode) {
2775
+ var bIsStickyMode = !bIsHeaderExpanded,
2776
+ iScrollContainerHeight = this._getScrollableViewportHeight(bIsStickyMode);
2777
+ if (!bIsStickyMode && !this._bHeaderInTitleArea) {
2780
2778
  // for expanded mode, subtract the heights of headerContent and anchorBar
2781
2779
  // as they are also part of the scrollable content when *expanded* header,
2782
2780
  // but we need the height of the *sections area bellow* them
@@ -3013,23 +3011,23 @@ sap.ui.define([
3013
3011
  return;
3014
3012
  }
3015
3013
 
3016
- if (this._preserveHeaderStateOnScroll()) {
3014
+ if (this.getPreserveHeaderStateOnScroll()) {
3017
3015
  this._overridePreserveHeaderStateOnScroll();
3018
3016
  }
3019
3017
 
3020
3018
  this._adjustHeaderHeights();
3021
- this._requestAdjustLayout() // call adjust layout to calculate the new section sizes
3022
- .then(function () {
3023
- if (oOldSize.height > 0 || oOldSize.width > 0) {
3024
- // if the content that changed its height was *above* the current scroll position =>
3025
- // then the current scroll position updated respectively and => triggered a scroll event =>
3026
- // a new section may become selected during that scroll;
3027
- // problem if this happened BEFORE _requestAdjustLayout executed => wrong section may have been selected
3028
- // solution implemented bellow is to ensure that scroll handler is called with the latest scrollTop => we ensure the correct section is selected
3029
- iScrollTop = this._$opWrapper.scrollTop();
3030
- this._updateSelectionOnScroll(iScrollTop);
3031
- }
3032
- }.bind(this));
3019
+ this._requestAdjustLayout(true); // call adjust layout to calculate the new section sizes
3020
+
3021
+ if (oOldSize.height > 0 || oOldSize.width > 0) {
3022
+ // if the content that changed its height was *above* the current scroll position =>
3023
+ // then the current scroll position updated respectively and => triggered a scroll event =>
3024
+ // a new section may become selected during that scroll;
3025
+ // problem if this happened BEFORE _requestAdjustLayout executed => wrong section may have been selected
3026
+ // solution implemented bellow is to ensure that scroll handler is called with the latest scrollTop => we ensure the correct section is selected
3027
+ iScrollTop = this._$opWrapper.scrollTop();
3028
+ this._updateSelectionOnScroll(iScrollTop);
3029
+ }
3030
+
3033
3031
  };
3034
3032
 
3035
3033
  /**
@@ -3069,8 +3067,14 @@ sap.ui.define([
3069
3067
  }
3070
3068
 
3071
3069
  if (this._bHeaderInTitleArea && this._headerBiggerThanAllowedToBeExpandedInTitleArea()) {
3070
+ if (this._isHeaderPinnable()) {
3071
+ this._updatePinButtonState();
3072
+ }
3073
+
3072
3074
  this._expandHeader(false);
3073
3075
  this._scrollTo(0, 0);
3076
+ } else if (this._isHeaderPinnable() && !this._headerBiggerThanAllowedToBeExpandedInTitleArea()) {
3077
+ this._updatePinButtonState();
3074
3078
  }
3075
3079
 
3076
3080
  // Let the dynamic header know size changed first, because this might lead to header dimensions changes
@@ -3298,12 +3302,12 @@ sap.ui.define([
3298
3302
  if (iScrollTop === 0) {
3299
3303
  // if we have arrow from the title inside the ContentHeader and the ContentHeader isn't scrolled we have to put higher z-index to the ContentHeader
3300
3304
  // otherwise part of the arrow is cut off
3301
- jQuery(document.getElementById(this.getId() + "-scroll")).css("z-index", "1000");
3305
+ this.$("scroll").css("z-index", "1000");
3302
3306
  bScrolled = false;
3303
3307
  } else if (!bScrolled) {
3304
3308
  bScrolled = true;
3305
3309
  // and we have to "reset" the z-index it when we start scrolling
3306
- jQuery(document.getElementById(this.getId() + "-scroll")).css("z-index", "0");
3310
+ this.$("scroll").css("z-index", "0");
3307
3311
  }
3308
3312
  }
3309
3313
  };
@@ -3511,6 +3515,10 @@ sap.ui.define([
3511
3515
  this._bHeaderExpanded = true;
3512
3516
  this._adjustHeaderHeights();
3513
3517
  this._updateToggleHeaderVisualIndicators();
3518
+
3519
+ if (this._isHeaderPinnable()) {
3520
+ this._getHeaderContent()._getPinButton().setVisible(!this._headerBiggerThanAllowedToBeExpandedInTitleArea());
3521
+ }
3514
3522
  }
3515
3523
  };
3516
3524
 
@@ -4365,10 +4373,6 @@ sap.ui.define([
4365
4373
  && this.getAlwaysShowContentHeader();
4366
4374
  };
4367
4375
 
4368
- ObjectPageLayout.prototype._shouldOverridePreserveHeaderStateOnScroll = function () {
4369
- return !Device.system.desktop && this._headerBiggerThanAllowedToBeFixed();
4370
- };
4371
-
4372
4376
  ObjectPageLayout.prototype._headerBiggerThanAllowedToBeFixed = function () {
4373
4377
  var iControlHeight = this._getOwnHeight();
4374
4378
 
@@ -4462,14 +4466,25 @@ sap.ui.define([
4462
4466
 
4463
4467
  ObjectPageLayout.prototype._isHeaderPinnable = function () {
4464
4468
  var oHeader = this._getHeaderContent();
4465
- return oHeader && oHeader.getPinnable()
4466
- && this._bHeaderExpanded
4467
- && !this.getPreserveHeaderStateOnScroll();
4469
+
4470
+ return oHeader && oHeader.supportsPinUnpin() && oHeader.getPinnable();
4471
+ };
4472
+
4473
+ ObjectPageLayout.prototype._shouldPinUnpinHeader = function () {
4474
+ return this._bHeaderExpanded
4475
+ && !this.getPreserveHeaderStateOnScroll()
4476
+ && !this._headerBiggerThanAllowedToBeExpandedInTitleArea();
4468
4477
  };
4469
4478
 
4470
4479
  ObjectPageLayout.prototype._updatePinButtonState = function() {
4471
- var bShouldPin = this.getHeaderContentPinned() && this._isHeaderPinnable();
4472
- this._getHeaderContent()._togglePinButton(bShouldPin);
4480
+ var bIsHeaderPinnable = this._isHeaderPinnable(),
4481
+ bShouldPin = bIsHeaderPinnable && this.getHeaderContentPinned() && this._shouldPinUnpinHeader(),
4482
+ oHeaderContent = this._getHeaderContent();
4483
+
4484
+ oHeaderContent._togglePinButton(bShouldPin);
4485
+ this.$().toggleClass("sapUxAPObjectPageLayoutHeaderPinnable", bIsHeaderPinnable);
4486
+ oHeaderContent._getPinButton().setVisible(!this._headerBiggerThanAllowedToBeExpandedInTitleArea());
4487
+
4473
4488
  if (bShouldPin) {
4474
4489
  this._pin();
4475
4490
  } else {
@@ -4494,13 +4509,15 @@ sap.ui.define([
4494
4509
  * @private
4495
4510
  */
4496
4511
  ObjectPageLayout.prototype._overridePreserveHeaderStateOnScroll = function () {
4497
- if (!this._shouldOverridePreserveHeaderStateOnScroll()) {
4498
- this._bHeaderBiggerThanAllowedHeight = false;
4512
+ var bOldValue = this._bHeaderBiggerThanAllowedHeight, bChange;
4513
+
4514
+ this._bHeaderBiggerThanAllowedHeight = this._headerBiggerThanAllowedToBeFixed();
4515
+ bChange = bOldValue !== this._bHeaderBiggerThanAllowedHeight;
4516
+
4517
+ if (!this._bHeaderBiggerThanAllowedHeight || !bChange) {
4499
4518
  return;
4500
4519
  }
4501
4520
 
4502
- this._bHeaderBiggerThanAllowedHeight = true;
4503
-
4504
4521
  //move the header to content
4505
4522
  if (this._bHeaderExpanded) {
4506
4523
  this._moveAnchorBarToContentArea();
@@ -16,8 +16,9 @@ sap.ui.define([
16
16
  "sap/m/MenuButton",
17
17
  "sap/m/Menu",
18
18
  "sap/m/MenuItem",
19
- "sap/ui/core/IconPool"
20
- ], function (jQuery, BaseObject, Core, CustomData, Configuration, ManagedObjectObserver, AnchorBar, Button, MenuButton, Menu, MenuItem, IconPool) {
19
+ "sap/ui/core/IconPool",
20
+ "sap/ui/core/InvisibleText"
21
+ ], function (jQuery, BaseObject, Core, CustomData, Configuration, ManagedObjectObserver, AnchorBar, Button, MenuButton, Menu, MenuItem, IconPool, InvisibleText) {
21
22
  "use strict";
22
23
 
23
24
  var ABHelper = BaseObject.extend("sap.uxap._helpers.AB", {
@@ -145,7 +146,8 @@ sap.ui.define([
145
146
  sButtonTitle,
146
147
  sButtonIcon,
147
148
  oMenuItem,
148
- oCustomButton;
149
+ oCustomButton,
150
+ sSplitButtonDescInvsibleTextId = InvisibleText.getStaticId("sap.m", "SPLIT_BUTTON_DESCRIPTION");
149
151
 
150
152
  //tablet & desktop mechanism
151
153
  if (oAnchorBar && this.getObjectPageLayout().getShowAnchorBar()) {
@@ -180,6 +182,13 @@ sap.ui.define([
180
182
  mAriaProps.role = "option";
181
183
  mAriaProps.setsize = oContent.length;
182
184
  mAriaProps.posinset = iIndex + 1;
185
+
186
+ mAriaProps.labelledby = mAriaProps.labelledby
187
+ .split(" ")
188
+ .filter(function (sId) {
189
+ return sId !== sSplitButtonDescInvsibleTextId;
190
+ })
191
+ .join(" ");
183
192
  }
184
193
  };
185
194
 
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @extends sap.ui.core.Element
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.93.1
40
+ * @version 1.96.0
41
41
  *
42
42
  * @constructor
43
43
  * @public
@@ -147,7 +147,7 @@ sap.ui.define([
147
147
  ObjectPageSection.prototype._updateImportance = function (oCurrentMedia) {
148
148
  var oObjectPage = this._getObjectPageLayout(),
149
149
  sImportanceLevelToHide = this._getImportanceLevelToHide(oCurrentMedia),
150
- oHeaderDOM = this.bOutput && document.getElementById(this.getId() + "-header");
150
+ oHeaderDOM = this.bOutput && this.getDomRef("header");
151
151
 
152
152
  this.getSubSections().forEach(function (oSubSection) {
153
153
  oSubSection._applyImportanceRules(sImportanceLevelToHide);
@@ -512,12 +512,13 @@ sap.ui.define([
512
512
  return;
513
513
  }
514
514
 
515
- this._$spacer = jQuery(document.getElementById(oObjectPageLayout.getId() + "-spacer"));
515
+ this._$spacer = oObjectPageLayout.$("spacer");
516
516
 
517
- if (this._bShouldFocusSeeMoreLessButton) {
518
- this._bShouldFocusSeeMoreLessButton = false;
517
+ if (this._bShouldFocusSeeMoreLessButton && document.activeElement === document.body) {
519
518
  this._oCurrentlyVisibleSeeMoreLessButton.focus();
520
519
  }
520
+
521
+ this._bShouldFocusSeeMoreLessButton = false;
521
522
  };
522
523
 
523
524
  ObjectPageSubSection.prototype.onBeforeRendering = function () {
@@ -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.93.1
28
+ * @version 1.96.0
29
29
  * @since 1.75
30
30
  * @experimental Since 1.75
31
31
  */
@@ -13,7 +13,7 @@ sap.ui.define(["sap/ui/fl/changeHandler/MoveControls", "sap/ui/core/Core", "sap/
13
13
  * @constructor
14
14
  * @alias sap.uxap.changeHandler.MoveObjectPageSection
15
15
  * @author SAP SE
16
- * @version 1.93.1
16
+ * @version 1.96.0
17
17
  * @experimental Since 1.54
18
18
  */
19
19
 
@@ -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.93.1
24
+ * @version 1.96.0
25
25
  * @experimental Since 1.50
26
26
  */
27
27
 
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @namespace
25
25
  * @name sap.uxap
26
26
  * @author SAP SE
27
- * @version 1.93.1
27
+ * @version 1.96.0
28
28
  * @since 1.36
29
29
  * @public
30
30
  */
@@ -69,7 +69,7 @@ sap.ui.define([
69
69
  "sap.uxap.ObjectPageHeaderLayoutData",
70
70
  "sap.uxap.ObjectPageLazyLoader"
71
71
  ],
72
- version: "1.93.1",
72
+ version: "1.96.0",
73
73
  extensions: {
74
74
  flChangeHandlers: {
75
75
  "sap.uxap.ObjectPageHeader": "sap/uxap/flexibility/ObjectPageHeader",
@@ -110,7 +110,7 @@
110
110
  }
111
111
 
112
112
  .sapUiVltCell > .sapMObjectAttributeDiv, .sapUiVltCell > .sapMObjStatus {
113
- line-height: 1.5rem;
113
+ line-height: 1rem;
114
114
  }
115
115
 
116
116
  /* ProgressIndicator has display flex, but OPHeaderContent override it by setting display inline-block
@@ -134,20 +134,6 @@
134
134
  width: 100% !important;
135
135
  }
136
136
  }
137
- .sapMSlt {
138
- height: 1.625rem;
139
- margin-top: 0.1875rem;
140
- margin-bottom: 0.1875rem;
141
- .sapMSltLabel {
142
- line-height: 1.5rem;
143
- padding-right: 2.5rem;
144
- padding-left: 0.5rem;
145
- }
146
- .sapMSltArrow {
147
- width: 2rem;
148
- line-height: 1.625rem;
149
- }
150
- }
151
137
  }
152
138
 
153
139
  .sapUxAPObjectPageHeaderLayoutHiddenL,
package/ui5.yaml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
- specVersion: "1.1"
2
+ specVersion: "2.0"
3
3
  type: library
4
4
  metadata:
5
5
  name: sap.uxap
@@ -7,3 +7,6 @@ metadata:
7
7
  OpenUI5
8
8
  * (c) Copyright 2009-${currentYear} SAP SE or an SAP affiliate company.
9
9
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
10
+ resources:
11
+ configuration:
12
+ propertiesFileSourceEncoding: ISO-8859-1