@ui5/webcomponents-localization 0.0.0-dff5837d7 → 0.0.0-e55c2cec6
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/.eslintignore +1 -0
- package/CHANGELOG.md +260 -0
- package/README.md +36 -6
- package/dist/Assets-static.d.ts +1 -0
- package/dist/Assets-static.js +3 -0
- package/dist/Assets-static.js.map +1 -0
- package/dist/Assets.d.ts +1 -0
- package/dist/Assets.js +1 -0
- package/dist/Assets.js.map +1 -0
- package/dist/DateFormat.d.ts +6 -0
- package/dist/DateFormat.js +6 -2
- package/dist/DateFormat.js.map +1 -0
- package/dist/LocaleData.d.ts +6 -0
- package/dist/LocaleData.js +6 -2
- package/dist/LocaleData.js.map +1 -0
- package/dist/dates/CalendarDate.d.ts +41 -0
- package/dist/dates/CalendarDate.js +170 -181
- package/dist/dates/CalendarDate.js.map +1 -0
- package/dist/dates/ExtremeDates.d.ts +5 -0
- package/dist/dates/ExtremeDates.js +29 -0
- package/dist/dates/ExtremeDates.js.map +1 -0
- package/dist/dates/UniversalDate.d.ts +46 -0
- package/dist/dates/UniversalDate.js +5 -0
- package/dist/dates/UniversalDate.js.map +1 -0
- package/dist/dates/calculateWeekNumber.d.ts +4 -0
- package/dist/dates/calculateWeekNumber.js +42 -48
- package/dist/dates/calculateWeekNumber.js.map +1 -0
- package/dist/dates/convertMonthNumbersToMonthNames.d.ts +16 -0
- package/dist/dates/convertMonthNumbersToMonthNames.js +30 -0
- package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -0
- package/dist/dates/getDaysInMonth.d.ts +3 -0
- package/dist/dates/getDaysInMonth.js +10 -0
- package/dist/dates/getDaysInMonth.js.map +1 -0
- package/dist/dates/getRoundedTimestamp.d.ts +7 -0
- package/dist/dates/getRoundedTimestamp.js +14 -0
- package/dist/dates/getRoundedTimestamp.js.map +1 -0
- package/dist/dates/getTodayUTCTimestamp.d.ts +7 -0
- package/dist/dates/getTodayUTCTimestamp.js +8 -0
- package/dist/dates/getTodayUTCTimestamp.js.map +1 -0
- package/dist/dates/modifyDateBy.d.ts +13 -0
- package/dist/dates/modifyDateBy.js +40 -0
- package/dist/dates/modifyDateBy.js.map +1 -0
- package/dist/dates/transformDateToSecondaryType.d.ts +7 -0
- package/dist/dates/transformDateToSecondaryType.js +17 -0
- package/dist/dates/transformDateToSecondaryType.js.map +1 -0
- package/{src/features/calendar/Buddhist.js → dist/features/calendar/Buddhist.d.ts} +0 -0
- package/dist/features/calendar/Buddhist.js +1 -0
- package/dist/features/calendar/Buddhist.js.map +1 -0
- package/{src/features/calendar/Gregorian.js → dist/features/calendar/Gregorian.d.ts} +0 -0
- package/dist/features/calendar/Gregorian.js +1 -0
- package/dist/features/calendar/Gregorian.js.map +1 -0
- package/{src/features/calendar/Islamic.js → dist/features/calendar/Islamic.d.ts} +0 -0
- package/dist/features/calendar/Islamic.js +1 -0
- package/dist/features/calendar/Islamic.js.map +1 -0
- package/{src/features/calendar/Japanese.js → dist/features/calendar/Japanese.d.ts} +0 -0
- package/dist/features/calendar/Japanese.js +1 -0
- package/dist/features/calendar/Japanese.js.map +1 -0
- package/{src/features/calendar/Persian.js → dist/features/calendar/Persian.d.ts} +0 -0
- package/dist/features/calendar/Persian.js +1 -0
- package/dist/features/calendar/Persian.js.map +1 -0
- package/dist/generated/assets/cldr/ar.json +803 -3
- package/dist/generated/assets/cldr/ar_EG.json +803 -3
- package/dist/generated/assets/cldr/ar_SA.json +803 -3
- package/dist/generated/assets/cldr/bg.json +768 -3
- package/dist/generated/assets/cldr/ca.json +802 -3
- package/dist/generated/assets/cldr/cs.json +801 -3
- package/dist/generated/assets/cldr/cy.json +6614 -0
- package/dist/generated/assets/cldr/da.json +768 -3
- package/dist/generated/assets/cldr/de.json +802 -3
- package/dist/generated/assets/cldr/de_AT.json +802 -3
- package/dist/generated/assets/cldr/de_CH.json +802 -3
- package/dist/generated/assets/cldr/el.json +701 -3
- package/dist/generated/assets/cldr/el_CY.json +701 -3
- package/dist/generated/assets/cldr/en.json +767 -3
- package/dist/generated/assets/cldr/en_AU.json +768 -4
- package/dist/generated/assets/cldr/en_GB.json +767 -3
- package/dist/generated/assets/cldr/en_HK.json +767 -3
- package/dist/generated/assets/cldr/en_IE.json +767 -3
- package/dist/generated/assets/cldr/en_IN.json +767 -3
- package/dist/generated/assets/cldr/en_NZ.json +767 -3
- package/dist/generated/assets/cldr/en_PG.json +767 -3
- package/dist/generated/assets/cldr/en_SG.json +767 -3
- package/dist/generated/assets/cldr/en_ZA.json +767 -3
- package/dist/generated/assets/cldr/es.json +734 -3
- package/dist/generated/assets/cldr/es_AR.json +734 -3
- package/dist/generated/assets/cldr/es_BO.json +737 -6
- package/dist/generated/assets/cldr/es_CL.json +737 -6
- package/dist/generated/assets/cldr/es_CO.json +734 -3
- package/dist/generated/assets/cldr/es_MX.json +737 -6
- package/dist/generated/assets/cldr/es_PE.json +737 -6
- package/dist/generated/assets/cldr/es_UY.json +737 -6
- package/dist/generated/assets/cldr/es_VE.json +736 -5
- package/dist/generated/assets/cldr/et.json +767 -3
- package/dist/generated/assets/cldr/fa.json +769 -3
- package/dist/generated/assets/cldr/fi.json +801 -3
- package/dist/generated/assets/cldr/fr.json +767 -3
- package/dist/generated/assets/cldr/fr_BE.json +767 -3
- package/dist/generated/assets/cldr/fr_CA.json +767 -3
- package/dist/generated/assets/cldr/fr_CH.json +767 -3
- package/dist/generated/assets/cldr/fr_LU.json +767 -3
- package/dist/generated/assets/cldr/he.json +802 -3
- package/dist/generated/assets/cldr/hi.json +734 -3
- package/dist/generated/assets/cldr/hr.json +767 -3
- package/dist/generated/assets/cldr/hu.json +835 -3
- package/dist/generated/assets/cldr/id.json +767 -3
- package/dist/generated/assets/cldr/it.json +767 -3
- package/dist/generated/assets/cldr/it_CH.json +767 -3
- package/dist/generated/assets/cldr/ja.json +801 -3
- package/dist/generated/assets/cldr/kk.json +767 -3
- package/dist/generated/assets/cldr/ko.json +801 -3
- package/dist/generated/assets/cldr/lt.json +767 -3
- package/dist/generated/assets/cldr/lv.json +767 -3
- package/dist/generated/assets/cldr/ms.json +735 -3
- package/dist/generated/assets/cldr/nb.json +768 -3
- package/dist/generated/assets/cldr/nl.json +734 -3
- package/dist/generated/assets/cldr/nl_BE.json +734 -3
- package/dist/generated/assets/cldr/pl.json +801 -3
- package/dist/generated/assets/cldr/pt.json +767 -3
- package/dist/generated/assets/cldr/pt_PT.json +767 -3
- package/dist/generated/assets/cldr/ro.json +767 -3
- package/dist/generated/assets/cldr/ru.json +767 -3
- package/dist/generated/assets/cldr/ru_UA.json +767 -3
- package/dist/generated/assets/cldr/sk.json +801 -3
- package/dist/generated/assets/cldr/sl.json +801 -3
- package/dist/generated/assets/cldr/sr.json +767 -3
- package/dist/generated/assets/cldr/sr_Latn.json +5891 -0
- package/dist/generated/assets/cldr/sv.json +768 -3
- package/dist/generated/assets/cldr/th.json +835 -3
- package/dist/generated/assets/cldr/tr.json +835 -3
- package/dist/generated/assets/cldr/uk.json +767 -3
- package/dist/generated/assets/cldr/vi.json +767 -3
- package/dist/generated/assets/cldr/zh_CN.json +803 -4
- package/dist/generated/assets/cldr/zh_HK.json +803 -4
- package/dist/generated/assets/cldr/zh_SG.json +803 -4
- package/dist/generated/assets/cldr/zh_TW.json +802 -3
- package/dist/generated/json-imports/LocaleData-static.js +90 -0
- package/dist/generated/json-imports/LocaleData.js +88 -91
- package/dist/getCachedLocaleDataInstance.d.ts +4 -0
- package/dist/getCachedLocaleDataInstance.js +10 -0
- package/dist/getCachedLocaleDataInstance.js.map +1 -0
- package/dist/locale/getLocaleData.d.ts +11 -0
- package/dist/locale/getLocaleData.js +13 -17
- package/dist/locale/getLocaleData.js.map +1 -0
- package/dist/sap/base/Log.js +28 -37
- package/dist/sap/base/assert.js +5 -10
- package/dist/sap/base/util/LoaderExtensions.d.ts +4 -0
- package/dist/sap/base/util/LoaderExtensions.js +11 -4
- package/dist/sap/base/util/LoaderExtensions.js.map +1 -0
- package/dist/sap/base/util/array/uniqueSort.js +7 -7
- package/dist/sap/base/util/deepEqual.js +1 -5
- package/dist/sap/ui/base/Interface.js +3 -5
- package/dist/sap/ui/base/Metadata.js +1 -3
- package/dist/sap/ui/base/Object.js +26 -2
- package/dist/sap/ui/core/Configuration.d.ts +17 -0
- package/dist/sap/ui/core/Configuration.js +20 -0
- package/dist/sap/ui/core/Configuration.js.map +1 -0
- package/dist/sap/ui/core/Core.d.ts +26 -0
- package/dist/sap/ui/core/Core.js +7 -32
- package/dist/sap/ui/core/Core.js.map +1 -0
- package/dist/sap/ui/core/FormatSettings.d.ts +10 -0
- package/dist/sap/ui/core/FormatSettings.js +13 -0
- package/dist/sap/ui/core/FormatSettings.js.map +1 -0
- package/dist/sap/ui/core/Locale.js +70 -31
- package/dist/sap/ui/core/LocaleData.js +133 -1506
- package/dist/sap/ui/core/date/Buddhist.js +0 -6
- package/dist/sap/ui/core/date/CalendarUtils.js +36 -0
- package/dist/sap/ui/core/date/CalendarWeekNumbering.js +7 -0
- package/dist/sap/ui/core/date/Islamic.js +3 -3
- package/dist/sap/ui/core/date/Japanese.js +4 -4
- package/dist/sap/ui/core/date/UniversalDate.js +82 -23
- package/dist/sap/ui/core/format/DateFormat.js +530 -222
- package/dist/sap/ui/core/format/TimezoneUtil.js +94 -0
- package/package-scripts.js +14 -7
- package/package.json +13 -14
- package/src/Assets-static.ts +2 -0
- package/src/{Assets.js → Assets.ts} +0 -0
- package/src/DateFormat.ts +8 -0
- package/src/LocaleData.ts +8 -0
- package/src/dates/{CalendarDate.js → CalendarDate.ts} +64 -35
- package/src/dates/ExtremeDates.ts +40 -0
- package/src/dates/UniversalDate.ts +51 -0
- package/src/dates/{calculateWeekNumber.js → calculateWeekNumber.ts} +5 -3
- package/src/dates/convertMonthNumbersToMonthNames.ts +34 -0
- package/src/dates/getDaysInMonth.ts +11 -0
- package/src/dates/getRoundedTimestamp.ts +14 -0
- package/src/dates/getTodayUTCTimestamp.ts +10 -0
- package/src/dates/modifyDateBy.ts +42 -0
- package/src/dates/transformDateToSecondaryType.ts +21 -0
- package/src/features/calendar/Buddhist.ts +1 -0
- package/src/features/calendar/Gregorian.ts +1 -0
- package/src/features/calendar/Islamic.ts +1 -0
- package/src/features/calendar/Japanese.ts +1 -0
- package/src/features/calendar/Persian.ts +1 -0
- package/src/getCachedLocaleDataInstance.ts +15 -0
- package/src/locale/{getLocaleData.js → getLocaleData.ts} +9 -8
- package/src/sap/base/util/LoaderExtensions.ts +17 -0
- package/src/sap/ui/core/{Core.js → Configuration.ts} +5 -21
- package/src/sap/ui/core/Core.ts +15 -0
- package/src/sap/ui/core/FormatSettings.ts +15 -0
- package/tsconfig.json +13 -0
- package/used-modules.txt +4 -1
- package/src/DateFormat.js +0 -3
- package/src/LocaleData.js +0 -3
- package/src/sap/base/util/LoaderExtensions.js +0 -7
@@ -1,193 +1,182 @@
|
|
1
|
-
import UniversalDate from "
|
2
|
-
|
1
|
+
import UniversalDate from "./UniversalDate.js";
|
3
2
|
class CalendarDate {
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
const oCalDate = new CalendarDate(0, 0, 1);
|
160
|
-
oCalDate._oUDate = UniversalDate.getInstance(new Date(iTimestamp), sCalendarType);
|
161
|
-
return oCalDate;
|
162
|
-
}
|
3
|
+
constructor(year, month, date, calendarType) {
|
4
|
+
let aArgs = arguments, // eslint-disable-line
|
5
|
+
oJSDate, oNow, sCalendarType;
|
6
|
+
switch (aArgs.length) {
|
7
|
+
case 0: // defaults to the current date
|
8
|
+
oNow = new Date();
|
9
|
+
return this.constructor(oNow.getFullYear(), oNow.getMonth(), oNow.getDate());
|
10
|
+
case 1: // CalendarDate
|
11
|
+
case 2: // CalendarDate, sCalendarType
|
12
|
+
if (!(aArgs[0] instanceof CalendarDate)) {
|
13
|
+
throw new Error("Invalid arguments: the first argument must be of type CalendarDate.");
|
14
|
+
}
|
15
|
+
sCalendarType = aArgs[1] ? aArgs[1] : aArgs[0]._oUDate.sCalendarType;
|
16
|
+
// Use source.valueOf() (returns the same point of time regardless calendar type) instead of
|
17
|
+
// source's getters to avoid non-gregorian Year, Month and Date may be used to construct a Gregorian date
|
18
|
+
oJSDate = new Date(aArgs[0].valueOf());
|
19
|
+
// Make this date really local. Now getters are safe.
|
20
|
+
oJSDate.setFullYear(oJSDate.getUTCFullYear(), oJSDate.getUTCMonth(), oJSDate.getUTCDate());
|
21
|
+
oJSDate.setHours(oJSDate.getUTCHours(), oJSDate.getUTCMinutes(), oJSDate.getUTCSeconds(), oJSDate.getUTCMilliseconds());
|
22
|
+
this._oUDate = createUniversalUTCDate(oJSDate, sCalendarType);
|
23
|
+
break;
|
24
|
+
case 3: // year, month, date
|
25
|
+
case 4: // year, month, date, sCalendarType
|
26
|
+
checkNumericLike(aArgs[0], `Invalid year: ${aArgs[0]}`);
|
27
|
+
checkNumericLike(aArgs[1], `Invalid month: ${aArgs[1]}`);
|
28
|
+
checkNumericLike(aArgs[2], `Invalid date: ${aArgs[2]}`);
|
29
|
+
oJSDate = new Date(0, 0, 1);
|
30
|
+
oJSDate.setFullYear(aArgs[0], aArgs[1], aArgs[2]); // 2 digits year is not supported. If so, it is considered as full year as well.
|
31
|
+
if (aArgs[3]) {
|
32
|
+
sCalendarType = aArgs[3];
|
33
|
+
}
|
34
|
+
this._oUDate = createUniversalUTCDate(oJSDate, sCalendarType);
|
35
|
+
break;
|
36
|
+
default:
|
37
|
+
throw new Error(`${"Invalid arguments. Accepted arguments are: 1) oCalendarDate, (optional)calendarType"
|
38
|
+
+ "or 2) year, month, date, (optional) calendarType"}${aArgs}`);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
getYear() {
|
42
|
+
return this._oUDate.getUTCFullYear();
|
43
|
+
}
|
44
|
+
setYear(year) {
|
45
|
+
checkNumericLike(year, `Invalid year: ${year}`);
|
46
|
+
this._oUDate.setUTCFullYear(year);
|
47
|
+
return this;
|
48
|
+
}
|
49
|
+
getMonth() {
|
50
|
+
return this._oUDate.getUTCMonth();
|
51
|
+
}
|
52
|
+
/**
|
53
|
+
* Sets the given month as ordinal month of the year.
|
54
|
+
* @param {int} month An integer between 0 and 11, representing the months January through December( or their
|
55
|
+
* equivalent month names for the given calendar).
|
56
|
+
* If the specified value is is outside of the expected range, this method attempts to update the date information
|
57
|
+
* accordingly. For example, if 12 is given as a month, the year will be incremented by 1, and 1 will be used for month.
|
58
|
+
* @param {int} [date] An integer between 1 and 31, representing the day of the month, but other values are allowed.
|
59
|
+
* 0 will result in the previous month's last day.
|
60
|
+
* -1 will result in the day before the previous month's last day.
|
61
|
+
* 32 will result in:
|
62
|
+
* - first day of the next month if the current month has 31 days.
|
63
|
+
* - second day of the next month if the current month has 30 days.
|
64
|
+
* Other value will result in adding or subtracting days according to the given value.
|
65
|
+
* @returns {sap.ui.unified.calendar.CalendarDate} <code>this</code> for method chaining.
|
66
|
+
*/
|
67
|
+
setMonth(month, date) {
|
68
|
+
checkNumericLike(month, `Invalid month: ${month}`);
|
69
|
+
if (date || date === 0) {
|
70
|
+
checkNumericLike(date, `Invalid date: ${date}`);
|
71
|
+
this._oUDate.setUTCMonth(month, date);
|
72
|
+
}
|
73
|
+
else {
|
74
|
+
this._oUDate.setUTCMonth(month);
|
75
|
+
}
|
76
|
+
return this;
|
77
|
+
}
|
78
|
+
getDate() {
|
79
|
+
return this._oUDate.getUTCDate();
|
80
|
+
}
|
81
|
+
setDate(date) {
|
82
|
+
checkNumericLike(date, `Invalid date: ${date}`);
|
83
|
+
this._oUDate.setUTCDate(date);
|
84
|
+
return this;
|
85
|
+
}
|
86
|
+
getDay() {
|
87
|
+
return this._oUDate.getUTCDay();
|
88
|
+
}
|
89
|
+
getCalendarType() {
|
90
|
+
return this._oUDate.sCalendarType;
|
91
|
+
}
|
92
|
+
isBefore(oCalendarDate) {
|
93
|
+
checkCalendarDate(oCalendarDate);
|
94
|
+
return this.valueOf() < oCalendarDate.valueOf();
|
95
|
+
}
|
96
|
+
isAfter(oCalendarDate) {
|
97
|
+
checkCalendarDate(oCalendarDate);
|
98
|
+
return this.valueOf() > oCalendarDate.valueOf();
|
99
|
+
}
|
100
|
+
isSameOrBefore(oCalendarDate) {
|
101
|
+
checkCalendarDate(oCalendarDate);
|
102
|
+
return this.valueOf() <= oCalendarDate.valueOf();
|
103
|
+
}
|
104
|
+
isSameOrAfter(oCalendarDate) {
|
105
|
+
checkCalendarDate(oCalendarDate);
|
106
|
+
return this.valueOf() >= oCalendarDate.valueOf();
|
107
|
+
}
|
108
|
+
isSame(oCalendarDate) {
|
109
|
+
checkCalendarDate(oCalendarDate);
|
110
|
+
return this.valueOf() === oCalendarDate.valueOf();
|
111
|
+
}
|
112
|
+
toLocalJSDate() {
|
113
|
+
// Use this._oUDate.getTime()(returns the same point of time regardless calendar type) instead of
|
114
|
+
// this._oUDate's getters to avoid non-gregorian Year, Month and Date to be used to construct a Gregorian date
|
115
|
+
const oLocalDate = new Date(this._oUDate.getTime());
|
116
|
+
// Make this date really local. Now getters are safe.
|
117
|
+
oLocalDate.setFullYear(oLocalDate.getUTCFullYear(), oLocalDate.getUTCMonth(), oLocalDate.getUTCDate());
|
118
|
+
oLocalDate.setHours(0, 0, 0, 0);
|
119
|
+
return oLocalDate;
|
120
|
+
}
|
121
|
+
toUTCJSDate() {
|
122
|
+
// Use this._oUDate.getTime()(returns the same point of time regardless calendar type) instead of
|
123
|
+
// this._oUDate's getters to avoid non-gregorian Year, Month and Date to be used to construct a Gregorian date
|
124
|
+
const oUTCDate = new Date(this._oUDate.getTime());
|
125
|
+
oUTCDate.setUTCHours(0, 0, 0, 0);
|
126
|
+
return oUTCDate;
|
127
|
+
}
|
128
|
+
toString() {
|
129
|
+
return `${this._oUDate.sCalendarType}: ${this.getYear()}/${this.getMonth() + 1}/${this.getDate()}`;
|
130
|
+
}
|
131
|
+
valueOf() {
|
132
|
+
return this._oUDate.getTime();
|
133
|
+
}
|
134
|
+
static fromLocalJSDate(oJSDate, sCalendarType) {
|
135
|
+
// Cross frame check for a date should be performed here otherwise setDateValue would fail in OPA tests
|
136
|
+
// because Date object in the test is different than the Date object in the application (due to the iframe).
|
137
|
+
// We can use jQuery.type or this method:
|
138
|
+
function isValidDate(date) {
|
139
|
+
return date && Object.prototype.toString.call(date) === "[object Date]" && !isNaN(date); // eslint-disable-line
|
140
|
+
}
|
141
|
+
if (!isValidDate(oJSDate)) {
|
142
|
+
throw new Error(`Date parameter must be a JavaScript Date object: [${oJSDate}].`);
|
143
|
+
}
|
144
|
+
return new CalendarDate(oJSDate.getFullYear(), oJSDate.getMonth(), oJSDate.getDate(), sCalendarType);
|
145
|
+
}
|
146
|
+
static fromTimestamp(iTimestamp, sCalendarType) {
|
147
|
+
const oCalDate = new CalendarDate(0, 0, 1);
|
148
|
+
let oUDate;
|
149
|
+
try {
|
150
|
+
oUDate = UniversalDate.getInstance(new Date(iTimestamp), sCalendarType);
|
151
|
+
}
|
152
|
+
catch (e) {
|
153
|
+
oUDate = new Date(NaN); // UniversalDate.getInstance may now throw an Exception - keep the old behavior
|
154
|
+
}
|
155
|
+
oCalDate._oUDate = oUDate;
|
156
|
+
return oCalDate;
|
157
|
+
}
|
163
158
|
}
|
164
|
-
|
165
159
|
function createUniversalUTCDate(oDate, sCalendarType) {
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
160
|
+
if (sCalendarType) {
|
161
|
+
return UniversalDate.getInstance(createUTCDate(oDate), sCalendarType);
|
162
|
+
}
|
163
|
+
return new UniversalDate(createUTCDate(oDate).getTime());
|
170
164
|
}
|
171
|
-
|
172
165
|
/**
|
173
166
|
* Creates a JavaScript UTC Date corresponding to the given JavaScript Date.
|
174
167
|
* @param {Date} oDate JavaScript date object. Time related information is cut.
|
175
168
|
* @returns {Date} JavaScript date created from the date object, but this time considered as UTC date information.
|
176
169
|
*/
|
177
170
|
function createUTCDate(oDate) {
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
return oUTCDate;
|
171
|
+
const oUTCDate = new Date(Date.UTC(0, 0, 1));
|
172
|
+
oUTCDate.setUTCFullYear(oDate.getFullYear(), oDate.getMonth(), oDate.getDate());
|
173
|
+
return oUTCDate;
|
183
174
|
}
|
184
|
-
|
185
175
|
function checkCalendarDate(oCalendarDate) {
|
186
|
-
|
187
|
-
|
188
|
-
|
176
|
+
if (!(oCalendarDate instanceof CalendarDate)) {
|
177
|
+
throw new Error(`Invalid calendar date: [${oCalendarDate}]. Expected: CalendarDate`);
|
178
|
+
}
|
189
179
|
}
|
190
|
-
|
191
180
|
/**
|
192
181
|
* Verifies the given value is numeric like, i.e. 3, "3" and throws an error if it is not.
|
193
182
|
* @param {any} value The value of any type to check. If null or undefined, this method throws an error.
|
@@ -195,9 +184,9 @@ function checkCalendarDate(oCalendarDate) {
|
|
195
184
|
* @throws will throw an error if the value is null or undefined or is not like a number
|
196
185
|
*/
|
197
186
|
function checkNumericLike(value, message) {
|
198
|
-
|
199
|
-
|
200
|
-
|
187
|
+
if (value === undefined || value === Infinity || isNaN(value)) { // eslint-disable-line
|
188
|
+
throw message;
|
189
|
+
}
|
201
190
|
}
|
202
|
-
|
203
191
|
export default CalendarDate;
|
192
|
+
//# sourceMappingURL=CalendarDate.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CalendarDate.js","sourceRoot":"","sources":["../../src/dates/CalendarDate.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import CalendarType from "@ui5/webcomponents-base/dist/types/CalendarType.js";
|
2
|
+
import CalendarDate from "./CalendarDate.js";
|
3
|
+
declare const getMinCalendarDate: (primaryCalendarType: CalendarType) => CalendarDate;
|
4
|
+
declare const getMaxCalendarDate: (primaryCalendarType: CalendarType) => CalendarDate;
|
5
|
+
export { getMinCalendarDate, getMaxCalendarDate, };
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import CalendarDate from "./CalendarDate.js";
|
2
|
+
const cache = new Map();
|
3
|
+
const getMinCalendarDate = (primaryCalendarType) => {
|
4
|
+
const key = `min ${primaryCalendarType}`;
|
5
|
+
if (!cache.has(key)) {
|
6
|
+
const minDate = new CalendarDate(1, 0, 1, primaryCalendarType);
|
7
|
+
minDate.setYear(1);
|
8
|
+
minDate.setMonth(0);
|
9
|
+
minDate.setDate(1);
|
10
|
+
cache.set(key, minDate);
|
11
|
+
}
|
12
|
+
return cache.get(key);
|
13
|
+
};
|
14
|
+
const getMaxCalendarDate = (primaryCalendarType) => {
|
15
|
+
const key = `max ${primaryCalendarType}`;
|
16
|
+
if (!cache.has(key)) {
|
17
|
+
const maxDate = new CalendarDate(1, 0, 1, primaryCalendarType);
|
18
|
+
maxDate.setYear(9999);
|
19
|
+
maxDate.setMonth(11);
|
20
|
+
const tempDate = new CalendarDate(maxDate, primaryCalendarType);
|
21
|
+
tempDate.setDate(1);
|
22
|
+
tempDate.setMonth(tempDate.getMonth() + 1, 0);
|
23
|
+
maxDate.setDate(tempDate.getDate()); // 31st for Gregorian Calendar
|
24
|
+
cache.set(key, maxDate);
|
25
|
+
}
|
26
|
+
return cache.get(key);
|
27
|
+
};
|
28
|
+
export { getMinCalendarDate, getMaxCalendarDate, };
|
29
|
+
//# sourceMappingURL=ExtremeDates.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ExtremeDates.js","sourceRoot":"","sources":["../../src/dates/ExtremeDates.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAwB,CAAC;AAE9C,MAAM,kBAAkB,GAAG,CAAC,mBAAiC,EAAE,EAAE;IAChE,MAAM,GAAG,GAAG,OAAO,mBAAmB,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACpB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAC/D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACxB;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,mBAAiC,EAAE,EAAE;IAChE,MAAM,GAAG,GAAG,OAAO,mBAAmB,EAAE,CAAC;IAEzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACpB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAC/D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrB,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAChE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA,8BAA8B;QAClE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACxB;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;AACxB,CAAC,CAAC;AAEF,OAAO,EACN,kBAAkB,EAClB,kBAAkB,GAClB,CAAC"}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
import type CalendarType from "@ui5/webcomponents-base/dist/types/CalendarType.js";
|
2
|
+
type UniversalDate = {
|
3
|
+
new (time: number): UniversalDate;
|
4
|
+
oDate: Date;
|
5
|
+
sCalendarType: string;
|
6
|
+
getInstance: (oDate: Date, sCalendarType?: CalendarType) => UniversalDate;
|
7
|
+
getDate: () => number;
|
8
|
+
getMonth: () => number;
|
9
|
+
getFullYear: () => number;
|
10
|
+
getYear: () => number;
|
11
|
+
getDay: () => number;
|
12
|
+
getHours: () => number;
|
13
|
+
getMinutes: () => number;
|
14
|
+
getSeconds: () => number;
|
15
|
+
getMilliseconds: () => number;
|
16
|
+
getUTCDate: () => number;
|
17
|
+
getUTCMonth: () => number;
|
18
|
+
getUTCFullYear: () => number;
|
19
|
+
getUTCDay: () => number;
|
20
|
+
getUTCHours: () => number;
|
21
|
+
getUTCMinutes: () => number;
|
22
|
+
getUTCSeconds: () => number;
|
23
|
+
getUTCMilliseconds: () => number;
|
24
|
+
getTime: () => number;
|
25
|
+
valueOf: () => number;
|
26
|
+
getTimezoneOffset: () => number;
|
27
|
+
toString: () => string;
|
28
|
+
toDateString: () => string;
|
29
|
+
setDate: (dayValue: number) => number;
|
30
|
+
setFullYear: (yearValue: number, monthValue?: number, dateValue?: number) => number;
|
31
|
+
setYear: (yearValue: number) => number;
|
32
|
+
setMonth: (monthValue: number, dayValue?: number) => number;
|
33
|
+
setHours: (hoursValue: number, minutesValue?: number, secondsValue?: number, msValue?: number) => number;
|
34
|
+
setMinutes: (minutesValue: number, secondsValue?: number, msValue?: number) => number;
|
35
|
+
setSeconds: (secondsValue: number, msValue?: number) => number;
|
36
|
+
setMilliseconds: (setMilliseconds: number) => number;
|
37
|
+
setUTCDate: (dayValue: number) => number;
|
38
|
+
setUTCFullYear: (yearValue: number, monthValue?: number, dayValue?: number) => number;
|
39
|
+
setUTCMonth: (monthValue: number, dayValue?: number) => number;
|
40
|
+
setUTCHours: (hoursValue: number, minutesValue?: number, secondsValue?: number, msValue?: number) => number;
|
41
|
+
setUTCMinutes: (minutesValue: number, secondsValue?: number, msValue?: number) => number;
|
42
|
+
setUTCSeconds: (secondsValue: number, msValue?: number) => number;
|
43
|
+
setUTCMilliseconds: (setMilliseconds: number) => number;
|
44
|
+
};
|
45
|
+
declare const UniversalDate: UniversalDate;
|
46
|
+
export default UniversalDate;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"UniversalDate.js","sourceRoot":"","sources":["../../src/dates/UniversalDate.ts"],"names":[],"mappings":"AACA,aAAa;AACb,OAAO,mBAAmB,MAAM,sCAAsC,CAAC;AA8CvE,MAAM,aAAa,GAAkB,mBAAmB,CAAC;AAEzD,eAAe,aAAa,CAAC"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import type Locale from "@ui5/webcomponents-base/dist/locale/Locale.js";
|
2
|
+
import type LocaleData from "../LocaleData.js";
|
3
|
+
declare const calculateWeekNumber: (confFirstDayOfWeek: number | undefined, oDate: Date, iYear: number, oLocale: Locale, oLocaleData: LocaleData) => number;
|
4
|
+
export default calculateWeekNumber;
|
@@ -1,51 +1,45 @@
|
|
1
|
-
import UniversalDate from "
|
2
|
-
|
1
|
+
import UniversalDate from "./UniversalDate.js";
|
3
2
|
const calculateWeekNumber = (confFirstDayOfWeek, oDate, iYear, oLocale, oLocaleData) => {
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
iWeekNum = Math.round((oThursday.getTime() - oFirstThursday.getTime()) / 86400000 / 7) + 1;
|
46
|
-
}
|
47
|
-
|
48
|
-
return iWeekNum;
|
3
|
+
let iWeekNum = 0;
|
4
|
+
let iWeekDay = 0;
|
5
|
+
const iFirstDayOfWeek = Number.isInteger(confFirstDayOfWeek) ? confFirstDayOfWeek : oLocaleData.getFirstDayOfWeek();
|
6
|
+
// search Locale for containing "en-US", since sometimes
|
7
|
+
// when any user settings have been defined, subtag "sapufmt" is added to the locale name
|
8
|
+
// this is described inside sap.ui.core.Configuration file
|
9
|
+
if (oLocale && (oLocale.getLanguage() === "en" && oLocale.getRegion() === "US")) {
|
10
|
+
/*
|
11
|
+
* in US the week starts with Sunday
|
12
|
+
* The first week of the year starts with January 1st. But Dec. 31 is still in the last year
|
13
|
+
* So the week beginning in December and ending in January has 2 week numbers
|
14
|
+
*/
|
15
|
+
const oJanFirst = new UniversalDate(oDate.getTime());
|
16
|
+
oJanFirst.setUTCFullYear(iYear, 0, 1);
|
17
|
+
iWeekDay = oJanFirst.getUTCDay();
|
18
|
+
// get the date for the same weekday like jan 1.
|
19
|
+
const oCheckDate = new UniversalDate(oDate.getTime());
|
20
|
+
oCheckDate.setUTCDate(oCheckDate.getUTCDate() - oCheckDate.getUTCDay() + iWeekDay);
|
21
|
+
iWeekNum = Math.round((oCheckDate.getTime() - oJanFirst.getTime()) / 86400000 / 7) + 1;
|
22
|
+
}
|
23
|
+
else {
|
24
|
+
// normally the first week of the year is the one where the first Thursday of the year is
|
25
|
+
// find Thursday of this week
|
26
|
+
// if the checked day is before the 1. day of the week use a day of the previous week to check
|
27
|
+
const oThursday = new UniversalDate(oDate.getTime());
|
28
|
+
oThursday.setUTCDate(oThursday.getUTCDate() - iFirstDayOfWeek);
|
29
|
+
iWeekDay = oThursday.getUTCDay();
|
30
|
+
oThursday.setUTCDate(oThursday.getUTCDate() - iWeekDay + 4);
|
31
|
+
const oFirstDayOfYear = new UniversalDate(oThursday.getTime());
|
32
|
+
oFirstDayOfYear.setUTCMonth(0, 1);
|
33
|
+
iWeekDay = oFirstDayOfYear.getUTCDay();
|
34
|
+
let iAddDays = 0;
|
35
|
+
if (iWeekDay > 4) {
|
36
|
+
iAddDays = 7; // first day of year is after Thursday, so first Thursday is in the next week
|
37
|
+
}
|
38
|
+
const oFirstThursday = new UniversalDate(oFirstDayOfYear.getTime());
|
39
|
+
oFirstThursday.setUTCDate(1 - iWeekDay + 4 + iAddDays);
|
40
|
+
iWeekNum = Math.round((oThursday.getTime() - oFirstThursday.getTime()) / 86400000 / 7) + 1;
|
41
|
+
}
|
42
|
+
return iWeekNum;
|
49
43
|
};
|
50
|
-
|
51
44
|
export default calculateWeekNumber;
|
45
|
+
//# sourceMappingURL=calculateWeekNumber.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"calculateWeekNumber.js","sourceRoot":"","sources":["../../src/dates/calculateWeekNumber.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAG/C,MAAM,mBAAmB,GAAG,CAAC,kBAAsC,EAAE,KAAW,EAAE,KAAa,EAAE,OAAe,EAAE,WAAuB,EAAE,EAAE;IAC5I,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,kBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC;IAErH,wDAAwD;IACxD,yFAAyF;IACzF,0DAA0D;IAC1D,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,CAAC,EAAE;QAChF;;;;cAIG;QACH,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,QAAQ,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QAEjC,gDAAgD;QAChD,MAAM,UAAU,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC;QAEnF,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KACvF;SAAM;QACN,yFAAyF;QACzF,6BAA6B;QAC7B,8FAA8F;QAC9F,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,eAAe,CAAC,CAAC;QAC/D,QAAQ,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QACjC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC;QAE5D,MAAM,eAAe,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,QAAQ,GAAG,eAAe,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,CAAC,EAAE;YACjB,QAAQ,GAAG,CAAC,CAAC,CAAC,6EAA6E;SAC3F;QACD,MAAM,cAAc,GAAG,IAAI,aAAa,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,cAAc,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAEvD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KAC3F;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import type CalendarType from "@ui5/webcomponents-base/dist/types/CalendarType.js";
|
2
|
+
/**
|
3
|
+
* Convert month number to month name (text).
|
4
|
+
* If the numbers of the two months are the same you will get the name of the month,
|
5
|
+
* otherwise you will get the two names separated by a dash
|
6
|
+
*
|
7
|
+
* @param firstMonth CalendarDate Month
|
8
|
+
* @param lastMonth CalendarDate Month
|
9
|
+
* @param calendarType calendar type
|
10
|
+
* @returns {String}
|
11
|
+
*/
|
12
|
+
declare const convertMonthNumbersToMonthNames: (firstMonth: number, lastMonth: number, calendarType?: CalendarType) => {
|
13
|
+
text: any;
|
14
|
+
textInfo: any;
|
15
|
+
};
|
16
|
+
export default convertMonthNumbersToMonthNames;
|