@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 +11 -11
- package/THIRDPARTY.txt +20 -17
- package/package.json +5 -5
- package/src/sap/uxap/.library +1 -1
- package/src/sap/uxap/AnchorBar.js +1 -1
- package/src/sap/uxap/BlockBaseMetadata.js +1 -1
- package/src/sap/uxap/ObjectPageAccessibleLandmarkInfo.js +1 -1
- package/src/sap/uxap/ObjectPageDynamicHeaderContent.js +1 -1
- package/src/sap/uxap/ObjectPageDynamicHeaderTitle.js +1 -1
- package/src/sap/uxap/ObjectPageLayout.js +86 -69
- package/src/sap/uxap/ObjectPageLayoutABHelper.js +12 -3
- package/src/sap/uxap/ObjectPageLazyLoader.js +1 -1
- package/src/sap/uxap/ObjectPageSection.js +1 -1
- package/src/sap/uxap/ObjectPageSubSection.js +4 -3
- package/src/sap/uxap/changeHandler/AddIFrameObjectPageLayout.js +1 -1
- package/src/sap/uxap/changeHandler/MoveObjectPageSection.js +1 -1
- package/src/sap/uxap/changeHandler/RenameObjectPageSection.js +1 -1
- package/src/sap/uxap/library.js +2 -2
- package/src/sap/uxap/themes/base/ObjectPageHeaderContent.less +1 -15
- package/ui5.yaml +4 -1
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:
|
|
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.
|
|
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.
|
|
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:
|
|
283
|
-
Copyright:
|
|
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:
|
|
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.
|
|
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.
|
|
18
|
-
"@openui5/sap.m": "1.
|
|
19
|
-
"@openui5/sap.ui.core": "1.
|
|
20
|
-
"@openui5/sap.ui.layout": "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
|
}
|
package/src/sap/uxap/.library
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
<name>sap.uxap</name>
|
|
5
5
|
<vendor>SAP SE</vendor>
|
|
6
|
-
<version>1.
|
|
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
|
-
|
|
627
|
+
this.$("scroll").parent().stop(true, false);
|
|
628
628
|
}
|
|
629
629
|
|
|
630
630
|
this._iCurrentScrollTimeout = setTimeout(function () {
|
|
@@ -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.
|
|
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 =
|
|
1569
|
-
this._$titleArea =
|
|
1570
|
-
this._$anchorBar =
|
|
1571
|
-
this._$stickyAnchorBar =
|
|
1572
|
-
this._$opWrapper =
|
|
1573
|
-
this._$spacer =
|
|
1574
|
-
this._$headerContent =
|
|
1575
|
-
this._$stickyHeaderContent =
|
|
1576
|
-
this._$contentContainer =
|
|
1577
|
-
this._$sectionsContainer =
|
|
1578
|
-
this._$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
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
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(
|
|
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
|
|
2701
|
-
// =>
|
|
2702
|
-
|
|
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(
|
|
2773
|
+
ObjectPageLayout.prototype._getSectionsContainerHeight = function(bIsHeaderExpanded) {
|
|
2777
2774
|
|
|
2778
|
-
var
|
|
2779
|
-
|
|
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.
|
|
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
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4466
|
-
|
|
4467
|
-
|
|
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
|
|
4472
|
-
|
|
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
|
-
|
|
4498
|
-
|
|
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
|
-
|
|
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
|
|
|
@@ -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 &&
|
|
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 =
|
|
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 () {
|
package/src/sap/uxap/library.js
CHANGED
|
@@ -24,7 +24,7 @@ sap.ui.define([
|
|
|
24
24
|
* @namespace
|
|
25
25
|
* @name sap.uxap
|
|
26
26
|
* @author SAP SE
|
|
27
|
-
* @version 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.
|
|
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:
|
|
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: "
|
|
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
|