@ui5/webcomponents-localization 0.0.0-8393c7cdd → 0.0.0-896d5863e

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 (253) hide show
  1. package/.eslintignore +2 -1
  2. package/.npsrc.json +3 -0
  3. package/CHANGELOG.md +1792 -0
  4. package/README.md +3 -5
  5. package/dist/.tsbuildinfo +1 -0
  6. package/dist/Assets-fetch.d.ts +1 -0
  7. package/dist/Assets-fetch.js +3 -0
  8. package/dist/Assets-fetch.js.map +1 -0
  9. package/dist/Assets-node.d.ts +11 -0
  10. package/dist/Assets-node.js +12 -0
  11. package/dist/Assets-node.js.map +1 -0
  12. package/dist/Assets.d.ts +1 -0
  13. package/dist/Assets.js +1 -0
  14. package/dist/Assets.js.map +1 -0
  15. package/dist/CalendarUtils.d.ts +3 -0
  16. package/dist/CalendarUtils.js +6 -0
  17. package/dist/CalendarUtils.js.map +1 -0
  18. package/dist/DateFormat.d.ts +5 -0
  19. package/dist/DateFormat.js +6 -2
  20. package/dist/DateFormat.js.map +1 -0
  21. package/dist/LocaleData.d.ts +5 -0
  22. package/dist/LocaleData.js +6 -2
  23. package/dist/LocaleData.js.map +1 -0
  24. package/dist/dates/CalendarDate.d.ts +42 -0
  25. package/dist/dates/CalendarDate.js +171 -207
  26. package/dist/dates/CalendarDate.js.map +1 -0
  27. package/dist/dates/ExtremeDates.d.ts +5 -0
  28. package/dist/dates/ExtremeDates.js +25 -35
  29. package/dist/dates/ExtremeDates.js.map +1 -0
  30. package/dist/dates/UI5Date.d.ts +5 -0
  31. package/dist/dates/UI5Date.js +7 -0
  32. package/dist/dates/UI5Date.js.map +1 -0
  33. package/dist/dates/UniversalDate.d.ts +47 -0
  34. package/dist/dates/UniversalDate.js +5 -0
  35. package/dist/dates/UniversalDate.js.map +1 -0
  36. package/dist/dates/convertMonthNumbersToMonthNames.d.ts +16 -0
  37. package/dist/dates/convertMonthNumbersToMonthNames.js +15 -18
  38. package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -0
  39. package/dist/dates/getDaysInMonth.d.ts +3 -0
  40. package/dist/dates/getDaysInMonth.js +7 -8
  41. package/dist/dates/getDaysInMonth.js.map +1 -0
  42. package/dist/dates/getRoundedTimestamp.d.ts +7 -0
  43. package/dist/dates/getRoundedTimestamp.js +10 -9
  44. package/dist/dates/getRoundedTimestamp.js.map +1 -0
  45. package/dist/dates/getTodayUTCTimestamp.d.ts +7 -0
  46. package/dist/dates/getTodayUTCTimestamp.js +3 -3
  47. package/dist/dates/getTodayUTCTimestamp.js.map +1 -0
  48. package/dist/dates/modifyDateBy.d.ts +14 -0
  49. package/dist/dates/modifyDateBy.js +42 -29
  50. package/dist/dates/modifyDateBy.js.map +1 -0
  51. package/dist/dates/transformDateToSecondaryType.d.ts +7 -0
  52. package/dist/dates/transformDateToSecondaryType.js +13 -15
  53. package/dist/dates/transformDateToSecondaryType.js.map +1 -0
  54. package/dist/features/calendar/Buddhist.js +1 -0
  55. package/dist/features/calendar/Buddhist.js.map +1 -0
  56. package/dist/features/calendar/Gregorian.js +1 -0
  57. package/dist/features/calendar/Gregorian.js.map +1 -0
  58. package/dist/features/calendar/Islamic.js +1 -0
  59. package/dist/features/calendar/Islamic.js.map +1 -0
  60. package/dist/features/calendar/Japanese.js +1 -0
  61. package/dist/features/calendar/Japanese.js.map +1 -0
  62. package/dist/features/calendar/Persian.js +1 -0
  63. package/dist/features/calendar/Persian.js.map +1 -0
  64. package/dist/generated/assets/cldr/Unicode-Data-Files-LICENSE.txt +27 -0
  65. package/dist/generated/assets/cldr/ar.json +1690 -511
  66. package/dist/generated/assets/cldr/ar_EG.json +1690 -511
  67. package/dist/generated/assets/cldr/ar_SA.json +1785 -607
  68. package/dist/generated/assets/cldr/bg.json +1663 -663
  69. package/dist/generated/assets/cldr/ca.json +1635 -550
  70. package/dist/generated/assets/cldr/cnr.json +6169 -0
  71. package/dist/generated/assets/cldr/cs.json +1618 -409
  72. package/dist/generated/assets/cldr/cy.json +1686 -640
  73. package/dist/generated/assets/cldr/da.json +1579 -542
  74. package/dist/generated/assets/cldr/de.json +1504 -374
  75. package/dist/generated/assets/cldr/de_AT.json +1494 -364
  76. package/dist/generated/assets/cldr/de_CH.json +1513 -383
  77. package/dist/generated/assets/cldr/el.json +1220 -273
  78. package/dist/generated/assets/cldr/el_CY.json +1220 -273
  79. package/dist/generated/assets/cldr/en.json +1619 -548
  80. package/dist/generated/assets/cldr/en_AU.json +1756 -636
  81. package/dist/generated/assets/cldr/en_GB.json +1630 -528
  82. package/dist/generated/assets/cldr/en_HK.json +1713 -608
  83. package/dist/generated/assets/cldr/en_IE.json +1678 -576
  84. package/dist/generated/assets/cldr/en_IN.json +1661 -555
  85. package/dist/generated/assets/cldr/en_NZ.json +1697 -595
  86. package/dist/generated/assets/cldr/en_PG.json +1698 -596
  87. package/dist/generated/assets/cldr/en_SG.json +1687 -582
  88. package/dist/generated/assets/cldr/en_ZA.json +1675 -573
  89. package/dist/generated/assets/cldr/es.json +1893 -704
  90. package/dist/generated/assets/cldr/es_AR.json +1835 -645
  91. package/dist/generated/assets/cldr/es_BO.json +1880 -690
  92. package/dist/generated/assets/cldr/es_CL.json +1721 -639
  93. package/dist/generated/assets/cldr/es_CO.json +1637 -554
  94. package/dist/generated/assets/cldr/es_MX.json +2050 -860
  95. package/dist/generated/assets/cldr/es_PE.json +1565 -591
  96. package/dist/generated/assets/cldr/es_UY.json +1593 -619
  97. package/dist/generated/assets/cldr/es_VE.json +1611 -637
  98. package/dist/generated/assets/cldr/et.json +1426 -368
  99. package/dist/generated/assets/cldr/fa.json +1548 -483
  100. package/dist/generated/assets/cldr/fi.json +1528 -343
  101. package/dist/generated/assets/cldr/fr.json +1435 -419
  102. package/dist/generated/assets/cldr/fr_BE.json +1432 -416
  103. package/dist/generated/assets/cldr/fr_CA.json +1571 -555
  104. package/dist/generated/assets/cldr/fr_CH.json +1385 -369
  105. package/dist/generated/assets/cldr/fr_LU.json +1435 -419
  106. package/dist/generated/assets/cldr/he.json +1697 -536
  107. package/dist/generated/assets/cldr/hi.json +1221 -193
  108. package/dist/generated/assets/cldr/hr.json +1760 -485
  109. package/dist/generated/assets/cldr/hu.json +1390 -303
  110. package/dist/generated/assets/cldr/id.json +1640 -570
  111. package/dist/generated/assets/cldr/it.json +1489 -455
  112. package/dist/generated/assets/cldr/it_CH.json +1489 -455
  113. package/dist/generated/assets/cldr/ja.json +1143 -86
  114. package/dist/generated/assets/cldr/kk.json +1782 -570
  115. package/dist/generated/assets/cldr/ko.json +1192 -162
  116. package/dist/generated/assets/cldr/lt.json +1383 -288
  117. package/dist/generated/assets/cldr/lv.json +1369 -369
  118. package/dist/generated/assets/cldr/mk.json +6045 -0
  119. package/dist/generated/assets/cldr/ms.json +1598 -551
  120. package/dist/generated/assets/cldr/nb.json +1265 -209
  121. package/dist/generated/assets/cldr/nl.json +1741 -425
  122. package/dist/generated/assets/cldr/nl_BE.json +1741 -425
  123. package/dist/generated/assets/cldr/pl.json +1903 -492
  124. package/dist/generated/assets/cldr/pt.json +1913 -605
  125. package/dist/generated/assets/cldr/pt_PT.json +1871 -633
  126. package/dist/generated/assets/cldr/ro.json +1590 -482
  127. package/dist/generated/assets/cldr/ru.json +1608 -514
  128. package/dist/generated/assets/cldr/ru_UA.json +1602 -508
  129. package/dist/generated/assets/cldr/sk.json +1629 -569
  130. package/dist/generated/assets/cldr/sl.json +1532 -430
  131. package/dist/generated/assets/cldr/sr.json +1459 -346
  132. package/dist/generated/assets/cldr/sr_Latn.json +2088 -991
  133. package/dist/generated/assets/cldr/sv.json +1508 -445
  134. package/dist/generated/assets/cldr/th.json +1313 -237
  135. package/dist/generated/assets/cldr/tr.json +1549 -436
  136. package/dist/generated/assets/cldr/uk.json +1619 -520
  137. package/dist/generated/assets/cldr/vi.json +1423 -429
  138. package/dist/generated/assets/cldr/zh_CN.json +1425 -342
  139. package/dist/generated/assets/cldr/zh_HK.json +1396 -312
  140. package/dist/generated/assets/cldr/zh_SG.json +1401 -317
  141. package/dist/generated/assets/cldr/zh_TW.json +1256 -193
  142. package/dist/generated/json-imports/LocaleData-fetch.d.ts +1 -0
  143. package/dist/generated/json-imports/LocaleData-fetch.js +93 -0
  144. package/dist/generated/json-imports/LocaleData-fetch.js.map +1 -0
  145. package/dist/generated/json-imports/LocaleData-node.d.ts +1 -0
  146. package/dist/generated/json-imports/LocaleData-node.js +93 -0
  147. package/dist/generated/json-imports/LocaleData-node.js.map +1 -0
  148. package/dist/generated/json-imports/LocaleData.d.ts +1 -0
  149. package/dist/generated/json-imports/LocaleData.js +89 -89
  150. package/dist/generated/json-imports/LocaleData.js.map +1 -0
  151. package/dist/getCachedLocaleDataInstance.d.ts +4 -0
  152. package/dist/getCachedLocaleDataInstance.js +6 -9
  153. package/dist/getCachedLocaleDataInstance.js.map +1 -0
  154. package/dist/locale/getLocaleData.d.ts +11 -0
  155. package/dist/locale/getLocaleData.js +12 -16
  156. package/dist/locale/getLocaleData.js.map +1 -0
  157. package/dist/sap/base/Event.js +59 -0
  158. package/dist/sap/base/Eventing.js +146 -0
  159. package/dist/sap/base/Log.js +2 -240
  160. package/dist/sap/base/assert.js +31 -5
  161. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  162. package/dist/sap/base/config.js +17 -0
  163. package/dist/sap/base/i18n/Formatting.d.ts +8 -0
  164. package/dist/sap/base/i18n/Formatting.js +11 -0
  165. package/dist/sap/base/i18n/Formatting.js.map +1 -0
  166. package/dist/sap/base/i18n/LanguageTag.js +173 -0
  167. package/dist/sap/base/i18n/Localization.d.ts +4 -0
  168. package/dist/sap/base/i18n/Localization.js +12 -0
  169. package/dist/sap/base/i18n/Localization.js.map +1 -0
  170. package/dist/sap/base/i18n/date/CalendarType.js +43 -0
  171. package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +105 -0
  172. package/dist/sap/base/i18n/date/TimezoneUtils.js +319 -0
  173. package/dist/sap/base/strings/camelize.js +30 -0
  174. package/dist/sap/base/strings/formatMessage.js +88 -15
  175. package/dist/sap/base/util/LoaderExtensions.d.ts +4 -0
  176. package/dist/sap/base/util/LoaderExtensions.js +9 -12
  177. package/dist/sap/base/util/LoaderExtensions.js.map +1 -0
  178. package/dist/sap/base/util/ObjectPath.d.ts +4 -0
  179. package/dist/sap/base/util/ObjectPath.js +4 -33
  180. package/dist/sap/base/util/ObjectPath.js.map +1 -0
  181. package/dist/sap/base/util/Version.js +157 -0
  182. package/dist/sap/base/util/_merge.js +83 -26
  183. package/dist/sap/base/util/array/uniqueSort.js +37 -15
  184. package/dist/sap/base/util/deepClone.js +102 -0
  185. package/dist/sap/base/util/deepEqual.js +75 -51
  186. package/dist/sap/base/util/extend.js +58 -7
  187. package/dist/sap/base/util/isEmptyObject.js +34 -0
  188. package/dist/sap/base/util/isPlainObject.js +35 -1
  189. package/dist/sap/base/util/now.js +24 -3
  190. package/dist/sap/base/util/resolveReference.js +3 -0
  191. package/dist/sap/base/util/uid.js +27 -0
  192. package/dist/sap/ui/base/DataType.js +657 -0
  193. package/dist/sap/ui/base/Interface.js +47 -1
  194. package/dist/sap/ui/base/Metadata.js +435 -171
  195. package/dist/sap/ui/base/Object.js +284 -48
  196. package/dist/sap/ui/core/CalendarType.js +24 -8
  197. package/dist/sap/ui/core/Configuration.d.ts +17 -0
  198. package/dist/sap/ui/core/Configuration.js +23 -0
  199. package/dist/sap/ui/core/Configuration.js.map +1 -0
  200. package/dist/sap/ui/core/Core.d.ts +25 -0
  201. package/dist/sap/ui/core/Core.js +7 -34
  202. package/dist/sap/ui/core/Core.js.map +1 -0
  203. package/dist/sap/ui/core/FormatSettings.d.ts +9 -0
  204. package/dist/sap/ui/core/FormatSettings.js +12 -0
  205. package/dist/sap/ui/core/FormatSettings.js.map +1 -0
  206. package/dist/sap/ui/core/Locale.js +190 -152
  207. package/dist/sap/ui/core/LocaleData.js +2665 -1228
  208. package/dist/sap/ui/core/Supportability.js +5 -0
  209. package/dist/sap/ui/core/Theming.js +539 -0
  210. package/dist/sap/ui/core/date/Buddhist.js +162 -93
  211. package/dist/sap/ui/core/date/CalendarUtils.js +65 -0
  212. package/dist/sap/ui/core/date/CalendarWeekNumbering.js +30 -0
  213. package/dist/sap/ui/core/date/Gregorian.js +25 -10
  214. package/dist/sap/ui/core/date/Islamic.js +298 -185
  215. package/dist/sap/ui/core/date/Japanese.js +212 -117
  216. package/dist/sap/ui/core/date/Persian.js +324 -195
  217. package/dist/sap/ui/core/date/UI5Date.js +991 -0
  218. package/dist/sap/ui/core/date/UniversalDate.js +1251 -217
  219. package/dist/sap/ui/core/date/_Calendars.js +10 -1
  220. package/dist/sap/ui/core/format/DateFormat.js +3139 -1965
  221. package/dist/sap/ui/core/format/TimezoneUtil.js +24 -83
  222. package/package-scripts.cjs +28 -0
  223. package/package.json +14 -6
  224. package/tsconfig.json +24 -0
  225. package/used-modules.txt +27 -2
  226. package/dist/Assets-static.js +0 -2
  227. package/dist/dates/calculateWeekNumber.js +0 -51
  228. package/dist/generated/json-imports/LocaleData-static.js +0 -90
  229. package/dist/sap/ui/Device.js +0 -5
  230. package/package-scripts.js +0 -35
  231. package/src/Assets-static.js +0 -2
  232. package/src/Assets.js +0 -2
  233. package/src/DateFormat.js +0 -3
  234. package/src/LocaleData.js +0 -3
  235. package/src/dates/CalendarDate.js +0 -229
  236. package/src/dates/ExtremeDates.js +0 -39
  237. package/src/dates/calculateWeekNumber.js +0 -51
  238. package/src/dates/convertMonthNumbersToMonthNames.js +0 -33
  239. package/src/dates/getDaysInMonth.js +0 -11
  240. package/src/dates/getRoundedTimestamp.js +0 -14
  241. package/src/dates/getTodayUTCTimestamp.js +0 -9
  242. package/src/dates/modifyDateBy.js +0 -42
  243. package/src/dates/transformDateToSecondaryType.js +0 -20
  244. package/src/getCachedLocaleDataInstance.js +0 -13
  245. package/src/locale/getLocaleData.js +0 -27
  246. package/src/sap/base/util/LoaderExtensions.js +0 -17
  247. package/src/sap/ui/core/Core.js +0 -40
  248. /package/{config/.eslintrc.js → .eslintrc.cjs} +0 -0
  249. /package/{src/features/calendar/Buddhist.js → dist/features/calendar/Buddhist.d.ts} +0 -0
  250. /package/{src/features/calendar/Gregorian.js → dist/features/calendar/Gregorian.d.ts} +0 -0
  251. /package/{src/features/calendar/Islamic.js → dist/features/calendar/Islamic.d.ts} +0 -0
  252. /package/{src/features/calendar/Japanese.js → dist/features/calendar/Japanese.d.ts} +0 -0
  253. /package/{src/features/calendar/Persian.js → dist/features/calendar/Persian.d.ts} +0 -0
@@ -1,229 +0,0 @@
1
- import UniversalDate from "../sap/ui/core/date/UniversalDate.js";
2
-
3
- class CalendarDate {
4
- constructor() {
5
- let aArgs = arguments, // eslint-disable-line
6
- oJSDate,
7
- oNow,
8
- sCalendarType;
9
-
10
- switch (aArgs.length) {
11
- case 0: // defaults to the current date
12
- oNow = new Date();
13
- return this.constructor(oNow.getFullYear(), oNow.getMonth(), oNow.getDate());
14
-
15
- case 1: // CalendarDate
16
- case 2: // CalendarDate, sCalendarType
17
- if (!(aArgs[0] instanceof CalendarDate)) {
18
- throw new Error("Invalid arguments: the first argument must be of type sap.ui.unified.calendar.CalendarDate.");
19
- }
20
- sCalendarType = aArgs[1] ? aArgs[1] : aArgs[0]._oUDate.sCalendarType;
21
- // Use source.valueOf() (returns the same point of time regardless calendar type) instead of
22
- // source's getters to avoid non-gregorian Year, Month and Date may be used to construct a Gregorian date
23
- oJSDate = new Date(aArgs[0].valueOf());
24
-
25
- // Make this date really local. Now getters are safe.
26
- oJSDate.setFullYear(oJSDate.getUTCFullYear(), oJSDate.getUTCMonth(), oJSDate.getUTCDate());
27
- oJSDate.setHours(oJSDate.getUTCHours(), oJSDate.getUTCMinutes(), oJSDate.getUTCSeconds(), oJSDate.getUTCMilliseconds());
28
-
29
- this._oUDate = createUniversalUTCDate(oJSDate, sCalendarType);
30
- break;
31
-
32
- case 3: // year, month, date
33
- case 4: // year, month, date, sCalendarType
34
- checkNumericLike(aArgs[0], `Invalid year: ${aArgs[0]}`);
35
- checkNumericLike(aArgs[1], `Invalid month: ${aArgs[1]}`);
36
- checkNumericLike(aArgs[2], `Invalid date: ${aArgs[2]}`);
37
-
38
- oJSDate = new Date(0, 0, 1);
39
- oJSDate.setFullYear(aArgs[0], aArgs[1], aArgs[2]); // 2 digits year is not supported. If so, it is considered as full year as well.
40
-
41
- if (aArgs[3]) {
42
- sCalendarType = aArgs[3];
43
- }
44
- this._oUDate = createUniversalUTCDate(oJSDate, sCalendarType);
45
- break;
46
-
47
- default:
48
- throw new Error(`${"Invalid arguments. Accepted arguments are: 1) oCalendarDate, (optional)calendarType"
49
- + "or 2) year, month, date, (optional) calendarType"}${aArgs}`);
50
- }
51
- }
52
-
53
- getYear() {
54
- return this._oUDate.getUTCFullYear();
55
- }
56
-
57
- setYear(year) {
58
- checkNumericLike(year, `Invalid year: ${year}`);
59
- this._oUDate.setUTCFullYear(year);
60
- return this;
61
- }
62
-
63
- getMonth() {
64
- return this._oUDate.getUTCMonth();
65
- }
66
-
67
- /**
68
- * Sets the given month as ordinal month of the year.
69
- * @param {int} month An integer between 0 and 11, representing the months January through December( or their
70
- * equivalent month names for the given calendar).
71
- * If the specified value is is outside of the expected range, this method attempts to update the date information
72
- * accordingly. For example, if 12 is given as a month, the year will be incremented by 1, and 1 will be used for month.
73
- * @param {int} [date] An integer between 1 and 31, representing the day of the month, but other values are allowed.
74
- * 0 will result in the previous month's last day.
75
- * -1 will result in the day before the previous month's last day.
76
- * 32 will result in:
77
- * - first day of the next month if the current month has 31 days.
78
- * - second day of the next month if the current month has 30 days.
79
- * Other value will result in adding or subtracting days according to the given value.
80
- * @returns {sap.ui.unified.calendar.CalendarDate} <code>this</code> for method chaining.
81
- */
82
- setMonth(month, date) {
83
- checkNumericLike(month, `Invalid month: ${month}`);
84
- if (date || date === 0) {
85
- checkNumericLike(date, `Invalid date: ${date}`);
86
- this._oUDate.setUTCMonth(month, date);
87
- } else {
88
- this._oUDate.setUTCMonth(month);
89
- }
90
- return this;
91
- }
92
-
93
- getDate() {
94
- return this._oUDate.getUTCDate();
95
- }
96
-
97
- setDate(date) {
98
- checkNumericLike(date, `Invalid date: ${date}`);
99
- this._oUDate.setUTCDate(date);
100
- return this;
101
- }
102
-
103
- getDay() {
104
- return this._oUDate.getUTCDay();
105
- }
106
-
107
- getCalendarType() {
108
- return this._oUDate.sCalendarType;
109
- }
110
-
111
- isBefore(oCalendarDate) {
112
- checkCalendarDate(oCalendarDate);
113
- return this.valueOf() < oCalendarDate.valueOf();
114
- }
115
-
116
- isAfter(oCalendarDate) {
117
- checkCalendarDate(oCalendarDate);
118
- return this.valueOf() > oCalendarDate.valueOf();
119
- }
120
-
121
- isSameOrBefore(oCalendarDate) {
122
- checkCalendarDate(oCalendarDate);
123
- return this.valueOf() <= oCalendarDate.valueOf();
124
- }
125
-
126
- isSameOrAfter(oCalendarDate) {
127
- checkCalendarDate(oCalendarDate);
128
- return this.valueOf() >= oCalendarDate.valueOf();
129
- }
130
-
131
- isSame(oCalendarDate) {
132
- checkCalendarDate(oCalendarDate);
133
- return this.valueOf() === oCalendarDate.valueOf();
134
- }
135
-
136
- toLocalJSDate() {
137
- // Use this._oUDate.getTime()(returns the same point of time regardless calendar type) instead of
138
- // this._oUDate's getters to avoid non-gregorian Year, Month and Date to be used to construct a Gregorian date
139
- const oLocalDate = new Date(this._oUDate.getTime());
140
-
141
- // Make this date really local. Now getters are safe.
142
- oLocalDate.setFullYear(oLocalDate.getUTCFullYear(), oLocalDate.getUTCMonth(), oLocalDate.getUTCDate());
143
- oLocalDate.setHours(0, 0, 0, 0);
144
-
145
- return oLocalDate;
146
- }
147
-
148
- toUTCJSDate() {
149
- // Use this._oUDate.getTime()(returns the same point of time regardless calendar type) instead of
150
- // this._oUDate's getters to avoid non-gregorian Year, Month and Date to be used to construct a Gregorian date
151
- const oUTCDate = new Date(this._oUDate.getTime());
152
- oUTCDate.setUTCHours(0, 0, 0, 0);
153
-
154
- return oUTCDate;
155
- }
156
-
157
- toString() {
158
- return `${this._oUDate.sCalendarType}: ${this.getYear()}/${this.getMonth() + 1}/${this.getDate()}`;
159
- }
160
-
161
- valueOf() {
162
- return this._oUDate.getTime();
163
- }
164
-
165
- static fromLocalJSDate(oJSDate, sCalendarType) {
166
- // Cross frame check for a date should be performed here otherwise setDateValue would fail in OPA tests
167
- // because Date object in the test is different than the Date object in the application (due to the iframe).
168
- // We can use jQuery.type or this method:
169
- function isValidDate(date) {
170
- return date && Object.prototype.toString.call(date) === "[object Date]" && !isNaN(date); // eslint-disable-line
171
- }
172
- if (!isValidDate(oJSDate)) {
173
- throw new Error(`Date parameter must be a JavaScript Date object: [${oJSDate}].`);
174
- }
175
- return new CalendarDate(oJSDate.getFullYear(), oJSDate.getMonth(), oJSDate.getDate(), sCalendarType);
176
- }
177
-
178
- static fromTimestamp(iTimestamp, sCalendarType) {
179
- const oCalDate = new CalendarDate(0, 0, 1);
180
- let oUDate;
181
- try {
182
- oUDate = UniversalDate.getInstance(new Date(iTimestamp), sCalendarType);
183
- } catch (e) {
184
- oUDate = new Date(NaN); // UniversalDate.getInstance may now throw an Exception - keep the old behavior
185
- }
186
- oCalDate._oUDate = oUDate;
187
- return oCalDate;
188
- }
189
- }
190
-
191
- function createUniversalUTCDate(oDate, sCalendarType) {
192
- if (sCalendarType) {
193
- return UniversalDate.getInstance(createUTCDate(oDate), sCalendarType);
194
- }
195
- return new UniversalDate(createUTCDate(oDate).getTime());
196
- }
197
-
198
- /**
199
- * Creates a JavaScript UTC Date corresponding to the given JavaScript Date.
200
- * @param {Date} oDate JavaScript date object. Time related information is cut.
201
- * @returns {Date} JavaScript date created from the date object, but this time considered as UTC date information.
202
- */
203
- function createUTCDate(oDate) {
204
- const oUTCDate = new Date(Date.UTC(0, 0, 1));
205
-
206
- oUTCDate.setUTCFullYear(oDate.getFullYear(), oDate.getMonth(), oDate.getDate());
207
-
208
- return oUTCDate;
209
- }
210
-
211
- function checkCalendarDate(oCalendarDate) {
212
- if (!(oCalendarDate instanceof CalendarDate)) {
213
- throw new Error(`Invalid calendar date: [${oCalendarDate}]. Expected: sap.ui.unified.calendar.CalendarDate`);
214
- }
215
- }
216
-
217
- /**
218
- * Verifies the given value is numeric like, i.e. 3, "3" and throws an error if it is not.
219
- * @param {any} value The value of any type to check. If null or undefined, this method throws an error.
220
- * @param {string} message The message to be used if an error is to be thrown
221
- * @throws will throw an error if the value is null or undefined or is not like a number
222
- */
223
- function checkNumericLike(value, message) {
224
- if (value === undefined || value === Infinity || isNaN(value)) { // eslint-disable-line
225
- throw message;
226
- }
227
- }
228
-
229
- export default CalendarDate;
@@ -1,39 +0,0 @@
1
- import CalendarDate from "./CalendarDate.js";
2
-
3
- const cache = new Map();
4
-
5
- const getMinCalendarDate = primaryCalendarType => {
6
- const key = `min ${primaryCalendarType}`;
7
-
8
- if (!cache.has(key)) {
9
- const minDate = new CalendarDate(1, 0, 1, primaryCalendarType);
10
- minDate.setYear(1);
11
- minDate.setMonth(0);
12
- minDate.setDate(1);
13
- cache.set(key, minDate);
14
- }
15
-
16
- return cache.get(key);
17
- };
18
-
19
- const getMaxCalendarDate = primaryCalendarType => {
20
- const key = `max ${primaryCalendarType}`;
21
-
22
- if (!cache.has(key)) {
23
- const maxDate = new CalendarDate(1, 0, 1, primaryCalendarType);
24
- maxDate.setYear(9999);
25
- maxDate.setMonth(11);
26
- const tempDate = new CalendarDate(maxDate, primaryCalendarType);
27
- tempDate.setDate(1);
28
- tempDate.setMonth(tempDate.getMonth() + 1, 0);
29
- maxDate.setDate(tempDate.getDate());// 31st for Gregorian Calendar
30
- cache.set(key, maxDate);
31
- }
32
-
33
- return cache.get(key);
34
- };
35
-
36
- export {
37
- getMinCalendarDate,
38
- getMaxCalendarDate,
39
- };
@@ -1,51 +0,0 @@
1
- import UniversalDate from "../sap/ui/core/date/UniversalDate.js";
2
-
3
- const calculateWeekNumber = (confFirstDayOfWeek, oDate, iYear, oLocale, oLocaleData) => {
4
- let iWeekNum = 0;
5
- let iWeekDay = 0;
6
- const iFirstDayOfWeek = Number.isInteger(confFirstDayOfWeek) ? confFirstDayOfWeek : oLocaleData.getFirstDayOfWeek();
7
-
8
- // search Locale for containing "en-US", since sometimes
9
- // when any user settings have been defined, subtag "sapufmt" is added to the locale name
10
- // this is described inside sap.ui.core.Configuration file
11
- if (oLocale && (oLocale.getLanguage() === "en" && oLocale.getRegion() === "US")) {
12
- /*
13
- * in US the week starts with Sunday
14
- * The first week of the year starts with January 1st. But Dec. 31 is still in the last year
15
- * So the week beginning in December and ending in January has 2 week numbers
16
- */
17
- const oJanFirst = new UniversalDate(oDate.getTime());
18
- oJanFirst.setUTCFullYear(iYear, 0, 1);
19
- iWeekDay = oJanFirst.getUTCDay();
20
-
21
- // get the date for the same weekday like jan 1.
22
- const oCheckDate = new UniversalDate(oDate.getTime());
23
- oCheckDate.setUTCDate(oCheckDate.getUTCDate() - oCheckDate.getUTCDay() + iWeekDay);
24
-
25
- iWeekNum = Math.round((oCheckDate.getTime() - oJanFirst.getTime()) / 86400000 / 7) + 1;
26
- } else {
27
- // normally the first week of the year is the one where the first Thursday of the year is
28
- // find Thursday of this week
29
- // if the checked day is before the 1. day of the week use a day of the previous week to check
30
- const oThursday = new UniversalDate(oDate.getTime());
31
- oThursday.setUTCDate(oThursday.getUTCDate() - iFirstDayOfWeek);
32
- iWeekDay = oThursday.getUTCDay();
33
- oThursday.setUTCDate(oThursday.getUTCDate() - iWeekDay + 4);
34
-
35
- const oFirstDayOfYear = new UniversalDate(oThursday.getTime());
36
- oFirstDayOfYear.setUTCMonth(0, 1);
37
- iWeekDay = oFirstDayOfYear.getUTCDay();
38
- let iAddDays = 0;
39
- if (iWeekDay > 4) {
40
- iAddDays = 7; // first day of year is after Thursday, so first Thursday is in the next week
41
- }
42
- const oFirstThursday = new UniversalDate(oFirstDayOfYear.getTime());
43
- oFirstThursday.setUTCDate(1 - iWeekDay + 4 + iAddDays);
44
-
45
- iWeekNum = Math.round((oThursday.getTime() - oFirstThursday.getTime()) / 86400000 / 7) + 1;
46
- }
47
-
48
- return iWeekNum;
49
- };
50
-
51
- export default calculateWeekNumber;
@@ -1,33 +0,0 @@
1
- import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
2
- import getCachedLocaleDataInstance from "../getCachedLocaleDataInstance.js";
3
-
4
- /**
5
- * Convert month number to month name (text).
6
- * If the numbers of the two months are the same you will get the name of the month,
7
- * otherwise you will get the two names separated by a dash
8
- *
9
- * @param firstMonth CalendarDate Month
10
- * @param lastMonth CalendarDate Month
11
- * @param calendarType calendar type
12
- * @returns {String}
13
- */
14
- const convertMonthNumbersToMonthNames = (firstMonth, lastMonth, calendarType) => {
15
- const localeData = getCachedLocaleDataInstance(getLocale());
16
- const pattern = localeData.getIntervalPattern();
17
- const secondaryMonthsNames = localeData.getMonthsStandAlone("abbreviated", calendarType);
18
- const secondaryMonthsNamesWide = localeData.getMonthsStandAlone("wide", calendarType);
19
-
20
- if (firstMonth === lastMonth) {
21
- return {
22
- text: localeData.getMonths("abbreviated", calendarType)[firstMonth],
23
- textInfo: localeData.getMonths("wide", calendarType)[firstMonth],
24
- };
25
- }
26
-
27
- return {
28
- text: pattern.replace(/\{0\}/, secondaryMonthsNames[firstMonth]).replace(/\{1\}/, secondaryMonthsNames[lastMonth]),
29
- textInfo: pattern.replace(/\{0\}/, secondaryMonthsNamesWide[firstMonth]).replace(/\{1\}/, secondaryMonthsNamesWide[lastMonth]),
30
- };
31
- };
32
-
33
- export default convertMonthNumbersToMonthNames;
@@ -1,11 +0,0 @@
1
- import CalendarDate from "./CalendarDate.js";
2
-
3
- const getDaysInMonth = date => {
4
- const tempCalendarDate = new CalendarDate(date);
5
- tempCalendarDate.setDate(1);
6
- tempCalendarDate.setMonth(tempCalendarDate.getMonth() + 1);
7
- tempCalendarDate.setDate(0);
8
- return tempCalendarDate.getDate();
9
- };
10
-
11
- export default getDaysInMonth;
@@ -1,14 +0,0 @@
1
- /**
2
- * Returns a timestamp with only the year, month and day (with zero hours, minutes and seconds) and without 000 for milliseconds
3
- * @param millisecondsUTC
4
- * @returns {number}
5
- */
6
- const getRoundedTimestamp = millisecondsUTC => {
7
- if (!millisecondsUTC) {
8
- millisecondsUTC = new Date().getTime();
9
- }
10
- const rounded = millisecondsUTC - (millisecondsUTC % (24 * 60 * 60 * 1000));
11
- return rounded / 1000;
12
- };
13
-
14
- export default getRoundedTimestamp;
@@ -1,9 +0,0 @@
1
- import CalendarDate from "./CalendarDate.js";
2
-
3
- /**
4
- * Returns a UTC timestamp representing today
5
- * @public
6
- */
7
- const getTodayUTCTimestamp = primaryCalendarType => CalendarDate.fromLocalJSDate(new Date(), primaryCalendarType).valueOf() / 1000;
8
-
9
- export default getTodayUTCTimestamp;
@@ -1,42 +0,0 @@
1
- import CalendarDate from "./CalendarDate.js";
2
-
3
- /**
4
- * Adds or subtracts a given amount of days/months/years from a date.
5
- * If minDate or maxDate are given, the result will be enforced within these limits
6
- *
7
- * @param date CalendarDate instance
8
- * @param amount how many days/months/years to add (can be a negative number)
9
- * @param unit what to modify: "day", "month" or "year"
10
- * @param minDate minimum date to enforce
11
- * @param maxDate maximum date to enforce
12
- */
13
- const modifyDateBy = (date, amount, unit, minDate = null, maxDate = null) => {
14
- const newDate = new CalendarDate(date);
15
- if (unit === "day") {
16
- newDate.setDate(date.getDate() + amount);
17
- } else if (unit === "month") {
18
- newDate.setMonth(date.getMonth() + amount);
19
- const stillSameMonth = amount === -1 && newDate.getMonth() === date.getMonth(); // f.e. PageUp remained in the same month
20
- const monthSkipped = amount === 1 && newDate.getMonth() - date.getMonth() > 1; // f.e. PageDown skipped a whole month
21
- if (stillSameMonth || monthSkipped) { // Select the last day of the month in any of these 2 scenarios
22
- newDate.setDate(0);
23
- }
24
- } else {
25
- newDate.setYear(date.getYear() + amount);
26
- if (newDate.getMonth() !== date.getMonth()) { // f.e. 29th Feb to next/prev year
27
- newDate.setDate(0); // Select the last day of the month
28
- }
29
- }
30
-
31
- if (minDate && newDate.valueOf() < minDate.valueOf()) {
32
- return new CalendarDate(minDate);
33
- }
34
-
35
- if (maxDate && newDate.valueOf() > maxDate.valueOf()) {
36
- return new CalendarDate(maxDate);
37
- }
38
-
39
- return newDate;
40
- };
41
-
42
- export default modifyDateBy;
@@ -1,20 +0,0 @@
1
- import CalendarDate from "./CalendarDate.js";
2
- import getDaysInMonth from "./getDaysInMonth.js";
3
-
4
- const transformDateToSecondaryType = (primaryCalendarType, secondaryCalendarType, timeStamp, hasYearPicker) => {
5
- let firstDate = CalendarDate.fromLocalJSDate(new Date(timeStamp * 1000), primaryCalendarType);
6
- let lastDate = CalendarDate.fromLocalJSDate(new Date(timeStamp * 1000), primaryCalendarType);
7
- firstDate.setDate(1);
8
-
9
- if (hasYearPicker) {
10
- firstDate.setMonth(0);
11
- lastDate.setMonth(11);
12
- }
13
-
14
- lastDate.setDate(getDaysInMonth(lastDate));
15
- firstDate = new CalendarDate(firstDate, secondaryCalendarType);
16
- lastDate = new CalendarDate(lastDate, secondaryCalendarType);
17
- return { firstDate, lastDate };
18
- };
19
-
20
- export default transformDateToSecondaryType;
@@ -1,13 +0,0 @@
1
- import LocaleData from "./LocaleData.js";
2
-
3
- const cache = new Map();
4
-
5
- const getCachedLocaleDataInstance = locale => {
6
- if (!cache.has(locale)) {
7
- cache.set(locale, LocaleData.getInstance(locale));
8
- }
9
-
10
- return cache.get(locale);
11
- };
12
-
13
- export default getCachedLocaleDataInstance;
@@ -1,27 +0,0 @@
1
- import { fetchCldr } from "@ui5/webcomponents-base/dist/asset-registries/LocaleData.js";
2
- import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
3
- import LocaleData from "../sap/ui/core/LocaleData.js";
4
-
5
- const instances = new Map();
6
-
7
- /**
8
- * Fetches and returns а LocaleData object for the required locale
9
- * For more information on this object's API, please see:
10
- * https://sdk.openui5.org/api/sap.ui.core.LocaleData
11
- *
12
- * @param lang - if left empty, will use the configured/current locale
13
- * @returns {LocaleData}
14
- */
15
- const getLocaleData = async lang => {
16
- const locale = getLocale(lang);
17
- const localeLang = locale.getLanguage();
18
-
19
- if (!instances.has(localeLang)) {
20
- await fetchCldr(locale.getLanguage(), locale.getRegion(), locale.getScript());
21
- instances.set(localeLang, LocaleData.getInstance(locale));
22
- }
23
-
24
- return instances.get(localeLang);
25
- };
26
-
27
- export default getLocaleData;
@@ -1,17 +0,0 @@
1
- import { getLocaleData } from "@ui5/webcomponents-base/dist/asset-registries/LocaleData.js";
2
-
3
- const loadResource = moduleName => {
4
- const moduleFormat = moduleName.match(/sap\/ui\/core\/cldr\/(\w+)\.json/);
5
- if (!moduleFormat) {
6
- throw new Error(`Unknown module "${moduleName}"`);
7
- }
8
-
9
- const localeId = moduleFormat[1];
10
- return getLocaleData(localeId);
11
- };
12
-
13
- const LoaderExtensions = {
14
- loadResource,
15
- };
16
-
17
- export default LoaderExtensions;
@@ -1,40 +0,0 @@
1
- import { getLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
2
- import { getCalendarType } from "@ui5/webcomponents-base/dist/config/CalendarType.js";
3
- import getDesigntimePropertyAsArray from "@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js";
4
- import getLocale from "@ui5/webcomponents-base/dist/locale/getLocale.js";
5
- import TimezoneUtil from "./format/TimezoneUtil.js";
6
-
7
- const emptyFn = () => {};
8
-
9
- /**
10
- * OpenUI5 FormatSettings shim
11
- */
12
- const FormatSettings = {
13
- getFormatLocale: getLocale,
14
- getLegacyDateFormat: emptyFn,
15
- getLegacyDateCalendarCustomizing: emptyFn,
16
- getCustomLocaleData: emptyFn,
17
- };
18
-
19
- /**
20
- * OpenUI5 Configuration Shim
21
- */
22
- const Configuration = {
23
- getLanguage,
24
- getCalendarType,
25
- getSupportedLanguages: () => getDesigntimePropertyAsArray("$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$"),
26
- getOriginInfo: emptyFn,
27
- getFormatSettings: () => FormatSettings,
28
- getTimezone: () => TimezoneUtil.getLocalTimezone(),
29
- };
30
-
31
- /**
32
- * OpenUI5 Core shim
33
- */
34
- const Core = {
35
- getConfiguration: () => Configuration,
36
- getLibraryResourceBundle: emptyFn(),
37
- getFormatSettings: () => FormatSettings,
38
- };
39
-
40
- export default Core;
File without changes