@openui5/sap.ui.unified 1.111.2 → 1.112.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.
- package/package.json +2 -2
- package/src/sap/ui/unified/.library +1 -1
- package/src/sap/ui/unified/Calendar.js +29 -21
- package/src/sap/ui/unified/CalendarAppointment.js +34 -48
- package/src/sap/ui/unified/CalendarDateInterval.js +10 -7
- 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 +38 -57
- package/src/sap/ui/unified/CalendarRowRenderer.js +16 -12
- package/src/sap/ui/unified/CalendarTimeInterval.js +8 -6
- package/src/sap/ui/unified/CalendarWeekInterval.js +1 -1
- package/src/sap/ui/unified/ColorPicker.js +1 -1
- package/src/sap/ui/unified/ColorPickerPopover.js +1 -1
- 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 +29 -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 +1 -1
- package/src/sap/ui/unified/MenuItemBase.js +1 -1
- package/src/sap/ui/unified/MenuRenderer.js +1 -1
- package/src/sap/ui/unified/MenuTextFieldItem.js +15 -14
- package/src/sap/ui/unified/Shell.js +1 -1
- package/src/sap/ui/unified/ShellHeadItem.js +1 -1
- package/src/sap/ui/unified/ShellHeadUserItem.js +1 -1
- 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/calendar/CalendarUtils.js +13 -12
- package/src/sap/ui/unified/calendar/DatesRow.js +1 -1
- package/src/sap/ui/unified/calendar/DatesRowRenderer.js +8 -1
- package/src/sap/ui/unified/calendar/Header.js +1 -1
- package/src/sap/ui/unified/calendar/IndexPicker.js +1 -1
- package/src/sap/ui/unified/calendar/Month.js +1 -1
- package/src/sap/ui/unified/calendar/MonthPicker.js +1 -1
- package/src/sap/ui/unified/calendar/MonthRenderer.js +4 -0
- package/src/sap/ui/unified/calendar/MonthsRow.js +8 -7
- package/src/sap/ui/unified/calendar/OneMonthDatesRow.js +1 -1
- package/src/sap/ui/unified/calendar/TimesRow.js +6 -4
- package/src/sap/ui/unified/calendar/TimesRowRenderer.js +21 -23
- 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/messagebundle.properties +3 -0
- package/src/sap/ui/unified/messagebundle_ar.properties +2 -0
- package/src/sap/ui/unified/messagebundle_bg.properties +2 -0
- package/src/sap/ui/unified/messagebundle_ca.properties +2 -0
- package/src/sap/ui/unified/messagebundle_cs.properties +2 -0
- package/src/sap/ui/unified/messagebundle_cy.properties +2 -0
- package/src/sap/ui/unified/messagebundle_da.properties +2 -0
- package/src/sap/ui/unified/messagebundle_de.properties +2 -0
- package/src/sap/ui/unified/messagebundle_el.properties +2 -0
- package/src/sap/ui/unified/messagebundle_en.properties +2 -0
- package/src/sap/ui/unified/messagebundle_en_GB.properties +2 -0
- package/src/sap/ui/unified/messagebundle_en_US_sappsd.properties +2 -0
- package/src/sap/ui/unified/messagebundle_en_US_saptrc.properties +2 -0
- package/src/sap/ui/unified/messagebundle_es.properties +2 -0
- package/src/sap/ui/unified/messagebundle_es_MX.properties +2 -0
- package/src/sap/ui/unified/messagebundle_et.properties +2 -0
- package/src/sap/ui/unified/messagebundle_fi.properties +2 -0
- package/src/sap/ui/unified/messagebundle_fr.properties +2 -0
- package/src/sap/ui/unified/messagebundle_fr_CA.properties +2 -0
- package/src/sap/ui/unified/messagebundle_hi.properties +2 -0
- package/src/sap/ui/unified/messagebundle_hr.properties +2 -0
- package/src/sap/ui/unified/messagebundle_hu.properties +2 -0
- package/src/sap/ui/unified/messagebundle_id.properties +2 -0
- package/src/sap/ui/unified/messagebundle_it.properties +2 -0
- package/src/sap/ui/unified/messagebundle_iw.properties +2 -0
- package/src/sap/ui/unified/messagebundle_ja.properties +4 -2
- package/src/sap/ui/unified/messagebundle_kk.properties +2 -0
- package/src/sap/ui/unified/messagebundle_ko.properties +2 -0
- package/src/sap/ui/unified/messagebundle_lt.properties +2 -0
- package/src/sap/ui/unified/messagebundle_lv.properties +2 -0
- package/src/sap/ui/unified/messagebundle_ms.properties +2 -0
- package/src/sap/ui/unified/messagebundle_nl.properties +2 -0
- package/src/sap/ui/unified/messagebundle_no.properties +2 -0
- package/src/sap/ui/unified/messagebundle_pl.properties +2 -0
- package/src/sap/ui/unified/messagebundle_pt.properties +2 -0
- package/src/sap/ui/unified/messagebundle_pt_PT.properties +2 -0
- package/src/sap/ui/unified/messagebundle_ro.properties +6 -4
- package/src/sap/ui/unified/messagebundle_ru.properties +2 -0
- package/src/sap/ui/unified/messagebundle_sh.properties +2 -0
- package/src/sap/ui/unified/messagebundle_sk.properties +2 -0
- package/src/sap/ui/unified/messagebundle_sl.properties +2 -0
- package/src/sap/ui/unified/messagebundle_sv.properties +2 -0
- package/src/sap/ui/unified/messagebundle_th.properties +2 -0
- package/src/sap/ui/unified/messagebundle_tr.properties +2 -0
- package/src/sap/ui/unified/messagebundle_uk.properties +2 -0
- package/src/sap/ui/unified/messagebundle_vi.properties +2 -0
- package/src/sap/ui/unified/messagebundle_zh_CN.properties +2 -0
- package/src/sap/ui/unified/messagebundle_zh_TW.properties +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openui5/sap.ui.unified",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.112.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.
|
|
17
|
+
"@openui5/sap.ui.core": "1.112.2"
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<copyright>OpenUI5
|
|
7
7
|
* (c) Copyright 2009-2023 SAP SE or an SAP affiliate company.
|
|
8
8
|
* Licensed under the Apache License, Version 2.0 - see LICENSE.txt.</copyright>
|
|
9
|
-
<version>1.
|
|
9
|
+
<version>1.112.2</version>
|
|
10
10
|
|
|
11
11
|
<documentation>Unified controls intended for both, mobile and desktop scenarios</documentation>
|
|
12
12
|
|
|
@@ -76,7 +76,7 @@ sap.ui.define([
|
|
|
76
76
|
* Basic Calendar.
|
|
77
77
|
* This calendar is used for DatePickers
|
|
78
78
|
* @extends sap.ui.core.Control
|
|
79
|
-
* @version 1.
|
|
79
|
+
* @version 1.112.2
|
|
80
80
|
*
|
|
81
81
|
* @constructor
|
|
82
82
|
* @public
|
|
@@ -569,6 +569,7 @@ sap.ui.define([
|
|
|
569
569
|
this._updateHeader(oCalDate);
|
|
570
570
|
|
|
571
571
|
this._updateHeadersButtons();
|
|
572
|
+
this._adjustYearRangeDisplay();
|
|
572
573
|
|
|
573
574
|
this._updateLegendParent();
|
|
574
575
|
if (this.getInitialFocusedDate()) {
|
|
@@ -864,7 +865,6 @@ sap.ui.define([
|
|
|
864
865
|
i;
|
|
865
866
|
|
|
866
867
|
this.setProperty("primaryCalendarType", sCalendarType);
|
|
867
|
-
this._adjustYearRangeDisplay();
|
|
868
868
|
|
|
869
869
|
this._oYearFormat = DateFormat.getDateInstance({format: "y", calendarType: sCalendarType});
|
|
870
870
|
|
|
@@ -2142,15 +2142,19 @@ sap.ui.define([
|
|
|
2142
2142
|
oMonthPicker = this._getMonthPicker(),
|
|
2143
2143
|
iFocusedMonth = oMonthPicker.getProperty("_focusedMonth"),
|
|
2144
2144
|
iMonth = (iFocusedMonth || iFocusedMonth === 0) ? iFocusedMonth : oMonthPicker.getMonth(),
|
|
2145
|
-
|
|
2146
|
-
|
|
2145
|
+
oSecondCalDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(), this.getPrimaryCalendarType());
|
|
2146
|
+
|
|
2147
|
+
oSecondCalDate = oMonthPicker._iYear ?
|
|
2148
|
+
oSecondCalDate
|
|
2149
|
+
.setYear(oMonthPicker._iYear)
|
|
2150
|
+
.setMonth(iMonth - 1, 1) :
|
|
2147
2151
|
new CalendarDate(this._getFocusedDate().getYear(), iMonth - 1, 1);
|
|
2148
2152
|
|
|
2149
2153
|
if (_getMonths.call(this) > 1) {
|
|
2150
|
-
if (this._bActionTriggeredFromSecondHeader &&
|
|
2151
|
-
oFocusedDate.setYear(
|
|
2152
|
-
iMonth =
|
|
2153
|
-
} else if (oFocusedDate.getYear() === CalendarUtils._maxDate().getYear() && iMonth === 11) {
|
|
2154
|
+
if (this._bActionTriggeredFromSecondHeader && oSecondCalDate.getYear() >= CalendarUtils._minDate(this.getPrimaryCalendarType()).getYear()) {
|
|
2155
|
+
oFocusedDate.setYear(oSecondCalDate.getYear());
|
|
2156
|
+
iMonth = oSecondCalDate.getMonth();
|
|
2157
|
+
} else if (oFocusedDate.getYear() === CalendarUtils._maxDate(this.getPrimaryCalendarType()).getYear() && iMonth === 11) {
|
|
2154
2158
|
iMonth -= 1;
|
|
2155
2159
|
}
|
|
2156
2160
|
}
|
|
@@ -2489,21 +2493,25 @@ sap.ui.define([
|
|
|
2489
2493
|
};
|
|
2490
2494
|
|
|
2491
2495
|
Calendar.prototype._adjustYearRangeDisplay = function() {
|
|
2492
|
-
var oYearRangePicker = this.getAggregation("yearRangePicker")
|
|
2496
|
+
var oYearRangePicker = this.getAggregation("yearRangePicker"),
|
|
2497
|
+
sLang = sap.ui.getCore().getConfiguration().getLanguage().toLocaleLowerCase(),
|
|
2498
|
+
sPrimaryCalendarType = this.getPrimaryCalendarType();
|
|
2493
2499
|
|
|
2494
2500
|
if (!this._getSucessorsPickerPopup()) {
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2501
|
+
// An evaluation about the count of year cells that could fit in the sap.ui.unified.calendar.YearRangePicker
|
|
2502
|
+
// has to be made based not only on the sap.ui.core.CalendarType, but also on the language configuration.
|
|
2503
|
+
// Based on those two criteria a couple of groups with different year cells count would be indicated and we
|
|
2504
|
+
// could cover those scenarios with visual tests afterwards. Currently only the scenario with korean language
|
|
2505
|
+
// is covered.
|
|
2506
|
+
if (sPrimaryCalendarType == CalendarType.Japanese) {
|
|
2507
|
+
oYearRangePicker.setColumns(1);
|
|
2508
|
+
oYearRangePicker.setYears(4);
|
|
2509
|
+
} else if (sLang == "ko" || sLang == "ko-kr" || sPrimaryCalendarType != CalendarType.Gregorian) {
|
|
2510
|
+
oYearRangePicker.setColumns(2);
|
|
2511
|
+
oYearRangePicker.setYears(8);
|
|
2512
|
+
} else if (sPrimaryCalendarType == CalendarType.Gregorian) {
|
|
2513
|
+
oYearRangePicker.setColumns(3);
|
|
2514
|
+
oYearRangePicker.setYears(9);
|
|
2507
2515
|
}
|
|
2508
2516
|
}
|
|
2509
2517
|
};
|
|
@@ -5,8 +5,30 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
// Provides control sap.ui.unified.CalendarAppointment.
|
|
8
|
-
sap.ui.define([
|
|
9
|
-
|
|
8
|
+
sap.ui.define([
|
|
9
|
+
'./DateTypeRange',
|
|
10
|
+
'sap/ui/core/format/DateFormat',
|
|
11
|
+
'sap/ui/core/format/NumberFormat',
|
|
12
|
+
'sap/ui/core/format/TimezoneUtil',
|
|
13
|
+
'sap/ui/core/Core',
|
|
14
|
+
'./calendar/CalendarUtils',
|
|
15
|
+
'./library',
|
|
16
|
+
"sap/base/Log",
|
|
17
|
+
"sap/ui/core/Configuration",
|
|
18
|
+
"sap/ui/core/date/UI5Date"
|
|
19
|
+
],
|
|
20
|
+
function(
|
|
21
|
+
DateTypeRange,
|
|
22
|
+
DateFormat,
|
|
23
|
+
NumberFormat,
|
|
24
|
+
TimezoneUtil,
|
|
25
|
+
Core,
|
|
26
|
+
CalendarUtils,
|
|
27
|
+
library,
|
|
28
|
+
Log,
|
|
29
|
+
Configuration,
|
|
30
|
+
UI5Date
|
|
31
|
+
) {
|
|
10
32
|
"use strict";
|
|
11
33
|
|
|
12
34
|
/**
|
|
@@ -21,7 +43,7 @@ sap.ui.define(['./DateTypeRange', 'sap/ui/core/format/DateFormat', 'sap/ui/core/
|
|
|
21
43
|
*
|
|
22
44
|
* Applications could inherit from this element to add own fields.
|
|
23
45
|
* @extends sap.ui.unified.DateTypeRange
|
|
24
|
-
* @version 1.
|
|
46
|
+
* @version 1.112.2
|
|
25
47
|
*
|
|
26
48
|
* @constructor
|
|
27
49
|
* @public
|
|
@@ -124,12 +146,12 @@ sap.ui.define(['./DateTypeRange', 'sap/ui/core/format/DateFormat', 'sap/ui/core/
|
|
|
124
146
|
* @private
|
|
125
147
|
*/
|
|
126
148
|
CalendarAppointment.prototype._getDateRangeIntersectionText = function (oCurrentlyDisplayedDate) {
|
|
127
|
-
var oStartDate = this.
|
|
128
|
-
oEndDate = this.
|
|
149
|
+
var oStartDate = this.getStartDate(),
|
|
150
|
+
oEndDate = this.getEndDate() ? this.getEndDate() : UI5Date.getInstance(864000000000000), //in case of emergency call this number
|
|
129
151
|
sFirstLineText,
|
|
130
152
|
sSecondLineText,
|
|
131
|
-
oCurrentDayStart =
|
|
132
|
-
oNextDayStart =
|
|
153
|
+
oCurrentDayStart = UI5Date.getInstance(oCurrentlyDisplayedDate.getFullYear(), oCurrentlyDisplayedDate.getMonth(), oCurrentlyDisplayedDate.getDate(), 0, 0, 0),
|
|
154
|
+
oNextDayStart = UI5Date.getInstance(oCurrentDayStart.getFullYear(), oCurrentDayStart.getMonth(), oCurrentDayStart.getDate() + 1),
|
|
133
155
|
oTimeFormat = DateFormat.getTimeInstance({pattern: "HH:mm"}),
|
|
134
156
|
oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.m"),
|
|
135
157
|
oHourFormat = NumberFormat.getUnitInstance({
|
|
@@ -180,14 +202,14 @@ sap.ui.define(['./DateTypeRange', 'sap/ui/core/format/DateFormat', 'sap/ui/core/
|
|
|
180
202
|
*/
|
|
181
203
|
CalendarAppointment._getComparer = function(oDate) {
|
|
182
204
|
var ONE_DAY = 24 * 60 * 60 * 1000,
|
|
183
|
-
iCurrentDayStartTime =
|
|
205
|
+
iCurrentDayStartTime = UI5Date.getInstance(oDate.getFullYear(), oDate.getMonth(), oDate.getDate(), 0, 0, 0).getTime(),
|
|
184
206
|
iNextDayStart = iCurrentDayStartTime + ONE_DAY;
|
|
185
207
|
|
|
186
208
|
return function(oAppInfo1, oAppInfo2) {
|
|
187
|
-
var iStartDateTime1 = oAppInfo1.appointment.
|
|
188
|
-
iStartDateTime2 = oAppInfo2.appointment.
|
|
189
|
-
iEndDateTime1 = oAppInfo1.appointment.
|
|
190
|
-
iEndDateTime2 = oAppInfo2.appointment.
|
|
209
|
+
var iStartDateTime1 = oAppInfo1.appointment.getStartDate().getTime(),
|
|
210
|
+
iStartDateTime2 = oAppInfo2.appointment.getStartDate().getTime(),
|
|
211
|
+
iEndDateTime1 = oAppInfo1.appointment.getEndDate() ? oAppInfo1.appointment.getEndDate().getTime() : 864000000000000, //this is max date in case of no max date
|
|
212
|
+
iEndDateTime2 = oAppInfo2.appointment.getEndDate() ? oAppInfo2.appointment.getEndDate().getTime() : 864000000000000,
|
|
191
213
|
bWholeDay1 = iStartDateTime1 <= iCurrentDayStartTime && iEndDateTime1 >= iNextDayStart,
|
|
192
214
|
bWholeDay2 = iStartDateTime2 <= iCurrentDayStartTime && iEndDateTime2 >= iNextDayStart,
|
|
193
215
|
iResult;
|
|
@@ -252,42 +274,6 @@ sap.ui.define(['./DateTypeRange', 'sap/ui/core/format/DateFormat', 'sap/ui/core/
|
|
|
252
274
|
return oAppointmentParts.length > 0 ? oAppointmentParts[0] : null;
|
|
253
275
|
};
|
|
254
276
|
|
|
255
|
-
CalendarAppointment.prototype._getEndDateWithTimezoneAdaptation = function() {
|
|
256
|
-
if (!this.getProperty("endDate")) {
|
|
257
|
-
return null;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
var oEndDate = this._convertToTimezone(this.getEndDate());
|
|
261
|
-
|
|
262
|
-
return oEndDate;
|
|
263
|
-
};
|
|
264
|
-
|
|
265
|
-
CalendarAppointment.prototype._getStartDateWithTimezoneAdaptation = function() {
|
|
266
|
-
if (!this.getProperty("startDate")) {
|
|
267
|
-
return null;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
var oStartDate = this._convertToTimezone(this.getStartDate());
|
|
271
|
-
|
|
272
|
-
return oStartDate;
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* Aligns a date to the timezone from the configuration.
|
|
277
|
-
*
|
|
278
|
-
* @returns {Object} <code>oNewDate</code> aligned to the configured timezone.
|
|
279
|
-
* @private
|
|
280
|
-
*/
|
|
281
|
-
CalendarAppointment.prototype._convertToTimezone = function(oDate) {
|
|
282
|
-
var sConfigTimezone = Core.getConfiguration().getTimezone();
|
|
283
|
-
var sLocalTimezone = TimezoneUtil.getLocalTimezone();
|
|
284
|
-
|
|
285
|
-
var iConfigOffsetMillis = TimezoneUtil.calculateOffset(oDate, sConfigTimezone) * 1000;
|
|
286
|
-
var iLocalOffsetMillis = TimezoneUtil.calculateOffset(oDate, sLocalTimezone) * 1000;
|
|
287
|
-
|
|
288
|
-
return new Date(oDate.getTime() - iConfigOffsetMillis + iLocalOffsetMillis);
|
|
289
|
-
};
|
|
290
|
-
|
|
291
277
|
return CalendarAppointment;
|
|
292
278
|
|
|
293
279
|
});
|
|
@@ -21,7 +21,9 @@ sap.ui.define([
|
|
|
21
21
|
"sap/ui/core/CalendarType",
|
|
22
22
|
"sap/ui/core/Core",
|
|
23
23
|
"sap/base/Log",
|
|
24
|
-
"./DateRange"
|
|
24
|
+
"./DateRange",
|
|
25
|
+
"sap/ui/core/date/UI5Date"
|
|
26
|
+
|
|
25
27
|
], function(
|
|
26
28
|
CalendarUtils,
|
|
27
29
|
Calendar,
|
|
@@ -38,7 +40,8 @@ sap.ui.define([
|
|
|
38
40
|
CalendarType,
|
|
39
41
|
Core,
|
|
40
42
|
Log,
|
|
41
|
-
DateRange
|
|
43
|
+
DateRange,
|
|
44
|
+
UI5Date
|
|
42
45
|
) {
|
|
43
46
|
"use strict";
|
|
44
47
|
|
|
@@ -56,7 +59,7 @@ sap.ui.define([
|
|
|
56
59
|
* @class
|
|
57
60
|
* <code>CalendarDateInterval</code> only visualizes the dates in a one-line interval and allows the selection of a single day.
|
|
58
61
|
* @extends sap.ui.unified.Calendar
|
|
59
|
-
* @version 1.
|
|
62
|
+
* @version 1.112.2
|
|
60
63
|
*
|
|
61
64
|
* @constructor
|
|
62
65
|
* @public
|
|
@@ -321,7 +324,7 @@ sap.ui.define([
|
|
|
321
324
|
sAriaLabel = oTexts.sAriaLabel,
|
|
322
325
|
oHeader = this.getAggregation("header");
|
|
323
326
|
var oLocaleData = this._getLocaleData();
|
|
324
|
-
var oEndDate = CalendarDate.fromLocalJSDate(
|
|
327
|
+
var oEndDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(oDate.toLocalJSDate().getTime() + (this._getDays() - 1) * 24 * 60 * 60 * 1000), this.getPrimaryCalendarType());
|
|
325
328
|
oEndDate.setDate(1); // always use the first of the month to have stable year in Japanese calendar
|
|
326
329
|
var sDelimiter = oLocaleData.getIntervalPattern().replace("{0}", "").replace("{1}", "");
|
|
327
330
|
var sEndYear = this._oYearFormat.format(oEndDate.toUTCJSDate(), true);
|
|
@@ -352,7 +355,7 @@ sap.ui.define([
|
|
|
352
355
|
var oStartDate = this.getStartDate(),
|
|
353
356
|
oCalPicker = this._getCalendar(),
|
|
354
357
|
oSelectedRange = new DateRange(),
|
|
355
|
-
oEndDate =
|
|
358
|
+
oEndDate = UI5Date.getInstance(oStartDate.getTime());
|
|
356
359
|
|
|
357
360
|
oEndDate.setDate(oEndDate.getDate() + this._getDays() - 1);
|
|
358
361
|
oSelectedRange.setStartDate(oStartDate);
|
|
@@ -432,13 +435,13 @@ sap.ui.define([
|
|
|
432
435
|
var oMinDate = this.getMinDate();
|
|
433
436
|
if (oMinDate && oStartDate.getTime() < oMinDate.getTime()) {
|
|
434
437
|
Log.warning("startDate < minDate -> minDate as startDate set", this);
|
|
435
|
-
oStartDate =
|
|
438
|
+
oStartDate = UI5Date.getInstance(oMinDate.getTime());
|
|
436
439
|
}
|
|
437
440
|
|
|
438
441
|
var oMaxDate = this.getMaxDate();
|
|
439
442
|
if (oMaxDate && oStartDate.getTime() > oMaxDate.getTime()) {
|
|
440
443
|
Log.warning("startDate > maxDate -> maxDate as startDate set", this);
|
|
441
|
-
oStartDate =
|
|
444
|
+
oStartDate = UI5Date.getInstance(oMaxDate.getTime());
|
|
442
445
|
}
|
|
443
446
|
|
|
444
447
|
this.setProperty("startDate", oStartDate, true);
|
|
@@ -65,7 +65,7 @@ sap.ui.define([
|
|
|
65
65
|
* <b>Note:</b> JavaScript Date objects are used to set and return the months, mark them as selected or as a special type.
|
|
66
66
|
* 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.
|
|
67
67
|
* @extends sap.ui.core.Control
|
|
68
|
-
* @version 1.
|
|
68
|
+
* @version 1.112.2
|
|
69
69
|
*
|
|
70
70
|
* @constructor
|
|
71
71
|
* @public
|
|
@@ -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.
|
|
60
|
+
* @version 1.112.2
|
|
61
61
|
*
|
|
62
62
|
* @constructor
|
|
63
63
|
* @private
|
|
@@ -24,7 +24,8 @@ sap.ui.define([
|
|
|
24
24
|
"sap/ui/unified/CalendarAppointment",
|
|
25
25
|
'sap/ui/core/InvisibleMessage',
|
|
26
26
|
'sap/ui/core/library',
|
|
27
|
-
'sap/ui/core/Configuration'
|
|
27
|
+
'sap/ui/core/Configuration',
|
|
28
|
+
"sap/ui/core/date/UI5Date"
|
|
28
29
|
], function(
|
|
29
30
|
Control,
|
|
30
31
|
Device,
|
|
@@ -44,7 +45,8 @@ sap.ui.define([
|
|
|
44
45
|
CalendarAppointment,
|
|
45
46
|
InvisibleMessage,
|
|
46
47
|
corelibrary,
|
|
47
|
-
Configuration
|
|
48
|
+
Configuration,
|
|
49
|
+
UI5Date
|
|
48
50
|
) {
|
|
49
51
|
"use strict";
|
|
50
52
|
|
|
@@ -86,7 +88,7 @@ sap.ui.define([
|
|
|
86
88
|
* @class
|
|
87
89
|
* A calendar row with a header and appointments. The Appointments will be placed in the defined interval.
|
|
88
90
|
* @extends sap.ui.core.Control
|
|
89
|
-
* @version 1.
|
|
91
|
+
* @version 1.112.2
|
|
90
92
|
*
|
|
91
93
|
* @constructor
|
|
92
94
|
* @public
|
|
@@ -369,7 +371,7 @@ sap.ui.define([
|
|
|
369
371
|
this._aVisibleAppointments = [];
|
|
370
372
|
this._aVisibleIntervalHeaders = [];
|
|
371
373
|
|
|
372
|
-
this.setStartDate(
|
|
374
|
+
this.setStartDate(UI5Date.getInstance());
|
|
373
375
|
|
|
374
376
|
this._resizeProxy = jQuery.proxy(this.handleResize, this);
|
|
375
377
|
|
|
@@ -472,7 +474,7 @@ sap.ui.define([
|
|
|
472
474
|
|
|
473
475
|
if (!oStartDate) {
|
|
474
476
|
//set default value
|
|
475
|
-
oStartDate =
|
|
477
|
+
oStartDate = UI5Date.getInstance();
|
|
476
478
|
}
|
|
477
479
|
|
|
478
480
|
CalendarUtils._checkJSDateObject(oStartDate);
|
|
@@ -615,19 +617,19 @@ sap.ui.define([
|
|
|
615
617
|
CalendarRow.prototype.onsapselect = function(oEvent){
|
|
616
618
|
// focused appointment must be selected
|
|
617
619
|
var aVisibleAppointments = this._getVisibleAppointments(),
|
|
618
|
-
sBundleKey;
|
|
620
|
+
oAppointment, sBundleKey;
|
|
619
621
|
|
|
620
622
|
|
|
621
623
|
for (var i = 0; i < aVisibleAppointments.length; i++) {
|
|
622
|
-
|
|
624
|
+
oAppointment = aVisibleAppointments[i].appointment;
|
|
623
625
|
if (containsOrEquals(oAppointment.getDomRef(), oEvent.target)) {
|
|
624
626
|
var bRemoveOldSelection = !(this.getMultipleAppointmentsSelection() || oEvent.ctrlKey || oEvent.metaKey);
|
|
625
627
|
_selectAppointment.call(this, oAppointment, bRemoveOldSelection);
|
|
626
|
-
sBundleKey = oAppointment.getSelected() ? "APPOINTMENT_SELECTED" : "APPOINTMENT_UNSELECTED";
|
|
627
628
|
break;
|
|
628
629
|
}
|
|
629
630
|
}
|
|
630
631
|
|
|
632
|
+
sBundleKey = oAppointment.getSelected() ? "APPOINTMENT_SELECTED" : "APPOINTMENT_UNSELECTED";
|
|
631
633
|
this._oInvisibleMessage.announce(this._oRb.getText(sBundleKey), InvisibleMessageMode.Polite);
|
|
632
634
|
|
|
633
635
|
//To prevent bubbling into PlanningCalendar.
|
|
@@ -711,9 +713,8 @@ sap.ui.define([
|
|
|
711
713
|
* @public
|
|
712
714
|
*/
|
|
713
715
|
CalendarRow.prototype.updateCurrentTimeVisualization = function() {
|
|
714
|
-
|
|
715
716
|
var $Now = this.$("Now");
|
|
716
|
-
var oNowDate = CalendarUtils._createUniversalUTCDate(
|
|
717
|
+
var oNowDate = CalendarUtils._createUniversalUTCDate(UI5Date.getInstance(), undefined, true);
|
|
717
718
|
var iIntervals = this.getIntervals();
|
|
718
719
|
var sIntervalType = this.getIntervalType();
|
|
719
720
|
var oStartDate = this._getStartDate();
|
|
@@ -723,8 +724,6 @@ sap.ui.define([
|
|
|
723
724
|
|
|
724
725
|
this._sUpdateCurrentTime = undefined;
|
|
725
726
|
|
|
726
|
-
oNowDate = this._convertToTimezone(oNowDate);
|
|
727
|
-
|
|
728
727
|
if (oNowDate.getTime() <= iEndTime && oNowDate.getTime() >= iStartTime) {
|
|
729
728
|
var iBegin = _calculateBegin.call(this, sIntervalType, iIntervals, oStartDate, oEndDate, iStartTime, oNowDate);
|
|
730
729
|
var iTime = 0;
|
|
@@ -766,23 +765,6 @@ sap.ui.define([
|
|
|
766
765
|
|
|
767
766
|
};
|
|
768
767
|
|
|
769
|
-
/**
|
|
770
|
-
* Aligns a date to the timezone from the configuration.
|
|
771
|
-
*
|
|
772
|
-
* @returns {Object} <code>oNewDate</code> aligned to the configured timezone.
|
|
773
|
-
* @private
|
|
774
|
-
*/
|
|
775
|
-
CalendarRow.prototype._convertToTimezone = function(oDate) {
|
|
776
|
-
var sTimezone = Core.getConfiguration().getTimezone();
|
|
777
|
-
var oNewDate = CalendarUtils._createUniversalUTCDate(oDate, undefined, true);
|
|
778
|
-
|
|
779
|
-
oNewDate = new Date(oDate.getUTCFullYear(), oDate.getUTCMonth(), oDate.getUTCDate(), oDate.getUTCHours(), oDate.getUTCMinutes(), oDate.getUTCSeconds());
|
|
780
|
-
oNewDate.setUTCFullYear(oDate.getUTCFullYear());
|
|
781
|
-
oNewDate = TimezoneUtil.convertToTimezone(oNewDate, sTimezone);
|
|
782
|
-
|
|
783
|
-
return oNewDate;
|
|
784
|
-
};
|
|
785
|
-
|
|
786
768
|
/**
|
|
787
769
|
* Returns the focused <code>CalendarAppointment</code> of the <code>CalendarRow</code>.
|
|
788
770
|
*
|
|
@@ -862,7 +844,7 @@ sap.ui.define([
|
|
|
862
844
|
|
|
863
845
|
for (var i = 0; i < aAppointments.length; i++) {
|
|
864
846
|
oNextAppointment = aAppointments[i];
|
|
865
|
-
if (oNextAppointment.
|
|
847
|
+
if (oNextAppointment.getStartDate() > oDate) {
|
|
866
848
|
if (i > 0) {
|
|
867
849
|
oPrevAppointment = aAppointments[i - 1];
|
|
868
850
|
} else {
|
|
@@ -873,7 +855,7 @@ sap.ui.define([
|
|
|
873
855
|
}
|
|
874
856
|
|
|
875
857
|
if (oNextAppointment) {
|
|
876
|
-
if (oPrevAppointment && Math.abs(oNextAppointment.
|
|
858
|
+
if (oPrevAppointment && Math.abs(oNextAppointment.getStartDate() - oDate) >= Math.abs(oPrevAppointment.getStartDate() - oDate)) {
|
|
877
859
|
oAppointment = oPrevAppointment;
|
|
878
860
|
} else {
|
|
879
861
|
oAppointment = oNextAppointment;
|
|
@@ -972,8 +954,8 @@ sap.ui.define([
|
|
|
972
954
|
};
|
|
973
955
|
}
|
|
974
956
|
|
|
975
|
-
var oAppStartDate = oAppointment.
|
|
976
|
-
oAppEndDate = oAppointment.
|
|
957
|
+
var oAppStartDate = oAppointment.getStartDate(),
|
|
958
|
+
oAppEndDate = oAppointment.getEndDate(),
|
|
977
959
|
oUniversalAppStartDate = new UniversalDate(oAppStartDate.getFullYear(), oAppStartDate.getMonth(), oAppStartDate.getDate(), oAppStartDate.getHours(), oAppStartDate.getMinutes()),
|
|
978
960
|
oUniversalAppEndDate = new UniversalDate(oAppEndDate.getFullYear(), oAppEndDate.getMonth(), oAppEndDate.getDate(), oAppEndDate.getHours(), oAppEndDate.getMinutes()),
|
|
979
961
|
sIntervalType = this.getIntervalType(),
|
|
@@ -1182,13 +1164,13 @@ sap.ui.define([
|
|
|
1182
1164
|
|
|
1183
1165
|
for (i = 0; i < aAppointments.length; i++) {
|
|
1184
1166
|
oAppointment = aAppointments[i];
|
|
1185
|
-
var oAppointmentStartDate = CalendarUtils._createUniversalUTCDate(oAppointment.
|
|
1167
|
+
var oAppointmentStartDate = CalendarUtils._createUniversalUTCDate(oAppointment.getStartDate(), undefined, true);
|
|
1186
1168
|
var oAppointmentStartDateTime = oAppointmentStartDate.getTime();
|
|
1187
1169
|
oAppointmentStartDate.setUTCSeconds(0); // ignore seconds
|
|
1188
1170
|
oAppointmentStartDate.setUTCMilliseconds(0); // ignore milliseconds
|
|
1189
|
-
var oAppointmentEndDate = oAppointment.
|
|
1190
|
-
? CalendarUtils._createUniversalUTCDate(oAppointment.
|
|
1191
|
-
: CalendarUtils._createUniversalUTCDate(
|
|
1171
|
+
var oAppointmentEndDate = oAppointment.getEndDate()
|
|
1172
|
+
? CalendarUtils._createUniversalUTCDate(oAppointment.getEndDate(), undefined, true)
|
|
1173
|
+
: CalendarUtils._createUniversalUTCDate(UI5Date.getInstance(864000000000000), undefined, true); //max date
|
|
1192
1174
|
var oAppointmentEndDateTime = oAppointmentEndDate.getTime();
|
|
1193
1175
|
oAppointmentEndDate.setUTCSeconds(0); // ignore seconds
|
|
1194
1176
|
oAppointmentEndDate.setUTCMilliseconds(0); // ignore milliseconds
|
|
@@ -1226,7 +1208,7 @@ sap.ui.define([
|
|
|
1226
1208
|
// in month mode, group appointment < one week
|
|
1227
1209
|
|
|
1228
1210
|
oGroupAppointment = _getGroupAppointment.call(this, oAppointmentStartDate, oAppointment, sIntervalType, iIntervals, oStartDate, oEndDate, iStartTime, aVisibleAppointments);
|
|
1229
|
-
var oGroupEndDate = CalendarUtils._createUniversalUTCDate(oGroupAppointment.
|
|
1211
|
+
var oGroupEndDate = CalendarUtils._createUniversalUTCDate(oGroupAppointment.getEndDate(), undefined, true);
|
|
1230
1212
|
|
|
1231
1213
|
if (oAppointmentEndDate.getTime() > oGroupEndDate.getTime()) {
|
|
1232
1214
|
// appointment ends in next group
|
|
@@ -1355,7 +1337,7 @@ sap.ui.define([
|
|
|
1355
1337
|
|
|
1356
1338
|
for (var j = 0; j < aGroupAppointments.length; j++) {
|
|
1357
1339
|
oGroupAppointment = aGroupAppointments[j];
|
|
1358
|
-
var oGroupAppointmentStartDate = CalendarUtils._createUniversalUTCDate(oGroupAppointment.
|
|
1340
|
+
var oGroupAppointmentStartDate = CalendarUtils._createUniversalUTCDate(oGroupAppointment.getStartDate(), undefined, true);
|
|
1359
1341
|
if (oGroupAppointmentStartDate.getTime() == oGroupStartDate.getTime()) {
|
|
1360
1342
|
break;
|
|
1361
1343
|
}
|
|
@@ -1368,8 +1350,8 @@ sap.ui.define([
|
|
|
1368
1350
|
oGroupEndDate.setMilliseconds(-1);
|
|
1369
1351
|
oGroupAppointment = new CalendarAppointment(this.getId() + "-Group" + aGroupAppointments.length, {
|
|
1370
1352
|
type: oAppointment.getType(),
|
|
1371
|
-
startDate: CalendarUtils._createLocalDate(
|
|
1372
|
-
endDate: CalendarUtils._createLocalDate(
|
|
1353
|
+
startDate: CalendarUtils._createLocalDate(UI5Date.getInstance(oGroupStartDate.getTime()), true),
|
|
1354
|
+
endDate: CalendarUtils._createLocalDate(UI5Date.getInstance(oGroupEndDate.getTime()), true)
|
|
1373
1355
|
});
|
|
1374
1356
|
oGroupAppointment._aAppointments = [];
|
|
1375
1357
|
this.addAggregation("groupAppointments", oGroupAppointment, true);
|
|
@@ -1479,12 +1461,12 @@ sap.ui.define([
|
|
|
1479
1461
|
|
|
1480
1462
|
for (i = 0; i < aAppointments.length; i++) {
|
|
1481
1463
|
oAppointment = aAppointments[i];
|
|
1482
|
-
var oAppointmentStartDate = CalendarUtils._createUniversalUTCDate(oAppointment.
|
|
1464
|
+
var oAppointmentStartDate = CalendarUtils._createUniversalUTCDate(oAppointment.getStartDate(), undefined, true);
|
|
1483
1465
|
oAppointmentStartDate.setUTCSeconds(0); // ignore seconds
|
|
1484
1466
|
oAppointmentStartDate.setUTCMilliseconds(0); // ignore milliseconds
|
|
1485
|
-
var oAppointmentEndDate = oAppointment.
|
|
1486
|
-
? CalendarUtils._createUniversalUTCDate(oAppointment.
|
|
1487
|
-
: CalendarUtils._createUniversalUTCDate(
|
|
1467
|
+
var oAppointmentEndDate = oAppointment.getEndDate()
|
|
1468
|
+
? CalendarUtils._createUniversalUTCDate(oAppointment.getEndDate(), undefined, true)
|
|
1469
|
+
: CalendarUtils._createUniversalUTCDate(UI5Date.getInstance(864000000000000), undefined, true); //max date;
|
|
1488
1470
|
oAppointmentEndDate.setUTCSeconds(0); // ignore seconds
|
|
1489
1471
|
oAppointmentEndDate.setUTCMilliseconds(0); // ignore milliseconds
|
|
1490
1472
|
|
|
@@ -1701,6 +1683,7 @@ sap.ui.define([
|
|
|
1701
1683
|
var sAriaLabelNotSelected;
|
|
1702
1684
|
var sAriaLabelSelected;
|
|
1703
1685
|
var sSelectedTextId = InvisibleText.getStaticId("sap.ui.unified", "APPOINTMENT_SELECTED");
|
|
1686
|
+
var sUnselectedTextId = InvisibleText.getStaticId("sap.ui.unified", "APPOINTMENT_UNSELECTED");
|
|
1704
1687
|
var bSelect = !oAppointment.getSelected();
|
|
1705
1688
|
|
|
1706
1689
|
if (bRemoveOldSelection) {
|
|
@@ -1720,14 +1703,14 @@ sap.ui.define([
|
|
|
1720
1703
|
}
|
|
1721
1704
|
}
|
|
1722
1705
|
sAriaLabel = oApp.$().attr("aria-labelledby");
|
|
1723
|
-
sAriaLabelNotSelected = sAriaLabel ? sAriaLabel.replace(sSelectedTextId,
|
|
1706
|
+
sAriaLabelNotSelected = sAriaLabel ? sAriaLabel.replace(sSelectedTextId, sUnselectedTextId) : "";
|
|
1724
1707
|
oApp.$().attr("aria-labelledby", sAriaLabelNotSelected);
|
|
1725
1708
|
}
|
|
1726
1709
|
}
|
|
1727
1710
|
}
|
|
1728
1711
|
|
|
1729
|
-
sAriaLabelSelected = oAppointment.$().attr("aria-labelledby")
|
|
1730
|
-
sAriaLabelNotSelected = oAppointment.$().attr("aria-labelledby").replace(sSelectedTextId,
|
|
1712
|
+
sAriaLabelSelected = oAppointment.$().attr("aria-labelledby").replace(sUnselectedTextId, sSelectedTextId).trim();
|
|
1713
|
+
sAriaLabelNotSelected = oAppointment.$().attr("aria-labelledby").replace(sSelectedTextId, sUnselectedTextId).trim();
|
|
1731
1714
|
|
|
1732
1715
|
if (oAppointment.getSelected()) {
|
|
1733
1716
|
oAppointment.setProperty("selected", false, true); // do not invalidate CalendarRow
|
|
@@ -1748,8 +1731,6 @@ sap.ui.define([
|
|
|
1748
1731
|
for (i = 0; i < oAppointment._aAppointments.length; i++) {
|
|
1749
1732
|
oApp = oAppointment._aAppointments[i];
|
|
1750
1733
|
oApp.setProperty("selected", bSelect, true); // do not invalidate CalendarRow
|
|
1751
|
-
sAriaLabelSelected = oApp.$().attr("aria-labelledby") + " " + sSelectedTextId;
|
|
1752
|
-
oApp.$().attr("aria-labelledby", sAriaLabelSelected);
|
|
1753
1734
|
}
|
|
1754
1735
|
this.fireSelect({
|
|
1755
1736
|
appointments: oAppointment._aAppointments,
|
|
@@ -1809,13 +1790,13 @@ sap.ui.define([
|
|
|
1809
1790
|
var iNewStartHour,
|
|
1810
1791
|
iNewEndHour;
|
|
1811
1792
|
|
|
1812
|
-
iNewStartHour = oAppointment.
|
|
1793
|
+
iNewStartHour = oAppointment.getStartDate().getHours() - oAppointment.getStartDate().getHours() % iRound;
|
|
1813
1794
|
oAppointmentStartDate.setUTCHours(iNewStartHour);
|
|
1814
1795
|
oAppointmentStartDate.setUTCMinutes(0);
|
|
1815
1796
|
oAppointmentStartDate.setUTCSeconds(0);
|
|
1816
1797
|
oAppointmentStartDate.setUTCMilliseconds(0);
|
|
1817
1798
|
|
|
1818
|
-
iNewEndHour = oAppointment.
|
|
1799
|
+
iNewEndHour = oAppointment.getEndDate().getHours() - oAppointment.getEndDate().getHours() % iRound + iRound;
|
|
1819
1800
|
oAppointmentEndDate.setUTCHours(iNewEndHour);
|
|
1820
1801
|
oAppointmentEndDate.setUTCMinutes(0);
|
|
1821
1802
|
oAppointmentEndDate.setUTCSeconds(0);
|
|
@@ -1976,7 +1957,7 @@ sap.ui.define([
|
|
|
1976
1957
|
|
|
1977
1958
|
if (oAppointment) {
|
|
1978
1959
|
this._sFocusedAppointmentId = oAppointment.getId();
|
|
1979
|
-
var oUTCStartDate = _calculateStartDate.call(this, oAppointment.
|
|
1960
|
+
var oUTCStartDate = _calculateStartDate.call(this, oAppointment.getStartDate());
|
|
1980
1961
|
this.setStartDate(CalendarUtils._createLocalDate(oUTCStartDate, true));
|
|
1981
1962
|
if (!containsOrEquals(this.getDomRef(), document.activeElement)) {
|
|
1982
1963
|
// focus is outside control -> set focus after rerendering
|
|
@@ -2086,13 +2067,13 @@ sap.ui.define([
|
|
|
2086
2067
|
var oLocalStartDate = CalendarUtils._createLocalDate(oStartDate, true);
|
|
2087
2068
|
var oLocalEndDate = CalendarUtils._createLocalDate(oEndDate, true);
|
|
2088
2069
|
for (var i = 0; i < aAppointments.length; i++) {
|
|
2089
|
-
if (aAppointments[i].
|
|
2070
|
+
if (aAppointments[i].getStartDate() >= oLocalStartDate && aAppointments[i].getStartDate() <= oLocalEndDate) {
|
|
2090
2071
|
oAppointment = aAppointments[i];
|
|
2091
2072
|
sId = oAppointment.getId();
|
|
2092
2073
|
if (oEvent.type == "saphome") {
|
|
2093
2074
|
break;
|
|
2094
2075
|
}
|
|
2095
|
-
} else if (aAppointments[i].
|
|
2076
|
+
} else if (aAppointments[i].getStartDate() > oLocalEndDate) {
|
|
2096
2077
|
break;
|
|
2097
2078
|
}
|
|
2098
2079
|
}
|
|
@@ -2193,10 +2174,10 @@ sap.ui.define([
|
|
|
2193
2174
|
}
|
|
2194
2175
|
|
|
2195
2176
|
function _fnDefaultAppointmentsSorter(oApp1, oApp2) {
|
|
2196
|
-
var iResult = oApp1.
|
|
2177
|
+
var iResult = oApp1.getStartDate() - oApp2.getStartDate();
|
|
2197
2178
|
if (iResult == 0) {
|
|
2198
2179
|
// same start date -> longest appointment should be on top
|
|
2199
|
-
iResult = oApp2.
|
|
2180
|
+
iResult = oApp2.getEndDate() - oApp1.getEndDate();
|
|
2200
2181
|
}
|
|
2201
2182
|
return iResult;
|
|
2202
2183
|
}
|