@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.
- package/THIRDPARTY.txt +2 -2
- 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 -1
- 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 +1 -1
- package/src/sap/f/DynamicPage.js +2 -1
- package/src/sap/f/DynamicPageAccessibleLandmarkInfo.js +1 -1
- package/src/sap/f/DynamicPageHeader.js +1 -1
- package/src/sap/f/DynamicPageTitle.js +23 -10
- package/src/sap/f/DynamicPageTitleRenderer.js +2 -1
- package/src/sap/f/FlexibleColumnLayout.js +1 -1
- package/src/sap/f/FlexibleColumnLayoutAccessibleLandmarkInfo.js +1 -1
- package/src/sap/f/FlexibleColumnLayoutSemanticHelper.js +3 -3
- 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 -4
- 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 +2 -2
- package/src/sap/f/ProductSwitch.js +1 -1
- package/src/sap/f/ProductSwitchItem.js +1 -1
- package/src/sap/f/SearchManager.js +1 -1
- package/src/sap/f/ShellBar.js +1 -1
- package/src/sap/f/SidePanel.js +27 -21
- package/src/sap/f/SidePanelItem.js +1 -1
- package/src/sap/f/SidePanelRenderer.js +1 -1
- package/src/sap/f/cards/BaseHeader.js +38 -4
- package/src/sap/f/cards/BaseHeaderRenderer.js +68 -0
- package/src/sap/f/cards/Header.js +33 -31
- package/src/sap/f/cards/HeaderRenderer.js +19 -17
- package/src/sap/f/cards/NumericHeader.js +199 -37
- package/src/sap/f/cards/NumericHeaderRenderer.js +33 -6
- 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/ListPlaceholderRenderer.js +1 -2
- 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/changeHandler/MoveDynamicPageTitleActions.js +1 -1
- package/src/sap/f/delegate/GridContainerItemNavigation.js +8 -8
- package/src/sap/f/delegate/GridItemNavigation.js +1 -1
- package/src/sap/f/dnd/GridDragOver.js +1 -1
- package/src/sap/f/dnd/GridDropInfo.js +1 -1
- package/src/sap/f/library.js +2 -2
- package/src/sap/f/messagebundle_bg.properties +15 -15
- package/src/sap/f/messagebundle_cs.properties +9 -9
- package/src/sap/f/messagebundle_da.properties +1 -1
- package/src/sap/f/messagebundle_fi.properties +1 -1
- package/src/sap/f/messagebundle_fr.properties +5 -5
- package/src/sap/f/messagebundle_hi.properties +1 -1
- package/src/sap/f/messagebundle_hr.properties +4 -4
- package/src/sap/f/messagebundle_hu.properties +1 -1
- package/src/sap/f/messagebundle_sl.properties +1 -1
- package/src/sap/f/messagebundle_zh_TW.properties +1 -1
- package/src/sap/f/rules/DynamicPage.support.js +26 -15
- 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 +4 -2
- 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 +43 -3
- package/src/sap/f/themes/base/DynamicPage.less +3 -2
- package/src/sap/f/themes/base/DynamicPageTitle.less +5 -0
- 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/
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
216
|
-
|
|
217
|
-
.
|
|
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
|
-
*
|
|
310
|
-
*
|
|
444
|
+
* Create details and return it.
|
|
311
445
|
* @private
|
|
312
|
-
* @
|
|
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.
|
|
449
|
+
NumericHeader.prototype._createDetails = function (bUseObjectStatus) {
|
|
315
450
|
var oControl = this.getAggregation("_details");
|
|
316
451
|
|
|
317
|
-
if (
|
|
318
|
-
oControl
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
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
|
-
|
|
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
|
-
|
|
518
|
+
aIds.push(this.getParent()._ariaText.getId());
|
|
363
519
|
}
|
|
364
520
|
|
|
365
521
|
if (this.getTitle()) {
|
|
366
|
-
|
|
522
|
+
aIds.push(this._getTitle().getId());
|
|
367
523
|
}
|
|
368
524
|
|
|
369
525
|
if (this.getSubtitle()) {
|
|
370
|
-
|
|
526
|
+
aIds.push(this._getSubtitle().getId());
|
|
371
527
|
}
|
|
372
528
|
|
|
373
529
|
if (this.getStatusText()) {
|
|
374
|
-
|
|
530
|
+
aIds.push(this.getId() + "-status");
|
|
375
531
|
}
|
|
376
532
|
|
|
377
|
-
|
|
378
|
-
|
|
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
|
-
|
|
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
|
-
|
|
549
|
+
aIds.push(this._getBannerLinesIds());
|
|
386
550
|
|
|
387
|
-
|
|
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
|
-
|
|
8
|
-
sap
|
|
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
|
-
|
|
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.
|
|
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
|
*
|
|
@@ -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
|
-
|
|
100
|
+
|
|
102
101
|
if (oItem) {
|
|
103
102
|
this.renderTitleAndDescription(oRm, oItem);
|
|
104
103
|
this.renderAttributes(oRm, oItem);
|
|
@@ -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.
|
|
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
|
|
60
|
+
GridContainerItemNavigation.prototype._onFocusLeave = function(oEvent) {
|
|
61
61
|
var currentFocused = this.getFocusedDomRef();
|
|
62
|
-
this.getItemDomRefs().forEach(function
|
|
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
|
|
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
|
|
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;
|
package/src/sap/f/library.js
CHANGED
|
@@ -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.
|
|
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.
|
|
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: [
|