@openui5/sap.uxap 1.111.2 → 1.112.2
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/package.json +5 -5
- package/src/sap/uxap/.library +1 -1
- package/src/sap/uxap/AnchorBar.js +104 -8
- 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 +47 -8
- package/src/sap/uxap/ObjectPageLazyLoader.js +1 -1
- package/src/sap/uxap/ObjectPageSection.js +5 -1
- package/src/sap/uxap/ObjectPageSectionBase.js +5 -1
- package/src/sap/uxap/ObjectPageSubSection.js +15 -0
- package/src/sap/uxap/changeHandler/AddIFrameObjectPageLayout.js +8 -2
- 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/messagebundle.properties +4 -4
- package/src/sap/uxap/messagebundle_ar.properties +3 -3
- package/src/sap/uxap/messagebundle_bg.properties +3 -3
- package/src/sap/uxap/messagebundle_ca.properties +3 -3
- package/src/sap/uxap/messagebundle_cs.properties +3 -3
- package/src/sap/uxap/messagebundle_cy.properties +3 -3
- package/src/sap/uxap/messagebundle_da.properties +3 -3
- package/src/sap/uxap/messagebundle_de.properties +2 -2
- package/src/sap/uxap/messagebundle_el.properties +3 -3
- package/src/sap/uxap/messagebundle_en.properties +2 -2
- package/src/sap/uxap/messagebundle_en_GB.properties +2 -2
- package/src/sap/uxap/messagebundle_en_US_sappsd.properties +2 -2
- package/src/sap/uxap/messagebundle_en_US_saprigi.properties +2 -2
- package/src/sap/uxap/messagebundle_en_US_saptrc.properties +2 -2
- package/src/sap/uxap/messagebundle_es.properties +3 -3
- package/src/sap/uxap/messagebundle_es_MX.properties +3 -3
- package/src/sap/uxap/messagebundle_et.properties +3 -3
- package/src/sap/uxap/messagebundle_fi.properties +4 -4
- package/src/sap/uxap/messagebundle_fr.properties +3 -3
- package/src/sap/uxap/messagebundle_fr_CA.properties +3 -3
- package/src/sap/uxap/messagebundle_hi.properties +3 -3
- package/src/sap/uxap/messagebundle_hr.properties +3 -3
- package/src/sap/uxap/messagebundle_hu.properties +3 -3
- package/src/sap/uxap/messagebundle_id.properties +3 -3
- package/src/sap/uxap/messagebundle_it.properties +3 -3
- package/src/sap/uxap/messagebundle_iw.properties +3 -3
- package/src/sap/uxap/messagebundle_ja.properties +3 -3
- package/src/sap/uxap/messagebundle_kk.properties +3 -3
- package/src/sap/uxap/messagebundle_ko.properties +3 -3
- package/src/sap/uxap/messagebundle_lt.properties +3 -3
- package/src/sap/uxap/messagebundle_lv.properties +3 -3
- package/src/sap/uxap/messagebundle_ms.properties +3 -3
- package/src/sap/uxap/messagebundle_nl.properties +3 -3
- package/src/sap/uxap/messagebundle_no.properties +3 -3
- package/src/sap/uxap/messagebundle_pl.properties +3 -3
- package/src/sap/uxap/messagebundle_pt.properties +3 -3
- package/src/sap/uxap/messagebundle_pt_PT.properties +3 -3
- package/src/sap/uxap/messagebundle_ro.properties +3 -3
- package/src/sap/uxap/messagebundle_ru.properties +3 -3
- package/src/sap/uxap/messagebundle_sh.properties +3 -3
- package/src/sap/uxap/messagebundle_sk.properties +3 -3
- package/src/sap/uxap/messagebundle_sl.properties +3 -3
- package/src/sap/uxap/messagebundle_sv.properties +3 -3
- package/src/sap/uxap/messagebundle_th.properties +3 -3
- package/src/sap/uxap/messagebundle_tr.properties +3 -3
- package/src/sap/uxap/messagebundle_uk.properties +3 -3
- package/src/sap/uxap/messagebundle_vi.properties +3 -3
- package/src/sap/uxap/messagebundle_zh_CN.properties +3 -3
- package/src/sap/uxap/messagebundle_zh_TW.properties +3 -3
- package/src/sap/uxap/themes/base/ObjectPageLayout.less +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openui5/sap.uxap",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.112.2",
|
|
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.112.2",
|
|
18
|
+
"@openui5/sap.m": "1.112.2",
|
|
19
|
+
"@openui5/sap.ui.core": "1.112.2",
|
|
20
|
+
"@openui5/sap.ui.layout": "1.112.2"
|
|
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.112.2</version>
|
|
7
7
|
<copyright>OpenUI5
|
|
8
8
|
* (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
|
|
9
9
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
|
|
@@ -32,6 +32,9 @@ sap.ui.define([
|
|
|
32
32
|
// shortcut for sap.m.SelectType
|
|
33
33
|
var SelectType = mobileLibrary.SelectType;
|
|
34
34
|
|
|
35
|
+
// 2px tollerance when calculating how much the scroll of the AnchorBar should be moved, when using arrow keys. This way the focus border is not cut.
|
|
36
|
+
var OFFSET_SCROLL = 2;
|
|
37
|
+
|
|
35
38
|
/**
|
|
36
39
|
* Constructor for a new <code>AnchorBar</code>.
|
|
37
40
|
*
|
|
@@ -688,8 +691,9 @@ sap.ui.define([
|
|
|
688
691
|
AnchorBar.prototype.onsapright = function (oEvent) {
|
|
689
692
|
oEvent.preventDefault();
|
|
690
693
|
|
|
691
|
-
var iNextIndex
|
|
692
|
-
|
|
694
|
+
var iNextIndex,
|
|
695
|
+
aAnchors = this.getContent(),
|
|
696
|
+
oAnchor;
|
|
693
697
|
|
|
694
698
|
aAnchors.forEach(function (oAnchor, iAnchorIndex) {
|
|
695
699
|
if (oEvent.target.id.indexOf(oAnchor.getId()) > -1) {
|
|
@@ -699,10 +703,14 @@ sap.ui.define([
|
|
|
699
703
|
});
|
|
700
704
|
|
|
701
705
|
if (iNextIndex && aAnchors[iNextIndex]) {
|
|
702
|
-
aAnchors[iNextIndex]
|
|
706
|
+
oAnchor = aAnchors[iNextIndex];
|
|
707
|
+
oAnchor.focus();
|
|
703
708
|
} else if (aAnchors[aAnchors.length - 1]) {
|
|
704
|
-
aAnchors[aAnchors.length - 1]
|
|
709
|
+
oAnchor = aAnchors[aAnchors.length - 1];
|
|
710
|
+
oAnchor.focus();
|
|
705
711
|
}
|
|
712
|
+
|
|
713
|
+
this._forceScrollIfNeeded(oAnchor);
|
|
706
714
|
};
|
|
707
715
|
|
|
708
716
|
/**
|
|
@@ -714,8 +722,9 @@ sap.ui.define([
|
|
|
714
722
|
AnchorBar.prototype.onsapleft = function (oEvent) {
|
|
715
723
|
oEvent.preventDefault();
|
|
716
724
|
|
|
717
|
-
var iNextIndex
|
|
718
|
-
|
|
725
|
+
var iNextIndex,
|
|
726
|
+
aAnchors = this.getContent(),
|
|
727
|
+
oAnchor;
|
|
719
728
|
|
|
720
729
|
aAnchors.forEach(function (oAnchor, iAnchorIndex) {
|
|
721
730
|
if (oEvent.target.id.indexOf(oAnchor.getId()) > -1) {
|
|
@@ -725,10 +734,97 @@ sap.ui.define([
|
|
|
725
734
|
});
|
|
726
735
|
|
|
727
736
|
if (iNextIndex && aAnchors[iNextIndex]) {
|
|
728
|
-
aAnchors[iNextIndex]
|
|
737
|
+
oAnchor = aAnchors[iNextIndex];
|
|
738
|
+
oAnchor.focus();
|
|
729
739
|
} else if (aAnchors[0]) {
|
|
730
|
-
aAnchors[0]
|
|
740
|
+
oAnchor = aAnchors[0];
|
|
741
|
+
oAnchor.focus();
|
|
731
742
|
}
|
|
743
|
+
|
|
744
|
+
this._forceScrollIfNeeded(oAnchor, true);
|
|
745
|
+
};
|
|
746
|
+
|
|
747
|
+
/**
|
|
748
|
+
* Checks if AnchorBar should be scrolled and scrolls it forcly, if needed.
|
|
749
|
+
*
|
|
750
|
+
* @param {object} oAnchor
|
|
751
|
+
* @param {boolean} bLeft
|
|
752
|
+
* @private
|
|
753
|
+
*/
|
|
754
|
+
AnchorBar.prototype._forceScrollIfNeeded = function (oAnchor, bLeft) {
|
|
755
|
+
var oAnchorDomRef = oAnchor.getDomRef(),
|
|
756
|
+
oParentRef = oAnchorDomRef.parentElement,
|
|
757
|
+
iParentRefOffsetLeft = oParentRef.offsetLeft,
|
|
758
|
+
oParentRefOffsetWidth = oParentRef.offsetWidth,
|
|
759
|
+
iAnchorDomRefWidth = oAnchorDomRef && oAnchorDomRef.offsetWidth,
|
|
760
|
+
iAnchorDomOffsetLeft = oAnchorDomRef && oAnchorDomRef.offsetLeft,
|
|
761
|
+
iCurrentScrollPosition = this._oScroller.getScrollLeft(),
|
|
762
|
+
iVisibleScrollPosition,
|
|
763
|
+
iAnchorPosition,
|
|
764
|
+
iOffsetScroll;
|
|
765
|
+
|
|
766
|
+
if (!oParentRef || !iAnchorDomRefWidth) {
|
|
767
|
+
return;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
if (!this._bRtl) {
|
|
771
|
+
// The right position of the tab
|
|
772
|
+
iAnchorPosition = iAnchorDomOffsetLeft + iAnchorDomRefWidth;
|
|
773
|
+
|
|
774
|
+
// Calculates how much the scroll container should be scrolled, so that the right position of the tab will be visible
|
|
775
|
+
iOffsetScroll = oParentRefOffsetWidth - (iParentRefOffsetLeft + iAnchorPosition - iCurrentScrollPosition);
|
|
776
|
+
if (!bLeft && iOffsetScroll < 0 && oParentRefOffsetWidth - iAnchorPosition < 0) {
|
|
777
|
+
this._scrollAnchorBar(bLeft, iOffsetScroll);
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
// Calculates how much the scroll container should be scrolled, so that the left position of the tab will be visible
|
|
781
|
+
iOffsetScroll = iAnchorDomOffsetLeft - this._iOffset - iParentRefOffsetLeft - OFFSET_SCROLL;
|
|
782
|
+
if (bLeft && iCurrentScrollPosition > iOffsetScroll) {
|
|
783
|
+
this._scrollAnchorBar(bLeft, iOffsetScroll);
|
|
784
|
+
}
|
|
785
|
+
} else {
|
|
786
|
+
if (bLeft) {
|
|
787
|
+
// The last visible right position of the scroll container (in RTL left/right scrolling is reversed)
|
|
788
|
+
iVisibleScrollPosition = iCurrentScrollPosition + oParentRefOffsetWidth - this._iOffset;
|
|
789
|
+
// The right position of the tab
|
|
790
|
+
iAnchorPosition = iAnchorDomOffsetLeft - iParentRefOffsetLeft;
|
|
791
|
+
|
|
792
|
+
if (iAnchorPosition + iAnchorDomRefWidth > iVisibleScrollPosition) {
|
|
793
|
+
// Calculates how much the scroll container should be scrolled, so that the right position of the tab will be visible
|
|
794
|
+
iOffsetScroll = ((iAnchorPosition + iAnchorDomRefWidth) - iVisibleScrollPosition + OFFSET_SCROLL);
|
|
795
|
+
this._scrollAnchorBar(bLeft, iOffsetScroll);
|
|
796
|
+
}
|
|
797
|
+
} else {
|
|
798
|
+
if (iAnchorDomOffsetLeft - iParentRefOffsetLeft - this._iOffset - OFFSET_SCROLL < iCurrentScrollPosition) {
|
|
799
|
+
// Calculates how much the scroll container should be scrolled, so that the left position of the tab will be visible
|
|
800
|
+
iOffsetScroll = iAnchorDomRefWidth - iAnchorDomOffsetLeft + OFFSET_SCROLL;
|
|
801
|
+
this._scrollAnchorBar(bLeft, iOffsetScroll);
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
}
|
|
805
|
+
};
|
|
806
|
+
|
|
807
|
+
/**
|
|
808
|
+
* Forcly scrolls AnchorBar, if the currently focused tab is not fully visible.
|
|
809
|
+
*
|
|
810
|
+
* @param {boolean} bScrollLeft
|
|
811
|
+
* @param {number} iOffsetScroll
|
|
812
|
+
* @private
|
|
813
|
+
*/
|
|
814
|
+
AnchorBar.prototype._scrollAnchorBar = function (bScrollLeft, iOffsetScroll) {
|
|
815
|
+
var iScrollDirection = ((!this._bRtl && bScrollLeft) || (this._bRtl && !bScrollLeft)) ? -1 : 1,
|
|
816
|
+
iCurrentScrollPosition = this._oScroller.getScrollLeft(),
|
|
817
|
+
iNewScrollPosition = iOffsetScroll;
|
|
818
|
+
|
|
819
|
+
if (iScrollDirection === 1) {
|
|
820
|
+
iNewScrollPosition = this._bRtl ? iCurrentScrollPosition + iOffsetScroll : iCurrentScrollPosition + Math.abs(iOffsetScroll);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
if (this._bRtl && iScrollDirection === -1) {
|
|
824
|
+
iNewScrollPosition = iOffsetScroll * iScrollDirection;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
this._oScroller.scrollTo(iNewScrollPosition, 0, AnchorBar.SCROLL_DURATION * 3);
|
|
732
828
|
};
|
|
733
829
|
|
|
734
830
|
/**
|
|
@@ -11,6 +11,7 @@ sap.ui.define([
|
|
|
11
11
|
"sap/ui/core/ResizeHandler",
|
|
12
12
|
"sap/ui/core/Configuration",
|
|
13
13
|
"sap/ui/core/Control",
|
|
14
|
+
"sap/ui/core/InvisibleText",
|
|
14
15
|
"sap/ui/Device",
|
|
15
16
|
"sap/ui/base/ManagedObject",
|
|
16
17
|
"sap/ui/core/delegate/ScrollEnablement",
|
|
@@ -39,6 +40,7 @@ sap.ui.define([
|
|
|
39
40
|
ResizeHandler,
|
|
40
41
|
Configuration,
|
|
41
42
|
Control,
|
|
43
|
+
InvisibleText,
|
|
42
44
|
Device,
|
|
43
45
|
ManagedObject,
|
|
44
46
|
ScrollEnablement,
|
|
@@ -544,7 +546,6 @@ sap.ui.define([
|
|
|
544
546
|
ObjectPageLayout.DIV = "div";
|
|
545
547
|
ObjectPageLayout.HEADER = "header";
|
|
546
548
|
ObjectPageLayout.FOOTER = "section";
|
|
547
|
-
ObjectPageLayout.FOOTER = "section";
|
|
548
549
|
|
|
549
550
|
// Synced with @_sap_f_DynamicPageHeader_PaddingBottom in base less file of DynamicPageHeader
|
|
550
551
|
ObjectPageLayout.HEADER_CONTENT_PADDING_BOTTOM = DomUnitsRem.toPx("1rem");
|
|
@@ -556,6 +557,10 @@ sap.ui.define([
|
|
|
556
557
|
// additional navigation (e.g. AnchorBar, IconTabBar, etc.)
|
|
557
558
|
ObjectPageLayout.NO_NAVIGATION_CLASS_NAME = "sapUxAPObjectPageNoNavigation";
|
|
558
559
|
|
|
560
|
+
ObjectPageLayout.ARIA = {
|
|
561
|
+
LABEL_TOOLBAR_FOOTER_ACTIONS: "ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS"
|
|
562
|
+
};
|
|
563
|
+
|
|
559
564
|
ObjectPageLayout.prototype._getFirstEditableInput = function(sContainer) {
|
|
560
565
|
var oContainer = this.getDomRef(sContainer);
|
|
561
566
|
|
|
@@ -749,6 +754,36 @@ sap.ui.define([
|
|
|
749
754
|
// clear the cached DOM element to prevent obsolete layout calculations
|
|
750
755
|
// of the old <code>this._$titleArea</code> before rendering is finalized
|
|
751
756
|
this._$titleArea = [];
|
|
757
|
+
|
|
758
|
+
this._setFooterAriaLabelledBy();
|
|
759
|
+
};
|
|
760
|
+
|
|
761
|
+
/**
|
|
762
|
+
* Sets the <code>aria-labelledby</code> attribute of the {@link sap.uxap.ObjectPageLayout} footer.
|
|
763
|
+
* @private
|
|
764
|
+
*/
|
|
765
|
+
ObjectPageLayout.prototype._setFooterAriaLabelledBy = function () {
|
|
766
|
+
var oFooter = this.getFooter();
|
|
767
|
+
|
|
768
|
+
if (oFooter && !oFooter.getAriaLabelledBy().length) {
|
|
769
|
+
this._oInvisibleText = new InvisibleText({
|
|
770
|
+
id: oFooter.getId() + "-FooterActions-InvisibleText",
|
|
771
|
+
text: ObjectPageLayout._getLibraryResourceBundle().getText(ObjectPageLayout.ARIA.LABEL_TOOLBAR_FOOTER_ACTIONS)
|
|
772
|
+
}).toStatic();
|
|
773
|
+
|
|
774
|
+
oFooter.addAriaLabelledBy(this._oInvisibleText);
|
|
775
|
+
}
|
|
776
|
+
};
|
|
777
|
+
|
|
778
|
+
/**
|
|
779
|
+
* Destroys the invisible text object associated with the footer of the {@link sap.uxap.ObjectPageLayout} control.
|
|
780
|
+
* @private
|
|
781
|
+
*/
|
|
782
|
+
ObjectPageLayout.prototype._destroyInvisibleText = function () {
|
|
783
|
+
if (this._oInvisibleText) {
|
|
784
|
+
this._oInvisibleText.destroy();
|
|
785
|
+
this._oInvisibleText = null;
|
|
786
|
+
}
|
|
752
787
|
};
|
|
753
788
|
|
|
754
789
|
/**
|
|
@@ -1127,8 +1162,6 @@ sap.ui.define([
|
|
|
1127
1162
|
|
|
1128
1163
|
ObjectPageLayout.prototype.onAfterRendering = function () {
|
|
1129
1164
|
var oHeaderContent = this._getHeaderContent(),
|
|
1130
|
-
oFooter = this.getFooter(),
|
|
1131
|
-
sFooterAriaLabel,
|
|
1132
1165
|
iWidth = this._getWidth(this);
|
|
1133
1166
|
|
|
1134
1167
|
this._bInvalidatedAndNotRerendered = false;
|
|
@@ -1166,11 +1199,6 @@ sap.ui.define([
|
|
|
1166
1199
|
this._updatePinButtonState();
|
|
1167
1200
|
}
|
|
1168
1201
|
|
|
1169
|
-
if (oFooter) {
|
|
1170
|
-
sFooterAriaLabel = ObjectPageLayout._getLibraryResourceBundle().getText("FOOTER_ARIA_LABEL");
|
|
1171
|
-
oFooter.$().attr("aria-label", sFooterAriaLabel);
|
|
1172
|
-
}
|
|
1173
|
-
|
|
1174
1202
|
// Attach expand button event
|
|
1175
1203
|
this._handleExpandButtonPressEventLifeCycle(true);
|
|
1176
1204
|
};
|
|
@@ -1308,6 +1336,8 @@ sap.ui.define([
|
|
|
1308
1336
|
this._oLazyLoading = null;
|
|
1309
1337
|
}
|
|
1310
1338
|
|
|
1339
|
+
this._destroyInvisibleText();
|
|
1340
|
+
|
|
1311
1341
|
this._deregisterScreenSizeListener();
|
|
1312
1342
|
this._deregisterTitleSizeListener();
|
|
1313
1343
|
|
|
@@ -1744,7 +1774,10 @@ sap.ui.define([
|
|
|
1744
1774
|
if (bValue != bOldValue) {
|
|
1745
1775
|
this._applyUxRules(); // UxRules contain logic that depends on whether we use iconTabBar or not
|
|
1746
1776
|
}
|
|
1777
|
+
|
|
1747
1778
|
this.setProperty("useIconTabBar", bValue);
|
|
1779
|
+
this.toggleStyleClass("sapUxAPObjectPageLayoutIconTabBar", bValue);
|
|
1780
|
+
|
|
1748
1781
|
return this;
|
|
1749
1782
|
};
|
|
1750
1783
|
|
|
@@ -4325,6 +4358,12 @@ sap.ui.define([
|
|
|
4325
4358
|
return vResult;
|
|
4326
4359
|
};
|
|
4327
4360
|
|
|
4361
|
+
ObjectPageLayout.prototype.destroyFooter = function () {
|
|
4362
|
+
this._destroyInvisibleText();
|
|
4363
|
+
|
|
4364
|
+
return this.destroyAggregation("footer");
|
|
4365
|
+
};
|
|
4366
|
+
|
|
4328
4367
|
/**
|
|
4329
4368
|
* Switch footer visibility
|
|
4330
4369
|
* @param {boolean} bShow switch visibility on if true
|
|
@@ -298,7 +298,11 @@ sap.ui.define([
|
|
|
298
298
|
|
|
299
299
|
ObjectPageSection.prototype._onGridContentChange = function (oEvent) {
|
|
300
300
|
var sMutation;
|
|
301
|
-
|
|
301
|
+
// both aggregation names are required
|
|
302
|
+
// because the first ("content") is the actual
|
|
303
|
+
// and the second ("subSections") is the publicly visible
|
|
304
|
+
// due to aggregation forwarding
|
|
305
|
+
if (oEvent.type === "aggregation" && ["content", "subSections"].indexOf(oEvent.name) > -1) {
|
|
302
306
|
this.invalidate();
|
|
303
307
|
sMutation = oEvent.mutation;
|
|
304
308
|
if (sMutation === "add" || sMutation === "insert") {
|
|
@@ -168,7 +168,11 @@ sap.ui.define([
|
|
|
168
168
|
if (this._oGridContentObserver) {
|
|
169
169
|
this._oGridContentObserver.observe(this.getAggregation("_grid"), {
|
|
170
170
|
aggregations: [
|
|
171
|
-
|
|
171
|
+
// both aggregation names are required
|
|
172
|
+
// because the first ("content") is the actual
|
|
173
|
+
// and the second ("subSections") is the publicly visible
|
|
174
|
+
// due to aggregation forwarding
|
|
175
|
+
"content", "subSections"
|
|
172
176
|
]});
|
|
173
177
|
}
|
|
174
178
|
}
|
|
@@ -249,6 +249,21 @@ sap.ui.define([
|
|
|
249
249
|
return oParent;
|
|
250
250
|
};
|
|
251
251
|
|
|
252
|
+
/**
|
|
253
|
+
* Override the parent setter to preserve the externally visible parent-child relationship
|
|
254
|
+
* @override
|
|
255
|
+
* @returns {this} Returns <code>this</code> to allow method chaining
|
|
256
|
+
*/
|
|
257
|
+
ObjectPageSubSection.prototype.setParent = function () {
|
|
258
|
+
var oResult = ObjectPageSectionBase.prototype.setParent.apply(this, arguments),
|
|
259
|
+
oPublicParent = this.getParent();
|
|
260
|
+
if (oPublicParent && oPublicParent.isA("sap.uxap.ObjectPageSection")
|
|
261
|
+
&& this.sParentAggregationName !== "subSections") {
|
|
262
|
+
this.sParentAggregationName = "subSections";
|
|
263
|
+
}
|
|
264
|
+
return oResult;
|
|
265
|
+
};
|
|
266
|
+
|
|
252
267
|
/**
|
|
253
268
|
* Getter for the private "_columnSpan" property
|
|
254
269
|
* @returns {string}
|
|
@@ -21,7 +21,7 @@ sap.ui.define([
|
|
|
21
21
|
* @constructor
|
|
22
22
|
* @alias sap.uxap.changeHandler.AddIFrameObjectPageLayout
|
|
23
23
|
* @author SAP SE
|
|
24
|
-
* @version 1.
|
|
24
|
+
* @version 1.112.2
|
|
25
25
|
* @since 1.75
|
|
26
26
|
* @experimental Since 1.75
|
|
27
27
|
*/
|
|
@@ -49,6 +49,7 @@ sap.ui.define([
|
|
|
49
49
|
var oView = mPropertyBag.view;
|
|
50
50
|
var oComponent = mPropertyBag.appComponent;
|
|
51
51
|
var oBaseSelector = oContent.selector;
|
|
52
|
+
// keep default title for legacy changes (without subsequent rename)
|
|
52
53
|
var sDefaultTitle = sap.ui.getCore().getLibraryResourceBundle("sap.uxap").getText("SECTION_TITLE_FOR_IFRAME");
|
|
53
54
|
|
|
54
55
|
var oOPSection;
|
|
@@ -73,7 +74,12 @@ sap.ui.define([
|
|
|
73
74
|
.then(function () {
|
|
74
75
|
var oIFrameSelector = Object.create(oBaseSelector);
|
|
75
76
|
oIFrameSelector.id += "-iframe";
|
|
76
|
-
|
|
77
|
+
var mRenameInfo = {
|
|
78
|
+
sourceControlId: oModifier.getId(oOPSubSection),
|
|
79
|
+
selectorControlId: oModifier.getId(oOPSection),
|
|
80
|
+
propertyName: "title"
|
|
81
|
+
};
|
|
82
|
+
return createIFrame(oChange, mPropertyBag, oIFrameSelector, mRenameInfo);
|
|
77
83
|
})
|
|
78
84
|
.then(function(oIFrame) {
|
|
79
85
|
return oModifier.insertAggregation(oOPSubSection, "blocks", oIFrame, 0, oView);
|
package/src/sap/uxap/library.js
CHANGED
|
@@ -25,7 +25,7 @@ sap.ui.define([
|
|
|
25
25
|
* @namespace
|
|
26
26
|
* @alias sap.uxap
|
|
27
27
|
* @author SAP SE
|
|
28
|
-
* @version 1.
|
|
28
|
+
* @version 1.112.2
|
|
29
29
|
* @since 1.36
|
|
30
30
|
* @public
|
|
31
31
|
*/
|
|
@@ -68,7 +68,7 @@ sap.ui.define([
|
|
|
68
68
|
"sap.uxap.ObjectPageHeaderLayoutData",
|
|
69
69
|
"sap.uxap.ObjectPageLazyLoader"
|
|
70
70
|
],
|
|
71
|
-
version: "1.
|
|
71
|
+
version: "1.112.2",
|
|
72
72
|
extensions: {
|
|
73
73
|
flChangeHandlers: {
|
|
74
74
|
"sap.uxap.ObjectPageHeader": "sap/uxap/flexibility/ObjectPageHeader",
|
|
@@ -68,10 +68,10 @@ TOOLTIP_OP_SHOW_SIDE_CONTENT=Open side panel
|
|
|
68
68
|
ROOT_ARIA_LABEL_WITHOUT_TITLE=Object details
|
|
69
69
|
|
|
70
70
|
#XACT: Text used to label the header area element of sap.uxap.ObjectPageLayout when it has a title
|
|
71
|
-
HEADER_ARIA_LABEL_WITH_TITLE=Header
|
|
71
|
+
HEADER_ARIA_LABEL_WITH_TITLE=Header area
|
|
72
72
|
|
|
73
73
|
#XACT: Text used to label the header area element of sap.uxap.ObjectPageLayout when it doesn`t have title
|
|
74
|
-
HEADER_ARIA_LABEL_WITHOUT_TITLE=Object header
|
|
74
|
+
HEADER_ARIA_LABEL_WITHOUT_TITLE=Object header area
|
|
75
75
|
|
|
76
76
|
#XACT: Text used to label the AnchorBar element of sap.uxap.ObjectPageLayout when it doesn't have a title
|
|
77
77
|
NAVIGATION_ARIA_LABEL_WITHOUT_TITLE=Object
|
|
@@ -82,8 +82,8 @@ NAVTOOLBAR_ARIA_LABEL_WITH_TITLE=Options
|
|
|
82
82
|
#XACT: Text used to label the Toolbar inside the AnchorBar when ObjectPage doesn't have a title
|
|
83
83
|
NAVTOOLBAR_ARIA_LABEL_WITHOUT_TITLE=Object options
|
|
84
84
|
|
|
85
|
-
#XACT:
|
|
86
|
-
|
|
85
|
+
#XACT: ARIA announcement (aria-labelledby) for internal footer actions toolbar aggregation inside sap.uxap.ObjectPageLayout
|
|
86
|
+
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=Footer actions
|
|
87
87
|
|
|
88
88
|
#XMIT: Context Menu Entry or Dialog Title will be enhanced with this key user friendly control type name: Object Page Layout
|
|
89
89
|
LAYOUT_CONTROL_NAME=Object Page Layout
|
|
@@ -43,9 +43,9 @@ TOOLTIP_OP_SHOW_SIDE_CONTENT=\u0641\u062A\u062D \u0627\u0644\u0644\u0648\u062D\u
|
|
|
43
43
|
|
|
44
44
|
ROOT_ARIA_LABEL_WITHOUT_TITLE=\u062A\u0641\u0627\u0635\u064A\u0644 \u0627\u0644\u0643\u0627\u0626\u0646
|
|
45
45
|
|
|
46
|
-
HEADER_ARIA_LABEL_WITH_TITLE=\u0627\u0644\u0645\u0642\u062F\u0645\u0629
|
|
46
|
+
HEADER_ARIA_LABEL_WITH_TITLE=\u0645\u0646\u0637\u0642\u0629 \u0627\u0644\u0645\u0642\u062F\u0645\u0629
|
|
47
47
|
|
|
48
|
-
HEADER_ARIA_LABEL_WITHOUT_TITLE=\u0645\u0642\u062F\u0645\u0629 \u0627\u0644\u0643\u0627\u0626\u0646
|
|
48
|
+
HEADER_ARIA_LABEL_WITHOUT_TITLE=\u0645\u0646\u0637\u0642\u0629 \u0645\u0642\u062F\u0645\u0629 \u0627\u0644\u0643\u0627\u0626\u0646
|
|
49
49
|
|
|
50
50
|
NAVIGATION_ARIA_LABEL_WITHOUT_TITLE=\u0627\u0644\u0643\u0627\u0626\u0646
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ NAVTOOLBAR_ARIA_LABEL_WITH_TITLE=\u062E\u064A\u0627\u0631\u0627\u062A
|
|
|
53
53
|
|
|
54
54
|
NAVTOOLBAR_ARIA_LABEL_WITHOUT_TITLE=\u062E\u064A\u0627\u0631\u0627\u062A \u0627\u0644\u0643\u0627\u0626\u0646
|
|
55
55
|
|
|
56
|
-
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS
|
|
56
|
+
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=\u0625\u062C\u0631\u0627\u0621\u0627\u062A \u0627\u0644\u062A\u0630\u064A\u064A\u0644
|
|
57
57
|
|
|
58
58
|
LAYOUT_CONTROL_NAME=\u0645\u062E\u0637\u0637 \u0635\u0641\u062D\u0627\u062A \u0627\u0644\u0643\u0627\u0626\u0646
|
|
59
59
|
|
|
@@ -43,9 +43,9 @@ TOOLTIP_OP_SHOW_SIDE_CONTENT=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u
|
|
|
43
43
|
|
|
44
44
|
ROOT_ARIA_LABEL_WITHOUT_TITLE=\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u0438 \u0434\u0430\u043D\u043D\u0438 \u0437\u0430 \u043E\u0431\u0435\u043A\u0442
|
|
45
45
|
|
|
46
|
-
HEADER_ARIA_LABEL_WITH_TITLE=\u0417\u0430\u0433\u043B\u0430\u0432\
|
|
46
|
+
HEADER_ARIA_LABEL_WITH_TITLE=\u0417\u0430\u0433\u043B\u0430\u0432\u043D\u0430 \u043E\u0431\u043B\u0430\u0441\u0442
|
|
47
47
|
|
|
48
|
-
HEADER_ARIA_LABEL_WITHOUT_TITLE=\u0417\u0430\u0433\u043B\u0430\u0432\
|
|
48
|
+
HEADER_ARIA_LABEL_WITHOUT_TITLE=\u0417\u0430\u0433\u043B\u0430\u0432\u043D\u0430 \u043E\u0431\u043B\u0430\u0441\u0442 \u043D\u0430 \u043E\u0431\u0435\u043A\u0442
|
|
49
49
|
|
|
50
50
|
NAVIGATION_ARIA_LABEL_WITHOUT_TITLE=\u041E\u0431\u0435\u043A\u0442
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ NAVTOOLBAR_ARIA_LABEL_WITH_TITLE=\u041E\u043F\u0446\u0438\u0438
|
|
|
53
53
|
|
|
54
54
|
NAVTOOLBAR_ARIA_LABEL_WITHOUT_TITLE=\u041E\u043F\u0446\u0438\u0438 \u043D\u0430 \u043E\u0431\u0435\u043A\u0442
|
|
55
55
|
|
|
56
|
-
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS
|
|
56
|
+
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F \u0432 \u0434\u043E\u043B\u043D\u0438\u044F \u043A\u043E\u043B\u043E\u043D\u0442\u0438\u0442\u0443\u043B
|
|
57
57
|
|
|
58
58
|
LAYOUT_CONTROL_NAME=\u0424\u043E\u0440\u043C\u0430\u0442 \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u0437\u0430 \u043E\u0431\u0435\u043A\u0442
|
|
59
59
|
|
|
@@ -43,9 +43,9 @@ TOOLTIP_OP_SHOW_SIDE_CONTENT=Obrir \u00E0rea de p\u00E0gina
|
|
|
43
43
|
|
|
44
44
|
ROOT_ARIA_LABEL_WITHOUT_TITLE=Detalls d'objecte
|
|
45
45
|
|
|
46
|
-
HEADER_ARIA_LABEL_WITH_TITLE
|
|
46
|
+
HEADER_ARIA_LABEL_WITH_TITLE=\u00C0rea de cap\u00E7alera
|
|
47
47
|
|
|
48
|
-
HEADER_ARIA_LABEL_WITHOUT_TITLE
|
|
48
|
+
HEADER_ARIA_LABEL_WITHOUT_TITLE=\u00C0rea de cap\u00E7alera d'objecte
|
|
49
49
|
|
|
50
50
|
NAVIGATION_ARIA_LABEL_WITHOUT_TITLE=Objecte
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ NAVTOOLBAR_ARIA_LABEL_WITH_TITLE=Opcions
|
|
|
53
53
|
|
|
54
54
|
NAVTOOLBAR_ARIA_LABEL_WITHOUT_TITLE=Opcions d'objecte
|
|
55
55
|
|
|
56
|
-
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=
|
|
56
|
+
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=Accions de peu de p\u00E0gina
|
|
57
57
|
|
|
58
58
|
LAYOUT_CONTROL_NAME=Disposici\u00F3 de p\u00E0gina d'objecte
|
|
59
59
|
|
|
@@ -43,9 +43,9 @@ TOOLTIP_OP_SHOW_SIDE_CONTENT=Otev\u0159\u00EDt bo\u010Dn\u00ED panel
|
|
|
43
43
|
|
|
44
44
|
ROOT_ARIA_LABEL_WITHOUT_TITLE=Detaily objektu
|
|
45
45
|
|
|
46
|
-
HEADER_ARIA_LABEL_WITH_TITLE=
|
|
46
|
+
HEADER_ARIA_LABEL_WITH_TITLE=Oblast hlavi\u010Dky
|
|
47
47
|
|
|
48
|
-
HEADER_ARIA_LABEL_WITHOUT_TITLE=
|
|
48
|
+
HEADER_ARIA_LABEL_WITHOUT_TITLE=Oblast hlavi\u010Dky objektu
|
|
49
49
|
|
|
50
50
|
NAVIGATION_ARIA_LABEL_WITHOUT_TITLE=Objekt
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ NAVTOOLBAR_ARIA_LABEL_WITH_TITLE=Mo\u017Enosti
|
|
|
53
53
|
|
|
54
54
|
NAVTOOLBAR_ARIA_LABEL_WITHOUT_TITLE=Mo\u017Enosti objektu
|
|
55
55
|
|
|
56
|
-
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=
|
|
56
|
+
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=Akce pati\u010Dky
|
|
57
57
|
|
|
58
58
|
LAYOUT_CONTROL_NAME=Layout str\u00E1nky objektu
|
|
59
59
|
|
|
@@ -43,9 +43,9 @@ TOOLTIP_OP_SHOW_SIDE_CONTENT=Agor y panel ochr
|
|
|
43
43
|
|
|
44
44
|
ROOT_ARIA_LABEL_WITHOUT_TITLE=Manylion y gwrthrych
|
|
45
45
|
|
|
46
|
-
HEADER_ARIA_LABEL_WITH_TITLE=
|
|
46
|
+
HEADER_ARIA_LABEL_WITH_TITLE=Ardal pennyn
|
|
47
47
|
|
|
48
|
-
HEADER_ARIA_LABEL_WITHOUT_TITLE=
|
|
48
|
+
HEADER_ARIA_LABEL_WITHOUT_TITLE=Ardal pennyn gwrthrych
|
|
49
49
|
|
|
50
50
|
NAVIGATION_ARIA_LABEL_WITHOUT_TITLE=Gwrthrych
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ NAVTOOLBAR_ARIA_LABEL_WITH_TITLE=Opsiynau
|
|
|
53
53
|
|
|
54
54
|
NAVTOOLBAR_ARIA_LABEL_WITHOUT_TITLE=Opsiynau gwrthrych
|
|
55
55
|
|
|
56
|
-
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=
|
|
56
|
+
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=Gweithredoedd troedyn
|
|
57
57
|
|
|
58
58
|
LAYOUT_CONTROL_NAME=Cynllun Tudalen Gwrthrych
|
|
59
59
|
|
|
@@ -43,9 +43,9 @@ TOOLTIP_OP_SHOW_SIDE_CONTENT=\u00C5bn sideomr\u00E5de
|
|
|
43
43
|
|
|
44
44
|
ROOT_ARIA_LABEL_WITHOUT_TITLE=Objektdetaljer
|
|
45
45
|
|
|
46
|
-
HEADER_ARIA_LABEL_WITH_TITLE=
|
|
46
|
+
HEADER_ARIA_LABEL_WITH_TITLE=Topomr\u00E5de
|
|
47
47
|
|
|
48
|
-
HEADER_ARIA_LABEL_WITHOUT_TITLE=
|
|
48
|
+
HEADER_ARIA_LABEL_WITHOUT_TITLE=Objekttopomr\u00E5de
|
|
49
49
|
|
|
50
50
|
NAVIGATION_ARIA_LABEL_WITHOUT_TITLE=Objekt
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ NAVTOOLBAR_ARIA_LABEL_WITH_TITLE=Muligheder
|
|
|
53
53
|
|
|
54
54
|
NAVTOOLBAR_ARIA_LABEL_WITHOUT_TITLE=Objektmuligheder
|
|
55
55
|
|
|
56
|
-
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=
|
|
56
|
+
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=Aktioner for sidefod
|
|
57
57
|
|
|
58
58
|
LAYOUT_CONTROL_NAME=Objektsidelayout
|
|
59
59
|
|
|
@@ -45,7 +45,7 @@ ROOT_ARIA_LABEL_WITHOUT_TITLE=Objektdetails
|
|
|
45
45
|
|
|
46
46
|
HEADER_ARIA_LABEL_WITH_TITLE=Kopfbereich
|
|
47
47
|
|
|
48
|
-
HEADER_ARIA_LABEL_WITHOUT_TITLE=
|
|
48
|
+
HEADER_ARIA_LABEL_WITHOUT_TITLE=Objektkopfbereich
|
|
49
49
|
|
|
50
50
|
NAVIGATION_ARIA_LABEL_WITHOUT_TITLE=Objekt
|
|
51
51
|
|
|
@@ -53,7 +53,7 @@ NAVTOOLBAR_ARIA_LABEL_WITH_TITLE=Optionen
|
|
|
53
53
|
|
|
54
54
|
NAVTOOLBAR_ARIA_LABEL_WITHOUT_TITLE=Objektoptionen
|
|
55
55
|
|
|
56
|
-
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=
|
|
56
|
+
ARIA_LABEL_TOOLBAR_FOOTER_ACTIONS=Fu\u00DFzeilenaktionen
|
|
57
57
|
|
|
58
58
|
LAYOUT_CONTROL_NAME=Layout der Objektseite
|
|
59
59
|
|