@openui5/sap.ui.unified 1.144.0 → 1.145.1

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 (117) hide show
  1. package/REUSE.toml +40 -16
  2. package/THIRDPARTY.txt +22 -1
  3. package/package.json +2 -2
  4. package/src/sap/ui/unified/.library +1 -1
  5. package/src/sap/ui/unified/Calendar.js +67 -18
  6. package/src/sap/ui/unified/CalendarAppointment.js +1 -1
  7. package/src/sap/ui/unified/CalendarDateInterval.js +68 -13
  8. package/src/sap/ui/unified/CalendarDateIntervalRenderer.js +13 -0
  9. package/src/sap/ui/unified/CalendarLegend.js +1 -1
  10. package/src/sap/ui/unified/CalendarLegendItem.js +1 -1
  11. package/src/sap/ui/unified/CalendarMonthInterval.js +1 -1
  12. package/src/sap/ui/unified/CalendarOneMonthInterval.js +1 -1
  13. package/src/sap/ui/unified/CalendarRow.js +6 -1
  14. package/src/sap/ui/unified/CalendarRowRenderer.js +2 -1
  15. package/src/sap/ui/unified/CalendarTimeInterval.js +60 -6
  16. package/src/sap/ui/unified/CalendarTimeIntervalRenderer.js +1 -1
  17. package/src/sap/ui/unified/CalendarWeekInterval.js +1 -1
  18. package/src/sap/ui/unified/ColorPicker.js +1 -1
  19. package/src/sap/ui/unified/ColorPickerPopover.js +1 -1
  20. package/src/sap/ui/unified/ContentSwitcher.js +1 -1
  21. package/src/sap/ui/unified/Currency.js +1 -1
  22. package/src/sap/ui/unified/CurrencyRenderer.js +1 -1
  23. package/src/sap/ui/unified/DateRange.js +1 -1
  24. package/src/sap/ui/unified/DateTypeRange.js +1 -1
  25. package/src/sap/ui/unified/FileUploader.js +23 -29
  26. package/src/sap/ui/unified/FileUploaderParameter.js +1 -1
  27. package/src/sap/ui/unified/FileUploaderRenderer.js +0 -9
  28. package/src/sap/ui/unified/FileUploaderXHRSettings.js +1 -1
  29. package/src/sap/ui/unified/Menu.js +1 -1
  30. package/src/sap/ui/unified/MenuItem.js +1 -1
  31. package/src/sap/ui/unified/MenuItemBase.js +1 -1
  32. package/src/sap/ui/unified/MenuItemGroup.js +1 -1
  33. package/src/sap/ui/unified/MenuRenderer.js +1 -1
  34. package/src/sap/ui/unified/MenuTextFieldItem.js +1 -1
  35. package/src/sap/ui/unified/NonWorkingPeriod.js +1 -1
  36. package/src/sap/ui/unified/RecurringNonWorkingPeriod.js +1 -1
  37. package/src/sap/ui/unified/Shell.js +1 -1
  38. package/src/sap/ui/unified/ShellHeadItem.js +1 -1
  39. package/src/sap/ui/unified/ShellHeadUserItem.js +1 -1
  40. package/src/sap/ui/unified/ShellLayout.js +1 -1
  41. package/src/sap/ui/unified/ShellOverlay.js +1 -1
  42. package/src/sap/ui/unified/SplitContainer.js +1 -1
  43. package/src/sap/ui/unified/TimeRange.js +1 -1
  44. package/src/sap/ui/unified/calendar/CalendarUtils.js +17 -0
  45. package/src/sap/ui/unified/calendar/DatesRow.js +1 -1
  46. package/src/sap/ui/unified/calendar/DatesRowRenderer.js +0 -38
  47. package/src/sap/ui/unified/calendar/Header.js +1 -1
  48. package/src/sap/ui/unified/calendar/IndexPicker.js +1 -1
  49. package/src/sap/ui/unified/calendar/Month.js +1 -1
  50. package/src/sap/ui/unified/calendar/MonthPicker.js +1 -1
  51. package/src/sap/ui/unified/calendar/MonthRenderer.js +11 -2
  52. package/src/sap/ui/unified/calendar/MonthsRow.js +9 -2
  53. package/src/sap/ui/unified/calendar/MonthsRowRenderer.js +4 -1
  54. package/src/sap/ui/unified/calendar/OneMonthDatesRow.js +1 -1
  55. package/src/sap/ui/unified/calendar/RecurrenceUtils.js +4 -1
  56. package/src/sap/ui/unified/calendar/TimesRow.js +1 -1
  57. package/src/sap/ui/unified/calendar/WeeksRow.js +219 -0
  58. package/src/sap/ui/unified/calendar/WeeksRowRenderer.js +114 -0
  59. package/src/sap/ui/unified/calendar/YearPicker.js +1 -1
  60. package/src/sap/ui/unified/calendar/YearRangePicker.js +1 -1
  61. package/src/sap/ui/unified/library.js +2 -2
  62. package/src/sap/ui/unified/messagebundle.properties +3 -0
  63. package/src/sap/ui/unified/messagebundle_ar.properties +46 -6
  64. package/src/sap/ui/unified/messagebundle_bg.properties +46 -6
  65. package/src/sap/ui/unified/messagebundle_ca.properties +47 -5
  66. package/src/sap/ui/unified/messagebundle_cnr.properties +46 -6
  67. package/src/sap/ui/unified/messagebundle_cs.properties +47 -5
  68. package/src/sap/ui/unified/messagebundle_cy.properties +46 -6
  69. package/src/sap/ui/unified/messagebundle_da.properties +48 -6
  70. package/src/sap/ui/unified/messagebundle_de.properties +49 -9
  71. package/src/sap/ui/unified/messagebundle_el.properties +46 -6
  72. package/src/sap/ui/unified/messagebundle_en.properties +46 -6
  73. package/src/sap/ui/unified/messagebundle_en_GB.properties +46 -6
  74. package/src/sap/ui/unified/messagebundle_en_US_saprigi.properties +48 -6
  75. package/src/sap/ui/unified/messagebundle_es.properties +46 -6
  76. package/src/sap/ui/unified/messagebundle_es_MX.properties +54 -13
  77. package/src/sap/ui/unified/messagebundle_et.properties +46 -6
  78. package/src/sap/ui/unified/messagebundle_fi.properties +47 -5
  79. package/src/sap/ui/unified/messagebundle_fr.properties +46 -6
  80. package/src/sap/ui/unified/messagebundle_fr_CA.properties +46 -6
  81. package/src/sap/ui/unified/messagebundle_hi.properties +46 -6
  82. package/src/sap/ui/unified/messagebundle_hr.properties +47 -5
  83. package/src/sap/ui/unified/messagebundle_hu.properties +46 -6
  84. package/src/sap/ui/unified/messagebundle_id.properties +46 -6
  85. package/src/sap/ui/unified/messagebundle_it.properties +46 -6
  86. package/src/sap/ui/unified/messagebundle_iw.properties +47 -5
  87. package/src/sap/ui/unified/messagebundle_ja.properties +46 -6
  88. package/src/sap/ui/unified/messagebundle_kk.properties +46 -6
  89. package/src/sap/ui/unified/messagebundle_ko.properties +46 -6
  90. package/src/sap/ui/unified/messagebundle_lt.properties +50 -10
  91. package/src/sap/ui/unified/messagebundle_lv.properties +46 -6
  92. package/src/sap/ui/unified/messagebundle_mk.properties +46 -6
  93. package/src/sap/ui/unified/messagebundle_ms.properties +46 -6
  94. package/src/sap/ui/unified/messagebundle_nl.properties +47 -5
  95. package/src/sap/ui/unified/messagebundle_no.properties +46 -6
  96. package/src/sap/ui/unified/messagebundle_pl.properties +46 -6
  97. package/src/sap/ui/unified/messagebundle_pt.properties +46 -6
  98. package/src/sap/ui/unified/messagebundle_pt_PT.properties +46 -6
  99. package/src/sap/ui/unified/messagebundle_ro.properties +46 -6
  100. package/src/sap/ui/unified/messagebundle_ru.properties +47 -5
  101. package/src/sap/ui/unified/messagebundle_sh.properties +46 -6
  102. package/src/sap/ui/unified/messagebundle_sk.properties +47 -5
  103. package/src/sap/ui/unified/messagebundle_sl.properties +46 -6
  104. package/src/sap/ui/unified/messagebundle_sr.properties +46 -6
  105. package/src/sap/ui/unified/messagebundle_sv.properties +47 -5
  106. package/src/sap/ui/unified/messagebundle_th.properties +46 -6
  107. package/src/sap/ui/unified/messagebundle_tr.properties +47 -5
  108. package/src/sap/ui/unified/messagebundle_uk.properties +46 -6
  109. package/src/sap/ui/unified/messagebundle_vi.properties +49 -7
  110. package/src/sap/ui/unified/messagebundle_zh_CN.properties +46 -6
  111. package/src/sap/ui/unified/messagebundle_zh_TW.properties +46 -6
  112. package/src/sap/ui/unified/themes/base/Calendar.less +148 -38
  113. package/src/sap/ui/unified/themes/base/CalendarDateInterval.less +13 -1
  114. package/src/sap/ui/unified/themes/base/CalendarTimeInterval.less +17 -0
  115. package/src/sap/ui/unified/themes/base/FileUploader.less +25 -1
  116. package/src/sap/ui/unified/themes/base/IndexPicker.less +13 -8
  117. package/src/sap/ui/unified/themes/sap_hcb/base_Calendar.less +2 -1
@@ -266,9 +266,10 @@ sap.ui.define([
266
266
  };
267
267
 
268
268
  CalendarRowRenderer.renderInterval = function(oRm, oRow, iInterval, iWidth, aIntervalHeaders, aNonWorkingItems, iStartOffset, iNonWorkingMax, aNonWorkingSubItems, iSubStartOffset, iNonWorkingSubMax, bFirstOfType, bLastOfType){
269
- const oStartDateInterval = oRow.getStartDate();
269
+ const oStartDateInterval = UI5Date.getInstance(oRow.getStartDate());
270
270
  const oCellStartDate = UI5Date.getInstance(oStartDateInterval);
271
271
  oCellStartDate.setHours(iInterval + iStartOffset, 0, 0, 0);
272
+ oStartDateInterval.setHours(oStartDateInterval.getHours() + iInterval);
272
273
 
273
274
  var sId = oRow.getId() + "-AppsInt" + iInterval;
274
275
  var i;
@@ -18,6 +18,7 @@ sap.ui.define([
18
18
  './calendar/DatesRow',
19
19
  './calendar/MonthPicker',
20
20
  './calendar/YearPicker',
21
+ './calendar/WeeksRow',
21
22
  'sap/ui/core/date/UniversalDate',
22
23
  './library',
23
24
  'sap/ui/core/format/DateFormat',
@@ -29,7 +30,8 @@ sap.ui.define([
29
30
  "sap/base/Log",
30
31
  "sap/ui/unified/DateRange",
31
32
  "sap/ui/core/date/UI5Date",
32
- "sap/ui/unified/Calendar"
33
+ "sap/ui/unified/Calendar",
34
+ "sap/ui/unified/library"
33
35
  ], function(
34
36
  Formatting,
35
37
  Localization,
@@ -43,6 +45,7 @@ sap.ui.define([
43
45
  DatesRow,
44
46
  MonthPicker,
45
47
  YearPicker,
48
+ WeeksRow,
46
49
  UniversalDate,
47
50
  library,
48
51
  DateFormat,
@@ -54,10 +57,13 @@ sap.ui.define([
54
57
  Log,
55
58
  DateRange,
56
59
  UI5Date,
57
- Calendar
60
+ Calendar,
61
+ unifiedLibrary
58
62
  ) {
59
63
  "use strict";
60
64
 
65
+ const CalendarIntervalType = unifiedLibrary.CalendarIntervalType;
66
+
61
67
  /*
62
68
  * Inside the CalendarTimeInterval UniversalDate objects are used. But in the API JS dates are used.
63
69
  * So conversion must be done on API functions.
@@ -72,7 +78,7 @@ sap.ui.define([
72
78
  * @class
73
79
  * Calendar with granularity of time items displayed in one line.
74
80
  * @extends sap.ui.core.Control
75
- * @version 1.144.0
81
+ * @version 1.145.1
76
82
  *
77
83
  * @constructor
78
84
  * @public
@@ -178,7 +184,8 @@ sap.ui.define([
178
184
  timesRow : {type : "sap.ui.unified.calendar.TimesRow", multiple : false, visibility : "hidden"},
179
185
  datesRow : {type : "sap.ui.unified.calendar.Month", multiple : false, visibility : "hidden"},
180
186
  monthPicker : {type : "sap.ui.unified.calendar.MonthPicker", multiple : false, visibility : "hidden"},
181
- yearPicker : {type : "sap.ui.unified.calendar.YearPicker", multiple : false, visibility : "hidden"}
187
+ yearPicker : {type : "sap.ui.unified.calendar.YearPicker", multiple : false, visibility : "hidden"},
188
+ weeksRow : {type : "sap.ui.unified.calendar.WeeksRow", multiple : false, visibility : "hidden"}
182
189
 
183
190
  },
184
191
  associations: {
@@ -253,6 +260,8 @@ sap.ui.define([
253
260
 
254
261
  this._initializeYearPicker();
255
262
 
263
+ this._initializeWeeksRow();
264
+
256
265
  this.setPickerPopup(false); // to initialize DatesRow
257
266
 
258
267
  this._iItemsHead = 15; // if more than this number of items, day information are displayed on top of items
@@ -295,6 +304,13 @@ sap.ui.define([
295
304
  oYearPicker._setSelectedDatesControlOrigin(this);
296
305
  };
297
306
 
307
+ CalendarTimeInterval.prototype._initializeWeeksRow = function() {
308
+ const oWeeksRow = new WeeksRow(this.getId() + "-WeeksRow", {
309
+ visible: false
310
+ });
311
+ this.setAggregation("weeksRow", oWeeksRow);
312
+ };
313
+
298
314
  CalendarTimeInterval.prototype._createDatesRow = function() {
299
315
  var oDatesRow = new DatesRow(this.getId() + "--DatesRow", {
300
316
  days: 18,
@@ -974,6 +990,10 @@ sap.ui.define([
974
990
  Control.prototype.setProperty.apply(this, arguments);
975
991
 
976
992
  if (sPropName === "_currentPicker") {
993
+ const oWeeksRow = this.getAggregation("weeksRow");
994
+ if (oWeeksRow) {
995
+ oWeeksRow.setVisible(false);
996
+ }
977
997
  switch (sPropValue) {
978
998
  case "timesRow": this._iMode = 0; break;
979
999
  case "datesRow": this._iMode = 1; break;
@@ -1014,7 +1034,13 @@ sap.ui.define([
1014
1034
  } else {
1015
1035
  oDate.setUTCDate(oDate.getUTCDate() - iDays);
1016
1036
  }
1037
+
1017
1038
  _setDateInDatesRow.call(this, oDate);
1039
+ const oWeeksRow = this.getAggregation("weeksRow");
1040
+ if (oWeeksRow) {
1041
+ oDate.setDate(oDate.getDate() - iDays + 1);
1042
+ oWeeksRow.setStartDate(CalendarUtils._createLocalDate(oDate, false));
1043
+ }
1018
1044
  }
1019
1045
  break;
1020
1046
 
@@ -1079,6 +1105,11 @@ sap.ui.define([
1079
1105
  oDate.setUTCDate(oDate.getUTCDate() + iDays);
1080
1106
  }
1081
1107
  _setDateInDatesRow.call(this, oDate);
1108
+ const oWeeksRow = this.getAggregation("weeksRow");
1109
+ if (oWeeksRow) {
1110
+ oDate.setDate(oDate.getDate() - iDays + 1);
1111
+ oWeeksRow.setStartDate(CalendarUtils._createLocalDate(oDate, false));
1112
+ }
1082
1113
  }
1083
1114
 
1084
1115
  break;
@@ -1256,6 +1287,26 @@ sap.ui.define([
1256
1287
  this._getCalendar()._closePickers();
1257
1288
  }
1258
1289
 
1290
+ CalendarTimeInterval.prototype._showWeeksRow = function() {
1291
+ const oWeeksRow = this.getAggregation("weeksRow");
1292
+ if (!oWeeksRow) {
1293
+ return;
1294
+ }
1295
+
1296
+ const oDatesRow = this.getAggregation("datesRow");
1297
+ if (oDatesRow) {
1298
+ oWeeksRow.setInterval(oDatesRow.getDays());
1299
+ oWeeksRow.setStartDate(oDatesRow.getStartDate());
1300
+ oWeeksRow.setPrimaryCalendarType(oDatesRow.getPrimaryCalendarType());
1301
+ oWeeksRow.setShowWeekNumbers(oDatesRow.getShowWeekNumbers());
1302
+ oWeeksRow.setViewKey(CalendarIntervalType.Day);
1303
+ }
1304
+
1305
+ oWeeksRow.setVisible(true);
1306
+
1307
+ return oWeeksRow;
1308
+ };
1309
+
1259
1310
  /**
1260
1311
  * Shows an embedded day Picker.
1261
1312
  * This function assumes there is a "datesRow" aggregation.
@@ -1292,7 +1343,7 @@ sap.ui.define([
1292
1343
  _setDateInDatesRow.call(this, oDate);
1293
1344
 
1294
1345
  this._iMode = 1;
1295
-
1346
+ this._showWeeksRow();
1296
1347
  }
1297
1348
 
1298
1349
  /**
@@ -1591,7 +1642,10 @@ sap.ui.define([
1591
1642
  }
1592
1643
 
1593
1644
  function _handleButton0(oEvent){
1594
-
1645
+ var oWeeksRow = this.getAggregation("weeksRow");
1646
+ if (oWeeksRow) {
1647
+ oWeeksRow.setVisible(false);
1648
+ }
1595
1649
  if (this._iMode != 1) {
1596
1650
  _showDayPicker.call(this);
1597
1651
  } else {
@@ -70,7 +70,7 @@ sap.ui.define(["sap/ui/core/Lib"],
70
70
  oRm.class("sapUiCalContent");
71
71
  oRm.openEnd();
72
72
  oRm.renderControl(oCal.getAggregation(oCal.getProperty("_currentPicker")));
73
-
73
+ oRm.renderControl(oCal.getAggregation("weeksRow"));
74
74
  oRm.close("div");
75
75
 
76
76
  oRm.openStart("button", sId + "-cancel");
@@ -39,7 +39,7 @@ sap.ui.define(['sap/ui/unified/calendar/CalendarUtils', 'sap/ui/unified/calendar
39
39
  * its start date to the first date of the same week as the date the user chose.
40
40
  *
41
41
  * @extends sap.ui.unified.CalendarDateInterval
42
- * @version 1.144.0
42
+ * @version 1.145.1
43
43
  *
44
44
  * @constructor
45
45
  * @private
@@ -72,7 +72,7 @@ sap.ui.define([
72
72
  * @extends sap.ui.core.Control
73
73
  *
74
74
  * @author SAP SE
75
- * @version 1.144.0
75
+ * @version 1.145.1
76
76
  *
77
77
  * @constructor
78
78
  * @public
@@ -49,7 +49,7 @@ sap.ui.define([
49
49
  * A thin wrapper over {@link sap.ui.unified.ColorPicker} allowing the latter to be used in a popover.
50
50
  *
51
51
  * @extends sap.ui.core.Control
52
- * @version 1.144.0
52
+ * @version 1.145.1
53
53
  *
54
54
  * @constructor
55
55
  * @public
@@ -31,7 +31,7 @@ sap.ui.define([
31
31
  * @extends sap.ui.core.Control
32
32
  *
33
33
  * @author SAP SE
34
- * @version 1.144.0
34
+ * @version 1.145.1
35
35
  *
36
36
  * @constructor
37
37
  * @public
@@ -58,7 +58,7 @@ sap.ui.define([
58
58
  * @extends sap.ui.core.Control
59
59
  *
60
60
  * @author SAP SE
61
- * @version 1.144.0
61
+ * @version 1.145.1
62
62
  *
63
63
  * @constructor
64
64
  * @public
@@ -14,7 +14,7 @@ sap.ui.define(["sap/m/library", "sap/ui/core/Lib"],
14
14
  /**
15
15
  * Currency renderer.
16
16
  *
17
- * @version 1.144.0
17
+ * @version 1.145.1
18
18
  * @namespace
19
19
  */
20
20
  var CurrencyRenderer = {
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/core/Element', './library', 'sap/ui/unified/calendar/Cale
20
20
  * @class
21
21
  * Date range for use in DatePicker
22
22
  * @extends sap.ui.core.Element
23
- * @version 1.144.0
23
+ * @version 1.145.1
24
24
  *
25
25
  * @constructor
26
26
  * @public
@@ -25,7 +25,7 @@ sap.ui.define(['./DateRange', './library'],
25
25
  * @class
26
26
  * Date range with calendar day type information. Used to visualize special days in the Calendar.
27
27
  * @extends sap.ui.unified.DateRange
28
- * @version 1.144.0
28
+ * @version 1.145.1
29
29
  *
30
30
  * @constructor
31
31
  * @public
@@ -79,7 +79,7 @@ sap.ui.define([
79
79
  * @implements sap.ui.core.IFormContent, sap.ui.unified.IProcessableBlobs
80
80
  *
81
81
  * @author SAP SE
82
- * @version 1.144.0
82
+ * @version 1.145.1
83
83
  *
84
84
  * @constructor
85
85
  * @public
@@ -761,7 +761,7 @@ sap.ui.define([
761
761
  if (sTooltip) {
762
762
  this.oFileUpload.setAttribute("title", sTooltip);
763
763
  } else {
764
- this.oFileUpload.setAttribute("title", this.getValue() ? this.getValue() : this._getNoFileChosenText());
764
+ this.oFileUpload.setAttribute("title", this.getValue() ? this.getValue() : this._getEffectivePlaceholder());
765
765
  }
766
766
  }
767
767
  return this;
@@ -820,7 +820,7 @@ sap.ui.define([
820
820
 
821
821
  if (!oBrowseIcon) {
822
822
  oBrowseIcon = new Icon(this.getId() + "-fu_browse_icon", {
823
- src: "sap-icon://value-help",
823
+ src: "sap-icon://browse-folder",
824
824
  press: this._onBrowseIconPress.bind(this),
825
825
  noTabStop: true
826
826
  });
@@ -1363,20 +1363,26 @@ sap.ui.define([
1363
1363
  // to change the value of file uploader INPUT elements)
1364
1364
  this.setProperty("value", sValue, bUpload);
1365
1365
  if (this.oFileUpload && !this.getTooltip_AsString()) {
1366
- this.oFileUpload.setAttribute("title", sValue ? sValue : this._getNoFileChosenText());
1366
+ this.oFileUpload.setAttribute("title", sValue ? sValue : this._getEffectivePlaceholder());
1367
1367
  }
1368
1368
 
1369
1369
  const oForm = this.getDomRef("fu_form");
1370
1370
 
1371
1371
  //reseting the input fields if setValue("") is called, also for undefined and null
1372
- if (this.oFileUpload && /* is visible: */ oForm && !sValue) {
1372
+ if (this.oFileUpload && !sValue) {
1373
1373
  // some browsers do not allow to clear the value of the fileuploader control
1374
1374
  // therefore we utilize the form and reset the values inside this form and
1375
1375
  // apply the additionalData again afterwards
1376
- oForm.reset();
1376
+ if (oForm) {
1377
+ oForm.reset();
1378
+ //keep the additional data on the form
1379
+ jQuery(this.FUDataEl).val(this.getAdditionalData());
1380
+ } else {
1381
+ // If the form doesn't exist (e.g., FileUploader is invisible),
1382
+ // directly clear the files using DataTransfer
1383
+ this.oFileUpload.files = new DataTransfer().files;
1384
+ }
1377
1385
  this._selectedFileNames = [];
1378
- //keep the additional data on the form
1379
- jQuery(this.FUDataEl).val(this.getAdditionalData());
1380
1386
  }
1381
1387
  // only fire event when triggered by user interaction
1382
1388
  if (bFireEvent) {
@@ -2185,19 +2191,6 @@ sap.ui.define([
2185
2191
  }
2186
2192
  };
2187
2193
 
2188
- /**
2189
- * Helper to retrieve the I18N text for the tooltip when there is no file chosen.
2190
- * @private
2191
- */
2192
- FileUploader.prototype._getNoFileChosenText = function() {
2193
- // as the text is the same for all FileUploaders, get it only once
2194
- if (!FileUploader.prototype._sNoFileChosenText) {
2195
- FileUploader.prototype._sNoFileChosenText = this.oRb.getText("FILEUPLOADER_NO_FILE_CHOSEN");
2196
- }
2197
-
2198
- return FileUploader.prototype._sNoFileChosenText ? FileUploader.prototype._sNoFileChosenText : "No file chosen";
2199
- };
2200
-
2201
2194
  /**
2202
2195
  * Checks whether the Tokenizer is present and has tokens.
2203
2196
  * @private
@@ -2312,7 +2305,15 @@ sap.ui.define([
2312
2305
  bEnabled = this.getEnabled(),
2313
2306
  sAriaRoleDescription = this._getAriaRoleDescription(),
2314
2307
  aCombinedLabels = this._getCombinedLabelIds(),
2315
- aAriaDescribedBy = this._getAriaDescribedByIds();
2308
+ aAriaDescribedBy = this._getAriaDescribedByIds(),
2309
+ sTooltip = this.getTooltip_AsString(),
2310
+ sValue = this.getValue(),
2311
+ sLabel = sTooltip || sValue || this._getEffectivePlaceholder();
2312
+
2313
+ if (sLabel) {
2314
+ aAttributes.push(`title="${encodeXML(sLabel)}" `);
2315
+ aAttributes.push(`aria-label="${encodeXML(sLabel)}" `);
2316
+ }
2316
2317
 
2317
2318
  // Aria-labelledby
2318
2319
  if (aCombinedLabels.length > 0) {
@@ -2377,13 +2378,6 @@ sap.ui.define([
2377
2378
 
2378
2379
  aFileUpload.push('size="1" ');
2379
2380
 
2380
- if (this.getTooltip_AsString() ) {
2381
- aFileUpload.push('title="' + encodeXML(this.getTooltip_AsString()) + '" ');
2382
- } else {
2383
- // only if there is no tooltip, then set value or default tooltip as fallback
2384
- aFileUpload.push('title="' + encodeXML(this.getValue() ? this.getValue() : this._getNoFileChosenText()) + '" ');
2385
- }
2386
-
2387
2381
  if (!this.getEnabled()) {
2388
2382
  aFileUpload.push('disabled="disabled" ');
2389
2383
  }
@@ -22,7 +22,7 @@ sap.ui.define(['sap/ui/core/Element', './library'],
22
22
  * @extends sap.ui.core.Element
23
23
  *
24
24
  * @author SAP SE
25
- * @version 1.144.0
25
+ * @version 1.145.1
26
26
  *
27
27
  * @constructor
28
28
  * @public
@@ -140,15 +140,6 @@ sap.ui.define([
140
140
  oRm.renderControl(oFileUploader.oBrowse);
141
141
  }
142
142
 
143
- if (bButtonOnly && oFileUploader._selectedFileNames.length === 0) {
144
- const sName = oFileUploader.getId() + "-fu-no-file-chosen";
145
- oRm.openStart("div", sName);
146
- oRm.class("sapUiPseudoInvisibleText");
147
- oRm.openEnd();
148
- oRm.text(oFileUploader._getNoFileChosenText());
149
- oRm.close("div");
150
- }
151
-
152
143
  oRm.openStart("span", oFileUploader.getId() + "-AccDescr");
153
144
  oRm.class("sapUiInvisibleText");
154
145
  oRm.attr("aria-hidden", "true");
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/core/Element', './library'],
20
20
  * @extends sap.ui.core.Element
21
21
  *
22
22
  * @author SAP SE
23
- * @version 1.144.0
23
+ * @version 1.145.1
24
24
  *
25
25
  * @constructor
26
26
  * @since 1.52
@@ -70,7 +70,7 @@ sap.ui.define([
70
70
  * @implements sap.ui.core.IContextMenu
71
71
  *
72
72
  * @author SAP SE
73
- * @version 1.144.0
73
+ * @version 1.145.1
74
74
  * @since 1.21.0
75
75
  *
76
76
  * @constructor
@@ -39,7 +39,7 @@ sap.ui.define([
39
39
  * @implements sap.ui.unified.IMenuItem
40
40
  *
41
41
  * @author SAP SE
42
- * @version 1.144.0
42
+ * @version 1.145.1
43
43
  * @since 1.21.0
44
44
  *
45
45
  * @constructor
@@ -23,7 +23,7 @@ sap.ui.define(['sap/ui/core/Element', './library', 'sap/ui/core/IconPool', 'sap/
23
23
  * @extends sap.ui.core.Element
24
24
  *
25
25
  * @author SAP SE
26
- * @version 1.144.0
26
+ * @version 1.145.1
27
27
  * @since 1.21.0
28
28
  *
29
29
  * @constructor
@@ -30,7 +30,7 @@ sap.ui.define([
30
30
  * @implements sap.ui.unified.IMenuItem
31
31
  *
32
32
  * @author SAP SE
33
- * @version 1.144.0
33
+ * @version 1.145.1
34
34
  * @since 1.127.0
35
35
  *
36
36
  * @constructor
@@ -15,7 +15,7 @@ sap.ui.define(["sap/ui/core/ControlBehavior"],
15
15
  * Menu renderer.
16
16
  * @author SAP - TD Core UI&AM UI Infra
17
17
  *
18
- * @version 1.144.0
18
+ * @version 1.145.1
19
19
  * @namespace
20
20
  */
21
21
  var MenuRenderer = {
@@ -53,7 +53,7 @@ sap.ui.define([
53
53
  * @implements sap.ui.unified.IMenuItem
54
54
  *
55
55
  * @author SAP SE
56
- * @version 1.144.0
56
+ * @version 1.145.1
57
57
  * @since 1.21.0
58
58
  *
59
59
  * @constructor
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  * @class
25
25
  * NonWorkingPeriod
26
26
  * @extends sap.ui.core.Element
27
- * @version 1.144.0
27
+ * @version 1.145.1
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -24,7 +24,7 @@ sap.ui.define([
24
24
  *
25
25
  * Applications can inherit from this element to add own fields.
26
26
  * @extends sap.ui.unified.NonWorkingPeriod
27
- * @version 1.144.0
27
+ * @version 1.145.1
28
28
  *
29
29
  * @constructor
30
30
  * @public
@@ -25,7 +25,7 @@ sap.ui.define(['./ShellHeader', './ShellLayout', './library', './ShellRenderer']
25
25
  * @extends sap.ui.unified.ShellLayout
26
26
  *
27
27
  * @author SAP SE
28
- * @version 1.144.0
28
+ * @version 1.145.1
29
29
  *
30
30
  * @constructor
31
31
  * @public
@@ -28,7 +28,7 @@ sap.ui.define([
28
28
  * @extends sap.ui.core.Element
29
29
  *
30
30
  * @author SAP SE
31
- * @version 1.144.0
31
+ * @version 1.145.1
32
32
  *
33
33
  * @constructor
34
34
  * @public
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @extends sap.ui.core.Element
28
28
  *
29
29
  * @author SAP SE
30
- * @version 1.144.0
30
+ * @version 1.145.1
31
31
  *
32
32
  * @constructor
33
33
  * @public
@@ -56,7 +56,7 @@ sap.ui.define([
56
56
  * @extends sap.ui.core.Control
57
57
  *
58
58
  * @author SAP SE
59
- * @version 1.144.0
59
+ * @version 1.145.1
60
60
  *
61
61
  * @constructor
62
62
  * @public
@@ -46,7 +46,7 @@ sap.ui.define([
46
46
  * @extends sap.ui.core.Control
47
47
  *
48
48
  * @author SAP SE
49
- * @version 1.144.0
49
+ * @version 1.145.1
50
50
  *
51
51
  * @constructor
52
52
  * @public
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.ui.core.Control
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.144.0
37
+ * @version 1.145.1
38
38
  *
39
39
  * @constructor
40
40
  * @public
@@ -23,7 +23,7 @@ sap.ui.define([
23
23
  * @class
24
24
  * Time range for use in <code>NonWorkingPeriod</code>
25
25
  * @extends sap.ui.core.Element
26
- * @version 1.144.0
26
+ * @version 1.145.1
27
27
  *
28
28
  * @constructor
29
29
  * @public
@@ -266,6 +266,23 @@ sap.ui.define([
266
266
  return oNewDate;
267
267
  };
268
268
 
269
+ /**
270
+ * Gets the final day of a specified month.
271
+ * This function processes date values in UTC to produce timezone agnostic results.
272
+ *
273
+ * @param {Date|module:sap/ui/core/date/UI5Date} oDate date instance
274
+ * @returns {Date|module:sap/ui/core/date/UI5Date} date instance corresponding to the last date of the month
275
+ * @public
276
+ */
277
+ CalendarUtils.getLastDateOfMonth = function(oDate) {
278
+ const oNewDate = new UniversalDate(oDate.getTime());
279
+ oNewDate.setDate(1);
280
+ oNewDate.setMonth(oNewDate.getMonth() + 1);
281
+ oNewDate.setDate(oNewDate.getDate() - 1);
282
+
283
+ return oNewDate;
284
+ };
285
+
269
286
  /**
270
287
  * Calculates the number of weeks for a given year using the current locale settings
271
288
  * @param {int} iYear The target year of interest in format (YYYY)
@@ -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.144.0
42
+ * @version 1.145.1
43
43
  *
44
44
  * @constructor
45
45
  * @public
@@ -52,7 +52,6 @@ sap.ui.define(["sap/base/i18n/date/CalendarType", "sap/ui/core/Lib", 'sap/ui/cor
52
52
  DatesRowRenderer.renderCustomIntervals(oRm, oDatesRow);
53
53
  } else {
54
54
  MonthRenderer.renderMonth.apply(this, arguments);
55
- this.renderWeekNumbers(oRm, oDatesRow);
56
55
  }
57
56
  };
58
57
 
@@ -91,43 +90,6 @@ sap.ui.define(["sap/base/i18n/date/CalendarType", "sap/ui/core/Lib", 'sap/ui/cor
91
90
  oRm.close("div");
92
91
  };
93
92
 
94
- /**
95
- * Renders the week numbers in their own container.
96
- * @param {sap.ui.core.RenderManager} oRm The RenderManager that can be used for writing to the render output buffer
97
- * @param {sap.ui.unified.calendar.DatesRow} oDatesRow The row which will be rendered
98
- * @since 1.52
99
- */
100
- DatesRowRenderer.renderWeekNumbers = function (oRm, oDatesRow) {
101
- var oResourceBundle,
102
- iDays,
103
- iDaysWidth,
104
- aWeekNumbers;
105
-
106
- if (oDatesRow.getShowWeekNumbers() && oDatesRow._getPrimaryCalendarType() === CalendarType.Gregorian) {
107
- oResourceBundle = Library.getResourceBundleFor("sap.ui.unified");
108
-
109
- oRm.openStart("div", oDatesRow.getId() + "-weeks");
110
- oRm.class("sapUiCalRowWeekNumbers");
111
- oRm.openEnd();
112
-
113
- iDays = oDatesRow.getDays();
114
- iDaysWidth = 100 / iDays;
115
- aWeekNumbers = oDatesRow.getWeekNumbers();
116
-
117
- aWeekNumbers.forEach(function(oWeek) {
118
- oRm.openStart("div", oDatesRow.getId() + "-week-" + oWeek.number + "-text");
119
- oRm.class('sapUiCalRowWeekNumber');
120
- oRm.style("width", oWeek.len * iDaysWidth + "%");
121
- oRm.attr("data-sap-ui-week", oWeek.number);
122
- oRm.openEnd();
123
- oRm.text(oResourceBundle.getText('CALENDAR_DATES_ROW_WEEK_NUMBER', [oWeek.number]));
124
- oRm.close("div");
125
- });
126
-
127
- oRm.close("div");
128
- }
129
- };
130
-
131
93
  DatesRowRenderer.renderDummyCell = function() {};
132
94
 
133
95
  /**
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  *
28
28
  * <b>Note:</b> This is used inside the calendar. Not for standalone usage
29
29
  * @extends sap.ui.core.Control
30
- * @version 1.144.0
30
+ * @version 1.145.1
31
31
  *
32
32
  * @constructor
33
33
  * @public