@openui5/sap.f 1.127.1 → 1.129.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.
Files changed (141) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +4 -4
  3. package/src/sap/f/.library +1 -1
  4. package/src/sap/f/Avatar.js +1 -1
  5. package/src/sap/f/AvatarGroup.js +2 -2
  6. package/src/sap/f/AvatarGroupItem.js +1 -1
  7. package/src/sap/f/CalendarAppointmentInCard.js +1 -1
  8. package/src/sap/f/CalendarInCard.js +1 -1
  9. package/src/sap/f/Card.js +1 -1
  10. package/src/sap/f/CardBase.js +21 -51
  11. package/src/sap/f/CardRenderer.js +30 -3
  12. package/src/sap/f/DynamicPage.js +11 -8
  13. package/src/sap/f/DynamicPageAccessibleLandmarkInfo.js +11 -2
  14. package/src/sap/f/DynamicPageHeader.js +21 -7
  15. package/src/sap/f/DynamicPageTitle.js +1 -1
  16. package/src/sap/f/FlexibleColumnLayout.js +136 -21
  17. package/src/sap/f/FlexibleColumnLayoutAccessibleLandmarkInfo.js +1 -1
  18. package/src/sap/f/FlexibleColumnLayoutData.js +52 -0
  19. package/src/sap/f/FlexibleColumnLayoutDataForDesktop.js +72 -0
  20. package/src/sap/f/FlexibleColumnLayoutDataForTablet.js +71 -0
  21. package/src/sap/f/FlexibleColumnLayoutSemanticHelper.js +1 -1
  22. package/src/sap/f/GridContainer.js +1 -1
  23. package/src/sap/f/GridContainerItemLayoutData.js +1 -1
  24. package/src/sap/f/GridContainerSettings.js +2 -2
  25. package/src/sap/f/GridList.js +1 -1
  26. package/src/sap/f/GridListItem.js +1 -1
  27. package/src/sap/f/IllustratedMessage.js +1 -1
  28. package/src/sap/f/Illustration.js +1 -1
  29. package/src/sap/f/PlanningCalendarInCardLegend.js +1 -1
  30. package/src/sap/f/ProductSwitch.js +1 -1
  31. package/src/sap/f/ProductSwitchItem.js +1 -1
  32. package/src/sap/f/SearchManager.js +1 -1
  33. package/src/sap/f/ShellBar.js +1 -1
  34. package/src/sap/f/SidePanel.js +20 -6
  35. package/src/sap/f/SidePanelItem.js +1 -1
  36. package/src/sap/f/cards/BaseHeader.js +1 -1
  37. package/src/sap/f/cards/CardBadgeCustomData.js +123 -0
  38. package/src/sap/f/cards/Header.js +1 -1
  39. package/src/sap/f/cards/NumericHeader.js +1 -1
  40. package/src/sap/f/cards/NumericIndicators.js +1 -1
  41. package/src/sap/f/cards/NumericSideIndicator.js +1 -1
  42. package/src/sap/f/cards/loading/AnalyticalPlaceholder.js +1 -1
  43. package/src/sap/f/cards/loading/CalendarPlaceholder.js +1 -1
  44. package/src/sap/f/cards/loading/GenericPlaceholder.js +1 -1
  45. package/src/sap/f/cards/loading/ListPlaceholder.js +1 -1
  46. package/src/sap/f/cards/loading/ObjectPlaceholder.js +1 -1
  47. package/src/sap/f/cards/loading/PlaceholderBase.js +1 -1
  48. package/src/sap/f/cards/loading/TablePlaceholder.js +1 -1
  49. package/src/sap/f/cards/loading/TimelinePlaceholder.js +1 -1
  50. package/src/sap/f/cards/util/CardBadgeEnabler.js +196 -0
  51. package/src/sap/f/changeHandler/MoveDynamicPageTitleActions.js +1 -1
  52. package/src/sap/f/delegate/GridContainerItemNavigation.js +1 -1
  53. package/src/sap/f/delegate/GridItemNavigation.js +1 -1
  54. package/src/sap/f/dnd/GridDragOver.js +1 -1
  55. package/src/sap/f/dnd/GridDropInfo.js +1 -1
  56. package/src/sap/f/library.js +30 -2
  57. package/src/sap/f/messagebundle.properties +3 -0
  58. package/src/sap/f/messagebundle_ar.properties +2 -0
  59. package/src/sap/f/messagebundle_bg.properties +2 -0
  60. package/src/sap/f/messagebundle_ca.properties +2 -0
  61. package/src/sap/f/messagebundle_cnr.properties +2 -0
  62. package/src/sap/f/messagebundle_cs.properties +2 -0
  63. package/src/sap/f/messagebundle_cy.properties +2 -0
  64. package/src/sap/f/messagebundle_da.properties +2 -0
  65. package/src/sap/f/messagebundle_de.properties +2 -0
  66. package/src/sap/f/messagebundle_el.properties +2 -0
  67. package/src/sap/f/messagebundle_en.properties +2 -0
  68. package/src/sap/f/messagebundle_en_GB.properties +2 -0
  69. package/src/sap/f/messagebundle_en_US_saprigi.properties +3 -1
  70. package/src/sap/f/messagebundle_es.properties +2 -0
  71. package/src/sap/f/messagebundle_es_MX.properties +2 -0
  72. package/src/sap/f/messagebundle_et.properties +2 -0
  73. package/src/sap/f/messagebundle_fi.properties +2 -0
  74. package/src/sap/f/messagebundle_fr.properties +2 -0
  75. package/src/sap/f/messagebundle_fr_CA.properties +2 -0
  76. package/src/sap/f/messagebundle_hi.properties +2 -0
  77. package/src/sap/f/messagebundle_hr.properties +2 -0
  78. package/src/sap/f/messagebundle_hu.properties +2 -0
  79. package/src/sap/f/messagebundle_id.properties +2 -0
  80. package/src/sap/f/messagebundle_it.properties +2 -0
  81. package/src/sap/f/messagebundle_iw.properties +2 -0
  82. package/src/sap/f/messagebundle_ja.properties +2 -0
  83. package/src/sap/f/messagebundle_kk.properties +2 -0
  84. package/src/sap/f/messagebundle_ko.properties +2 -0
  85. package/src/sap/f/messagebundle_lt.properties +2 -0
  86. package/src/sap/f/messagebundle_lv.properties +2 -0
  87. package/src/sap/f/messagebundle_mk.properties +2 -0
  88. package/src/sap/f/messagebundle_ms.properties +2 -0
  89. package/src/sap/f/messagebundle_nl.properties +2 -0
  90. package/src/sap/f/messagebundle_no.properties +2 -0
  91. package/src/sap/f/messagebundle_pl.properties +2 -0
  92. package/src/sap/f/messagebundle_pt.properties +2 -0
  93. package/src/sap/f/messagebundle_pt_PT.properties +2 -0
  94. package/src/sap/f/messagebundle_ro.properties +2 -0
  95. package/src/sap/f/messagebundle_ru.properties +2 -0
  96. package/src/sap/f/messagebundle_sh.properties +2 -0
  97. package/src/sap/f/messagebundle_sk.properties +2 -0
  98. package/src/sap/f/messagebundle_sl.properties +2 -0
  99. package/src/sap/f/messagebundle_sr.properties +2 -0
  100. package/src/sap/f/messagebundle_sv.properties +2 -0
  101. package/src/sap/f/messagebundle_th.properties +2 -0
  102. package/src/sap/f/messagebundle_tr.properties +2 -0
  103. package/src/sap/f/messagebundle_uk.properties +2 -0
  104. package/src/sap/f/messagebundle_vi.properties +2 -0
  105. package/src/sap/f/messagebundle_zh_CN.properties +2 -0
  106. package/src/sap/f/messagebundle_zh_TW.properties +2 -0
  107. package/src/sap/f/semantic/AddAction.js +1 -1
  108. package/src/sap/f/semantic/CloseAction.js +1 -1
  109. package/src/sap/f/semantic/CopyAction.js +1 -1
  110. package/src/sap/f/semantic/DeleteAction.js +1 -1
  111. package/src/sap/f/semantic/DiscussInJamAction.js +1 -1
  112. package/src/sap/f/semantic/EditAction.js +1 -1
  113. package/src/sap/f/semantic/ExitFullScreenAction.js +1 -1
  114. package/src/sap/f/semantic/FavoriteAction.js +1 -1
  115. package/src/sap/f/semantic/FlagAction.js +1 -1
  116. package/src/sap/f/semantic/FooterMainAction.js +1 -1
  117. package/src/sap/f/semantic/FullScreenAction.js +1 -1
  118. package/src/sap/f/semantic/MainAction.js +1 -1
  119. package/src/sap/f/semantic/MessagesIndicator.js +1 -1
  120. package/src/sap/f/semantic/NegativeAction.js +1 -1
  121. package/src/sap/f/semantic/PositiveAction.js +1 -1
  122. package/src/sap/f/semantic/PrintAction.js +1 -1
  123. package/src/sap/f/semantic/SemanticButton.js +1 -1
  124. package/src/sap/f/semantic/SemanticConfiguration.js +1 -1
  125. package/src/sap/f/semantic/SemanticControl.js +1 -1
  126. package/src/sap/f/semantic/SemanticPage.js +1 -1
  127. package/src/sap/f/semantic/SemanticToggleButton.js +1 -1
  128. package/src/sap/f/semantic/SendEmailAction.js +1 -1
  129. package/src/sap/f/semantic/SendMessageAction.js +1 -1
  130. package/src/sap/f/semantic/ShareInJamAction.js +1 -1
  131. package/src/sap/f/semantic/TitleMainAction.js +1 -1
  132. package/src/sap/f/shellBar/AdditionalContentSupport.js +1 -1
  133. package/src/sap/f/shellBar/CoPilot.js +1 -1
  134. package/src/sap/f/shellBar/ControlSpacer.js +1 -1
  135. package/src/sap/f/shellBar/Search.js +1 -1
  136. package/src/sap/f/themes/base/AvatarGroup.less +1 -1
  137. package/src/sap/f/themes/base/Card.less +6 -21
  138. package/src/sap/f/themes/base/CardBadge.less +63 -0
  139. package/src/sap/f/themes/base/SidePanel.less +4 -0
  140. package/src/sap/f/themes/base/library.source.less +1 -0
  141. 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.127.1
111
+ * @version 1.129.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
- FlexibleColumnLayout.prototype._getLocalStorage = function (iMaxColumnsCount) {
719
- if (!iMaxColumnsCount) {
720
- iMaxColumnsCount = this.getMaxColumnsCount();
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
 
@@ -1323,6 +1336,12 @@ sap.ui.define([
1323
1336
  if (oOptions.updateDetailedActiveClasses) {
1324
1337
  this._addDetailedActiveClasses(sLayout);
1325
1338
  }
1339
+
1340
+ if (bHasAnimations) {
1341
+ this._attachAfterAllColumnsResizedOnce(this._updateSeparatorsAriaPositionInfo.bind(this));
1342
+ } else {
1343
+ this._updateSeparatorsAriaPositionInfo();
1344
+ }
1326
1345
  };
1327
1346
 
1328
1347
  /**
@@ -1675,6 +1694,7 @@ sap.ui.define([
1675
1694
  this.toggleStyleClass("sapFFLActiveResize", false);
1676
1695
  this._oMoveInfo.separator.style.visibility = "";
1677
1696
  this._oMoveInfo.separator.focus();
1697
+ this._updateAriaPositionInfo(this._oMoveInfo.separator);
1678
1698
  this._ignoreMouse = false;
1679
1699
  this._ignoreTouch = false;
1680
1700
  this._oMoveInfo = null;
@@ -2024,14 +2044,32 @@ sap.ui.define([
2024
2044
  FlexibleColumnLayout.prototype._saveResizedColumWidths = function() {
2025
2045
  var sNewLayout = this._oMoveInfo.layout,
2026
2046
  oColumnPercentWidths = this._convertColumnPxWidthToPercent(this._oMoveInfo.columnWidths, sNewLayout),
2027
- sNewWidthsDistribution = Object.values(oColumnPercentWidths).join("/");
2047
+ sNewWidthsDistribution = Object.values(oColumnPercentWidths).join("/"),
2048
+ sMediaKey;
2028
2049
 
2029
2050
  if (this._isValidWidthDistributionForLayout(sNewWidthsDistribution, sNewLayout)) {
2030
- this._getLocalStorage().put(sNewLayout, sNewWidthsDistribution);
2031
- this._getLocalStorage().put("begin", oColumnPercentWidths.begin);
2051
+ sMediaKey = this._getMediaKey();
2052
+ this.fireColumnsDistributionChange({
2053
+ media: sMediaKey,
2054
+ layout: sNewLayout,
2055
+ columnsSizes: sNewWidthsDistribution
2056
+ });
2057
+
2058
+ this._oBeginColumnWidth[sMediaKey] = oColumnPercentWidths.begin;
2032
2059
  }
2033
2060
  };
2034
2061
 
2062
+ FlexibleColumnLayout.prototype._getMediaKey = function (iMaxColumnsCount) {
2063
+ var sKey;
2064
+
2065
+ if (!iMaxColumnsCount) {
2066
+ iMaxColumnsCount = this.getMaxColumnsCount();
2067
+ }
2068
+ sKey = (iMaxColumnsCount === 3) ? "desktop" : "tablet";
2069
+
2070
+ return sKey;
2071
+ };
2072
+
2035
2073
  FlexibleColumnLayout.prototype._getNextLayoutOnResizeByDrag = function (oColumnWidths,
2036
2074
  sPreviousLayout, sSeparator, bForwardDirection, bResizeEnd) {
2037
2075
  function dragged(oOptions) {
@@ -2168,6 +2206,78 @@ sap.ui.define([
2168
2206
  return oLayoutMatchers[sLayout]();
2169
2207
  };
2170
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
+
2171
2281
  /**
2172
2282
  * Obtains the current width of a column
2173
2283
  *
@@ -3006,8 +3116,14 @@ sap.ui.define([
3006
3116
  * @ui5-restricted sap.f.FlexibleColumnLayoutSemanticHelper
3007
3117
  */
3008
3118
  FlexibleColumnLayout.prototype._getColumnWidthDistributionForLayout = function (sLayout, bAsIntArray, iMaxColumnsCount) {
3009
- var sColumnWidthDistribution = this._getLocalStorage(iMaxColumnsCount).get(sLayout),
3010
- iBeginWidth = this._getLocalStorage(iMaxColumnsCount).get("begin"),
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],
3011
3127
  vResult,
3012
3128
  vResultAsArray;
3013
3129
 
@@ -3017,8 +3133,7 @@ sap.ui.define([
3017
3133
 
3018
3134
  vResult = "0/0/0";
3019
3135
 
3020
- } else if (iMaxColumnsCount > 1
3021
- && sColumnWidthDistribution) {
3136
+ } else if (iMaxColumnsCount > 1 && sColumnWidthDistribution && bIsValidDistribution) {
3022
3137
  vResult = sColumnWidthDistribution;
3023
3138
  } else {
3024
3139
  vResult = this._getDefaultColumnWidthDistributionForLayout(sLayout, iMaxColumnsCount);
@@ -22,7 +22,7 @@ sap.ui.define(['sap/ui/core/Element', './library'],
22
22
  * @extends sap.ui.core.Element
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.127.1
25
+ * @version 1.129.0
26
26
  * @since 1.95
27
27
  *
28
28
  * @constructor
@@ -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.129.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.129.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.129.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.127.1
52
+ * @version 1.129.0
53
53
  * @param {sap.f.FlexibleColumnLayout} oFlexibleColumnLayout
54
54
  * The <code>sap.f.FlexibleColumnLayout</code> object whose state will be manipulated.
55
55
  *
@@ -177,7 +177,7 @@ sap.ui.define([
177
177
  * @see {@link sap.f.dnd.GridDropInfo}
178
178
  *
179
179
  * @author SAP SE
180
- * @version 1.127.1
180
+ * @version 1.129.0
181
181
  *
182
182
  * @extends sap.ui.core.Control
183
183
  *
@@ -21,7 +21,7 @@ sap.ui.define(['sap/ui/core/LayoutData'],
21
21
  * @see {@link topic:32d4b9c2b981425dbc374d3e9d5d0c2e Grid Controls}
22
22
  *
23
23
  * @author SAP SE
24
- * @version 1.127.1
24
+ * @version 1.129.0
25
25
  *
26
26
  * @extends sap.ui.core.LayoutData
27
27
  *
@@ -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.127.1
61
+ * @version 1.129.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.127.1
68
+ * @version 1.129.0
69
69
  *
70
70
  * @since 1.65
71
71
  * @public
@@ -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.127.1
96
+ * @version 1.129.0
97
97
  *
98
98
  * @extends sap.m.ListBase
99
99
  * @implements sap.ui.layout.cssgrid.IGridConfigurable
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @extends sap.m.ListItemBase
25
25
  *
26
26
  * @author SAP SE
27
- * @version 1.127.1
27
+ * @version 1.129.0
28
28
  *
29
29
  * @since 1.70
30
30
  * @constructor
@@ -56,7 +56,7 @@ sap.ui.define([
56
56
  * @extends sap.m.IllustratedMessage
57
57
  *
58
58
  * @author SAP SE
59
- * @version 1.127.1
59
+ * @version 1.129.0
60
60
  *
61
61
  * @constructor
62
62
  * @public
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @extends sap.m.Illustration
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.127.1
33
+ * @version 1.129.0
34
34
  *
35
35
  * @constructor
36
36
  * @public
@@ -22,7 +22,7 @@ sap.ui.define(['sap/m/PlanningCalendarLegend', "sap/ui/core/Lib", 'sap/ui/unifie
22
22
  * @extends sap.m.PlanningCalendarLegend
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.127.1
25
+ * @version 1.129.0
26
26
  *
27
27
  * @constructor
28
28
  * @private
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.ui.core.Control
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.127.1
37
+ * @version 1.129.0
38
38
  *
39
39
  * @constructor
40
40
  * @public
@@ -40,7 +40,7 @@ sap.ui.define([
40
40
  * @extends sap.ui.core.Control
41
41
  *
42
42
  * @author SAP SE
43
- * @version 1.127.1
43
+ * @version 1.129.0
44
44
  *
45
45
  * @constructor
46
46
  * @public
@@ -23,7 +23,7 @@ sap.ui.define(['sap/ui/core/Element', 'sap/ui/base/ManagedObjectObserver', './sh
23
23
  * @extends sap.ui.core.Element
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.127.1
26
+ * @version 1.129.0
27
27
  *
28
28
  * @constructor
29
29
  * @public
@@ -58,7 +58,7 @@ function(
58
58
  * @implements sap.f.IShellBar, sap.m.IBar, sap.tnt.IToolHeader
59
59
  *
60
60
  * @author SAP SE
61
- * @version 1.127.1
61
+ * @version 1.129.0
62
62
  *
63
63
  * @constructor
64
64
  * @public
@@ -151,7 +151,7 @@ sap.ui.define([
151
151
  * @extends sap.ui.core.Control
152
152
  *
153
153
  * @author SAP SE
154
- * @version 1.127.1
154
+ * @version 1.129.0
155
155
  *
156
156
  * @constructor
157
157
  * @public
@@ -468,7 +468,7 @@ sap.ui.define([
468
468
  this.getItems().length && this._fixSidePanelWidth();
469
469
  }
470
470
  } else {
471
- if (this.getDomRef().querySelector(".sapFSPMain").scrollTop === 0) {
471
+ if (this.getDomRef().querySelector(".sapFSPMain").scrollTop === 0 && !this._isSingleItem()) {
472
472
  this.setActionBarExpanded(true);
473
473
  }
474
474
  }
@@ -498,7 +498,8 @@ sap.ui.define([
498
498
  bSideContentExpanded = this._getSideContentExpanded(),
499
499
  bSideExpanded = this.getActionBarExpanded() || bSideContentExpanded,
500
500
  bCtrlOrCmd = oEvent.ctrlKey || oEvent.metaKey,
501
- bSplitterFocused = document.activeElement === this.getDomRef().querySelector(".sapFSPSplitterBar");
501
+ bSplitterFocused = document.activeElement === this.getDomRef().querySelector(".sapFSPSplitterBar"),
502
+ iDirectionModifier = this.getSidePanelPosition() === SidePanelPosition.Right ? 1 : -1;
502
503
 
503
504
  if (bCtrlOrCmd && oEvent.which === KeyCodes.ARROW_LEFT) {
504
505
  oEvent.preventDefault();
@@ -539,10 +540,14 @@ sap.ui.define([
539
540
  this._setSidePanelResizePosition(SIDE_PANEL_POSITION_MIN_WIDTH);
540
541
  break;
541
542
  case KeyCodes.ARROW_LEFT:
543
+ this._moveSidePanelResizePositionWith(oEvent.shiftKey ? this.getSidePanelResizeLargerStep() * iDirectionModifier : this.getSidePanelResizeStep() * iDirectionModifier);
544
+ break;
542
545
  case KeyCodes.ARROW_UP:
543
546
  this._moveSidePanelResizePositionWith(oEvent.shiftKey ? this.getSidePanelResizeLargerStep() : this.getSidePanelResizeStep());
544
547
  break;
545
548
  case KeyCodes.ARROW_RIGHT:
549
+ this._moveSidePanelResizePositionWith(oEvent.shiftKey ? -this.getSidePanelResizeLargerStep() * iDirectionModifier : -this.getSidePanelResizeStep() * iDirectionModifier);
550
+ break;
546
551
  case KeyCodes.ARROW_DOWN:
547
552
  this._moveSidePanelResizePositionWith(oEvent.shiftKey ? -this.getSidePanelResizeLargerStep() : -this.getSidePanelResizeStep());
548
553
  break;
@@ -1082,13 +1087,18 @@ sap.ui.define([
1082
1087
  };
1083
1088
 
1084
1089
  SidePanel.prototype._getSideContentHeaderIcon = function() {
1085
- var oSelectedItem = this._getSelectedItem();
1090
+ var oSelectedItem = this._getSelectedItem(),
1091
+ sSrc = oSelectedItem && oSelectedItem.getIcon();
1092
+
1093
+ if (!sSrc) {
1094
+ return null;
1095
+ }
1086
1096
 
1087
1097
  if (!this._contentHeaderIcon) {
1088
1098
  this._contentHeaderIcon = new Icon();
1089
1099
  }
1090
1100
 
1091
- oSelectedItem && this._contentHeaderIcon.setSrc(oSelectedItem.getIcon());
1101
+ oSelectedItem && this._contentHeaderIcon.setSrc(sSrc);
1092
1102
 
1093
1103
  return this._contentHeaderIcon;
1094
1104
  };
@@ -1189,7 +1199,7 @@ sap.ui.define([
1189
1199
  setTimeout(function() {
1190
1200
  bForward = iTop > this._iLastScrollPosition;
1191
1201
  bBackward = iTop < this._iLastScrollPosition;
1192
- this.setActionBarExpanded(!bForward || bBackward);
1202
+ !this._isSingleItem() && this.setActionBarExpanded(!bForward || bBackward);
1193
1203
  this._iLastScrollPosition = iTop;
1194
1204
  this.bScrolling = false;
1195
1205
  }.bind(this), 100);
@@ -1329,6 +1339,10 @@ sap.ui.define([
1329
1339
  oSide = this.getDomRef().querySelector(".sapFSPSide"),
1330
1340
  iSidePanelWidth = parseInt(window.getComputedStyle(oSide)['width']);
1331
1341
 
1342
+ if (this.getSidePanelPosition() === SidePanelPosition.Left) {
1343
+ iDeltaX = -iDeltaX;
1344
+ }
1345
+
1332
1346
  oEvent.preventDefault();
1333
1347
 
1334
1348
  if (iSidePanelWidth) {
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @extends sap.ui.core.Item
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.127.1
30
+ * @version 1.129.0
31
31
  *
32
32
  * @constructor
33
33
  * @public