@ui5/webcomponents-localization 0.0.0-c41f1b293 → 0.0.0-c42896b6b

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 (188) hide show
  1. package/.eslintignore +2 -1
  2. package/CHANGELOG.md +1464 -0
  3. package/README.md +3 -5
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/Assets-fetch.d.ts +1 -0
  6. package/dist/Assets-fetch.js +3 -0
  7. package/dist/Assets-fetch.js.map +1 -0
  8. package/dist/Assets-node.d.ts +11 -0
  9. package/dist/Assets-node.js +12 -0
  10. package/dist/Assets-node.js.map +1 -0
  11. package/dist/CalendarUtils.d.ts +3 -0
  12. package/dist/CalendarUtils.js +6 -0
  13. package/dist/CalendarUtils.js.map +1 -0
  14. package/dist/DateFormat.d.ts +0 -1
  15. package/dist/LocaleData.d.ts +0 -1
  16. package/dist/dates/CalendarDate.d.ts +0 -1
  17. package/dist/dates/CalendarDate.js.map +1 -1
  18. package/dist/dates/ExtremeDates.d.ts +1 -1
  19. package/dist/dates/ExtremeDates.js.map +1 -1
  20. package/dist/dates/UI5Date.d.ts +0 -1
  21. package/dist/dates/convertMonthNumbersToMonthNames.js.map +1 -1
  22. package/dist/dates/getRoundedTimestamp.js.map +1 -1
  23. package/dist/dates/modifyDateBy.d.ts +2 -1
  24. package/dist/dates/modifyDateBy.js +34 -19
  25. package/dist/dates/modifyDateBy.js.map +1 -1
  26. package/dist/dates/transformDateToSecondaryType.js.map +1 -1
  27. package/dist/generated/assets/cldr/Unicode-Data-Files-LICENSE.txt +27 -0
  28. package/dist/generated/assets/cldr/ar.json +7085 -5531
  29. package/dist/generated/assets/cldr/ar_EG.json +7085 -5531
  30. package/dist/generated/assets/cldr/ar_SA.json +7084 -5530
  31. package/dist/generated/assets/cldr/bg.json +5979 -4452
  32. package/dist/generated/assets/cldr/ca.json +6081 -4440
  33. package/dist/generated/assets/cldr/cnr.json +6169 -0
  34. package/dist/generated/assets/cldr/cs.json +6707 -4960
  35. package/dist/generated/assets/cldr/cy.json +6930 -5211
  36. package/dist/generated/assets/cldr/da.json +5925 -4308
  37. package/dist/generated/assets/cldr/de.json +6046 -4313
  38. package/dist/generated/assets/cldr/de_AT.json +6047 -4314
  39. package/dist/generated/assets/cldr/de_CH.json +6045 -4312
  40. package/dist/generated/assets/cldr/el.json +5830 -4281
  41. package/dist/generated/assets/cldr/el_CY.json +5830 -4281
  42. package/dist/generated/assets/cldr/en.json +6042 -4316
  43. package/dist/generated/assets/cldr/en_AU.json +6082 -4319
  44. package/dist/generated/assets/cldr/en_GB.json +6073 -4329
  45. package/dist/generated/assets/cldr/en_HK.json +6082 -4337
  46. package/dist/generated/assets/cldr/en_IE.json +6073 -4328
  47. package/dist/generated/assets/cldr/en_IN.json +6078 -4333
  48. package/dist/generated/assets/cldr/en_NZ.json +6073 -4328
  49. package/dist/generated/assets/cldr/en_PG.json +6074 -4329
  50. package/dist/generated/assets/cldr/en_SG.json +6078 -4333
  51. package/dist/generated/assets/cldr/en_ZA.json +6074 -4329
  52. package/dist/generated/assets/cldr/es.json +6101 -4331
  53. package/dist/generated/assets/cldr/es_AR.json +6104 -4334
  54. package/dist/generated/assets/cldr/es_BO.json +6103 -4333
  55. package/dist/generated/assets/cldr/es_CL.json +5996 -4334
  56. package/dist/generated/assets/cldr/es_CO.json +5996 -4333
  57. package/dist/generated/assets/cldr/es_MX.json +6105 -4335
  58. package/dist/generated/assets/cldr/es_PE.json +5887 -4333
  59. package/dist/generated/assets/cldr/es_UY.json +5889 -4335
  60. package/dist/generated/assets/cldr/es_VE.json +5888 -4334
  61. package/dist/generated/assets/cldr/et.json +6025 -4340
  62. package/dist/generated/assets/cldr/fa.json +5948 -4367
  63. package/dist/generated/assets/cldr/fi.json +6193 -4463
  64. package/dist/generated/assets/cldr/fr.json +5995 -4357
  65. package/dist/generated/assets/cldr/fr_BE.json +5995 -4357
  66. package/dist/generated/assets/cldr/fr_CA.json +5989 -4351
  67. package/dist/generated/assets/cldr/fr_CH.json +6013 -4375
  68. package/dist/generated/assets/cldr/fr_LU.json +5995 -4357
  69. package/dist/generated/assets/cldr/he.json +6539 -4869
  70. package/dist/generated/assets/cldr/hi.json +5857 -4295
  71. package/dist/generated/assets/cldr/hr.json +6194 -4583
  72. package/dist/generated/assets/cldr/hu.json +5943 -4364
  73. package/dist/generated/assets/cldr/id.json +5728 -4060
  74. package/dist/generated/assets/cldr/it.json +5984 -4299
  75. package/dist/generated/assets/cldr/it_CH.json +5984 -4299
  76. package/dist/generated/assets/cldr/ja.json +5887 -4211
  77. package/dist/generated/assets/cldr/kk.json +5937 -4339
  78. package/dist/generated/assets/cldr/ko.json +5768 -4189
  79. package/dist/generated/assets/cldr/lt.json +6576 -4850
  80. package/dist/generated/assets/cldr/lv.json +6112 -4587
  81. package/dist/generated/assets/cldr/mk.json +6045 -0
  82. package/dist/generated/assets/cldr/ms.json +5562 -4021
  83. package/dist/generated/assets/cldr/nb.json +6033 -4335
  84. package/dist/generated/assets/cldr/nl.json +6200 -4294
  85. package/dist/generated/assets/cldr/nl_BE.json +6200 -4294
  86. package/dist/generated/assets/cldr/pl.json +6587 -4667
  87. package/dist/generated/assets/cldr/pt.json +6113 -4235
  88. package/dist/generated/assets/cldr/pt_PT.json +6178 -4372
  89. package/dist/generated/assets/cldr/ro.json +6198 -4563
  90. package/dist/generated/assets/cldr/ru.json +6501 -4909
  91. package/dist/generated/assets/cldr/ru_UA.json +6501 -4909
  92. package/dist/generated/assets/cldr/sk.json +6430 -4939
  93. package/dist/generated/assets/cldr/sl.json +6442 -4910
  94. package/dist/generated/assets/cldr/sr.json +6239 -4585
  95. package/dist/generated/assets/cldr/sr_Latn.json +6224 -4574
  96. package/dist/generated/assets/cldr/sv.json +6074 -4362
  97. package/dist/generated/assets/cldr/th.json +5873 -4214
  98. package/dist/generated/assets/cldr/tr.json +6092 -4400
  99. package/dist/generated/assets/cldr/uk.json +6452 -4858
  100. package/dist/generated/assets/cldr/vi.json +5667 -4070
  101. package/dist/generated/assets/cldr/zh_CN.json +5715 -4100
  102. package/dist/generated/assets/cldr/zh_HK.json +5724 -4108
  103. package/dist/generated/assets/cldr/zh_SG.json +5724 -4108
  104. package/dist/generated/assets/cldr/zh_TW.json +5791 -4131
  105. package/dist/generated/json-imports/LocaleData-fetch.d.ts +1 -0
  106. package/dist/generated/json-imports/LocaleData-fetch.js +93 -0
  107. package/dist/generated/json-imports/LocaleData-fetch.js.map +1 -0
  108. package/dist/generated/json-imports/LocaleData-node.d.ts +1 -0
  109. package/dist/generated/json-imports/LocaleData-node.js +93 -0
  110. package/dist/generated/json-imports/LocaleData-node.js.map +1 -0
  111. package/dist/generated/json-imports/LocaleData.d.ts +1 -0
  112. package/dist/generated/json-imports/LocaleData.js +89 -89
  113. package/dist/generated/json-imports/LocaleData.js.map +1 -0
  114. package/dist/getCachedLocaleDataInstance.js.map +1 -1
  115. package/dist/locale/getLocaleData.js.map +1 -1
  116. package/dist/sap/base/Event.js +59 -0
  117. package/dist/sap/base/Eventing.js +146 -0
  118. package/dist/sap/base/Log.js +2 -239
  119. package/dist/sap/base/assert.js +28 -1
  120. package/dist/sap/base/config/MemoryConfigurationProvider.js +20 -0
  121. package/dist/sap/base/config.js +17 -0
  122. package/dist/sap/base/i18n/Formatting.d.ts +8 -0
  123. package/dist/sap/base/i18n/Formatting.js +11 -0
  124. package/dist/sap/base/i18n/Formatting.js.map +1 -0
  125. package/dist/sap/base/i18n/LanguageTag.js +173 -0
  126. package/dist/sap/base/i18n/Localization.d.ts +4 -0
  127. package/dist/sap/base/i18n/Localization.js +12 -0
  128. package/dist/sap/base/i18n/Localization.js.map +1 -0
  129. package/dist/sap/base/i18n/date/CalendarType.js +43 -0
  130. package/dist/sap/base/i18n/date/CalendarWeekNumbering.js +105 -0
  131. package/dist/sap/base/i18n/date/TimezoneUtils.js +319 -0
  132. package/dist/sap/base/strings/camelize.js +30 -0
  133. package/dist/sap/base/strings/formatMessage.js +88 -15
  134. package/dist/sap/base/util/LoaderExtensions.js.map +1 -1
  135. package/dist/sap/base/util/ObjectPath.d.ts +4 -0
  136. package/dist/sap/base/util/ObjectPath.js +4 -33
  137. package/dist/sap/base/util/ObjectPath.js.map +1 -0
  138. package/dist/sap/base/util/Version.js +157 -0
  139. package/dist/sap/base/util/_merge.js +83 -26
  140. package/dist/sap/base/util/array/uniqueSort.js +37 -15
  141. package/dist/sap/base/util/deepClone.js +102 -0
  142. package/dist/sap/base/util/deepEqual.js +75 -51
  143. package/dist/sap/base/util/extend.js +58 -7
  144. package/dist/sap/base/util/isEmptyObject.js +34 -0
  145. package/dist/sap/base/util/isPlainObject.js +35 -1
  146. package/dist/sap/base/util/now.js +24 -3
  147. package/dist/sap/base/util/resolveReference.js +3 -0
  148. package/dist/sap/base/util/uid.js +27 -0
  149. package/dist/sap/ui/base/DataType.js +657 -0
  150. package/dist/sap/ui/base/Interface.js +47 -1
  151. package/dist/sap/ui/base/Metadata.js +435 -171
  152. package/dist/sap/ui/base/Object.js +284 -48
  153. package/dist/sap/ui/core/CalendarType.js +24 -8
  154. package/dist/sap/ui/core/Configuration.d.ts +2 -2
  155. package/dist/sap/ui/core/Configuration.js +2 -0
  156. package/dist/sap/ui/core/Configuration.js.map +1 -1
  157. package/dist/sap/ui/core/Core.d.ts +3 -4
  158. package/dist/sap/ui/core/FormatSettings.d.ts +1 -2
  159. package/dist/sap/ui/core/FormatSettings.js +0 -2
  160. package/dist/sap/ui/core/FormatSettings.js.map +1 -1
  161. package/dist/sap/ui/core/Locale.js +190 -155
  162. package/dist/sap/ui/core/LocaleData.js +2659 -1351
  163. package/dist/sap/ui/core/Supportability.js +5 -0
  164. package/dist/sap/ui/core/Theming.js +539 -0
  165. package/dist/sap/ui/core/date/Buddhist.js +162 -87
  166. package/dist/sap/ui/core/date/CalendarUtils.js +61 -32
  167. package/dist/sap/ui/core/date/CalendarWeekNumbering.js +30 -7
  168. package/dist/sap/ui/core/date/Gregorian.js +25 -10
  169. package/dist/sap/ui/core/date/Islamic.js +298 -185
  170. package/dist/sap/ui/core/date/Japanese.js +210 -115
  171. package/dist/sap/ui/core/date/Persian.js +324 -195
  172. package/dist/sap/ui/core/date/UI5Date.js +923 -237
  173. package/dist/sap/ui/core/date/UniversalDate.js +1238 -256
  174. package/dist/sap/ui/core/date/_Calendars.js +10 -1
  175. package/dist/sap/ui/core/format/DateFormat.js +3171 -2111
  176. package/dist/sap/ui/core/format/TimezoneUtil.js +24 -89
  177. package/package-scripts.cjs +12 -21
  178. package/package.json +12 -6
  179. package/tsconfig.json +20 -10
  180. package/used-modules.txt +23 -1
  181. package/dist/Assets-static.d.ts +0 -1
  182. package/dist/Assets-static.js +0 -3
  183. package/dist/Assets-static.js.map +0 -1
  184. package/dist/dates/calculateWeekNumber.d.ts +0 -5
  185. package/dist/dates/calculateWeekNumber.js +0 -45
  186. package/dist/dates/calculateWeekNumber.js.map +0 -1
  187. package/dist/generated/json-imports/LocaleData-static.js +0 -90
  188. package/dist/sap/ui/Device.js +0 -5
@@ -6,8 +6,9 @@ import CalendarDate from "./CalendarDate.js";
6
6
  * @param date CalendarDate instance
7
7
  * @param amount how many days/months/years to add (can be a negative number)
8
8
  * @param unit what to modify: "day", "month" or "year"
9
+ * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)
9
10
  * @param minDate minimum date to enforce
10
11
  * @param maxDate maximum date to enforce
11
12
  */
12
- declare const modifyDateBy: (date: CalendarDate, amount: number, unit: string, minDate?: CalendarDate, maxDate?: CalendarDate) => CalendarDate;
13
+ declare const modifyDateBy: (date: CalendarDate, amount: number, unit: string, preserveDate?: boolean, minDate?: CalendarDate, maxDate?: CalendarDate) => CalendarDate;
13
14
  export default modifyDateBy;
@@ -6,32 +6,47 @@ import CalendarDate from "./CalendarDate.js";
6
6
  * @param date CalendarDate instance
7
7
  * @param amount how many days/months/years to add (can be a negative number)
8
8
  * @param unit what to modify: "day", "month" or "year"
9
+ * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)
9
10
  * @param minDate minimum date to enforce
10
11
  * @param maxDate maximum date to enforce
11
12
  */
12
- const modifyDateBy = (date, amount, unit, minDate, maxDate) => {
13
+ const modifyDateBy = (date, amount, unit, preserveDate = true, minDate, maxDate) => {
13
14
  const newDate = new CalendarDate(date);
14
- if (unit === "day") {
15
- newDate.setDate(date.getDate() + amount);
15
+ switch (unit) {
16
+ case "day":
17
+ newDate.setDate(date.getDate() + amount);
18
+ break;
19
+ case "month":
20
+ if (preserveDate) {
21
+ newDate.setMonth(date.getMonth() + amount);
22
+ const stillSameMonth = amount === -1 && newDate.getMonth() === date.getMonth(); // f.e. PageUp remained in the same month
23
+ const monthSkipped = amount === 1 && newDate.getMonth() - date.getMonth() > 1; // f.e. PageDown skipped a whole month
24
+ if (stillSameMonth || monthSkipped) { // Select the last day of the month in any of these 2 scenarios
25
+ newDate.setDate(0);
26
+ }
27
+ }
28
+ else {
29
+ if (amount === 1) {
30
+ newDate.setMonth(newDate.getMonth() + 1, 1);
31
+ }
32
+ if (amount === -1) {
33
+ newDate.setDate(0);
34
+ }
35
+ }
36
+ break;
37
+ case "year":
38
+ newDate.setYear(date.getYear() + amount);
39
+ if (newDate.getMonth() !== date.getMonth()) { // f.e. 29th Feb to next/prev year
40
+ newDate.setDate(0); // Select the last day of the month
41
+ }
42
+ break;
43
+ default:
44
+ break;
16
45
  }
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
- }
25
- else {
26
- newDate.setYear(date.getYear() + amount);
27
- if (newDate.getMonth() !== date.getMonth()) { // f.e. 29th Feb to next/prev year
28
- newDate.setDate(0); // Select the last day of the month
29
- }
30
- }
31
- if (minDate && newDate.valueOf() < minDate.valueOf()) {
46
+ if (minDate && newDate.isBefore(minDate)) {
32
47
  return new CalendarDate(minDate);
33
48
  }
34
- if (maxDate && newDate.valueOf() > maxDate.valueOf()) {
49
+ if (maxDate && newDate.isAfter(maxDate)) {
35
50
  return new CalendarDate(maxDate);
36
51
  }
37
52
  return newDate;
@@ -1 +1 @@
1
- {"version":3,"file":"modifyDateBy.js","sourceRoot":"","sources":["../../src/dates/modifyDateBy.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C;;;;;;;;;GASG;AACH,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAE,MAAc,EAAE,IAAY,EAAE,OAAsB,EAAE,OAAsB,EAAE,EAAE;IACzH,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,KAAK,KAAK,EAAE;QACnB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;KACzC;SAAM,IAAI,IAAI,KAAK,OAAO,EAAE;QAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,yCAAyC;QACzH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,sCAAsC;QACrH,IAAI,cAAc,IAAI,YAAY,EAAE,EAAE,+DAA+D;YACpG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACnB;KACD;SAAM;QACN,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,kCAAkC;YAC/E,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;SACvD;KACD;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;QACrD,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;KACjC;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;QACrD,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;KACjC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["import CalendarDate from \"./CalendarDate.js\";\n\n/**\n * Adds or subtracts a given amount of days/months/years from a date.\n * If minDate or maxDate are given, the result will be enforced within these limits\n *\n * @param date CalendarDate instance\n * @param amount how many days/months/years to add (can be a negative number)\n * @param unit what to modify: \"day\", \"month\" or \"year\"\n * @param minDate minimum date to enforce\n * @param maxDate maximum date to enforce\n */\nconst modifyDateBy = (date: CalendarDate, amount: number, unit: string, minDate?: CalendarDate, maxDate?: CalendarDate) => {\n\tconst newDate = new CalendarDate(date);\n\tif (unit === \"day\") {\n\t\tnewDate.setDate(date.getDate() + amount);\n\t} else if (unit === \"month\") {\n\t\tnewDate.setMonth(date.getMonth() + amount);\n\t\tconst stillSameMonth = amount === -1 && newDate.getMonth() === date.getMonth(); // f.e. PageUp remained in the same month\n\t\tconst monthSkipped = amount === 1 && newDate.getMonth() - date.getMonth() > 1; // f.e. PageDown skipped a whole month\n\t\tif (stillSameMonth || monthSkipped) { // Select the last day of the month in any of these 2 scenarios\n\t\t\tnewDate.setDate(0);\n\t\t}\n\t} else {\n\t\tnewDate.setYear(date.getYear() + amount);\n\t\tif (newDate.getMonth() !== date.getMonth()) { // f.e. 29th Feb to next/prev year\n\t\t\tnewDate.setDate(0); // Select the last day of the month\n\t\t}\n\t}\n\n\tif (minDate && newDate.valueOf() < minDate.valueOf()) {\n\t\treturn new CalendarDate(minDate);\n\t}\n\n\tif (maxDate && newDate.valueOf() > maxDate.valueOf()) {\n\t\treturn new CalendarDate(maxDate);\n\t}\n\n\treturn newDate;\n};\n\nexport default modifyDateBy;\n"]}
1
+ {"version":3,"file":"modifyDateBy.js","sourceRoot":"","sources":["../../src/dates/modifyDateBy.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAE,MAAc,EAAE,IAAY,EAAE,YAAY,GAAG,IAAI,EAAE,OAAsB,EAAE,OAAsB,EAAE,EAAE;IAC9I,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IAEvC,QAAQ,IAAI,EAAE,CAAC;QACf,KAAK,KAAK;YACT,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;YACzC,MAAM;QACP,KAAK,OAAO;YACX,IAAI,YAAY,EAAE,CAAC;gBAClB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;gBAC3C,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,yCAAyC;gBACzH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,sCAAsC;gBACrH,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC,CAAC,+DAA+D;oBACpG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;oBACnB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC;YACF,CAAC;YACD,MAAM;QACP,KAAK,MAAM;YACV,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;YACzC,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,kCAAkC;gBAC/E,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,mCAAmC;YACxD,CAAC;YACD,MAAM;QACP;YACC,MAAM;IACP,CAAC;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["import CalendarDate from \"./CalendarDate.js\";\n\n/**\n * Adds or subtracts a given amount of days/months/years from a date.\n * If minDate or maxDate are given, the result will be enforced within these limits\n *\n * @param date CalendarDate instance\n * @param amount how many days/months/years to add (can be a negative number)\n * @param unit what to modify: \"day\", \"month\" or \"year\"\n * @param preserveDate whether to preserve the day of the month (f.e. 15th of March + 1 month = 15th of April)\n * @param minDate minimum date to enforce\n * @param maxDate maximum date to enforce\n */\nconst modifyDateBy = (date: CalendarDate, amount: number, unit: string, preserveDate = true, minDate?: CalendarDate, maxDate?: CalendarDate) => {\n\tconst newDate = new CalendarDate(date);\n\n\tswitch (unit) {\n\tcase \"day\":\n\t\tnewDate.setDate(date.getDate() + amount);\n\t\tbreak;\n\tcase \"month\":\n\t\tif (preserveDate) {\n\t\t\tnewDate.setMonth(date.getMonth() + amount);\n\t\t\tconst stillSameMonth = amount === -1 && newDate.getMonth() === date.getMonth(); // f.e. PageUp remained in the same month\n\t\t\tconst monthSkipped = amount === 1 && newDate.getMonth() - date.getMonth() > 1; // f.e. PageDown skipped a whole month\n\t\t\tif (stillSameMonth || monthSkipped) { // Select the last day of the month in any of these 2 scenarios\n\t\t\t\tnewDate.setDate(0);\n\t\t\t}\n\t\t} else {\n\t\t\tif (amount === 1) {\n\t\t\t\tnewDate.setMonth(newDate.getMonth() + 1, 1);\n\t\t\t}\n\t\t\tif (amount === -1) {\n\t\t\t\tnewDate.setDate(0);\n\t\t\t}\n\t\t}\n\t\tbreak;\n\tcase \"year\":\n\t\tnewDate.setYear(date.getYear() + amount);\n\t\tif (newDate.getMonth() !== date.getMonth()) { // f.e. 29th Feb to next/prev year\n\t\t\tnewDate.setDate(0); // Select the last day of the month\n\t\t}\n\t\tbreak;\n\tdefault:\n\t\tbreak;\n\t}\n\n\tif (minDate && newDate.isBefore(minDate)) {\n\t\treturn new CalendarDate(minDate);\n\t}\n\n\tif (maxDate && newDate.isAfter(maxDate)) {\n\t\treturn new CalendarDate(maxDate);\n\t}\n\n\treturn newDate;\n};\n\nexport default modifyDateBy;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"transformDateToSecondaryType.js","sourceRoot":"","sources":["../../src/dates/transformDateToSecondaryType.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,MAAM,4BAA4B,GAAG,CAAC,mBAAkD,EAAE,qBAAmD,EAAE,SAAiB,EAAE,aAAuB,EAAE,EAAE;IAC5L,IAAI,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACzG,IAAI,QAAQ,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACxG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAErB,IAAI,aAAa,EAAE;QAClB,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;KACtB;IAED,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,SAAS,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAC/D,QAAQ,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC7D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,eAAe,4BAA4B,CAAC","sourcesContent":["import type CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport CalendarDate from \"./CalendarDate.js\";\nimport getDaysInMonth from \"./getDaysInMonth.js\";\nimport UI5Date from \"./UI5Date.js\";\n\nconst transformDateToSecondaryType = (primaryCalendarType: `${CalendarType}` | undefined, secondaryCalendarType: `${CalendarType}`| undefined, timeStamp: number, hasYearPicker?: boolean) => {\n\tlet firstDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(timeStamp * 1000), primaryCalendarType);\n\tlet lastDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(timeStamp * 1000), primaryCalendarType);\n\tfirstDate.setDate(1);\n\n\tif (hasYearPicker) {\n\t\tfirstDate.setMonth(0);\n\t\tlastDate.setMonth(11);\n\t}\n\n\tlastDate.setDate(getDaysInMonth(lastDate));\n\tfirstDate = new CalendarDate(firstDate, secondaryCalendarType);\n\tlastDate = new CalendarDate(lastDate, secondaryCalendarType);\n\treturn { firstDate, lastDate };\n};\n\nexport default transformDateToSecondaryType;\n"]}
1
+ {"version":3,"file":"transformDateToSecondaryType.js","sourceRoot":"","sources":["../../src/dates/transformDateToSecondaryType.ts"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,MAAM,4BAA4B,GAAG,CAAC,mBAAkD,EAAE,qBAAmD,EAAE,SAAiB,EAAE,aAAuB,EAAE,EAAE;IAC5L,IAAI,SAAS,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACzG,IAAI,QAAQ,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACxG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAErB,IAAI,aAAa,EAAE,CAAC;QACnB,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,SAAS,GAAG,IAAI,YAAY,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAC/D,QAAQ,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC7D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,eAAe,4BAA4B,CAAC","sourcesContent":["import type CalendarType from \"@ui5/webcomponents-base/dist/types/CalendarType.js\";\nimport CalendarDate from \"./CalendarDate.js\";\nimport getDaysInMonth from \"./getDaysInMonth.js\";\nimport UI5Date from \"./UI5Date.js\";\n\nconst transformDateToSecondaryType = (primaryCalendarType: `${CalendarType}` | undefined, secondaryCalendarType: `${CalendarType}`| undefined, timeStamp: number, hasYearPicker?: boolean) => {\n\tlet firstDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(timeStamp * 1000), primaryCalendarType);\n\tlet lastDate = CalendarDate.fromLocalJSDate(UI5Date.getInstance(timeStamp * 1000), primaryCalendarType);\n\tfirstDate.setDate(1);\n\n\tif (hasYearPicker) {\n\t\tfirstDate.setMonth(0);\n\t\tlastDate.setMonth(11);\n\t}\n\n\tlastDate.setDate(getDaysInMonth(lastDate));\n\tfirstDate = new CalendarDate(firstDate, secondaryCalendarType);\n\tlastDate = new CalendarDate(lastDate, secondaryCalendarType);\n\treturn { firstDate, lastDate };\n};\n\nexport default transformDateToSecondaryType;\n"]}
@@ -0,0 +1,27 @@
1
+ Copyright © 1991-2023 Unicode, Inc. All rights reserved.
2
+ Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy of the
5
+ Unicode data files and any associated documentation (the "Data Files") or Unicode
6
+ software and any associated documentation (the "Software") to deal in the Data Files
7
+ or Software without restriction, including without limitation the rights to use, copy,
8
+ modify, merge, publish, distribute, and/or sell copies of the Data Files or Software,
9
+ and to permit persons to whom the Data Files or Software are furnished to do so,
10
+ provided that (a) the above copyright notice(s) and this permission notice appear
11
+ with all copies of the Data Files or Software, (b) both the above copyright notice(s)
12
+ and this permission notice appear in associated documentation, and (c) there is clear
13
+ notice in each modified Data File or in the Software as well as in the documentation
14
+ associated with the Data File(s) or Software that the data or software has been modified.
15
+
16
+ THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL
19
+ THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM,
20
+ OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
21
+ FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
22
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
23
+ OF THE DATA FILES OR SOFTWARE.
24
+
25
+ Except as contained in this notice, the name of a copyright holder shall not be used in
26
+ advertising or otherwise to promote the sale, use or other dealings in these Data Files
27
+ or Software without prior written authorization of the copyright holder.