@openui5/sap.uxap 1.99.0 → 1.100.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/THIRDPARTY.txt +2 -2
- package/package.json +5 -5
- package/src/sap/uxap/.library +1 -1
- package/src/sap/uxap/AnchorBarRenderer.js +2 -2
- package/src/sap/uxap/BlockBaseMetadata.js +1 -1
- package/src/sap/uxap/BreadCrumbsRenderer.js +2 -2
- package/src/sap/uxap/HierarchicalSelectRenderer.js +2 -2
- package/src/sap/uxap/ObjectPageAccessibleLandmarkInfo.js +1 -1
- package/src/sap/uxap/ObjectPageDynamicHeaderContent.js +1 -1
- package/src/sap/uxap/ObjectPageDynamicHeaderTitle.js +3 -3
- package/src/sap/uxap/ObjectPageHeader.js +2 -2
- package/src/sap/uxap/ObjectPageHeaderActionButtonRenderer.js +2 -2
- package/src/sap/uxap/ObjectPageHeaderContentRenderer.js +2 -2
- package/src/sap/uxap/ObjectPageHeaderRenderer.js +2 -2
- package/src/sap/uxap/ObjectPageLayout.js +41 -86
- package/src/sap/uxap/ObjectPageLayoutABHelper.js +1 -1
- package/src/sap/uxap/ObjectPageLayoutRenderer.js +3 -8
- package/src/sap/uxap/ObjectPageLazyLoader.js +1 -1
- package/src/sap/uxap/ObjectPageSection.js +1 -1
- package/src/sap/uxap/ObjectPageSectionRenderer.js +4 -2
- package/src/sap/uxap/ObjectPageSubSectionRenderer.js +2 -2
- package/src/sap/uxap/ThrottledTaskHelper.js +4 -0
- 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/designtime/ObjectPageLayout.designtime.js +4 -1
- package/src/sap/uxap/library.js +4 -4
package/THIRDPARTY.txt
CHANGED
|
@@ -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.10
|
|
201
201
|
Copyright: Rodney Rehm
|
|
202
202
|
License: MIT
|
|
203
203
|
License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
|
|
@@ -450,7 +450,7 @@ License: Apache-2.0
|
|
|
450
450
|
License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
|
|
451
451
|
Contained in: lib/jsdoc/ui5/plugin.js
|
|
452
452
|
|
|
453
|
-
Component: SAP Theming Base Content, version: 11.1.
|
|
453
|
+
Component: SAP Theming Base Content, version: 11.1.36-SNAPSHOT
|
|
454
454
|
Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
|
|
455
455
|
License: Apache-2.0
|
|
456
456
|
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.uxap",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.100.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.100.0",
|
|
18
|
+
"@openui5/sap.m": "1.100.0",
|
|
19
|
+
"@openui5/sap.ui.core": "1.100.0",
|
|
20
|
+
"@openui5/sap.ui.layout": "1.100.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.100.0</version>
|
|
7
7
|
<copyright>OpenUI5
|
|
8
8
|
* (c) Copyright 2009-2022 SAP SE or an SAP affiliate company.
|
|
9
9
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
|
|
@@ -9,8 +9,8 @@ sap.ui.define(["sap/m/ToolbarRenderer", "sap/ui/core/Renderer", "sap/m/BarInPage
|
|
|
9
9
|
"use strict";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
* @
|
|
12
|
+
* ObjectPageRenderer renderer.
|
|
13
|
+
* @namespace
|
|
14
14
|
*/
|
|
15
15
|
var AnchorBarRenderer = Renderer.extend(ToolbarRenderer);
|
|
16
16
|
|
|
@@ -9,8 +9,8 @@ sap.ui.define(["sap/m/SelectRenderer", "sap/ui/core/Renderer"
|
|
|
9
9
|
"use strict";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
* @
|
|
12
|
+
* ObjectPageRenderer renderer.
|
|
13
|
+
* @namespace
|
|
14
14
|
*/
|
|
15
15
|
var HierarchicalSelectRenderer = Renderer.extend(SelectRenderer);
|
|
16
16
|
HierarchicalSelectRenderer.apiVersion = 2;
|
|
@@ -42,7 +42,7 @@ sap.ui.define([
|
|
|
42
42
|
* @implements sap.uxap.IHeaderTitle
|
|
43
43
|
*
|
|
44
44
|
* @author SAP SE
|
|
45
|
-
* @version 1.
|
|
45
|
+
* @version 1.100.0
|
|
46
46
|
*
|
|
47
47
|
* @constructor
|
|
48
48
|
* @public
|
|
@@ -148,8 +148,8 @@ sap.ui.define([
|
|
|
148
148
|
|
|
149
149
|
/**
|
|
150
150
|
* Required by the {@link sap.uxap.IHeaderTitle} interface.
|
|
151
|
-
* @param {
|
|
152
|
-
* @param {object} change event of child-element that brought the need to adapt the headerTitle layout
|
|
151
|
+
* @param {jQuery} $headerDomRef reference to the header dom element
|
|
152
|
+
* @param {object} oEvent change event of child-element that brought the need to adapt the headerTitle layout
|
|
153
153
|
* @private
|
|
154
154
|
*/
|
|
155
155
|
ObjectPageDynamicHeaderTitle.prototype._adaptObjectPageHeaderIndentifierLine = function ($headerDomRef, oEvent) {
|
|
@@ -1045,8 +1045,8 @@ sap.ui.define([
|
|
|
1045
1045
|
* Finds the sub-element with the given <code>sId</code> contained
|
|
1046
1046
|
* within <code>$headerDomRef</code>
|
|
1047
1047
|
*
|
|
1048
|
-
* @param {
|
|
1049
|
-
* @param {string} the id of the element to be found
|
|
1048
|
+
* @param {jQuery} $headerDomRef reference to the header dom element
|
|
1049
|
+
* @param {string} sId the id of the element to be found
|
|
1050
1050
|
*
|
|
1051
1051
|
* Returns the jQuery reference to the dom element with the given sId
|
|
1052
1052
|
* @private
|
|
@@ -9,8 +9,8 @@ sap.ui.define(["sap/m/ButtonRenderer", "sap/ui/core/Renderer"],
|
|
|
9
9
|
"use strict";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
* @
|
|
12
|
+
* ObjectPageRenderer renderer.
|
|
13
|
+
* @namespace
|
|
14
14
|
*/
|
|
15
15
|
var ObjectPageHeaderActionButtonRenderer = Renderer.extend(ButtonRenderer);
|
|
16
16
|
|
|
@@ -32,7 +32,6 @@ sap.ui.define([
|
|
|
32
32
|
"sap/base/util/isEmptyObject",
|
|
33
33
|
"sap/base/util/merge",
|
|
34
34
|
"sap/ui/events/KeyCodes",
|
|
35
|
-
"sap/ui/events/F6Navigation",
|
|
36
35
|
"sap/ui/dom/getFirstEditableInput",
|
|
37
36
|
"sap/ui/core/theming/Parameters",
|
|
38
37
|
'sap/ui/dom/units/Rem'
|
|
@@ -63,7 +62,6 @@ sap.ui.define([
|
|
|
63
62
|
isEmptyObject,
|
|
64
63
|
merge,
|
|
65
64
|
KeyCodes,
|
|
66
|
-
F6Navigation,
|
|
67
65
|
getFirstEditableInput,
|
|
68
66
|
Parameters,
|
|
69
67
|
DomUnitsRem
|
|
@@ -826,7 +824,7 @@ sap.ui.define([
|
|
|
826
824
|
* Snaps the header
|
|
827
825
|
* and toggles the state of the title and the anchorBar accordingly
|
|
828
826
|
*
|
|
829
|
-
* @param bAppendHeaderToContent
|
|
827
|
+
* @param {boolean} bAppendHeaderToContent - determines if the header should be snapped
|
|
830
828
|
* with or without scroll:
|
|
831
829
|
*
|
|
832
830
|
* (1) If the <code>bAppendHeaderToContent</code> is <code>true</code>, then the
|
|
@@ -882,7 +880,7 @@ sap.ui.define([
|
|
|
882
880
|
* Expands the header
|
|
883
881
|
* and toggles the state of the title and the anchorBar accordingly
|
|
884
882
|
*
|
|
885
|
-
* @param bAppendHeaderToTitle
|
|
883
|
+
* @param {boolean} bAppendHeaderToTitle - determines if the header should be in the
|
|
886
884
|
* scrollable content-area or in the non-scrollable title-area
|
|
887
885
|
*
|
|
888
886
|
* @private
|
|
@@ -1137,23 +1135,8 @@ sap.ui.define([
|
|
|
1137
1135
|
|
|
1138
1136
|
this._ensureCorrectParentHeight();
|
|
1139
1137
|
|
|
1140
|
-
if (this._$sectionsContainer) {
|
|
1141
|
-
this._$sectionsContainer.off("focusout");
|
|
1142
|
-
this._$sectionsContainer.off("focusin");
|
|
1143
|
-
}
|
|
1144
|
-
|
|
1145
1138
|
this._cacheDomElements();
|
|
1146
1139
|
|
|
1147
|
-
if (this._$sectionsContainer) {
|
|
1148
|
-
this._$sectionsContainer.on("focusin", function () {
|
|
1149
|
-
this._skipToNextFastGroup = true;
|
|
1150
|
-
}.bind(this));
|
|
1151
|
-
|
|
1152
|
-
this._$sectionsContainer.on("focusout", function () {
|
|
1153
|
-
this._skipToNextFastGroup = false;
|
|
1154
|
-
}.bind(this));
|
|
1155
|
-
}
|
|
1156
|
-
|
|
1157
1140
|
if (this._hasDynamicTitle()) {
|
|
1158
1141
|
this.addStyleClass("sapUxAPObjectPageHasDynamicTitle");
|
|
1159
1142
|
}
|
|
@@ -1519,6 +1502,7 @@ sap.ui.define([
|
|
|
1519
1502
|
//but we still need to save the selectedSection value
|
|
1520
1503
|
vClosestSection = ObjectPageSection._getClosestSection(sId);
|
|
1521
1504
|
sSectionIdToSet = (vClosestSection instanceof ObjectPageSection) ? vClosestSection.getId() : vClosestSection;
|
|
1505
|
+
this.setDirectScrollingToSection(sSectionIdToSet);
|
|
1522
1506
|
return this.setAssociation("selectedSection", sSectionIdToSet, true);
|
|
1523
1507
|
};
|
|
1524
1508
|
|
|
@@ -1578,7 +1562,6 @@ sap.ui.define([
|
|
|
1578
1562
|
this._$stickyHeaderContent = this.$("stickyHeaderContent");
|
|
1579
1563
|
this._$contentContainer = this.$("scroll");
|
|
1580
1564
|
this._$sectionsContainer = this.$("sectionsContainer");
|
|
1581
|
-
this._$skipFastGroupAnchor = this.$("skipFastGroupAnchor");
|
|
1582
1565
|
|
|
1583
1566
|
// BCP 1870201875: explicitly set the latest scrollContainer dom ref
|
|
1584
1567
|
// (as the scroller obtains the latest scrollContainer dom ref in a LATER hook, which fails in conditions detailed in BCP 1870201875)
|
|
@@ -1833,37 +1816,6 @@ sap.ui.define([
|
|
|
1833
1816
|
return this;
|
|
1834
1817
|
};
|
|
1835
1818
|
|
|
1836
|
-
/**
|
|
1837
|
-
* Handler for F6
|
|
1838
|
-
*
|
|
1839
|
-
* @param {Object} oEvent - The event object
|
|
1840
|
-
*/
|
|
1841
|
-
ObjectPageLayout.prototype.onsapskipforward = function(oEvent) {
|
|
1842
|
-
if (this._skipToNextFastGroup) {
|
|
1843
|
-
this._handleGroupNavigation(oEvent, true);
|
|
1844
|
-
}
|
|
1845
|
-
};
|
|
1846
|
-
|
|
1847
|
-
/**
|
|
1848
|
-
* Handler for Shift + F6
|
|
1849
|
-
*
|
|
1850
|
-
* @param {Object} oEvent - The event object
|
|
1851
|
-
*/
|
|
1852
|
-
ObjectPageLayout.prototype.onsapskipback = function(oEvent) {
|
|
1853
|
-
if (this._skipToNextFastGroup) {
|
|
1854
|
-
this._handleGroupNavigation(oEvent, false);
|
|
1855
|
-
}
|
|
1856
|
-
};
|
|
1857
|
-
|
|
1858
|
-
ObjectPageLayout.prototype._handleGroupNavigation = function (oEvent, bForward) {
|
|
1859
|
-
var oSettings = {
|
|
1860
|
-
target: bForward ? this._$skipFastGroupAnchor[0] : this._$sectionsContainer[0]
|
|
1861
|
-
};
|
|
1862
|
-
|
|
1863
|
-
oEvent.type = "keydown";
|
|
1864
|
-
F6Navigation.handleF6GroupNavigation(oEvent, oSettings);
|
|
1865
|
-
};
|
|
1866
|
-
|
|
1867
1819
|
/**
|
|
1868
1820
|
* Sets a new section to be displayed as currently selected tab
|
|
1869
1821
|
* @param oSection
|
|
@@ -2017,6 +1969,8 @@ sap.ui.define([
|
|
|
2017
1969
|
|
|
2018
1970
|
this._applyUxRules(true);
|
|
2019
1971
|
|
|
1972
|
+
this._requestAdjustLayout(true);
|
|
1973
|
+
|
|
2020
1974
|
/* reset the selected section,
|
|
2021
1975
|
as the previously selected section may not be available anymore,
|
|
2022
1976
|
as it might have been deleted, or emptied, or set to hidden in the previous step */
|
|
@@ -2030,19 +1984,12 @@ sap.ui.define([
|
|
|
2030
1984
|
this._setCurrentTabSection(oSelectedSection);
|
|
2031
1985
|
this._bAllContentFitsContainer = this._hasSingleVisibleFullscreenSubSection(oSelectedSection);
|
|
2032
1986
|
}
|
|
2033
|
-
this.
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
sSelectedSectionId = this.getSelectedSection();
|
|
2040
|
-
// if the current scroll position is not at the selected section OR the ScrollEnablement is still scrolling due to an animation
|
|
2041
|
-
if (!this._isClosestScrolledSection(sSelectedSectionId) || this._oScroller._$Container.is(":animated")) {
|
|
2042
|
-
// then change the selection to match the correct section
|
|
2043
|
-
this.scrollToSection(sSelectedSectionId, null, 0, false, true /* redirect scroll */);
|
|
2044
|
-
}
|
|
2045
|
-
}.bind(this));
|
|
1987
|
+
this._oLazyLoading.doLazyLoading();
|
|
1988
|
+
// if the current scroll position is not at the selected section OR the ScrollEnablement is still scrolling due to an animation
|
|
1989
|
+
if (!this._isClosestScrolledSection(sSelectedSectionId) || this._oScroller._$Container.is(":animated")) {
|
|
1990
|
+
// then change the selection to match the correct section
|
|
1991
|
+
this.scrollToSection(sSelectedSectionId, null, 0, false, true /* redirect scroll */);
|
|
1992
|
+
}
|
|
2046
1993
|
}
|
|
2047
1994
|
};
|
|
2048
1995
|
|
|
@@ -2671,6 +2618,11 @@ sap.ui.define([
|
|
|
2671
2618
|
|
|
2672
2619
|
this._setSectionInfoIsDirty(false);
|
|
2673
2620
|
|
|
2621
|
+
// if a scroll event was fired *before* the delayed execution of <code>_updateScreenHeightSectionBasesAndSpacer</code>
|
|
2622
|
+
// => wrong section may have been selected in <code>_updateSelectionOnScroll</code>
|
|
2623
|
+
// => update the selection using the newly updated DOM positions and the current scrollTop
|
|
2624
|
+
this._updateSelectionOnScroll(this._$opWrapper.scrollTop());
|
|
2625
|
+
|
|
2674
2626
|
return true; // return success flag
|
|
2675
2627
|
};
|
|
2676
2628
|
|
|
@@ -3004,9 +2956,9 @@ sap.ui.define([
|
|
|
3004
2956
|
};
|
|
3005
2957
|
|
|
3006
2958
|
ObjectPageLayout.prototype._onUpdateContentSize = function (oEvent) {
|
|
3007
|
-
var
|
|
3008
|
-
|
|
3009
|
-
|
|
2959
|
+
var oSize = oEvent.size;
|
|
2960
|
+
|
|
2961
|
+
this.iContentHeight = oSize.height;
|
|
3010
2962
|
|
|
3011
2963
|
if (oSize.height === 0 || oSize.width === 0) {
|
|
3012
2964
|
Log.info("ObjectPageLayout :: not triggering calculations if height or width is 0");
|
|
@@ -3019,17 +2971,18 @@ sap.ui.define([
|
|
|
3019
2971
|
|
|
3020
2972
|
this._adjustHeaderHeights();
|
|
3021
2973
|
this._requestAdjustLayout(true); // call adjust layout to calculate the new section sizes
|
|
2974
|
+
};
|
|
3022
2975
|
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
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);
|
|
2976
|
+
ObjectPageLayout.prototype.triggerPendingLayoutUpdates = function () {
|
|
2977
|
+
if (this._hasPendingLayoutUpdate()) {
|
|
2978
|
+
this._requestAdjustLayout(true);
|
|
3031
2979
|
}
|
|
2980
|
+
};
|
|
3032
2981
|
|
|
2982
|
+
ObjectPageLayout.prototype._hasPendingLayoutUpdate = function () {
|
|
2983
|
+
return this._oLayoutTask && this._oLayoutTask.isPending()
|
|
2984
|
+
// pending resize notification that will trigger the due layout update on resize
|
|
2985
|
+
|| (this._$contentContainer.length && this._$contentContainer.get(0).offsetHeight !== this.iContentHeight);
|
|
3033
2986
|
};
|
|
3034
2987
|
|
|
3035
2988
|
/**
|
|
@@ -3319,10 +3272,12 @@ sap.ui.define([
|
|
|
3319
3272
|
* @param iScrollTop
|
|
3320
3273
|
* @private
|
|
3321
3274
|
*/
|
|
3322
|
-
|
|
3275
|
+
ObjectPageLayout.prototype._updateSelectionOnScroll = function(iScrollTop) {
|
|
3323
3276
|
|
|
3324
3277
|
var iPageHeight = this.iScreenHeight,
|
|
3325
3278
|
sClosestId,
|
|
3279
|
+
oClosestSection,
|
|
3280
|
+
sClosestSectionId,
|
|
3326
3281
|
sClosestSubSectionId;
|
|
3327
3282
|
|
|
3328
3283
|
if (iPageHeight === 0) {
|
|
@@ -3331,6 +3286,8 @@ sap.ui.define([
|
|
|
3331
3286
|
|
|
3332
3287
|
//find the currently scrolled section = where position - iScrollTop is closest to 0
|
|
3333
3288
|
sClosestId = this._getClosestScrolledSectionBaseId(iScrollTop, iPageHeight);
|
|
3289
|
+
oClosestSection = ObjectPageSection._getClosestSection(sClosestId);
|
|
3290
|
+
sClosestSectionId = oClosestSection ? oClosestSection.getId() : null;
|
|
3334
3291
|
sClosestSubSectionId = this._getClosestScrolledSectionBaseId(iScrollTop, iPageHeight, true /* subSections only */);
|
|
3335
3292
|
|
|
3336
3293
|
if (sClosestId) {
|
|
@@ -3350,13 +3307,13 @@ sap.ui.define([
|
|
|
3350
3307
|
// then we do not want to process intermediate sections (i.e. sections between scroll-start section and scroll-destination sections)
|
|
3351
3308
|
// so if current section is not destination section
|
|
3352
3309
|
// then no need to proceed further
|
|
3353
|
-
if (sDestinationSectionId && sDestinationSectionId !==
|
|
3310
|
+
if (sDestinationSectionId && sDestinationSectionId !== sClosestSectionId) {
|
|
3354
3311
|
return;
|
|
3355
3312
|
}
|
|
3356
3313
|
this.clearDirectScrollingToSection();
|
|
3357
3314
|
|
|
3358
3315
|
this._setAsCurrentSection(sClosestId);
|
|
3359
|
-
} else if (
|
|
3316
|
+
} else if (sClosestSectionId === this.getDirectScrollingToSection()) { //we are already in the destination section
|
|
3360
3317
|
this.clearDirectScrollingToSection();
|
|
3361
3318
|
}
|
|
3362
3319
|
|
|
@@ -3433,10 +3390,7 @@ sap.ui.define([
|
|
|
3433
3390
|
|
|
3434
3391
|
// on desktop/tablet, skip subsections
|
|
3435
3392
|
// BCP 1680331690. Should skip subsections that are in a section with lower importance, which makes them hidden.
|
|
3436
|
-
section =
|
|
3437
|
-
if (!section) {
|
|
3438
|
-
return;
|
|
3439
|
-
}
|
|
3393
|
+
section = oInfo.sectionReference;
|
|
3440
3394
|
sectionParent = section.getParent();
|
|
3441
3395
|
isParentHiddenSection = sectionParent instanceof ObjectPageSection && sectionParent._getIsHidden();
|
|
3442
3396
|
|
|
@@ -3473,16 +3427,15 @@ sap.ui.define([
|
|
|
3473
3427
|
// current section/subsection is inside the view port
|
|
3474
3428
|
if (oInfo.positionTop <= iScrollPageBottom && iScrollTop <= oInfo.positionBottom) {
|
|
3475
3429
|
// scrolling position is over current section/subsection
|
|
3476
|
-
if (oInfo.positionTop <= iScrollTop && oInfo.positionBottom > iScrollTop) {
|
|
3430
|
+
if (oInfo.positionTop <= iScrollTop + 1 && oInfo.positionBottom > iScrollTop) {
|
|
3477
3431
|
sClosestId = sId;
|
|
3478
|
-
return false;
|
|
3479
3432
|
}
|
|
3480
3433
|
}
|
|
3481
3434
|
}
|
|
3482
3435
|
|
|
3483
3436
|
}.bind(this));
|
|
3484
3437
|
|
|
3485
|
-
return sClosestId;
|
|
3438
|
+
return this.oCore.byId(sClosestId) ? sClosestId : null;
|
|
3486
3439
|
};
|
|
3487
3440
|
|
|
3488
3441
|
|
|
@@ -4221,7 +4174,9 @@ sap.ui.define([
|
|
|
4221
4174
|
return;
|
|
4222
4175
|
}
|
|
4223
4176
|
|
|
4224
|
-
|
|
4177
|
+
this.triggerPendingLayoutUpdates();
|
|
4178
|
+
|
|
4179
|
+
var iScrollTop = this._$opWrapper.scrollTop(),
|
|
4225
4180
|
sScrolledSubSectionId = this._getClosestScrolledSectionBaseId(
|
|
4226
4181
|
this._oScroller.getScrollTop(), this.iScreenHeight, true /* subSections only */),
|
|
4227
4182
|
iScrollTopWithinScrolledSubSection;
|
|
@@ -246,7 +246,7 @@ sap.ui.define([
|
|
|
246
246
|
|
|
247
247
|
/**
|
|
248
248
|
* Moves focus on the corresponding subsection when MenuItem is selected
|
|
249
|
-
* @param {sap.ui.core.Control} oSourceControl
|
|
249
|
+
* @param {sap.ui.core.Control} oSourceControl selected Item
|
|
250
250
|
* @private
|
|
251
251
|
*/
|
|
252
252
|
ABHelper.prototype._moveFocusOnSection = function (oSourceControl) {
|
|
@@ -9,8 +9,8 @@ sap.ui.define(["sap/ui/Device"],
|
|
|
9
9
|
"use strict";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
* @
|
|
12
|
+
* ObjectPageLayout renderer.
|
|
13
|
+
* @namespace
|
|
14
14
|
*/
|
|
15
15
|
var ObjectPageLayoutRenderer = {
|
|
16
16
|
apiVersion: 2
|
|
@@ -199,11 +199,6 @@ sap.ui.define(["sap/ui/Device"],
|
|
|
199
199
|
.openEnd()
|
|
200
200
|
.close("div");
|
|
201
201
|
|
|
202
|
-
oRm.openStart("span", oControl.getId() + "-skipFastGroupAnchor")
|
|
203
|
-
.class("sapUiPseudoInvisibleText")
|
|
204
|
-
.openEnd()
|
|
205
|
-
.close("span");
|
|
206
|
-
|
|
207
202
|
oRm.close("div"); // END scroll
|
|
208
203
|
|
|
209
204
|
oRm.close("div"); // END wrapper
|
|
@@ -246,7 +241,7 @@ sap.ui.define(["sap/ui/Device"],
|
|
|
246
241
|
* @param {sap.ui.core.Control} oControl an object representation of the control that should be rendered
|
|
247
242
|
* @param {boolean} bRender - shows if the control should be rendered
|
|
248
243
|
* @param {string} sId - the id of the div that should be rendered
|
|
249
|
-
* @param {boolean}
|
|
244
|
+
* @param {boolean} bApplyBelizePlusClass - shows if the DOM of the control should be rendered no matter if the control is rendered inside or not
|
|
250
245
|
*/
|
|
251
246
|
ObjectPageLayoutRenderer._renderHeaderContentDOM = function (oRm, oControl, bRender, sId, bApplyBelizePlusClass) {
|
|
252
247
|
oRm.openStart("header", oControl.getId() + sId)
|
|
@@ -92,7 +92,7 @@ sap.ui.define([
|
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
94
|
* Returns the closest ObjectPageSection.
|
|
95
|
-
* @param {sap.uxap.ObjectPageSectionBase}
|
|
95
|
+
* @param {sap.uxap.ObjectPageSectionBase} vSectionBase
|
|
96
96
|
* @returns {sap.uxap.ObjectPageSection} The closest ObjectPageSection
|
|
97
97
|
* @private
|
|
98
98
|
*/
|
|
@@ -8,8 +8,8 @@ sap.ui.define(function () {
|
|
|
8
8
|
"use strict";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
* @
|
|
11
|
+
* Section renderer.
|
|
12
|
+
* @namespace
|
|
13
13
|
*/
|
|
14
14
|
var ObjectPageSectionRenderer = {
|
|
15
15
|
apiVersion: 2
|
|
@@ -40,6 +40,8 @@ sap.ui.define(function () {
|
|
|
40
40
|
oRm.attr("aria-labelledby", oLabelledBy.getId());
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
oRm.attr("data-sap-ui-customfastnavgroup", true);
|
|
44
|
+
|
|
43
45
|
oRm.openEnd();
|
|
44
46
|
|
|
45
47
|
oRm.openStart("div", oControl.getId() + "-header")
|
|
@@ -159,6 +159,9 @@ function(
|
|
|
159
159
|
addIFrame: {
|
|
160
160
|
text: sap.ui.getCore().getLibraryResourceBundle("sap.uxap").getText("ADD_IFRAME_IN_HEADER"),
|
|
161
161
|
changeType: "addIFrame"
|
|
162
|
+
},
|
|
163
|
+
remove : {
|
|
164
|
+
removeLastElement: true
|
|
162
165
|
}
|
|
163
166
|
}
|
|
164
167
|
},
|
|
@@ -202,4 +205,4 @@ function(
|
|
|
202
205
|
}
|
|
203
206
|
};
|
|
204
207
|
|
|
205
|
-
});
|
|
208
|
+
});
|
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.100.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.100.0",
|
|
73
73
|
extensions: {
|
|
74
74
|
flChangeHandlers: {
|
|
75
75
|
"sap.uxap.ObjectPageHeader": "sap/uxap/flexibility/ObjectPageHeader",
|
|
@@ -101,11 +101,11 @@ sap.ui.define([
|
|
|
101
101
|
});
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
|
-
*
|
|
104
|
+
* Used by the <code>BlockBase</code> control to define how many columns should it be assigned by the <code>objectPageSubSection</code>.
|
|
105
105
|
* The allowed values can be auto (subsection assigned a number of columns based on the parent objectPageLayout subsectionLayout property), 1, 2, 3 or 4
|
|
106
106
|
* (This may not be a valid value for some <code>subSectionLayout</code>, for example, asking for 3 columns in a 2 column layout would raise warnings).
|
|
107
107
|
*
|
|
108
|
-
* @
|
|
108
|
+
* @namespace
|
|
109
109
|
* @public
|
|
110
110
|
* @ui5-metamodel This simple type also will be described in the UI5 (legacy) designtime metamodel
|
|
111
111
|
*/
|