@openui5/sap.f 1.116.0 → 1.117.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 (83) hide show
  1. package/package.json +4 -4
  2. package/src/sap/f/.library +1 -1
  3. package/src/sap/f/Avatar.js +1 -1
  4. package/src/sap/f/AvatarGroup.js +1 -1
  5. package/src/sap/f/AvatarGroupItem.js +1 -1
  6. package/src/sap/f/CalendarAppointmentInCard.js +1 -1
  7. package/src/sap/f/CalendarInCard.js +1 -1
  8. package/src/sap/f/Card.js +1 -1
  9. package/src/sap/f/CardBase.js +1 -1
  10. package/src/sap/f/DynamicPage.js +38 -4
  11. package/src/sap/f/DynamicPageAccessibleLandmarkInfo.js +1 -1
  12. package/src/sap/f/DynamicPageHeader.js +1 -1
  13. package/src/sap/f/DynamicPageTitle.js +1 -1
  14. package/src/sap/f/FlexibleColumnLayout.js +1 -1
  15. package/src/sap/f/FlexibleColumnLayoutAccessibleLandmarkInfo.js +1 -1
  16. package/src/sap/f/FlexibleColumnLayoutSemanticHelper.js +1 -1
  17. package/src/sap/f/GridContainer.js +1 -1
  18. package/src/sap/f/GridContainerItemLayoutData.js +1 -1
  19. package/src/sap/f/GridContainerSettings.js +2 -2
  20. package/src/sap/f/GridList.js +1 -1
  21. package/src/sap/f/GridListItem.js +1 -1
  22. package/src/sap/f/GridNavigationMatrix.js +61 -33
  23. package/src/sap/f/IllustratedMessage.js +1 -1
  24. package/src/sap/f/Illustration.js +1 -1
  25. package/src/sap/f/PlanningCalendarInCardLegend.js +1 -1
  26. package/src/sap/f/ProductSwitch.js +1 -1
  27. package/src/sap/f/ProductSwitchItem.js +1 -1
  28. package/src/sap/f/SearchManager.js +1 -1
  29. package/src/sap/f/ShellBar.js +1 -1
  30. package/src/sap/f/SidePanel.js +17 -5
  31. package/src/sap/f/SidePanelItem.js +1 -1
  32. package/src/sap/f/SidePanelRenderer.js +1 -1
  33. package/src/sap/f/cards/BaseHeader.js +1 -1
  34. package/src/sap/f/cards/Header.js +9 -1
  35. package/src/sap/f/cards/HeaderRenderer.js +1 -1
  36. package/src/sap/f/cards/NumericHeader.js +1 -1
  37. package/src/sap/f/cards/NumericIndicators.js +1 -1
  38. package/src/sap/f/cards/NumericSideIndicator.js +1 -1
  39. package/src/sap/f/cards/loading/AnalyticalPlaceholder.js +1 -1
  40. package/src/sap/f/cards/loading/CalendarPlaceholder.js +1 -1
  41. package/src/sap/f/cards/loading/GenericPlaceholder.js +1 -1
  42. package/src/sap/f/cards/loading/ListPlaceholder.js +1 -1
  43. package/src/sap/f/cards/loading/ObjectPlaceholder.js +1 -1
  44. package/src/sap/f/cards/loading/PlaceholderBase.js +1 -1
  45. package/src/sap/f/cards/loading/TablePlaceholder.js +1 -1
  46. package/src/sap/f/cards/loading/TimelinePlaceholder.js +1 -1
  47. package/src/sap/f/changeHandler/MoveDynamicPageTitleActions.js +1 -1
  48. package/src/sap/f/delegate/GridContainerItemNavigation.js +1 -1
  49. package/src/sap/f/delegate/GridItemNavigation.js +135 -111
  50. package/src/sap/f/dnd/GridDragOver.js +1 -1
  51. package/src/sap/f/dnd/GridDropInfo.js +1 -1
  52. package/src/sap/f/library.js +2 -2
  53. package/src/sap/f/messagebundle_fr.properties +4 -4
  54. package/src/sap/f/semantic/AddAction.js +1 -1
  55. package/src/sap/f/semantic/CloseAction.js +1 -1
  56. package/src/sap/f/semantic/CopyAction.js +1 -1
  57. package/src/sap/f/semantic/DeleteAction.js +1 -1
  58. package/src/sap/f/semantic/DiscussInJamAction.js +1 -1
  59. package/src/sap/f/semantic/EditAction.js +1 -1
  60. package/src/sap/f/semantic/ExitFullScreenAction.js +1 -1
  61. package/src/sap/f/semantic/FavoriteAction.js +1 -1
  62. package/src/sap/f/semantic/FlagAction.js +1 -1
  63. package/src/sap/f/semantic/FooterMainAction.js +1 -1
  64. package/src/sap/f/semantic/FullScreenAction.js +1 -1
  65. package/src/sap/f/semantic/MainAction.js +1 -1
  66. package/src/sap/f/semantic/MessagesIndicator.js +1 -1
  67. package/src/sap/f/semantic/NegativeAction.js +1 -1
  68. package/src/sap/f/semantic/PositiveAction.js +1 -1
  69. package/src/sap/f/semantic/PrintAction.js +1 -1
  70. package/src/sap/f/semantic/SemanticButton.js +1 -1
  71. package/src/sap/f/semantic/SemanticConfiguration.js +1 -1
  72. package/src/sap/f/semantic/SemanticControl.js +1 -1
  73. package/src/sap/f/semantic/SemanticPage.js +1 -1
  74. package/src/sap/f/semantic/SemanticToggleButton.js +1 -1
  75. package/src/sap/f/semantic/SendEmailAction.js +1 -1
  76. package/src/sap/f/semantic/SendMessageAction.js +1 -1
  77. package/src/sap/f/semantic/ShareInJamAction.js +1 -1
  78. package/src/sap/f/semantic/TitleMainAction.js +1 -1
  79. package/src/sap/f/shellBar/AdditionalContentSupport.js +1 -1
  80. package/src/sap/f/shellBar/CoPilot.js +1 -1
  81. package/src/sap/f/shellBar/ControlSpacer.js +1 -1
  82. package/src/sap/f/shellBar/Search.js +1 -1
  83. package/ui5.yaml +1 -1
@@ -30,7 +30,7 @@ sap.ui.define([], function () {
30
30
  bLoading = oHeader.isLoading(),
31
31
  oError = oHeader.getAggregation("_error"),
32
32
  oToolbar = oHeader.getToolbar(),
33
- bIconVisible = oHeader.getIconVisible ? oHeader.getIconVisible() : true;
33
+ bIconVisible = oHeader.shouldShowIcon();
34
34
 
35
35
  oRm.openStart("div", oHeader)
36
36
  .class("sapFCardHeader");
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  * @extends sap.f.cards.BaseHeader
40
40
  *
41
41
  * @author SAP SE
42
- * @version 1.116.0
42
+ * @version 1.117.0
43
43
  *
44
44
  * @constructor
45
45
  * @public
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.core.Control
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.116.0
28
+ * @version 1.117.0
29
29
  *
30
30
  * @constructor
31
31
  * @private
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @extends sap.ui.core.Control
27
27
  *
28
28
  * @author SAP SE
29
- * @version 1.116.0
29
+ * @version 1.117.0
30
30
  *
31
31
  * @constructor
32
32
  * @public
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @extends sap.ui.core.Control
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.116.0
22
+ * @version 1.117.0
23
23
  *
24
24
  * @constructor
25
25
  * @private
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @extends sap.f.cards.loading.ListPlaceholder
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.116.0
22
+ * @version 1.117.0
23
23
  *
24
24
  * @constructor
25
25
  * @private
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @extends sap.ui.core.Control
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.116.0
22
+ * @version 1.117.0
23
23
  *
24
24
  * @constructor
25
25
  * @private
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @extends sap.ui.core.Control
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.116.0
22
+ * @version 1.117.0
23
23
  *
24
24
  * @constructor
25
25
  * @private
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.ui.core.Control
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.116.0
32
+ * @version 1.117.0
33
33
  *
34
34
  * @constructor
35
35
  * @private
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @extends sap.ui.core.Control
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.116.0
26
+ * @version 1.117.0
27
27
  *
28
28
  * @constructor
29
29
  * @private
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @extends sap.ui.core.Control
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.116.0
22
+ * @version 1.117.0
23
23
  *
24
24
  * @constructor
25
25
  * @private
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @extends sap.ui.core.Control
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.116.0
22
+ * @version 1.117.0
23
23
  *
24
24
  * @constructor
25
25
  * @private
@@ -16,7 +16,7 @@ sap.ui.define([
16
16
  *
17
17
  * @alias sap.f.changeHandler.MoveDynamicPageTitleActions
18
18
  * @author SAP SE
19
- * @version 1.116.0
19
+ * @version 1.117.0
20
20
  * @experimental Since 1.52
21
21
  */
22
22
  var MoveActions = { };
@@ -41,7 +41,7 @@ sap.ui.define([
41
41
  *
42
42
  *
43
43
  * @author SAP SE
44
- * @version 1.116.0
44
+ * @version 1.117.0
45
45
  *
46
46
  * @extends sap.f.delegate.GridItemNavigation
47
47
  *
@@ -8,18 +8,21 @@ sap.ui.define([
8
8
  "sap/ui/core/delegate/ItemNavigation",
9
9
  "sap/ui/events/KeyCodes",
10
10
  "sap/base/Log",
11
- "sap/f/library"
11
+ "sap/f/library",
12
+ "sap/f/GridNavigationMatrix"
12
13
  ], function (
13
14
  Element,
14
15
  ItemNavigation,
15
16
  KeyCodes,
16
17
  Log,
17
- library
18
+ library,
19
+ GridNavigationMatrix
18
20
  ) {
19
21
  "use strict";
20
22
 
21
23
  // shortcut for sap.f.NavigationDirection
22
- var NavigationDirection = library.NavigationDirection;
24
+ const NavigationDirection = library.NavigationDirection;
25
+ const PAGE_SIZE = 10;
23
26
 
24
27
  /**
25
28
  * Constructor for a new <code>sap.f.delegate.GridItemNavigation</code>.
@@ -31,7 +34,7 @@ sap.ui.define([
31
34
  *
32
35
  *
33
36
  * @author SAP SE
34
- * @version 1.116.0
37
+ * @version 1.117.0
35
38
  *
36
39
  * @extends sap.ui.core.delegate.ItemNavigation
37
40
  *
@@ -41,20 +44,22 @@ sap.ui.define([
41
44
  */
42
45
  var GridItemNavigation = ItemNavigation.extend("sap.f.delegate.GridItemNavigation");
43
46
 
44
- GridItemNavigation.prototype.resetFocusPosition = function () {
45
- this._mCurrentPosition = null;
46
- };
47
-
47
+ /**
48
+ * @override
49
+ */
48
50
  GridItemNavigation.prototype.onfocusin = function (oEvent) {
49
51
  ItemNavigation.prototype.onfocusin.call(this, oEvent);
50
52
 
51
- var aMatrix = this._getGridInstance().getNavigationMatrix();
53
+ const aMatrix = this._getGridInstance().getNavigationMatrix();
52
54
 
53
55
  if (aMatrix && oEvent.target === this.oDomRef) {
54
56
  this._mCurrentPosition = this._findPositionInMatrix(aMatrix, this.getItemDomRefs().indexOf(this.iFocusedIndex));
55
57
  }
56
58
  };
57
59
 
60
+ /**
61
+ * @override
62
+ */
58
63
  GridItemNavigation.prototype.onsapfocusleave = function (oEvent) {
59
64
  ItemNavigation.prototype.onsapfocusleave.call(this, oEvent);
60
65
 
@@ -63,54 +68,61 @@ sap.ui.define([
63
68
  }
64
69
  };
65
70
 
66
- GridItemNavigation.prototype.ontap = function (oEvent) {
67
- // reset focus position when navigation is performed without keyboard
68
- this.resetFocusPosition();
69
- };
70
-
71
71
  /**
72
- * Handles the onsapnext event
73
- * Sets the focus to the next item
74
- *
75
- * @param {jQuery.Event} oEvent the browser event
76
- * @private
72
+ * @override
77
73
  */
78
74
  GridItemNavigation.prototype.onsapnext = function (oEvent) {
79
75
  this._moveFocus(oEvent);
80
76
  };
81
77
 
82
78
  /**
83
- * Handles the onsapprevious event
84
- * Sets the focus to the previous item
85
- *
86
- * @param {jQuery.Event} oEvent the browser event
87
- * @private
79
+ * @override
88
80
  */
89
81
  GridItemNavigation.prototype.onsapprevious = function (oEvent) {
90
82
  this._moveFocus(oEvent);
91
83
  };
92
84
 
85
+ /**
86
+ * @override
87
+ */
88
+ GridItemNavigation.prototype.onsappageup = function(oEvent) {
89
+ this._moveFocus(oEvent);
90
+ };
91
+
92
+ /**
93
+ * @override
94
+ */
95
+ GridItemNavigation.prototype.onsappagedown = function (oEvent) {
96
+ this._moveFocus(oEvent);
97
+ };
98
+
99
+ GridItemNavigation.prototype.resetFocusPosition = function () {
100
+ this._mCurrentPosition = null;
101
+ };
102
+
103
+ GridItemNavigation.prototype.ontap = function () {
104
+ // reset focus position when navigation is performed without keyboard
105
+ this.resetFocusPosition();
106
+ };
107
+
93
108
  GridItemNavigation.prototype._moveFocus = function (oEvent) {
94
- var aItemDomRefs = this.getItemDomRefs(),
95
- oCurrentItem = oEvent.target,
96
- aMatrix,
97
- oStartPosition;
109
+ const oCurrentItem = oEvent.target;
98
110
 
99
111
  // only react on events of the domrefs
100
- if (aItemDomRefs.indexOf(oEvent.target) === -1) {
112
+ if (this.getItemDomRefs().indexOf(oCurrentItem) === -1) {
101
113
  return;
102
114
  }
103
115
 
104
116
  oEvent.preventDefault();
105
117
 
106
- aMatrix = this._getGridInstance().getNavigationMatrix();
118
+ const aMatrix = this._getGridInstance().getNavigationMatrix();
107
119
 
108
120
  if (!aMatrix) {
109
121
  // grid control is not rendered or theme is not applied yet
110
122
  return;
111
123
  }
112
124
 
113
- oStartPosition = this._findPositionInMatrix(aMatrix, oCurrentItem);
125
+ const oStartPosition = this._findPositionInMatrix(aMatrix, oCurrentItem);
114
126
 
115
127
  if (!this._mCurrentPosition) {
116
128
  this._mCurrentPosition = {
@@ -132,133 +144,142 @@ sap.ui.define([
132
144
  case KeyCodes.ARROW_LEFT:
133
145
  this._moveFocusLeft(oStartPosition, aMatrix, oCurrentItem, oEvent);
134
146
  break;
147
+ case KeyCodes.PAGE_DOWN:
148
+ this._moveFocusDown(oStartPosition, aMatrix, oCurrentItem, oEvent, PAGE_SIZE);
149
+ break;
150
+ case KeyCodes.PAGE_UP:
151
+ this._moveFocusUp(oStartPosition, aMatrix, oCurrentItem, oEvent, PAGE_SIZE);
152
+ break;
135
153
  default:
136
154
  break;
137
155
  }
138
-
139
- Log.info("Grid matrix position: (" + oStartPosition.row + ", " + oStartPosition.column + ")");
140
156
  };
141
157
 
142
- GridItemNavigation.prototype._moveFocusDown = function (oStartPosition, aMatrix, oCurrentItem, oEvent) {
143
-
144
- var aItemDomRefs = this.getItemDomRefs(),
145
- oNextFocusItem;
146
-
147
- oStartPosition.column = this._mCurrentPosition.column;
148
-
149
- while (oStartPosition.row < aMatrix.length &&
150
- (aMatrix[oStartPosition.row][oStartPosition.column] === oCurrentItem || aMatrix[oStartPosition.row][oStartPosition.column] === false)) {
151
- oStartPosition.row += 1;
158
+ GridItemNavigation.prototype._moveFocusDown = function (oStartPosition, aMatrix, oCurrentItem, oEvent, iMinSkipRows = 1) {
159
+ const oPosition = {
160
+ row: oStartPosition.row,
161
+ column: this._mCurrentPosition.column
162
+ };
163
+ const oNextItemPosition = { ...oPosition };
164
+ let oNextFocusItem = aMatrix[oNextItemPosition.row][oNextItemPosition.column];
165
+
166
+ while (
167
+ oPosition.row < aMatrix.length - 1
168
+ && (oNextFocusItem === oCurrentItem || oPosition.row - oStartPosition.row < iMinSkipRows)
169
+ ) {
170
+ oPosition.row += 1;
171
+
172
+ if (aMatrix[oPosition.row][oPosition.column] !== GridNavigationMatrix.EMPTY_CELL) {
173
+ oNextFocusItem = aMatrix[oPosition.row][oPosition.column];
174
+ oNextItemPosition.row = oPosition.row;
175
+ }
152
176
  }
153
177
 
154
- if (oStartPosition.row >= aMatrix.length) {
178
+ if (oNextFocusItem === oCurrentItem) {
155
179
  this._onBorderReached(oEvent);
156
180
  return;
157
181
  }
158
182
 
159
- oNextFocusItem = aMatrix[oStartPosition.row][oStartPosition.column];
160
- if (oNextFocusItem) {
161
- this._mCurrentPosition = oStartPosition;
162
- this.focusItem(aItemDomRefs.indexOf(oNextFocusItem), oEvent);
163
- } else {
164
- this._onBorderReached(oEvent);
165
- }
183
+ this._mCurrentPosition = oNextItemPosition;
184
+ this.focusItem(this.getItemDomRefs().indexOf(oNextFocusItem), oEvent);
185
+ Log.info("Grid matrix position: (" + this._mCurrentPosition.row + ", " + this._mCurrentPosition.column + ")");
166
186
  };
167
187
 
168
188
  GridItemNavigation.prototype._moveFocusRight = function (oStartPosition, aMatrix, oCurrentItem, oEvent) {
169
- var aItemDomRefs = this.getItemDomRefs(),
170
- oNextFocusItem;
171
-
172
189
  oStartPosition.row = this._mCurrentPosition.row;
190
+ let oNextFocusItem = aMatrix[oStartPosition.row][oStartPosition.column];
173
191
 
174
- while (oStartPosition.column < aMatrix[oStartPosition.row].length &&
175
- (aMatrix[oStartPosition.row][oStartPosition.column] === oCurrentItem || aMatrix[oStartPosition.row][oStartPosition.column] === false)) {
192
+ while (
193
+ oStartPosition.column < aMatrix[oStartPosition.row].length - 1
194
+ && oNextFocusItem === oCurrentItem
195
+ ) {
176
196
  oStartPosition.column += 1;
197
+
198
+ if (aMatrix[oStartPosition.row][oStartPosition.column] !== GridNavigationMatrix.EMPTY_CELL) {
199
+ oNextFocusItem = aMatrix[oStartPosition.row][oStartPosition.column];
200
+ }
177
201
  }
178
202
 
179
- if (oStartPosition.column >= aMatrix[oStartPosition.row].length) {
203
+ if (oNextFocusItem === oCurrentItem) {
180
204
  this._onBorderReached(oEvent);
181
205
  return;
182
206
  }
183
207
 
184
- oNextFocusItem = aMatrix[oStartPosition.row][oStartPosition.column];
185
- if (oNextFocusItem) {
186
- this._mCurrentPosition = oStartPosition;
187
- this.focusItem(aItemDomRefs.indexOf(oNextFocusItem), oEvent);
188
- } else {
189
- this._onBorderReached(oEvent);
190
- }
208
+ this._mCurrentPosition = oStartPosition;
209
+ this.focusItem(this.getItemDomRefs().indexOf(oNextFocusItem), oEvent);
210
+ Log.info("Grid matrix position: (" + this._mCurrentPosition.row + ", " + this._mCurrentPosition.column + ")");
191
211
  };
192
212
 
193
- GridItemNavigation.prototype._moveFocusUp = function (oStartPosition, aMatrix, oCurrentItem, oEvent) {
194
- var aItemDomRefs = this.getItemDomRefs(),
195
- oNextFocusItem;
196
-
197
- oStartPosition.column = this._mCurrentPosition.column;
198
-
199
- while (oStartPosition.row >= 0 &&
200
- (aMatrix[oStartPosition.row][oStartPosition.column] === oCurrentItem || aMatrix[oStartPosition.row][oStartPosition.column] === false)) {
201
- oStartPosition.row -= 1;
213
+ GridItemNavigation.prototype._moveFocusUp = function (oStartPosition, aMatrix, oCurrentItem, oEvent, iMinSkipRows = 1) {
214
+ const oPosition = {
215
+ row: oStartPosition.row,
216
+ column: this._mCurrentPosition.column
217
+ };
218
+ const oNextItemPosition = { ...oPosition };
219
+ let oNextFocusItem = aMatrix[oNextItemPosition.row][oNextItemPosition.column];
220
+
221
+ while (
222
+ oPosition.row > 0
223
+ && (oNextFocusItem === oCurrentItem || oStartPosition.row - oPosition.row < iMinSkipRows)
224
+ ) {
225
+ oPosition.row -= 1;
226
+
227
+ if (aMatrix[oPosition.row][oPosition.column] !== GridNavigationMatrix.EMPTY_CELL) {
228
+ oNextFocusItem = aMatrix[oPosition.row][oPosition.column];
229
+ oNextItemPosition.row = oPosition.row;
230
+ }
202
231
  }
203
232
 
204
- if (oStartPosition.row < 0) {
233
+ if (oNextFocusItem === oCurrentItem) {
205
234
  this._onBorderReached(oEvent);
206
235
  return;
207
236
  }
208
237
 
209
- oNextFocusItem = aMatrix[oStartPosition.row][oStartPosition.column];
210
- if (oNextFocusItem) {
211
-
212
- // move to the upper top row index
213
- while (oStartPosition.row > 0 && aMatrix[oStartPosition.row - 1][oStartPosition.column] === oNextFocusItem) {
214
- oStartPosition.row -= 1;
215
- }
216
-
217
- this._mCurrentPosition = oStartPosition;
218
- this.focusItem(aItemDomRefs.indexOf(oNextFocusItem), oEvent);
219
- } else {
220
- this._onBorderReached(oEvent);
238
+ // move to the upper top row index
239
+ while (oNextItemPosition.row > 0 && aMatrix[oNextItemPosition.row - 1][oNextItemPosition.column] === oNextFocusItem) {
240
+ oNextItemPosition.row -= 1;
221
241
  }
242
+
243
+ this._mCurrentPosition = oNextItemPosition;
244
+ this.focusItem(this.getItemDomRefs().indexOf(oNextFocusItem), oEvent);
245
+ Log.info("Grid matrix position: (" + this._mCurrentPosition.row + ", " + this._mCurrentPosition.column + ")");
222
246
  };
223
247
 
224
248
  GridItemNavigation.prototype._moveFocusLeft = function (oStartPosition, aMatrix, oCurrentItem, oEvent) {
225
- var aItemDomRefs = this.getItemDomRefs(),
226
- oNextFocusItem;
227
-
228
249
  oStartPosition.row = this._mCurrentPosition.row;
250
+ let oNextFocusItem = aMatrix[oStartPosition.row][oStartPosition.column];
229
251
 
230
- while (oStartPosition.column >= 0 &&
231
- (aMatrix[oStartPosition.row][oStartPosition.column] === oCurrentItem || aMatrix[oStartPosition.row][oStartPosition.column] === false)) {
252
+ while (
253
+ oStartPosition.column > 0
254
+ && oNextFocusItem === oCurrentItem
255
+ ) {
232
256
  oStartPosition.column -= 1;
257
+
258
+ if (aMatrix[oStartPosition.row][oStartPosition.column] !== GridNavigationMatrix.EMPTY_CELL) {
259
+ oNextFocusItem = aMatrix[oStartPosition.row][oStartPosition.column];
260
+ }
233
261
  }
234
262
 
235
- if (oStartPosition.column < 0) {
263
+ if (oNextFocusItem === oCurrentItem) {
236
264
  this._onBorderReached(oEvent);
237
265
  return;
238
266
  }
239
267
 
240
- oNextFocusItem = aMatrix[oStartPosition.row][oStartPosition.column];
241
- if (oNextFocusItem) {
242
-
243
- // move to the most left column index
244
- while (oStartPosition.column > 0 && aMatrix[oStartPosition.row][oStartPosition.column - 1] === oNextFocusItem) {
245
- oStartPosition.column -= 1;
246
- }
247
-
248
- this._mCurrentPosition = oStartPosition;
249
- this.focusItem(aItemDomRefs.indexOf(oNextFocusItem), oEvent);
250
- } else {
251
- this._onBorderReached(oEvent);
268
+ // move to the most left column index
269
+ while (oStartPosition.column > 0 && aMatrix[oStartPosition.row][oStartPosition.column - 1] === oNextFocusItem) {
270
+ oStartPosition.column -= 1;
252
271
  }
272
+
273
+ this._mCurrentPosition = oStartPosition;
274
+ this.focusItem(this.getItemDomRefs().indexOf(oNextFocusItem), oEvent);
275
+ Log.info("Grid matrix position: (" + this._mCurrentPosition.row + ", " + this._mCurrentPosition.column + ")");
253
276
  };
254
277
 
255
278
  GridItemNavigation.prototype._findPositionInMatrix = function (aMatrix, oItem) {
256
-
257
- var oMatrixPositions = null;
279
+ let oMatrixPositions = null;
258
280
 
259
281
  aMatrix.some(function (aInnerRow, iColumnIndex) {
260
-
261
- var iRowIndex = aInnerRow.indexOf(oItem);
282
+ const iRowIndex = aInnerRow.indexOf(oItem);
262
283
 
263
284
  if (iRowIndex !== -1) {
264
285
  oMatrixPositions = {};
@@ -268,11 +289,12 @@ sap.ui.define([
268
289
  }
269
290
  return false;
270
291
  });
292
+
271
293
  return oMatrixPositions;
272
294
  };
273
295
 
274
296
  GridItemNavigation.prototype._onBorderReached = function (oEvent) {
275
- var sDirection;
297
+ let sDirection;
276
298
 
277
299
  switch (oEvent.keyCode) {
278
300
  case KeyCodes.ARROW_RIGHT:
@@ -282,9 +304,11 @@ sap.ui.define([
282
304
  sDirection = NavigationDirection.Left;
283
305
  break;
284
306
  case KeyCodes.ARROW_DOWN:
307
+ case KeyCodes.PAGE_DOWN:
285
308
  sDirection = NavigationDirection.Down;
286
309
  break;
287
310
  case KeyCodes.ARROW_UP:
311
+ case KeyCodes.PAGE_UP:
288
312
  sDirection = NavigationDirection.Up;
289
313
  break;
290
314
  }
@@ -298,8 +322,8 @@ sap.ui.define([
298
322
  };
299
323
 
300
324
  GridItemNavigation.prototype.focusItemByDirection = function (oGrid, sDirection, iRow, iColumn) {
301
- var oCurrentItem,
302
- aMatrix = oGrid.getNavigationMatrix(),
325
+ const aMatrix = oGrid.getNavigationMatrix();
326
+ let oCurrentItem,
303
327
  aRow,
304
328
  iRowIndex,
305
329
  iColIndex;
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  * Handles dragging of a control over a given grid container.
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.116.0
21
+ * @version 1.117.0
22
22
  *
23
23
  * @extends sap.ui.base.Object
24
24
  *
@@ -37,7 +37,7 @@ sap.ui.define([
37
37
  * @extends sap.ui.core.dnd.DropInfo
38
38
  *
39
39
  * @author SAP SE
40
- * @version 1.116.0
40
+ * @version 1.117.0
41
41
  *
42
42
  * @public
43
43
  * @experimental Since 1.68 This class is experimental. The API may change.
@@ -36,13 +36,13 @@ sap.ui.define(["sap/ui/base/DataType",
36
36
  * @namespace
37
37
  * @alias sap.f
38
38
  * @author SAP SE
39
- * @version 1.116.0
39
+ * @version 1.117.0
40
40
  * @since 1.44
41
41
  * @public
42
42
  */
43
43
  var thisLib = sap.ui.getCore().initLibrary({
44
44
  name : "sap.f",
45
- version: "1.116.0",
45
+ version: "1.117.0",
46
46
  dependencies : ["sap.ui.core", "sap.m", "sap.ui.layout"],
47
47
  designtime: "sap/f/designtime/library.designtime",
48
48
  interfaces: [
@@ -87,13 +87,13 @@ SEMANTIC_CONTROL_EXIT_FULL_SCREEN=Quitter mode plein \u00E9cran
87
87
 
88
88
  SEMANTIC_CONTROL_CLOSE=Fermer
89
89
 
90
- ARIA_ROLEDESCRIPTION_CARD=Carte
90
+ ARIA_ROLEDESCRIPTION_CARD=Fiche
91
91
 
92
- ARIA_ROLEDESCRIPTION_CARD_HEADER=En-t\u00EAte carte
92
+ ARIA_ROLEDESCRIPTION_CARD_HEADER=En-t\u00EAte de la fiche
93
93
 
94
- ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER=En-t\u00EAte de carte interactive
94
+ ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER=En-t\u00EAte de la fiche interactive
95
95
 
96
- ARIA_LABEL_CARD_CONTENT=Contenu carte
96
+ ARIA_LABEL_CARD_CONTENT=Contenu de la fiche
97
97
 
98
98
  ARIA_LABEL_TOOLBAR_HEADER_ACTIONS=En-t\u00EAte - Actions
99
99
 
@@ -18,7 +18,7 @@ sap.ui.define(['sap/f/semantic/SemanticButton'], function(SemanticButton) {
18
18
  * @extends sap.f.semantic.SemanticButton
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.116.0
21
+ * @version 1.117.0
22
22
  *
23
23
  * @constructor
24
24
  * @public
@@ -18,7 +18,7 @@ sap.ui.define(['./SemanticButton'], function(SemanticButton) {
18
18
  * @extends sap.f.semantic.SemanticButton
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.116.0
21
+ * @version 1.117.0
22
22
  *
23
23
  * @constructor
24
24
  * @public
@@ -18,7 +18,7 @@ sap.ui.define(['./SemanticButton'], function(SemanticButton) {
18
18
  * @extends sap.f.semantic.SemanticButton
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.116.0
21
+ * @version 1.117.0
22
22
  *
23
23
  * @constructor
24
24
  * @public
@@ -19,7 +19,7 @@ sap.ui.define(['sap/f/semantic/SemanticButton'], function(SemanticButton) {
19
19
  * @extends sap.f.semantic.SemanticButton
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.116.0
22
+ * @version 1.117.0
23
23
  *
24
24
  * @constructor
25
25
  * @public
@@ -19,7 +19,7 @@ sap.ui.define(['sap/f/semantic/SemanticButton'], function(SemanticButton) {
19
19
  * @extends sap.f.semantic.SemanticButton
20
20
  *
21
21
  * @author SAP SE
22
- * @version 1.116.0
22
+ * @version 1.117.0
23
23
  *
24
24
  * @constructor
25
25
  * @public
@@ -18,7 +18,7 @@ sap.ui.define(['./SemanticButton'], function(SemanticButton) {
18
18
  * @extends sap.f.semantic.SemanticButton
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.116.0
21
+ * @version 1.117.0
22
22
  *
23
23
  * @constructor
24
24
  * @public
@@ -18,7 +18,7 @@ sap.ui.define(['./SemanticButton'], function(SemanticButton) {
18
18
  * @extends sap.f.semantic.SemanticButton
19
19
  *
20
20
  * @author SAP SE
21
- * @version 1.116.0
21
+ * @version 1.117.0
22
22
  *
23
23
  * @constructor
24
24
  * @public