@openui5/sap.ui.unified 1.150.0 → 1.151.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 +6 -6
- package/package.json +2 -2
- package/src/sap/ui/unified/.library +1 -1
- package/src/sap/ui/unified/Calendar.js +11 -1
- package/src/sap/ui/unified/CalendarAppointment.js +1 -1
- package/src/sap/ui/unified/CalendarDateInterval.js +1 -1
- package/src/sap/ui/unified/CalendarLegend.js +1 -1
- package/src/sap/ui/unified/CalendarLegendItem.js +1 -1
- package/src/sap/ui/unified/CalendarMonthInterval.js +1 -1
- package/src/sap/ui/unified/CalendarOneMonthInterval.js +1 -1
- package/src/sap/ui/unified/CalendarRow.js +1 -1
- package/src/sap/ui/unified/CalendarTimeInterval.js +1 -1
- package/src/sap/ui/unified/CalendarWeekInterval.js +1 -1
- package/src/sap/ui/unified/ColorPicker.js +46 -1
- package/src/sap/ui/unified/ColorPickerPopover.js +1 -1
- package/src/sap/ui/unified/ColorPickerRenderer.js +49 -15
- package/src/sap/ui/unified/ContentSwitcher.js +1 -1
- package/src/sap/ui/unified/Currency.js +1 -1
- package/src/sap/ui/unified/CurrencyRenderer.js +1 -1
- package/src/sap/ui/unified/DateRange.js +1 -1
- package/src/sap/ui/unified/DateTypeRange.js +1 -1
- package/src/sap/ui/unified/FileUploader.js +1 -1
- package/src/sap/ui/unified/FileUploaderParameter.js +1 -1
- package/src/sap/ui/unified/FileUploaderXHRSettings.js +1 -1
- package/src/sap/ui/unified/Menu.js +1 -1
- package/src/sap/ui/unified/MenuItem.js +2 -2
- package/src/sap/ui/unified/MenuItemBase.js +1 -1
- package/src/sap/ui/unified/MenuItemGroup.js +1 -1
- package/src/sap/ui/unified/MenuRenderer.js +4 -2
- package/src/sap/ui/unified/MenuTextFieldItem.js +7 -3
- package/src/sap/ui/unified/MonthlyRecurrenceRule.js +1 -1
- package/src/sap/ui/unified/NonWorkingPeriod.js +1 -1
- package/src/sap/ui/unified/RecurrenceRule.js +1 -1
- package/src/sap/ui/unified/RecurringCalendarAppointment.js +1 -1
- package/src/sap/ui/unified/RecurringNonWorkingPeriod.js +1 -1
- package/src/sap/ui/unified/Shell.js +1 -1
- package/src/sap/ui/unified/ShellHeadItem.js +2 -30
- package/src/sap/ui/unified/ShellHeadUserItem.js +3 -31
- package/src/sap/ui/unified/ShellHeader.js +29 -13
- package/src/sap/ui/unified/ShellLayout.js +1 -1
- package/src/sap/ui/unified/ShellOverlay.js +1 -1
- package/src/sap/ui/unified/SplitContainer.js +1 -1
- package/src/sap/ui/unified/TimeRange.js +1 -1
- package/src/sap/ui/unified/WeeklyRecurrenceRule.js +1 -1
- package/src/sap/ui/unified/YearlyRecurrenceRule.js +1 -1
- package/src/sap/ui/unified/calendar/DatesRow.js +1 -1
- package/src/sap/ui/unified/calendar/Header.js +1 -1
- package/src/sap/ui/unified/calendar/HeaderRenderer.js +1 -0
- package/src/sap/ui/unified/calendar/IndexPicker.js +1 -1
- package/src/sap/ui/unified/calendar/Month.js +59 -1
- package/src/sap/ui/unified/calendar/MonthPicker.js +1 -1
- package/src/sap/ui/unified/calendar/MonthRenderer.js +23 -10
- package/src/sap/ui/unified/calendar/MonthsRow.js +1 -1
- package/src/sap/ui/unified/calendar/OneMonthDatesRow.js +1 -1
- package/src/sap/ui/unified/calendar/TimesRow.js +1 -1
- package/src/sap/ui/unified/calendar/WeeksRow.js +1 -1
- package/src/sap/ui/unified/calendar/YearPicker.js +1 -1
- package/src/sap/ui/unified/calendar/YearRangePicker.js +1 -1
- package/src/sap/ui/unified/library.js +2 -2
- package/src/sap/ui/unified/themes/base/Calendar.less +39 -6
- package/src/sap/ui/unified/themes/base/ColorPicker.less +125 -3
- package/src/sap/ui/unified/themes/base/FileUploader.less +5 -0
- package/src/sap/ui/unified/themes/base/ShellHeader.less +2 -7
- package/src/sap/ui/unified/themes/sap_hcb/Calendar.less +2 -1
|
@@ -7,12 +7,10 @@
|
|
|
7
7
|
// Provides control sap.ui.unified.ShellHeadItem.
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
'sap/ui/core/Element',
|
|
10
|
-
'sap/ui/core/IconPool',
|
|
11
10
|
'./library',
|
|
12
|
-
"sap/base/security/encodeXML",
|
|
13
11
|
"sap/ui/thirdparty/jquery"
|
|
14
12
|
],
|
|
15
|
-
function(Element,
|
|
13
|
+
function(Element, library, jQuery) {
|
|
16
14
|
"use strict";
|
|
17
15
|
|
|
18
16
|
|
|
@@ -28,7 +26,7 @@ sap.ui.define([
|
|
|
28
26
|
* @extends sap.ui.core.Element
|
|
29
27
|
*
|
|
30
28
|
* @author SAP SE
|
|
31
|
-
* @version 1.
|
|
29
|
+
* @version 1.151.0
|
|
32
30
|
*
|
|
33
31
|
* @constructor
|
|
34
32
|
* @public
|
|
@@ -174,32 +172,6 @@ sap.ui.define([
|
|
|
174
172
|
};
|
|
175
173
|
|
|
176
174
|
|
|
177
|
-
ShellHeadItem.prototype.setIcon = function(sIcon){
|
|
178
|
-
this.setProperty("icon", sIcon, true);
|
|
179
|
-
if (this.getDomRef()) {
|
|
180
|
-
this._refreshIcon();
|
|
181
|
-
}
|
|
182
|
-
return this;
|
|
183
|
-
};
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
ShellHeadItem.prototype._refreshIcon = function(){
|
|
187
|
-
var $Ico = jQuery(this.$().children()[0]);
|
|
188
|
-
var sIco = this.getIcon();
|
|
189
|
-
if (IconPool.isIconURI(sIco)) {
|
|
190
|
-
var oIconInfo = IconPool.getIconInfo(sIco);
|
|
191
|
-
$Ico.html("").attr("style", "");
|
|
192
|
-
if (oIconInfo) {
|
|
193
|
-
$Ico.text(oIconInfo.content).attr("role", "presentation").attr("aria-label", oIconInfo.text || oIconInfo.name).css("font-family", "'" + oIconInfo.fontFamily + "'");
|
|
194
|
-
}
|
|
195
|
-
} else {
|
|
196
|
-
var $Image = this.$("img-inner");
|
|
197
|
-
if ($Image.length == 0 || $Image.attr("src") != sIco) {
|
|
198
|
-
$Ico.attr("style", "").attr("aria-label", null).html("<img role='presentation' id='" + this.getId() + "-img-inner' src='" + encodeXML(sIco) + "'>");
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
|
|
203
175
|
return ShellHeadItem;
|
|
204
176
|
|
|
205
177
|
});
|
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
sap.ui.define([
|
|
9
9
|
'sap/ui/core/Element',
|
|
10
10
|
'sap/ui/core/IconPool',
|
|
11
|
-
'./library'
|
|
12
|
-
"sap/base/security/encodeXML"
|
|
11
|
+
'./library'
|
|
13
12
|
],
|
|
14
|
-
function(Element, IconPool, library
|
|
13
|
+
function(Element, IconPool, library) {
|
|
15
14
|
"use strict";
|
|
16
15
|
|
|
17
16
|
|
|
@@ -27,7 +26,7 @@ sap.ui.define([
|
|
|
27
26
|
* @extends sap.ui.core.Element
|
|
28
27
|
*
|
|
29
28
|
* @author SAP SE
|
|
30
|
-
* @version 1.
|
|
29
|
+
* @version 1.151.0
|
|
31
30
|
*
|
|
32
31
|
* @constructor
|
|
33
32
|
* @public
|
|
@@ -86,33 +85,6 @@ sap.ui.define([
|
|
|
86
85
|
ShellHeadUserItem.prototype.onsapspace = ShellHeadUserItem.prototype.onclick;
|
|
87
86
|
ShellHeadUserItem.prototype.onsapenter = ShellHeadUserItem.prototype.onclick;
|
|
88
87
|
|
|
89
|
-
ShellHeadUserItem.prototype.setImage = function(sImage){
|
|
90
|
-
this.setProperty("image", sImage, true);
|
|
91
|
-
if (this.getDomRef()) {
|
|
92
|
-
this._refreshImage();
|
|
93
|
-
}
|
|
94
|
-
return this;
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
ShellHeadUserItem.prototype._refreshImage = function(){
|
|
98
|
-
var $Ico = this.$("img");
|
|
99
|
-
var sImage = this.getImage();
|
|
100
|
-
if (!sImage) {
|
|
101
|
-
$Ico.html("").attr("style", "").css("display", "none");
|
|
102
|
-
} else if (IconPool.isIconURI(sImage)) {
|
|
103
|
-
var oIconInfo = IconPool.getIconInfo(sImage);
|
|
104
|
-
$Ico.html("").attr("style", "");
|
|
105
|
-
if (oIconInfo) {
|
|
106
|
-
$Ico.text(oIconInfo.content).attr("role", "presentation").attr("aria-label", oIconInfo.text || oIconInfo.name).css("font-family", "'" + oIconInfo.fontFamily + "'");
|
|
107
|
-
}
|
|
108
|
-
} else {
|
|
109
|
-
var $Image = this.$("img-inner");
|
|
110
|
-
if ($Image.length == 0 || $Image.attr("src") != sImage) {
|
|
111
|
-
$Ico.attr("style", "").attr("aria-label", null).html("<img role='presentation' id='" + this.getId() + "-img-inner' src='" + encodeXML(sImage) + "'>");
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
|
|
116
88
|
ShellHeadUserItem.prototype._checkAndAdaptWidth = function(bShellSearchVisible){
|
|
117
89
|
if (!this.getDomRef()) {
|
|
118
90
|
return false;
|
|
@@ -8,13 +8,14 @@ sap.ui.define([
|
|
|
8
8
|
'./library',
|
|
9
9
|
"sap/base/i18n/Localization",
|
|
10
10
|
'sap/ui/core/Control',
|
|
11
|
+
'sap/ui/core/IconPool',
|
|
11
12
|
'sap/ui/Device',
|
|
12
13
|
"sap/ui/core/ControlBehavior",
|
|
13
14
|
"sap/ui/core/Lib",
|
|
14
15
|
'sap/ui/core/theming/Parameters',
|
|
15
16
|
"sap/ui/thirdparty/jquery"
|
|
16
17
|
],
|
|
17
|
-
function(library, Localization, Control, Device, ControlBehavior, Library, Parameters, jQuery) {
|
|
18
|
+
function(library, Localization, Control, _IconPool, Device, ControlBehavior, Library, Parameters, jQuery) {
|
|
18
19
|
"use strict";
|
|
19
20
|
|
|
20
21
|
|
|
@@ -116,7 +117,18 @@ sap.ui.define([
|
|
|
116
117
|
pressed: aItems[i].getToggleEnabled() ? aItems[i].getSelected() : null
|
|
117
118
|
});
|
|
118
119
|
}
|
|
119
|
-
rm.write("
|
|
120
|
+
rm.write(">");
|
|
121
|
+
var sIcon = aItems[i].getIcon();
|
|
122
|
+
if (sIcon) {
|
|
123
|
+
if (_IconPool.isIconURI(sIcon)) {
|
|
124
|
+
rm.writeIcon(sIcon, null, {role: "presentation"});
|
|
125
|
+
} else {
|
|
126
|
+
rm.write("<span><img role='presentation' src='");
|
|
127
|
+
rm.writeEscaped(sIcon);
|
|
128
|
+
rm.write("'></span>");
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
rm.write("<div class='sapUiUfdShellHeadItmMarker'><div></div></div></div>");
|
|
120
132
|
}
|
|
121
133
|
|
|
122
134
|
var oUser = oHeader.getUser();
|
|
@@ -141,7 +153,21 @@ sap.ui.define([
|
|
|
141
153
|
}
|
|
142
154
|
}
|
|
143
155
|
|
|
144
|
-
rm.write("
|
|
156
|
+
rm.write(">");
|
|
157
|
+
var sImage = oUser.getImage();
|
|
158
|
+
if (sImage) {
|
|
159
|
+
if (_IconPool.isIconURI(sImage)) {
|
|
160
|
+
rm.writeIcon(sImage, ["sapUiUfdShellHeadUsrItmImg"], {id: oUser.getId() + "-img", "aria-hidden": "true"});
|
|
161
|
+
} else {
|
|
162
|
+
rm.write("<span id='", oUser.getId(), "-img' aria-hidden='true' class='sapUiUfdShellHeadUsrItmImg'>");
|
|
163
|
+
rm.write("<img role='presentation' src='");
|
|
164
|
+
rm.writeEscaped(sImage);
|
|
165
|
+
rm.write("'>");
|
|
166
|
+
rm.write("</span>");
|
|
167
|
+
}
|
|
168
|
+
} else {
|
|
169
|
+
rm.write("<span id='", oUser.getId(), "-img' aria-hidden='true' class='sapUiUfdShellHeadUsrItmImg'></span>");
|
|
170
|
+
}
|
|
145
171
|
rm.write("<span id='" + oUser.getId() + "-name' class='sapUiUfdShellHeadUsrItmName'");
|
|
146
172
|
var sUserName = oUser.getUsername() || "";
|
|
147
173
|
rm.writeAttributeEscaped("title", sUserName);
|
|
@@ -237,22 +263,12 @@ sap.ui.define([
|
|
|
237
263
|
};
|
|
238
264
|
|
|
239
265
|
ShellHeader.prototype._refresh = function(){
|
|
240
|
-
function updateItems(aItems){
|
|
241
|
-
for (var i = 0; i < aItems.length; i++) {
|
|
242
|
-
aItems[i]._refreshIcon();
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
updateItems(this.getHeadItems());
|
|
247
|
-
updateItems(this.getHeadEndItems());
|
|
248
|
-
|
|
249
266
|
var oUser = this.getUser(),
|
|
250
267
|
isPhoneSize = jQuery("html").hasClass("sapUiMedia-Std-Phone"),
|
|
251
268
|
searchVisible = !this.$("hdr-search").hasClass("sapUiUfdShellHidden"),
|
|
252
269
|
$logo = this.$("icon");
|
|
253
270
|
|
|
254
271
|
if (oUser) {
|
|
255
|
-
oUser._refreshImage();
|
|
256
272
|
oUser._checkAndAdaptWidth(searchVisible && !!this.getSearch());
|
|
257
273
|
}
|
|
258
274
|
|
|
@@ -39,7 +39,7 @@ sap.ui.define([
|
|
|
39
39
|
* If used inside the calendar the properties and aggregation are directly taken from the parent
|
|
40
40
|
* (To not duplicate and sync DateRanges and so on...)
|
|
41
41
|
* @extends sap.ui.unified.calendar.Month
|
|
42
|
-
* @version 1.
|
|
42
|
+
* @version 1.151.0
|
|
43
43
|
*
|
|
44
44
|
* @constructor
|
|
45
45
|
* @public
|
|
@@ -32,7 +32,7 @@ sap.ui.define([
|
|
|
32
32
|
* This control serves for picking an item from a grid with items which are relative periods in Plannig Calendar.
|
|
33
33
|
* This is used inside the sap.m.PlanningCalendar relative views. Not for stand alone usage.
|
|
34
34
|
* @extends sap.ui.core.Control
|
|
35
|
-
* @version 1.
|
|
35
|
+
* @version 1.151.0
|
|
36
36
|
*
|
|
37
37
|
* @constructor
|
|
38
38
|
* @private
|
|
@@ -78,7 +78,7 @@ sap.ui.define([
|
|
|
78
78
|
* If used inside the calendar the properties and aggregation are directly taken from the parent
|
|
79
79
|
* (To not duplicate and sync DateRanges and so on...)
|
|
80
80
|
* @extends sap.ui.core.Control
|
|
81
|
-
* @version 1.
|
|
81
|
+
* @version 1.151.0
|
|
82
82
|
*
|
|
83
83
|
* @constructor
|
|
84
84
|
* @public
|
|
@@ -155,6 +155,15 @@ sap.ui.define([
|
|
|
155
155
|
*/
|
|
156
156
|
showWeekNumbers : {type : "boolean", group : "Appearance", defaultValue : true},
|
|
157
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Determines whether the header of the week numbers column is displayed.
|
|
160
|
+
* The column header text is translated according to the active language.
|
|
161
|
+
*
|
|
162
|
+
* <b>Note:</b> Takes effect only when <code>showWeekNumbers</code> is set to <code>true</code>.
|
|
163
|
+
* @since 1.151
|
|
164
|
+
*/
|
|
165
|
+
showWeekNumbersHeader : {type : "boolean", group : "Appearance", defaultValue : false},
|
|
166
|
+
|
|
158
167
|
/**
|
|
159
168
|
* The value of this property is set trough the sap.ui.unified.Calendar control,
|
|
160
169
|
* in order for the current sap.ui.unified.calendar.Month control to know which
|
|
@@ -326,6 +335,30 @@ sap.ui.define([
|
|
|
326
335
|
return "";
|
|
327
336
|
};
|
|
328
337
|
|
|
338
|
+
/**
|
|
339
|
+
* Returns the text to display in the week numbers column header.
|
|
340
|
+
* Returns an empty string when the header should not be shown.
|
|
341
|
+
* @returns {string} The week numbers column header text, or empty string
|
|
342
|
+
* @private
|
|
343
|
+
*/
|
|
344
|
+
Month.prototype._getWeekNumbersHeaderText = function() {
|
|
345
|
+
if (!this.getShowWeekNumbersHeader()) {
|
|
346
|
+
return "";
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
// Locales where the calendar week abbreviation (sap-calendarWeek narrow) is too long
|
|
350
|
+
// to fit in the week number column header cell — verified manually.
|
|
351
|
+
// These fall back to the "week" narrow display name from CLDR (week-narrow.displayName).
|
|
352
|
+
const _oLongCWLocales = new Set(["ar", "ar-EG", "ar-SA", "he", "vi", "zh-CN", "zh-HK", "zh-TW"]),
|
|
353
|
+
oLocaleData = this._getLocaleData();
|
|
354
|
+
|
|
355
|
+
if (_oLongCWLocales.has(this._getLocale())) {
|
|
356
|
+
return oLocaleData.getDisplayName("week", "narrow");
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
return oLocaleData.getCalendarWeek("narrow").replace("{0}", "").trim();
|
|
360
|
+
};
|
|
361
|
+
|
|
329
362
|
Month.prototype.exit = function(){
|
|
330
363
|
|
|
331
364
|
if (this._oItemNavigation) {
|
|
@@ -364,6 +397,14 @@ sap.ui.define([
|
|
|
364
397
|
|
|
365
398
|
// check if day names are too big -> use smaller ones
|
|
366
399
|
_checkNamesLength.call(this);
|
|
400
|
+
|
|
401
|
+
if (this._bFocusFromTouch) {
|
|
402
|
+
const iFocusedIndex = this._oItemNavigation.getFocusedIndex();
|
|
403
|
+
const oDomRef = this._oItemNavigation.getItemDomRefs()[iFocusedIndex];
|
|
404
|
+
if (oDomRef) {
|
|
405
|
+
oDomRef.classList.add("sapUiCalItemFocusFromTouch");
|
|
406
|
+
}
|
|
407
|
+
}
|
|
367
408
|
};
|
|
368
409
|
|
|
369
410
|
Month.prototype.onmouseover = function(oEvent) {
|
|
@@ -1084,6 +1125,10 @@ sap.ui.define([
|
|
|
1084
1125
|
clientY: oEvent.clientY
|
|
1085
1126
|
};
|
|
1086
1127
|
|
|
1128
|
+
if (oEvent.target.closest(".sapUiCalItem")) {
|
|
1129
|
+
this._bFocusFromTouch = true;
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1087
1132
|
// handle only mouse down on a week number
|
|
1088
1133
|
if (oEvent.button
|
|
1089
1134
|
|| Device.support.touch
|
|
@@ -1102,6 +1147,12 @@ sap.ui.define([
|
|
|
1102
1147
|
this._handleWeekSelection(oFirstDayOfWeekCalendarDate, bFocusStartDate);
|
|
1103
1148
|
};
|
|
1104
1149
|
|
|
1150
|
+
Month.prototype.ontouchstart = function(oEvent) {
|
|
1151
|
+
if (oEvent.target.closest(".sapUiCalItem")) {
|
|
1152
|
+
this._bFocusFromTouch = true;
|
|
1153
|
+
}
|
|
1154
|
+
};
|
|
1155
|
+
|
|
1105
1156
|
Month.prototype.onmouseup = function(oEvent){
|
|
1106
1157
|
// BCP: 1980116734
|
|
1107
1158
|
// on a combi device right mouse button resulted in a selection (both a week or a single day)
|
|
@@ -1188,6 +1239,7 @@ sap.ui.define([
|
|
|
1188
1239
|
if (oEvent.which === KeyCodes.SPACE){
|
|
1189
1240
|
this.bSpaceButtonPressed = true;
|
|
1190
1241
|
}
|
|
1242
|
+
this._bFocusFromTouch = false;
|
|
1191
1243
|
};
|
|
1192
1244
|
Month.prototype.onkeyup = function(oEvent){
|
|
1193
1245
|
if (oEvent.which === KeyCodes.SPACE){
|
|
@@ -2164,6 +2216,12 @@ sap.ui.define([
|
|
|
2164
2216
|
this._selectedWithMouse = true;
|
|
2165
2217
|
}
|
|
2166
2218
|
|
|
2219
|
+
if (this._bFocusFromTouch) {
|
|
2220
|
+
oDomRef.classList.add("sapUiCalItemFocusFromTouch");
|
|
2221
|
+
} else {
|
|
2222
|
+
oDomRef.classList.remove("sapUiCalItemFocusFromTouch");
|
|
2223
|
+
}
|
|
2224
|
+
|
|
2167
2225
|
if (bFireFocus) {
|
|
2168
2226
|
this.fireFocus({date: oFocusedDate.toLocalJSDate(), otherMonth: bOtherMonth});
|
|
2169
2227
|
}
|
|
@@ -197,10 +197,10 @@ sap.ui.define([
|
|
|
197
197
|
|
|
198
198
|
MonthRenderer.renderDayNames = function(oRm, oMonth, oLocaleData, iStartDay, iDays, bDayNumberAsId, sWidth){
|
|
199
199
|
|
|
200
|
-
var iFirstDayOfWeek = oMonth._getFirstDayOfWeek()
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
200
|
+
var iFirstDayOfWeek = oMonth._getFirstDayOfWeek(),
|
|
201
|
+
sId = oMonth.getId(),
|
|
202
|
+
sCalendarType = oMonth.getPrimaryCalendarType(),
|
|
203
|
+
sDayId = "";
|
|
204
204
|
|
|
205
205
|
var aWeekDays = [];
|
|
206
206
|
if (oMonth._bLongWeekDays || !oMonth._bNamesLengthChecked) {
|
|
@@ -211,7 +211,7 @@ sap.ui.define([
|
|
|
211
211
|
var aWeekDaysWide = oLocaleData.getDaysStandAlone("wide", sCalendarType);
|
|
212
212
|
|
|
213
213
|
if (oMonth.getShowWeekNumbers() && sCalendarType !== CalendarType.Islamic) { // on Islamic primary calendar week numbers are not shown, do not add dummy cell
|
|
214
|
-
this.renderDummyCell(oRm, "sapUiCalWH", true, "columnheader");
|
|
214
|
+
this.renderDummyCell(oRm, "sapUiCalWH", true, oMonth._getWeekNumbersHeaderText(), "columnheader");
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
for ( var i = 0; i < iDays; i++) {
|
|
@@ -308,7 +308,7 @@ sap.ui.define([
|
|
|
308
308
|
|
|
309
309
|
if (iLength === 28) {
|
|
310
310
|
// there are only 4 full weeks (28 days), add one hidden 'day' div in order to open space for 5-th week
|
|
311
|
-
this.renderDummyCell(oRm, "sapUiCalItem", false, "");
|
|
311
|
+
this.renderDummyCell(oRm, "sapUiCalItem", false, "", "");
|
|
312
312
|
}
|
|
313
313
|
};
|
|
314
314
|
|
|
@@ -316,22 +316,35 @@ sap.ui.define([
|
|
|
316
316
|
* Generates empty 'day' div that adds space for one more week in the calendar, in case of 4 full weeks only (28 days)
|
|
317
317
|
* @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer
|
|
318
318
|
* @param {string} sClassName css class that will be added to the dummy element styles
|
|
319
|
-
* @param {boolean}
|
|
319
|
+
* @param {boolean} bShowColumn if set to true the dummy element will be visible
|
|
320
|
+
* @param {string} sCellText text to render inside the dummy element; if empty, no text span is rendered
|
|
320
321
|
* @param {string} sRole aria role attribute
|
|
321
322
|
* @private
|
|
322
323
|
*/
|
|
323
|
-
MonthRenderer.renderDummyCell = function(oRm, sClassName,
|
|
324
|
+
MonthRenderer.renderDummyCell = function(oRm, sClassName, bShowColumn, sCellText, sRole) {
|
|
325
|
+
var sFullText = Library.getResourceBundleFor("sap.ui.unified").getText("CALENDAR_WEEK");
|
|
324
326
|
oRm.openStart("div");
|
|
325
327
|
oRm.class(sClassName);
|
|
326
328
|
oRm.class("sapUiCalDummy");
|
|
327
|
-
oRm.style("visibility",
|
|
329
|
+
oRm.style("visibility", bShowColumn ? "visible" : "hidden");
|
|
328
330
|
oRm.attr("role", sRole);
|
|
331
|
+
if (sCellText) {
|
|
332
|
+
oRm.attr("title", sFullText);
|
|
333
|
+
}
|
|
329
334
|
oRm.openEnd();
|
|
330
335
|
|
|
336
|
+
if (sCellText) {
|
|
337
|
+
oRm.openStart("span");
|
|
338
|
+
oRm.attr("aria-hidden", "true");
|
|
339
|
+
oRm.openEnd();
|
|
340
|
+
oRm.text(sCellText);
|
|
341
|
+
oRm.close("span");
|
|
342
|
+
}
|
|
343
|
+
|
|
331
344
|
oRm.openStart("span");
|
|
332
345
|
oRm.class("sapUiPseudoInvisibleText");
|
|
333
346
|
oRm.openEnd();
|
|
334
|
-
oRm.text(
|
|
347
|
+
oRm.text(sFullText);
|
|
335
348
|
oRm.close("span");
|
|
336
349
|
|
|
337
350
|
oRm.close('div');
|
|
@@ -70,7 +70,7 @@ sap.ui.define([
|
|
|
70
70
|
* The MontsRow works with UI5Date or JavaScript Date objects, but only the month and the year are used to display and interact.
|
|
71
71
|
* As representation for a month, the 1st of the month will always be returned in the API.
|
|
72
72
|
* @extends sap.ui.core.Control
|
|
73
|
-
* @version 1.
|
|
73
|
+
* @version 1.151.0
|
|
74
74
|
*
|
|
75
75
|
* @constructor
|
|
76
76
|
* @public
|
|
@@ -41,7 +41,7 @@ sap.ui.define([
|
|
|
41
41
|
* The WeeksRow works with UI5Date or JavaScript Date objects for its API, but internally uses CalendarDate objects for calculations.
|
|
42
42
|
*
|
|
43
43
|
* @extends sap.ui.core.Control
|
|
44
|
-
* @version 1.
|
|
44
|
+
* @version 1.151.0
|
|
45
45
|
*
|
|
46
46
|
* @constructor
|
|
47
47
|
* @private
|
|
@@ -61,7 +61,7 @@ sap.ui.define([
|
|
|
61
61
|
* As in all date-time controls, all pubic JS Date objects that are given (e.g. <code>setDate()</code>) or read
|
|
62
62
|
* (e.g. <code>getFirstRenderedDate</code>) with values which are considered as date objects in browser(local) timezone.
|
|
63
63
|
* @extends sap.ui.core.Control
|
|
64
|
-
* @version 1.
|
|
64
|
+
* @version 1.151.0
|
|
65
65
|
*
|
|
66
66
|
* @constructor
|
|
67
67
|
* @public
|
|
@@ -32,14 +32,14 @@ sap.ui.define([
|
|
|
32
32
|
* @namespace
|
|
33
33
|
* @alias sap.ui.unified
|
|
34
34
|
* @author SAP SE
|
|
35
|
-
* @version 1.
|
|
35
|
+
* @version 1.151.0
|
|
36
36
|
* @since 1.28
|
|
37
37
|
* @public
|
|
38
38
|
*/
|
|
39
39
|
var thisLib = Library.init({
|
|
40
40
|
name : "sap.ui.unified",
|
|
41
41
|
apiVersion: 2,
|
|
42
|
-
version: "1.
|
|
42
|
+
version: "1.151.0",
|
|
43
43
|
dependencies : ["sap.ui.core"],
|
|
44
44
|
designtime: "sap/ui/unified/designtime/library.designtime",
|
|
45
45
|
types: [
|
|
@@ -151,14 +151,18 @@
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
/* no default (browser) outline, if device needs focus visualization its defined later */
|
|
154
|
-
.sapUiCalHead button:focus,
|
|
155
|
-
.sapUiCalCancel:focus
|
|
154
|
+
html.sap-desktop .sapUiCalHead button:focus,
|
|
155
|
+
html.sap-desktop .sapUiCalCancel:focus,
|
|
156
|
+
.sapUiCalHead button:focus-visible,
|
|
157
|
+
.sapUiCalCancel:focus-visible {
|
|
156
158
|
outline: none;
|
|
157
159
|
}
|
|
158
160
|
|
|
159
161
|
/* hover and focus makes only sense on desktops. On mobile devices it's not needed */
|
|
160
162
|
html.sap-desktop .sapUiCalHead button:focus,
|
|
161
|
-
html.sap-desktop .sapUiCalCancel:focus
|
|
163
|
+
html.sap-desktop .sapUiCalCancel:focus,
|
|
164
|
+
.sapUiCalHead button:focus-visible,
|
|
165
|
+
.sapUiCalCancel:focus-visible {
|
|
162
166
|
background-color: var(--sapButton_Hover_Background);
|
|
163
167
|
color: var(--sapButton_Hover_TextColor);
|
|
164
168
|
}
|
|
@@ -498,7 +502,7 @@ html.sap-desktop .sapUiCalHead button.sapUiCalDsbl:focus,
|
|
|
498
502
|
.sapUiCalItem {
|
|
499
503
|
line-height: 1.875rem;
|
|
500
504
|
|
|
501
|
-
&:focus {
|
|
505
|
+
&:focus-visible {
|
|
502
506
|
line-height: 1.75rem;
|
|
503
507
|
}
|
|
504
508
|
|
|
@@ -510,6 +514,13 @@ html.sap-desktop .sapUiCalHead button.sapUiCalDsbl:focus,
|
|
|
510
514
|
}
|
|
511
515
|
}
|
|
512
516
|
|
|
517
|
+
html.sap-desktop .sapUiCalMonthPicker.sapUiCalMonthSecType .sapUiCalItem:focus,
|
|
518
|
+
html.sap-desktop .sapUiCalYearPicker.sapUiCalMonthSecType .sapUiCalItem:focus,
|
|
519
|
+
.sapUiCalMonthPicker.sapUiCalMonthSecType .sapUiCalItem:focus-visible,
|
|
520
|
+
.sapUiCalYearPicker.sapUiCalMonthSecType .sapUiCalItem:focus-visible {
|
|
521
|
+
line-height: 1.75rem;
|
|
522
|
+
}
|
|
523
|
+
|
|
513
524
|
.sapUiSizeCozy {
|
|
514
525
|
|
|
515
526
|
.sapUiCal:not(.sapUiCalDateInt) {
|
|
@@ -547,7 +558,7 @@ html.sap-desktop .sapUiCalHead button.sapUiCalDsbl:focus,
|
|
|
547
558
|
.sapUiCalItem {
|
|
548
559
|
line-height: 1rem;
|
|
549
560
|
|
|
550
|
-
&:focus {
|
|
561
|
+
&:focus-visible {
|
|
551
562
|
line-height: 0.875rem;
|
|
552
563
|
|
|
553
564
|
.sapUiCalItemSecText {
|
|
@@ -557,6 +568,17 @@ html.sap-desktop .sapUiCalHead button.sapUiCalDsbl:focus,
|
|
|
557
568
|
}
|
|
558
569
|
}
|
|
559
570
|
|
|
571
|
+
html.sap-desktop .sapUiSizeCompact .sapUiCalMonthPicker.sapUiCalMonthSecType .sapUiCalItem:focus,
|
|
572
|
+
html.sap-desktop .sapUiSizeCompact .sapUiCalYearPicker.sapUiCalMonthSecType .sapUiCalItem:focus,
|
|
573
|
+
.sapUiSizeCompact .sapUiCalMonthPicker.sapUiCalMonthSecType .sapUiCalItem:focus-visible,
|
|
574
|
+
.sapUiSizeCompact .sapUiCalYearPicker.sapUiCalMonthSecType .sapUiCalItem:focus-visible {
|
|
575
|
+
line-height: 0.875rem;
|
|
576
|
+
|
|
577
|
+
.sapUiCalItemSecText {
|
|
578
|
+
line-height: 0.875rem;
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
560
582
|
/* Day, Month and YearPicker on popup */
|
|
561
583
|
.sapUiCalMonthView[data-sap-ui-popup],
|
|
562
584
|
.sapUiCalMonthPicker[data-sap-ui-popup],
|
|
@@ -766,7 +788,14 @@ html.sapUiMedia-Std-Phone .sapUiCalHeadB0 {
|
|
|
766
788
|
box-sizing: border-box;
|
|
767
789
|
}
|
|
768
790
|
|
|
769
|
-
.
|
|
791
|
+
.sapUiCalItem:focus-visible {
|
|
792
|
+
outline-width: none;
|
|
793
|
+
outline-style: none;
|
|
794
|
+
outline-color: none;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
html.sap-desktop .sapUiCalMonthSecType .sapUiCalItem:focus > .sapUiCalItemSecText,
|
|
798
|
+
.sapUiCalMonthSecType .sapUiCalItem:focus-visible > .sapUiCalItemSecText {
|
|
770
799
|
line-height: 0.75rem;
|
|
771
800
|
}
|
|
772
801
|
|
|
@@ -1012,6 +1041,10 @@ html.sapUiMedia-Std-Phone .sapUiCalHeadB0 {
|
|
|
1012
1041
|
height: 2rem;
|
|
1013
1042
|
}
|
|
1014
1043
|
|
|
1044
|
+
.sapUiSizeCompact .sapUiCalWH {
|
|
1045
|
+
overflow: visible;
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1015
1048
|
.sapUiSizeCompact .sapUiCal:not(.sapUiCalInt) {
|
|
1016
1049
|
|
|
1017
1050
|
.sapUiCalContent {
|