@openui5/sap.ui.unified 1.91.0 → 1.93.2

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 (61) hide show
  1. package/.reuse/dep5 +46 -0
  2. package/THIRDPARTY.txt +59 -1
  3. package/package.json +2 -2
  4. package/src/sap/ui/unified/.library +1 -1
  5. package/src/sap/ui/unified/Calendar.js +18 -11
  6. package/src/sap/ui/unified/CalendarAppointment.js +41 -1
  7. package/src/sap/ui/unified/CalendarDateInterval.js +5 -5
  8. package/src/sap/ui/unified/CalendarLegend.js +1 -1
  9. package/src/sap/ui/unified/CalendarLegendItem.js +1 -1
  10. package/src/sap/ui/unified/CalendarMonthInterval.js +10 -10
  11. package/src/sap/ui/unified/CalendarOneMonthInterval.js +1 -1
  12. package/src/sap/ui/unified/CalendarRow.js +20 -12
  13. package/src/sap/ui/unified/CalendarRowRenderer.js +71 -66
  14. package/src/sap/ui/unified/CalendarTimeInterval.js +11 -11
  15. package/src/sap/ui/unified/CalendarWeekInterval.js +1 -1
  16. package/src/sap/ui/unified/ColorPicker.js +2 -2
  17. package/src/sap/ui/unified/ColorPickerPopover.js +1 -1
  18. package/src/sap/ui/unified/ContentSwitcher.js +1 -1
  19. package/src/sap/ui/unified/Currency.js +2 -2
  20. package/src/sap/ui/unified/CurrencyRenderer.js +1 -1
  21. package/src/sap/ui/unified/DateRange.js +1 -1
  22. package/src/sap/ui/unified/DateTypeRange.js +1 -1
  23. package/src/sap/ui/unified/FileUploader.js +73 -90
  24. package/src/sap/ui/unified/FileUploaderParameter.js +1 -1
  25. package/src/sap/ui/unified/FileUploaderXHRSettings.js +1 -1
  26. package/src/sap/ui/unified/Menu.js +9 -6
  27. package/src/sap/ui/unified/MenuItem.js +1 -1
  28. package/src/sap/ui/unified/MenuItemBase.js +1 -1
  29. package/src/sap/ui/unified/MenuRenderer.js +6 -1
  30. package/src/sap/ui/unified/MenuTextFieldItem.js +1 -1
  31. package/src/sap/ui/unified/Shell.js +1 -1
  32. package/src/sap/ui/unified/ShellHeadItem.js +1 -1
  33. package/src/sap/ui/unified/ShellHeadUserItem.js +1 -1
  34. package/src/sap/ui/unified/ShellLayout.js +2 -2
  35. package/src/sap/ui/unified/ShellOverlay.js +8 -8
  36. package/src/sap/ui/unified/SplitContainer.js +1 -1
  37. package/src/sap/ui/unified/calendar/CustomMonthPicker.js +1 -1
  38. package/src/sap/ui/unified/calendar/DatesRow.js +21 -5
  39. package/src/sap/ui/unified/calendar/DatesRowRenderer.js +42 -3
  40. package/src/sap/ui/unified/calendar/Header.js +1 -1
  41. package/src/sap/ui/unified/calendar/IndexPicker.js +307 -0
  42. package/src/sap/ui/unified/calendar/IndexPickerRenderer.js +99 -0
  43. package/src/sap/ui/unified/calendar/Month.js +6 -5
  44. package/src/sap/ui/unified/calendar/MonthPicker.js +9 -1
  45. package/src/sap/ui/unified/calendar/MonthRenderer.js +25 -15
  46. package/src/sap/ui/unified/calendar/MonthsRow.js +2 -2
  47. package/src/sap/ui/unified/calendar/MonthsRowRenderer.js +1 -1
  48. package/src/sap/ui/unified/calendar/OneMonthDatesRow.js +1 -1
  49. package/src/sap/ui/unified/calendar/TimesRow.js +4 -4
  50. package/src/sap/ui/unified/calendar/TimesRowRenderer.js +1 -1
  51. package/src/sap/ui/unified/calendar/YearPicker.js +1 -1
  52. package/src/sap/ui/unified/calendar/YearRangePicker.js +1 -1
  53. package/src/sap/ui/unified/library.js +4 -3
  54. package/src/sap/ui/unified/messagebundle.properties +1 -1
  55. package/src/sap/ui/unified/themes/base/Calendar.less +19 -12
  56. package/src/sap/ui/unified/themes/base/CalendarRow.less +5 -0
  57. package/src/sap/ui/unified/themes/base/Currency.less +3 -5
  58. package/src/sap/ui/unified/themes/base/IndexPicker.less +36 -0
  59. package/src/sap/ui/unified/themes/base/ShellHeader.less +0 -21
  60. package/src/sap/ui/unified/themes/base/ShellOverlay.less +0 -4
  61. package/src/sap/ui/unified/themes/base/library.source.less +1 -0
package/.reuse/dep5 CHANGED
@@ -352,6 +352,11 @@ Copyright: 2006 Google Inc.
352
352
  License: Apache-2.0
353
353
  Comment: these files belong to: google-code-prettify
354
354
 
355
+ Files: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/highlight.js/*
356
+ Copyright: 2006-2020, Ivan Sagalaev
357
+ License: BSD-3-Clause
358
+ Comment: these files belong to: highlight.js
359
+
355
360
  Files: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/elasticlunr.js
356
361
  Copyright: 2017 Wei Song and Oliver Nightingale
357
362
  License: MIT
@@ -411,6 +416,35 @@ License: Apache-2.0 and MIT
411
416
  Comment: these files contain content from SAP and BooleanExpressionEvaluator: BoolExprTool.js is authored by SAP, but partly inspired by BooleanExpressionEvaluator
412
417
 
413
418
 
419
+ # Library: sap.ui.webc.common:
420
+
421
+ Files: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/theme-base/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/localization/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons/*.* src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/*.*
422
+ Copyright: SAP
423
+ License: Apache-2.0
424
+ Comment: these files belong to: UI5 Web Components
425
+
426
+ Files: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/lit-html/*.*
427
+ Copyright: Google LLC
428
+ License: BSD-3-Clause
429
+ Comment: these files belong to: lit-html
430
+
431
+
432
+ # Library: sap.ui.webc.fiori:
433
+
434
+ Files: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/thirdparty/*.*
435
+ Copyright: SAP
436
+ License: Apache-2.0
437
+ Comment: these files belong to: UI5 Web Components
438
+
439
+
440
+ # Library: sap.ui.webc.main:
441
+
442
+ Files: src/sap.ui.webc.main/src/sap/ui/webc/main/thirdparty/*.*
443
+ Copyright: SAP
444
+ License: Apache-2.0
445
+ Comment: these files belong to: UI5 Web Components
446
+
447
+
414
448
  # Outside of Libraries:
415
449
 
416
450
  Files: src/testsuite-utils/src/main/resources/META-INF/less/less.js
@@ -423,3 +457,15 @@ Copyright: 2015-2017 Evgeny Poberezkin
423
457
  License: MIT
424
458
  Comment: these files belong to: ajv
425
459
 
460
+ Files: lib/jsdoc/ui5/plugin.js
461
+ Copyright:
462
+ 2009-2021 SAP SE or an SAP affiliate company and OpenUI5 contributors
463
+ 2011-present Michael Mathews micmath@gmail.com and the contributors to JSDoc
464
+ License: Apache-2.0
465
+ Comment: these files contain content from SAP and JSDoc 3: plugin.js is overall written by SAP, but contains code taken from JSDoc 3.6.7 (see the respective comments)
466
+
467
+ Files: src/sap.ui.core/src/sap/ui/core/themes/base/base.less src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
468
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
469
+ License: Apache-2.0
470
+ Comment: these files belong to: SAP Theming Base Content
471
+
package/THIRDPARTY.txt CHANGED
@@ -197,7 +197,7 @@ License: BSD-3-Clause
197
197
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
198
198
  Contained in: src/sap.ui.core/src/sap/ui/thirdparty/sinon-qunit.js
199
199
 
200
- Component: URI.js, version: 1.19.6
200
+ Component: URI.js, version: 1.19.7
201
201
  Copyright: Rodney Rehm
202
202
  License: MIT
203
203
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
@@ -330,6 +330,12 @@ License: Apache-2.0
330
330
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
331
331
  Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/google-code-prettify/*
332
332
 
333
+ Component: highlight.js, version: 10.4.1
334
+ Copyright: 2006-2020, Ivan Sagalaev
335
+ License: BSD-3-Clause
336
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
337
+ Contained in: src/sap.ui.documentation/src/sap/ui/documentation/sdk/thirdparty/highlight.js/*
338
+
333
339
  Component: Elasticlunr, version: 0.9.5
334
340
  Copyright: 2017 Wei Song and Oliver Nightingale
335
341
  License: MIT
@@ -399,6 +405,43 @@ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
399
405
  Contained in: src/sap.ui.mdc/test/sap/ui/mdc/sample/field/filterfieldwithoperators/BoolExprTool.js
400
406
 
401
407
 
408
+ Library: sap.ui.webc.common:
409
+
410
+ Component: UI5 Web Components, version: 1.0.0-rc.12
411
+ Copyright: SAP
412
+ License: Apache-2.0
413
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
414
+ Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/base/*.*
415
+ src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/theme-base/*.*
416
+ src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/localization/*.*
417
+ src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons/*.*
418
+ src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/icons-tnt/*.*
419
+
420
+ Component: lit-html, version: 1.4.1
421
+ Copyright: Google LLC
422
+ License: BSD-3-Clause
423
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/BSD-3-Clause.txt
424
+ Contained in: src/sap.ui.webc.common/src/sap/ui/webc/common/thirdparty/lit-html/*.*
425
+
426
+
427
+ Library: sap.ui.webc.fiori:
428
+
429
+ Component: UI5 Web Components, version: 1.0.0-rc.12
430
+ Copyright: SAP
431
+ License: Apache-2.0
432
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
433
+ Contained in: src/sap.ui.webc.fiori/src/sap/ui/webc/fiori/thirdparty/*.*
434
+
435
+
436
+ Library: sap.ui.webc.main:
437
+
438
+ Component: UI5 Web Components, version: 1.0.0-rc.12
439
+ Copyright: SAP
440
+ License: Apache-2.0
441
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
442
+ Contained in: src/sap.ui.webc.main/src/sap/ui/webc/main/thirdparty/*.*
443
+
444
+
402
445
  Outside of Libraries:
403
446
 
404
447
  Component: LESS, version: 1.6.3
@@ -413,6 +456,21 @@ License: MIT
413
456
  License Text: https://github.com/SAP/openui5/blob/master/LICENSES/MIT.txt
414
457
  Contained in: ../test/sap/ui/integration/demokit/cardExplorer/webapp/thirdparty/ajv/ajv.min.js
415
458
 
459
+ Component: JSDoc 3, version: 3.6.7
460
+ Copyright: 2011-present Michael Mathews micmath@gmail.com and the contributors to JSDoc
461
+ License: Apache-2.0
462
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
463
+ Contained in: lib/jsdoc/ui5/plugin.js
464
+
465
+ Component: SAP Theming Base Content, version: 11.1.34
466
+ Copyright: SAP SE or an SAP affiliate company and Theming Base Content contributors
467
+ License: Apache-2.0
468
+ License Text: https://github.com/SAP/openui5/blob/master/LICENSES/Apache-2.0.txt
469
+ Contained in: src/sap.ui.core/src/sap/ui/core/themes/base/base.less
470
+ src/themelib_sap_belize/src/sap/ui/core/themes/*/base.less
471
+ src/themelib_sap_fiori_3/src/sap/ui/core/themes/*/base.less
472
+ src/themelib_sap_horizon/src/sap/ui/core/themes/*/base.less
473
+
416
474
 
417
475
  ALL LICENSE TEXTS:
418
476
  ==================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openui5/sap.ui.unified",
3
- "version": "1.91.0",
3
+ "version": "1.93.2",
4
4
  "description": "OpenUI5 UI Library sap.ui.unified",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "license": "Apache-2.0",
@@ -14,6 +14,6 @@
14
14
  "url": "https://github.com/SAP/openui5.git"
15
15
  },
16
16
  "dependencies": {
17
- "@openui5/sap.ui.core": "1.91.0"
17
+ "@openui5/sap.ui.core": "1.93.2"
18
18
  }
19
19
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>OpenUI5
7
7
  * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company.
8
8
  * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
9
- <version>1.91.0</version>
9
+ <version>1.93.2</version>
10
10
 
11
11
  <documentation>Unified controls intended for both, mobile and desktop scenarios</documentation>
12
12
 
@@ -70,7 +70,7 @@ sap.ui.define([
70
70
  * Basic Calendar.
71
71
  * This calendar is used for DatePickers
72
72
  * @extends sap.ui.core.Control
73
- * @version 1.91.0
73
+ * @version 1.93.2
74
74
  *
75
75
  * @constructor
76
76
  * @public
@@ -509,9 +509,9 @@ sap.ui.define([
509
509
  if (aMonths.length > 1 && oMonthDate) {
510
510
  // for more than one month - re-render same months (if already rendered once)
511
511
  oCalDate = CalendarDate.fromLocalJSDate(oMonthDate, this.getPrimaryCalendarType());
512
- }else if (aMonths.length > 1) {
512
+ } else if (aMonths.length > 1) {
513
513
  oCalDate = _determineFirstMonthDate.call(this, this._getFocusedDate());
514
- }else {
514
+ } else {
515
515
  oCalDate = oFocusedDate;
516
516
  }
517
517
 
@@ -534,7 +534,6 @@ sap.ui.define([
534
534
 
535
535
  this._updateHeader(oCalDate);
536
536
 
537
- this._iSize = 0; // initialize to recalculate new after rendering
538
537
  this._updateHeadersButtons();
539
538
 
540
539
  };
@@ -800,7 +799,7 @@ sap.ui.define([
800
799
  oMonth._bNoThemeChange = true;
801
800
  this.addAggregation("month",oMonth);
802
801
  }
803
- }else if (aMonths.length > iMonths){
802
+ } else if (aMonths.length > iMonths){
804
803
  for (i = aMonths.length; i > iMonths; i--) {
805
804
  oMonth = this.removeAggregation("month", i - 1);
806
805
  oMonth.destroy();
@@ -1060,7 +1059,7 @@ sap.ui.define([
1060
1059
  var iMonths = _getMonths.call(this);
1061
1060
  if (iMonths > 2) {
1062
1061
  return true;
1063
- }else {
1062
+ } else {
1064
1063
  return false;
1065
1064
  }
1066
1065
 
@@ -1514,7 +1513,7 @@ sap.ui.define([
1514
1513
  if (iYear < iYearMin || (iYear == iYearMin && ( !bCheckMonth || iMonth <= iMonthMin ))
1515
1514
  || (this._iMode == 1 && this._getSucessorsPickerPopup())) {
1516
1515
  oHeader.setEnabledPrevious(false);
1517
- }else {
1516
+ } else {
1518
1517
  oHeader.setEnabledPrevious(true);
1519
1518
  }
1520
1519
 
@@ -1584,7 +1583,7 @@ sap.ui.define([
1584
1583
  oFirstMonthDate.setDate(1);
1585
1584
  this._setFocusedDate(oFirstMonthDate);
1586
1585
  oFocusedDate = this._getFocusedDate();
1587
- }else {
1586
+ } else {
1588
1587
  oFocusedDate.setDate(1);
1589
1588
  }
1590
1589
 
@@ -1717,7 +1716,7 @@ sap.ui.define([
1717
1716
  for (var i = 0; i < iMonths; i++) {
1718
1717
  aMonths.push((iMonth + i) % 12);
1719
1718
  }
1720
- }else {
1719
+ } else {
1721
1720
  aMonths.push(iMonth);
1722
1721
  }
1723
1722
 
@@ -2159,7 +2158,7 @@ sap.ui.define([
2159
2158
  iMonth = oMonthPicker._focusedMonth || oMonthPicker._focusedMonth === 0 ?
2160
2159
  oMonthPicker._focusedMonth :
2161
2160
  oMonthPicker.getMonth(),
2162
- oSecondDate = Boolean(oMonthPicker._iYear) ?
2161
+ oSecondDate = oMonthPicker._iYear ?
2163
2162
  new CalendarDate(oMonthPicker._iYear, iMonth - 1, 1) :
2164
2163
  new CalendarDate(this._getFocusedDate().getYear(), iMonth - 1, 1);
2165
2164
 
@@ -2557,7 +2556,7 @@ sap.ui.define([
2557
2556
 
2558
2557
  if (this._oFocusedDate.isBefore(this._oMinDate)) {
2559
2558
  this._oFocusedDate = new CalendarDate(this._oMinDate, sCalendarType);
2560
- }else if (this._oFocusedDate.isAfter(this._oMaxDate)){
2559
+ } else if (this._oFocusedDate.isAfter(this._oMaxDate)){
2561
2560
  this._oFocusedDate = new CalendarDate(this._oMaxDate, sCalendarType);
2562
2561
  }
2563
2562
 
@@ -2571,6 +2570,12 @@ sap.ui.define([
2571
2570
  return;
2572
2571
  }
2573
2572
 
2573
+ if (iWidth === this._iPrevWidth) {
2574
+ return;
2575
+ }
2576
+
2577
+ this._iPrevWidth = iWidth;
2578
+
2574
2579
  var iOldSize = this._iSize;
2575
2580
  if (iWidth < this._iBreakPointTablet) {
2576
2581
  this._iSize = 0; // phone
@@ -2644,6 +2649,8 @@ sap.ui.define([
2644
2649
  var oMonth = aMonths[i];
2645
2650
  oMonth.setWidth(sWidth);
2646
2651
  }
2652
+
2653
+ this.invalidate();
2647
2654
  }
2648
2655
 
2649
2656
  this._setPrimaryHeaderMonthButtonText();
@@ -21,7 +21,7 @@ sap.ui.define(['./DateTypeRange', 'sap/ui/core/format/DateFormat', 'sap/ui/core/
21
21
  *
22
22
  * Applications could inherit from this element to add own fields.
23
23
  * @extends sap.ui.unified.DateTypeRange
24
- * @version 1.91.0
24
+ * @version 1.93.2
25
25
  *
26
26
  * @constructor
27
27
  * @public
@@ -78,9 +78,33 @@ sap.ui.define(['./DateTypeRange', 'sap/ui/core/format/DateFormat', 'sap/ui/core/
78
78
  * @since 1.46.0
79
79
  */
80
80
  color: {type : "sap.ui.core.CSSColor", group : "Appearance", defaultValue : null}
81
+ },
82
+ aggregations: {
83
+ /**
84
+ * Holds the content of the appointment.
85
+ *
86
+ * <b>Note </b>, If the <code>customContent</code> aggregation is added then:
87
+ *
88
+ * <ul>
89
+ * <li>The <code>title</code>, <code>text</code>, <code>description</code>, and <code>icon</code> properties
90
+ * are ignored.</li>
91
+ * <li>The application developer has to ensure, that all the accessibility requirements are met, and that
92
+ * the height of the content conforms with the height provided by the appointment.</li>
93
+ * <li>Do not use interactive controls as content, as they may trigger unwanted selection of the appointment
94
+ * and may lead to unpredictable results.</li>
95
+ * </ul>
96
+ *
97
+ * @since 1.93.0
98
+ * @experimental Since 1.93, providing only limited functionality. Also, the API might be changed in the future.
99
+ */
100
+ customContent: { type: "sap.ui.core.Control", multiple: true }
81
101
  }
82
102
  }});
83
103
 
104
+ CalendarAppointment.prototype.init = function () {
105
+ this._sAppointmentPartSuffix = null;
106
+ };
107
+
84
108
  CalendarAppointment.prototype.applyFocusInfo = function (oFocusInfo) {
85
109
 
86
110
  // let the parent handle the focus assignment after rerendering
@@ -213,6 +237,22 @@ sap.ui.define(['./DateTypeRange', 'sap/ui/core/format/DateFormat', 'sap/ui/core/
213
237
  ].join(",") + ", 0.2)";
214
238
  };
215
239
 
240
+ CalendarAppointment.prototype._setAppointmentPartSuffix = function (sSuffix) {
241
+ this._sAppointmentPartSuffix = sSuffix;
242
+ return this;
243
+ };
244
+
245
+ CalendarAppointment.prototype.getDomRef = function (sSuffix) {
246
+ if (document.getElementById(this.getId())) {
247
+ return document.getElementById(sSuffix ? this.getId() + "-" + sSuffix : this.getId());
248
+ } else if (this._sAppointmentPartSuffix) {
249
+ return document.getElementById(sSuffix ? this.getId() + "-" + this._sAppointmentPartSuffix + "-" + sSuffix : this.getId() + "-" + this._sAppointmentPartSuffix);
250
+ }
251
+
252
+ var oAppointmentParts = document.querySelectorAll(".sapUiCalendarRowApps[id^=" + this. getId() + "]");
253
+ return oAppointmentParts.length > 0 ? oAppointmentParts[0] : null;
254
+ };
255
+
216
256
  return CalendarAppointment;
217
257
 
218
258
  });
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * @class
58
58
  * <code>CalendarDateInterval</code> only visualizes the dates in a one-line interval and allows the selection of a single day.
59
59
  * @extends sap.ui.unified.Calendar
60
- * @version 1.91.0
60
+ * @version 1.93.2
61
61
  *
62
62
  * @constructor
63
63
  * @public
@@ -553,7 +553,7 @@ sap.ui.define([
553
553
  var iDays = this._getDays();
554
554
  if (iDays > this._iDaysMonthHead) {
555
555
  return true;
556
- }else {
556
+ } else {
557
557
  return false;
558
558
  }
559
559
 
@@ -575,7 +575,7 @@ sap.ui.define([
575
575
  if (!oStartDate) {
576
576
  // use focused date as start date
577
577
  this._setStartDate(this._oFocusedDate, false, true);
578
- }else if (!oDatesRow.checkDateFocusable(this._oFocusedDate.toLocalJSDate())) {
578
+ } else if (!oDatesRow.checkDateFocusable(this._oFocusedDate.toLocalJSDate())) {
579
579
  this._oFocusedDate = CalendarDate.fromLocalJSDate(oStartDate, this.getPrimaryCalendarType());
580
580
  }
581
581
  }
@@ -823,7 +823,7 @@ sap.ui.define([
823
823
  (iYear == iYearMin &&
824
824
  (!bCheckMonth || iMonth < iMonthMin || (iMonth == iMonthMin && iDate <= iDateMin)))) {
825
825
  oHeader.setEnabledPrevious(false);
826
- }else {
826
+ } else {
827
827
  oHeader.setEnabledPrevious(true);
828
828
  }
829
829
 
@@ -1140,7 +1140,7 @@ sap.ui.define([
1140
1140
  //focused date not longer visible -> focus start date
1141
1141
  this._setFocusedDate(oStartDate);
1142
1142
  oDatesRow.setDate(oLocaleDate);
1143
- }else {
1143
+ } else {
1144
1144
  oDatesRow.setDate(oDate);
1145
1145
  }
1146
1146
  }
@@ -34,7 +34,7 @@ sap.ui.define([
34
34
  * @extends sap.ui.core.Control
35
35
  *
36
36
  * @author SAP SE
37
- * @version 1.91.0
37
+ * @version 1.93.2
38
38
  *
39
39
  * @constructor
40
40
  * @public
@@ -21,7 +21,7 @@ sap.ui.define(['sap/ui/core/Element', './library'],
21
21
  * @class
22
22
  * Item to be displayed in a CalendarLegend.
23
23
  * @extends sap.ui.core.Element
24
- * @version 1.91.0
24
+ * @version 1.93.2
25
25
  *
26
26
  * @constructor
27
27
  * @public
@@ -67,7 +67,7 @@ sap.ui.define([
67
67
  * <b>Note:</b> JavaScript Date objects are used to set and return the months, mark them as selected or as a special type.
68
68
  * But the date part of the Date object is not used. If a Date object is returned the date will be set to the 1st of the corresponding month.
69
69
  * @extends sap.ui.core.Control
70
- * @version 1.91.0
70
+ * @version 1.93.2
71
71
  *
72
72
  * @constructor
73
73
  * @public
@@ -570,7 +570,7 @@ sap.ui.define([
570
570
  if (this.getDomRef()) {
571
571
  if (this._getShowItemHeader()) {
572
572
  this.$().addClass("sapUiCalIntHead");
573
- }else {
573
+ } else {
574
574
  this.$().removeClass("sapUiCalIntHead");
575
575
  }
576
576
  }
@@ -990,7 +990,7 @@ sap.ui.define([
990
990
  var iMonths = this.getMonths();
991
991
  if (iMonths > this._iDaysMonthsHead) {
992
992
  return true;
993
- }else {
993
+ } else {
994
994
  return false;
995
995
  }
996
996
 
@@ -1015,7 +1015,7 @@ sap.ui.define([
1015
1015
  }
1016
1016
  if (oStartDate.isBefore(this._oMinDate)) {
1017
1017
  oStartDate = new CalendarDate(this._oMinDate);
1018
- }else if (oStartDate.isAfter(oMaxDate)){
1018
+ } else if (oStartDate.isAfter(oMaxDate)){
1019
1019
  oStartDate = oMaxDate;
1020
1020
  }
1021
1021
 
@@ -1035,7 +1035,7 @@ sap.ui.define([
1035
1035
  //focused date not longer visible -> focus start date
1036
1036
  this._setFocusedDate(oStartDate);
1037
1037
  oMonthsRow.setDate(oLocaleDate);
1038
- }else {
1038
+ } else {
1039
1039
  oMonthsRow.setDate(oDateTime);
1040
1040
  }
1041
1041
  }
@@ -1097,7 +1097,7 @@ sap.ui.define([
1097
1097
 
1098
1098
  if (this._oFocusedDate.isBefore(this._oMinDate)) {
1099
1099
  this._oFocusedDate = new CalendarDate(this._oMinDate);
1100
- }else if (this._oFocusedDate.isAfter(this._oMaxDate)){
1100
+ } else if (this._oFocusedDate.isAfter(this._oMaxDate)){
1101
1101
  this._oFocusedDate = new CalendarDate(this._oMaxDate);
1102
1102
  }
1103
1103
 
@@ -1169,7 +1169,7 @@ sap.ui.define([
1169
1169
 
1170
1170
  if (iYear < iYearMin || (iYear == iYearMin && iMonth <= iMonthMin )) {
1171
1171
  oHeader.setEnabledPrevious(false);
1172
- }else {
1172
+ } else {
1173
1173
  oHeader.setEnabledPrevious(true);
1174
1174
  }
1175
1175
 
@@ -1178,7 +1178,7 @@ sap.ui.define([
1178
1178
  iMonth = oDate.getMonth();
1179
1179
  if (iYear > iYearMax || (iYear == iYearMax && iMonth >= iMonthMax)) {
1180
1180
  oHeader.setEnabledNext(false);
1181
- }else {
1181
+ } else {
1182
1182
  oHeader.setEnabledNext(true);
1183
1183
  }
1184
1184
 
@@ -1239,10 +1239,10 @@ sap.ui.define([
1239
1239
  if (oDate.isBefore(this._oMinDate)) {
1240
1240
  oFocusedDate = this._oMinDate;
1241
1241
  bChanged = true;
1242
- }else if (oDate.isAfter(this._oMaxDate)){
1242
+ } else if (oDate.isAfter(this._oMaxDate)){
1243
1243
  oFocusedDate = this._oMaxDate;
1244
1244
  bChanged = true;
1245
- }else {
1245
+ } else {
1246
1246
  oFocusedDate = oDate;
1247
1247
  }
1248
1248
 
@@ -57,7 +57,7 @@ sap.ui.define([
57
57
  * Navigation via year picker switches to the corresponding year and the same month as before the navigation.
58
58
  *
59
59
  * @extends sap.ui.unified.CalendarDateInterval
60
- * @version 1.91.0
60
+ * @version 1.93.2
61
61
  *
62
62
  * @constructor
63
63
  * @private
@@ -18,6 +18,7 @@ sap.ui.define([
18
18
  'sap/ui/core/Locale',
19
19
  "./CalendarRowRenderer",
20
20
  "sap/ui/dom/containsOrEquals",
21
+ "sap/ui/events/checkMouseEnterOrLeave",
21
22
  "sap/ui/thirdparty/jquery",
22
23
  "sap/ui/unified/CalendarAppointment"
23
24
  ], function(
@@ -33,6 +34,7 @@ sap.ui.define([
33
34
  Locale,
34
35
  CalendarRowRenderer,
35
36
  containsOrEquals,
37
+ checkMouseEnterOrLeave,
36
38
  jQuery,
37
39
  CalendarAppointment
38
40
  ) {
@@ -74,7 +76,7 @@ sap.ui.define([
74
76
  * @class
75
77
  * A calendar row with a header and appointments. The Appointments will be placed in the defined interval.
76
78
  * @extends sap.ui.core.Control
77
- * @version 1.91.0
79
+ * @version 1.93.2
78
80
  *
79
81
  * @constructor
80
82
  * @public
@@ -97,6 +99,12 @@ sap.ui.define([
97
99
  */
98
100
  intervals : {type : "int", group : "Appearance", defaultValue : 12},
99
101
 
102
+ /**
103
+ * Number of interval type units merged. It's used when presenting Relative View in sap.m.PlanningCalendar.
104
+ * Note: If the value is more than 1, the NonWorkingDays type is not presented.
105
+ */
106
+ intervalSize : { type: "int", group: "Appearance", defaultValue: 1},
107
+
100
108
  /**
101
109
  * Type of the intervals of the row. The default is one hour.
102
110
  */
@@ -216,7 +224,6 @@ sap.ui.define([
216
224
  * @since 1.81.0
217
225
  */
218
226
  appointmentRoundWidth: { type: "sap.ui.unified.CalendarAppointmentRoundWidth", group: "Appearance", defaultValue: CalendarAppointmentRoundWidth.None}
219
-
220
227
  },
221
228
  aggregations : {
222
229
 
@@ -289,7 +296,6 @@ sap.ui.define([
289
296
  domRefId: {type: "string"}
290
297
  }
291
298
  },
292
-
293
299
  /**
294
300
  * <code>startDate</code> was changed while navigating in <code>CalendarRow</code>
295
301
  */
@@ -576,7 +582,6 @@ sap.ui.define([
576
582
  };
577
583
 
578
584
  CalendarRow.prototype.onsapselect = function(oEvent){
579
-
580
585
  // focused appointment must be selected
581
586
  var aVisibleAppointments = this._getVisibleAppointments();
582
587
 
@@ -713,7 +718,7 @@ sap.ui.define([
713
718
  this._sUpdateCurrentTime = setTimeout(this.updateCurrentTimeVisualization.bind(this), iTime);
714
719
  }
715
720
  }
716
- }else {
721
+ } else {
717
722
  $Now.css("display", "none");
718
723
  }
719
724
 
@@ -773,7 +778,7 @@ sap.ui.define([
773
778
  var sId = oAppointment.getId();
774
779
  if (this._sFocusedAppointmentId != sId) {
775
780
  _focusAppointment.call(this, sId);
776
- }else {
781
+ } else {
777
782
  oAppointment.focus();
778
783
  }
779
784
 
@@ -837,6 +842,9 @@ sap.ui.define([
837
842
  };
838
843
 
839
844
  CalendarRow.prototype._getNonWorkingDays = function() {
845
+ if (this.getIntervalSize() !== 1) {
846
+ return [];
847
+ }
840
848
 
841
849
  var aNonWorkingDays = this.getNonWorkingDays();
842
850
 
@@ -852,7 +860,7 @@ sap.ui.define([
852
860
  aNonWorkingDays.push(i);
853
861
  }
854
862
  }
855
- }else if (!Array.isArray(aNonWorkingDays)) {
863
+ } else if (!Array.isArray(aNonWorkingDays)) {
856
864
  aNonWorkingDays = [];
857
865
  }
858
866
 
@@ -1016,7 +1024,7 @@ sap.ui.define([
1016
1024
  case CalendarIntervalType.Week:
1017
1025
  case CalendarIntervalType.OneMonth:
1018
1026
  oEndDate = new UniversalDate(this._oUTCStartDate.getTime());
1019
- oEndDate.setUTCDate(oEndDate.getUTCDate() + iIntervals);
1027
+ oEndDate.setUTCDate(oEndDate.getUTCDate() + iIntervals * this.getIntervalSize());
1020
1028
  break;
1021
1029
 
1022
1030
  case CalendarIntervalType.Month:
@@ -1257,7 +1265,7 @@ sap.ui.define([
1257
1265
  // focused appointment not visible or no focus set
1258
1266
  if (aVisibleAppointments.length > 0) {
1259
1267
  this._sFocusedAppointmentId = aVisibleAppointments[0].appointment.getId();
1260
- }else {
1268
+ } else {
1261
1269
  this._sFocusedAppointmentId = undefined;
1262
1270
  }
1263
1271
  }
@@ -1540,7 +1548,7 @@ sap.ui.define([
1540
1548
  oAppointment.level = -1; // level must be new calculated
1541
1549
  bChanged = true;
1542
1550
  $Appointment.addClass("sapUiCalendarAppSmall");
1543
- }else if ($Appointment.hasClass("sapUiCalendarAppSmall")){
1551
+ } else if ($Appointment.hasClass("sapUiCalendarAppSmall")){
1544
1552
  // not longer too small
1545
1553
  oAppointment.end = oAppointment.calculatedEnd;
1546
1554
  bChanged = true;
@@ -1894,7 +1902,7 @@ sap.ui.define([
1894
1902
  $OldAppointment.attr("tabindex", "-1");
1895
1903
  $Appointment.attr("tabindex", "0");
1896
1904
  $Appointment.trigger("focus");
1897
- }else {
1905
+ } else {
1898
1906
  // appointment not visible -> find it and show it
1899
1907
  for (i = 0; i < aAppointments.length; i++) {
1900
1908
  if (aAppointments[i].getId() == sId) {
@@ -2020,7 +2028,7 @@ sap.ui.define([
2020
2028
  if (oEvent.type == "saphome") {
2021
2029
  break;
2022
2030
  }
2023
- }else if (aAppointments[i].getStartDate() > oLocalEndDate) {
2031
+ } else if (aAppointments[i].getStartDate() > oLocalEndDate) {
2024
2032
  break;
2025
2033
  }
2026
2034
  }