@openui5/sap.f 1.126.1 → 1.128.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 +1 -1
- package/package.json +4 -4
- package/src/sap/f/.library +1 -1
- package/src/sap/f/Avatar.js +1 -1
- package/src/sap/f/AvatarGroup.js +1 -1
- package/src/sap/f/AvatarGroupItem.js +1 -2
- package/src/sap/f/CalendarAppointmentInCard.js +1 -1
- package/src/sap/f/CalendarInCard.js +1 -1
- package/src/sap/f/Card.js +1 -1
- package/src/sap/f/CardBase.js +21 -51
- package/src/sap/f/CardRenderer.js +30 -3
- package/src/sap/f/DynamicPage.js +23 -6
- package/src/sap/f/DynamicPageAccessibleLandmarkInfo.js +11 -2
- package/src/sap/f/DynamicPageHeader.js +20 -6
- package/src/sap/f/DynamicPageTitle.js +1 -1
- package/src/sap/f/FlexibleColumnLayout.js +157 -29
- package/src/sap/f/FlexibleColumnLayoutAccessibleLandmarkInfo.js +1 -1
- package/src/sap/f/FlexibleColumnLayoutData.js +52 -0
- package/src/sap/f/FlexibleColumnLayoutDataForDesktop.js +72 -0
- package/src/sap/f/FlexibleColumnLayoutDataForTablet.js +71 -0
- package/src/sap/f/FlexibleColumnLayoutSemanticHelper.js +1 -1
- package/src/sap/f/GridContainer.js +1 -1
- package/src/sap/f/GridContainerItemLayoutData.js +1 -1
- package/src/sap/f/GridContainerSettings.js +2 -2
- package/src/sap/f/GridList.js +1 -1
- package/src/sap/f/GridListItem.js +1 -1
- package/src/sap/f/IllustratedMessage.js +1 -1
- package/src/sap/f/Illustration.js +1 -1
- package/src/sap/f/PlanningCalendarInCardLegend.js +1 -1
- package/src/sap/f/ProductSwitch.js +1 -2
- package/src/sap/f/ProductSwitchItem.js +1 -2
- package/src/sap/f/SearchManager.js +1 -1
- package/src/sap/f/ShellBar.js +1 -1
- package/src/sap/f/SidePanel.js +8 -3
- package/src/sap/f/SidePanelItem.js +1 -1
- package/src/sap/f/cards/BaseHeader.js +1 -1
- package/src/sap/f/cards/CardBadgeCustomData.js +123 -0
- package/src/sap/f/cards/Header.js +1 -1
- package/src/sap/f/cards/NumericHeader.js +1 -1
- package/src/sap/f/cards/NumericIndicators.js +1 -1
- package/src/sap/f/cards/NumericSideIndicator.js +1 -1
- package/src/sap/f/cards/loading/AnalyticalPlaceholder.js +1 -1
- package/src/sap/f/cards/loading/CalendarPlaceholder.js +1 -1
- package/src/sap/f/cards/loading/GenericPlaceholder.js +1 -1
- package/src/sap/f/cards/loading/ListPlaceholder.js +1 -1
- package/src/sap/f/cards/loading/ObjectPlaceholder.js +1 -1
- package/src/sap/f/cards/loading/PlaceholderBase.js +1 -1
- package/src/sap/f/cards/loading/TablePlaceholder.js +1 -1
- package/src/sap/f/cards/loading/TimelinePlaceholder.js +1 -1
- package/src/sap/f/cards/util/CardBadgeEnabler.js +196 -0
- package/src/sap/f/changeHandler/MoveDynamicPageTitleActions.js +1 -1
- package/src/sap/f/delegate/GridContainerItemNavigation.js +1 -1
- package/src/sap/f/delegate/GridItemNavigation.js +1 -1
- package/src/sap/f/designtime/messagebundle_en_US_sappsd.properties +8 -4
- package/src/sap/f/designtime/messagebundle_en_US_saptrc.properties +8 -4
- package/src/sap/f/dnd/GridDragOver.js +1 -1
- package/src/sap/f/dnd/GridDropInfo.js +1 -1
- package/src/sap/f/library.js +30 -2
- package/src/sap/f/messagebundle.properties +3 -0
- package/src/sap/f/messagebundle_ar.properties +2 -0
- package/src/sap/f/messagebundle_bg.properties +2 -0
- package/src/sap/f/messagebundle_ca.properties +2 -0
- package/src/sap/f/messagebundle_cnr.properties +2 -0
- package/src/sap/f/messagebundle_cs.properties +2 -0
- package/src/sap/f/messagebundle_cy.properties +2 -0
- package/src/sap/f/messagebundle_da.properties +2 -0
- package/src/sap/f/messagebundle_de.properties +2 -0
- package/src/sap/f/messagebundle_el.properties +2 -0
- package/src/sap/f/messagebundle_en.properties +2 -0
- package/src/sap/f/messagebundle_en_GB.properties +2 -0
- package/src/sap/f/messagebundle_en_US_sappsd.properties +8 -12
- package/src/sap/f/messagebundle_en_US_saprigi.properties +3 -1
- package/src/sap/f/messagebundle_en_US_saptrc.properties +81 -85
- package/src/sap/f/messagebundle_es.properties +2 -0
- package/src/sap/f/messagebundle_es_MX.properties +2 -0
- package/src/sap/f/messagebundle_et.properties +2 -0
- package/src/sap/f/messagebundle_fi.properties +2 -0
- package/src/sap/f/messagebundle_fr.properties +2 -0
- package/src/sap/f/messagebundle_fr_CA.properties +2 -0
- package/src/sap/f/messagebundle_hi.properties +2 -0
- package/src/sap/f/messagebundle_hr.properties +2 -0
- package/src/sap/f/messagebundle_hu.properties +2 -0
- package/src/sap/f/messagebundle_id.properties +2 -0
- package/src/sap/f/messagebundle_it.properties +2 -0
- package/src/sap/f/messagebundle_iw.properties +2 -0
- package/src/sap/f/messagebundle_ja.properties +2 -0
- package/src/sap/f/messagebundle_kk.properties +2 -0
- package/src/sap/f/messagebundle_ko.properties +2 -0
- package/src/sap/f/messagebundle_lt.properties +2 -0
- package/src/sap/f/messagebundle_lv.properties +2 -0
- package/src/sap/f/messagebundle_mk.properties +2 -0
- package/src/sap/f/messagebundle_ms.properties +2 -0
- package/src/sap/f/messagebundle_nl.properties +2 -0
- package/src/sap/f/messagebundle_no.properties +2 -0
- package/src/sap/f/messagebundle_pl.properties +2 -0
- package/src/sap/f/messagebundle_pt.properties +2 -0
- package/src/sap/f/messagebundle_pt_PT.properties +2 -0
- package/src/sap/f/messagebundle_ro.properties +2 -0
- package/src/sap/f/messagebundle_ru.properties +2 -0
- package/src/sap/f/messagebundle_sh.properties +2 -0
- package/src/sap/f/messagebundle_sk.properties +2 -0
- package/src/sap/f/messagebundle_sl.properties +2 -0
- package/src/sap/f/messagebundle_sr.properties +2 -0
- package/src/sap/f/messagebundle_sv.properties +2 -0
- package/src/sap/f/messagebundle_th.properties +2 -0
- package/src/sap/f/messagebundle_tr.properties +2 -0
- package/src/sap/f/messagebundle_uk.properties +2 -0
- package/src/sap/f/messagebundle_vi.properties +2 -0
- package/src/sap/f/messagebundle_zh_CN.properties +2 -0
- package/src/sap/f/messagebundle_zh_TW.properties +2 -0
- package/src/sap/f/semantic/AddAction.js +1 -1
- package/src/sap/f/semantic/CloseAction.js +1 -1
- package/src/sap/f/semantic/CopyAction.js +1 -1
- package/src/sap/f/semantic/DeleteAction.js +1 -1
- package/src/sap/f/semantic/DiscussInJamAction.js +1 -1
- package/src/sap/f/semantic/EditAction.js +1 -1
- package/src/sap/f/semantic/ExitFullScreenAction.js +1 -1
- package/src/sap/f/semantic/FavoriteAction.js +1 -1
- package/src/sap/f/semantic/FlagAction.js +1 -1
- package/src/sap/f/semantic/FooterMainAction.js +1 -1
- package/src/sap/f/semantic/FullScreenAction.js +1 -1
- package/src/sap/f/semantic/MainAction.js +1 -1
- package/src/sap/f/semantic/MessagesIndicator.js +1 -1
- package/src/sap/f/semantic/NegativeAction.js +1 -1
- package/src/sap/f/semantic/PositiveAction.js +1 -1
- package/src/sap/f/semantic/PrintAction.js +1 -1
- package/src/sap/f/semantic/SemanticButton.js +1 -1
- package/src/sap/f/semantic/SemanticConfiguration.js +1 -1
- package/src/sap/f/semantic/SemanticControl.js +1 -1
- package/src/sap/f/semantic/SemanticPage.js +1 -1
- package/src/sap/f/semantic/SemanticToggleButton.js +1 -1
- package/src/sap/f/semantic/SendEmailAction.js +1 -1
- package/src/sap/f/semantic/SendMessageAction.js +1 -1
- package/src/sap/f/semantic/ShareInJamAction.js +1 -1
- package/src/sap/f/semantic/TitleMainAction.js +1 -1
- package/src/sap/f/shellBar/AdditionalContentSupport.js +1 -1
- package/src/sap/f/shellBar/CoPilot.js +1 -1
- package/src/sap/f/shellBar/ControlSpacer.js +1 -1
- package/src/sap/f/shellBar/Search.js +1 -1
- package/src/sap/f/themes/base/Card.less +0 -20
- package/src/sap/f/themes/base/CardBadge.less +63 -0
- package/src/sap/f/themes/base/FlexibleColumnLayout.less +9 -0
- package/src/sap/f/themes/base/library.source.less +1 -0
- package/src/sap/f/themes/sap_hcb/base_Card.less +0 -20
|
@@ -108,7 +108,7 @@ sap.ui.define([
|
|
|
108
108
|
*
|
|
109
109
|
* @extends sap.ui.core.Control
|
|
110
110
|
* @author SAP SE
|
|
111
|
-
* @version 1.
|
|
111
|
+
* @version 1.128.0
|
|
112
112
|
*
|
|
113
113
|
* @constructor
|
|
114
114
|
* @public
|
|
@@ -650,6 +650,27 @@ sap.ui.define([
|
|
|
650
650
|
*/
|
|
651
651
|
endColumn : {type : "boolean"}
|
|
652
652
|
}
|
|
653
|
+
},
|
|
654
|
+
|
|
655
|
+
/**
|
|
656
|
+
* Fired when user resize columns.
|
|
657
|
+
* @since 1.128
|
|
658
|
+
*/
|
|
659
|
+
columnsDistributionChange : {
|
|
660
|
+
parameters : {
|
|
661
|
+
/**
|
|
662
|
+
* The current <code>media</code> - dekstop or tablet.
|
|
663
|
+
*/
|
|
664
|
+
media: { type: "string" },
|
|
665
|
+
/**
|
|
666
|
+
* The value of the <code>layout</code> property.
|
|
667
|
+
*/
|
|
668
|
+
layout: { type: "string" },
|
|
669
|
+
/**
|
|
670
|
+
* Sizes of all columns in percentages, separated by '/'.
|
|
671
|
+
*/
|
|
672
|
+
columnsSizes : {type : "string"}
|
|
673
|
+
}
|
|
653
674
|
}
|
|
654
675
|
}
|
|
655
676
|
},
|
|
@@ -713,20 +734,11 @@ sap.ui.define([
|
|
|
713
734
|
this._boundColumnSeparatorMoveEnd = this._onColumnSeparatorMoveEnd.bind(this);
|
|
714
735
|
this._oLocalStorage = {};
|
|
715
736
|
this._bNeverRendered = true;
|
|
716
|
-
};
|
|
717
737
|
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
}
|
|
722
|
-
var sKey = (iMaxColumnsCount === 3) ? "desktop" : "tablet";
|
|
723
|
-
if (!this._oLocalStorage[sKey]) {
|
|
724
|
-
var sPrefix = sKey === 'desktop' ?
|
|
725
|
-
FlexibleColumnLayout.STORAGE_PREFIX_DESKTOP :
|
|
726
|
-
FlexibleColumnLayout.STORAGE_PREFIX_TABLET;
|
|
727
|
-
this._oLocalStorage[sKey] = new Storage(Storage.Type.local, sPrefix);
|
|
728
|
-
}
|
|
729
|
-
return this._oLocalStorage[sKey];
|
|
738
|
+
this._oBeginColumnWidth = {
|
|
739
|
+
tablet: 0,
|
|
740
|
+
desktop: 0
|
|
741
|
+
};
|
|
730
742
|
};
|
|
731
743
|
|
|
732
744
|
FlexibleColumnLayout.prototype._announceMessage = function (sResourceBundleKey) {
|
|
@@ -765,6 +777,7 @@ sap.ui.define([
|
|
|
765
777
|
|
|
766
778
|
if (this._hasAnyColumnPagesRendered() !== bHadAnyColumnPagesRendered) {
|
|
767
779
|
this._hideShowColumnSeparators();
|
|
780
|
+
this._updateSeparatorsAriaPositionInfo();
|
|
768
781
|
}
|
|
769
782
|
};
|
|
770
783
|
|
|
@@ -1091,6 +1104,7 @@ sap.ui.define([
|
|
|
1091
1104
|
this._oLocalStorage = null;
|
|
1092
1105
|
this._deregisterResizeHandler();
|
|
1093
1106
|
this._handleEvent(jQuery.Event("Destroy"));
|
|
1107
|
+
this._detachMoveListeners();
|
|
1094
1108
|
};
|
|
1095
1109
|
|
|
1096
1110
|
FlexibleColumnLayout.prototype._removeNavContainersFocusOutDelegate = function () {
|
|
@@ -1322,6 +1336,12 @@ sap.ui.define([
|
|
|
1322
1336
|
if (oOptions.updateDetailedActiveClasses) {
|
|
1323
1337
|
this._addDetailedActiveClasses(sLayout);
|
|
1324
1338
|
}
|
|
1339
|
+
|
|
1340
|
+
if (bHasAnimations) {
|
|
1341
|
+
this._attachAfterAllColumnsResizedOnce(this._updateSeparatorsAriaPositionInfo.bind(this));
|
|
1342
|
+
} else {
|
|
1343
|
+
this._updateSeparatorsAriaPositionInfo();
|
|
1344
|
+
}
|
|
1325
1345
|
};
|
|
1326
1346
|
|
|
1327
1347
|
/**
|
|
@@ -1664,10 +1684,24 @@ sap.ui.define([
|
|
|
1664
1684
|
FlexibleColumnLayout.prototype._enterInteractiveResizeMode = function (bTouch) {
|
|
1665
1685
|
var oSeparatorPosition = this._oMoveInfo.separatorPosition;
|
|
1666
1686
|
|
|
1667
|
-
this.
|
|
1687
|
+
this.toggleStyleClass("sapFFLActiveResize", true);
|
|
1668
1688
|
this._$overlaySeparator.css(oSeparatorPosition.direction, oSeparatorPosition.x);
|
|
1669
1689
|
this._oMoveInfo.separator.style.visibility = "hidden";
|
|
1690
|
+
this._attachMoveListeners(bTouch);
|
|
1691
|
+
};
|
|
1670
1692
|
|
|
1693
|
+
FlexibleColumnLayout.prototype._exitInteractiveResizeMode = function () {
|
|
1694
|
+
this.toggleStyleClass("sapFFLActiveResize", false);
|
|
1695
|
+
this._oMoveInfo.separator.style.visibility = "";
|
|
1696
|
+
this._oMoveInfo.separator.focus();
|
|
1697
|
+
this._updateAriaPositionInfo(this._oMoveInfo.separator);
|
|
1698
|
+
this._ignoreMouse = false;
|
|
1699
|
+
this._ignoreTouch = false;
|
|
1700
|
+
this._oMoveInfo = null;
|
|
1701
|
+
this._detachMoveListeners();
|
|
1702
|
+
};
|
|
1703
|
+
|
|
1704
|
+
FlexibleColumnLayout.prototype._attachMoveListeners = function (bTouch) {
|
|
1671
1705
|
if (bTouch) {
|
|
1672
1706
|
document.addEventListener("touchend", this._boundColumnSeparatorMoveEnd);
|
|
1673
1707
|
document.addEventListener("touchmove", this._boundColumnSeparatorMove);
|
|
@@ -1677,13 +1711,7 @@ sap.ui.define([
|
|
|
1677
1711
|
}
|
|
1678
1712
|
};
|
|
1679
1713
|
|
|
1680
|
-
FlexibleColumnLayout.prototype.
|
|
1681
|
-
this._$overlay.css("display", "");
|
|
1682
|
-
this._oMoveInfo.separator.style.visibility = "";
|
|
1683
|
-
this._oMoveInfo.separator.focus();
|
|
1684
|
-
this._ignoreMouse = false;
|
|
1685
|
-
this._ignoreTouch = false;
|
|
1686
|
-
this._oMoveInfo = null;
|
|
1714
|
+
FlexibleColumnLayout.prototype._detachMoveListeners = function () {
|
|
1687
1715
|
document.removeEventListener("mouseup", this._boundColumnSeparatorMoveEnd);
|
|
1688
1716
|
document.removeEventListener("mousemove", this._boundColumnSeparatorMove);
|
|
1689
1717
|
document.removeEventListener("touchend", this._boundColumnSeparatorMoveEnd);
|
|
@@ -1712,6 +1740,7 @@ sap.ui.define([
|
|
|
1712
1740
|
sSeparator = getSeparatorName(this._oMoveInfo.separator),
|
|
1713
1741
|
bForwardResizeDirection = this._oMoveInfo.offsetFromStartPosition > 0,
|
|
1714
1742
|
sColumnEnlargedByDragging = aResizedColumns[bForwardResizeDirection ? 0 : 1],
|
|
1743
|
+
sInitiallyHiddenColumn = aResizedColumns.find((sColumn) => this._oMoveInfo.columnWidths[sColumn] === 0),
|
|
1715
1744
|
iSeparatorsCount = this._getVisibleColumnSeparatorsCount(),
|
|
1716
1745
|
iSeparatorsCountDiff = 0,
|
|
1717
1746
|
iOffsetOnSeparatorsCountChange = 0,
|
|
@@ -1722,6 +1751,10 @@ sap.ui.define([
|
|
|
1722
1751
|
oNewColumnWidths,
|
|
1723
1752
|
bResizeWithPinning;
|
|
1724
1753
|
|
|
1754
|
+
if (sInitiallyHiddenColumn && sInitiallyHiddenColumn !== sColumnEnlargedByDragging) {
|
|
1755
|
+
return; // atempt to resize in direction that is not allowed
|
|
1756
|
+
}
|
|
1757
|
+
|
|
1725
1758
|
this._oMoveInfo.columnWidths[aResizedColumns[0]] += this._oMoveInfo.offsetFromPreviousPosition;
|
|
1726
1759
|
this._oMoveInfo.columnWidths[aResizedColumns[1]] -= this._oMoveInfo.offsetFromPreviousPosition;
|
|
1727
1760
|
this._oMoveInfo.columnEnlargedByDragging = sColumnEnlargedByDragging;
|
|
@@ -2011,12 +2044,30 @@ sap.ui.define([
|
|
|
2011
2044
|
FlexibleColumnLayout.prototype._saveResizedColumWidths = function() {
|
|
2012
2045
|
var sNewLayout = this._oMoveInfo.layout,
|
|
2013
2046
|
oColumnPercentWidths = this._convertColumnPxWidthToPercent(this._oMoveInfo.columnWidths, sNewLayout),
|
|
2014
|
-
sNewWidthsDistribution = Object.values(oColumnPercentWidths).join("/")
|
|
2047
|
+
sNewWidthsDistribution = Object.values(oColumnPercentWidths).join("/"),
|
|
2048
|
+
sMediaKey;
|
|
2015
2049
|
|
|
2016
2050
|
if (this._isValidWidthDistributionForLayout(sNewWidthsDistribution, sNewLayout)) {
|
|
2017
|
-
this.
|
|
2018
|
-
this.
|
|
2051
|
+
sMediaKey = this._getMediaKey();
|
|
2052
|
+
this.fireColumnsDistributionChange({
|
|
2053
|
+
media: sMediaKey,
|
|
2054
|
+
layout: sNewLayout,
|
|
2055
|
+
columnsSizes: sNewWidthsDistribution
|
|
2056
|
+
});
|
|
2057
|
+
|
|
2058
|
+
this._oBeginColumnWidth[sMediaKey] = oColumnPercentWidths.begin;
|
|
2059
|
+
}
|
|
2060
|
+
};
|
|
2061
|
+
|
|
2062
|
+
FlexibleColumnLayout.prototype._getMediaKey = function (iMaxColumnsCount) {
|
|
2063
|
+
var sKey;
|
|
2064
|
+
|
|
2065
|
+
if (!iMaxColumnsCount) {
|
|
2066
|
+
iMaxColumnsCount = this.getMaxColumnsCount();
|
|
2019
2067
|
}
|
|
2068
|
+
sKey = (iMaxColumnsCount === 3) ? "desktop" : "tablet";
|
|
2069
|
+
|
|
2070
|
+
return sKey;
|
|
2020
2071
|
};
|
|
2021
2072
|
|
|
2022
2073
|
FlexibleColumnLayout.prototype._getNextLayoutOnResizeByDrag = function (oColumnWidths,
|
|
@@ -2155,6 +2206,78 @@ sap.ui.define([
|
|
|
2155
2206
|
return oLayoutMatchers[sLayout]();
|
|
2156
2207
|
};
|
|
2157
2208
|
|
|
2209
|
+
/**
|
|
2210
|
+
* Obtains the range of the possible possitions along the X-axis of this separator (allowed by the current layout)
|
|
2211
|
+
* where the start of the axis is the edge of the FlexibleColumnLayout closest to the begin column.
|
|
2212
|
+
* @param {object} oSeparator the separator HTML element
|
|
2213
|
+
* @returns {object} the start and end positions
|
|
2214
|
+
*/
|
|
2215
|
+
FlexibleColumnLayout.prototype._getSeparatorMovementRange = function (oSeparator) {
|
|
2216
|
+
var sSeparator = getSeparatorName(oSeparator),
|
|
2217
|
+
sLayout = this.getLayout(),
|
|
2218
|
+
iMaxColumnsForWidth = this.getMaxColumnsCount(),
|
|
2219
|
+
iMaxColumnsForLayoutType = this._getMaxColumnsCountForLayout(sLayout, FlexibleColumnLayout.DESKTOP_BREAKPOINT),
|
|
2220
|
+
bDesktop = iMaxColumnsForWidth === 3,
|
|
2221
|
+
bTablet = iMaxColumnsForWidth === 2,
|
|
2222
|
+
bIsThreeColumnLayout = iMaxColumnsForLayoutType === 3,
|
|
2223
|
+
iTotalSpace = this._iWidth,
|
|
2224
|
+
iSpaceBeforeRange = FlexibleColumnLayout.COLUMN_MIN_WIDTH, // space for the preceding column
|
|
2225
|
+
iSpaceAfterRange = FlexibleColumnLayout.COLUMN_MIN_WIDTH, // space for the suceeding column
|
|
2226
|
+
iRangeLength;
|
|
2227
|
+
|
|
2228
|
+
if (bDesktop && sSeparator === "end") {
|
|
2229
|
+
// (the width of the 'begin' column is fixed, as the user cannot resize it by moving the 'end' separator)
|
|
2230
|
+
iSpaceBeforeRange = this._$columns["begin"].get(0).offsetWidth + FlexibleColumnLayout.COLUMN_MIN_WIDTH; // space for the preceding columns
|
|
2231
|
+
if (sLayout === LT.ThreeColumnsMidExpandedEndHidden) {
|
|
2232
|
+
iSpaceAfterRange = 0; // the 'end' separator is adjacent to the FCL edge, nothing follows it
|
|
2233
|
+
}
|
|
2234
|
+
}
|
|
2235
|
+
|
|
2236
|
+
if (bTablet) {
|
|
2237
|
+
if (sSeparator === "begin" & bIsThreeColumnLayout) {
|
|
2238
|
+
iSpaceBeforeRange = 0; // the 'begin' separator is adjacent to the FCL edge, nothing precedes it
|
|
2239
|
+
}
|
|
2240
|
+
if (sSeparator === "end" && sLayout === LT.ThreeColumnsMidExpandedEndHidden) {
|
|
2241
|
+
iSpaceAfterRange = 0; // the 'end' separator is adjacent to the FCL edge, nothing follows it
|
|
2242
|
+
}
|
|
2243
|
+
}
|
|
2244
|
+
|
|
2245
|
+
// provision space to render the separator itself
|
|
2246
|
+
iSpaceAfterRange += FlexibleColumnLayout.COLUMN_SEPARATOR_WIDTH;
|
|
2247
|
+
|
|
2248
|
+
iRangeLength = iTotalSpace - iSpaceBeforeRange - iSpaceAfterRange;
|
|
2249
|
+
|
|
2250
|
+
return {
|
|
2251
|
+
from: iSpaceBeforeRange,
|
|
2252
|
+
to: iSpaceBeforeRange + iRangeLength
|
|
2253
|
+
};
|
|
2254
|
+
};
|
|
2255
|
+
|
|
2256
|
+
FlexibleColumnLayout.prototype._updateAriaPositionInfo = function (oSeparator) {
|
|
2257
|
+
// obtain the range [fromX ... toX] of the possible positions along the X-axis
|
|
2258
|
+
// of this separator (as allowed by the current layout)
|
|
2259
|
+
var oRange = this._getSeparatorMovementRange(oSeparator),
|
|
2260
|
+
iRangeLength = oRange.to - oRange.from,
|
|
2261
|
+
iSeparatorEarliestPossibleX = oRange.from,
|
|
2262
|
+
iSeparatorCurrentX = oSeparator.offsetLeft,
|
|
2263
|
+
iSeparatorAdvanceInsideRange = iSeparatorCurrentX - iSeparatorEarliestPossibleX,
|
|
2264
|
+
// convert to value inside [0, ..., 100] interval
|
|
2265
|
+
iSeparatorRelativePositionInsideRange = iSeparatorAdvanceInsideRange / iRangeLength * 100,
|
|
2266
|
+
sSeparatorRelativePositionInsideRange = iSeparatorRelativePositionInsideRange.toFixed(2);
|
|
2267
|
+
oSeparator.setAttribute("aria-valuenow", sSeparatorRelativePositionInsideRange);
|
|
2268
|
+
};
|
|
2269
|
+
|
|
2270
|
+
FlexibleColumnLayout.prototype._updateSeparatorsAriaPositionInfo = function () {
|
|
2271
|
+
if (!this._oColumnSeparators) {
|
|
2272
|
+
return;
|
|
2273
|
+
}
|
|
2274
|
+
Object.values(this._oColumnSeparators).forEach(function($separator) {
|
|
2275
|
+
if ($separator.get(0).style.display !== "none") {
|
|
2276
|
+
this._updateAriaPositionInfo($separator.get(0));
|
|
2277
|
+
}
|
|
2278
|
+
}, this);
|
|
2279
|
+
};
|
|
2280
|
+
|
|
2158
2281
|
/**
|
|
2159
2282
|
* Obtains the current width of a column
|
|
2160
2283
|
*
|
|
@@ -2993,8 +3116,14 @@ sap.ui.define([
|
|
|
2993
3116
|
* @ui5-restricted sap.f.FlexibleColumnLayoutSemanticHelper
|
|
2994
3117
|
*/
|
|
2995
3118
|
FlexibleColumnLayout.prototype._getColumnWidthDistributionForLayout = function (sLayout, bAsIntArray, iMaxColumnsCount) {
|
|
2996
|
-
var
|
|
2997
|
-
|
|
3119
|
+
var oLayoutData = this.getLayoutData(),
|
|
3120
|
+
sMediaKey = this._getMediaKey(iMaxColumnsCount),
|
|
3121
|
+
oLayoutDataPerMedia = oLayoutData?.isA("sap.f.FlexibleColumnLayoutData")
|
|
3122
|
+
&& (sMediaKey === "desktop" ? oLayoutData.getDesktopLayoutData() : oLayoutData.getTabletLayoutData()),
|
|
3123
|
+
sGetterNameLayout = "get" + sLayout,
|
|
3124
|
+
sColumnWidthDistribution = oLayoutDataPerMedia?.[sGetterNameLayout]?.(),
|
|
3125
|
+
bIsValidDistribution = sColumnWidthDistribution && this._isValidWidthDistributionForLayout(sColumnWidthDistribution, sLayout),
|
|
3126
|
+
iBeginWidth = this._oBeginColumnWidth[sMediaKey],
|
|
2998
3127
|
vResult,
|
|
2999
3128
|
vResultAsArray;
|
|
3000
3129
|
|
|
@@ -3004,8 +3133,7 @@ sap.ui.define([
|
|
|
3004
3133
|
|
|
3005
3134
|
vResult = "0/0/0";
|
|
3006
3135
|
|
|
3007
|
-
} else if (iMaxColumnsCount > 1
|
|
3008
|
-
&& sColumnWidthDistribution) {
|
|
3136
|
+
} else if (iMaxColumnsCount > 1 && sColumnWidthDistribution && bIsValidDistribution) {
|
|
3009
3137
|
vResult = sColumnWidthDistribution;
|
|
3010
3138
|
} else {
|
|
3011
3139
|
vResult = this._getDefaultColumnWidthDistributionForLayout(sLayout, iMaxColumnsCount);
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Provides element sap.f.FlexibleColumnLayoutData
|
|
8
|
+
sap.ui.define(['sap/ui/core/LayoutData'],
|
|
9
|
+
function(LayoutData) {
|
|
10
|
+
"use strict";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Constructor for a new <code>sap.f.FlexibleColumnLayoutData</code>.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} [sId] ID for the new element, generated automatically if no ID is given
|
|
16
|
+
* @param {object} [mSettings] Initial settings for the new element.
|
|
17
|
+
*
|
|
18
|
+
* @class
|
|
19
|
+
* Holds layout data for <code>sap.f.FlexibleColumnLayout</code>.
|
|
20
|
+
* Allows LayoutData of type <code>sap.f.FlexibleColumnLayoutDataForDesktop</code> or <code>sap.f.FlexibleColumnLayoutFlexibleColumnLayoutDataForTablet</code>
|
|
21
|
+
*
|
|
22
|
+
*
|
|
23
|
+
* @author SAP SE
|
|
24
|
+
* @version 1.128.0
|
|
25
|
+
*
|
|
26
|
+
* @extends sap.ui.core.LayoutData
|
|
27
|
+
*
|
|
28
|
+
* @since 1.128
|
|
29
|
+
* @public
|
|
30
|
+
* @constructor
|
|
31
|
+
* @alias sap.f.FlexibleColumnLayoutData
|
|
32
|
+
*/
|
|
33
|
+
var FlexibleColumnLayoutData = LayoutData.extend("sap.f.FlexibleColumnLayoutData", /** @lends sap.f.FlexibleColumnLayoutData.prototype */ {
|
|
34
|
+
metadata: {
|
|
35
|
+
|
|
36
|
+
library: "sap.f",
|
|
37
|
+
aggregations: {
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Allows LayoutData of type <code>sap.f.FlexibleColumnLayoutDataForDesktop</code>
|
|
41
|
+
*/
|
|
42
|
+
desktopLayoutData: {type: "sap.f.FlexibleColumnLayoutDataForDesktop", multiple: false, singularName: "desktopLayoutData"},
|
|
43
|
+
/**
|
|
44
|
+
* Allows LayoutData of type <code>sap.f.FlexibleColumnLayoutDataForTablet</code>
|
|
45
|
+
*/
|
|
46
|
+
tabletLayoutData: {type: "sap.f.FlexibleColumnLayoutDataForTablet", multiple: false, singularName: "tabletLayoutData"}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
return FlexibleColumnLayoutData;
|
|
52
|
+
});
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Provides element sap.f.FlexibleColumnLayoutDataForDesktop
|
|
8
|
+
sap.ui.define(['sap/ui/core/LayoutData'],
|
|
9
|
+
function(LayoutData) {
|
|
10
|
+
"use strict";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Constructor for a new <code>sap.f.FlexibleColumnLayoutDataForDesktop</code>.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} [sId] ID for the new element, generated automatically if no ID is given
|
|
16
|
+
* @param {object} [mSettings] Initial settings for the new element.
|
|
17
|
+
*
|
|
18
|
+
* @class
|
|
19
|
+
* Holds layout data for columns of <code>sap.f.FlexibleColumnLayout</code> on desktop.
|
|
20
|
+
*
|
|
21
|
+
*
|
|
22
|
+
* @author SAP SE
|
|
23
|
+
* @version 1.128.0
|
|
24
|
+
*
|
|
25
|
+
* @extends sap.ui.core.LayoutData
|
|
26
|
+
*
|
|
27
|
+
* @since 1.128
|
|
28
|
+
* @public
|
|
29
|
+
* @constructor
|
|
30
|
+
* @alias sap.f.FlexibleColumnLayoutDataForDesktop
|
|
31
|
+
*/
|
|
32
|
+
var FlexibleColumnLayoutDataForDesktop = LayoutData.extend("sap.f.FlexibleColumnLayoutDataForDesktop", /** @lends sap.f.FlexibleColumnLayoutDataForDesktop.prototype */ {
|
|
33
|
+
metadata: {
|
|
34
|
+
|
|
35
|
+
library: "sap.f",
|
|
36
|
+
properties: {
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Columns distribution of TwoColumnsBeginExpanded layout in the format "begin/mid/end", where values are set in percentages.
|
|
40
|
+
*/
|
|
41
|
+
twoColumnsBeginExpanded: {type: "string", group: "Appearance", defaultValue: "67/33/0"},
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Columns distribution of TwoColumnsMidExpanded layout in the format "begin/mid/end", where values are set in percentages.
|
|
45
|
+
*/
|
|
46
|
+
twoColumnsMidExpanded: {type: "string", group: "Appearance", defaultValue: "33/67/0"},
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Columns distribution of ThreeColumnsBeginExpandedEndHidden layout in the format "begin/mid/end", where values are set in percentages.
|
|
50
|
+
*/
|
|
51
|
+
threeColumnsBeginExpandedEndHidden: {type: "string", group: "Appearance", defaultValue: "67/33/0"},
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Columns distribution of ThreeColumnsEndExpanded layout in the format "begin/mid/end", where values are set in percentages.
|
|
55
|
+
*/
|
|
56
|
+
threeColumnsEndExpanded: {type: "string", group: "Appearance", defaultValue: "25/25/50"},
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Columns distribution of ThreeColumnsMidExpanded layout in the format "begin/mid/end", where values are set in percentages.
|
|
60
|
+
*/
|
|
61
|
+
threeColumnsMidExpanded: {type: "string", group: "Appearance", defaultValue: "25/50/25"},
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Columns distribution of ThreeColumnsMidExpandedEndHidden layout in the format "begin/mid/end", where values are set in percentages.
|
|
65
|
+
*/
|
|
66
|
+
threeColumnsMidExpandedEndHidden: {type: "string", group: "Appearance", defaultValue: "33/67/0"}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
return FlexibleColumnLayoutDataForDesktop;
|
|
72
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* OpenUI5
|
|
3
|
+
* (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Provides element sap.f.FlexibleColumnLayoutDataForTablet
|
|
8
|
+
sap.ui.define(['sap/ui/core/LayoutData'],
|
|
9
|
+
function(LayoutData) {
|
|
10
|
+
"use strict";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Constructor for a new <code>sap.f.FlexibleColumnLayoutDataForTablet</code>.
|
|
14
|
+
*
|
|
15
|
+
* @param {string} [sId] ID for the new element, generated automatically if no ID is given
|
|
16
|
+
* @param {object} [mSettings] Initial settings for the new element.
|
|
17
|
+
*
|
|
18
|
+
* @class
|
|
19
|
+
* Holds layout data for columns of <code>sap.f.FlexibleColumnLayout</code> on tablet.
|
|
20
|
+
*
|
|
21
|
+
*
|
|
22
|
+
* @author SAP SE
|
|
23
|
+
* @version 1.128.0
|
|
24
|
+
*
|
|
25
|
+
* @extends sap.ui.core.LayoutData
|
|
26
|
+
*
|
|
27
|
+
* @since 1.128
|
|
28
|
+
* @public
|
|
29
|
+
* @constructor
|
|
30
|
+
* @alias sap.f.FlexibleColumnLayoutDataForTablet
|
|
31
|
+
*/
|
|
32
|
+
var FlexibleColumnLayoutDataForTablet = LayoutData.extend("sap.f.FlexibleColumnLayoutDataForTablet", /** @lends sap.f.FlexibleColumnLayoutDataForTablet.prototype */ {
|
|
33
|
+
metadata: {
|
|
34
|
+
|
|
35
|
+
library: "sap.f",
|
|
36
|
+
properties: {
|
|
37
|
+
/**
|
|
38
|
+
* Columns distribution of TwoColumnsBeginExpanded layout in the format "begin/mid/end", where values are set in percentages.
|
|
39
|
+
*/
|
|
40
|
+
twoColumnsBeginExpanded: {type: "string", group: "Appearance", defaultValue: "67/33/0"},
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Columns distribution of TwoColumnsMidExpanded layout in the format "begin/mid/end", where values are set in percentages.
|
|
44
|
+
*/
|
|
45
|
+
twoColumnsMidExpanded: {type: "string", group: "Appearance", defaultValue: "33/67/0"},
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Columns distribution of ThreeColumnsBeginExpandedEndHidden layout in the format "begin/mid/end", where values are set in percentages.
|
|
49
|
+
*/
|
|
50
|
+
threeColumnsBeginExpandedEndHidden: {type: "string", group: "Appearance", defaultValue: "67/33/0"},
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Columns distribution of ThreeColumnsEndExpanded layout in the format "begin/mid/end", where values are set in percentages.
|
|
54
|
+
*/
|
|
55
|
+
threeColumnsEndExpanded: {type: "string", group: "Appearance", defaultValue: "0/33/67"},
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Columns distribution of ThreeColumnsMidExpanded layout in the format "begin/mid/end", where values are set in percentages.
|
|
59
|
+
*/
|
|
60
|
+
threeColumnsMidExpanded: {type: "string", group: "Appearance", defaultValue: "0/67/33"},
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Columns distribution of ThreeColumnsMidExpandedEndHidden layout in the format "begin/mid/end", where values are set in percentages.
|
|
64
|
+
*/
|
|
65
|
+
threeColumnsMidExpandedEndHidden: {type: "string", group: "Appearance", defaultValue: "33/67/0"}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
return FlexibleColumnLayoutDataForTablet;
|
|
71
|
+
});
|
|
@@ -49,7 +49,7 @@ sap.ui.define([
|
|
|
49
49
|
*
|
|
50
50
|
* For more information, see {@link sap.f.FlexibleColumnLayoutSemanticHelper#getCurrentUIState} and {@link sap.f.FlexibleColumnLayoutSemanticHelper#getNextUIState}
|
|
51
51
|
*
|
|
52
|
-
* @version 1.
|
|
52
|
+
* @version 1.128.0
|
|
53
53
|
* @param {sap.f.FlexibleColumnLayout} oFlexibleColumnLayout
|
|
54
54
|
* The <code>sap.f.FlexibleColumnLayout</code> object whose state will be manipulated.
|
|
55
55
|
*
|
|
@@ -58,14 +58,14 @@ sap.ui.define([
|
|
|
58
58
|
* Can be used to define the sizes of columns and rows for different screen sizes, by using the <code>layout</code> aggregations of <code>sap.f.GridContainer</code>.
|
|
59
59
|
*
|
|
60
60
|
* @author SAP SE
|
|
61
|
-
* @version 1.
|
|
61
|
+
* @version 1.128.0
|
|
62
62
|
*
|
|
63
63
|
* @extends sap.ui.base.ManagedObject
|
|
64
64
|
*
|
|
65
65
|
* @see {@link topic:32d4b9c2b981425dbc374d3e9d5d0c2e Grid Controls}
|
|
66
66
|
*
|
|
67
67
|
* @author SAP SE
|
|
68
|
-
* @version 1.
|
|
68
|
+
* @version 1.128.0
|
|
69
69
|
*
|
|
70
70
|
* @since 1.65
|
|
71
71
|
* @public
|
package/src/sap/f/GridList.js
CHANGED
|
@@ -93,7 +93,7 @@ sap.ui.define([
|
|
|
93
93
|
* @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout MDN web docs: CSS Grid Layout}
|
|
94
94
|
*
|
|
95
95
|
* @author SAP SE
|
|
96
|
-
* @version 1.
|
|
96
|
+
* @version 1.128.0
|
|
97
97
|
*
|
|
98
98
|
* @extends sap.m.ListBase
|
|
99
99
|
* @implements sap.ui.layout.cssgrid.IGridConfigurable
|
|
@@ -34,11 +34,10 @@ sap.ui.define([
|
|
|
34
34
|
* @extends sap.ui.core.Control
|
|
35
35
|
*
|
|
36
36
|
* @author SAP SE
|
|
37
|
-
* @version 1.
|
|
37
|
+
* @version 1.128.0
|
|
38
38
|
*
|
|
39
39
|
* @constructor
|
|
40
40
|
* @public
|
|
41
|
-
* @experimental Since 1.72. This class is experimental and provides only limited functionality. Also the API might be changed in future.
|
|
42
41
|
* @alias sap.f.ProductSwitch
|
|
43
42
|
* @since 1.72
|
|
44
43
|
*/
|
|
@@ -40,11 +40,10 @@ sap.ui.define([
|
|
|
40
40
|
* @extends sap.ui.core.Control
|
|
41
41
|
*
|
|
42
42
|
* @author SAP SE
|
|
43
|
-
* @version 1.
|
|
43
|
+
* @version 1.128.0
|
|
44
44
|
*
|
|
45
45
|
* @constructor
|
|
46
46
|
* @public
|
|
47
|
-
* @experimental Since 1.72. This class is experimental and provides only limited functionality. Also the API might be changed in future.
|
|
48
47
|
* @alias sap.f.ProductSwitchItem
|
|
49
48
|
* @since 1.72
|
|
50
49
|
*/
|
package/src/sap/f/ShellBar.js
CHANGED
package/src/sap/f/SidePanel.js
CHANGED
|
@@ -151,7 +151,7 @@ sap.ui.define([
|
|
|
151
151
|
* @extends sap.ui.core.Control
|
|
152
152
|
*
|
|
153
153
|
* @author SAP SE
|
|
154
|
-
* @version 1.
|
|
154
|
+
* @version 1.128.0
|
|
155
155
|
*
|
|
156
156
|
* @constructor
|
|
157
157
|
* @public
|
|
@@ -1082,13 +1082,18 @@ sap.ui.define([
|
|
|
1082
1082
|
};
|
|
1083
1083
|
|
|
1084
1084
|
SidePanel.prototype._getSideContentHeaderIcon = function() {
|
|
1085
|
-
var oSelectedItem = this._getSelectedItem()
|
|
1085
|
+
var oSelectedItem = this._getSelectedItem(),
|
|
1086
|
+
sSrc = oSelectedItem && oSelectedItem.getIcon();
|
|
1087
|
+
|
|
1088
|
+
if (!sSrc) {
|
|
1089
|
+
return null;
|
|
1090
|
+
}
|
|
1086
1091
|
|
|
1087
1092
|
if (!this._contentHeaderIcon) {
|
|
1088
1093
|
this._contentHeaderIcon = new Icon();
|
|
1089
1094
|
}
|
|
1090
1095
|
|
|
1091
|
-
oSelectedItem && this._contentHeaderIcon.setSrc(
|
|
1096
|
+
oSelectedItem && this._contentHeaderIcon.setSrc(sSrc);
|
|
1092
1097
|
|
|
1093
1098
|
return this._contentHeaderIcon;
|
|
1094
1099
|
};
|