@openui5/sap.f 1.117.1 → 1.119.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 (100) hide show
  1. package/THIRDPARTY.txt +2 -2
  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 +1 -1
  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 +1 -1
  11. package/src/sap/f/DynamicPage.js +2 -1
  12. package/src/sap/f/DynamicPageAccessibleLandmarkInfo.js +1 -1
  13. package/src/sap/f/DynamicPageHeader.js +1 -1
  14. package/src/sap/f/DynamicPageTitle.js +23 -10
  15. package/src/sap/f/DynamicPageTitleRenderer.js +2 -1
  16. package/src/sap/f/FlexibleColumnLayout.js +1 -1
  17. package/src/sap/f/FlexibleColumnLayoutAccessibleLandmarkInfo.js +1 -1
  18. package/src/sap/f/FlexibleColumnLayoutSemanticHelper.js +3 -3
  19. package/src/sap/f/GridContainer.js +1 -1
  20. package/src/sap/f/GridContainerItemLayoutData.js +1 -1
  21. package/src/sap/f/GridContainerSettings.js +2 -2
  22. package/src/sap/f/GridList.js +1 -4
  23. package/src/sap/f/GridListItem.js +1 -1
  24. package/src/sap/f/IllustratedMessage.js +1 -1
  25. package/src/sap/f/Illustration.js +1 -1
  26. package/src/sap/f/PlanningCalendarInCardLegend.js +2 -2
  27. package/src/sap/f/ProductSwitch.js +1 -1
  28. package/src/sap/f/ProductSwitchItem.js +1 -1
  29. package/src/sap/f/SearchManager.js +1 -1
  30. package/src/sap/f/ShellBar.js +1 -1
  31. package/src/sap/f/SidePanel.js +27 -21
  32. package/src/sap/f/SidePanelItem.js +1 -1
  33. package/src/sap/f/SidePanelRenderer.js +1 -1
  34. package/src/sap/f/cards/BaseHeader.js +38 -4
  35. package/src/sap/f/cards/BaseHeaderRenderer.js +68 -0
  36. package/src/sap/f/cards/Header.js +33 -31
  37. package/src/sap/f/cards/HeaderRenderer.js +19 -17
  38. package/src/sap/f/cards/NumericHeader.js +199 -37
  39. package/src/sap/f/cards/NumericHeaderRenderer.js +33 -6
  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/ListPlaceholderRenderer.js +1 -2
  47. package/src/sap/f/cards/loading/ObjectPlaceholder.js +1 -1
  48. package/src/sap/f/cards/loading/PlaceholderBase.js +1 -1
  49. package/src/sap/f/cards/loading/TablePlaceholder.js +1 -1
  50. package/src/sap/f/cards/loading/TimelinePlaceholder.js +1 -1
  51. package/src/sap/f/changeHandler/MoveDynamicPageTitleActions.js +1 -1
  52. package/src/sap/f/delegate/GridContainerItemNavigation.js +8 -8
  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 +2 -2
  57. package/src/sap/f/messagebundle_bg.properties +15 -15
  58. package/src/sap/f/messagebundle_cs.properties +9 -9
  59. package/src/sap/f/messagebundle_da.properties +1 -1
  60. package/src/sap/f/messagebundle_fi.properties +1 -1
  61. package/src/sap/f/messagebundle_fr.properties +5 -5
  62. package/src/sap/f/messagebundle_hi.properties +1 -1
  63. package/src/sap/f/messagebundle_hr.properties +4 -4
  64. package/src/sap/f/messagebundle_hu.properties +1 -1
  65. package/src/sap/f/messagebundle_sl.properties +1 -1
  66. package/src/sap/f/messagebundle_zh_TW.properties +1 -1
  67. package/src/sap/f/rules/DynamicPage.support.js +26 -15
  68. package/src/sap/f/semantic/AddAction.js +1 -1
  69. package/src/sap/f/semantic/CloseAction.js +1 -1
  70. package/src/sap/f/semantic/CopyAction.js +1 -1
  71. package/src/sap/f/semantic/DeleteAction.js +1 -1
  72. package/src/sap/f/semantic/DiscussInJamAction.js +1 -1
  73. package/src/sap/f/semantic/EditAction.js +1 -1
  74. package/src/sap/f/semantic/ExitFullScreenAction.js +1 -1
  75. package/src/sap/f/semantic/FavoriteAction.js +1 -1
  76. package/src/sap/f/semantic/FlagAction.js +1 -1
  77. package/src/sap/f/semantic/FooterMainAction.js +1 -1
  78. package/src/sap/f/semantic/FullScreenAction.js +1 -1
  79. package/src/sap/f/semantic/MainAction.js +1 -1
  80. package/src/sap/f/semantic/MessagesIndicator.js +1 -1
  81. package/src/sap/f/semantic/NegativeAction.js +1 -1
  82. package/src/sap/f/semantic/PositiveAction.js +1 -1
  83. package/src/sap/f/semantic/PrintAction.js +1 -1
  84. package/src/sap/f/semantic/SemanticButton.js +1 -1
  85. package/src/sap/f/semantic/SemanticConfiguration.js +1 -1
  86. package/src/sap/f/semantic/SemanticControl.js +1 -1
  87. package/src/sap/f/semantic/SemanticPage.js +4 -2
  88. package/src/sap/f/semantic/SemanticToggleButton.js +1 -1
  89. package/src/sap/f/semantic/SendEmailAction.js +1 -1
  90. package/src/sap/f/semantic/SendMessageAction.js +1 -1
  91. package/src/sap/f/semantic/ShareInJamAction.js +1 -1
  92. package/src/sap/f/semantic/TitleMainAction.js +1 -1
  93. package/src/sap/f/shellBar/AdditionalContentSupport.js +1 -1
  94. package/src/sap/f/shellBar/CoPilot.js +1 -1
  95. package/src/sap/f/shellBar/ControlSpacer.js +1 -1
  96. package/src/sap/f/shellBar/Search.js +1 -1
  97. package/src/sap/f/themes/base/Card.less +43 -3
  98. package/src/sap/f/themes/base/DynamicPage.less +3 -2
  99. package/src/sap/f/themes/base/DynamicPageTitle.less +5 -0
  100. package/src/sap/f/themes/base/SidePanel.less +22 -15
@@ -6,16 +6,34 @@
6
6
  sap.ui.define([
7
7
  "./BaseHeader",
8
8
  "./NumericIndicators",
9
+ "sap/base/Log",
10
+ "sap/m/library",
9
11
  "sap/m/Text",
10
- "sap/f/cards/NumericHeaderRenderer"
12
+ "sap/m/ObjectStatus",
13
+ "sap/f/cards/NumericHeaderRenderer",
14
+ "sap/ui/core/library",
15
+ "sap/m/Avatar",
16
+ "sap/ui/core/InvisibleText"
11
17
  ], function (
12
18
  BaseHeader,
13
19
  NumericIndicators,
20
+ Log,
21
+ mLibrary,
14
22
  Text,
15
- NumericHeaderRenderer
23
+ ObjectStatus,
24
+ NumericHeaderRenderer,
25
+ coreLibrary,
26
+ Avatar,
27
+ InvisibleText
16
28
  ) {
17
29
  "use strict";
18
30
 
31
+ const ValueState = coreLibrary.ValueState;
32
+ const AvatarShape = mLibrary.AvatarShape;
33
+ const AvatarColor = mLibrary.AvatarColor;
34
+ const AvatarImageFitType = mLibrary.AvatarImageFitType;
35
+ const AvatarSize = mLibrary.AvatarSize;
36
+
19
37
  /**
20
38
  * Constructor for a new <code>NumericHeader</code>.
21
39
  *
@@ -39,7 +57,7 @@ sap.ui.define([
39
57
  * @extends sap.f.cards.BaseHeader
40
58
  *
41
59
  * @author SAP SE
42
- * @version 1.117.1
60
+ * @version 1.119.0
43
61
  *
44
62
  * @constructor
45
63
  * @public
@@ -79,6 +97,58 @@ sap.ui.define([
79
97
  */
80
98
  statusText: { type: "string", defaultValue: "" },
81
99
 
100
+ /**
101
+ * Defines the shape of the icon.
102
+ * @experimental Since 1.118. For usage only by Work Zone.
103
+ * @since 1.118
104
+ */
105
+ iconDisplayShape: { type: "sap.m.AvatarShape", defaultValue: AvatarShape.Circle },
106
+
107
+ /**
108
+ * Defines the icon source.
109
+ * @experimental Since 1.118. For usage only by Work Zone.
110
+ * @since 1.118
111
+ */
112
+ iconSrc: { type: "sap.ui.core.URI", defaultValue: "" },
113
+
114
+ /**
115
+ * Defines the initials of the icon.
116
+ * @experimental Since 1.118. For usage only by Work Zone.
117
+ * @since 1.118
118
+ */
119
+ iconInitials: { type: "string", defaultValue: "" },
120
+
121
+ /**
122
+ * Defines an alt text for the avatar or icon.
123
+ *
124
+ * @experimental Since 1.118. For usage only by Work Zone.
125
+ * @since 1.118
126
+ */
127
+ iconAlt: { type: "string", defaultValue: "" },
128
+
129
+ /**
130
+ * Defines a background color for the avatar or icon.
131
+ *
132
+ * @experimental Since 1.118. For usage only by Work Zone.
133
+ * @since 1.118
134
+ */
135
+ iconBackgroundColor: { type: "sap.m.AvatarColor", defaultValue: AvatarColor.Transparent },
136
+
137
+ /**
138
+ * Defines whether the card icon is visible.
139
+ *
140
+ * @experimental Since 1.118. For usage only by Work Zone.
141
+ * @since 1.118
142
+ */
143
+ iconVisible: { type: "boolean", defaultValue: true },
144
+
145
+ /**
146
+ * Defines the size of the icon.
147
+ *
148
+ * @experimental Since 1.119 this feature is experimental and the API may change.
149
+ */
150
+ iconSize: { type: "sap.m.AvatarSize", defaultValue: AvatarSize.S },
151
+
82
152
  /**
83
153
  * General unit of measurement for the header. Displayed as side information to the subtitle.
84
154
  */
@@ -90,6 +160,11 @@ sap.ui.define([
90
160
  */
91
161
  number: { "type": "string", group : "Data" },
92
162
 
163
+ /**
164
+ * The size of the of the main indicator. Possible values are "S" and "L".
165
+ */
166
+ numberSize: { "type": "string", group : "Appearance", defaultValue: "L" },
167
+
93
168
  /**
94
169
  * Whether the main numeric indicator is visible or not
95
170
  * @since 1.109
@@ -120,6 +195,13 @@ sap.ui.define([
120
195
  */
121
196
  details: { "type": "string", group: "Appearance" },
122
197
 
198
+ /**
199
+ * The semantic color which represents the state of the details text.
200
+ * @experimental Since 1.118. For usage only by Work Zone.
201
+ * @since 1.118
202
+ */
203
+ detailsState: { type : "sap.ui.core.ValueState", group: "Appearance", defaultValue: ValueState.None },
204
+
123
205
  /**
124
206
  * Limits the number of lines for the details.
125
207
  * @experimental since 1.101
@@ -130,7 +212,6 @@ sap.ui.define([
130
212
  * The alignment of the side indicators.
131
213
  */
132
214
  sideIndicatorsAlignment: { "type": "sap.f.cards.NumericHeaderSideIndicatorsAlignment", group: "Appearance", defaultValue : "Begin" }
133
-
134
215
  },
135
216
  aggregations: {
136
217
 
@@ -156,6 +237,11 @@ sap.ui.define([
156
237
  */
157
238
  _subtitle: { type: "sap.m.Text", multiple: false, visibility: "hidden" },
158
239
 
240
+ /**
241
+ * Defines the inner avatar control.
242
+ */
243
+ _avatar: { type: "sap.m.Avatar", multiple: false, visibility: "hidden" },
244
+
159
245
  /**
160
246
  * Shows unit of measurement next to subtitle
161
247
  */
@@ -164,7 +250,7 @@ sap.ui.define([
164
250
  /**
165
251
  * Display details
166
252
  */
167
- _details: { type: "sap.m.Text", multiple: false, visibility: "hidden" },
253
+ _details: { type: "sap.ui.core.Control", multiple: false, visibility: "hidden" },
168
254
 
169
255
  /**
170
256
  * Displays the main and side indicators
@@ -190,10 +276,16 @@ sap.ui.define([
190
276
  BaseHeader.prototype.init.apply(this, arguments);
191
277
 
192
278
  this.data("sap-ui-fastnavgroup", "true", true); // Define group for F6 handling
279
+
280
+ this._oAriaAvatarText = new InvisibleText({id: this.getId() + "-ariaAvatarText"});
281
+ this._oAriaAvatarText.setText(this._oRb.getText("ARIA_HEADER_AVATAR_TEXT"));
193
282
  };
194
283
 
195
284
  NumericHeader.prototype.exit = function () {
196
285
  BaseHeader.prototype.exit.apply(this, arguments);
286
+
287
+ this._oAriaAvatarText.destroy();
288
+ this._oAriaAvatarText = null;
197
289
  };
198
290
 
199
291
  /**
@@ -212,12 +304,32 @@ sap.ui.define([
212
304
  .setMaxLines(this.getSubtitleMaxLines());
213
305
 
214
306
  this._getUnitOfMeasurement().setText(this.getUnitOfMeasurement());
215
- this._getDetails()
216
- .setText(this.getDetails())
217
- .setMaxLines(this.getDetailsMaxLines());
307
+
308
+ this._getAvatar()
309
+ .setDisplayShape(this.getIconDisplayShape())
310
+ .setSrc(this.getIconSrc())
311
+ .setInitials(this.getIconInitials())
312
+ .setTooltip(this.getIconAlt())
313
+ .setBackgroundColor(this.getIconBackgroundColor())
314
+ .setDisplaySize(this.getIconSize());
315
+
316
+ if (!this.isPropertyInitial("detailsState") && !this.isPropertyInitial("detailsMaxLines")) {
317
+ Log.error("Both details state and details max lines can not be used at the same time. Max lines setting will be ignored.");
318
+ }
319
+
320
+ if (!this.isPropertyInitial("detailsState")) {
321
+ this._createDetails(true)
322
+ .setText(this.getDetails())
323
+ .setState(this.getDetailsState());
324
+ } else {
325
+ this._createDetails()
326
+ .setText(this.getDetails())
327
+ .setMaxLines(this.getDetailsMaxLines());
328
+ }
218
329
 
219
330
  this._getNumericIndicators()
220
331
  .setNumber(this.getNumber())
332
+ .setNumberSize(this.getNumberSize())
221
333
  .setScale(this.getScale())
222
334
  .setTrend(this.getTrend())
223
335
  .setState(this.getState())
@@ -225,6 +337,13 @@ sap.ui.define([
225
337
  .setNumberVisible(this.getNumberVisible());
226
338
  };
227
339
 
340
+ /**
341
+ * @protected
342
+ * @returns {boolean} If the icon should be shown.
343
+ */
344
+ NumericHeader.prototype.shouldShowIcon = function () {
345
+ return this.getIconVisible();
346
+ };
228
347
 
229
348
  /**
230
349
  * This method is a hook for the RenderManager that gets called
@@ -285,6 +404,22 @@ sap.ui.define([
285
404
  return oControl;
286
405
  };
287
406
 
407
+ /**
408
+ * Lazily creates an avatar control and returns it.
409
+ * @private
410
+ * @returns {sap.m.Avatar} The inner avatar aggregation
411
+ */
412
+ NumericHeader.prototype._getAvatar = function () {
413
+ var oAvatar = this.getAggregation("_avatar");
414
+ if (!oAvatar) {
415
+ oAvatar = new Avatar({
416
+ imageFitType: AvatarImageFitType.Contain
417
+ }).addStyleClass("sapFCardIcon");
418
+ this.setAggregation("_avatar", oAvatar);
419
+ }
420
+ return oAvatar;
421
+ };
422
+
288
423
  /**
289
424
  * Lazily create a unit of measurement and return it.
290
425
  *
@@ -306,24 +441,53 @@ sap.ui.define([
306
441
  };
307
442
 
308
443
  /**
309
- * Lazily create details and return it.
310
- *
444
+ * Create details and return it.
311
445
  * @private
312
- * @return {sap.m.Text} The details aggregation
446
+ * @param {boolean} bUseObjectStatus If set to true the details will be sap.m.ObjectStatus
447
+ * @return {sap.m.Text|sap.m.ObjectStatus} The details aggregation
313
448
  */
314
- NumericHeader.prototype._getDetails = function () {
449
+ NumericHeader.prototype._createDetails = function (bUseObjectStatus) {
315
450
  var oControl = this.getAggregation("_details");
316
451
 
317
- if (!oControl) {
318
- oControl = new Text({
319
- id: this.getId() + "-details"
320
- });
321
- this.setAggregation("_details", oControl);
452
+ if (oControl?.isA("sap.m.Text") && bUseObjectStatus) {
453
+ oControl.destroy();
454
+ } else if (oControl) {
455
+ return oControl;
456
+ }
457
+
458
+ var oSettings = {
459
+ id: this._getDetailsId()
460
+ };
461
+
462
+ if (bUseObjectStatus) {
463
+ oControl = new ObjectStatus(oSettings);
464
+ } else {
465
+ oControl = new Text(oSettings);
322
466
  }
323
467
 
468
+ this.setAggregation("_details", oControl);
469
+
324
470
  return oControl;
325
471
  };
326
472
 
473
+ /**
474
+ * Gets the control create for showing details.
475
+ * @private
476
+ * @return {sap.m.Text|sap.m.ObjectStatus} The details aggregation
477
+ */
478
+ NumericHeader.prototype._getDetails = function () {
479
+ return this.getAggregation("_details");
480
+ };
481
+
482
+ /**
483
+ * Gets the id for details control.
484
+ * @private
485
+ * @return {string} The id for details control.
486
+ */
487
+ NumericHeader.prototype._getDetailsId = function () {
488
+ return this.getId() + "-details";
489
+ };
490
+
327
491
  /**
328
492
  * Lazily create numeric content and return it.
329
493
  *
@@ -348,45 +512,43 @@ sap.ui.define([
348
512
  * @returns {string} IDs of controls
349
513
  */
350
514
  NumericHeader.prototype._getAriaLabelledBy = function () {
351
- var sCardTypeId = "",
352
- sTitleId = "",
353
- sSubtitleId = "",
354
- sStatusTextId = "",
355
- sUnitOfMeasureId = this._getUnitOfMeasurement().getId(),
356
- sMainIndicatorId = "",
357
- sSideIndicatorsIds = this._getSideIndicatorIds(),
358
- sDetailsId = "",
359
- sIds;
515
+ const aIds = [];
360
516
 
361
517
  if (this.getParent() && this.getParent()._ariaText) {
362
- sCardTypeId = this.getParent()._ariaText.getId();
518
+ aIds.push(this.getParent()._ariaText.getId());
363
519
  }
364
520
 
365
521
  if (this.getTitle()) {
366
- sTitleId = this._getTitle().getId();
522
+ aIds.push(this._getTitle().getId());
367
523
  }
368
524
 
369
525
  if (this.getSubtitle()) {
370
- sSubtitleId = this._getSubtitle().getId();
526
+ aIds.push(this._getSubtitle().getId());
371
527
  }
372
528
 
373
529
  if (this.getStatusText()) {
374
- sStatusTextId = this.getId() + "-status";
530
+ aIds.push(this.getId() + "-status");
375
531
  }
376
532
 
377
- if (this.getDetails()) {
378
- sDetailsId = this._getDetails().getId();
533
+ aIds.push(this._getUnitOfMeasurement().getId());
534
+
535
+ if (this.getIconSrc() || this.getIconInitials()) {
536
+ aIds.push(this.getId() + "-ariaAvatarText");
379
537
  }
380
538
 
381
539
  if (this.getNumber() || this.getScale()) {
382
- sMainIndicatorId = this._getNumericIndicators()._getMainIndicator().getId();
540
+ aIds.push(this._getNumericIndicators()._getMainIndicator().getId());
541
+ }
542
+
543
+ aIds.push(this._getSideIndicatorIds());
544
+
545
+ if (this.getDetails()) {
546
+ aIds.push(this._getDetailsId());
383
547
  }
384
548
 
385
- sIds = sCardTypeId + " " + sTitleId + " " + sSubtitleId + " " + sStatusTextId + " " + sUnitOfMeasureId + " " + sMainIndicatorId + " " + sSideIndicatorsIds + " " + sDetailsId;
549
+ aIds.push(this._getBannerLinesIds());
386
550
 
387
- // remove whitespace from both sides
388
- // and merge the consecutive spaces into one
389
- return sIds.replace(/ {2,}/g, ' ').trim();
551
+ return aIds.filter((sElement) => { return !!sElement; }).join(" ");
390
552
  };
391
553
 
392
554
  /**
@@ -4,13 +4,14 @@
4
4
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
5
5
  */
6
6
 
7
- // Provides default renderer for control sap.f.cards.NumericHeader
8
- sap.ui.define([], function () {
7
+ sap.ui.define([
8
+ "sap/f/cards/BaseHeaderRenderer",
9
+ "sap/ui/core/Renderer"
10
+ ], function (BaseHeaderRenderer, Renderer) {
9
11
  "use strict";
10
12
 
11
- var NumericHeaderRenderer = {
12
- apiVersion: 2
13
- };
13
+ var NumericHeaderRenderer = Renderer.extend(BaseHeaderRenderer);
14
+ NumericHeaderRenderer.apiVersion = 2;
14
15
 
15
16
  /**
16
17
  * Render a numeric header.
@@ -34,6 +35,14 @@ sap.ui.define([], function () {
34
35
  oRm.class("sapFCardSectionClickable");
35
36
  }
36
37
 
38
+ if (oNumericHeader.getIconSrc() && oNumericHeader.getIconVisible()) {
39
+ oRm.class("sapFCardHeaderHasIcon");
40
+ }
41
+
42
+ if (oNumericHeader.getNumber() && oNumericHeader.getNumberVisible()) {
43
+ oRm.class("sapFCardHeaderHasNumber");
44
+ }
45
+
37
46
  oRm.openEnd();
38
47
 
39
48
  oRm.openStart("div")
@@ -58,8 +67,9 @@ sap.ui.define([], function () {
58
67
  oRm.renderControl(oError);
59
68
  } else {
60
69
  NumericHeaderRenderer.renderHeaderText(oRm, oNumericHeader);
61
- NumericHeaderRenderer.renderIndicators(oRm, oNumericHeader);
70
+ NumericHeaderRenderer.renderAvatarAndIndicatorsLine(oRm, oNumericHeader);
62
71
  NumericHeaderRenderer.renderDetails(oRm, oNumericHeader);
72
+ BaseHeaderRenderer.renderBanner(oRm, oNumericHeader);
63
73
  }
64
74
 
65
75
  oRm.close("div");
@@ -180,6 +190,23 @@ sap.ui.define([], function () {
180
190
  }
181
191
  };
182
192
 
193
+ /**
194
+ * Render avatar, main indicator and side indicators if any.
195
+ *
196
+ * @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer
197
+ * @param {sap.f.cards.NumericHeader} oNH An object representation of the control that should be rendered
198
+ */
199
+ NumericHeaderRenderer.renderAvatarAndIndicatorsLine = function(oRm, oNH) {
200
+ oRm.openStart("div")
201
+ .class("sapFCardAvatarAndIndicatorsLine")
202
+ .openEnd();
203
+
204
+ BaseHeaderRenderer.renderAvatar(oRm, oNH);
205
+ NumericHeaderRenderer.renderIndicators(oRm, oNH);
206
+
207
+ oRm.close("div");
208
+ };
209
+
183
210
  /**
184
211
  * Render main indicator and side indicators if any.
185
212
  *
@@ -25,7 +25,7 @@ sap.ui.define([
25
25
  * @extends sap.ui.core.Control
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.117.1
28
+ * @version 1.119.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.117.1
29
+ * @version 1.119.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.117.1
22
+ * @version 1.119.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.117.1
22
+ * @version 1.119.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.117.1
22
+ * @version 1.119.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.117.1
22
+ * @version 1.119.0
23
23
  *
24
24
  * @constructor
25
25
  * @private
@@ -77,7 +77,6 @@ sap.ui.define(["sap/ui/core/Renderer", "./PlaceholderBaseRenderer"], function(Re
77
77
  };
78
78
 
79
79
  ListPlaceholderRenderer.renderContent = function(oControl, oRm) {
80
-
81
80
  var iMinItems = oControl.getMinItems(),
82
81
  oItem = oControl.getItem();
83
82
 
@@ -98,7 +97,7 @@ sap.ui.define(["sap/ui/core/Renderer", "./PlaceholderBaseRenderer"], function(Re
98
97
  oRm.openStart("div")
99
98
  .class("sapFCardListPlaceholderRows")
100
99
  .openEnd();
101
- //debugger
100
+
102
101
  if (oItem) {
103
102
  this.renderTitleAndDescription(oRm, oItem);
104
103
  this.renderAttributes(oRm, oItem);
@@ -29,7 +29,7 @@ sap.ui.define([
29
29
  * @extends sap.ui.core.Control
30
30
  *
31
31
  * @author SAP SE
32
- * @version 1.117.1
32
+ * @version 1.119.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.117.1
26
+ * @version 1.119.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.117.1
22
+ * @version 1.119.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.117.1
22
+ * @version 1.119.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.117.1
19
+ * @version 1.119.0
20
20
  * @experimental Since 1.52
21
21
  */
22
22
  var MoveActions = { };
@@ -10,7 +10,7 @@ sap.ui.define([
10
10
  "sap/ui/dom/containsOrEquals",
11
11
  "sap/ui/thirdparty/jquery",
12
12
  "sap/ui/dom/jquery/Selectors" // provides jQuery custom selector ":sapTabbable"
13
- ], function (
13
+ ], function(
14
14
  Element,
15
15
  ItemNavigation,
16
16
  GridItemNavigation,
@@ -41,7 +41,7 @@ sap.ui.define([
41
41
  *
42
42
  *
43
43
  * @author SAP SE
44
- * @version 1.117.1
44
+ * @version 1.119.0
45
45
  *
46
46
  * @extends sap.f.delegate.GridItemNavigation
47
47
  *
@@ -50,16 +50,16 @@ sap.ui.define([
50
50
  * @alias sap.f.delegate.GridContainerItemNavigation
51
51
  */
52
52
  var GridContainerItemNavigation = GridItemNavigation.extend("sap.f.delegate.GridContainerItemNavigation", /** @lends sap.f.delegate.GridContainerItemNavigation.prototype */ {
53
- constructor: function () {
53
+ constructor: function() {
54
54
  GridItemNavigation.apply(this, arguments);
55
55
 
56
56
  this.attachEvent(ItemNavigation.Events.FocusLeave, this._onFocusLeave, this);
57
57
  }
58
58
  });
59
59
 
60
- GridContainerItemNavigation.prototype._onFocusLeave = function (oEvent) {
60
+ GridContainerItemNavigation.prototype._onFocusLeave = function(oEvent) {
61
61
  var currentFocused = this.getFocusedDomRef();
62
- this.getItemDomRefs().forEach(function (item, index) {
62
+ this.getItemDomRefs().forEach(function(item, index) {
63
63
  if (currentFocused === item) {
64
64
  var nextFocusableIndex = index++;
65
65
  this.setFocusedIndex(nextFocusableIndex);
@@ -100,13 +100,13 @@ sap.ui.define([
100
100
  var $AllTabbables = $LastFocused.find(":sapTabbable");
101
101
 
102
102
  // leave only real tabbable elements in the tab chain, GridContainer and List types have dummy areas
103
- $AllTabbables.map(function (index, element) {
104
- if (element.className.indexOf("DummyArea") === -1) {
103
+ $AllTabbables.map(function(index, element) {
104
+ if (element.className.indexOf("DummyArea") === -1 && element.className.indexOf("sapMListUl") === -1) {
105
105
  Tabbables.push(element);
106
106
  }
107
107
  });
108
108
 
109
- var focusableIndex = Tabbables.length - 1;
109
+ var focusableIndex = Tabbables.length - 1;
110
110
  if (focusableIndex === -1 ||
111
111
  (Element.closestTo(Tabbables[focusableIndex]) && Element.closestTo(Tabbables[focusableIndex]).getId() === oEvent.target.id)) {
112
112
  this._lastFocusedElement = oEvent.target;
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  *
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.117.1
37
+ * @version 1.119.0
38
38
  *
39
39
  * @extends sap.ui.core.delegate.ItemNavigation
40
40
  *
@@ -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.117.1
21
+ * @version 1.119.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.117.1
40
+ * @version 1.119.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.117.1
39
+ * @version 1.119.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.117.1",
45
+ version: "1.119.0",
46
46
  dependencies : ["sap.ui.core", "sap.m", "sap.ui.layout"],
47
47
  designtime: "sap/f/designtime/library.designtime",
48
48
  interfaces: [